27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
# 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.
|