toolkit-package separates a discoverable package description from a concrete activation selection. Neither layer executes integration code or grants authority.
Inspect public metadata
The source-builttoolkit-package-inspect command exposes the existing importers through bounded stdin/stdout:
toolkit-package source crate.
Package description
IntegrationPackage contains:
Current
StrategyKind values are remote_mcp, local_mcp, native_adapter, configuration_recipe and research_skill. An acquisition form such as a CLI pack is a composition choice, not an invented additional enum value.
Activation selection
ActivationManifest names exact package identity/content digest, strategy, configuration and policy references, components, exports, required contracts, host services and optional portable MCP entries.
Validation constructs ValidatedManifest, including a canonical payload digest and dependency order. Deserialization alone cannot create that validated value. Host compatibility checks report required gaps and explicit optional degradation before code is imported.
Components
AComponent names its ID/version, source, runtime, placement, lifetime, activation scope, dependencies, host contracts, state, readiness, shutdown and rollback.
A remote endpoint identifies an observed service contract; it does not pretend to pin immutable implementation bytes. Entrypoint arguments are literal argv, not shell expressions.
Selected components must be reachable from selected exports. Dependencies need matching selected versions and an acyclic graph. Request-lifetime components cannot support persistent frontend/daemon dependencies.
Role exports
Service exports declare operations or events, authentication, enforcement, diagnostics and cleanup. Operations include schema digest, declared effect, resource contract and result limits. Package-declared read/write labels are untrusted inputs to the policy owner, not permission decisions. Frontend exports declare modalities and admission, conversation, delivery and optional control/live contracts. A voice contract requirement is not a live-session receipt. Both roles can reference shared components while retaining independent activation and removal.State, shutdown and rollback
State contracts identify namespace, owner, format and owner-bound migrations from accepted prior formats. Each migration names its operation/artifact and whether it is reversible.state_changes_from reports obligations without performing them.
Shutdown declares the owner, operation, maximum wait and whether timeout preserves uncertainty or uses owner-controlled fencing. Rollback is explicitly reversible, irreversible with explanation, or owner reconciliation. A metadata timeout cannot itself kill a process or prove an external effect ended.
Exact structs are in crates/toolkit-package/src/model.rs and manifest.rs. Deployment explains how owners realize this logical model.