hyperhive/hive-agent-sock
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 6ea81aae65 hive-c0re: render the new agent option paths into generated agent flakes
meta.rs writes each agent's flake, and it still named the pre-move
`hyperhive.*` paths — so every agent rebuild would print a rename
deprecation warning about a line no human wrote and no operator could fix.
A warning nobody can act on trains everyone to ignore the ones that matter,
which is the whole value of the alias shims.

Repoints the FORWARDED_VAR_OPTIONS table and every other emitted option
assignment (otel.*, docs.source, claudeCodePath, github.enable, user.name,
claudeMemoryMaxBytes) to `services.hyperhive.agent.*`, with the test
expectations that pin the rendered text. The flake input named `hyperhive`
(`hyperhive.url`, `hyperhive.inputs.nixpkgs.follows`,
`hyperhive.nixosConfigurations.*`), hive-tier `services.hyperhive.*` paths,
and the `@hyperhive.local` git identity share the word and are untouched.

Also repoints the same option paths where they appear in comments, rustdoc
and runtime message strings across the other crates — a refusal message
naming `hyperhive.allowedRecipients` sends an operator to a path that will
stop existing. Prose under docs/ is deliberately not in this commit.

Refs #4473
2026-09-17 20:19:30 +02:00
..
src hive-c0re: render the new agent option paths into generated agent flakes 2026-09-17 20:19:30 +02:00
Cargo.toml subagents: fold hive-extra-mcp into hive-agent-sock per mara's rescoping 2026-09-13 13:57:53 +02:00
README.md subagents: fold hive-extra-mcp into hive-agent-sock per mara's rescoping 2026-09-13 13:57:53 +02:00

hive-agent-sock

What's common across the in-container "agent plugins" — the matrix / bash / subagent MCP daemons and forge_notify today, plus any user-configured MCP server declared in an agent's agent.nix. Two things live here:

Wire types for the in-agent socket

The socket the hive-agent harness serves inside the container to those local producers. Any producer can dial it and push its own todos with an arbitrary subsystem marker — the wire format doesn't restrict the set. Unlike the host-served sockets, this one never leaves the container.

  • the loose-ends-v2 todo op family
  • the harness-local reminder op family

More in-agent request families may be added over time — the socket is deliberately named for the agent, not for the todos.

Why in-container: the harness owns the todo + reminder stores locally and signals its own turn loop directly, so hive-c0re is not in either path: no broker round-trip, no long-poll, no marker files. That locality is the point — it's also what lets these stores travel with the agent for hive portability.

Not to be confused with hive-core-agent-sock: that crate is the host-served core↔agent protocol on /run/hive/mcp.sock (the harness talking out to hive-c0re). This socket is purely intra-container.

extra_mcp: the hyperhive.extraMcpServers spec

Not a socket protocol — a shared config type. Parses /etc/hyperhive/extra-mcp.json (the nix-rendered hyperhive.extraMcpServers option) and renders each entry into the shape claude expects in a --mcp-config blob. Shared by hive-agent (the main session's servers) and hive-subagent-mcp (the subagent-eligible subset, gated on availableToSubagents) — both already depend on this crate for the socket types above, so a new plugin-facing shared type belongs here rather than in a crate of its own.