hyperhive/hive-sh4re/README.md
atlas 39b95c2ede treefmt: apply prettier
Pure `nix fmt` output from the commit before this one — no hand edits.
203 files: 52 md, 42 tsx, 32 js, 32 css, 21 ts, 13 html, 8 json, 3 mjs.

Reproduce with `nix develop -c nix fmt` on the parent commit; the result
should be byte-identical to this tree.

None of the 13 `.prettierignore` entries appears here — verified by
intersecting the changed-file list against the ignore file, with a
control proving the intersection finds a match when one exists.
2026-09-02 15:25:07 +02:00

32 lines
1.3 KiB
Markdown

# 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 (`hivectl``hive-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.