Huginn reads CultCache .cc state and emits Eve DSL for inspectable witness
surfaces.
CultLib owns the CultCache implementation: document registration, MessagePack
payloads, schema catalogs, backing stores, and the canonical
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.
Upstream: https://github.com/GameCult/Huginn.git
- Owner: Huginn owns
.ccinspection projection, not.ccpersistence. - Input:
.cc,.msgpack, or.mpackbytes 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.
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.
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.
npm install
npm run build
npx huginn path/to/state.cc > huginn.eveThe CLI writes Eve DSL to stdout and errors to stderr.
import { inspectCultCacheBytes, buildHuginnEveDsl } from "@gamecult/huginn";
const inspection = inspectCultCacheBytes(filePath, bytes);
const eveDsl = buildHuginnEveDsl(inspection);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:
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\HuginnLive fire should happen on an epiphany/* or codex/* workbench branch.
Publication to main remains a maintainer/Bifrost decision, not something the
inspection projection owns.