Provider, ProviderFactory, ProviderHandle | Provider crates and hosts | Resolve a live model provider and execute normalized LlmRequests behind a stable runtime handle. |
ToolProvider | Tool crates, plugins, hosts | Advertise callable tools, resolve contracts, prepare calls, and execute them through core's tool-dispatch and effect boundaries. |
PluginFactory, SessionPlugin, PluginRegistrar | Protocol plugins, tool plugins, host plugins | Install lifecycle hooks, prompt/catalog contributions, session state, tools, projections, and plugin RPCs without exposing mutable runtime internals. |
ProtocolSessionPlugin, ProtocolDriverPlugin, ProtocolDriverHandle<HostTurnProtocol> | lash-protocol-standard, lash-protocol-rlm, custom protocols | Build a per-turn preamble and interpret provider output through the sans-IO machine. Core owns the slot and lifecycle; protocol crates own mode-specific prompts, state, and output parsing. |
ProcessEngine | lash-lashlang-runtime, custom process runtimes | Run opaque ProcessInput::Engine payloads under the generic process registry, lease, cancellation, environment, and event machinery. |
EffectHost, RuntimeEffectController, ScopedEffectController | Inline runtime, lash-restate, workflow adapters | Execute nondeterministic work with typed invocation metadata and replay keys while the turn machine remains deterministic. |
RuntimePersistence, SessionStoreFactory | SQLite, Postgres, host stores | Persist committed session graph state, final turn stamps, checkpoints, pending turn input, queued work, and the fenced session execution lane. |
ProcessRegistry, TriggerStore | SQLite, Postgres, host stores | Persist process records/events/leases/handle grants and source-keyed trigger subscriptions/deliveries. |
AttachmentStore | File, S3-compatible, host stores | Persist or serve attachment bytes while the graph stores refs and metadata. |
ToolResultProjector, ToolCatalogContributor | Plugin crates | Project model-facing tool results and contribute tool-catalog entries through explicit exclusive or additive plugin hooks. |