cadrumo.application.operations.frontend_projection module

Renderer-neutral operation projection contracts.

class OperationPublicProgressV1(**data)[source]

Bases: BaseModel

Renderer-neutral progress state anchored to an operation event.

Parameters:
  • completed (Annotated[int, Ge(ge=0)])

  • total (Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])])

  • unit_code (OperationEventCode | None)

  • phase_code (OperationEventCode | None)

  • event_sequence (OperationEventSequence)

  • revision (OperationRevision)

completed: NonNegativeInt
total: Annotated[int, Field(gt=0)]
unit_code: OperationEventCode | None
phase_code: OperationEventCode | None
event_sequence: OperationEventSequence
revision: OperationRevision
class OperationNoPendingInteractionV1(**data)[source]

Bases: BaseModel

Explicit public marker for an operation with no pending interaction.

Parameters:

disposition (Literal['none'])

disposition: Literal['none']
class OperationReviewProjectionReferenceV1(**data)[source]

Bases: BaseModel

Safe REVIEW identity; deliberately excludes every response credential.

Parameters:
operation_id: OperationId
interaction_id: OperationInteractionId
revision: OperationRevision
review_projection_schema: OperationSchemaIdentityV1
definition_contract_digest: ContentDigest
expires_at: datetime | None
class OperationReviewAvailableInteractionV1(**data)[source]

Bases: BaseModel

Safe public description of an operation awaiting REVIEW.

Parameters:
disposition: Literal['review_available']
operation_id: OperationId
interaction_id: OperationInteractionId
revision: OperationRevision
presentation_code: OperationEventCode
response_schema: OperationSchemaIdentityV1
expires_at: datetime | None
review_reference: OperationReviewProjectionReferenceV1
class OperationUnsupportedInteractionV1(**data)[source]

Bases: BaseModel

Public marker for a pending interaction the frontend cannot perform.

Parameters:
  • disposition (Literal['unsupported'])

  • interaction_kind (Literal[OperationInteractionKind.INPUT, OperationInteractionKind.CHOICE])

  • interaction_id (OperationInteractionId)

  • revision (OperationRevision)

  • presentation_code (OperationEventCode)

  • unsupported_code (OperationEventCode)

  • expires_at (datetime | None)

disposition: Literal['unsupported']
interaction_kind: Literal[OperationInteractionKind.INPUT, OperationInteractionKind.CHOICE]
interaction_id: OperationInteractionId
revision: OperationRevision
presentation_code: OperationEventCode
unsupported_code: OperationEventCode
expires_at: datetime | None
class OperationPublicProjectionV1(**data)[source]

Bases: BaseModel

Current anchored operation state with no persistence or frontend types.

Parameters:
observation_version: Literal[1]
operation_id: OperationId
definition_id: OperationDefinitionId
subject_ref: OperationReference
revision: OperationRevision
anchor_cursor: OperationEventCursor
definition_contract: OperationPublicDefinitionContractV1
contract_set_digest: ContentDigest
lifecycle: OperationLifecycle
terminal_condition: OperationTerminalCondition | None
effect: OperationEffect
phase_code: OperationEventCode | None
started_at: datetime | None
updated_at: datetime
progress: OperationPublicProgressV1 | None
close_policy: OperationClosePolicy
cancellation: OperationCancellation
cancellable_now: bool
cancellation_requested: bool
cancellation_acknowledged: bool
execution_deadline_at: datetime | None
cleanup_deadline_at: datetime | None
pending_interaction: OperationPublicPendingInteractionV1
result_ref: OperationReference | None
refusal_ref: OperationReference | None
failure_error_code: str | None
diagnostic_ref: OperationDiagnosticReference | None