Skip to main content

oino_core/
lib.rs

1//! `oino-core`: the coding-agent runtime for Oino.
2//!
3//! The composition root of the runtime crates: `oino-agent` (loop), `oino-tools` (built-ins),
4//! `oino-settings`, `oino-resources`, `oino-models` and `oino-session`. Providers and
5//! extensions are reached only through the [`extensions::api`] traits (implemented by the
6//! WASM host); core contains no provider code and never depends on wasmtime.
7//!
8//! # API map
9//!
10//! | Module | Contents |
11//! |---|---|
12//! | [`services`] | [`services::Services`] per cwd, [`services::ExtensionLoader`], [`services::HostRouter`] |
13//! | [`runtime`] | [`runtime::AgentSessionRuntime`]: create, new/switch/fork/clone/import |
14//! | [`safe_mode`] | [`safe_mode::SafeMode`]: failed-start counter, suspects, `-ne` plan |
15//! | [`session`] | [`session::AgentSession`]: prompts, queues (+ single-item edits), models, tools, compaction, retry, bash (+ detach), tree, stats, export, file checkpoints |
16//! | [`extensions`] | instance contract, host operations, registries, composition dispatch, turn arbiter |
17//! | [`agents`] | nested `AgentSession`s behind `agents.spawn`: [`agents::ChildAgent`], [`agents::AgentSpec`] |
18//! | [`provider`] | [`provider::ProviderStream`]: requests to provider components |
19//! | [`compaction`] | cut points, summaries, branch summaries, overflow/retry classification |
20//! | [`events`] | [`events::ClientEvent`] and friends (move to `oino-protocol`) |
21//! | [`ui`] | [`ui::UiBridge`]: dialogs, fire-and-forget requests, dismissals |
22//! | [`hub`] | [`hub::EventHub`]: ordered, bounded, coalescing fan-out |
23//! | [`topics`] | [`topics::TopicStore`]: sticky bus topics mirrored to frontends (`_oino/topics`, `oino:git`) |
24//! | [`builtin`] | built-in tools bound to session context |
25//! | [`export`] | self-contained HTML export |
26//! | `testing` (feature) | — | faux provider component, fake extensions, in-memory sessions |
27
28#![forbid(unsafe_code)]
29#![cfg_attr(
30    test,
31    allow(
32        clippy::unwrap_used,
33        clippy::expect_used,
34        clippy::panic,
35        reason = "tests assert by unwrapping"
36    )
37)]
38
39pub mod agents;
40pub mod builtin;
41pub mod compaction;
42pub mod events;
43pub mod export;
44pub mod extensions;
45pub mod hub;
46pub mod provider;
47pub mod runtime;
48pub mod safe_mode;
49pub mod services;
50pub mod session;
51#[cfg(feature = "testing")]
52pub mod testing;
53pub mod topics;
54pub mod ui;