Skip to content

Design decisions ​

The public architecture follows a small set of decisions that shape every capability.

Portable data and live behavior have separate homes ​

Portable contracts are JSON-compatible, versioned, and explicit about identity. Provider clients, functions, byte resolvers, clocks, journals, and other live behavior enter through typed ports during composition.

Capabilities own their contracts ​

Models, tools, control, evidence, state, context, artifacts, evaluation, and portable agent intent expose explicit package subpaths. Concrete agent and workflow execution belongs to qualified runtime integrations.

Meaningful effects fail closed ​

An effect follows one controlled path: canonical action binding, durable receipt reservation, policy, approval when required, concurrency, durable started state, execution, and terminal settlement or reconciliation.

No best-effort event delivery is treated as proof that an effect did or did not happen.

Receipts use a storage-neutral port ​

Core defines the receipt lifecycle and optimistic journal contract. Applications choose the database or durable system that implements it.

Events are redacted projections ​

Agent events, controlled-execution evidence, and interaction content are distinct closed families. Provider-native observations enter evidence only through validated redacted extensions. Event sinks project facts; they are not authoritative stores.

State names carry guarantees ​

Live continuations, snapshots, resumable checkpoints, provider sessions, and durable execution handles remain separate. Registration and compatibility checks occur before resume.

Integrations are qualified ​

Each published adapter names its host explicitly. There is no broad adapter barrel, and native host types stay behind the adapter boundary.

Version 2 replaces rather than aliases ​

The ESM-only surface uses the final names directly. The migration guide maps deleted 1.x concepts to their current owners.