2026-06-05 12:23:59 +01:00
|
|
|
# Huginn
|
2026-05-06 03:11:02 +01:00
|
|
|
|
2026-06-05 12:42:30 +01:00
|
|
|
Huginn reads CultCache `.cc` state and emits Eve DSL.
|
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-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.
|
|
|
|
|
|
|
|
|
|
## CLI
|
2026-05-06 04:41:11 +01:00
|
|
|
|
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-05-06 04:41:11 +01:00
|
|
|
```
|
|
|
|
|
|
2026-06-05 12:42:30 +01:00
|
|
|
The CLI writes Eve DSL to stdout and errors to stderr.
|
2026-05-06 04:41:11 +01:00
|
|
|
|
2026-06-05 12:42:30 +01:00
|
|
|
## API
|
2026-05-06 04:41:11 +01:00
|
|
|
|
2026-06-05 12:42:30 +01:00
|
|
|
```ts
|
|
|
|
|
import { inspectCultCacheBytes, buildHuginnEveDsl } from "@gamecult/huginn";
|
2026-05-06 04:41:11 +01:00
|
|
|
|
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
|
|
|
```
|