Expand description
agent-engine — streaming runtime, tools, MCP, skills, extensions, sidecar, events.
Depends on agent-core + external crates only. Never depends on tui or bin.
Re-exports§
pub use runtime::Runtime;pub use tools::Tool;pub use tools::ToolContext;pub use tools::ToolRegistry;
Modules§
- auth
- OAuth 2.0 Authorization Code + PKCE flow for Anthropic (Claude Pro/Max).
- chain
- Chain pointer management — named bookmarks that auto-advance on compaction.
- config
- core
- Core infrastructure — config, session, auth, logging, error types, protocol.
- engine
- Engine — shared business logic for both TUI and headless modes.
- error
- events
- Event Bus — universal message ingestion for agent sessions.
- extensions
- Extension system for SynapsCLI.
- help
- logging
- mcp
- MCP (Model Context Protocol) integration — JSON-RPC client, tool bridging, lazy loading.
- memory
- Local-first memory store.
- models
- Curated list of Claude models known to work with this CLI. Centralized so the settings dropdown, defaults, and subagent hints agree.
- orchestration
- pricing
- Centralised pricing logic for Anthropic models.
- protocol
- runtime
- session
- sidecar
- Sidecar plugin support: long-running plugin processes that stream events into the host over a JSONL line protocol.
- skills
- Skills and plugins subsystem.
- tools
- Tool system — trait, registry, and built-in tool implementations.
- watcher_
types
Structs§
- Agent
Config - Agent configuration parsed from config.toml
- Agent
Status Info - Runtime info for a single agent (for status display)
- Bounded
Text - A byte-bounded, char-boundary-safe view of a string, with exact accounting of what was kept and what was cut.
- Cancellation
Token - A token which can be used to signal a cancellation request to one or more tasks.
- Handoff
State - What the agent writes for its next self
- Session
- Session
Info - Lightweight info for listing sessions without loading full message history
- Session
Limits - Session
Stats - Stats tracked per agent session
- Synaps
Config - Parsed configuration from the config file.
- Turn
Error - Typed terminal failure carried by
SessionEvent::Error: the human-readable message plus the spec §5.2TurnOutcome.
Enums§
- Agent
Event - Budget
Dimension - Budget dimension placeholder (spec §5.2). The full turn-budget system is
later work (spec §8.1); only the typed surface lands here so
TurnOutcome::BudgetExceededis representable without re-plumbing. - Exit
Reason - Why an agent session ended
- LlmEvent
- Runtime
Error - Session
Event - Stream
Event - Top-level stream event — grouped into concern-specific sub-enums.
- Turn
Outcome - Typed terminal outcome of a model turn (spec §5.2). Produced ONCE by the engine; every frontend (chat, TUI, RPC, server, watcher, subagents) receives the same value and must never re-derive it from message text.
- Value
- Represents any valid JSON value.
- Watcher
Command - Commands sent from CLI to supervisor
- Watcher
Response - Responses from supervisor to CLI
Functions§
- epoch_
millis - Current time as Unix epoch milliseconds. Panics only if system clock is before 1970.
- find_
session - Find a session by full or partial ID match
- find_
session_ by_ name - Find a session by its assigned name (not partial ID). Iterates session headers one file at a time and returns on first match, avoiding a full directory scan when the named session appears early.
- latest_
session - Load the most recently updated session
- list_
recent_ sessions - The
limitmost-recently-modified sessions (by file mtime), most-recent first. Sorts the directory entries by mtime WITHOUT parsing, then reads only the toplimitheaders — so/sessionsis O(limit) reads instead of O(#sessions). mtime is an exact proxy forupdated_at(the file is rewritten on every save). - list_
sessions - List all sessions, sorted by most recently updated.
- load_
config - Parse the config file at ~/.synaps-cli/config (or profile variant). Returns default config if file doesn’t exist or can’t be read.
- next_
turn_ correlation_ id - Process-unique correlation ID for one engine turn. Ties the typed terminal outcome to metadata-only trace/log lines for the same turn.
- resolve_
session - Resolve a query string to a Session. Resolution order:
- resolve_
system_ prompt - Resolve the system prompt from CLI flag, config file, or default. Priority: explicit value > ~/.synaps-cli/system.md > built-in default.
- truncate_
str - Truncate a string to at most
maxbytes at a valid UTF-8 boundary. - validate_
name - Validate a session or chain name: [a-z0-9-]{1,40}.
Type Aliases§
- Result
- Shared
Message - Reference-counted shared message payload. Introduced at the runtime’s
inner boundary (T128 Slice 2) to enable clone-free fan-out of message
history through the stream loop and
SessionEvent::MessageHistory. Outer state (App/Session/ConversationState) remainsVec<Value>and shims at the boundary — see Slice 5 for full conversion.