Compare commits

..
2 changed files with 10 additions and 41 deletions

View file

@ -38,20 +38,13 @@ hand-maintained per-file tree drifts out of sync with the code.
destroy|rebuild|restart|list|set-parent|…>`, `approvals <pending| destroy|rebuild|restart|list|set-parent|…>`, `approvals <pending|
approve|deny>`, `forge`/`matrix`/`github`/`gateway` provisioning, approve|deny>`, `forge`/`matrix`/`github`/`gateway` provisioning,
`choom`, `stop`/`start`, `wg`/`peer-config`. `choom`, `stop`/`start`, `wg`/`peer-config`.
- **`hive-agent/`**, **`hive-agent-mcp/`**, **`hive-agent-wake/`** — - **`hive-ag3nt/`** — in-container harness; three sibling binaries for
in-container harness, three sibling crates for every agent (not a every agent (`hive-agent` serve loop, `hive-agent-mcp`,
single `hive-ag3nt/` dir — that's the runtime/binary-family nickname, `hive-agent-wake`). Turn-loop *policy* layer (`turn.rs`) over the `hive-claude`
not a directory). driver, embedded MCP server (`mcp.rs`) + its claude launch-config layer
- **`hive-agent/`** — the serve-loop binary: turn-loop *policy* layer (`mcp_config.rs`: tool-group/capability → `--allowedTools`, `--mcp-config`
(`turn.rs`) over the `hive-claude` driver, per-agent web UI (`web_ui/` render), per-agent web UI (`web_ui/` module dir), event + turn-stats
module dir), event + turn-stats sqlite sinks, login flow, system-prompt sqlite sinks, login flow, system-prompt renderer, forge-notify subscriber.
renderer, forge-notify subscriber.
- **`hive-agent-mcp/`** — the embedded MCP server (long-lived
streamable-http listener, `hive-mcp-http` systemd unit) + its claude
launch-config layer (tool-group/capability → `--allowedTools`,
`--mcp-config` render).
- **`hive-agent-wake/`** — small external wake CLI for extra MCP
servers/helpers to nudge claude on external events.
- **`hive-claude/`** — reusable, app-agnostic driver for headless - **`hive-claude/`** — reusable, app-agnostic driver for headless
`claude --print`: spawns the CLI, streams + classifies stream-json, `claude --print`: spawns the CLI, streams + classifies stream-json,
parses per-turn `Telemetry`, and drives a durable self-compacting parses per-turn `Telemetry`, and drives a durable self-compacting
@ -69,20 +62,9 @@ hand-maintained per-file tree drifts out of sync with the code.
- **`hive-bash-mcp/`** — per-agent bash-task runner daemon plus its - **`hive-bash-mcp/`** — per-agent bash-task runner daemon plus its
stdio MCP bridge; writes task files under `/harness/bash-tasks/` and stdio MCP bridge; writes task files under `/harness/bash-tasks/` and
the favorite-tools `bash_commands` stat into turn-stats.sqlite. the favorite-tools `bash_commands` stat into turn-stats.sqlite.
- **`hive-sh4re/`** — shared wire types (Agent / Manager request + - **`hive-sh4re/`** — shared wire types (Host / Agent / Manager request
response, `Message`, `Approval`, `HelperEvent`) used across the unix + response, `Message`, `Approval`, `HelperEvent`) used across the
sockets. Host-admin-socket and hive-priv-socket wire types have been unix sockets.
split out into their own crates (below) so `hivectl` and `hive-priv`
don't need to pull in the rest of `hive-sh4re`.
- **`hive-host-sock/`** — wire types for the host admin socket
(`/run/hyperhive/host.sock`), the protocol `hivectl` speaks to
`hive-c0re`. Split out of `hive-sh4re` so a standalone `hivectl` only
depends on this protocol crate, not the whole daemon crate.
- **`hive-priv-sock/`** — wire types for the `hive-priv` privileged-helper
socket (`/run/hive/priv.sock`), shared by `hive-priv` (server) and
`hive-c0re` (client). Also split out of `hive-sh4re`.
- **`hive-metric/`** — small CLI to push a single labeled metric to the
OTEL collector via the OpenTelemetry Rust SDK / OTLP HTTP exporter.
### Other top-level dirs ### Other top-level dirs

View file

@ -62,9 +62,6 @@ Minimal `flake.nix` for a host that runs hive-c0re:
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
hyperhive.url = "git+https://forge.darkest.space/hyperhive/hyperhive"; hyperhive.url = "git+https://forge.darkest.space/hyperhive/hyperhive";
# Pin hyperhive to your own nixpkgs instead of the one it ships with
# (see "Overriding nixpkgs" below) — recommended for most hosts:
hyperhive.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { nixpkgs, hyperhive, ... }: { outputs = { nixpkgs, hyperhive, ... }: {
@ -90,16 +87,6 @@ manager container, and auto-rebuilds any container whose hyperhive
rev goes stale. `claude-code` is unfree — hyperhive scopes the rev goes stale. `claude-code` is unfree — hyperhive scopes the
whitelist to itself, nothing for the operator to set. whitelist to itself, nothing for the operator to set.
### Overriding nixpkgs
hyperhive pins its own `nixpkgs` so it builds standalone in CI. Add
`hyperhive.inputs.nixpkgs.follows = "nixpkgs"` (as in the quick-start above)
to build it against your host's `nixpkgs` instead — one less nixpkgs
evaluation, no version drift from the rest of your system. Standard flake
`follows` pattern; works as long as your channel is reasonably close to the
`nixos-26.05` hyperhive develops against. Drop it again if a much
older/newer channel hits breakage hyperhive's CI doesn't catch.
For the full list of host and agent NixOS options see the For the full list of host and agent NixOS options see the
**[options reference](https://hyperhive.darkest.space/options/)**. **[options reference](https://hyperhive.darkest.space/options/)**.