Expand description
oino-core: the coding-agent runtime for Oino.
The composition root of the runtime crates: oino-agent (loop), oino-tools (built-ins),
oino-settings, oino-resources, oino-models and oino-session. Providers and
extensions are reached only through the extensions::api traits (implemented by the
WASM host); core contains no provider code and never depends on wasmtime.
§API map
| Module | Contents |
|---|---|
services | services::Services per cwd, services::ExtensionLoader, services::HostRouter |
runtime | runtime::AgentSessionRuntime: create, new/switch/fork/clone/import |
safe_mode | safe_mode::SafeMode: failed-start counter, suspects, -ne plan |
session | session::AgentSession: prompts, queues (+ single-item edits), models, tools, compaction, retry, bash (+ detach), tree, stats, export, file checkpoints |
extensions | instance contract, host operations, registries, composition dispatch, turn arbiter |
agents | nested AgentSessions behind agents.spawn: agents::ChildAgent, agents::AgentSpec |
provider | provider::ProviderStream: requests to provider components |
compaction | cut points, summaries, branch summaries, overflow/retry classification |
events | events::ClientEvent and friends (move to oino-protocol) |
ui | ui::UiBridge: dialogs, fire-and-forget requests, dismissals |
hub | hub::EventHub: ordered, bounded, coalescing fan-out |
topics | topics::TopicStore: sticky bus topics mirrored to frontends (_oino/topics, oino:git) |
builtin | built-in tools bound to session context |
export | self-contained HTML export |
testing (feature) | — |
Modules§
- agents
- Nested agents (runtime §12, D8): extensions spawn child
AgentSessions in the same process throughagents.spawn. Children share the parent’s services (settings, resources, models, provider components) and may run with none, all or some of its extensions. - builtin
- Built-in tools of a session (
oino-toolswired to the session’s settings and context). - compaction
- Compaction and branch summarisation, plus the assistant error classification core reuses for overflow recovery and auto-retry.
- events
- Client events (runtime.md §6):
AgentSessionEventplus the other client events. - export
- Self-contained HTML export of a session branch (structure: header, messages, tool calls, collapsed thinking, embedded CSS, no external assets).
- extensions
- Extension runner over native extension instances.
- hub
- Ordered client event fan-out with bounded, coalescing subscriber queues (architecture.md §4.2).
- provider
- Provider dispatch: the
StreamFnthat talks only to provider extensions. - runtime
AgentSessionRuntime(agent-session-runtime+createAgentSession): owns the currentAgentSession, replaces it on new/switch/fork/clone/import, and keeps one client event stream across replacements.- safe_
mode - Safe mode (X-SAFE, spec-core §2.3.3): after two consecutive failed starts, the next start
runs with extensions off and providers on (
-nesemantics — the agent stays usable), and a banner diagnostic names the recorded suspects. - services
- Per-cwd services: settings, resources, models + auth, loaded extensions, the provider stream and the host router extensions call back into.
- session
AgentSession: agent lifecycle, persistence, prompts, queues, models, tools, compaction, retry, bash, tree navigation and the extension bindings of one session.- topics
- Frontend topic feed (
_oino/topics, modes §4): the sticky bus topics extensions publish (an embedder’sacme:long-horizon:state,acme:workflow:status,acme:bg:tasks,acme:fusion:status,acme:kanboard:status, …) plus the core’s ownoino:gittopic, mirrored to subscribed frontends ascrate::events::OinoEvent::Topic. - ui
- Extension UI plumbing (ui-protocol.md §2–§6, §9).