hyperhive/hive-sh4re
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 87970a8c93 mcp: remove the restart/kill/start/update/get_logs agent verbs
Container lifecycle from inside an agent goes away: an agent no longer
starts, stops, restarts or rebuilds a container in its subtree, and no
longer reads another container's journal. Those are operator actions —
the dashboard and hivectl keep their own paths to the same job-queue
and hive-priv plumbing, which is why none of that machinery is removed
here, only the five MCP verbs and what they alone reached.

What went with them: the `Request` variants and `Response::Logs` on the
agent socket, the five tool definitions and their arg structs, the four
lifecycle handlers plus `handle_get_logs`, and `require_descendant` —
the topology guard those five were the only remaining callers of.
`ToolGroup::Diagnostics` goes too: `get_logs` was its only tool, so it
would otherwise be a grantable group that grants nothing. `lifecycle`
stays, now carrying `list_containers` alone.

An agent that gets a `needs_update` or `container_crash` helper event
has no remedy of its own left, so the system prompt and the docs now
send it to the operator instead of to a tool that no longer exists.

Refs #4480
2026-09-19 10:47:39 +02:00
..
src mcp: remove the restart/kill/start/update/get_logs agent verbs 2026-09-19 10:47:39 +02:00
Cargo.toml permissions: give the built-in tool list one home, next to ToolGroup 2026-09-15 17:40:27 +02:00
README.md treefmt: apply prettier 2026-09-02 15:25:07 +02:00

hive-sh4re

The shared payload vocabulary between hive-c0re and the in-container harness — the common types (Message, Approval, LooseEnd, HelperEvent, …) that the per-socket wire protocols are built from. The request/response envelopes themselves now live in the per-socket crates (below); this crate holds the payloads they carry.

Where it sits

This is the shared payload crate; the per-socket protocol envelopes have been split into their own smaller crates so specialised binaries don't have to pull in all of hive-sh4re:

  • hive-host-sock — host admin socket (hivectlhive-c0re)
  • hive-core-agent-sock — per-agent/manager socket (/run/hive/mcp.sock)
  • hive-priv-sock — the privileged-helper socket

Those crates re-export or reference the payload types that still live here (Approval, Message, LooseEnd, …).

Modules

  • wire_time — the timestamp convention: wire fields are chrono::DateTime<Utc> (serialized RFC 3339), while sqlite storage + input args stay unix-epoch i64; this module owns the two boundary conversions.
  • paths — well-known on-disk path helpers.
  • assets — resolves bundled runtime asset paths (branding, prompts) under HIVE_ASSETS_DIR.

Agent-name fields are typed as hive_types::Ident for serde-validated parsing at the socket boundary.