Skip to main content

a3s_code_core/capability/
mod.rs

1//! Immutable, source-owned capability identity and scoped lifecycle kernel.
2//!
3//! This module deliberately contains no package resolution, runtime
4//! activation, or mutable latest-value registry. A capability source submits
5//! one complete contribution, and [`CapabilitySet`] freezes the validated
6//! descriptors behind an [`std::sync::Arc`]. Typed scopes add monotonic
7//! ceilings, borrowed leases, reversible effects, and bounded structured
8//! teardown. Closed runtime values and typestate transactions publish one
9//! complete projected generation through a short catalog CAS.
10
11mod agent_execution;
12mod ceiling;
13mod descriptor;
14mod effect;
15mod error;
16mod flow_binding;
17mod id;
18mod knowledge_surface_binding;
19mod lease;
20mod projection;
21mod projection_error;
22mod readiness;
23mod run_binding;
24mod runtime;
25mod scope;
26mod scope_error;
27mod sdk_batch;
28mod set;
29mod source;
30mod supervisor;
31mod transaction;
32mod ui_binding;
33mod value;
34
35pub use crate::mcp::McpBinding;
36pub(crate) use agent_execution::{
37    AgentCapabilityOperation, AgentCapabilityRuntime, AgentCapabilitySubtask, AgentCapabilityTurn,
38    AgentToolCapabilityContext,
39};
40pub use ceiling::{
41    CapabilityCeiling, CapabilityExecutionCeiling, GovernanceCapabilityCeiling,
42    WorkspaceCapabilityCeiling, CAPABILITY_CEILING_SCHEMA,
43};
44pub use descriptor::{CapabilityContribution, CapabilityDescriptor, MAX_CAPABILITY_DEPENDENCIES};
45pub use effect::{CapabilityEffect, CapabilityEffectError};
46pub use error::CapabilitySetError;
47pub use flow_binding::FlowBinding;
48pub use id::{
49    CapabilityId, CapabilityKind, CapabilitySourceId, CodeCatalogGeneration, Sha256Digest,
50    UseCapabilityGeneration, UsePackageGeneration, MAX_CAPABILITY_IDENTIFIER_BYTES,
51    USE_CAPABILITY_SNAPSHOT_CURSOR_SCHEMA,
52};
53pub use knowledge_surface_binding::{
54    KnowledgeSurfaceBinding, KnowledgeSurfaceBindingError, KnowledgeSurfaceBindingSpec,
55    KNOWLEDGE_SURFACE_BINDING_SCHEMA, MAX_KNOWLEDGE_SURFACE_PROJECTIONS,
56};
57pub use lease::{CapabilityLease, RetainedUseGeneration};
58pub use projection::{
59    CapabilityCatalog, CapabilityCatalogStamp, CapabilityCleanupReport, CapabilityCommitReceipt,
60    CapabilityProjection, CapabilityProjectionLease,
61};
62pub use projection_error::{CapabilityAdapterError, CapabilityProjectionError};
63pub use readiness::{
64    CapabilityReadinessPlan, CAPABILITY_READINESS_PLAN_SCHEMA, MAX_CAPABILITY_READINESS_WAVES,
65};
66pub use run_binding::{
67    RunCapabilityBindingError, RunCapabilityBindingV1, RunUseCapabilityGenerationV1,
68    CAPABILITY_CEILING_DIGEST_DOMAIN, RUN_CAPABILITY_BINDING_SCHEMA,
69};
70pub use runtime::{
71    CapabilityRuntimeError, SessionCapabilityBatch, SessionCapabilityRun, UseGenerationLeaseError,
72    UseGenerationLeaseProvider,
73};
74pub use scope::{
75    CapabilityScope, CapabilityScopeHandle, CapabilityScopeId, CapabilityScopeKind, Run, ScopeKind,
76    Session, Subtask, Turn,
77};
78pub use scope_error::CapabilityScopeError;
79pub use sdk_batch::{
80    SdkCapabilityBatchError, SdkCapabilityBatchV1, SdkCapabilityCommitReceiptV1,
81    SdkSkillCapabilityV1, SDK_CAPABILITY_BATCH_SCHEMA,
82};
83pub use set::{
84    CapabilitySet, CAPABILITY_SET_DIGEST_DOMAIN, CAPABILITY_SET_SCHEMA, MAX_CAPABILITIES,
85    MAX_CAPABILITY_CANONICAL_BYTES, MAX_CAPABILITY_DEPENDENCY_EDGES, MAX_CAPABILITY_SOURCES,
86};
87pub use source::{CapabilitySource, CapabilitySourceClass};
88pub(crate) use supervisor::SupervisedTaskSpawner;
89pub use supervisor::{
90    ScopeClosePolicy, ScopeCloseReport, SupervisedTaskId, DEFAULT_SCOPE_CLOSE_TIMEOUT,
91    MAX_SCOPE_CHILDREN, MAX_SCOPE_CLOSE_TIMEOUT, MAX_SCOPE_EFFECTS, MAX_SCOPE_TASKS,
92};
93pub use transaction::{
94    CapabilityProjectionAdapter, CapabilityTxn, Prepared, PreparedCapability, Staged, Validated,
95    MAX_CAPABILITY_TRANSACTION_EFFECTS,
96};
97pub use ui_binding::{
98    UiAsset, UiAssetKind, UiBinding, UiBindingError, UiBindingSpec, UiDocument,
99    MAX_UI_ASSETS_PER_KIND, MAX_UI_ASSET_BYTES, MAX_UI_DOCUMENT_BYTES, UI_BINDING_SCHEMA,
100    UI_DOCUMENT_SCHEMA,
101};
102pub use value::CapabilityValue;