Huginn/README.md

74 lines
2.5 KiB
Markdown
Raw Normal View History

2026-06-05 12:23:59 +01:00
# Huginn
2026-05-06 03:11:02 +01:00
2026-06-21 15:51:46 +01:00
Huginn reads CultCache `.cc` state and emits Eve DSL for inspectable witness
surfaces.
2026-05-06 03:11:02 +01:00
2026-06-05 12:23:59 +01:00
CultLib owns the CultCache implementation: document registration, MessagePack
payloads, schema catalogs, backing stores, and the canonical
2026-06-05 12:42:30 +01:00
`cultcache.store.v1` snapshot parser/writer. Huginn consumes CultLib's
`cultcache-ts/inspection` surface and projects inspection results into UI
documents that Eve-capable runtimes can lower.
2026-05-06 03:11:02 +01:00
2026-06-21 15:51:46 +01:00
Upstream: `https://github.com/GameCult/Huginn.git`
2026-06-05 12:42:30 +01:00
## Authority
2026-05-06 03:11:02 +01:00
2026-06-05 12:42:30 +01:00
- Owner: Huginn owns `.cc` inspection projection, not `.cc` persistence.
- Input: `.cc`, `.msgpack`, or `.mpack` bytes readable by CultLib.
- Output: Eve DSL for `cultcache.huginn.inspector`.
- Renderers: browser, native, overlay, TUI, or future rooms lower the emitted
DSL without becoming state owners.
2026-05-06 03:11:02 +01:00
2026-06-05 12:42:30 +01:00
There is no Electron app, Vite dashboard, React renderer, or Norn-owned
presentation path in this repo. If a runtime wants to display Huginn, it should
consume the emitted Eve DSL.
2026-06-21 15:51:46 +01:00
## Witness Contract
Huginn's useful first artifact is not a dashboard. It is a read-only specimen
tray for typed state:
- which file was inspected
- which CultCache format decoded
- which schema/catalog entry owns each record
- what payload preview survived decoding
- which failure state stayed visible instead of being polished away
The inspector may make evidence easier to read. It must not mutate canonical
bytes, bless missing schemas, or let a renderer become the source of truth.
2026-06-05 12:42:30 +01:00
## CLI
2026-06-05 12:23:59 +01:00
```sh
npm install
npm run build
2026-06-05 12:42:30 +01:00
npx huginn path/to/state.cc > huginn.eve
```
2026-06-05 12:42:30 +01:00
The CLI writes Eve DSL to stdout and errors to stderr.
2026-06-05 12:42:30 +01:00
## API
2026-06-05 12:42:30 +01:00
```ts
import { inspectCultCacheBytes, buildHuginnEveDsl } from "@gamecult/huginn";
2026-06-05 12:42:30 +01:00
const inspection = inspectCultCacheBytes(filePath, bytes);
const eveDsl = buildHuginnEveDsl(inspection);
2026-05-06 03:11:02 +01:00
```
2026-06-21 15:51:46 +01:00
## Persona And Epiphany
Huginn has a repo Persona under `.voidbot/voice`. The Persona's current
jurisdiction is this repository body, `E:\Projects\Huginn`, and its useful
pressure is simple: return from the world with evidence, not vibes.
Epiphany wiring has been smoke-tested through the repo front doors:
```powershell
cargo run --manifest-path E:\Projects\EpiphanyAgent\epiphany-core\Cargo.toml --bin epiphany-repo -- init --workspace E:\Projects\Huginn
cargo run --manifest-path E:\Projects\EpiphanyAgent\epiphany-core\Cargo.toml --bin epiphany-swarm -- online --workspace E:\Projects\Huginn
```
Live fire should happen on an `epiphany/*` or `codex/*` workbench branch.
Publication to `main` remains a maintainer/Bifrost decision, not something the
inspection projection owns.