hive-subagent-mcp: new crate for the subagent daemon, independent of hive-bash-mcp

This commit is contained in:
damocles 2026-09-09 18:15:28 +02:00
commit 7699db6500
9 changed files with 646 additions and 9 deletions

View file

@ -0,0 +1,27 @@
# hive-subagent-mcp
Per-agent daemon (`hive-subagent-daemon`) that spawns nested headless
`claude` sessions on request and serves the tool surface
(`start`/`continue`/`interrupt`) directly over streamable-http. No
stdio bridge, no per-turn respawn — claude reconnects to the same
stable URL every turn.
Independent of `hive-bash-mcp` — a subagent spawns a full nested
`claude` session, a much heavier capability than a bash command, worth
its own deployable/restartable unit.
## Shape
One bin (`hive-subagent-daemon`, `src/main.rs`) built from the crate's
own lib (`src/lib.rs`):
- **`session.rs`** — the actual claude-facing logic: `Claude::spawn` +
`RunningClaude::wait`/`cancel_handle` (not `InfiniteSession::run`,
which has no cancel handle to reach in — see the module doc for the
v1 scope this trades away), the in-memory `running` map that's the
_only_ state this daemon keeps (no task files — a restart stops
whatever's running; the actual claude session is the durable store,
found again by name via `hive_claude::SessionStore`).
- **`mcp.rs`** — the `rmcp` tool router (`start`/`continue`/`interrupt`)
- `serve_http`.
- **`paths.rs`** — the in-agent todo-socket path.