Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
39fd02235c | ||
|
|
f7febe71dd | ||
|
|
57765946db |
2 changed files with 41 additions and 10 deletions
38
CLAUDE.md
38
CLAUDE.md
|
|
@ -38,13 +38,20 @@ 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-ag3nt/`** — in-container harness; three sibling binaries for
|
- **`hive-agent/`**, **`hive-agent-mcp/`**, **`hive-agent-wake/`** —
|
||||||
every agent (`hive-agent` serve loop, `hive-agent-mcp`,
|
in-container harness, three sibling crates for every agent (not a
|
||||||
`hive-agent-wake`). Turn-loop *policy* layer (`turn.rs`) over the `hive-claude`
|
single `hive-ag3nt/` dir — that's the runtime/binary-family nickname,
|
||||||
driver, embedded MCP server (`mcp.rs`) + its claude launch-config layer
|
not a directory).
|
||||||
(`mcp_config.rs`: tool-group/capability → `--allowedTools`, `--mcp-config`
|
- **`hive-agent/`** — the serve-loop binary: turn-loop *policy* layer
|
||||||
render), per-agent web UI (`web_ui/` module dir), event + turn-stats
|
(`turn.rs`) over the `hive-claude` driver, per-agent web UI (`web_ui/`
|
||||||
sqlite sinks, login flow, system-prompt renderer, forge-notify subscriber.
|
module dir), event + turn-stats sqlite sinks, login flow, system-prompt
|
||||||
|
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
|
||||||
|
|
@ -62,9 +69,20 @@ 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 (Host / Agent / Manager request
|
- **`hive-sh4re/`** — shared wire types (Agent / Manager request +
|
||||||
+ response, `Message`, `Approval`, `HelperEvent`) used across the
|
response, `Message`, `Approval`, `HelperEvent`) used across the unix
|
||||||
unix sockets.
|
sockets. Host-admin-socket and hive-priv-socket wire types have been
|
||||||
|
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
|
||||||
|
|
||||||
|
|
|
||||||
13
README.md
13
README.md
|
|
@ -62,6 +62,9 @@ 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, ... }: {
|
||||||
|
|
@ -87,6 +90,16 @@ 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/)**.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue