Skip to content

Boundary models

All library boundary models are strict, frozen Pydantic v2 models that forbid extra fields. Money uses Decimal and requires an explicit uppercase three-letter currency. It preserves three-decimal and other valid precisions; the host validates the permitted minor units for its currency or payment rail.

models

Experimental, framework-neutral action boundary models.

SafeReference module-attribute

SafeReference = Annotated[str, StringConstraints(min_length=1, max_length=255), AfterValidator(_validate_safe_reference)]

EffectKind module-attribute

EffectKind = Literal['single', 'itemized']

CurrencyCode module-attribute

CurrencyCode = Annotated[str, StringConstraints(pattern='^[A-Z]{3}$')]

ActionName module-attribute

ActionName = Annotated[str, StringConstraints(pattern='^[a-z][a-z0-9_]*$')]

ActionNamespace module-attribute

ActionNamespace = Annotated[str, StringConstraints(pattern='^[a-z][a-z0-9_]*(?:\\.[a-z][a-z0-9_]*)+$')]

Participant module-attribute

Participant = Annotated[RequestingPrincipal | ProposingAgent | ConfirmingAuthority | GovernedExecutor | AuthoritativeTarget | EvidenceConsumer, Field(discriminator='kind')]

ExperimentalModel

Bases: BaseModel

Strict, immutable base for the experimental public contract.

model_config class-attribute instance-attribute

model_config = ConfigDict(extra='forbid', strict=True, frozen=True)

Money

Bases: ExperimentalModel

A monetary amount whose currency is explicit and precision is host-validated.

amount instance-attribute

amount: Annotated[Decimal, Field(max_digits=28)]

currency instance-attribute

currency: CurrencyCode

ActionType

Bases: ExperimentalModel

A host-defined action name with an explicit contract version.

namespace instance-attribute

namespace: ActionNamespace

name instance-attribute

name: ActionName

version instance-attribute

version: Annotated[int, Field(ge=1)]

LifecycleStatus

Bases: StrEnum

Closed lifecycle vocabulary for proposal execution and verification.

AWAITING_AUTHORITY class-attribute instance-attribute

AWAITING_AUTHORITY = 'awaiting_authority'

DENIED class-attribute instance-attribute

DENIED = 'denied'

EXPIRED class-attribute instance-attribute

EXPIRED = 'expired'

AUTHORIZED class-attribute instance-attribute

AUTHORIZED = 'authorized'

BLOCKED class-attribute instance-attribute

BLOCKED = 'blocked'

STALE class-attribute instance-attribute

STALE = 'stale'

SUPERSEDED class-attribute instance-attribute

SUPERSEDED = 'superseded'

EXECUTING class-attribute instance-attribute

EXECUTING = 'executing'

FAILED_KNOWN class-attribute instance-attribute

FAILED_KNOWN = 'failed_known'

FAILED_UNKNOWN class-attribute instance-attribute

FAILED_UNKNOWN = 'failed_unknown'

VERIFICATION_PENDING class-attribute instance-attribute

VERIFICATION_PENDING = 'verification_pending'

VERIFICATION_UNRESOLVED class-attribute instance-attribute

VERIFICATION_UNRESOLVED = 'verification_unresolved'

PARTIALLY_SUCCEEDED class-attribute instance-attribute

PARTIALLY_SUCCEEDED = 'partially_succeeded'

VERIFIED class-attribute instance-attribute

VERIFIED = 'verified'

RequestingPrincipal

Bases: ExperimentalModel

kind class-attribute instance-attribute

kind: Literal['requesting_principal'] = 'requesting_principal'

reference instance-attribute

reference: SafeReference

ProposingAgent

Bases: ExperimentalModel

kind class-attribute instance-attribute

kind: Literal['proposing_agent'] = 'proposing_agent'

reference instance-attribute

reference: SafeReference

ConfirmingAuthority

Bases: ExperimentalModel

kind class-attribute instance-attribute

kind: Literal['confirming_authority'] = 'confirming_authority'

reference instance-attribute

reference: SafeReference

GovernedExecutor

Bases: ExperimentalModel

kind class-attribute instance-attribute

kind: Literal['governed_executor'] = 'governed_executor'

reference instance-attribute

reference: SafeReference

AuthoritativeTarget

Bases: ExperimentalModel

kind class-attribute instance-attribute

kind: Literal['authoritative_target'] = 'authoritative_target'

reference instance-attribute

reference: SafeReference

EvidenceConsumer

Bases: ExperimentalModel

kind class-attribute instance-attribute

kind: Literal['evidence_consumer'] = 'evidence_consumer'

reference instance-attribute

reference: SafeReference

_validate_safe_reference

_validate_safe_reference(value: str) -> str