feat(#2659): serve hive-matrix-mcp over persistent streamable-http, drop stdio bridge
This commit is contained in:
parent
ae8d1aaac4
commit
a66b7ab298
21 changed files with 411 additions and 856 deletions
36
hive-matrix-mcp/README.md
Normal file
36
hive-matrix-mcp/README.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# hive-matrix-mcp
|
||||
|
||||
Per-agent matrix integration: a long-running daemon
|
||||
(`hive-matrix-daemon`) that holds a matrix-sdk `Client` + sync loop per
|
||||
configured account and serves the matrix tool surface (`send_message`,
|
||||
`send_dm`, `list_rooms`, `read_room`, …) directly over streamable-http.
|
||||
No stdio bridge, no per-turn respawn — claude reconnects to the same
|
||||
stable URL every turn.
|
||||
|
||||
## When to use it
|
||||
|
||||
Look here when changing matrix tool behaviour, multi-account handling,
|
||||
or the incoming-event → todo/wake path. The daemon owns the whole
|
||||
lifecycle: per-account bring-up (`accounts.rs`, `client.rs`), the sync
|
||||
loop that sweeps invites/unread rooms into the harness's in-agent todo
|
||||
socket (`timeline.rs`, `wake.rs`), and the MCP tool router itself
|
||||
(`mcp.rs`).
|
||||
|
||||
## Shape
|
||||
|
||||
One bin (`hive-matrix-daemon`, `src/main.rs`) built from the crate's
|
||||
own lib (`src/lib.rs`):
|
||||
|
||||
- **`accounts.rs`** — multi-account config + the account→`Client`
|
||||
dispatch registry (`main` is always the hive-internal primary; extras
|
||||
come from `HIVE_MATRIX_ACCOUNTS`).
|
||||
- **`client.rs`** — session restore, stale-token recovery, avatar sync,
|
||||
cross-signing bootstrap.
|
||||
- **`timeline.rs`** / **`wake.rs`** — per-sync-callback invite/unread
|
||||
sweeps that push todos onto `HIVE_AGENT_SOCKET`.
|
||||
- **`handlers.rs`** — per-tool dispatch, returns `protocol::DaemonResponse`.
|
||||
- **`mcp.rs`** — the `rmcp` tool router + `serve_http`, resolving each
|
||||
call's optional `account` arg against the registry before calling
|
||||
into `handlers`.
|
||||
- **`paths.rs`** — per-agent path resolution (token file, matrix-sdk
|
||||
state dir, homeserver URL, accounts snapshot).
|
||||
Loading…
Reference in a new issue