# ASM v0.9.2 - Table of Contents Lean OTP-correct multi-provider CLI session runtime (ASM). ## Pages - Project Overview - [Overview](overview.md) - Foundations - [Execution Plane Alignment](execution-plane-alignment.md) - [Lane Selection](lane-selection.md) - [Provider Backends](provider-backends.md) - [Inference Endpoints](inference-endpoints.md) - [Common And Partial Provider Features](common-and-partial-provider-features.md) - [Provider SDK Extensions](provider-sdk-extensions.md) - Runtime - [Event Model And Result Projection](event-model-and-result-projection.md) - [Approvals And Interrupts](approvals-and-interrupts.md) - [Remote Node Execution](remote-node-execution.md) - [Live Adapters](live-adapters.md) - Examples - [Examples](examples.md) - Architecture - [Boundary Enforcement](boundary-enforcement.md) - Reference - [Changelog](changelog.md) - [License](license.md) ## Modules - [ASM.Cost](ASM.Cost.md): Cost helpers for token usage projection and accumulation. - [ASM.Cost.Models](ASM.Cost.Models.md): Lightweight model pricing lookup table for provider cost estimation. - [ASM.Execution.Config](ASM.Execution.Config.md): Normalized execution-mode, execution-surface, and execution-environment configuration with precedence-aware merging. - [ASM.Execution.Environment](ASM.Execution.Environment.md): Normalized runtime environment and policy context for ASM execution. - [ASM.Extensions](ASM.Extensions.md): Boundary root for optional extension domains. - [ASM.Migration.MainCompat](ASM.Migration.MainCompat.md): Compatibility helpers for migrating `main` SessionManager input/event shapes to the rebuild `ASM` runtime. - [ASM.Remote.BackendStarter](ASM.Remote.BackendStarter.md): Remote RPC entrypoint for starting backend sessions. - [ASM.Remote.Capabilities](ASM.Remote.Capabilities.md): Remote node capability and compatibility handshake helpers. - [ASM.Remote.NodeConnector](ASM.Remote.NodeConnector.md): Remote node connection and preflight checks. - [ASM.Schema.Event](ASM.Schema.Event.md): Schema-backed parser for ASM runtime event envelopes before projection into `%ASM.Event{}`. - [ASM.Schema.ProviderOptions](ASM.Schema.ProviderOptions.md): ASM-owned schema validation for provider option maps and provider profile limits. - [ASM.Schema.RemoteNode](ASM.Schema.RemoteNode.md): Schema-backed parser for remote node execution configuration owned by ASM. - [ASM.Telemetry](ASM.Telemetry.md): Telemetry helpers for standard ASM runtime lifecycle signals. - [ASM.Test](ASM.Test.md): Test helpers for quickly creating sessions and provider fixtures. - [ASM.Test.Factory](ASM.Test.Factory.md): Builders for normalized runtime structs used in tests. - Public API - [ASM](ASM.md): Public facade for the ASM session runtime. - [ASM.Error](ASM.Error.md): Canonical runtime error type for ASM. - [ASM.Event](ASM.Event.md): Run-scoped envelope around normalized core runtime events. - [ASM.History](ASM.History.md): Replay and rebuild helpers on top of `ASM.Store`. - [ASM.InferenceEndpoint](ASM.InferenceEndpoint.md): Publishes CLI-backed ASM providers as endpoint-shaped inference targets. - [ASM.Permission](ASM.Permission.md): Normalizes permission modes into a common runtime model. - [ASM.ProviderRegistry](ASM.ProviderRegistry.md): Resolves providers to backend lanes and runtime metadata. - [ASM.Result](ASM.Result.md): Final run projection returned by `ASM.query/3`. - [ASM.Stream](ASM.Stream.md): Stream helpers for run event consumption and final result projection. - Inference Endpoint Contracts - [ASM.InferenceEndpoint.BackendManifest](ASM.InferenceEndpoint.BackendManifest.md): Shared backend manifest contract for the ASM CLI inference endpoint facade. - [ASM.InferenceEndpoint.CompatibilityResult](ASM.InferenceEndpoint.CompatibilityResult.md): Shared compatibility result contract for ASM endpoint publication. - [ASM.InferenceEndpoint.ConsumerManifest](ASM.InferenceEndpoint.ConsumerManifest.md): Shared consumer manifest contract for the ASM inference endpoint facade. - [ASM.InferenceEndpoint.EndpointDescriptor](ASM.InferenceEndpoint.EndpointDescriptor.md): Shared endpoint publication contract for CLI-backed ASM inference routes. - Backends - [ASM.ProviderBackend](ASM.ProviderBackend.md): Runtime contract for provider backends. - [ASM.ProviderBackend.Core](ASM.ProviderBackend.Core.md): Backend that runs the shared CLI runtime from `cli_subprocess_core`. - [ASM.ProviderBackend.SDK](ASM.ProviderBackend.SDK.md): Backend that runs provider SDK runtime kits when available locally. - Providers - [ASM.Options](ASM.Options.md): Shared runtime options validation and normalization. - [ASM.Provider](ASM.Provider.md): Provider definition data used by the backend registry. - [ASM.ProviderFeatures](ASM.ProviderFeatures.md): Public provider feature manifests for ASM. - [ASM.Options.Amp](ASM.Options.Amp.md): Amp provider-specific option schema. - [ASM.Options.Claude](ASM.Options.Claude.md): Claude provider-specific option schema. - [ASM.Options.Codex](ASM.Options.Codex.md): Codex exec provider-specific option schema. - [ASM.Options.Gemini](ASM.Options.Gemini.md): Gemini provider-specific option schema. - [ASM.Options.Shell](ASM.Options.Shell.md): Shell provider-specific option schema. - [ASM.Provider.ExampleSupport](ASM.Provider.ExampleSupport.md): Provider-specific values used by examples and setup guidance. - [ASM.Provider.Profile](ASM.Provider.Profile.md): Session admission defaults for a provider. - [ASM.ProviderBackend.Event](ASM.ProviderBackend.Event.md): ASM-owned event delivery envelope emitted by provider backends. - [ASM.ProviderBackend.Info](ASM.ProviderBackend.Info.md): ASM-owned backend metadata contract consumed by the orchestration kernel. - Runtime - [ASM.SessionControl](ASM.SessionControl.md): Provider-native session control helpers for historical resume and interrupt-then-intervene flows. - [ASM.SessionControl.Entry](ASM.SessionControl.Entry.md): Standardized provider-native resumable session entry. - [ASM.Run.ApprovalCoordinator](ASM.Run.ApprovalCoordinator.md): Pure state helper for approval ownership indexing. - [ASM.Run.EventReducer](ASM.Run.EventReducer.md): Deterministic reducer from run-scoped events to result projections. - [ASM.Run.Server](ASM.Run.Server.md): Per-run worker that owns backend lifecycle and event fanout. - [ASM.Run.State](ASM.Run.State.md): Run process state with reducer-owned projection fields. - [ASM.Run.Supervisor](ASM.Run.Supervisor.md): Dynamic supervisor for per-run workers. - [ASM.Session.Continuation](ASM.Session.Continuation.md): Session checkpoint helpers for capture and restore seams. - [ASM.Session.Server](ASM.Session.Server.md): Session aggregate root for run admission, approval routing, and cost totals. - [ASM.Session.State](ASM.Session.State.md): Aggregate state owned by `ASM.Session.Server`. - [ASM.Session.Subtree](ASM.Session.Subtree.md): Per-session supervision subtree. - [ASM.Session.Supervisor](ASM.Session.Supervisor.md): Root dynamic supervisor for session subtrees. - Streaming & Tooling - [ASM.Store](ASM.Store.md): Persistence contract for event storage and replay. - [ASM.Tool](ASM.Tool.md): Behaviour for run-time tool handlers. - [ASM.Store.Memory](ASM.Store.Memory.md): In-memory event store with idempotent append by event id. - [ASM.Tool.Executor](ASM.Tool.Executor.md): Synchronous tool execution adapter used by `ASM.Run.Server`. - [ASM.Tool.MCP](ASM.Tool.MCP.md): Optional MCP tool bridge placeholder. - Pipeline - [ASM.Pipeline](ASM.Pipeline.md): Synchronous event pipeline with optional event injection. - [ASM.Pipeline.CostTracker](ASM.Pipeline.CostTracker.md): Pipeline plug that emits `:cost_update` control events from result usage. - [ASM.Pipeline.Plug](ASM.Pipeline.Plug.md): Behaviour for synchronous run-event pipeline plugs. - [ASM.Pipeline.PolicyGuard](ASM.Pipeline.PolicyGuard.md): Pipeline plug that enforces lightweight policy checks on events. - Payload Types - [ASM.Content](ASM.Content.md): Content block variants shared across messages. - [ASM.Control](ASM.Control.md): Control-layer payload variants. - [ASM.Message](ASM.Message.md): Conversation-layer payload variants. - [ASM.Content.Text](ASM.Content.Text.md): Plain text content emitted by a model response. - [ASM.Content.Thinking](ASM.Content.Thinking.md): Provider thinking content, optionally signed when supported. - [ASM.Content.ToolResult](ASM.Content.ToolResult.md): Tool response payload linked to a prior tool call. - [ASM.Content.ToolUse](ASM.Content.ToolUse.md): Structured request to invoke a named tool with JSON input. - [ASM.Control.ApprovalRequest](ASM.Control.ApprovalRequest.md): Tool approval prompt emitted when the provider requires operator input. - [ASM.Control.ApprovalResolution](ASM.Control.ApprovalResolution.md): Approval decision sent back to resume or block a tool call. - [ASM.Control.CostUpdate](ASM.Control.CostUpdate.md): Incremental token and cost accounting update. - [ASM.Control.GuardrailTrigger](ASM.Control.GuardrailTrigger.md): Signal that a policy/guardrail rule was triggered. - [ASM.Control.Raw](ASM.Control.Raw.md): Provider-native control event preserved in normalized form. - [ASM.Control.RunLifecycle](ASM.Control.RunLifecycle.md): Run lifecycle checkpoint emitted by the runtime. - [ASM.Message.Assistant](ASM.Message.Assistant.md): Assistant-authored message composed of one or more content blocks. - [ASM.Message.Error](ASM.Message.Error.md): Structured error message emitted by the provider/runtime. - [ASM.Message.Partial](ASM.Message.Partial.md): Incremental text or thinking delta emitted during streaming. - [ASM.Message.Raw](ASM.Message.Raw.md): Provider-native message event preserved in normalized form. - [ASM.Message.Result](ASM.Message.Result.md): Terminal metadata describing why a run completed. - [ASM.Message.System](ASM.Message.System.md): System-level initialization payloads. - [ASM.Message.Thinking](ASM.Message.Thinking.md): Provider thinking payload emitted as a top-level message. - [ASM.Message.ToolResult](ASM.Message.ToolResult.md): Result returned to the model for a previously requested tool call. - [ASM.Message.ToolUse](ASM.Message.ToolUse.md): Request from the model to execute a tool. - [ASM.Message.User](ASM.Message.User.md): User-authored message composed of one or more content blocks. - Extensions/Persistence - [ASM.Extensions.Persistence](ASM.Extensions.Persistence.md): Public persistence extension API. - [ASM.Extensions.Persistence.Adapter](ASM.Extensions.Persistence.Adapter.md): Store adapter contract for persistence extension implementations. - [ASM.Extensions.Persistence.FileStore](ASM.Extensions.Persistence.FileStore.md): Durable append-only event store backed by a local file. - [ASM.Extensions.Persistence.PipelinePlug](ASM.Extensions.Persistence.PipelinePlug.md): Non-blocking pipeline plug that forwards events to an async persistence writer. - [ASM.Extensions.Persistence.Writer](ASM.Extensions.Persistence.Writer.md): Async writer process that persists events outside the run process path. - Extensions/Routing - [ASM.Extensions.Routing](ASM.Extensions.Routing.md): Public routing extension API. - [ASM.Extensions.Routing.HealthTracker](ASM.Extensions.Routing.HealthTracker.md): Provider health state machine with temporary exclusion windows. - [ASM.Extensions.Routing.Router](ASM.Extensions.Routing.Router.md): Extension-owned routing process for provider selection and failover. - [ASM.Extensions.Routing.Strategy](ASM.Extensions.Routing.Strategy.md): Selection strategy contract for routing provider candidates. - [ASM.Extensions.Routing.Strategy.Priority](ASM.Extensions.Routing.Strategy.Priority.md): Stable priority strategy that always picks the lowest priority value. - [ASM.Extensions.Routing.Strategy.RoundRobin](ASM.Extensions.Routing.Strategy.RoundRobin.md): Deterministic round-robin strategy. - [ASM.Extensions.Routing.Strategy.Weighted](ASM.Extensions.Routing.Strategy.Weighted.md): Deterministic weighted round-robin strategy. - Extensions/Policy - [ASM.Extensions.Policy](ASM.Extensions.Policy.md): Public policy extension API. - [ASM.Extensions.Policy.Enforcer](ASM.Extensions.Policy.Enforcer.md): Sync-only policy pipeline plug. - [ASM.Extensions.Policy.Violation](ASM.Extensions.Policy.Violation.md): Normalized policy-violation descriptor with explicit action semantics. - Extensions/Rendering - [ASM.Extensions.Rendering](ASM.Extensions.Rendering.md): Public rendering extension API. - [ASM.Extensions.Rendering.Renderer](ASM.Extensions.Rendering.Renderer.md): Behaviour for rendering `%ASM.Event{}` values into display iodata. - [ASM.Extensions.Rendering.Renderers.Compact](ASM.Extensions.Rendering.Renderers.Compact.md): Compact token renderer for `%ASM.Event{}` streams. - [ASM.Extensions.Rendering.Renderers.Verbose](ASM.Extensions.Rendering.Renderers.Verbose.md): Verbose line-by-line renderer for `%ASM.Event{}` streams. - [ASM.Extensions.Rendering.Sink](ASM.Extensions.Rendering.Sink.md): Behaviour for sink destinations that receive rendered iodata and events. - [ASM.Extensions.Rendering.Sinks.Callback](ASM.Extensions.Rendering.Sinks.Callback.md): Sink that forwards events and rendered iodata to a callback function. - [ASM.Extensions.Rendering.Sinks.File](ASM.Extensions.Rendering.Sinks.File.md): Sink that writes rendered output to a file with ANSI escape codes stripped. - [ASM.Extensions.Rendering.Sinks.JSONL](ASM.Extensions.Rendering.Sinks.JSONL.md): Sink that writes events as newline-delimited JSON. - [ASM.Extensions.Rendering.Sinks.TTY](ASM.Extensions.Rendering.Sinks.TTY.md): Sink that writes rendered output to an IO device (default: `:stdio`). - Extensions/Workspace - [ASM.Extensions.Workspace](ASM.Extensions.Workspace.md): Public workspace extension API. - [ASM.Extensions.Workspace.Backend](ASM.Extensions.Workspace.Backend.md): Behavior contract for workspace snapshot backends. - [ASM.Extensions.Workspace.Diff](ASM.Extensions.Workspace.Diff.md): Workspace diff result between two snapshots. - [ASM.Extensions.Workspace.GitBackend](ASM.Extensions.Workspace.GitBackend.md): Git-backed workspace snapshots, diffs, and rollback. - [ASM.Extensions.Workspace.HashBackend](ASM.Extensions.Workspace.HashBackend.md): Filesystem hash backend used when git snapshots are unavailable. - [ASM.Extensions.Workspace.Snapshot](ASM.Extensions.Workspace.Snapshot.md): Immutable workspace snapshot descriptor. - Extensions/PubSub - [ASM.Extensions.PubSub](ASM.Extensions.PubSub.md): Public PubSub extension API. - [ASM.Extensions.PubSub.Adapter](ASM.Extensions.PubSub.Adapter.md): Behaviour for PubSub adapter implementations. - [ASM.Extensions.PubSub.Adapters.Local](ASM.Extensions.PubSub.Adapters.Local.md): Local in-node PubSub adapter built on `Registry` duplicate keys. - [ASM.Extensions.PubSub.Adapters.Phoenix](ASM.Extensions.PubSub.Adapters.Phoenix.md): Phoenix PubSub adapter. - [ASM.Extensions.PubSub.Broadcaster](ASM.Extensions.PubSub.Broadcaster.md): Async broadcaster process that publishes `%ASM.Event{}` outside run-critical paths. - [ASM.Extensions.PubSub.Payload](ASM.Extensions.PubSub.Payload.md): Canonical payload contract for PubSub broadcast events. - [ASM.Extensions.PubSub.PipelinePlug](ASM.Extensions.PubSub.PipelinePlug.md): Non-blocking pipeline plug that forwards events to an async PubSub broadcaster. - [ASM.Extensions.PubSub.Topic](ASM.Extensions.PubSub.Topic.md): Canonical topic strategy for PubSub event fanout. - Extensions/Provider Native - [ASM.Extensions.Provider](ASM.Extensions.Provider.md): Boundary root reserved for provider add-on extension domains. - [ASM.Extensions.ProviderSDK](ASM.Extensions.ProviderSDK.md): Public discovery API for optional provider-native extension namespaces. - [ASM.Extensions.ProviderSDK.Claude](ASM.Extensions.ProviderSDK.Claude.md): Discovery metadata and bridge helpers for the optional Claude-native ASM extension namespace. - [ASM.Extensions.ProviderSDK.Codex](ASM.Extensions.ProviderSDK.Codex.md): Discovery metadata and bridge helpers for the optional Codex-native ASM extension namespace. - [ASM.Extensions.ProviderSDK.Extension](ASM.Extensions.ProviderSDK.Extension.md): Metadata contract for an optional provider-native ASM extension namespace.