cadrumo.entrypoints.tui.aeat_sync.models module

Closed routing and operation-handoff contracts for AEAT Sync.

AEAT_SYNC_DESTINATION_BY_ZONE: Mapping[AeatSyncWorkspaceZone, AeatSyncDestinationIdV1]

Which internal destination each public zone addresses.

Declared here, beside the destination type, because both readers need it and neither can own it: routes imports controller for its resolver signature, so the controller cannot import routes back. The pairing lived in both modules instead, and the route gate checked zone coverage, zone ORDER, and destination coverage – but never that a route’s destination was the one the controller sends for that zone. Two consistent-looking halves could therefore disagree, and the operator would land on the wrong screen with every gate green.

class AeatSyncRouteTargetV1(**data)[source]

Bases: BaseModel

One internal destination selected by its stable zone identity.

Parameters:

data (Any)

destination: AeatSyncDestinationIdV1
zone: AeatSyncWorkspaceZone
class AeatSyncOperationRequestV1(**data)[source]

Bases: BaseModel

One exact pre-admitted operation/action pair handed to the owning host.

Parameters:

data (Any)

action: ActionReference
operation: OperationDefinitionId
class AeatSyncOperationHandoffV1(*args, **kwargs)[source]

Bases: Protocol

Host-owned supervisor handoff for a registered operation.

The workspace only selects and admits the exact public action/operation pair. The installed host must resolve that request to the canonical OperationController and mount the canonical OperationModal; that modal owns progress, partial/failure outcomes, detach and cancellation. Implementations must not execute the operation inline.

class AeatSyncNotificationDocumentHandoffV1(*args, **kwargs)[source]

Bases: Protocol

Host-owned door for one already-read notification row.

The row carries a selection coordinate rather than the document, and that is a BOUNDARY, not a redaction. This workspace is a projection: it holds facts already loaded and scoped, and reaching storage or the AEAT for bytes is the host’s job, behind the operation surface that owns progress, failure and cancellation. Retrieving a document here would put I/O inside a projection and bypass all three.

Nothing is being withheld from the operator, whose document it is. The handoff exists so the host opens it through the surface built for that.