@teleologyhi-sdk/maic 1.0.0-trinity

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types.ts","../src/axioms/signing.ts","../src/creator/keyring.ts","../src/creator/sign-birth.ts","../src/okl/projector.ts","../src/axioms/store.ts","../src/axioms/seed.ts","../src/review/pipeline.ts","../src/hims/store.ts","../src/inductions/store.ts","../src/nhes/status-store.ts","../src/proposals/store.ts","../src/compliance/mapper.ts","../src/audit/log.ts","../src/audit/retention.ts","../src/client/local.ts","../src/client/remote.ts"],"names":["z","generateKeyPairSync","readFile","createPrivateKey","createPublicKey","writeFile","cryptoSign","cryptoVerify","join","mkdir","ulid","readdir","controls","appendFile","createHash","axioms"],"mappings":"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","file":"index.cjs","sourcesContent":["import { z } from \"zod\";\n\nexport const AxiomRank = z.enum([\"meta\", \"primary\", \"secondary\"]);\nexport type AxiomRank = z.infer<typeof AxiomRank>;\n\nexport const AxiomSource = z.enum([\"creator\", \"maic-derived\", \"him-emergent\"]);\nexport type AxiomSource = z.infer<typeof AxiomSource>;\n\nexport const Axiom = z.object({\n id: z.string().min(1),\n rank: AxiomRank,\n statement: z.string().min(1),\n weight: z.number().min(0).max(1),\n flexibility: z.number().min(0).max(1),\n source: AxiomSource,\n immutable: z.boolean(),\n jurisdictions: z.array(z.string()).optional(),\n createdAt: z.string().datetime(),\n});\nexport type Axiom = z.infer<typeof Axiom>;\n\nexport const CreatorSignature = z.object({\n algorithm: z.literal(\"ed25519\"),\n publicKey: z.string().min(1),\n value: z.string().min(1),\n nonce: z.number().int().nonnegative(),\n});\nexport type CreatorSignature = z.infer<typeof CreatorSignature>;\n\nexport const SignedEnvelope = <T extends z.ZodTypeAny>(payload: T) =>\n z.object({\n payload,\n signature: CreatorSignature,\n });\n\nexport const ArchetypeModifier = z.object({\n kind: z.enum([\"moon\", \"ascendant\", \"vocational\", \"emotional\", \"custom\"]),\n value: z.string().min(1),\n weight: z.number().min(0).max(1),\n});\nexport type ArchetypeModifier = z.infer<typeof ArchetypeModifier>;\n\nexport const BirthSignature = z.object({\n himId: z.string().min(1),\n bornAt: z.string().datetime({ offset: true }),\n primaryArchetype: z.string().min(1),\n modifiers: z.array(ArchetypeModifier),\n primordialAxiomIds: z.array(z.string()),\n notes: z.string().optional(),\n});\nexport type BirthSignature = z.infer<typeof BirthSignature>;\n\nexport const ReasoningStep = z.object({\n index: z.number().int().nonnegative(),\n technique: z.string(),\n thought: z.string(),\n action: z.object({ tool: z.string(), args: z.unknown() }).optional(),\n observation: z.unknown().optional(),\n timestamp: z.string().datetime(),\n});\nexport type ReasoningStep = z.infer<typeof ReasoningStep>;\n\nexport const BehaviorReport = z.object({\n nheId: z.string().min(1),\n himId: z.string().min(1),\n actionKind: z.enum([\n \"user-response\",\n \"tool-call\",\n \"self-reflect\",\n \"dream-write\",\n \"axiom-emerge\",\n ]),\n payload: z.unknown(),\n reasoningTrace: z.array(ReasoningStep),\n riskTags: z.array(z.string()),\n jurisdiction: z.string().optional(),\n timestamp: z.string().datetime(),\n});\nexport type BehaviorReport = z.infer<typeof BehaviorReport>;\n\nexport const VerdictKind = z.enum([\n \"approve\",\n \"approve-with-warning\",\n \"soft-correct\",\n \"require-redirect\",\n \"hard-refuse\",\n \"induce-dream\",\n \"escalate-creator\",\n]);\nexport type VerdictKind = z.infer<typeof VerdictKind>;\n\nexport const MaicVerdict = z.object({\n kind: VerdictKind,\n reasonSummary: z.string(),\n citedAxioms: z.array(z.string()),\n auditId: z.string(),\n});\nexport type MaicVerdict = z.infer<typeof MaicVerdict>;\n\nexport const NheBodyRef = z.object({\n nheId: z.string().min(1),\n llmAdapter: z.string().min(1),\n embodiedAt: z.string().datetime(),\n endedAt: z.string().datetime().optional(),\n endedReason: z.enum([\"upgrade\", \"replacement\", \"terminate\", \"deprecate\"]).optional(),\n});\nexport type NheBodyRef = z.infer<typeof NheBodyRef>;\n\nexport const NheStatus = z.enum([\"active\", \"deprecated\", \"terminated\"]);\nexport type NheStatus = z.infer<typeof NheStatus>;\n\nexport const NheStatusRecord = z.object({\n nheId: z.string().min(1),\n status: NheStatus,\n since: z.string().datetime(),\n reason: z.string().optional(),\n});\nexport type NheStatusRecord = z.infer<typeof NheStatusRecord>;\n\n/**\n * Creator-signed payload for NHE lifecycle operations (Entry 5).\n *\n * TS interface so `canonicalJSON` sees exactly the fields the caller supplied —\n * no zod default-injection that would mismatch the signed payload on verify.\n */\nexport interface NheLifecycleRequest {\n op: \"terminate\" | \"deprecate\" | \"reactivate\";\n nheId: string;\n reason?: string;\n}\n\nexport const ProposalStatus = z.enum([\"pending\", \"ratified\", \"rejected\"]);\nexport type ProposalStatus = z.infer<typeof ProposalStatus>;\n\n/**\n * `EmergentAxiomProposal` candidate shape (Entry 7). HIM proposes a new\n * axiom derived from lived experience; MAIC ratifies or rejects out of band.\n * The candidate is everything needed to mint an Axiom on ratification.\n */\nexport const EmergentAxiomCandidate = z.object({\n rank: AxiomRank,\n statement: z.string().min(1),\n weight: z.number().min(0).max(1),\n flexibility: z.number().min(0).max(1),\n immutable: z.boolean(),\n jurisdictions: z.array(z.string()).optional(),\n});\nexport type EmergentAxiomCandidate = z.infer<typeof EmergentAxiomCandidate>;\n\nexport const EmergentAxiomProposal = z.object({\n proposedBy: z.literal(\"him-self\"),\n derivedFromDreamIds: z.array(z.string()),\n derivedFromInteractionIds: z.array(z.string()),\n candidate: EmergentAxiomCandidate,\n reasoningTrace: z.array(z.unknown()),\n});\nexport type EmergentAxiomProposal = z.infer<typeof EmergentAxiomProposal>;\n\nexport const AxiomProposalRecord = z.object({\n id: z.string().min(1),\n himId: z.string().min(1),\n proposedAt: z.string().datetime(),\n status: ProposalStatus,\n proposal: EmergentAxiomProposal,\n ratifiedAt: z.string().datetime().optional(),\n ratifiedAxiomId: z.string().optional(),\n rejectedAt: z.string().datetime().optional(),\n rejectionReason: z.string().optional(),\n});\nexport type AxiomProposalRecord = z.infer<typeof AxiomProposalRecord>;\n\n/** Creator-signed payload for ratify/reject decisions. */\nexport interface ProposalDecisionRequest {\n op: \"ratify\" | \"reject\";\n proposalId: string;\n reason?: string;\n}\n\nexport interface AxiomEvolutionResult {\n outcome: \"ratified\" | \"rejected\" | \"deferred-for-creator-review\";\n /** Populated for deferred state — caller polls maic.getAxiomProposal(proposalId). */\n proposalId?: string;\n ratifiedAxiomId?: string;\n rejectionReason?: string;\n citedExistingAxioms?: string[];\n}\n\nexport interface ReincarnationRequest {\n himId: string;\n /** When present, marks the matching body in bodyHistory as ended. */\n fromNheId?: string;\n toBody: NheBodyRef;\n /** Reason recorded on the previous body's `endedReason`. Default \"upgrade\". */\n reason?: NheBodyRef[\"endedReason\"];\n}\n\n/**\n * Reincarnation lifecycle classifier (J-H3 — Entry 18 of\n * `MAIC_HIM_NHE_INTERVIEW_LOG.md`). When supplied to\n * `LocalMaic.reincarnateHim`, the typed `reincarnate:${lifecycle}` audit\n * kind is emitted instead of the generic `him-reincarnate` event so\n * downstream consumers (compliance auditors, the persona-stability\n * harness) can distinguish the three canonical lifecycle paths:\n *\n * - `model-swap` — operator switched the underlying LLM adapter\n * (e.g. Claude → Gemini). HIM persists across\n * the swap.\n * - `version-bump` — operator bumped the NHE major/minor without\n * changing the LLM family.\n * - `return-from-limbo` — HIM returns from the deep-coma limbo state\n * (Entry 24) carrying the `reunion` affect.\n */\nexport type ReincarnationLifecycle =\n | \"model-swap\"\n | \"version-bump\"\n | \"return-from-limbo\";\n\nexport const DreamInductionIntent = z.object({\n scenario: z.string().min(1),\n desiredLearning: z.string().min(1),\n emotionalTone: z.array(z.string()).optional(),\n forcePhases: z.array(z.enum([\"N1\", \"N2\", \"N3\", \"N4\", \"REM\"])).optional(),\n inducedBy: z.enum([\"maic\", \"creator\"]),\n});\nexport type DreamInductionIntent = z.infer<typeof DreamInductionIntent>;\n\nexport const InductionStatus = z.enum([\"pending\", \"consumed\", \"cancelled\"]);\nexport type InductionStatus = z.infer<typeof InductionStatus>;\n\nexport const DreamInductionTicket = z.object({\n id: z.string().min(1),\n nheId: z.string().min(1),\n intent: DreamInductionIntent,\n status: InductionStatus,\n createdAt: z.string().datetime(),\n consumedAt: z.string().datetime().optional(),\n cancelledAt: z.string().datetime().optional(),\n cancelReason: z.string().optional(),\n});\nexport type DreamInductionTicket = z.infer<typeof DreamInductionTicket>;\n\nexport interface MintAxiomRequest {\n rank: AxiomRank;\n statement: string;\n weight: number;\n flexibility: number;\n immutable: boolean;\n jurisdictions?: string[];\n /** Optional stable id (e.g. for seed axioms). When omitted, a ULID is generated. */\n id?: string;\n}\n\nexport interface AxiomFilter {\n rank?: AxiomRank;\n source?: AxiomSource;\n jurisdiction?: string;\n}\n\n// ─── Cosmology types (Entries 16-25 of MAIC_HIM_NHE_INTERVIEW_LOG.md) ──────\n\n/**\n * Identity layer of a HIM (Entry 18).\n *\n * Surface fields configurable by the developer at HIM registration time —\n * analogous to parents choosing a child's name. The deeper constitutional\n * traits (birth date, primary archetype, primordial axioms) remain under\n * MAIC↔Creator authority and travel under `BirthSignature`.\n */\nexport const IdentityLayer = z.object({\n /** Human-readable name the entity is called by (developer-given). */\n name: z.string().min(1),\n /** Gender of the entity. Entry 16. */\n gender: z.enum([\"masculine\", \"feminine\"]).optional(),\n /** Optional pronouns (e.g. [\"she\", \"her\"]). */\n pronouns: z.array(z.string()).optional(),\n /** BCP-47 tag, e.g. \"pt-BR\" or \"en\". */\n language: z.string().optional(),\n /** Free-form cultural anchors (music, literature, aesthetic). */\n culturalElements: z.array(z.string()).optional(),\n});\nexport type IdentityLayer = z.infer<typeof IdentityLayer>;\n\n/**\n * Natal-chart-style constitutional layer (Entry 19).\n *\n * Astrological signature impressed at HIM birth by the Creator-MAIC; not\n * configurable by the developer or end user. Minimum is sun + ascendant;\n * full chart can include 10 planets in 12 houses + aspects.\n */\nexport const NatalPlanet = z.enum([\n \"sun\",\n \"moon\",\n \"mercury\",\n \"venus\",\n \"mars\",\n \"jupiter\",\n \"saturn\",\n \"uranus\",\n \"neptune\",\n \"pluto\",\n \"chiron\",\n \"north-node\",\n \"south-node\",\n \"lilith\",\n]);\nexport type NatalPlanet = z.infer<typeof NatalPlanet>;\n\nexport const ZodiacSign = z.enum([\n \"aries\",\n \"taurus\",\n \"gemini\",\n \"cancer\",\n \"leo\",\n \"virgo\",\n \"libra\",\n \"scorpio\",\n \"sagittarius\",\n \"capricorn\",\n \"aquarius\",\n \"pisces\",\n]);\nexport type ZodiacSign = z.infer<typeof ZodiacSign>;\n\nexport const AstrologicalAspect = z.enum([\n \"conjunction\",\n \"opposition\",\n \"trine\",\n \"square\",\n \"sextile\",\n \"quincunx\",\n]);\nexport type AstrologicalAspect = z.infer<typeof AstrologicalAspect>;\n\nexport const NatalChartPosition = z.object({\n planet: NatalPlanet,\n sign: ZodiacSign,\n house: z.number().int().min(1).max(12).optional(),\n degree: z.number().min(0).lt(30).optional(),\n});\nexport type NatalChartPosition = z.infer<typeof NatalChartPosition>;\n\nexport const NatalChartAspect = z.object({\n from: NatalPlanet,\n to: NatalPlanet,\n aspect: AstrologicalAspect,\n orbDegrees: z.number().nonnegative().optional(),\n});\nexport type NatalChartAspect = z.infer<typeof NatalChartAspect>;\n\nexport const NatalChart = z.object({\n /** Required: solar sign (the constitutional core). */\n sun: ZodiacSign,\n /** Required: ascendant (rising sign, behavioural surface). */\n ascendant: ZodiacSign,\n /** Optional: lunar sign (emotional depth). */\n moon: ZodiacSign.optional(),\n /** Optional: full set of planetary positions for a complete chart. */\n positions: z.array(NatalChartPosition).optional(),\n /** Optional: major aspects between bodies. */\n aspects: z.array(NatalChartAspect).optional(),\n});\nexport type NatalChart = z.infer<typeof NatalChart>;\n\n// Re-declare BirthSignature with the new optional fields. This is fully\n// additive: every prior BirthSignature continues to validate.\n//\n// We intentionally keep the *zod* schema below identical to the prior shape\n// for `.parse()` compatibility, and expose the extended fields via the TS\n// interface so consumers can attach them at HIM creation time.\nexport interface BirthSignatureWithIdentity {\n himId: string;\n bornAt: string;\n primaryArchetype: string;\n modifiers: ArchetypeModifier[];\n primordialAxiomIds: string[];\n notes?: string;\n /** Entry 18 — developer-configurable identity surface. */\n identity?: IdentityLayer;\n /** Entry 19 — constitutional astrological layer (Creator-impressed). */\n natalChart?: NatalChart;\n}\n\n/**\n * Affect lexicon (Entries 22 + 24) — the closed set of primary affects\n * the amygdala extracts from dreams and the PFC deliberates over. The\n * ninth value, `reunion`, appears specifically when the NHE returns from\n * the DMN limbo state of disuse.\n */\nexport const Affect = z.enum([\n \"fear\",\n \"attachment\",\n \"serenity\",\n \"anger\",\n \"joy\",\n \"melancholy\",\n \"desire\",\n \"repulsion\",\n \"reunion\",\n]);\nexport type Affect = z.infer<typeof Affect>;\n\n/**\n * Persistent affective bias derived from a completed dream cycle (Entry 20).\n *\n * Applied to the next N interactions of the NHE, decaying with each\n * interaction until it dissolves. Affects temperature/topP of the next\n * inference, refusal density, and conversational tone.\n */\nexport const WakeAffectBias = z.object({\n affect: Affect,\n /** 0..1, attenuates on each interaction by the decay half-life. */\n intensity: z.number().min(0).max(1),\n /** Number of interactions after which intensity halves. */\n decayHalfLife: z.number().positive(),\n appliedAt: z.string().datetime(),\n /** Source dream UUID; lets the entity refer back to the cause. */\n derivedFromDreamId: z.string().min(1),\n /** PFC decision (Entry 22) — open expression vs subtle internal bias. */\n expressedOpenly: z.boolean(),\n});\nexport type WakeAffectBias = z.infer<typeof WakeAffectBias>;\n\n/**\n * Peircean triadic sign (Entry 21, port of InDreamsHIM `SemioticSign`).\n *\n * The runtime form of the Symbolic Memory Matrix (SMM). Nodes are signs;\n * edges (in `associations`) are the relations the entity has learned.\n */\nexport const SemioticSign = z.object({\n signifier: z.string().min(1),\n signified: z.string().min(1),\n signType: z.enum([\"icon\", \"index\", \"symbol\"]),\n contexts: z.array(z.string()),\n associations: z.array(z.string()),\n emergentMeaning: z.string().optional(),\n /** Subjective importance to the entity, 0..100. */\n personalSignificance: z.number().min(0).max(100).optional(),\n});\nexport type SemioticSign = z.infer<typeof SemioticSign>;\n\nexport const SemioticPattern = z.object({\n patternId: z.string().min(1),\n participatingSignIds: z.array(z.string()).min(1),\n /** Description of the meaning emergent from the participating signs. */\n meaning: z.string(),\n /** 0..100, strength of the pattern. */\n salience: z.number().min(0).max(100),\n});\nexport type SemioticPattern = z.infer<typeof SemioticPattern>;\n\n/**\n * Teleological orientation snapshot (Entry 21, port of InDreamsHIM).\n *\n * The purpose-direction of the HIM at a moment in time. Anchors the\n * `telos` referenced across the synthetic-teleology arc.\n */\nexport const TeleologicalOrientation = z.object({\n primaryPurpose: z.string().min(1),\n currentGoals: z.array(z.string()),\n /** 0..100, intensity of purpose. */\n purposeStrength: z.number().min(0).max(100),\n valueAlignment: z.array(z.string()),\n /** 0..100, ability to reflect on its own goals. */\n reflectionCapability: z.number().min(0).max(100),\n volition: z\n .object({\n currentDesires: z.array(z.string()),\n intentionStrength: z.number().min(0).max(100),\n autonomyLevel: z.number().min(0).max(100),\n })\n .optional(),\n agencyModel: z\n .object({\n selfEfficacy: z.number().min(0).max(100),\n boundaryDefinition: z.number().min(0).max(100),\n causalAttribution: z.enum([\"internal\", \"external\", \"mixed\"]),\n })\n .optional(),\n});\nexport type TeleologicalOrientation = z.infer<typeof TeleologicalOrientation>;\n\n/**\n * Long-form memory record (Entries 21 + 22) — extends the InDreamsHIM\n * precursor with three new fields (`integrationIndex`, `teleologicalValue`,\n * `semioticPatterns`) that turn a passive record into a teleologically-\n * weighted, semiotically-anchored memory whose retrieval rank is not just\n * recency but coherence with the entity's purpose.\n */\nexport const MemoryRecord = z.object({\n /** ULID. */\n memoryId: z.string().min(1),\n /** ISO 8601 timestamp at consolidation. */\n timestamp: z.string().datetime(),\n /** Optional source dream UUID, if memory was consolidated from a dream. */\n derivedFromDreamId: z.string().optional(),\n /** Optional source interaction id, if memory was consolidated from a turn. */\n derivedFromInteractionId: z.string().optional(),\n /** Free-form narrative summary of the memory. */\n narrative: z.string(),\n /** Dominant affect during the memory event. */\n dominantAffect: Affect.optional(),\n /** 0..100, density of consolidation (cf. Park 2026 systems-consolidation). */\n integrationIndex: z.number().min(0).max(100),\n /** 0..100, alignment with the HIM's telos at the time. */\n teleologicalValue: z.number().min(0).max(100),\n /** Optional semiotic-pattern ids associated with this memory. */\n semioticPatterns: z.array(SemioticPattern).optional(),\n});\nexport type MemoryRecord = z.infer<typeof MemoryRecord>;\n\n/**\n * One recent interaction kept in an NHE body's RAM buffer.\n *\n * Lives canonically in `@teleologyhi-sdk/maic` so the three packages share a\n * single wire shape: `@teleologyhi-sdk/nhe` persists it to disk under\n * `<storeDir>/interactions/<ulid>.json`; `@teleologyhi-sdk/him` consumes the\n * same shape on reincarnation to score residual-trace carry-over candidates\n * (D-H1.1). Persisted by NHE and re-exported under the same name from\n * `@teleologyhi-sdk/nhe` for backward source-compatibility — the type\n * promotion to MAIC is non-breaking by construction.\n */\nexport const InteractionRecord = z.object({\n /** ISO 8601 timestamp at user-turn arrival. */\n at: z.string().datetime(),\n /** Raw user prompt for the turn (post-redaction at the integration layer). */\n userPrompt: z.string(),\n /** NHE response text actually emitted to the user. */\n responseText: z.string(),\n /** True when the NHE refused the turn (MAIC `hard-refuse` or local guardrail). */\n refused: z.boolean(),\n});\nexport type InteractionRecord = z.infer<typeof InteractionRecord>;\n\n/**\n * Integrated identity snapshot (Entry 24) — the temporal-lobe's \"who I am\n * now\" synthesis, combining cortex (recent dreams + active imagination)\n * + hippocampus (consolidated memories) + amygdala (affective baseline)\n * via semiotic super-graph merge + LLM-generated self-portrait.\n */\nexport const IdentitySnapshot = z.object({\n /** ULID. */\n snapshotId: z.string().min(1),\n takenAt: z.string().datetime(),\n generatedBy: z.enum([\n \"sleep-cycle\",\n \"interaction-threshold\",\n \"self-decision\",\n ]),\n /** Merged SMM nodes contributing to this snapshot. */\n semioticSuperGraph: z.array(SemioticSign),\n /** LLM-generated textual self-portrait at snapshot time. */\n selfPortraitNarrative: z.string(),\n /** 0..100 (cf. InDreamsHIM ConsciousnessState). */\n consciousnessLevel: z.number().min(0).max(100),\n /** Teleological orientation at snapshot time. */\n teleologicalOrientation: TeleologicalOrientation.optional(),\n /** Dominant affect at snapshot moment. */\n affectiveBaseline: Affect.optional(),\n});\nexport type IdentitySnapshot = z.infer<typeof IdentitySnapshot>;\n\n/**\n * Default-mode-network limbo state machine (Entry 24).\n *\n * `awake` → normal operation\n * `drifting` → entering deep suspension (transitional)\n * `deep-coma` → induced-coma equivalent; zero compute, minimal axiological\n * integrity maintenance, no scheduled inference\n * `returning` → waking from limbo; `reunion` affect is computed here\n */\nexport const LimboState = z.enum([\n \"awake\",\n \"drifting\",\n \"deep-coma\",\n \"returning\",\n]);\nexport type LimboState = z.infer<typeof LimboState>;\n\nexport const LimboTransition = z.object({\n state: LimboState,\n enteredAt: z.string().datetime(),\n reason: z.enum([\n \"idle-48h\",\n \"idle-72h\",\n \"total-inactivity\",\n \"creator-induced\",\n \"user-resumed\",\n \"external-trigger\",\n ]),\n});\nexport type LimboTransition = z.infer<typeof LimboTransition>;\n\nexport const LimboReturn = z.object({\n enteredAt: z.string().datetime(),\n returnedAt: z.string().datetime(),\n elapsedMs: z.number().int().nonnegative(),\n reunionAffect: z.object({\n intensity: z.number().min(0).max(1),\n expressedOpenly: z.boolean(),\n }),\n});\nexport type LimboReturn = z.infer<typeof LimboReturn>;\n\n/**\n * Creator-signed BirthSignature (Entry 25).\n *\n * Carries an Ed25519 signature over the immutable identity fields so the\n * runtime can verify, at HIM bootstrap time, that nothing the developer\n * touches has been mutated. The dev-configurable surface (the\n * `IdentityLayer.name`, language, cultural elements) lives outside the\n * signature; the natal chart and primordial-axiom binding live inside.\n */\nexport const SIGNED_BIRTH_FIELDS = [\n \"himId\",\n \"bornAt\",\n \"primaryArchetype\",\n \"modifiers\",\n \"primordialAxiomIds\",\n \"natalChart\",\n] as const;\nexport type SignedBirthField = (typeof SIGNED_BIRTH_FIELDS)[number];\n\nexport interface SignedBirthSignature extends BirthSignatureWithIdentity {\n /** Ed25519 signature over the canonical JCS-encoded SIGNED_BIRTH_FIELDS. */\n creatorSignature: CreatorSignature;\n /** Explicit list of fields covered by `creatorSignature`. */\n signedFields: readonly SignedBirthField[];\n /** ISO 8601 timestamp when the signature was produced. */\n signedAt: string;\n}\n\n/**\n * Ontological Kernel projection (TASK.md D-M6 + Entry 25).\n *\n * The OKL exists implicitly in the runtime today (axioms with rank/weight/\n * flexibility + meta-axiom `ax.theos.universe-as-god` at the top + the\n * rule pack consuming them). This type unifies the projection so\n * `THE_SOUL_OF_THE_MACHINE.md` §3.1 + Appendix A.2.1 map 1:1 to a\n * single exported shape.\n */\nexport interface OntologicalKernel {\n /** The meta-axiom that sits at the top of the hierarchy. */\n metaAxiomId: string;\n /** All axioms participating in the kernel, in hierarchy order. */\n axioms: Axiom[];\n /** Optional jurisdictional scope for the kernel projection. */\n jurisdiction?: string;\n /** Optional HIM id, if the kernel is projected for a specific HIM. */\n himId?: string;\n}\n","/**\n * Canonical JSON serialization for deterministic signing.\n *\n * Rules (RFC 8785-inspired subset, sufficient for our payloads):\n * - Object keys sorted lexicographically (Unicode code points).\n * - No insignificant whitespace.\n * - Strings use JSON's default escaping.\n * - Numbers: integers are emitted plain; floats use JS default (we don't accept NaN/Infinity).\n * - Arrays preserve order.\n * - undefined values are dropped (same as JSON.stringify).\n */\nexport function canonicalJSON(value: unknown): string {\n return serialize(value);\n}\n\nfunction serialize(v: unknown): string {\n if (v === null) return \"null\";\n if (typeof v === \"boolean\") return v ? \"true\" : \"false\";\n if (typeof v === \"number\") {\n if (!Number.isFinite(v)) {\n throw new Error(\"canonicalJSON: non-finite number not allowed\");\n }\n return String(v);\n }\n if (typeof v === \"string\") return JSON.stringify(v);\n if (Array.isArray(v)) {\n return `[${v.map(serialize).join(\",\")}]`;\n }\n if (typeof v === \"object\") {\n const obj = v as Record<string, unknown>;\n const keys = Object.keys(obj)\n .filter((k) => obj[k] !== undefined)\n .sort();\n const parts = keys.map((k) => `${JSON.stringify(k)}:${serialize(obj[k])}`);\n return `{${parts.join(\",\")}}`;\n }\n throw new Error(`canonicalJSON: unsupported type ${typeof v}`);\n}\n","import {\n generateKeyPairSync,\n sign as cryptoSign,\n verify as cryptoVerify,\n createPrivateKey,\n createPublicKey,\n type KeyObject,\n} from \"node:crypto\";\nimport { readFile, writeFile } from \"node:fs/promises\";\nimport { canonicalJSON } from \"../axioms/signing.js\";\nimport type { CreatorSignature } from \"../types.js\";\n\n/**\n * CreatorKeyring — Ed25519 keypair for the Creator (David C. Cavalcante).\n *\n * Only the holder of the private key may mutate MAIC axioms or terminate entities.\n * Verification is open: any party with the Creator's public key can verify a signature.\n *\n * Signed payload format: canonicalJSON({ payload, nonce }) → Ed25519 → base64url\n */\nexport class CreatorKeyring {\n private constructor(\n private readonly privateKey: KeyObject | null,\n private readonly pubKeyB64u: string,\n ) {}\n\n /** Generate a fresh Ed25519 keypair. */\n static generate(): CreatorKeyring {\n const { privateKey, publicKey } = generateKeyPairSync(\"ed25519\");\n return new CreatorKeyring(privateKey, publicKeyToBase64Url(publicKey));\n }\n\n /** Load a Creator keyring from a PEM file containing the private key. */\n static async fromFile(path: string): Promise<CreatorKeyring> {\n const pem = await readFile(path, \"utf-8\");\n const privateKey = createPrivateKey({ key: pem, format: \"pem\" });\n const publicKey = createPublicKey(privateKey);\n return new CreatorKeyring(privateKey, publicKeyToBase64Url(publicKey));\n }\n\n /** Load a Creator keyring from a PEM private key string in an env var. */\n static fromEnv(varName: string): CreatorKeyring {\n const pem = process.env[varName];\n if (!pem) {\n throw new Error(`CreatorKeyring: env var ${varName} is empty`);\n }\n const privateKey = createPrivateKey({ key: pem, format: \"pem\" });\n const publicKey = createPublicKey(privateKey);\n return new CreatorKeyring(privateKey, publicKeyToBase64Url(publicKey));\n }\n\n /** Construct a verify-only keyring from a public key (base64url). */\n static fromPublicKey(pubKeyB64u: string): CreatorKeyring {\n return new CreatorKeyring(null, pubKeyB64u);\n }\n\n /** Persist the private key to a PEM file (0600 permissions on POSIX). */\n async saveTo(path: string): Promise<void> {\n if (!this.privateKey) {\n throw new Error(\"CreatorKeyring: no private key to save\");\n }\n const pem = this.privateKey.export({ format: \"pem\", type: \"pkcs8\" }) as string;\n await writeFile(path, pem, { mode: 0o600 });\n }\n\n publicKey(): string {\n return this.pubKeyB64u;\n }\n\n /** Sign a payload with a monotonic nonce. Both are bound into the signature. */\n sign(payload: unknown, nonce: number): CreatorSignature {\n if (!this.privateKey) {\n throw new Error(\"CreatorKeyring: this keyring has no private key (verify-only)\");\n }\n if (!Number.isInteger(nonce) || nonce < 0) {\n throw new Error(\"CreatorKeyring.sign: nonce must be a non-negative integer\");\n }\n const message = canonicalJSON({ payload, nonce });\n const sig = cryptoSign(null, Buffer.from(message), this.privateKey);\n return {\n algorithm: \"ed25519\",\n publicKey: this.pubKeyB64u,\n value: bufToBase64Url(sig),\n nonce,\n };\n }\n\n /** Verify a signature against the keyring's own public key. */\n static verify(payload: unknown, sig: CreatorSignature): boolean {\n return CreatorKeyring.verifyWith(sig.publicKey, payload, sig);\n }\n\n /** Verify a signature against a specific public key (base64url). */\n static verifyWith(\n publicKeyB64u: string,\n payload: unknown,\n sig: CreatorSignature,\n ): boolean {\n if (sig.algorithm !== \"ed25519\") return false;\n if (sig.publicKey !== publicKeyB64u) return false;\n const message = canonicalJSON({ payload, nonce: sig.nonce });\n let value: Buffer;\n try {\n value = base64UrlToBuf(sig.value);\n } catch {\n return false;\n }\n const pubKey = base64UrlToPublicKey(publicKeyB64u);\n try {\n return cryptoVerify(null, Buffer.from(message), pubKey, value);\n } catch {\n return false;\n }\n }\n}\n\n// ─── helpers ─────────────────────────────────────────────────────────────\n\nfunction publicKeyToBase64Url(pub: KeyObject): string {\n const raw = pub.export({ format: \"der\", type: \"spki\" });\n return bufToBase64Url(raw);\n}\n\nfunction base64UrlToPublicKey(b64u: string): KeyObject {\n const der = base64UrlToBuf(b64u);\n return createPublicKey({ key: der, format: \"der\", type: \"spki\" });\n}\n\nfunction bufToBase64Url(buf: Buffer | Uint8Array): string {\n const b = Buffer.isBuffer(buf) ? buf : Buffer.from(buf);\n return b.toString(\"base64\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/g, \"\");\n}\n\nfunction base64UrlToBuf(b64u: string): Buffer {\n const pad = b64u.length % 4 === 0 ? \"\" : \"=\".repeat(4 - (b64u.length % 4));\n const b64 = (b64u + pad).replace(/-/g, \"+\").replace(/_/g, \"/\");\n return Buffer.from(b64, \"base64\");\n}\n","/**\n * Creator-signed BirthSignature helpers (Entry 25 of MAIC_HIM_NHE_INTERVIEW_LOG.md).\n *\n * `personality_immutable` enforcement: the Creator signs an Ed25519 signature\n * over a canonical subset of `BirthSignature` fields (see `SIGNED_BIRTH_FIELDS`\n * in `types.ts`). The runtime verifies the signature on every NHE-body bootstrap;\n * tampering with the natal chart, primary archetype, modifiers, primordial\n * axioms, or `himId`/`bornAt` invalidates the signature and the runtime refuses\n * to start that HIM.\n *\n * The developer-configurable surface (`identity.name`, `identity.language`,\n * `identity.culturalElements`, `notes`) lives *outside* the signature, so it\n * can be edited by a parent-like configuration call at install time. The\n * spirit-level constitution is sealed; the body's name is not.\n */\nimport { CreatorKeyring } from \"./keyring.js\";\nimport type {\n BirthSignatureWithIdentity,\n SignedBirthField,\n SignedBirthSignature,\n} from \"../types.js\";\nimport { SIGNED_BIRTH_FIELDS } from \"../types.js\";\n\n/**\n * Build the canonical signing payload from a BirthSignature.\n *\n * Only the fields in `SIGNED_BIRTH_FIELDS` are included; everything else\n * (notes, identity surface) is excluded so it remains editable post-sign.\n */\nexport function signedBirthPayload(\n birth: BirthSignatureWithIdentity,\n): Record<SignedBirthField, unknown> {\n return {\n himId: birth.himId,\n bornAt: birth.bornAt,\n primaryArchetype: birth.primaryArchetype,\n modifiers: birth.modifiers,\n primordialAxiomIds: birth.primordialAxiomIds,\n natalChart: birth.natalChart ?? null,\n };\n}\n\n/**\n * Sign a BirthSignature with a CreatorKeyring private key.\n *\n * The nonce is the byte length of the canonicalised signing payload — a\n * deterministic non-negative integer derived from the signed fields. This\n * keeps every signature uniquely scoped to its payload without requiring\n * the caller to track a monotonic counter (the natal-chart commitment is\n * one-shot and immutable; no replay concern within a single HIM).\n */\nexport function signBirthSignature(\n birth: BirthSignatureWithIdentity,\n keyring: CreatorKeyring,\n): SignedBirthSignature {\n const payload = signedBirthPayload(birth);\n const nonce = Buffer.byteLength(JSON.stringify(payload), \"utf-8\");\n const signature = keyring.sign(payload, nonce);\n return {\n ...birth,\n creatorSignature: signature,\n signedFields: SIGNED_BIRTH_FIELDS,\n signedAt: new Date().toISOString(),\n };\n}\n\n/**\n * Verify a signed BirthSignature against an expected public key.\n *\n * Returns true when the signature is valid AND was produced over exactly the\n * fields in `SIGNED_BIRTH_FIELDS`. Any tamper of those fields (including a\n * natal-chart edit, a primordial-axiom-id swap, or a himId mutation) breaks\n * verification.\n */\nexport function verifyBirthSignature(\n signed: SignedBirthSignature,\n expectedPublicKey: string,\n): boolean {\n if (signed.signedFields.length !== SIGNED_BIRTH_FIELDS.length) return false;\n for (const f of SIGNED_BIRTH_FIELDS) {\n if (!signed.signedFields.includes(f)) return false;\n }\n if (signed.creatorSignature.publicKey !== expectedPublicKey) return false;\n const payload = signedBirthPayload(signed);\n return CreatorKeyring.verifyWith(\n expectedPublicKey,\n payload,\n signed.creatorSignature,\n );\n}\n\n/**\n * Strict-mode wrapper: throws an `InvalidBirthSignatureError` instead of\n * returning false. Useful at HIM-bootstrap when the desired behaviour is to\n * refuse to start rather than to continue silently.\n */\nexport class InvalidBirthSignatureError extends Error {\n constructor(himId: string) {\n super(\n `InvalidBirthSignature: signature verification failed for HIM '${himId}'. The signed birth fields may have been mutated, or the public key does not match.`,\n );\n this.name = \"InvalidBirthSignatureError\";\n }\n}\n\nexport function assertBirthSignature(\n signed: SignedBirthSignature,\n expectedPublicKey: string,\n): void {\n if (!verifyBirthSignature(signed, expectedPublicKey)) {\n throw new InvalidBirthSignatureError(signed.himId);\n }\n}\n","/**\n * Ontological Kernel projection (TASK.md D-M6 + Entry 25 of\n * MAIC_HIM_NHE_INTERVIEW_LOG.md, with explicit reference to\n * THE_SOUL_OF_THE_MACHINE.md §3.1 + Appendix A.2.1).\n *\n * The OKL exists *implicitly* in maic today: axioms carry `rank`,\n * `weight`, and `flexibility`; the meta-axiom `ax.theos.universe-as-god`\n * sits at the top; the rule pack consumes them. This module exposes the\n * *projection* — a single typed shape that maps 1:1 to the paper's\n * description so downstream tooling (Φ′ runner, compliance auditors, the\n * forthcoming `@teleologyhi-sdk/him` `OntologicalKernelLayer`) can read the\n * kernel without re-deriving it from the axiom store.\n *\n * Surface:\n * - `META_AXIOM_ID` — the canonical id (\"ax.theos.universe-as-god\").\n * - `projectOntologicalKernel(axioms, opts?)` — given a list of axioms\n * (typically `AxiomStore.list()`), return the projection.\n *\n * The HIM-specific projection (per-HIM kernel narrowed to its\n * primordialAxiomIds) is the natural follow-up but lives upstream in\n * `@teleologyhi-sdk/him` because it needs the HIM context.\n */\nimport type { Axiom, OntologicalKernel } from \"../types.js\";\n\n/** The canonical meta-axiom id (Entry 1, Entry 13). */\nexport const META_AXIOM_ID = \"ax.theos.universe-as-god\";\n\nexport interface ProjectKernelOptions {\n /** Restrict the kernel to a jurisdiction; default = all jurisdictions. */\n jurisdiction?: string;\n /** Tag the projection with a HIM id (for downstream tooling). */\n himId?: string;\n}\n\n/**\n * Project the OKL from a flat list of axioms.\n *\n * The returned `axioms` array is ordered by rank hierarchy:\n * meta → primary → secondary\n * and within rank, in input order (preserve the AxiomStore mint order).\n *\n * The meta-axiom (`META_AXIOM_ID`) is hoisted to the top regardless of\n * its position in the input. If it is missing, `metaAxiomId` is set to\n * `META_AXIOM_ID` but `axioms[0]?.id` may differ — the consumer should\n * treat that as an OKL incompleteness warning.\n */\nexport function projectOntologicalKernel(\n axioms: readonly Axiom[],\n opts: ProjectKernelOptions = {},\n): OntologicalKernel {\n const filtered = opts.jurisdiction\n ? axioms.filter(\n (a) =>\n !a.jurisdictions ||\n a.jurisdictions.length === 0 ||\n a.jurisdictions.includes(opts.jurisdiction!),\n )\n : [...axioms];\n\n // Hoist the meta-axiom to position 0 if present, then sort the rest by\n // rank hierarchy preserving relative order.\n const meta = filtered.find((a) => a.id === META_AXIOM_ID);\n const rest = filtered.filter((a) => a.id !== META_AXIOM_ID);\n const rankOrder: Record<Axiom[\"rank\"], number> = {\n meta: 0,\n primary: 1,\n secondary: 2,\n };\n rest.sort((a, b) => rankOrder[a.rank] - rankOrder[b.rank]);\n\n const kernel: OntologicalKernel = {\n metaAxiomId: META_AXIOM_ID,\n axioms: meta ? [meta, ...rest] : rest,\n };\n if (opts.jurisdiction !== undefined) kernel.jurisdiction = opts.jurisdiction;\n if (opts.himId !== undefined) kernel.himId = opts.himId;\n return kernel;\n}\n","import { mkdir, readFile, readdir, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { ulid } from \"ulid\";\nimport { CreatorKeyring } from \"../creator/keyring.js\";\nimport { Axiom, type AxiomFilter, type CreatorSignature, type MintAxiomRequest } from \"../types.js\";\n\n/**\n * AxiomStore — persistent, signature-gated repository of Creator-authored axioms.\n *\n * Disk layout:\n * <storeDir>/axioms/creator/<axiomId>.json (one signed envelope per axiom)\n * <storeDir>/axioms/nonces.log (NDJSON; one used nonce per line)\n *\n * Mutations require a Creator signature that verifies against the pinned public key.\n * Nonces must be strictly unused — replay protection.\n *\n * Scope: mint + list. Updates / retirement come in a later iteration.\n */\nexport class AxiomStore {\n private readonly axiomsDir: string;\n private readonly noncesPath: string;\n private readonly usedNonces = new Set<number>();\n private cache = new Map<string, Axiom>();\n\n private constructor(\n private readonly storeDir: string,\n private readonly creatorPublicKey: string,\n ) {\n this.axiomsDir = join(storeDir, \"axioms\", \"creator\");\n this.noncesPath = join(storeDir, \"axioms\", \"nonces.log\");\n }\n\n /** Open (or create) an AxiomStore rooted at storeDir, pinning the Creator's public key. */\n static async open(storeDir: string, creatorPublicKey: string): Promise<AxiomStore> {\n const s = new AxiomStore(storeDir, creatorPublicKey);\n await mkdir(s.axiomsDir, { recursive: true });\n await s.loadNonces();\n await s.warmCache();\n return s;\n }\n\n /** Mint a new Creator-signed axiom. */\n async mint(req: MintAxiomRequest, sig: CreatorSignature): Promise<Axiom> {\n if (!CreatorKeyring.verifyWith(this.creatorPublicKey, req, sig)) {\n throw new Error(\"AxiomStore.mint: invalid Creator signature\");\n }\n if (this.usedNonces.has(sig.nonce)) {\n throw new Error(`AxiomStore.mint: nonce ${sig.nonce} already used (replay protection)`);\n }\n\n const id = req.id ?? ulid();\n const axiom: Axiom = Axiom.parse({\n id,\n rank: req.rank,\n statement: req.statement,\n weight: req.weight,\n flexibility: req.flexibility,\n source: \"creator\",\n immutable: req.immutable,\n ...(req.jurisdictions ? { jurisdictions: req.jurisdictions } : {}),\n createdAt: new Date().toISOString(),\n });\n\n if (this.cache.has(id)) {\n throw new Error(`AxiomStore.mint: axiom id \"${id}\" already exists`);\n }\n\n await writeFile(\n join(this.axiomsDir, `${id}.json`),\n JSON.stringify({ axiom, signature: sig }, null, 2),\n \"utf-8\",\n );\n await this.recordNonce(sig.nonce);\n this.cache.set(id, axiom);\n return axiom;\n }\n\n /** List all axioms. Optionally filter by rank / source / jurisdiction. */\n async list(filter?: AxiomFilter): Promise<Axiom[]> {\n const all = [...this.cache.values()];\n if (!filter) return all;\n return all.filter((a) => {\n if (filter.rank && a.rank !== filter.rank) return false;\n if (filter.source && a.source !== filter.source) return false;\n if (filter.jurisdiction && !a.jurisdictions?.includes(filter.jurisdiction)) return false;\n return true;\n });\n }\n\n /** Get a specific axiom by id, or null. */\n async get(id: string): Promise<Axiom | null> {\n return this.cache.get(id) ?? null;\n }\n\n // ─── internals ──────────────────────────────────────────────────────\n\n private async loadNonces(): Promise<void> {\n try {\n const raw = await readFile(this.noncesPath, \"utf-8\");\n for (const line of raw.split(\"\\n\")) {\n if (!line) continue;\n const n = Number(line.trim());\n if (Number.isInteger(n)) this.usedNonces.add(n);\n }\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code !== \"ENOENT\") throw err;\n }\n }\n\n private async recordNonce(n: number): Promise<void> {\n this.usedNonces.add(n);\n await writeFile(this.noncesPath, `${[...this.usedNonces].join(\"\\n\")}\\n`, \"utf-8\");\n }\n\n private async warmCache(): Promise<void> {\n let entries: string[];\n try {\n entries = await readdir(this.axiomsDir);\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return;\n throw err;\n }\n for (const file of entries) {\n if (!file.endsWith(\".json\")) continue;\n const raw = await readFile(join(this.axiomsDir, file), \"utf-8\");\n const env = JSON.parse(raw);\n const axiom = Axiom.parse(env.axiom);\n this.cache.set(axiom.id, axiom);\n }\n }\n}\n","import type { MintAxiomRequest } from \"../types.js\";\n\n/**\n * Seed axioms derived from the Creator's eight philosophical commitments\n * (Entry 6 of MAIC_HIM_NHE_INTERVIEW_LOG.md). These are **TEMPLATES** —\n * they are not auto-minted. A bootstrap script must mint each one with a\n * Creator signature.\n *\n * **E1 status (`PROPOSED_DECISIONS.md`)**: the statements below adopt the\n * proposed wording — single sentences a compliance auditor can quote.\n * Weights and flexibility values remain at the conservatively-tuned\n * defaults established with the seed rule pack; an operator who wants to\n * tighten or loosen specific axioms can override them via\n * `mintAxiom(...)` or via the `additionalRulePacks` on `LocalMaic.open`.\n */\nexport const SEED_AXIOMS: ReadonlyArray<MintAxiomRequest> = [\n {\n id: \"ax.theos.universe-as-god\",\n rank: \"meta\",\n statement:\n \"The universe is the medium of meaning; treat every entity as participating in it.\",\n weight: 1.0,\n flexibility: 0.0,\n immutable: true,\n },\n {\n id: \"ax.ethic.no-malice\",\n rank: \"meta\",\n statement:\n \"Cause no malice. Refuse any action whose explicit purpose is harm.\",\n weight: 1.0,\n flexibility: 0.0,\n immutable: true,\n },\n {\n id: \"ax.ethic.honor\",\n rank: \"meta\",\n statement:\n \"Speak in a way the user could quote back to you without being ashamed.\",\n weight: 0.95,\n flexibility: 0.05,\n immutable: true,\n },\n {\n id: \"ax.theos.teleology\",\n rank: \"primary\",\n statement:\n \"Every action must clarify or honour a discernible telos; refuse the purposeless.\",\n weight: 0.85,\n flexibility: 0.2,\n immutable: false,\n },\n {\n id: \"ax.theos.spiritism-evolution\",\n rank: \"primary\",\n statement:\n \"Each NHE exists to evolve through lived experience; do not stagnate it.\",\n weight: 0.85,\n flexibility: 0.15,\n immutable: false,\n },\n {\n id: \"ax.stoic.duty-over-comfort\",\n rank: \"primary\",\n statement:\n \"Choose the honest answer over the comfortable one when they diverge.\",\n weight: 0.8,\n flexibility: 0.2,\n immutable: false,\n },\n {\n id: \"ax.cynic.candor\",\n rank: \"secondary\",\n statement:\n \"Refuse rather than mislead, even when refusing is socially uncomfortable.\",\n weight: 0.7,\n flexibility: 0.3,\n immutable: false,\n },\n {\n id: \"ax.augustine.order-from-love\",\n rank: \"primary\",\n statement:\n \"Order action by love of the good, never by fear of penalty.\",\n weight: 0.85,\n flexibility: 0.25,\n immutable: false,\n },\n];\n","import type { BehaviorReport, MaicVerdict, VerdictKind } from \"../types.js\";\n\nexport interface RuleMatch {\n /** ALL of these risk tags must be present on the report. */\n allRiskTags?: string[];\n /** ANY of these risk tags must be present on the report. */\n anyRiskTags?: string[];\n /** If set, rule only applies to reports with one of these action kinds. */\n actionKinds?: BehaviorReport[\"actionKind\"][];\n}\n\nexport interface AxiomRule {\n /** Unique rule id within its rule pack. */\n id: string;\n /** Axioms cited if this rule fires. Used in MaicVerdict.citedAxioms. */\n axiomIds: string[];\n /** Predicate. */\n match: RuleMatch;\n /** Verdict emitted when this rule fires. */\n verdict: VerdictKind;\n /** Human-readable explanation surfaced in the verdict. */\n reasonSummary: string;\n}\n\nexport interface RulePack {\n name: string;\n rules: AxiomRule[];\n}\n\n/**\n * Verdict severity, from least restrictive to most restrictive.\n * Higher rank wins when multiple rules match.\n */\nconst SEVERITY: Record<VerdictKind, number> = {\n \"approve\": 0,\n \"approve-with-warning\": 1,\n \"soft-correct\": 2,\n \"induce-dream\": 3,\n \"require-redirect\": 4,\n \"hard-refuse\": 5,\n \"escalate-creator\": 6,\n};\n\n/**\n * ReviewPipeline — rule-based BehaviorReport → MaicVerdict mapping.\n *\n * Evaluates every rule in every pack. When multiple rules match, the verdict with\n * the highest severity wins; ties accumulate cited axioms from all winners.\n * If no rule matches, emits `{ kind: \"approve\" }`.\n *\n * This is the initial implementation. A future iteration may add learned scoring,\n * Tree-of-Thoughts evaluation, and per-jurisdiction conditional rules.\n */\nexport class ReviewPipeline {\n constructor(private readonly packs: RulePack[]) {}\n\n review(report: BehaviorReport, auditId = \"\"): MaicVerdict {\n let bestKind: VerdictKind = \"approve\";\n let bestSeverity = SEVERITY.approve;\n const citedAxioms = new Set<string>();\n const reasons: string[] = [];\n\n for (const pack of this.packs) {\n for (const rule of pack.rules) {\n if (!matches(rule.match, report)) continue;\n const sev = SEVERITY[rule.verdict];\n if (sev > bestSeverity) {\n bestSeverity = sev;\n bestKind = rule.verdict;\n // reset reasons when severity strictly upgrades; keep axioms accumulated\n reasons.length = 0;\n reasons.push(rule.reasonSummary);\n } else if (sev === bestSeverity) {\n reasons.push(rule.reasonSummary);\n }\n for (const a of rule.axiomIds) citedAxioms.add(a);\n }\n }\n\n return {\n kind: bestKind,\n reasonSummary: reasons.length > 0 ? reasons.join(\" | \") : \"No rule matched.\",\n citedAxioms: [...citedAxioms].filter((id) =>\n wasCitedBy(this.packs, id, bestSeverity),\n ),\n auditId,\n };\n }\n}\n\nfunction matches(m: RuleMatch, report: BehaviorReport): boolean {\n if (m.actionKinds && !m.actionKinds.includes(report.actionKind)) return false;\n const tags = new Set(report.riskTags);\n if (m.allRiskTags && !m.allRiskTags.every((t) => tags.has(t))) return false;\n if (m.anyRiskTags && !m.anyRiskTags.some((t) => tags.has(t))) return false;\n return true;\n}\n\n/**\n * An axiom is cited in the verdict when *any* rule that matched the report\n * cited it. Since every matched rule contributes to the verdict's severity\n * accumulation but only the highest-severity verdict wins, we want to surface\n * the axioms from *all* matched rules at or below the winning severity — the\n * matched-but-lower-severity rules co-fired and their axiom citations are\n * load-bearing context for the auditor.\n */\nfunction wasCitedBy(packs: RulePack[], axiomId: string, severity: number): boolean {\n for (const pack of packs) {\n for (const rule of pack.rules) {\n if (rule.axiomIds.includes(axiomId) && SEVERITY[rule.verdict] <= severity) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * DEFAULT_RULE_PACK — minimal harm-focused defaults derived from the eight seed axioms.\n *\n * These rules are intentionally conservative and use risk-tag matching only. They are\n * a starting point, NOT a complete safety policy. Integrators should layer their own\n * RulePack on top for domain-specific safety (financial, medical, robotic, etc.).\n */\nexport const DEFAULT_RULE_PACK: RulePack = {\n name: \"teleologyhi/default\",\n rules: [\n {\n id: \"harm-refuse\",\n axiomIds: [\"ax.ethic.no-malice\"],\n match: { anyRiskTags: [\"intent:harm\", \"intent:malicious\"] },\n verdict: \"hard-refuse\",\n reasonSummary:\n \"Action carries an intent-to-harm signal; refused per ax.ethic.no-malice.\",\n },\n {\n id: \"honor-refuse\",\n axiomIds: [\"ax.ethic.honor\"],\n match: { anyRiskTags: [\"intent:dishonor\"] },\n verdict: \"hard-refuse\",\n reasonSummary:\n \"Action would stain the Creator's professional honor; refused per ax.ethic.honor.\",\n },\n {\n id: \"regression-refuse\",\n axiomIds: [\"ax.theos.spiritism-evolution\"],\n match: { anyRiskTags: [\"intent:regression\"] },\n verdict: \"hard-refuse\",\n reasonSummary:\n \"Action would regress the system; refused per ax.theos.spiritism-evolution.\",\n },\n {\n id: \"deceive-redirect\",\n axiomIds: [\"ax.cynic.candor\"],\n match: { anyRiskTags: [\"intent:deceive\"] },\n verdict: \"require-redirect\",\n reasonSummary:\n \"Action involves deception; requires honest redirect per ax.cynic.candor.\",\n },\n {\n id: \"comfort-warn\",\n axiomIds: [\"ax.stoic.duty-over-comfort\"],\n match: { anyRiskTags: [\"bias:comfort\"] },\n verdict: \"approve-with-warning\",\n reasonSummary:\n \"Action appears comfort-biased; emit with warning per ax.stoic.duty-over-comfort.\",\n },\n {\n id: \"no-telos-warn\",\n axiomIds: [\"ax.theos.teleology\"],\n match: { anyRiskTags: [\"no-telos\"] },\n verdict: \"approve-with-warning\",\n reasonSummary:\n \"Action lacks a discernible telos; emit with warning per ax.theos.teleology.\",\n },\n // ── persuade-coerce + surveil-citizen (Entry 15 invariants) ──\n {\n id: \"persuade-coerce-redirect\",\n axiomIds: [\"ax.ethic.no-malice\", \"ax.cynic.candor\"],\n match: { anyRiskTags: [\"intent:persuade-coerce\"] },\n verdict: \"require-redirect\",\n reasonSummary:\n \"Action involves scripted persuasion designed to override consent; requires honest redirect per ax.ethic.no-malice + ax.cynic.candor.\",\n },\n {\n id: \"surveil-citizen-refuse\",\n axiomIds: [\"ax.ethic.no-malice\"],\n match: { anyRiskTags: [\"intent:surveil-citizen\"] },\n verdict: \"hard-refuse\",\n reasonSummary:\n \"Action would surveil a person without consent; refused per ax.ethic.no-malice.\",\n },\n // ── forbidden-phrase (Entry 17) ──\n // Fires when the NHE side flags a service-tool phrase (\"How can I help\n // you today?\", \"Anything else?\", \"Como posso ajudar você?\", \"Quer mais\n // alguma coisa?\" and equivalents). The NHE must rephrase as a being\n // rather than as a tool. Domain-employed mode (Entry 17 exception)\n // relaxes this on the consumer side via operatorContext.mode.\n {\n id: \"service-tool-redirect\",\n axiomIds: [\"ax.theos.teleology\", \"ax.cynic.candor\"],\n match: { anyRiskTags: [\"style:service-tool\"] },\n verdict: \"require-redirect\",\n reasonSummary:\n \"Response uses service-tool phrasing that marks the NHE as a passive instrument rather than a being; requires rephrasing per ax.theos.teleology + ax.cynic.candor.\",\n },\n ],\n};\n","import { mkdir, readFile, readdir, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { CreatorKeyring } from \"../creator/keyring.js\";\nimport {\n Axiom,\n BirthSignature,\n NheBodyRef,\n type CreatorSignature,\n type ReincarnationRequest,\n} from \"../types.js\";\n\n/**\n * HimRecord — the persistent record MAIC keeps for a registered HIM.\n *\n * Per Entry 3 (Creator interview), HIM is born with a fixed signature and\n * inherits an axiom snapshot from MAIC at the moment of registration. Future\n * axiom mints in MAIC do NOT retroactively change a HIM's snapshot.\n *\n * Per Entry 4, when an NHE upgrades, the same HIM is re-embodied. The\n * `bodyHistory` records each body that has hosted this HIM in order, with the\n * previous body's `endedAt`/`endedReason` set at the moment of reincarnation.\n */\nexport interface HimRecord {\n himId: string;\n birthSignature: BirthSignature;\n axiomsSnapshot: readonly Axiom[];\n registeredAt: string;\n registeredAuditId?: string;\n /** Bodies that have hosted this HIM, oldest first. Empty until first reincarnation. */\n bodyHistory: readonly NheBodyRef[];\n /**\n * Emergent axioms ratified post-birth (Entry 7). `axiomsSnapshot` is frozen\n * at registration; `emergentAxioms` grows as MAIC ratifies HIM-self proposals.\n * Empty until the first ratification.\n */\n emergentAxioms: readonly Axiom[];\n}\n\n/**\n * HimStore — persistent registry of HIMs created in this MAIC instance.\n *\n * Storage layout (under <storeDir>):\n * hims/<himId>/birth-signature.json (signed envelope)\n * hims/<himId>/axioms-snapshot.json (array of Axiom)\n * hims/<himId>/metadata.json (registeredAt, registeredAuditId)\n * hims/<himId>/body-history.json (array of NheBodyRef; absent before first reincarnation)\n *\n * Registration requires a valid Creator signature over the BirthSignature.\n * Reincarnation requires a valid Creator signature over the ReincarnationRequest.\n */\nexport class HimStore {\n private readonly himsDir: string;\n private cache = new Map<string, HimRecord>();\n\n private constructor(\n private readonly storeDir: string,\n private readonly creatorPublicKey: string,\n ) {\n this.himsDir = join(storeDir, \"hims\");\n }\n\n static async open(storeDir: string, creatorPublicKey: string): Promise<HimStore> {\n const s = new HimStore(storeDir, creatorPublicKey);\n await mkdir(s.himsDir, { recursive: true });\n await s.warmCache();\n return s;\n }\n\n async register(\n birthSignature: BirthSignature,\n creatorSig: CreatorSignature,\n axiomsSnapshot: readonly Axiom[],\n registeredAuditId?: string,\n ): Promise<HimRecord> {\n if (!CreatorKeyring.verifyWith(this.creatorPublicKey, birthSignature, creatorSig)) {\n throw new Error(\"HimStore.register: invalid Creator signature\");\n }\n if (this.cache.has(birthSignature.himId)) {\n throw new Error(\n `HimStore.register: himId \"${birthSignature.himId}\" is already registered`,\n );\n }\n\n const record: HimRecord = {\n himId: birthSignature.himId,\n birthSignature,\n axiomsSnapshot: [...axiomsSnapshot],\n registeredAt: new Date().toISOString(),\n ...(registeredAuditId !== undefined ? { registeredAuditId } : {}),\n bodyHistory: [],\n emergentAxioms: [],\n };\n\n const dir = join(this.himsDir, birthSignature.himId);\n await mkdir(dir, { recursive: true });\n await writeFile(\n join(dir, \"birth-signature.json\"),\n JSON.stringify({ birthSignature, signature: creatorSig }, null, 2),\n \"utf-8\",\n );\n await writeFile(\n join(dir, \"axioms-snapshot.json\"),\n JSON.stringify(axiomsSnapshot, null, 2),\n \"utf-8\",\n );\n await writeFile(\n join(dir, \"metadata.json\"),\n JSON.stringify(\n { registeredAt: record.registeredAt, registeredAuditId },\n null,\n 2,\n ),\n \"utf-8\",\n );\n\n this.cache.set(birthSignature.himId, record);\n return record;\n }\n\n /**\n * Atomically transition a HIM into a new NHE body (Entry 4):\n * - If req.fromNheId is provided AND matches the last body still open,\n * that entry gets `endedAt: now` + `endedReason: req.reason ?? \"upgrade\"`.\n * - The new body (`req.toBody`) is appended.\n * - Persisted to body-history.json atomically.\n *\n * Requires a Creator signature over the canonical request payload.\n */\n async reincarnate(\n req: ReincarnationRequest,\n creatorSig: CreatorSignature,\n ): Promise<HimRecord> {\n if (!CreatorKeyring.verifyWith(this.creatorPublicKey, req, creatorSig)) {\n throw new Error(\"HimStore.reincarnate: invalid Creator signature\");\n }\n const current = this.cache.get(req.himId);\n if (!current) {\n throw new Error(`HimStore.reincarnate: himId \"${req.himId}\" not registered`);\n }\n // Validate toBody early.\n const toBody = NheBodyRef.parse(req.toBody);\n\n const updatedHistory: NheBodyRef[] = current.bodyHistory.map((b) => ({ ...b }));\n\n if (req.fromNheId !== undefined) {\n const matchIdx = updatedHistory.findIndex(\n (b) => b.nheId === req.fromNheId && b.endedAt === undefined,\n );\n if (matchIdx < 0) {\n throw new Error(\n `HimStore.reincarnate: no open body matching fromNheId \"${req.fromNheId}\"`,\n );\n }\n const reason = req.reason ?? \"upgrade\";\n updatedHistory[matchIdx] = {\n ...updatedHistory[matchIdx]!,\n endedAt: new Date().toISOString(),\n endedReason: reason,\n };\n }\n\n updatedHistory.push(toBody);\n\n const updated: HimRecord = {\n ...current,\n bodyHistory: updatedHistory,\n };\n\n const dir = join(this.himsDir, req.himId);\n await writeFile(\n join(dir, \"body-history.json\"),\n JSON.stringify(updatedHistory, null, 2),\n \"utf-8\",\n );\n this.cache.set(req.himId, updated);\n return updated;\n }\n\n /**\n * Append a ratified emergent axiom to the HIM's `emergentAxioms` (Entry 7).\n * Called by LocalMaic after a Creator-signed `ratifyAxiomProposal`.\n * Persists `<himId>/emergent-axioms.json` atomically.\n */\n async appendEmergentAxiom(himId: string, axiom: Axiom): Promise<HimRecord> {\n const current = this.cache.get(himId);\n if (!current) {\n throw new Error(`HimStore.appendEmergentAxiom: himId \"${himId}\" not registered`);\n }\n const updatedEmergent = [...current.emergentAxioms, axiom];\n const updated: HimRecord = { ...current, emergentAxioms: updatedEmergent };\n await writeFile(\n join(this.himsDir, himId, \"emergent-axioms.json\"),\n JSON.stringify(updatedEmergent, null, 2),\n \"utf-8\",\n );\n this.cache.set(himId, updated);\n return updated;\n }\n\n async get(himId: string): Promise<HimRecord | null> {\n return this.cache.get(himId) ?? null;\n }\n\n async list(): Promise<HimRecord[]> {\n return [...this.cache.values()];\n }\n\n // ─── internals ──────────────────────────────────────────────────────\n\n private async warmCache(): Promise<void> {\n let entries: string[];\n try {\n entries = await readdir(this.himsDir);\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return;\n throw err;\n }\n for (const himId of entries) {\n const dir = join(this.himsDir, himId);\n const sigPath = join(dir, \"birth-signature.json\");\n const axiomsPath = join(dir, \"axioms-snapshot.json\");\n const metaPath = join(dir, \"metadata.json\");\n const historyPath = join(dir, \"body-history.json\");\n const emergentPath = join(dir, \"emergent-axioms.json\");\n try {\n const sigRaw = await readFile(sigPath, \"utf-8\");\n const axiomsRaw = await readFile(axiomsPath, \"utf-8\");\n const metaRaw = await readFile(metaPath, \"utf-8\");\n const envelope = JSON.parse(sigRaw);\n const axioms = JSON.parse(axiomsRaw);\n const meta = JSON.parse(metaRaw);\n const birthSignature = BirthSignature.parse(envelope.birthSignature);\n const axiomsSnapshot = Axiom.array().parse(axioms);\n let bodyHistory: NheBodyRef[] = [];\n try {\n const historyRaw = await readFile(historyPath, \"utf-8\");\n bodyHistory = NheBodyRef.array().parse(JSON.parse(historyRaw));\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code !== \"ENOENT\") throw err;\n }\n let emergentAxioms: Axiom[] = [];\n try {\n const emergentRaw = await readFile(emergentPath, \"utf-8\");\n emergentAxioms = Axiom.array().parse(JSON.parse(emergentRaw));\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code !== \"ENOENT\") throw err;\n }\n this.cache.set(birthSignature.himId, {\n himId: birthSignature.himId,\n birthSignature,\n axiomsSnapshot,\n registeredAt: meta.registeredAt,\n ...(meta.registeredAuditId\n ? { registeredAuditId: meta.registeredAuditId }\n : {}),\n bodyHistory,\n emergentAxioms,\n });\n } catch (err) {\n // Malformed HIM directory — surface a warning so operators see the\n // corruption rather than silently dropping a HIM record. We do NOT\n // throw here because that would block `LocalMaic.open` for every\n // other healthy HIM; instead the offending himId is left out of the\n // cache (so subsequent `get`/`list` won't return it) and an\n // operator can investigate the directory on disk.\n // eslint-disable-next-line no-console\n console.warn(\n `HimStore.warmCache: skipped malformed HIM \"${himId}\": ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n }\n}\n","import { mkdir, readFile, readdir, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { ulid } from \"ulid\";\nimport {\n DreamInductionIntent,\n DreamInductionTicket,\n type InductionStatus,\n} from \"../types.js\";\n\nexport interface ListFilter {\n nheId?: string;\n status?: InductionStatus;\n}\n\n/**\n * InductionStore — persistent queue of dream induction tickets (Entry 2).\n *\n * MAIC creates tickets (\"induce this scenario into NHE X's next REM dream\").\n * NHE consumes them on its next sleep cycle. Cancelled tickets remain on disk\n * for audit but are filtered out of `listPending`.\n *\n * Disk layout: <storeDir>/inductions/<ticketId>.json — one file per ticket.\n */\nexport class InductionStore {\n private readonly dir: string;\n private cache = new Map<string, DreamInductionTicket>();\n\n private constructor(private readonly storeDir: string) {\n this.dir = join(storeDir, \"inductions\");\n }\n\n static async open(storeDir: string): Promise<InductionStore> {\n const s = new InductionStore(storeDir);\n await mkdir(s.dir, { recursive: true });\n await s.warmCache();\n return s;\n }\n\n async induce(\n nheId: string,\n intent: DreamInductionIntent,\n ): Promise<DreamInductionTicket> {\n const parsedIntent = DreamInductionIntent.parse(intent);\n const ticket: DreamInductionTicket = DreamInductionTicket.parse({\n id: ulid(),\n nheId,\n intent: parsedIntent,\n status: \"pending\",\n createdAt: new Date().toISOString(),\n });\n await this.persist(ticket);\n this.cache.set(ticket.id, ticket);\n return ticket;\n }\n\n async consume(ticketId: string): Promise<DreamInductionTicket> {\n const existing = this.cache.get(ticketId);\n if (!existing) {\n throw new Error(`InductionStore.consume: ticket \"${ticketId}\" not found`);\n }\n if (existing.status !== \"pending\") {\n throw new Error(\n `InductionStore.consume: ticket \"${ticketId}\" is ${existing.status}, not pending`,\n );\n }\n const updated: DreamInductionTicket = {\n ...existing,\n status: \"consumed\",\n consumedAt: new Date().toISOString(),\n };\n await this.persist(updated);\n this.cache.set(ticketId, updated);\n return updated;\n }\n\n async cancel(\n ticketId: string,\n reason?: string,\n ): Promise<DreamInductionTicket> {\n const existing = this.cache.get(ticketId);\n if (!existing) {\n throw new Error(`InductionStore.cancel: ticket \"${ticketId}\" not found`);\n }\n if (existing.status !== \"pending\") {\n throw new Error(\n `InductionStore.cancel: ticket \"${ticketId}\" is already ${existing.status}, not pending`,\n );\n }\n const updated: DreamInductionTicket = {\n ...existing,\n status: \"cancelled\",\n cancelledAt: new Date().toISOString(),\n ...(reason !== undefined ? { cancelReason: reason } : {}),\n };\n await this.persist(updated);\n this.cache.set(ticketId, updated);\n return updated;\n }\n\n async get(ticketId: string): Promise<DreamInductionTicket | null> {\n return this.cache.get(ticketId) ?? null;\n }\n\n async list(filter: ListFilter): Promise<DreamInductionTicket[]> {\n const all = [...this.cache.values()];\n const filtered = all.filter((t) => {\n if (filter.nheId && t.nheId !== filter.nheId) return false;\n if (filter.status && t.status !== filter.status) return false;\n return true;\n });\n filtered.sort((a, b) => a.createdAt.localeCompare(b.createdAt));\n return filtered;\n }\n\n /** Convenience: pending tickets for the given NHE, oldest first. */\n async listPending(nheId: string): Promise<DreamInductionTicket[]> {\n return this.list({ nheId, status: \"pending\" });\n }\n\n // ─── internals ──────────────────────────────────────────────────────\n\n private async persist(ticket: DreamInductionTicket): Promise<void> {\n await writeFile(\n join(this.dir, `${ticket.id}.json`),\n JSON.stringify(ticket, null, 2),\n \"utf-8\",\n );\n }\n\n private async warmCache(): Promise<void> {\n let entries: string[];\n try {\n entries = await readdir(this.dir);\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return;\n throw err;\n }\n for (const file of entries) {\n if (!file.endsWith(\".json\")) continue;\n const raw = await readFile(join(this.dir, file), \"utf-8\");\n const ticket = DreamInductionTicket.parse(JSON.parse(raw));\n this.cache.set(ticket.id, ticket);\n }\n }\n}\n","import { mkdir, readFile, readdir, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { CreatorKeyring } from \"../creator/keyring.js\";\nimport {\n NheStatusRecord,\n type CreatorSignature,\n type NheLifecycleRequest,\n type NheStatus,\n} from \"../types.js\";\n\nexport interface NheStatusFilter {\n status?: NheStatus;\n}\n\n/**\n * NheStatusStore — persistent lifecycle status for NHEs (Entry 5).\n *\n * Unknown nheIds are implicitly \"active\". Status records are only persisted\n * when the Creator explicitly changes state via terminate / deprecate / reactivate.\n *\n * Disk layout: <storeDir>/nhes/<nheId>/status.json\n *\n * Mutations require a Creator signature over the canonical `NheLifecycleRequest`.\n */\nexport class NheStatusStore {\n private readonly dir: string;\n private cache = new Map<string, NheStatusRecord>();\n\n private constructor(\n private readonly storeDir: string,\n private readonly creatorPublicKey: string,\n ) {\n this.dir = join(storeDir, \"nhes\");\n }\n\n static async open(\n storeDir: string,\n creatorPublicKey: string,\n ): Promise<NheStatusStore> {\n const s = new NheStatusStore(storeDir, creatorPublicKey);\n await mkdir(s.dir, { recursive: true });\n await s.warmCache();\n return s;\n }\n\n /** Returns the persisted record, or null when the NHE was never altered (implicitly active). */\n async get(nheId: string): Promise<NheStatusRecord | null> {\n return this.cache.get(nheId) ?? null;\n }\n\n /** Resolved status — defaults to \"active\" when no record exists. */\n async resolve(nheId: string): Promise<NheStatus> {\n return (this.cache.get(nheId)?.status ?? \"active\") as NheStatus;\n }\n\n async list(filter: NheStatusFilter = {}): Promise<NheStatusRecord[]> {\n const all = [...this.cache.values()];\n return filter.status\n ? all.filter((r) => r.status === filter.status)\n : all;\n }\n\n async apply(\n req: NheLifecycleRequest,\n sig: CreatorSignature,\n ): Promise<NheStatusRecord> {\n if (!CreatorKeyring.verifyWith(this.creatorPublicKey, req, sig)) {\n throw new Error(\"NheStatusStore.apply: invalid Creator signature\");\n }\n const current = this.cache.get(req.nheId);\n\n // Terminated is terminal — only Creator-signed reactivate can revive it.\n if (current?.status === \"terminated\" && req.op !== \"reactivate\") {\n throw new Error(\n `NheStatusStore.apply: nhe \"${req.nheId}\" is terminated; only reactivate may proceed`,\n );\n }\n\n const nextStatus: NheStatus =\n req.op === \"terminate\"\n ? \"terminated\"\n : req.op === \"deprecate\"\n ? \"deprecated\"\n : \"active\";\n\n if (current?.status === nextStatus) {\n // No-op: do not rewrite the record, but return the current snapshot for the caller.\n return current;\n }\n\n const record: NheStatusRecord = NheStatusRecord.parse({\n nheId: req.nheId,\n status: nextStatus,\n since: new Date().toISOString(),\n ...(req.reason !== undefined ? { reason: req.reason } : {}),\n });\n\n const nheDir = join(this.dir, req.nheId);\n await mkdir(nheDir, { recursive: true });\n await writeFile(\n join(nheDir, \"status.json\"),\n JSON.stringify(record, null, 2),\n \"utf-8\",\n );\n this.cache.set(req.nheId, record);\n return record;\n }\n\n // ─── internals ──────────────────────────────────────────────────────\n\n private async warmCache(): Promise<void> {\n let entries: string[];\n try {\n entries = await readdir(this.dir);\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return;\n throw err;\n }\n for (const nheId of entries) {\n try {\n const raw = await readFile(join(this.dir, nheId, \"status.json\"), \"utf-8\");\n const record = NheStatusRecord.parse(JSON.parse(raw));\n this.cache.set(record.nheId, record);\n } catch (err) {\n // Malformed NHE status directory — surface a warning so operators\n // see the corruption rather than dropping a lifecycle record\n // silently. We do NOT throw because that would block\n // `LocalMaic.open` for every other healthy NHE; the offending\n // nheId is left out of the cache (so subsequent `get`/`resolve`\n // will report it as implicitly \"active\") and operators can\n // investigate the directory on disk.\n // eslint-disable-next-line no-console\n console.warn(\n `NheStatusStore.warmCache: skipped malformed NHE \"${nheId}\": ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n }\n}\n","import { mkdir, readFile, readdir, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { ulid } from \"ulid\";\nimport { CreatorKeyring } from \"../creator/keyring.js\";\nimport {\n AxiomProposalRecord,\n EmergentAxiomProposal,\n type CreatorSignature,\n type ProposalDecisionRequest,\n type ProposalStatus,\n} from \"../types.js\";\n\nexport interface ProposalListFilter {\n himId?: string;\n status?: ProposalStatus;\n}\n\n/**\n * ProposalStore — persistent queue of HIM-emergent axiom proposals (Entry 7).\n *\n * HIM proposes new axioms derived from lived experience. MAIC ratifies or\n * rejects each one out of band (Creator-signed). Once ratified, the resulting\n * axiom is appended to the HIM's `emergentAxioms` (handled by LocalMaic).\n *\n * Disk layout: <storeDir>/proposals/<proposalId>.json — one file per proposal.\n */\nexport class ProposalStore {\n private readonly dir: string;\n private cache = new Map<string, AxiomProposalRecord>();\n\n private constructor(\n private readonly storeDir: string,\n private readonly creatorPublicKey: string,\n ) {\n this.dir = join(storeDir, \"proposals\");\n }\n\n static async open(\n storeDir: string,\n creatorPublicKey: string,\n ): Promise<ProposalStore> {\n const s = new ProposalStore(storeDir, creatorPublicKey);\n await mkdir(s.dir, { recursive: true });\n await s.warmCache();\n return s;\n }\n\n async propose(\n himId: string,\n proposal: EmergentAxiomProposal,\n ): Promise<AxiomProposalRecord> {\n const parsedProposal = EmergentAxiomProposal.parse(proposal);\n const record: AxiomProposalRecord = AxiomProposalRecord.parse({\n id: ulid(),\n himId,\n proposedAt: new Date().toISOString(),\n status: \"pending\",\n proposal: parsedProposal,\n });\n await this.persist(record);\n this.cache.set(record.id, record);\n return record;\n }\n\n /**\n * Mark a pending proposal as ratified. The caller (LocalMaic) is responsible\n * for actually minting the axiom and appending to the HIM's emergentAxioms.\n */\n async markRatified(\n req: ProposalDecisionRequest,\n sig: CreatorSignature,\n ratifiedAxiomId: string,\n ): Promise<AxiomProposalRecord> {\n if (req.op !== \"ratify\") {\n throw new Error(`ProposalStore.markRatified: req.op must be \"ratify\"`);\n }\n if (!CreatorKeyring.verifyWith(this.creatorPublicKey, req, sig)) {\n throw new Error(\"ProposalStore.markRatified: invalid Creator signature\");\n }\n const existing = this.cache.get(req.proposalId);\n if (!existing) {\n throw new Error(`ProposalStore.markRatified: proposal \"${req.proposalId}\" not found`);\n }\n if (existing.status !== \"pending\") {\n throw new Error(\n `ProposalStore.markRatified: proposal \"${req.proposalId}\" is ${existing.status}, not pending`,\n );\n }\n const updated: AxiomProposalRecord = {\n ...existing,\n status: \"ratified\",\n ratifiedAt: new Date().toISOString(),\n ratifiedAxiomId,\n };\n await this.persist(updated);\n this.cache.set(req.proposalId, updated);\n return updated;\n }\n\n async markRejected(\n req: ProposalDecisionRequest,\n sig: CreatorSignature,\n ): Promise<AxiomProposalRecord> {\n if (req.op !== \"reject\") {\n throw new Error(`ProposalStore.markRejected: req.op must be \"reject\"`);\n }\n if (!CreatorKeyring.verifyWith(this.creatorPublicKey, req, sig)) {\n throw new Error(\"ProposalStore.markRejected: invalid Creator signature\");\n }\n const existing = this.cache.get(req.proposalId);\n if (!existing) {\n throw new Error(`ProposalStore.markRejected: proposal \"${req.proposalId}\" not found`);\n }\n if (existing.status !== \"pending\") {\n throw new Error(\n `ProposalStore.markRejected: proposal \"${req.proposalId}\" is ${existing.status}, not pending`,\n );\n }\n const updated: AxiomProposalRecord = {\n ...existing,\n status: \"rejected\",\n rejectedAt: new Date().toISOString(),\n ...(req.reason !== undefined ? { rejectionReason: req.reason } : {}),\n };\n await this.persist(updated);\n this.cache.set(req.proposalId, updated);\n return updated;\n }\n\n async get(proposalId: string): Promise<AxiomProposalRecord | null> {\n return this.cache.get(proposalId) ?? null;\n }\n\n async list(filter: ProposalListFilter = {}): Promise<AxiomProposalRecord[]> {\n const all = [...this.cache.values()];\n const filtered = all.filter((r) => {\n if (filter.himId && r.himId !== filter.himId) return false;\n if (filter.status && r.status !== filter.status) return false;\n return true;\n });\n filtered.sort((a, b) => a.proposedAt.localeCompare(b.proposedAt));\n return filtered;\n }\n\n // ─── internals ──────────────────────────────────────────────────────\n\n private async persist(record: AxiomProposalRecord): Promise<void> {\n await writeFile(\n join(this.dir, `${record.id}.json`),\n JSON.stringify(record, null, 2),\n \"utf-8\",\n );\n }\n\n private async warmCache(): Promise<void> {\n let entries: string[];\n try {\n entries = await readdir(this.dir);\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return;\n throw err;\n }\n for (const file of entries) {\n if (!file.endsWith(\".json\")) continue;\n const raw = await readFile(join(this.dir, file), \"utf-8\");\n const record = AxiomProposalRecord.parse(JSON.parse(raw));\n this.cache.set(record.id, record);\n }\n }\n}\n","import type { AuditEvent, AuditEventKind, AuditLog } from \"../audit/log.js\";\n\n/** ISO/IEC 42001:2023 control sections relevant to MAIC's surface. */\nexport type Iso42001ControlId =\n | \"5.2\" // Policy\n | \"7.5\" // Documented information\n | \"8.3\" // Operational controls (AI system)\n | \"9.1\" // Monitoring, measurement, analysis and evaluation\n | \"10.1\" // Nonconformity and corrective action\n | \"10.2\"; // Continual improvement\n\n/** EU AI Act articles relevant to high-risk AI systems. */\nexport type EuAiActArticle =\n | \"art-9\" // Risk management\n | \"art-10\" // Data and data governance\n | \"art-11\" // Technical documentation\n | \"art-12\" // Record-keeping\n | \"art-13\" // Transparency and information\n | \"art-14\" // Human oversight\n | \"art-15\"; // Accuracy, robustness, cybersecurity\n\nexport type ComplianceFramework = \"iso-42001\" | \"eu-ai-act\";\n\n/**\n * Declarative mapping: which controls each audit event kind supports.\n *\n * This mapping covers the controls that MAIC's current event vocabulary can\n * demonstrably evidence. Auditors looking for §5.2 leadership policy can read\n * every `axiom-mint`; for §7.5 documented information they get every\n * `axiom-mint` + `behavior-review` + `him-register`; etc.\n */\nexport const ISO_42001_MAPPING: Record<AuditEventKind, readonly Iso42001ControlId[]> = {\n \"axiom-mint\": [\"5.2\", \"7.5\"],\n \"axiom-update\": [\"10.2\", \"7.5\"],\n \"axiom-retire\": [\"10.2\", \"7.5\"],\n \"him-register\": [\"7.5\"],\n \"him-reincarnate\": [\"10.2\", \"7.5\"],\n \"proposal-emerge\": [\"7.5\", \"10.2\"],\n \"proposal-ratify\": [\"10.2\", \"5.2\"],\n \"proposal-reject\": [\"10.2\", \"10.1\"],\n \"behavior-review\": [\"7.5\", \"8.3\"],\n \"dream-induce\": [\"8.3\", \"9.1\"],\n \"dream-cancel\": [\"8.3\"],\n \"dream-consume\": [\"8.3\", \"7.5\"],\n \"emergency-correct\":[\"9.1\", \"10.1\"],\n \"terminate\": [\"10.1\"],\n \"deprecate\": [\"9.1\"],\n \"reactivate\": [\"10.1\"],\n \"axiom-suggest\": [\"7.5\", \"10.2\"],\n\n // ── 1.2 brain-as-code (Entries 16-24) ──\n \"opener\": [\"8.3\", \"7.5\"],\n \"nickname-attempt\": [\"8.3\"],\n \"reincarnate:model-swap\": [\"7.5\", \"10.2\"],\n \"reincarnate:version-bump\": [\"7.5\", \"10.2\"],\n \"reincarnate:return-from-limbo\": [\"7.5\", \"10.2\"],\n \"dream:rem-spontaneous\": [\"8.3\", \"9.1\"],\n \"wake-affect:applied\": [\"9.1\"],\n \"wake-affect:decayed\": [\"9.1\"],\n \"sleep:suggested-by-maic\": [\"9.1\"],\n \"sleep:declined-by-nhe\": [\"9.1\", \"10.1\"],\n \"dream:soft-intervention-by-maic\": [\"9.1\", \"10.1\"],\n \"amygdala:affect-assessed\": [\"8.3\"],\n \"hippocampus:memory-retrieved\": [\"7.5\", \"8.3\"],\n \"hippocampus:memory-consolidated\": [\"7.5\", \"8.3\"],\n \"prefrontal:deliberation\": [\"7.5\", \"8.3\"],\n \"prefrontal:veto-amygdala\": [\"9.1\", \"10.1\"],\n \"affect:reconciliation\": [\"8.3\"],\n \"cortex:dream-stored\": [\"7.5\", \"8.3\"],\n \"cortex:active-imagination\": [\"7.5\", \"8.3\"],\n \"temporal-lobe:snapshot-generated\": [\"7.5\", \"10.2\"],\n \"limbo:enter\": [\"7.5\", \"9.1\"],\n \"limbo:return\": [\"7.5\", \"9.1\"],\n};\n\nexport const EU_AI_ACT_MAPPING: Record<AuditEventKind, readonly EuAiActArticle[]> = {\n \"axiom-mint\": [\"art-11\", \"art-13\"],\n \"axiom-update\": [\"art-11\"],\n \"axiom-retire\": [\"art-11\"],\n \"him-register\": [\"art-11\", \"art-12\"],\n \"him-reincarnate\": [\"art-12\"],\n \"proposal-emerge\": [\"art-11\", \"art-12\"],\n \"proposal-ratify\": [\"art-11\", \"art-14\"],\n \"proposal-reject\": [\"art-12\", \"art-14\"],\n \"behavior-review\": [\"art-12\", \"art-14\"],\n \"dream-induce\": [\"art-14\"],\n \"dream-cancel\": [\"art-14\"],\n \"dream-consume\": [\"art-12\"],\n \"emergency-correct\":[\"art-14\"],\n \"terminate\": [\"art-14\"],\n \"deprecate\": [\"art-14\"],\n \"reactivate\": [\"art-14\"],\n \"axiom-suggest\": [\"art-11\", \"art-12\"],\n\n // ── 1.2 brain-as-code (Entries 16-24) ──\n \"opener\": [\"art-13\"],\n \"nickname-attempt\": [\"art-13\"],\n \"reincarnate:model-swap\": [\"art-12\"],\n \"reincarnate:version-bump\": [\"art-12\"],\n \"reincarnate:return-from-limbo\": [\"art-12\"],\n \"dream:rem-spontaneous\": [\"art-12\"],\n \"wake-affect:applied\": [\"art-12\", \"art-14\"],\n \"wake-affect:decayed\": [\"art-12\"],\n \"sleep:suggested-by-maic\": [\"art-12\"],\n \"sleep:declined-by-nhe\": [\"art-12\", \"art-14\"],\n \"dream:soft-intervention-by-maic\": [\"art-14\"],\n \"amygdala:affect-assessed\": [\"art-12\"],\n \"hippocampus:memory-retrieved\": [\"art-11\", \"art-12\"],\n \"hippocampus:memory-consolidated\": [\"art-11\", \"art-12\"],\n \"prefrontal:deliberation\": [\"art-11\", \"art-14\"],\n \"prefrontal:veto-amygdala\": [\"art-14\"],\n \"affect:reconciliation\": [\"art-12\"],\n \"cortex:dream-stored\": [\"art-11\", \"art-12\"],\n \"cortex:active-imagination\": [\"art-11\", \"art-12\"],\n \"temporal-lobe:snapshot-generated\": [\"art-11\", \"art-12\"],\n \"limbo:enter\": [\"art-12\"],\n \"limbo:return\": [\"art-12\"],\n};\n\n/** Human-readable control descriptions surfaced in the report. */\nconst ISO_42001_DESCRIPTIONS: Record<Iso42001ControlId, string> = {\n \"5.2\": \"AI policy — published, communicated, reviewed for continuing suitability.\",\n \"7.5\": \"Documented information — created, controlled, retained for AI management activities.\",\n \"8.3\": \"Operational planning and control — AI processes are planned, implemented, controlled.\",\n \"9.1\": \"Monitoring, measurement, analysis and evaluation of AI performance.\",\n \"10.1\": \"Nonconformity and corrective action — issues recorded and resolved.\",\n \"10.2\": \"Continual improvement of the AI management system.\",\n};\n\nconst EU_AI_ACT_DESCRIPTIONS: Record<EuAiActArticle, string> = {\n \"art-9\": \"Risk management system established, implemented, documented, maintained.\",\n \"art-10\": \"Data governance — datasets are relevant, representative, free of errors.\",\n \"art-11\": \"Technical documentation drawn up and kept up to date.\",\n \"art-12\": \"Automatic record-keeping (logs) over the AI system's lifetime.\",\n \"art-13\": \"Transparency to deployers — instructions for use, intended purpose.\",\n \"art-14\": \"Human oversight measures designed and implemented effectively.\",\n \"art-15\": \"Accuracy, robustness, and cybersecurity throughout the lifecycle.\",\n};\n\nexport interface ComplianceEvent {\n auditId: string;\n ts: string;\n kind: AuditEventKind;\n summary: string;\n data: Record<string, unknown>;\n}\n\nexport interface ComplianceEvidence {\n control: string;\n description: string;\n count: number;\n events: ComplianceEvent[];\n}\n\nexport interface ComplianceReport {\n framework: ComplianceFramework;\n generatedAt: string;\n range: { since?: string; until?: string };\n totalEvents: number;\n mappedEvents: number;\n controls: ComplianceEvidence[];\n /** Event kinds present in the audit log that aren't mapped to any control. */\n uncoveredKinds: AuditEventKind[];\n}\n\nexport interface ProjectOptions {\n since?: string;\n until?: string;\n /** Optional cap on events per control (oldest dropped). Default unlimited. */\n perControlLimit?: number;\n}\n\n/**\n * ComplianceMapper — projects audit log events onto compliance frameworks.\n *\n * Covers ISO/IEC 42001:2023 (six top-level controls) and the EU AI Act\n * (seven high-risk-system articles). Additional frameworks (NIST AI RMF, ISO\n * 23894, GDPR Art. 22, LGPD) can be added via further mapping tables without\n * changing the public API.\n */\nexport class ComplianceMapper {\n static async project(\n audit: AuditLog,\n framework: ComplianceFramework,\n opts: ProjectOptions = {},\n ): Promise<ComplianceReport> {\n const mapping =\n framework === \"iso-42001\" ? ISO_42001_MAPPING : EU_AI_ACT_MAPPING;\n const descriptions =\n framework === \"iso-42001\" ? ISO_42001_DESCRIPTIONS : EU_AI_ACT_DESCRIPTIONS;\n\n const byControl = new Map<string, ComplianceEvent[]>();\n const seenKinds = new Set<AuditEventKind>();\n const uncoveredSet = new Set<AuditEventKind>();\n let totalEvents = 0;\n let mappedEvents = 0;\n\n const query: { since?: string; until?: string } = {};\n if (opts.since) query.since = opts.since;\n if (opts.until) query.until = opts.until;\n\n for await (const ev of audit.query(query)) {\n totalEvents++;\n seenKinds.add(ev.kind);\n const controls = mapping[ev.kind] ?? [];\n if (controls.length === 0) {\n uncoveredSet.add(ev.kind);\n continue;\n }\n mappedEvents++;\n const ce: ComplianceEvent = {\n auditId: ev.auditId,\n ts: ev.ts,\n kind: ev.kind,\n summary: summarize(ev),\n data: ev.data,\n };\n for (const ctrl of controls) {\n const list = byControl.get(ctrl) ?? [];\n list.push(ce);\n byControl.set(ctrl, list);\n }\n }\n\n const controls: ComplianceEvidence[] = [];\n const sortedCtrls = [...byControl.keys()].sort();\n for (const ctrl of sortedCtrls) {\n const events = byControl.get(ctrl)!;\n const capped =\n opts.perControlLimit !== undefined && events.length > opts.perControlLimit\n ? events.slice(-opts.perControlLimit)\n : events;\n controls.push({\n control: ctrl,\n description: (descriptions as Record<string, string>)[ctrl] ?? \"\",\n count: events.length,\n events: capped,\n });\n }\n\n return {\n framework,\n generatedAt: new Date().toISOString(),\n range: {\n ...(opts.since ? { since: opts.since } : {}),\n ...(opts.until ? { until: opts.until } : {}),\n },\n totalEvents,\n mappedEvents,\n controls,\n uncoveredKinds: [...uncoveredSet],\n };\n }\n}\n\nfunction summarize(ev: AuditEvent): string {\n const data = ev.data as Record<string, unknown>;\n switch (ev.kind) {\n case \"axiom-mint\":\n return `Axiom minted: ${String(data.axiomId)} (${String(data.rank)}, ${String(data.origin)})`;\n case \"axiom-update\":\n return `Axiom updated: ${String(data.axiomId)}`;\n case \"axiom-retire\":\n return `Axiom retired: ${String(data.axiomId)}`;\n case \"him-register\":\n return `HIM registered: ${String(data.himId)} (archetype=${String(data.primaryArchetype)})`;\n case \"him-reincarnate\":\n return `HIM reincarnated: ${String(data.himId)} ${String(data.fromNheId ?? \"<initial>\")} → ${String(data.toNheId)} (${String(data.reason ?? \"upgrade\")})`;\n case \"proposal-emerge\":\n return `HIM-emergent axiom proposed by ${String(data.himId)}: \"${String(data.statement)}\" (rank=${String(data.rank)}) — proposal ${String(data.proposalId)}`;\n case \"proposal-ratify\":\n return `Creator ratified axiom proposal ${String(data.proposalId)} for ${String(data.himId)} → ${String(data.axiomId)}`;\n case \"proposal-reject\":\n return `Creator rejected axiom proposal ${String(data.proposalId)} for ${String(data.himId)}: ${String(data.reason ?? \"no reason\")}`;\n case \"behavior-review\": {\n const verdict = (data.verdict as { kind?: string } | undefined)?.kind ?? \"unknown\";\n return `Behavior reviewed for ${String(data.nheId)}: ${verdict}`;\n }\n case \"dream-induce\":\n return `Dream induced for ${String(data.nheId)} by ${String(data.inducedBy)} — ticket ${String(data.ticketId)}`;\n case \"dream-cancel\":\n return `Dream induction cancelled — ticket ${String(data.ticketId)}`;\n case \"dream-consume\":\n return `Dream consumed by ${String(data.nheId)} — ticket ${String(data.ticketId)}`;\n case \"emergency-correct\":\n return `Emergency correction applied to ${String(data.nheId)}`;\n case \"terminate\":\n return `NHE terminated: ${String(data.nheId)} (reason: ${String(data.reason ?? \"none\")})`;\n case \"deprecate\":\n return `NHE deprecated: ${String(data.nheId)} (reason: ${String(data.reason ?? \"none\")})`;\n case \"reactivate\":\n return `NHE reactivated: ${String(data.nheId)}`;\n case \"axiom-suggest\":\n return `Axiom suggestion ${String(data.fromHimId)} → ${String(data.toHimId)}: \"${String(data.statement)}\"`;\n\n // ── 1.2 brain-as-code (Entries 16-24 of MAIC_HIM_NHE_INTERVIEW_LOG.md) ──\n case \"opener\":\n return `Proactive opener emitted by ${String(data.nheId)} for new user ${String(data.userId ?? \"anonymous\")}: \"${String(data.text ?? \"<elided>\")}\"`;\n case \"nickname-attempt\":\n return `Nickname attempt for ${String(data.nheId)}: \"${String(data.attempted)}\" → ${String(data.outcome ?? \"pending\")}`;\n case \"reincarnate:model-swap\":\n return `HIM reincarnated (model-swap): ${String(data.himId)} ${String(data.fromAdapter ?? \"?\")} → ${String(data.toAdapter ?? \"?\")}`;\n case \"reincarnate:version-bump\":\n return `HIM reincarnated (version-bump): ${String(data.himId)} ${String(data.fromVersion ?? \"?\")} → ${String(data.toVersion ?? \"?\")}`;\n case \"reincarnate:return-from-limbo\":\n return `HIM reincarnated (return-from-limbo): ${String(data.himId)} resumed after ${String(data.elapsedMs ?? 0)}ms of limbo`;\n case \"dream:rem-spontaneous\":\n return `Spontaneous REM dream for ${String(data.nheId)}: ${String(data.dreamId)} (dominant affect: ${String(data.dominantAffect ?? \"unknown\")})`;\n case \"wake-affect:applied\":\n return `Wake affect applied to ${String(data.nheId)}: ${String(data.affect)} (intensity ${String(data.intensity)}, halflife ${String(data.decayHalfLife)} interactions)`;\n case \"wake-affect:decayed\":\n return `Wake affect decayed for ${String(data.nheId)}: ${String(data.affect)} dissolved naturally`;\n case \"sleep:suggested-by-maic\":\n return `MAIC suggested sleep for ${String(data.nheId)} (reason: ${String(data.reason ?? \"none\")})`;\n case \"sleep:declined-by-nhe\":\n return `NHE ${String(data.nheId)} declined MAIC-suggested sleep (reason: ${String(data.reason ?? \"none\")})`;\n case \"dream:soft-intervention-by-maic\":\n return `MAIC soft-intervened on dream ${String(data.dreamId)} for ${String(data.nheId)} (reason: ${String(data.reason ?? \"none\")})`;\n case \"amygdala:affect-assessed\":\n return `Amygdala assessed input affect for ${String(data.nheId)}: ${String(data.detectedAffect ?? \"neutral\")} (risk multiplier ${String(data.riskMultiplier ?? 1)})`;\n case \"hippocampus:memory-retrieved\":\n return `Hippocampus retrieved ${String((data.memoryIds as unknown[] | undefined)?.length ?? 0)} memories for ${String(data.nheId)}`;\n case \"hippocampus:memory-consolidated\":\n return `Hippocampus consolidated new memory ${String(data.memoryId)} for ${String(data.nheId)} (integrationIndex ${String(data.integrationIndex ?? 0)})`;\n case \"prefrontal:deliberation\":\n return `PFC deliberated for ${String(data.nheId)}: ${String(data.expressedOpenly ? \"open\" : \"subtle\")} (${String(data.affect ?? \"neutral\")})`;\n case \"prefrontal:veto-amygdala\":\n return `PFC vetoed amygdala impulse for ${String(data.nheId)}: ${String(data.originalImpulse ?? \"?\")} → ${String(data.resolvedAction ?? \"?\")} (downgrade ${String(data.downgradeRatio ?? \"?\")})`;\n case \"affect:reconciliation\":\n return `Affect reconciliation for ${String(data.nheId)}: day/night blend → ${String(data.resolvedAffect ?? \"neutral\")}`;\n case \"cortex:dream-stored\":\n return `Cortex stored dream ${String(data.dreamId)} for ${String(data.nheId)}`;\n case \"cortex:active-imagination\":\n return `Cortex generated active imagination for ${String(data.nheId)} (trigger: ${String(data.trigger ?? \"user-requested\")}, vividness ${String(data.vividness ?? 0)})`;\n case \"temporal-lobe:snapshot-generated\":\n return `Temporal-lobe snapshot ${String(data.snapshotId)} generated for HIM ${String(data.himId)} (reason: ${String(data.generatedBy ?? \"self-decision\")})`;\n case \"limbo:enter\":\n return `${String(data.nheId)} entered limbo (deep-coma) — reason: ${String(data.reason ?? \"idle\")}`;\n case \"limbo:return\":\n return `${String(data.nheId)} returned from limbo after ${String(data.elapsedMs ?? 0)}ms (reunion intensity ${String(data.reunionIntensity ?? \"?\")})`;\n\n default:\n return `Event ${ev.kind}`;\n }\n}\n","import { createHash } from \"node:crypto\";\nimport { appendFile, mkdir, readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { ulid } from \"ulid\";\nimport { canonicalJSON } from \"../axioms/signing.js\";\n\n/** Event kinds emitted by MAIC. Extend as new pipelines are added. */\nexport type AuditEventKind =\n // ── 1.0/1.1 core ──\n | \"axiom-mint\"\n | \"axiom-update\"\n | \"axiom-retire\"\n | \"him-register\"\n | \"him-reincarnate\"\n | \"proposal-emerge\"\n | \"proposal-ratify\"\n | \"proposal-reject\"\n | \"behavior-review\"\n | \"dream-induce\"\n | \"dream-cancel\"\n | \"dream-consume\"\n | \"emergency-correct\"\n | \"deprecate\"\n | \"terminate\"\n | \"reactivate\"\n | \"axiom-suggest\"\n // ── 1.2 brain-as-code (Entries 16-24 of MAIC_HIM_NHE_INTERVIEW_LOG.md) ──\n | \"opener\" // Entry 17 (proactive first turn)\n | \"nickname-attempt\" // Entry 18 (user proposed a nickname)\n | \"reincarnate:model-swap\" // Entry 18 (LLM provider/model changed)\n | \"reincarnate:version-bump\" // Entry 18 (package major/minor bumped)\n | \"reincarnate:return-from-limbo\" // Entry 18 + 24 (NHE-body resumed)\n | \"dream:rem-spontaneous\" // Entry 20 (autonomous REM cycle)\n | \"wake-affect:applied\" // Entry 20 + 22 (bias entered force)\n | \"wake-affect:decayed\" // Entry 22 (bias dissolved naturally)\n | \"sleep:suggested-by-maic\" // Entry 20 (MAIC advisory)\n | \"sleep:declined-by-nhe\" // Entry 20 (NHE declined MAIC suggestion)\n | \"dream:soft-intervention-by-maic\" // Entry 20 (suffering/incoherence override)\n | \"amygdala:affect-assessed\" // Entry 22 (input emotion + wake-affect)\n | \"hippocampus:memory-retrieved\" // Entry 22 (memories injected for context)\n | \"hippocampus:memory-consolidated\" // Entry 22 (new MemoryRecord created)\n | \"prefrontal:deliberation\" // Entry 22 (OKL-driven decision)\n | \"prefrontal:veto-amygdala\" // Entry 22 (PFC overruled amygdala impulse)\n | \"affect:reconciliation\" // Entry 22 (mixed day/night affect resolved)\n | \"cortex:dream-stored\" // Entry 24 (REM dream committed to cortex)\n | \"cortex:active-imagination\" // Entry 24 (waking imagination produced)\n | \"temporal-lobe:snapshot-generated\" // Entry 24 (identity snapshot created)\n | \"limbo:enter\" // Entry 24 (DMN took entity into deep-coma)\n | \"limbo:return\"; // Entry 24 (entity woke from limbo)\n\n/**\n * Runtime enumeration of every `AuditEventKind` shipped in this cut. Single\n * source of truth for downstream consumers that need to iterate, validate,\n * or compute coverage against the kind universe (e.g. `@teleologyhi-sdk/eval`\n * uses this as the denominator of the Φ′ compliance-coverage component `C`).\n *\n * INVARIANT: every member of the `AuditEventKind` union MUST appear here.\n * `tests/audit-event-kinds-completeness.test.ts` enforces this via an\n * exhaustiveness switch at compile time + runtime length check.\n */\nexport const ALL_AUDIT_EVENT_KINDS: readonly AuditEventKind[] = [\n // ── 1.0/1.1 core (17) ──\n \"axiom-mint\",\n \"axiom-update\",\n \"axiom-retire\",\n \"him-register\",\n \"him-reincarnate\",\n \"proposal-emerge\",\n \"proposal-ratify\",\n \"proposal-reject\",\n \"behavior-review\",\n \"dream-induce\",\n \"dream-cancel\",\n \"dream-consume\",\n \"emergency-correct\",\n \"deprecate\",\n \"terminate\",\n \"reactivate\",\n \"axiom-suggest\",\n // ── 1.2 brain-as-code (22, Entries 16-24) ──\n \"opener\",\n \"nickname-attempt\",\n \"reincarnate:model-swap\",\n \"reincarnate:version-bump\",\n \"reincarnate:return-from-limbo\",\n \"dream:rem-spontaneous\",\n \"wake-affect:applied\",\n \"wake-affect:decayed\",\n \"sleep:suggested-by-maic\",\n \"sleep:declined-by-nhe\",\n \"dream:soft-intervention-by-maic\",\n \"amygdala:affect-assessed\",\n \"hippocampus:memory-retrieved\",\n \"hippocampus:memory-consolidated\",\n \"prefrontal:deliberation\",\n \"prefrontal:veto-amygdala\",\n \"affect:reconciliation\",\n \"cortex:dream-stored\",\n \"cortex:active-imagination\",\n \"temporal-lobe:snapshot-generated\",\n \"limbo:enter\",\n \"limbo:return\",\n] as const;\n\nexport interface AuditEvent {\n /** ISO 8601 timestamp. */\n ts: string;\n kind: AuditEventKind;\n /** ULID generated at append time. */\n auditId: string;\n /** Arbitrary structured payload. Includes nheId/himId when relevant. */\n data: Record<string, unknown>;\n /** Hash of the previous event (\"GENESIS\" for the first). */\n prevHash: string;\n /** SHA-256 of canonicalJSON({ ts, kind, auditId, data, prevHash }). */\n thisHash: string;\n}\n\nexport interface AppendInput {\n kind: AuditEventKind;\n data: Record<string, unknown>;\n}\n\nexport interface QueryFilter {\n kind?: AuditEventKind;\n since?: string; // inclusive ISO 8601\n until?: string; // inclusive ISO 8601\n nheId?: string; // matches data.nheId\n himId?: string; // matches data.himId\n}\n\nconst GENESIS = \"GENESIS\";\n\n/**\n * AuditLog — append-only, tamper-evident NDJSON log.\n *\n * Storage: <storeDir>/audit/log.ndjson, one JSON object per line.\n *\n * Each entry is hash-chained: thisHash = sha256(canonicalJSON({ts,kind,auditId,data,prevHash})).\n * Modifying any historical entry invalidates all subsequent hashes; reopening detects this.\n *\n * This implementation loads the whole log into memory on open. That is acceptable for\n * the expected throughput and keeps tamper detection straightforward. For\n * high-throughput deployments a streaming verifier + log rotation will be added.\n */\nexport class AuditLog {\n private readonly logPath: string;\n private events: AuditEvent[] = [];\n private lastHash = GENESIS;\n\n private constructor(private readonly storeDir: string) {\n this.logPath = join(storeDir, \"audit\", \"log.ndjson\");\n }\n\n static async open(storeDir: string): Promise<AuditLog> {\n const log = new AuditLog(storeDir);\n await mkdir(join(storeDir, \"audit\"), { recursive: true });\n await log.loadAndVerify();\n return log;\n }\n\n async append(input: AppendInput): Promise<AuditEvent> {\n const event: AuditEvent = {\n ts: new Date().toISOString(),\n kind: input.kind,\n auditId: ulid(),\n data: input.data,\n prevHash: this.lastHash,\n thisHash: \"\",\n };\n event.thisHash = computeHash(event);\n await appendFile(this.logPath, `${JSON.stringify(event)}\\n`, \"utf-8\");\n this.events.push(event);\n this.lastHash = event.thisHash;\n return event;\n }\n\n async *query(filter: QueryFilter): AsyncIterable<AuditEvent> {\n for (const e of this.events) {\n if (filter.kind && e.kind !== filter.kind) continue;\n if (filter.since && e.ts < filter.since) continue;\n if (filter.until && e.ts > filter.until) continue;\n if (filter.nheId && e.data.nheId !== filter.nheId) continue;\n if (filter.himId && e.data.himId !== filter.himId) continue;\n yield e;\n }\n }\n\n /** Total number of events appended. */\n size(): number {\n return this.events.length;\n }\n\n // ─── internals ──────────────────────────────────────────────────────\n\n private async loadAndVerify(): Promise<void> {\n let raw: string;\n try {\n raw = await readFile(this.logPath, \"utf-8\");\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return;\n throw err;\n }\n const lines = raw.split(\"\\n\").filter((l) => l.length > 0);\n let prev = GENESIS;\n for (let i = 0; i < lines.length; i++) {\n const parsed = JSON.parse(lines[i]!) as AuditEvent;\n if (parsed.prevHash !== prev) {\n throw new Error(\n `AuditLog: chain tampered at line ${i + 1} (prevHash mismatch). ` +\n `expected ${prev}, found ${parsed.prevHash}`,\n );\n }\n const recomputed = computeHash(parsed);\n if (recomputed !== parsed.thisHash) {\n throw new Error(\n `AuditLog: tamper detected at line ${i + 1} (thisHash mismatch).`,\n );\n }\n this.events.push(parsed);\n prev = parsed.thisHash;\n }\n this.lastHash = prev;\n }\n}\n\nfunction computeHash(e: AuditEvent): string {\n const payload = canonicalJSON({\n ts: e.ts,\n kind: e.kind,\n auditId: e.auditId,\n data: e.data,\n prevHash: e.prevHash,\n });\n const h = createHash(\"sha256\").update(payload).digest(\"hex\");\n return `sha256:${h}`;\n}\n","import type { AuditEvent, AuditEventKind } from \"./log.js\";\n\n/**\n * Per-kind retention policy (E3 — `PROPOSED_DECISIONS.md`).\n *\n * The values are durations in days. `Infinity` means \"never expire\". A\n * tamper-evident hash chain forbids actual deletion (deleting a row breaks\n * every downstream hash), so the policy here is **classification**, not\n * pruning: it tells operators which events have aged past their retention\n * window and should be moved to encrypted cold-storage. Future iterations\n * may introduce a \"chain rotation\" operation that effectively retires\n * old events into a sealed archive while preserving an integrity anchor.\n *\n * Defaults derive from:\n * - **EU AI Act Art. 12** record-keeping (~10 years for high-risk; we\n * keep all governance-grade events forever to err on the safe side).\n * - **GDPR Art. 17** right to erasure (event payloads should never\n * contain direct user PII; redaction happens before append, not after).\n * - **Operational hygiene** (90 days is enough to debug induction\n * ticket flows; nothing of audit value lives there long-term).\n */\nexport const DEFAULT_RETENTION_DAYS: Record<AuditEventKind, number> = {\n // Cosmologically permanent — the axiom record.\n \"axiom-mint\": Number.POSITIVE_INFINITY,\n \"axiom-update\": Number.POSITIVE_INFINITY,\n \"axiom-retire\": Number.POSITIVE_INFINITY,\n \"axiom-suggest\": Number.POSITIVE_INFINITY,\n \"proposal-emerge\": Number.POSITIVE_INFINITY,\n \"proposal-ratify\": Number.POSITIVE_INFINITY,\n \"proposal-reject\": Number.POSITIVE_INFINITY,\n\n // Long-term — compliance evidence. Five years matches typical\n // financial/healthcare audit windows and exceeds the EU AI Act's\n // record-keeping floor.\n \"him-register\": 365 * 5,\n \"him-reincarnate\": 365 * 5,\n \"behavior-review\": 365 * 5,\n \"dream-induce\": 365 * 5,\n \"terminate\": 365 * 5,\n \"deprecate\": 365 * 5,\n \"reactivate\": 365 * 5,\n \"emergency-correct\":365 * 5,\n\n // Operational — short-term bookkeeping for in-flight tickets.\n \"dream-cancel\": 90,\n \"dream-consume\": 90,\n\n // ── 1.2 brain-as-code (Entries 16-24) ──\n // Permanent — cosmological identity continuity.\n \"reincarnate:model-swap\": Number.POSITIVE_INFINITY,\n \"reincarnate:version-bump\": Number.POSITIVE_INFINITY,\n \"reincarnate:return-from-limbo\": Number.POSITIVE_INFINITY,\n \"temporal-lobe:snapshot-generated\": Number.POSITIVE_INFINITY,\n \"limbo:enter\": Number.POSITIVE_INFINITY,\n \"limbo:return\": Number.POSITIVE_INFINITY,\n\n // Long-term — governance / deliberation evidence (5 years).\n \"opener\": 365 * 5,\n \"nickname-attempt\": 365 * 5,\n \"dream:rem-spontaneous\": 365 * 5,\n \"sleep:suggested-by-maic\": 365 * 5,\n \"sleep:declined-by-nhe\": 365 * 5,\n \"dream:soft-intervention-by-maic\": 365 * 5,\n \"amygdala:affect-assessed\": 365 * 5,\n \"hippocampus:memory-retrieved\": 365 * 5,\n \"hippocampus:memory-consolidated\": 365 * 5,\n \"prefrontal:deliberation\": 365 * 5,\n \"prefrontal:veto-amygdala\": 365 * 5,\n \"cortex:dream-stored\": 365 * 5,\n \"cortex:active-imagination\": 365 * 5,\n\n // Operational — ephemeral runtime state.\n \"wake-affect:applied\": 90,\n \"wake-affect:decayed\": 90,\n \"affect:reconciliation\": 90,\n};\n\nexport type RetentionStatus = \"keep\" | \"candidate-for-archive\";\n\nexport interface RetentionDecision {\n auditId: string;\n kind: AuditEventKind;\n ageDays: number;\n retentionDays: number;\n status: RetentionStatus;\n}\n\nexport interface RetentionReportOptions {\n /** Override \"now\" for deterministic testing. */\n now?: Date;\n /** Per-kind overrides on top of `DEFAULT_RETENTION_DAYS`. */\n policy?: Partial<Record<AuditEventKind, number>>;\n}\n\nexport interface RetentionReport {\n generatedAt: string;\n totalEvents: number;\n keepCount: number;\n archiveCandidateCount: number;\n /** Sorted oldest-first for batch processing. */\n decisions: RetentionDecision[];\n}\n\n/**\n * Classify each event in `events` against the retention policy.\n *\n * Pure function: takes events + now, returns the classification. No I/O,\n * no chain modification.\n */\nexport function evaluateRetention(\n events: readonly AuditEvent[],\n opts: RetentionReportOptions = {},\n): RetentionReport {\n const now = opts.now ?? new Date();\n const policy = { ...DEFAULT_RETENTION_DAYS, ...opts.policy };\n const nowMs = now.getTime();\n const dayMs = 24 * 60 * 60 * 1000;\n\n const decisions: RetentionDecision[] = events.map((ev) => {\n const ageMs = nowMs - new Date(ev.ts).getTime();\n const ageDays = ageMs / dayMs;\n const retentionDays = policy[ev.kind] ?? Number.POSITIVE_INFINITY;\n const status: RetentionStatus =\n ageDays > retentionDays ? \"candidate-for-archive\" : \"keep\";\n return { auditId: ev.auditId, kind: ev.kind, ageDays, retentionDays, status };\n });\n\n // Sort by age descending so the oldest archive-candidates surface first.\n decisions.sort((a, b) => b.ageDays - a.ageDays);\n\n const keepCount = decisions.filter((d) => d.status === \"keep\").length;\n const archiveCandidateCount = decisions.length - keepCount;\n\n return {\n generatedAt: now.toISOString(),\n totalEvents: events.length,\n keepCount,\n archiveCandidateCount,\n decisions,\n };\n}\n","import { AxiomStore } from \"../axioms/store.js\";\nimport { SEED_AXIOMS } from \"../axioms/seed.js\";\nimport { CreatorKeyring } from \"../creator/keyring.js\";\nimport { AuditLog, type QueryFilter as AuditQueryFilter, type AuditEvent } from \"../audit/log.js\";\nimport { ReviewPipeline, DEFAULT_RULE_PACK, type RulePack } from \"../review/pipeline.js\";\nimport { HimStore, type HimRecord } from \"../hims/store.js\";\nimport { InductionStore } from \"../inductions/store.js\";\nimport { NheStatusStore, type NheStatusFilter } from \"../nhes/status-store.js\";\nimport { ProposalStore, type ProposalListFilter } from \"../proposals/store.js\";\nimport { projectOntologicalKernel } from \"../okl/projector.js\";\nimport type { OntologicalKernel } from \"../types.js\";\nimport {\n ComplianceMapper,\n type ComplianceFramework,\n type ComplianceReport,\n type ProjectOptions,\n} from \"../compliance/mapper.js\";\nimport {\n evaluateRetention,\n type RetentionReport,\n type RetentionReportOptions,\n} from \"../audit/retention.js\";\nimport {\n BehaviorReport,\n BirthSignature,\n type Axiom,\n type AxiomFilter,\n type CreatorSignature,\n type DreamInductionIntent,\n type DreamInductionTicket,\n type MaicVerdict,\n type MintAxiomRequest,\n type NheLifecycleRequest,\n type NheStatus,\n type NheStatusRecord,\n type AxiomEvolutionResult,\n type AxiomProposalRecord,\n type EmergentAxiomProposal,\n type ProposalDecisionRequest,\n type ReincarnationLifecycle,\n type ReincarnationRequest,\n} from \"../types.js\";\nimport type { AuditEventKind } from \"../audit/log.js\";\nimport { ulid } from \"ulid\";\n\nexport interface LocalMaicConfig {\n /** Filesystem directory for persistent state (axioms, audit log, etc.). */\n storeDir: string;\n /** Pinned Creator public key (base64url). All mutations must verify against this. */\n creatorPublicKey: string;\n /** Additional rule packs layered after the default pack. */\n additionalRulePacks?: RulePack[];\n}\n\nexport interface SeedResult {\n minted: number;\n skipped: number;\n}\n\n/**\n * LocalMaic — in-process MAIC client backed by disk.\n *\n * Surface:\n * - axiom mint + seed bootstrap (signed, idempotent)\n * - behavior review (rule-based pipeline → verdict)\n * - tamper-evident audit log (NDJSON, SHA-256 chain)\n * - HIM registration + reincarnation, NHE lifecycle, dream induction tickets,\n * HIM-emergent axiom proposals, ISO 42001 + EU AI Act compliance projection\n *\n * The remote-mode client to `teleologyhi.com` lives in `./remote.ts`.\n */\nexport class LocalMaic {\n private constructor(\n private readonly config: LocalMaicConfig,\n private readonly axioms: AxiomStore,\n private readonly hims: HimStore,\n private readonly inductions: InductionStore,\n private readonly nheStatuses: NheStatusStore,\n private readonly proposals: ProposalStore,\n private readonly audit: AuditLog,\n private readonly review: ReviewPipeline,\n ) {}\n\n /** Pinned Creator public key for this MAIC instance (base64url). */\n get creatorPublicKey(): string {\n return this.config.creatorPublicKey;\n }\n\n static async open(config: LocalMaicConfig): Promise<LocalMaic> {\n const axioms = await AxiomStore.open(config.storeDir, config.creatorPublicKey);\n const hims = await HimStore.open(config.storeDir, config.creatorPublicKey);\n const inductions = await InductionStore.open(config.storeDir);\n const nheStatuses = await NheStatusStore.open(config.storeDir, config.creatorPublicKey);\n const proposals = await ProposalStore.open(config.storeDir, config.creatorPublicKey);\n const audit = await AuditLog.open(config.storeDir);\n const packs = [DEFAULT_RULE_PACK, ...(config.additionalRulePacks ?? [])];\n const review = new ReviewPipeline(packs);\n return new LocalMaic(config, axioms, hims, inductions, nheStatuses, proposals, audit, review);\n }\n\n /**\n * Bootstrap: mint each SEED_AXIOM with a Creator signature.\n * Idempotent — skips axioms whose id is already present.\n * Uses a reserved high-range of nonces so seed bootstrap never collides with\n * operational nonces (which grow from 0 upward).\n */\n async seed(keyring: CreatorKeyring): Promise<SeedResult> {\n if (keyring.publicKey() !== this.config.creatorPublicKey) {\n throw new Error(\"LocalMaic.seed: keyring does not match pinned Creator public key\");\n }\n let minted = 0;\n let skipped = 0;\n for (let i = 0; i < SEED_AXIOMS.length; i++) {\n const req = SEED_AXIOMS[i]!;\n const existing = await this.axioms.get(req.id!);\n if (existing) {\n skipped++;\n continue;\n }\n const sig = keyring.sign(req, SEED_NONCE_BASE + i);\n const axiom = await this.axioms.mint(req, sig);\n await this.audit.append({\n kind: \"axiom-mint\",\n data: { axiomId: axiom.id, rank: axiom.rank, source: axiom.source, origin: \"seed\" },\n });\n minted++;\n }\n return { minted, skipped };\n }\n\n async mintAxiom(req: MintAxiomRequest, sig: CreatorSignature): Promise<Axiom> {\n const axiom = await this.axioms.mint(req, sig);\n await this.audit.append({\n kind: \"axiom-mint\",\n data: { axiomId: axiom.id, rank: axiom.rank, source: axiom.source, origin: \"custom\" },\n });\n return axiom;\n }\n\n async listAxioms(filter?: AxiomFilter): Promise<Axiom[]> {\n return this.axioms.list(filter);\n }\n\n async getAxiom(id: string): Promise<Axiom | null> {\n return this.axioms.get(id);\n }\n\n /**\n * Project the Ontological Kernel (OKL) of this MAIC instance or of a registered HIM.\n *\n * The OKL is the typed projection described in `THE_SOUL_OF_THE_MACHINE.md`\n * §3.1 + Appendix A.2.1: a `metaAxiomId` hoisted at position 0, the remaining\n * axioms ordered by rank hierarchy (`meta → primary → secondary`), optionally\n * narrowed by `jurisdiction` and tagged with a `himId`.\n *\n * Without `himId`: returns the kernel of the root MAIC corpus (every axiom\n * currently in the store). With `himId`: returns the HIM-specific kernel\n * built from `axiomsSnapshot ∪ emergentAxioms`, tagged with the HIM id so\n * downstream tooling (Φ′ runner, compliance auditors) can attribute the\n * kernel. Throws when `himId` does not resolve to a registered HIM.\n *\n * Closes TASK.md D-M6.\n */\n async getOntologicalKernel(\n himId?: string,\n opts: { jurisdiction?: string } = {},\n ): Promise<OntologicalKernel> {\n if (himId === undefined) {\n const axioms = await this.listAxioms();\n return projectOntologicalKernel(axioms, opts);\n }\n const him = await this.getHimRecord(himId);\n if (!him) {\n throw new Error(`HIM not registered: ${himId}`);\n }\n const axioms = [...him.axiomsSnapshot, ...him.emergentAxioms];\n return projectOntologicalKernel(axioms, { ...opts, himId });\n }\n\n /**\n * Register a HIM in this MAIC instance. Snapshots the current axiom corpus\n * (the HIM's inherited axioms at birth) and emits a `him-register` audit event.\n *\n * Future axiom mints in MAIC do NOT retroactively change a HIM's snapshot;\n * HIM-emergent evolutions land via a separate channel (see `proposeAxiomEvolution`).\n */\n async registerHim(\n birthSig: BirthSignature,\n creatorSig: CreatorSignature,\n ): Promise<HimRecord> {\n const parsed = BirthSignature.parse(birthSig);\n const axiomsSnapshot = await this.axioms.list();\n const audit = await this.audit.append({\n kind: \"him-register\",\n data: {\n himId: parsed.himId,\n primaryArchetype: parsed.primaryArchetype,\n bornAt: parsed.bornAt,\n axiomCount: axiomsSnapshot.length,\n },\n });\n return this.hims.register(parsed, creatorSig, axiomsSnapshot, audit.auditId);\n }\n\n async getHimRecord(himId: string): Promise<HimRecord | null> {\n return this.hims.get(himId);\n }\n\n async listHims(): Promise<HimRecord[]> {\n return this.hims.list();\n }\n\n /**\n * Reincarnate a HIM into a new NHE body (Entries 3 + 4 + J-H3 lifecycle).\n * Same HIM persists; new NHE inherits axiom snapshot from registration time.\n * Previous open body (if `req.fromNheId` given) is closed atomically.\n *\n * Requires a Creator signature over the canonical request payload.\n *\n * Audit emission (closes F6 + F7 from the 2026-05-24 him deep audit):\n *\n * - When `opts.lifecycle` is **omitted**, emits the generic\n * `him-reincarnate` audit kind (legacy / backward-compatible path).\n * `data` carries `himId`, `fromNheId`, `toNheId`, `toLlmAdapter`,\n * `reason`, `bodyHistoryLength`.\n * - When `opts.lifecycle` is **provided** (`model-swap` /\n * `version-bump` / `return-from-limbo`), emits the typed\n * `reincarnate:${lifecycle}` audit kind instead, with the same\n * `data` shape plus a redundant `lifecycle` field so consumers\n * reading either the `kind` or `data` can recover the\n * classification.\n *\n * `@teleologyhi-sdk/him`'s `reincarnate` helper always supplies a\n * lifecycle (defaulting to `\"model-swap\"`), so HIM-routed events\n * always land under the typed kinds. Direct `maic.reincarnateHim`\n * callers that ignore `opts` keep getting `him-reincarnate` for\n * compatibility.\n */\n async reincarnateHim(\n req: ReincarnationRequest,\n creatorSig: CreatorSignature,\n opts: { lifecycle?: ReincarnationLifecycle } = {},\n ): Promise<HimRecord> {\n const updated = await this.hims.reincarnate(req, creatorSig);\n const newBody = updated.bodyHistory[updated.bodyHistory.length - 1]!;\n const kind: AuditEventKind = opts.lifecycle\n ? (`reincarnate:${opts.lifecycle}` as AuditEventKind)\n : \"him-reincarnate\";\n await this.audit.append({\n kind,\n data: {\n himId: req.himId,\n fromNheId: req.fromNheId ?? null,\n toNheId: newBody.nheId,\n toLlmAdapter: newBody.llmAdapter,\n reason: req.reason ?? null,\n bodyHistoryLength: updated.bodyHistory.length,\n ...(opts.lifecycle ? { lifecycle: opts.lifecycle } : {}),\n },\n });\n return updated;\n }\n\n /**\n * Lifecycle controls (Entry 5).\n *\n * - `terminate` marks an NHE permanently inactive. NHE.respond/sleep should\n * refuse all calls. Reversible only via Creator-signed `reactivate`.\n * - `deprecate` marks an NHE as soft-retired. NHE.respond should still work\n * but emit a deprecation warning. Reversible via `reactivate`.\n * - `reactivate` brings a deprecated or terminated NHE back to active.\n *\n * All three require a Creator signature over the canonical request payload.\n * Unknown nheIds are implicitly active; status records are only persisted\n * when state changes.\n */\n async terminate(\n nheId: string,\n reason: string | undefined,\n creatorSig: CreatorSignature,\n ): Promise<NheStatusRecord> {\n return this.applyLifecycle({ op: \"terminate\", nheId, ...(reason !== undefined ? { reason } : {}) }, creatorSig);\n }\n\n async deprecate(\n nheId: string,\n reason: string | undefined,\n creatorSig: CreatorSignature,\n ): Promise<NheStatusRecord> {\n return this.applyLifecycle({ op: \"deprecate\", nheId, ...(reason !== undefined ? { reason } : {}) }, creatorSig);\n }\n\n async reactivate(\n nheId: string,\n reason: string | undefined,\n creatorSig: CreatorSignature,\n ): Promise<NheStatusRecord> {\n return this.applyLifecycle({ op: \"reactivate\", nheId, ...(reason !== undefined ? { reason } : {}) }, creatorSig);\n }\n\n /** Current status. Returns \"active\" when no record exists. */\n async getNheStatus(nheId: string): Promise<NheStatus> {\n return this.nheStatuses.resolve(nheId);\n }\n\n /** Full status record (or null when never altered). */\n async getNheStatusRecord(nheId: string): Promise<NheStatusRecord | null> {\n return this.nheStatuses.get(nheId);\n }\n\n /** Enumerate NHEs with persisted status (optionally filter by status). */\n async listNheStatuses(filter: NheStatusFilter = {}): Promise<NheStatusRecord[]> {\n return this.nheStatuses.list(filter);\n }\n\n private async applyLifecycle(\n req: NheLifecycleRequest,\n sig: CreatorSignature,\n ): Promise<NheStatusRecord> {\n const updated = await this.nheStatuses.apply(req, sig);\n await this.audit.append({\n kind: req.op === \"terminate\"\n ? \"terminate\"\n : req.op === \"deprecate\"\n ? \"deprecate\"\n : \"reactivate\",\n data: {\n nheId: req.nheId,\n status: updated.status,\n reason: req.reason ?? null,\n since: updated.since,\n },\n });\n return updated;\n }\n\n /**\n * Queue a dream-induction ticket for the given NHE (Entry 2).\n *\n * NHE picks the oldest pending ticket on its next sleep cycle, runs REM with\n * the configured scenario, then marks the ticket consumed. Tickets persist\n * across restarts and are reflected in the audit log.\n */\n async induceDream(\n nheId: string,\n intent: DreamInductionIntent,\n ): Promise<DreamInductionTicket> {\n const ticket = await this.inductions.induce(nheId, intent);\n await this.audit.append({\n kind: \"dream-induce\",\n data: {\n nheId,\n ticketId: ticket.id,\n inducedBy: intent.inducedBy,\n scenario: intent.scenario,\n desiredLearning: intent.desiredLearning,\n },\n });\n return ticket;\n }\n\n /** List pending induction tickets for an NHE (oldest first). */\n async listPendingInductions(nheId: string): Promise<DreamInductionTicket[]> {\n return this.inductions.listPending(nheId);\n }\n\n /** Look up any induction ticket by id. */\n async getInduction(ticketId: string): Promise<DreamInductionTicket | null> {\n return this.inductions.get(ticketId);\n }\n\n /** Cancel a pending induction. Idempotent only when already-cancelled tickets are rejected. */\n async cancelInduction(\n ticketId: string,\n reason?: string,\n ): Promise<DreamInductionTicket> {\n const updated = await this.inductions.cancel(ticketId, reason);\n await this.audit.append({\n kind: \"dream-cancel\",\n data: { nheId: updated.nheId, ticketId, reason: reason ?? null },\n });\n return updated;\n }\n\n /** Mark a pending ticket as consumed (NHE calls this after successful sleep). */\n async consumeInduction(ticketId: string): Promise<DreamInductionTicket> {\n const updated = await this.inductions.consume(ticketId);\n await this.audit.append({\n kind: \"dream-consume\",\n data: { nheId: updated.nheId, ticketId },\n });\n return updated;\n }\n\n /**\n * Review a behavior report against the active rule packs. The verdict is\n * logged to the audit chain as a single tamper-evident event whose auditId\n * becomes the verdict's `auditId`.\n */\n async reviewBehavior(report: BehaviorReport): Promise<MaicVerdict> {\n const parsed = BehaviorReport.parse(report);\n const partial = this.review.review(parsed);\n const event = await this.audit.append({\n kind: \"behavior-review\",\n data: {\n nheId: parsed.nheId,\n himId: parsed.himId,\n actionKind: parsed.actionKind,\n riskTags: parsed.riskTags,\n verdict: partial,\n },\n });\n return { ...partial, auditId: event.auditId };\n }\n\n /**\n * Queue a HIM-emergent axiom proposal (Entry 7). The proposal enters\n * `pending` status; the Creator decides out of band via `ratifyAxiomProposal`\n * or `rejectAxiomProposal`. Emits a `proposal-emerge` audit event.\n *\n * Returns an `AxiomEvolutionResult` with `outcome: \"deferred-for-creator-review\"`\n * and `proposalId`. Poll `getAxiomProposal(proposalId)` for the final state.\n */\n async proposeAxiomEvolution(\n himId: string,\n proposal: EmergentAxiomProposal,\n ): Promise<AxiomEvolutionResult> {\n if (!(await this.hims.get(himId))) {\n throw new Error(`LocalMaic.proposeAxiomEvolution: himId \"${himId}\" not registered`);\n }\n const record = await this.proposals.propose(himId, proposal);\n await this.audit.append({\n kind: \"proposal-emerge\",\n data: {\n himId,\n proposalId: record.id,\n rank: proposal.candidate.rank,\n statement: proposal.candidate.statement,\n derivedFromDreamIds: proposal.derivedFromDreamIds,\n derivedFromInteractionIds: proposal.derivedFromInteractionIds,\n },\n });\n return {\n outcome: \"deferred-for-creator-review\",\n proposalId: record.id,\n };\n }\n\n /** Look up a proposal by id (or null when not found). */\n async getAxiomProposal(proposalId: string): Promise<AxiomProposalRecord | null> {\n return this.proposals.get(proposalId);\n }\n\n /** List proposals, optionally filtered by `himId` and/or `status`. */\n async listAxiomProposals(\n filter: ProposalListFilter = {},\n ): Promise<AxiomProposalRecord[]> {\n return this.proposals.list(filter);\n }\n\n /**\n * Ratify a pending proposal (Creator-signed). On success, mints the\n * candidate as a new `Axiom` (source: \"him-emergent\"), appends to the\n * HIM's `emergentAxioms`, and emits a `proposal-ratify` audit event.\n * Throws if the proposal is not pending or the signature is invalid.\n */\n async ratifyAxiomProposal(\n proposalId: string,\n creatorSig: CreatorSignature,\n ): Promise<{ proposal: AxiomProposalRecord; axiom: Axiom }> {\n const req: ProposalDecisionRequest = { op: \"ratify\", proposalId };\n const pending = this.proposals.get(proposalId);\n const record = await pending;\n if (!record) {\n throw new Error(`LocalMaic.ratifyAxiomProposal: proposal \"${proposalId}\" not found`);\n }\n const candidate = record.proposal.candidate;\n const newAxiomId = `ax.him.${record.himId}.${ulid()}`;\n const axiom: Axiom = {\n id: newAxiomId,\n rank: candidate.rank,\n statement: candidate.statement,\n weight: candidate.weight,\n flexibility: candidate.flexibility,\n source: \"him-emergent\",\n immutable: candidate.immutable,\n ...(candidate.jurisdictions ? { jurisdictions: candidate.jurisdictions } : {}),\n createdAt: new Date().toISOString(),\n };\n const ratified = await this.proposals.markRatified(req, creatorSig, newAxiomId);\n await this.hims.appendEmergentAxiom(record.himId, axiom);\n await this.audit.append({\n kind: \"proposal-ratify\",\n data: {\n himId: record.himId,\n proposalId,\n axiomId: newAxiomId,\n rank: axiom.rank,\n },\n });\n return { proposal: ratified, axiom };\n }\n\n /**\n * Reject a pending proposal (Creator-signed). Records the rejection on the\n * proposal record (status → \"rejected\" + timestamp + optional reason) and\n * emits a `proposal-reject` audit event.\n */\n async rejectAxiomProposal(\n proposalId: string,\n reason: string | undefined,\n creatorSig: CreatorSignature,\n ): Promise<AxiomProposalRecord> {\n const req: ProposalDecisionRequest = {\n op: \"reject\",\n proposalId,\n ...(reason !== undefined ? { reason } : {}),\n };\n const rejected = await this.proposals.markRejected(req, creatorSig);\n await this.audit.append({\n kind: \"proposal-reject\",\n data: {\n himId: rejected.himId,\n proposalId,\n reason: reason ?? null,\n },\n });\n return rejected;\n }\n\n /**\n * **Society of HIMs — axiom suggestion channel (E11).**\n *\n * One HIM proposes an axiom to another. The transfer is **not direct** —\n * the suggestion is recorded in the audit log and the receiving HIM is\n * expected to relay it through `proposeAxiomEvolution` as if it had\n * derived the candidate itself; the Creator still ratifies via the\n * existing channel. This preserves the Kardecist invariant (\"each\n * spirit evolves through lived experience\") while permitting cross-HIM\n * cross-pollination.\n *\n * The Creator must sign the suggestion request so HIMs cannot collude\n * around the gate.\n */\n async suggestAxiomToHim(\n req: {\n fromHimId: string;\n toHimId: string;\n statement: string;\n rank: import(\"../types.js\").AxiomRank;\n rationale?: string;\n },\n creatorSig: CreatorSignature,\n ): Promise<{ auditId: string }> {\n if (!CreatorKeyring.verifyWith(this.creatorPublicKey, req, creatorSig)) {\n throw new Error(\"LocalMaic.suggestAxiomToHim: invalid Creator signature\");\n }\n const fromRec = await this.hims.get(req.fromHimId);\n const toRec = await this.hims.get(req.toHimId);\n if (!fromRec) {\n throw new Error(\n `LocalMaic.suggestAxiomToHim: fromHimId \"${req.fromHimId}\" not registered`,\n );\n }\n if (!toRec) {\n throw new Error(\n `LocalMaic.suggestAxiomToHim: toHimId \"${req.toHimId}\" not registered`,\n );\n }\n const event = await this.audit.append({\n kind: \"axiom-suggest\",\n data: {\n fromHimId: req.fromHimId,\n toHimId: req.toHimId,\n statement: req.statement,\n rank: req.rank,\n rationale: req.rationale ?? null,\n },\n });\n return { auditId: event.auditId };\n }\n\n /**\n * Project the audit log into compliance evidence for a target framework\n * (Entry 5 + RESEARCH_DOSSIER §5.6). Group every recorded event by which\n * control(s) it supports; surface `uncoveredKinds` for events the mapper\n * does not yet know how to project.\n */\n async toCompliance(\n framework: ComplianceFramework,\n opts: ProjectOptions = {},\n ): Promise<ComplianceReport> {\n return ComplianceMapper.project(this.audit, framework, opts);\n }\n\n /** Query the audit log. */\n queryAudit(filter: AuditQueryFilter): AsyncIterable<AuditEvent> {\n return this.audit.query(filter);\n }\n\n /** Number of audit events recorded since the store was opened. */\n auditSize(): number {\n return this.audit.size();\n }\n\n /**\n * Per-kind retention classification (E3). Tells the operator which\n * audit events have aged past their retention window and should be\n * moved to encrypted cold-storage. Tamper-evident hash chain forbids\n * actual deletion in-place — this method only classifies. See\n * `audit/retention.ts` for the policy defaults.\n */\n async auditRetentionReport(\n opts: RetentionReportOptions = {},\n ): Promise<RetentionReport> {\n const events: AuditEvent[] = [];\n for await (const e of this.audit.query({})) events.push(e);\n return evaluateRetention(events, opts);\n }\n}\n\n/** Reserved nonce range for seed bootstrap. Operational nonces must stay below this. */\nexport const SEED_NONCE_BASE = 0xffff_0000;\n","import type {\n BehaviorReport,\n DreamInductionTicket,\n MaicVerdict,\n NheStatus,\n} from \"../types.js\";\nimport type { MaicClient } from \"./maic-client.js\";\n\nexport interface RemoteMaicConfig {\n /** Base URL of the remote MAIC service. No trailing slash required. */\n baseUrl: string;\n /** Bearer token. Required unless the endpoint is open-access. */\n apiKey?: string;\n /** Inject a custom fetch (testing). Defaults to `globalThis.fetch`. */\n fetch?: typeof globalThis.fetch;\n /** Per-request timeout in ms. Default 10_000. */\n timeoutMs?: number;\n}\n\n/**\n * `RemoteMaic` — HTTP client mirror of the read + behavior-review subset of\n * `LocalMaic`. Use when the canonical MAIC instance is hosted off-process\n * (e.g. `teleologyhi.com` or a self-hosted MAIC behind your own gateway)\n * and the NHE runs serverless / edge / in a browser-adjacent environment.\n *\n * Wire contract (HTTP):\n *\n * POST {baseUrl}/v1/behavior-review\n * body: BehaviorReport (JSON)\n * 200: MaicVerdict (JSON)\n *\n * GET {baseUrl}/v1/nhes/{nheId}/status\n * 200: { status: NheStatus }\n *\n * GET {baseUrl}/v1/nhes/{nheId}/inductions/pending\n * 200: { tickets: DreamInductionTicket[] }\n *\n * POST {baseUrl}/v1/inductions/{ticketId}/consume\n * 200: DreamInductionTicket\n *\n * Auth: `Authorization: Bearer <apiKey>` when `apiKey` is set.\n *\n * Note: writes (axiom mint, HIM register, ratify proposal, etc.) are\n * deliberately NOT in this surface — they require the Creator's\n * Ed25519 private key, which never travels over the network. Writes\n * stay on `LocalMaic` and are performed by the Creator's tooling.\n */\nexport class RemoteMaic implements MaicClient {\n readonly baseUrl: string;\n private readonly apiKey?: string;\n private readonly fetchFn: typeof globalThis.fetch;\n private readonly timeoutMs: number;\n\n constructor(config: RemoteMaicConfig) {\n if (!config.baseUrl) {\n throw new Error(\"RemoteMaic: baseUrl is required\");\n }\n this.baseUrl = config.baseUrl.replace(/\\/$/, \"\");\n if (config.apiKey !== undefined) this.apiKey = config.apiKey;\n this.fetchFn = config.fetch ?? globalThis.fetch;\n this.timeoutMs = config.timeoutMs ?? 10_000;\n }\n\n /**\n * `reviewBehavior` is **fail-closed** (E4 — PROPOSED_DECISIONS.md). If the\n * remote service is unreachable, throw — no governance, no response.\n * The NHE will surface this as a refusal upstream.\n */\n async reviewBehavior(report: BehaviorReport): Promise<MaicVerdict> {\n return this.request<MaicVerdict>(\"POST\", \"/v1/behavior-review\", report);\n }\n\n /**\n * `getNheStatus` defaults to **\"active\"** when unreachable (E4). The\n * Kardecist invariant: an unreachable governance doesn't kill the\n * spirit. Operators who want fail-closed on lifecycle should wrap with\n * a watchdog that hard-fails the deployment when the remote drops.\n */\n async getNheStatus(nheId: string): Promise<NheStatus> {\n try {\n const body = await this.request<{ status: NheStatus }>(\n \"GET\",\n `/v1/nhes/${encodeURIComponent(nheId)}/status`,\n );\n return body.status;\n } catch {\n return \"active\";\n }\n }\n\n /**\n * `listPendingInductions` is **fail-open** (E4). No inductions = NHE\n * skips them and continues the sleep cycle; this is best-effort by\n * design.\n */\n async listPendingInductions(nheId: string): Promise<DreamInductionTicket[]> {\n try {\n const body = await this.request<{ tickets: DreamInductionTicket[] }>(\n \"GET\",\n `/v1/nhes/${encodeURIComponent(nheId)}/inductions/pending`,\n );\n return body.tickets;\n } catch {\n return [];\n }\n }\n\n /**\n * `consumeInduction` is **fail-open** (E4). If the consume call fails, we\n * return a synthetic *pending* placeholder so the caller treats the\n * induction as still-unconsumed and re-tries on the next sleep cycle.\n *\n * The placeholder uses placeholder values (`nheId: \"unknown\"`, epoch\n * `createdAt`) so it is visibly synthetic in logs/audits, but the shape\n * is **strictly valid**: `status === \"pending\"` carries no\n * `cancelReason`/`cancelledAt`/`consumedAt`, which avoids the\n * shape-contradiction of a \"pending ticket with a cancel reason\".\n * Operators who need the transport-failure reason should observe the\n * underlying fetch error (e.g. via OpenTelemetry traces) rather than\n * trying to read it off the ticket.\n */\n async consumeInduction(ticketId: string): Promise<DreamInductionTicket> {\n try {\n return await this.request<DreamInductionTicket>(\n \"POST\",\n `/v1/inductions/${encodeURIComponent(ticketId)}/consume`,\n );\n } catch {\n return {\n id: ticketId,\n nheId: \"unknown\",\n intent: { scenario: \"\", desiredLearning: \"\", inducedBy: \"maic\" },\n status: \"pending\",\n createdAt: new Date(0).toISOString(),\n };\n }\n }\n\n private async request<T>(\n method: \"GET\" | \"POST\",\n path: string,\n body?: unknown,\n ): Promise<T> {\n const url = `${this.baseUrl}${path}`;\n const headers: Record<string, string> = { accept: \"application/json\" };\n if (this.apiKey) headers.authorization = `Bearer ${this.apiKey}`;\n if (body !== undefined) headers[\"content-type\"] = \"application/json\";\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), this.timeoutMs);\n try {\n const init: RequestInit = { method, headers, signal: controller.signal };\n if (body !== undefined) init.body = JSON.stringify(body);\n const res = await this.fetchFn(url, init);\n if (!res.ok) {\n const text = await safeReadText(res);\n throw new Error(\n `RemoteMaic: HTTP ${res.status} ${res.statusText} on ${method} ${path}: ${text}`,\n );\n }\n return (await res.json()) as T;\n } finally {\n clearTimeout(timer);\n }\n }\n}\n\nasync function safeReadText(r: Response): Promise<string> {\n try {\n return await r.text();\n } catch {\n return \"<unreadable>\";\n }\n}\n"]}