Expand description
oino-client: how frontends talk to a session.
Every frontend (RPC server, TUI, GPUI, ACP adapter) drives a session through
SessionBackend: Oino RpcCommands in, one ordered stream of
oino_core::events::ClientEvents out, dialog answers via
SessionBackend::ui_respond. The in-process backend passes the enums without
serialisation; oino-rpc’s RpcBackend serialises them over JSONL, so a frontend cannot
tell the two apart.
§API map
| Module | Contents |
|---|---|
protocol | RpcCommand (AgentCommand, OinoCommand), RpcRequest, RpcResponse, RpcSessionState |
backend | SessionBackend, ClientError |
frontend | FrontendApi: typed _oino/* frontend commands (completions, panel actions, shortcuts, editor intents, settings, services, sign-in, topics, agents, queue edits, checkpoints / rewind, running bash, extensions) for every backend |
in_process (feature in-process) | rpc-mode.ts handleCommand |
fake | fake::FakeBackend: scripted events and replies |
The protocol records live here until oino-protocol exists (deviations/modes.md).
Re-exports§
pub use backend::ClientError;pub use backend::SessionBackend;pub use frontend::AgentTree;pub use frontend::FrontendApi;pub use frontend::RenderRow;pub use frontend::RewindOptions;pub use frontend::ShortcutInfo;pub use hub::HubOptions;pub use hub::HubSession;pub use hub::HubSessionState;pub use hub::SessionHub;pub use in_process::InProcessBackend;pub use in_process::ServerInfo;pub use protocol::AgentCommand;pub use protocol::OinoCommand;pub use protocol::RejectedCommand;pub use protocol::RpcCommand;pub use protocol::RpcRequest;pub use protocol::RpcResponse;pub use protocol::RpcResponseData;pub use protocol::RpcSessionState;
Modules§
- backend
- The
SessionBackendcontract every frontend talks to (architecture.md §4.2). - fake
FakeBackend: scripted events and replies, recorded commands. Lets frontends (tui-client, gpui) be built and tested without a runtime.- frontend
FrontendApi: typed_oino/*frontend commands over anySessionBackend.- hub
- E-LAZY lazy session hub (core spec §2.2, WP-C7): a session is a record on disk until a message arrives (infinity’s “spawn driver on demand” as a core type).
- in_
process InProcessBackend: the full command set over anoino-coreAgentSessionRuntime, without serialisation.- protocol
- RPC records (the core command set + Oino
_oino/*, modes.md §3–§4).
Structs§
- Follow
Stream - A
Streamof the current session’s client events.