Expand description
Uniform contract for the coding-cli harness.
Adapters for individual CLIs (Claude Code, Codex, Antigravity, …) plug
into the harness via CliVendor. The harness consumes a
CliRequest, spawns the CLI via an Isolator (sibling crate),
and produces a CliResult while broadcasting a stream of
normalized CodingCliEvents.
See the workspace docs/coding-cli-harness.md for the full design.
Structs§
- Budget
Spec - Budgets shared across the run. Mirrors the budget plumbing in the
rest of the framework but stays decoupled from
atomr-agents-core::TokenBudgetso this crate remains lightweight. - CliCommand
- A concrete process invocation produced by a vendor adapter.
- CliRequest
- Uniform request the harness accepts.
- CliResult
- Final shape of a headless run.
- CliRun
Id - CliSession
Id - Coding
CliEvent Stream - Subscriber handle backed by a
broadcast::Receiver. Drops missed events silently — same semantics asDeepResearchEventStream. - Concept
Projection - Everything the harness hands a vendor adapter before a run so the adapter can materialize on-disk config.
- McpServer
Init - One MCP server the CLI loaded.
- McpServer
Snapshot - One MCP server entry — vendor-agnostic.
- Persona
Snapshot - Identity + behavior of the agent the CLI should impersonate.
- Policy
Snapshot - Narrowed permissions the harness wants enforced by the CLI itself.
- Skill
Snapshot - One skill the CLI should be able to invoke.
- Tool
Call Record - One tool the CLI invoked during the run.
- Tool
Descriptor Init - One tool descriptor reported by the CLI during init.
- Tool
SetSnapshot - A bundled set of MCP servers + standalone tool names. Materializes
to
.mcp.json(Claude),.cursor/mcp.json(Cursor), Codex / Antigravity settings files. - Usage
Summary - Token + cost totals.
Enums§
- CliVendor
Kind - Stable identifier for a vendor adapter. Extensible — third-party
adapters can use
CliVendorKind::Other. - Coding
CliEvent - Normalized lifecycle events. Tagged enum — serializes as
{"kind": "...", ...}so the web client can switch onkind. - Finish
Reason - Why the run finished.
- Isolation
Spec - Where the CLI process runs.
- Mapper
Error - A vendor adapter failed to project atomr concepts onto its on-disk
config (
CLAUDE.md,.cursor/rules/*,AGENTS.md, MCP, …). - Parse
Error - A vendor-side stream parser failed to interpret a line.
- RunMode
- Whether the harness should run the CLI headlessly (parse structured events) or interactively (bridge a tmux session to a browser).
Traits§
- CliEvent
Parser - A stream parser owned by the harness for the lifetime of one run.
- CliVendor
- The integration seam each CLI adapter implements.