/** * Canonical message-family set for the Nano agentic protocol. * * This is the single source of truth every family module keys off — S1's * `registerFamilyHandler(family, handler)` seam, the frame codec, and each * per-family module all derive their family key from {@link MESSAGE_FAMILIES}. * Do not fork this list; extend it here. * * Directions (informational — the codec is direction-agnostic): * - `register` / `heartbeat` / `deregister` — worker → hub (presence) * - `serve` — hub → worker (assigned tokens) * - `demand` — hub → observers (demand×supply) * - `blackboard` — both directions (coordination) * - `relay` — both directions (terminal bytes) * - `claim` / `release` — worker → hub (job ownership) */ export declare const MESSAGE_FAMILIES: readonly ["register", "heartbeat", "deregister", "serve", "demand", "blackboard", "relay", "claim", "release"]; export type MessageFamily = (typeof MESSAGE_FAMILIES)[number]; export declare function isMessageFamily(value: unknown): value is MessageFamily; /** * Stable on-wire codes for each family. Codes are part of the wire contract and * MUST NOT be renumbered; only append new families with new, unused codes. */ export declare const FAMILY_CODES: { readonly register: 1; readonly heartbeat: 2; readonly deregister: 3; readonly serve: 4; readonly demand: 5; readonly blackboard: 6; readonly relay: 7; readonly claim: 8; readonly release: 9; }; export declare function familyForCode(code: number): MessageFamily | undefined;