@graphrefly/ts 0.0.0 → 0.0.1
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.
- package/README.md +135 -0
- package/dist/adapters/index.cjs +105 -66
- package/dist/adapters/index.cjs.map +1 -1
- package/dist/adapters/index.d.cts +11 -136
- package/dist/adapters/index.d.ts +11 -136
- package/dist/adapters/index.js +27 -225
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/observe-storage.d.cts +4 -4
- package/dist/adapters/observe-storage.d.ts +4 -4
- package/dist/adapters/observe-storage.js +1 -0
- package/dist/adapters/observe-storage.js.map +1 -1
- package/dist/adapters/react.cjs +166 -0
- package/dist/adapters/react.cjs.map +1 -0
- package/dist/adapters/react.d.cts +31 -0
- package/dist/adapters/react.d.ts +31 -0
- package/dist/adapters/react.js +51 -0
- package/dist/adapters/react.js.map +1 -0
- package/dist/adapters/solid.cjs +157 -0
- package/dist/adapters/solid.cjs.map +1 -0
- package/dist/adapters/solid.d.cts +26 -0
- package/dist/adapters/solid.d.ts +26 -0
- package/dist/adapters/solid.js +48 -0
- package/dist/adapters/solid.js.map +1 -0
- package/dist/adapters/svelte.cjs +148 -0
- package/dist/adapters/svelte.cjs.map +1 -0
- package/dist/adapters/svelte.d.cts +31 -0
- package/dist/adapters/svelte.d.ts +31 -0
- package/dist/adapters/svelte.js +46 -0
- package/dist/adapters/svelte.js.map +1 -0
- package/dist/adapters/vue.cjs +155 -0
- package/dist/adapters/vue.cjs.map +1 -0
- package/dist/adapters/vue.d.cts +26 -0
- package/dist/adapters/vue.d.ts +26 -0
- package/dist/adapters/vue.js +46 -0
- package/dist/adapters/vue.js.map +1 -0
- package/dist/agent-runtime-BesGDZcB.d.ts +555 -0
- package/dist/agent-runtime-DZTJ3C-p.d.cts +555 -0
- package/dist/agentic-memory-BmRCvh0d.d.ts +517 -0
- package/dist/agentic-memory-DfuVZ-lY.d.cts +517 -0
- package/dist/capability-admission-B0BzqAm5.d.cts +102 -0
- package/dist/capability-admission-g0mn9hpq.d.ts +102 -0
- package/dist/{chunk-JR4IKCR2.js → chunk-2747WN4Y.js} +5 -5
- package/dist/{chunk-2ILL7HQI.js → chunk-3JR3EDB2.js} +17 -17
- package/dist/{chunk-2ILL7HQI.js.map → chunk-3JR3EDB2.js.map} +1 -1
- package/dist/{chunk-GDL26N2T.js → chunk-3KN7NJDR.js} +2 -2
- package/dist/{chunk-DJC4CHLQ.js → chunk-43BKLFZU.js} +9 -9
- package/dist/chunk-6XAIOL3X.js +2407 -0
- package/dist/chunk-6XAIOL3X.js.map +1 -0
- package/dist/{chunk-SCRFRCGR.js → chunk-BSQGE5PS.js} +1 -1
- package/dist/{chunk-Y3ZLRGHC.js → chunk-CZNV3VXM.js} +16 -16
- package/dist/chunk-DGUM43GV.js +11 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/{chunk-JIMUDQN3.js → chunk-FBUU43PM.js} +2 -2
- package/dist/chunk-H75VXTGT.js +219 -0
- package/dist/chunk-H75VXTGT.js.map +1 -0
- package/dist/{chunk-RIIOUTGM.js → chunk-HKK2JD7Z.js} +12 -9
- package/dist/chunk-HKK2JD7Z.js.map +1 -0
- package/dist/{chunk-D6BG7U6A.js → chunk-IXZBUWSP.js} +3 -3
- package/dist/chunk-PC3BTTBE.js +3217 -0
- package/dist/chunk-PC3BTTBE.js.map +1 -0
- package/dist/chunk-QFY4AFY4.js +879 -0
- package/dist/chunk-QFY4AFY4.js.map +1 -0
- package/dist/{chunk-DK554R7P.js → chunk-S6HXABGL.js} +2 -1
- package/dist/chunk-S6HXABGL.js.map +1 -0
- package/dist/{chunk-PKVBHGBM.js → chunk-SS2A464I.js} +7 -7
- package/dist/chunk-UT3MHJCW.js +49 -0
- package/dist/chunk-UT3MHJCW.js.map +1 -0
- package/dist/{chunk-G4M3NHRJ.js → chunk-V7CIJE4B.js} +3 -3
- package/dist/{chunk-TEW47IVR.js → chunk-VPEFSDME.js} +2 -2
- package/dist/chunk-VTHLCFN4.js +368 -0
- package/dist/chunk-VTHLCFN4.js.map +1 -0
- package/dist/{chunk-SWTLEQL6.js → chunk-WQIA3GFB.js} +2 -2
- package/dist/chunk-WQIA3GFB.js.map +1 -0
- package/dist/{chunk-I3IHOHCJ.js → chunk-XKXWK2KP.js} +108 -64
- package/dist/chunk-XKXWK2KP.js.map +1 -0
- package/dist/{chunk-COHO25CZ.js → chunk-YDSIVHRR.js} +553 -7
- package/dist/chunk-YDSIVHRR.js.map +1 -0
- package/dist/chunk-YXMZ2N6J.js +1884 -0
- package/dist/chunk-YXMZ2N6J.js.map +1 -0
- package/dist/composition/index.cjs +102 -57
- package/dist/composition/index.cjs.map +1 -1
- package/dist/composition/index.d.cts +4 -4
- package/dist/composition/index.d.ts +4 -4
- package/dist/composition/index.js +6 -5
- package/dist/core/index.cjs +102 -57
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +5 -4
- package/dist/cqrs/index.cjs.map +1 -1
- package/dist/cqrs/index.d.cts +4 -4
- package/dist/cqrs/index.d.ts +4 -4
- package/dist/cqrs/index.js +3 -2
- package/dist/cqrs/index.js.map +1 -1
- package/dist/cqrs/messaging.cjs +312 -0
- package/dist/cqrs/messaging.cjs.map +1 -0
- package/dist/cqrs/messaging.d.cts +57 -0
- package/dist/cqrs/messaging.d.ts +57 -0
- package/dist/cqrs/messaging.js +274 -0
- package/dist/cqrs/messaging.js.map +1 -0
- package/dist/cqrs/work-queue.cjs +329 -0
- package/dist/cqrs/work-queue.cjs.map +1 -0
- package/dist/cqrs/work-queue.d.cts +90 -0
- package/dist/cqrs/work-queue.d.ts +90 -0
- package/dist/cqrs/work-queue.js +292 -0
- package/dist/cqrs/work-queue.js.map +1 -0
- package/dist/data/index.cjs +19 -0
- package/dist/data/index.cjs.map +1 -0
- package/dist/data/index.d.cts +36 -0
- package/dist/data/index.d.ts +36 -0
- package/dist/data/index.js +1 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data-structures/index.cjs +105 -57
- package/dist/data-structures/index.cjs.map +1 -1
- package/dist/data-structures/index.d.cts +8 -8
- package/dist/data-structures/index.d.ts +8 -8
- package/dist/data-structures/index.js +7 -6
- package/dist/{describe-BZb7AS2y.d.ts → describe-BpyJuWkw.d.ts} +1 -1
- package/dist/{describe-Ciu8SUnN.d.cts → describe-DYMw_l1C.d.cts} +1 -1
- package/dist/executors/work-queue.cjs +342 -0
- package/dist/executors/work-queue.cjs.map +1 -0
- package/dist/executors/work-queue.d.cts +90 -0
- package/dist/executors/work-queue.d.ts +90 -0
- package/dist/executors/work-queue.js +306 -0
- package/dist/executors/work-queue.js.map +1 -0
- package/dist/graph/index.cjs +112 -58
- package/dist/graph/index.cjs.map +1 -1
- package/dist/graph/index.d.cts +9 -9
- package/dist/graph/index.d.ts +9 -9
- package/dist/graph/index.js +18 -17
- package/dist/{graph-DfdF9zy4.d.ts → graph-D-1-SQeC.d.ts} +3 -3
- package/dist/{graph-s23RbbFO.d.cts → graph-DCEWh4T2.d.cts} +3 -3
- package/dist/{index-CAEmLCYF.d.cts → index-72VZC0-E.d.cts} +2 -2
- package/dist/{index-SnzZu3x7.d.ts → index-Bmxeu0nK.d.ts} +2 -2
- package/dist/index.cjs +112 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -10
- package/dist/index.d.ts +11 -10
- package/dist/index.js +118 -113
- package/dist/inspection/boundary.cjs +98 -0
- package/dist/inspection/boundary.cjs.map +1 -0
- package/dist/inspection/boundary.d.cts +61 -0
- package/dist/inspection/boundary.d.ts +61 -0
- package/dist/inspection/boundary.js +75 -0
- package/dist/inspection/boundary.js.map +1 -0
- package/dist/{messages-BZqrGGm1.d.ts → messages-CAzUPPJM.d.cts} +10 -5
- package/dist/{messages-BZqrGGm1.d.cts → messages-CAzUPPJM.d.ts} +10 -5
- package/dist/messaging/index.cjs +744 -613
- package/dist/messaging/index.cjs.map +1 -1
- package/dist/messaging/index.d.cts +216 -160
- package/dist/messaging/index.d.ts +216 -160
- package/dist/messaging/index.js +19 -749
- package/dist/messaging/index.js.map +1 -1
- package/dist/operators/index.cjs +102 -57
- package/dist/operators/index.cjs.map +1 -1
- package/dist/operators/index.d.cts +6 -6
- package/dist/operators/index.d.ts +6 -6
- package/dist/operators/index.js +8 -7
- package/dist/orchestration/index.cjs +3333 -59
- package/dist/orchestration/index.cjs.map +1 -1
- package/dist/orchestration/index.d.cts +7 -4
- package/dist/orchestration/index.d.ts +7 -4
- package/dist/orchestration/index.js +49 -8
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/messaging.cjs +314 -0
- package/dist/orchestration/messaging.cjs.map +1 -0
- package/dist/orchestration/messaging.d.cts +59 -0
- package/dist/orchestration/messaging.d.ts +59 -0
- package/dist/orchestration/messaging.js +276 -0
- package/dist/orchestration/messaging.js.map +1 -0
- package/dist/orchestration/work-queue.cjs +262 -0
- package/dist/orchestration/work-queue.cjs.map +1 -0
- package/dist/orchestration/work-queue.d.cts +85 -0
- package/dist/orchestration/work-queue.d.ts +85 -0
- package/dist/orchestration/work-queue.js +226 -0
- package/dist/orchestration/work-queue.js.map +1 -0
- package/dist/patterns/event-flow.cjs +447 -0
- package/dist/patterns/event-flow.cjs.map +1 -0
- package/dist/patterns/event-flow.d.cts +115 -0
- package/dist/patterns/event-flow.d.ts +115 -0
- package/dist/patterns/event-flow.js +14 -0
- package/dist/patterns/event-flow.js.map +1 -0
- package/dist/patterns/index.cjs +423 -18
- package/dist/patterns/index.cjs.map +1 -1
- package/dist/patterns/index.d.cts +8 -5
- package/dist/patterns/index.d.ts +8 -5
- package/dist/patterns/index.js +13 -4
- package/dist/{reactive-collection-Cb1II1Fi.d.ts → reactive-collection-BAmfrGjd.d.ts} +9 -9
- package/dist/{reactive-collection-BxBqtIOE.d.cts → reactive-collection-DNV0-gFi.d.cts} +9 -9
- package/dist/{reactive-collection-storage-D-KmjE0J.d.cts → reactive-collection-storage-BNEldDyi.d.cts} +5 -5
- package/dist/{reactive-collection-storage-BNiEc-Gd.d.ts → reactive-collection-storage-YZsAQsWK.d.ts} +5 -5
- package/dist/{reactive-map-D-g3dv8I.d.cts → reactive-map-DRD1LJ2H.d.cts} +6 -6
- package/dist/{reactive-map-BcB4KsQR.d.ts → reactive-map-EsDiCmJk.d.ts} +6 -6
- package/dist/render/index.d.cts +3 -3
- package/dist/render/index.d.ts +3 -3
- package/dist/render/index.js +1 -0
- package/dist/{semantic-memory-graph-BYoIlP35.d.cts → semantic-memory-graph-DKuNzuWw.d.cts} +2 -2
- package/dist/{semantic-memory-graph-CxyXLms3.d.ts → semantic-memory-graph-uwbwJdhe.d.ts} +2 -2
- package/dist/solutions/index.cjs +4478 -2
- package/dist/solutions/index.cjs.map +1 -1
- package/dist/solutions/index.d.cts +13 -519
- package/dist/solutions/index.d.ts +13 -519
- package/dist/solutions/index.js +90 -6
- package/dist/solutions/reactive-layout/browser/index.cjs +449 -0
- package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/browser/index.d.cts +44 -0
- package/dist/solutions/reactive-layout/browser/index.d.ts +44 -0
- package/dist/solutions/reactive-layout/browser/index.js +69 -0
- package/dist/solutions/reactive-layout/browser/index.js.map +1 -0
- package/dist/solutions/reactive-layout/index.cjs +4266 -0
- package/dist/solutions/reactive-layout/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/index.d.cts +581 -0
- package/dist/solutions/reactive-layout/index.d.ts +581 -0
- package/dist/solutions/reactive-layout/index.js +86 -0
- package/dist/solutions/reactive-layout/index.js.map +1 -0
- package/dist/solutions/reactive-layout/node-canvas/index.cjs +545 -0
- package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/node-canvas/index.d.cts +54 -0
- package/dist/solutions/reactive-layout/node-canvas/index.d.ts +54 -0
- package/dist/solutions/reactive-layout/node-canvas/index.js +131 -0
- package/dist/solutions/reactive-layout/node-canvas/index.js.map +1 -0
- package/dist/solutions/reactive-layout/react-native/index.cjs +494 -0
- package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/react-native/index.d.cts +51 -0
- package/dist/solutions/reactive-layout/react-native/index.d.ts +51 -0
- package/dist/solutions/reactive-layout/react-native/index.js +77 -0
- package/dist/solutions/reactive-layout/react-native/index.js.map +1 -0
- package/dist/solutions/reactive-layout/skia/index.cjs +547 -0
- package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/skia/index.d.cts +64 -0
- package/dist/solutions/reactive-layout/skia/index.d.ts +64 -0
- package/dist/solutions/reactive-layout/skia/index.js +70 -0
- package/dist/solutions/reactive-layout/skia/index.js.map +1 -0
- package/dist/solutions/work-item/actions.cjs +2164 -0
- package/dist/solutions/work-item/actions.cjs.map +1 -0
- package/dist/solutions/work-item/actions.d.cts +201 -0
- package/dist/solutions/work-item/actions.d.ts +201 -0
- package/dist/solutions/work-item/actions.js +1454 -0
- package/dist/solutions/work-item/actions.js.map +1 -0
- package/dist/solutions/work-item/scheduling.cjs +2454 -0
- package/dist/solutions/work-item/scheduling.cjs.map +1 -0
- package/dist/solutions/work-item/scheduling.d.cts +433 -0
- package/dist/solutions/work-item/scheduling.d.ts +433 -0
- package/dist/solutions/work-item/scheduling.js +32 -0
- package/dist/solutions/work-item/scheduling.js.map +1 -0
- package/dist/solutions/work-item/work-queue.cjs +306 -0
- package/dist/solutions/work-item/work-queue.cjs.map +1 -0
- package/dist/solutions/work-item/work-queue.d.cts +71 -0
- package/dist/solutions/work-item/work-queue.d.ts +71 -0
- package/dist/solutions/work-item/work-queue.js +270 -0
- package/dist/solutions/work-item/work-queue.js.map +1 -0
- package/dist/sources/browser.cjs +169 -57
- package/dist/sources/browser.cjs.map +1 -1
- package/dist/sources/browser.d.cts +33 -6
- package/dist/sources/browser.d.ts +33 -6
- package/dist/sources/browser.js +73 -6
- package/dist/sources/browser.js.map +1 -1
- package/dist/sources/index.cjs +102 -57
- package/dist/sources/index.cjs.map +1 -1
- package/dist/sources/index.d.cts +5 -5
- package/dist/sources/index.d.ts +5 -5
- package/dist/sources/index.js +6 -5
- package/dist/sources/node.cjs.map +1 -1
- package/dist/sources/node.d.cts +4 -4
- package/dist/sources/node.d.ts +4 -4
- package/dist/sources/node.js +2 -1
- package/dist/sources/node.js.map +1 -1
- package/dist/storage/browser.js +1 -0
- package/dist/storage/browser.js.map +1 -1
- package/dist/storage/index.d.cts +5 -5
- package/dist/storage/index.d.ts +5 -5
- package/dist/storage/index.js +5 -4
- package/dist/storage/node.js +1 -0
- package/dist/storage/node.js.map +1 -1
- package/dist/store-C-joM4gh.d.ts +123 -0
- package/dist/store-CNJwmT-h.d.cts +123 -0
- package/dist/testing/index.cjs +1 -0
- package/dist/testing/index.cjs.map +1 -1
- package/dist/testing/index.d.cts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +3 -2
- package/dist/{types-h12mNYbq.d.ts → types-BsJvElYZ.d.ts} +31 -31
- package/dist/{types-bNMSWKqF.d.cts → types-CcPIn7sy.d.cts} +31 -31
- package/dist/work-item-runtime-C3M79vE9.d.ts +228 -0
- package/dist/work-item-runtime-qaVgsL0T.d.cts +228 -0
- package/dist/work-queue/index.cjs +1132 -0
- package/dist/work-queue/index.cjs.map +1 -0
- package/dist/work-queue/index.d.cts +369 -0
- package/dist/work-queue/index.d.ts +369 -0
- package/dist/work-queue/index.js +1078 -0
- package/dist/work-queue/index.js.map +1 -0
- package/package.json +266 -2
- package/dist/chunk-COHO25CZ.js.map +0 -1
- package/dist/chunk-DK554R7P.js.map +0 -1
- package/dist/chunk-I3IHOHCJ.js.map +0 -1
- package/dist/chunk-RIIOUTGM.js.map +0 -1
- package/dist/chunk-SWTLEQL6.js.map +0 -1
- /package/dist/{chunk-JR4IKCR2.js.map → chunk-2747WN4Y.js.map} +0 -0
- /package/dist/{chunk-GDL26N2T.js.map → chunk-3KN7NJDR.js.map} +0 -0
- /package/dist/{chunk-DJC4CHLQ.js.map → chunk-43BKLFZU.js.map} +0 -0
- /package/dist/{chunk-SCRFRCGR.js.map → chunk-BSQGE5PS.js.map} +0 -0
- /package/dist/{chunk-Y3ZLRGHC.js.map → chunk-CZNV3VXM.js.map} +0 -0
- /package/dist/{chunk-JIMUDQN3.js.map → chunk-FBUU43PM.js.map} +0 -0
- /package/dist/{chunk-D6BG7U6A.js.map → chunk-IXZBUWSP.js.map} +0 -0
- /package/dist/{chunk-PKVBHGBM.js.map → chunk-SS2A464I.js.map} +0 -0
- /package/dist/{chunk-G4M3NHRJ.js.map → chunk-V7CIJE4B.js.map} +0 -0
- /package/dist/{chunk-TEW47IVR.js.map → chunk-VPEFSDME.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/solutions/agentic-memory.ts","../src/solutions/capability-admission.ts"],"sourcesContent":["/**\n * Thin agentic-memory solution surface.\n *\n * D125 places vertical application kits under solutions, while D158 keeps\n * semantic-memory retrieval/ranking in horizontal patterns. This v0 bundle\n * composes those lower layers into graph-visible facts only: no agent runtime,\n * hidden scheduler, storage restore/hydration, LLM loop, or protocol behavior.\n */\n\nimport { depBatch, depLatest } from \"../ctx/types.js\";\nimport type { Graph } from \"../graph/graph.js\";\nimport {\n\ttype Codec,\n\ttype StrictJsonValue as SharedStrictJsonValue,\n\tstrictJsonCodec,\n} from \"../json/codec.js\";\nimport type { Node } from \"../node/node.js\";\nimport {\n\ttype FactId,\n\ttype KnowledgeAssertion,\n\ttype KnowledgeAssertionObject,\n\ttype KnowledgeAssertionSubject,\n\ttype MemoryAnswer,\n\ttype MemoryFragment,\n\tvalidateMemoryFragment,\n} from \"../patterns/semantic-memory.js\";\nimport {\n\ttype MemoryRetrievalBundle,\n\ttype MemoryRetrievalCursor,\n\ttype MemoryRetrievalError,\n\ttype MemoryRetrievalIndex,\n\ttype MemoryRetrievalQuery,\n\ttype MemoryRetrievalSnapshot,\n\ttype MemoryRetrievalStatus,\n\tmemoryRetrievalBundle,\n} from \"../patterns/semantic-memory-graph.js\";\n\nexport type AgenticMemoryStrictJsonValue = SharedStrictJsonValue;\n\ntype StrictJsonValue = SharedStrictJsonValue;\n\nexport type {\n\tKnowledgeAssertion,\n\tKnowledgeAssertionObject,\n\tKnowledgeAssertionSubject,\n} from \"../patterns/semantic-memory.js\";\n\n/** Agent-facing memory category. D164 keeps this separate from durability and artifact kind. */\nexport type AgenticMemoryKind = \"working\" | \"episodic\" | \"semantic\" | \"procedural\" | \"profile\";\n\n/** Semantic durability/retention policy metadata. This is not a storage tier handle. */\nexport type AgenticMemoryPersistenceLevel =\n\t| \"turn\"\n\t| \"session\"\n\t| \"project\"\n\t| \"longTerm\"\n\t| \"permanent\"\n\t| \"archived\";\n\n/** Whether the record is raw evidence or a derived artifact. */\nexport type AgenticMemoryArtifactKind = \"raw\" | \"insight\" | \"profile\" | \"procedure\";\n\n/** Optional solution-facing scope metadata. Scope ids are ordinary DATA facts. */\nexport interface AgenticMemoryScope {\n\treadonly sessionId?: string;\n\treadonly projectId?: string;\n\treadonly userId?: string;\n\treadonly tenantId?: string;\n}\n\n/**\n * D164 solution envelope over a lower-layer MemoryFragment.\n *\n * The envelope carries agentic-memory metadata only. It intentionally owns no\n * storage tiers/keys/adapters, restore/hydration behavior, timers, schedulers,\n * LLM/tool/runner handles, or protocol semantics.\n */\nexport interface AgenticMemoryRecord<T = unknown> {\n\treadonly id: FactId;\n\treadonly kind: AgenticMemoryKind;\n\treadonly persistenceLevel: AgenticMemoryPersistenceLevel;\n\treadonly artifactKind: AgenticMemoryArtifactKind;\n\treadonly scope?: AgenticMemoryScope;\n\treadonly fragment: MemoryFragment<T>;\n}\n\nexport interface AgenticMemoryRecordMetadata {\n\treadonly recordId: FactId;\n\treadonly kind: AgenticMemoryKind;\n\treadonly persistenceLevel: AgenticMemoryPersistenceLevel;\n\treadonly artifactKind: AgenticMemoryArtifactKind;\n\treadonly scope?: AgenticMemoryScope;\n}\n\nexport interface AgenticMemoryProjectionCursor {\n\treadonly evaluation: number;\n\treadonly validRecords: number;\n\treadonly invalidRecords: number;\n\treadonly projectedFragments: number;\n}\n\nexport type AgenticMemoryStatusState = \"ready\" | \"empty\" | \"partial\" | \"error\";\n\nexport interface AgenticMemoryStatus {\n\treadonly state: AgenticMemoryStatusState;\n\treadonly cursor: AgenticMemoryProjectionCursor;\n}\n\nexport type AgenticMemoryErrorCode =\n\t| \"duplicate-record-id\"\n\t| \"duplicate-fragment-id\"\n\t| \"invalid-records-input\"\n\t| \"invalid-record\"\n\t| \"invalid-record-kind\"\n\t| \"invalid-persistence-level\"\n\t| \"invalid-artifact-kind\"\n\t| \"invalid-scope\"\n\t| \"invalid-fragment\";\n\nexport interface AgenticMemoryError {\n\treadonly code: AgenticMemoryErrorCode;\n\treadonly message: string;\n\treadonly index?: number;\n\treadonly recordId?: FactId;\n\treadonly fragmentId?: FactId;\n\treadonly record?: unknown;\n\treadonly validationErrors?: readonly string[];\n\treadonly cursor: AgenticMemoryProjectionCursor;\n}\n\nexport interface AgenticMemoryProjectionSnapshot<T = unknown> {\n\treadonly records: readonly AgenticMemoryRecord<T>[];\n\treadonly fragments: readonly MemoryFragment<T>[];\n\treadonly metadataByFragmentId: Readonly<Record<FactId, AgenticMemoryRecordMetadata>>;\n\treadonly status: AgenticMemoryStatus;\n\treadonly errors: readonly AgenticMemoryError[];\n\treadonly cursor: AgenticMemoryProjectionCursor;\n}\n\n/** Source/provenance projection for a valid memory fragment. */\nexport interface AgenticMemorySourceProjection {\n\treadonly fragmentId: FactId;\n\treadonly record?: AgenticMemoryRecordMetadata;\n\treadonly sources: readonly FactId[];\n\treadonly parentFragmentId?: FactId;\n\treadonly provenance?: string;\n}\n\n/** A context-ready item derived from ranked memory retrieval results. */\nexport interface AgenticMemoryContextEntry<T = unknown> {\n\treadonly fragmentId: FactId;\n\treadonly payload: T;\n\treadonly confidence: number;\n\treadonly tags: readonly string[];\n\treadonly sources: readonly FactId[];\n\treadonly record?: AgenticMemoryRecordMetadata;\n\treadonly fragment: MemoryFragment<T>;\n}\n\nexport type AgenticMemoryContextState = \"ready\" | \"empty\" | \"partial\" | \"error\";\n\n/**\n * Context-ready ranked memory output for callers such as prompt builders.\n *\n * This is still only a DATA fact. It does not extract, summarize, reflect, run\n * tools, or choose an autonomous action.\n */\nexport interface AgenticMemoryContext<T = unknown> {\n\treadonly state: AgenticMemoryContextState;\n\treadonly query: MemoryRetrievalQuery;\n\treadonly entries: readonly AgenticMemoryContextEntry<T>[];\n\treadonly cursor: MemoryRetrievalCursor;\n\treadonly errors: readonly AgenticMemoryError[];\n\treadonly retrievalErrors: readonly MemoryRetrievalError[];\n\treadonly contextReady: boolean;\n}\n\n/** Explicit KG assertion draft fact; extraction/LLM work happens outside this bundle. */\nexport interface AgenticMemoryKgAssertionDraft {\n\treadonly id: FactId;\n\treadonly recordId: FactId;\n\treadonly fragmentId: FactId;\n\treadonly subject: KnowledgeAssertionSubject;\n\treadonly predicate: string;\n\treadonly object: KnowledgeAssertionObject;\n\treadonly confidence?: number;\n\treadonly sources?: readonly FactId[];\n\treadonly provenance?: string;\n}\n\nexport interface AgenticMemoryKgProjectionCursor {\n\treadonly evaluation: number;\n\treadonly validRecords: number;\n\treadonly validDrafts: number;\n\treadonly invalidDrafts: number;\n\treadonly projectedAssertions: number;\n}\n\nexport type AgenticMemoryKgProjectionStatusState = AgenticMemoryStatusState;\n\nexport interface AgenticMemoryKgProjectionStatus {\n\treadonly state: AgenticMemoryKgProjectionStatusState;\n\treadonly cursor: AgenticMemoryKgProjectionCursor;\n}\n\nexport type AgenticMemoryKgProjectionErrorCode =\n\t| AgenticMemoryErrorCode\n\t| \"invalid-drafts-input\"\n\t| \"invalid-draft\"\n\t| \"duplicate-assertion-id\"\n\t| \"missing-record-ref\"\n\t| \"missing-fragment-ref\"\n\t| \"fragment-record-mismatch\"\n\t| \"invalid-assertion-shape\";\n\nexport interface AgenticMemoryKgProjectionError {\n\treadonly code: AgenticMemoryKgProjectionErrorCode;\n\treadonly message: string;\n\treadonly index?: number;\n\treadonly assertionId?: FactId;\n\treadonly recordId?: FactId;\n\treadonly fragmentId?: FactId;\n\treadonly draft?: unknown;\n\treadonly record?: unknown;\n\treadonly validationErrors?: readonly string[];\n\treadonly cursor: AgenticMemoryKgProjectionCursor;\n}\n\nexport interface AgenticMemoryKgProjectionSnapshot {\n\treadonly assertions: readonly KnowledgeAssertion[];\n\treadonly status: AgenticMemoryKgProjectionStatus;\n\treadonly errors: readonly AgenticMemoryKgProjectionError[];\n\treadonly cursor: AgenticMemoryKgProjectionCursor;\n}\n\nexport interface AgenticMemoryKgProjectionBundle {\n\treadonly input: {\n\t\treadonly records: Node<readonly AgenticMemoryRecord[]>;\n\t\treadonly drafts: Node<readonly AgenticMemoryKgAssertionDraft[]>;\n\t};\n\treadonly projection: Node<AgenticMemoryKgProjectionSnapshot>;\n\treadonly assertions: Node<readonly KnowledgeAssertion[]>;\n\treadonly status: Node<AgenticMemoryKgProjectionStatus>;\n\treadonly errors: Node<readonly AgenticMemoryKgProjectionError[]>;\n\treadonly cursor: Node<AgenticMemoryKgProjectionCursor>;\n}\n\nexport interface AgenticMemoryKgProjectionBundleOptions {\n\treadonly name?: string;\n\treadonly records: Node<readonly AgenticMemoryRecord[]>;\n\treadonly drafts: Node<readonly AgenticMemoryKgAssertionDraft[]>;\n}\n\nexport const AGENTIC_MEMORY_RECORD_FRAME_FORMAT = \"graphrefly.agenticMemoryRecord\";\nexport const AGENTIC_MEMORY_RECORD_FRAME_VERSION = 1;\n\nexport interface AgenticMemoryFragmentFrame<TJson extends StrictJsonValue = StrictJsonValue> {\n\treadonly id: FactId;\n\treadonly payload: TJson;\n\treadonly tNs: string;\n\treadonly validFrom?: string;\n\treadonly validTo?: string;\n\treadonly confidence: number;\n\treadonly tags: readonly string[];\n\treadonly sources: readonly FactId[];\n\treadonly embedding?: readonly number[];\n\treadonly parentFragmentId?: FactId;\n\treadonly provenance?: string;\n}\n\nexport interface AgenticMemoryRecordFrame<TJson extends StrictJsonValue = StrictJsonValue> {\n\treadonly format: typeof AGENTIC_MEMORY_RECORD_FRAME_FORMAT;\n\treadonly version: typeof AGENTIC_MEMORY_RECORD_FRAME_VERSION;\n\treadonly record: {\n\t\treadonly id: FactId;\n\t\treadonly kind: AgenticMemoryKind;\n\t\treadonly persistenceLevel: AgenticMemoryPersistenceLevel;\n\t\treadonly artifactKind: AgenticMemoryArtifactKind;\n\t\treadonly scope?: AgenticMemoryScope;\n\t\treadonly fragment: AgenticMemoryFragmentFrame<TJson>;\n\t};\n}\n\nexport type AgenticMemoryRetentionCommand =\n\t| {\n\t\t\treadonly id: FactId;\n\t\t\treadonly kind: \"archive\";\n\t\t\treadonly recordId: FactId;\n\t\t\treadonly reason?: string;\n\t }\n\t| {\n\t\t\treadonly id: FactId;\n\t\t\treadonly kind: \"restore\";\n\t\t\treadonly recordId: FactId;\n\t\t\treadonly persistenceLevel?: Exclude<AgenticMemoryPersistenceLevel, \"archived\">;\n\t\t\treadonly reason?: string;\n\t }\n\t| {\n\t\t\treadonly id: FactId;\n\t\t\treadonly kind: \"setPersistenceLevel\";\n\t\t\treadonly recordId: FactId;\n\t\t\treadonly persistenceLevel: AgenticMemoryPersistenceLevel;\n\t\t\treadonly reason?: string;\n\t }\n\t| {\n\t\t\treadonly id: FactId;\n\t\t\treadonly kind: \"requestConsolidation\";\n\t\t\treadonly recordIds: readonly FactId[];\n\t\t\treadonly requestId?: FactId;\n\t\t\treadonly reason?: string;\n\t };\n\nexport interface AgenticMemoryConsolidationRequest {\n\treadonly id: FactId;\n\treadonly commandId: FactId;\n\treadonly recordIds: readonly FactId[];\n\treadonly reason?: string;\n}\n\nexport interface AgenticMemoryRetentionCursor {\n\treadonly evaluation: number;\n\treadonly validRecords: number;\n\treadonly validCommands: number;\n\treadonly invalidCommands: number;\n\treadonly activeRecords: number;\n\treadonly archivedRecords: number;\n\treadonly consolidationRequests: number;\n}\n\nexport interface AgenticMemoryRetentionStatus {\n\treadonly state: AgenticMemoryStatusState;\n\treadonly cursor: AgenticMemoryRetentionCursor;\n}\n\nexport type AgenticMemoryRetentionErrorCode =\n\t| AgenticMemoryErrorCode\n\t| \"invalid-commands-input\"\n\t| \"invalid-command\"\n\t| \"duplicate-command-id\"\n\t| \"missing-record-ref\";\n\nexport interface AgenticMemoryRetentionError {\n\treadonly code: AgenticMemoryRetentionErrorCode;\n\treadonly message: string;\n\treadonly index?: number;\n\treadonly commandId?: FactId;\n\treadonly recordId?: FactId;\n\treadonly recordIds?: readonly FactId[];\n\treadonly command?: unknown;\n\treadonly record?: unknown;\n\treadonly validationErrors?: readonly string[];\n\treadonly cursor: AgenticMemoryRetentionCursor;\n}\n\nexport interface AgenticMemoryRetentionSnapshot<T = unknown> {\n\treadonly activeRecords: readonly AgenticMemoryRecord<T>[];\n\treadonly archivedRecords: readonly AgenticMemoryRecord<T>[];\n\treadonly consolidationRequests: readonly AgenticMemoryConsolidationRequest[];\n\treadonly status: AgenticMemoryRetentionStatus;\n\treadonly errors: readonly AgenticMemoryRetentionError[];\n\treadonly cursor: AgenticMemoryRetentionCursor;\n}\n\nexport interface AgenticMemoryRetentionBundle<T = unknown> {\n\treadonly input: {\n\t\treadonly records: Node<readonly AgenticMemoryRecord<T>[]>;\n\t\treadonly commands: Node<readonly AgenticMemoryRetentionCommand[]>;\n\t};\n\treadonly projection: Node<AgenticMemoryRetentionSnapshot<T>>;\n\treadonly activeRecords: Node<readonly AgenticMemoryRecord<T>[]>;\n\treadonly archivedRecords: Node<readonly AgenticMemoryRecord<T>[]>;\n\treadonly consolidationRequests: Node<readonly AgenticMemoryConsolidationRequest[]>;\n\treadonly status: Node<AgenticMemoryRetentionStatus>;\n\treadonly errors: Node<readonly AgenticMemoryRetentionError[]>;\n\treadonly cursor: Node<AgenticMemoryRetentionCursor>;\n}\n\nexport interface AgenticMemoryRetentionBundleOptions<T = unknown> {\n\treadonly name?: string;\n\treadonly records: Node<readonly AgenticMemoryRecord<T>[]>;\n\treadonly commands: Node<readonly AgenticMemoryRetentionCommand[]>;\n}\n\nexport type AgenticMemoryConsolidationOutcome<T = unknown> =\n\t| {\n\t\t\treadonly id: FactId;\n\t\t\treadonly requestId: FactId;\n\t\t\treadonly kind: \"proposedRecords\";\n\t\t\treadonly records: readonly AgenticMemoryRecord<T>[];\n\t\t\treadonly provenance?: string;\n\t }\n\t| {\n\t\t\treadonly id: FactId;\n\t\t\treadonly requestId: FactId;\n\t\t\treadonly kind: \"failed\";\n\t\t\treadonly message: string;\n\t\t\treadonly provenance?: string;\n\t };\n\nexport interface AgenticMemoryConsolidationRecordDraft<T = unknown> {\n\treadonly id: FactId;\n\treadonly requestId: FactId;\n\treadonly outcomeId: FactId;\n\treadonly record: AgenticMemoryRecord<T>;\n}\n\nexport interface AgenticMemoryConsolidationCommand {\n\treadonly id: FactId;\n\treadonly kind: \"proposeRecords\" | \"markFailed\";\n\treadonly requestId: FactId;\n\treadonly outcomeId: FactId;\n\treadonly draftIds?: readonly FactId[];\n\treadonly message?: string;\n}\n\nexport interface AgenticMemoryConsolidationResult {\n\treadonly id: FactId;\n\treadonly requestId: FactId;\n\treadonly outcomeId: FactId;\n\treadonly state: \"proposed\" | \"failed\";\n\treadonly sourceRecordIds: readonly FactId[];\n\treadonly proposedRecordIds: readonly FactId[];\n\treadonly message?: string;\n\treadonly provenance?: string;\n}\n\nexport interface AgenticMemoryConsolidationCursor {\n\treadonly evaluation: number;\n\treadonly validRequests: number;\n\treadonly validOutcomes: number;\n\treadonly invalidOutcomes: number;\n\treadonly results: number;\n\treadonly proposedRecordDrafts: number;\n}\n\nexport interface AgenticMemoryConsolidationStatus {\n\treadonly state: AgenticMemoryStatusState;\n\treadonly cursor: AgenticMemoryConsolidationCursor;\n}\n\nexport type AgenticMemoryConsolidationErrorCode =\n\t| AgenticMemoryRetentionErrorCode\n\t| \"invalid-outcomes-input\"\n\t| \"invalid-outcome\"\n\t| \"duplicate-outcome-id\"\n\t| \"missing-request-ref\"\n\t| \"invalid-proposed-record\";\n\nexport interface AgenticMemoryConsolidationError {\n\treadonly code: AgenticMemoryConsolidationErrorCode;\n\treadonly message: string;\n\treadonly index?: number;\n\treadonly outcomeId?: FactId;\n\treadonly requestId?: FactId;\n\treadonly recordId?: FactId;\n\treadonly outcome?: unknown;\n\treadonly validationErrors?: readonly string[];\n\treadonly cursor: AgenticMemoryConsolidationCursor;\n}\n\nexport interface AgenticMemoryConsolidationSnapshot<T = unknown> {\n\treadonly results: readonly AgenticMemoryConsolidationResult[];\n\treadonly proposedRecordDrafts: readonly AgenticMemoryConsolidationRecordDraft<T>[];\n\treadonly commands: readonly AgenticMemoryConsolidationCommand[];\n\treadonly status: AgenticMemoryConsolidationStatus;\n\treadonly errors: readonly AgenticMemoryConsolidationError[];\n\treadonly cursor: AgenticMemoryConsolidationCursor;\n}\n\nexport interface AgenticMemoryConsolidationBundle<T = unknown> {\n\treadonly input: {\n\t\treadonly records: Node<readonly AgenticMemoryRecord<T>[]>;\n\t\treadonly requests: Node<readonly AgenticMemoryConsolidationRequest[]>;\n\t\treadonly outcomes: Node<readonly AgenticMemoryConsolidationOutcome<T>[]>;\n\t};\n\treadonly projection: Node<AgenticMemoryConsolidationSnapshot<T>>;\n\treadonly results: Node<readonly AgenticMemoryConsolidationResult[]>;\n\treadonly proposedRecordDrafts: Node<readonly AgenticMemoryConsolidationRecordDraft<T>[]>;\n\treadonly commands: Node<readonly AgenticMemoryConsolidationCommand[]>;\n\treadonly status: Node<AgenticMemoryConsolidationStatus>;\n\treadonly errors: Node<readonly AgenticMemoryConsolidationError[]>;\n\treadonly cursor: Node<AgenticMemoryConsolidationCursor>;\n}\n\nexport interface AgenticMemoryConsolidationBundleOptions<T = unknown> {\n\treadonly name?: string;\n\treadonly records: Node<readonly AgenticMemoryRecord<T>[]>;\n\treadonly requests: Node<readonly AgenticMemoryConsolidationRequest[]>;\n\treadonly outcomes: Node<readonly AgenticMemoryConsolidationOutcome<T>[]>;\n}\n\nexport interface AgenticMemoryContextText {\n\treadonly fragmentId: FactId;\n\treadonly text: string;\n\treadonly cost?: number;\n\treadonly metadata?: Readonly<Record<string, StrictJsonValue>>;\n}\n\nexport interface AgenticMemoryContextPackingPolicy {\n\treadonly maxEntries?: number;\n\treadonly maxChars?: number;\n\treadonly maxCost?: number;\n\treadonly includeMetadata?: boolean;\n}\n\nexport interface AgenticMemoryPackedContextEntry {\n\treadonly fragmentId: FactId;\n\treadonly text: string;\n\treadonly cost: number;\n\treadonly chars: number;\n\treadonly record?: AgenticMemoryRecordMetadata;\n\treadonly metadata?: Readonly<Record<string, StrictJsonValue>>;\n}\n\nexport interface AgenticMemoryPackedContext {\n\treadonly entries: readonly AgenticMemoryPackedContextEntry[];\n\treadonly text: string;\n\treadonly totalChars: number;\n\treadonly totalCost: number;\n\treadonly truncated: boolean;\n}\n\nexport interface AgenticMemoryContextPackingCursor {\n\treadonly evaluation: number;\n\treadonly inputEntries: number;\n\treadonly packedEntries: number;\n\treadonly omittedEntries: number;\n\treadonly totalChars: number;\n\treadonly totalCost: number;\n}\n\nexport interface AgenticMemoryContextPackingStatus {\n\treadonly state: AgenticMemoryStatusState;\n\treadonly cursor: AgenticMemoryContextPackingCursor;\n}\n\nexport type AgenticMemoryContextPackingErrorCode =\n\t| \"invalid-context\"\n\t| \"invalid-texts-input\"\n\t| \"invalid-text\"\n\t| \"duplicate-text-fragment-id\"\n\t| \"missing-text\"\n\t| \"invalid-policy\";\n\nexport interface AgenticMemoryContextPackingError {\n\treadonly code: AgenticMemoryContextPackingErrorCode;\n\treadonly message: string;\n\treadonly index?: number;\n\treadonly fragmentId?: FactId;\n\treadonly value?: unknown;\n\treadonly validationErrors?: readonly string[];\n\treadonly cursor: AgenticMemoryContextPackingCursor;\n}\n\nexport interface AgenticMemoryContextPackingSnapshot {\n\treadonly packedContext: AgenticMemoryPackedContext;\n\treadonly status: AgenticMemoryContextPackingStatus;\n\treadonly errors: readonly AgenticMemoryContextPackingError[];\n\treadonly cursor: AgenticMemoryContextPackingCursor;\n}\n\nexport interface AgenticMemoryContextPackingBundle<T = unknown> {\n\treadonly input: {\n\t\treadonly context: Node<AgenticMemoryContext<T>>;\n\t\treadonly texts: Node<readonly AgenticMemoryContextText[]>;\n\t\treadonly policy: Node<AgenticMemoryContextPackingPolicy>;\n\t};\n\treadonly projection: Node<AgenticMemoryContextPackingSnapshot>;\n\treadonly packedContext: Node<AgenticMemoryPackedContext>;\n\treadonly status: Node<AgenticMemoryContextPackingStatus>;\n\treadonly errors: Node<readonly AgenticMemoryContextPackingError[]>;\n\treadonly cursor: Node<AgenticMemoryContextPackingCursor>;\n}\n\nexport interface AgenticMemoryContextPackingBundleOptions<T = unknown> {\n\treadonly name?: string;\n\treadonly context: Node<AgenticMemoryContext<T>>;\n\treadonly texts: Node<readonly AgenticMemoryContextText[]>;\n\treadonly policy: Node<AgenticMemoryContextPackingPolicy>;\n}\n\ninterface ValidatedPackingContext {\n\treadonly entries: readonly AgenticMemoryContextEntry[];\n}\n\nexport interface AgenticMemoryBundle<T = unknown> {\n\treadonly input: {\n\t\treadonly records: Node<readonly AgenticMemoryRecord<T>[]>;\n\t\treadonly query: Node<MemoryRetrievalQuery>;\n\t};\n\treadonly projection: Node<AgenticMemoryProjectionSnapshot<T>>;\n\treadonly retrieval: MemoryRetrievalBundle<T>;\n\treadonly retrievalSnapshot: Node<MemoryRetrievalSnapshot<T>>;\n\treadonly records: Node<readonly AgenticMemoryRecord<T>[]>;\n\treadonly fragments: Node<readonly MemoryFragment<T>[]>;\n\treadonly sources: Node<readonly AgenticMemorySourceProjection[]>;\n\treadonly indexed: Node<MemoryRetrievalIndex<T>>;\n\treadonly ranked: Node<MemoryAnswer<T>>;\n\treadonly context: Node<AgenticMemoryContext<T>>;\n\treadonly status: Node<AgenticMemoryStatus>;\n\treadonly errors: Node<readonly AgenticMemoryError[]>;\n\treadonly retrievalStatus: Node<MemoryRetrievalStatus>;\n\treadonly retrievalErrors: Node<readonly MemoryRetrievalError[]>;\n\treadonly cursor: Node<MemoryRetrievalCursor>;\n}\n\nexport interface AgenticMemoryBundleOptions<T = unknown> {\n\treadonly name?: string;\n\t/** Explicit record-envelope input. Persistence, if needed, composes D161 outside this bundle. */\n\treadonly records: Node<readonly AgenticMemoryRecord<T>[]>;\n\t/** Explicit retrieval query input. */\n\treadonly query: Node<MemoryRetrievalQuery>;\n}\n\n/**\n * Compose graph-visible semantic-memory retrieval into an agentic-memory v0 bundle.\n *\n * The returned nodes are ordinary graph nodes with declared deps and DATA facts.\n * Invalid record envelopes and duplicate record ids stay graph-visible through\n * solution-level status/errors DATA facts. The lower retrieval bundle remains\n * visible and receives only projected MemoryFragment values.\n */\nexport function agenticMemoryBundle<T = unknown>(\n\tgraph: Graph,\n\topts: AgenticMemoryBundleOptions<T>,\n): AgenticMemoryBundle<T> {\n\tconst name = opts.name ?? \"agenticMemory\";\n\tconst projection = agenticMemoryRecordProjection<T>(graph, opts.records, `${name}/projection`);\n\tconst projectedRecords = agenticMemoryProjection(\n\t\tgraph,\n\t\tprojection,\n\t\t`${name}/records`,\n\t\t\"agenticMemoryRecords\",\n\t\t(fact) => fact.records,\n\t);\n\tconst projectedFragments = agenticMemoryProjection(\n\t\tgraph,\n\t\tprojection,\n\t\t`${name}/fragments`,\n\t\t\"agenticMemoryFragments\",\n\t\t(fact) => fact.fragments,\n\t);\n\tconst status = agenticMemoryProjection(\n\t\tgraph,\n\t\tprojection,\n\t\t`${name}/status`,\n\t\t\"agenticMemoryStatus\",\n\t\t(fact) => fact.status,\n\t);\n\tconst errors = agenticMemoryProjection(\n\t\tgraph,\n\t\tprojection,\n\t\t`${name}/errors`,\n\t\t\"agenticMemoryErrors\",\n\t\t(fact) => fact.errors,\n\t);\n\tconst retrieval = memoryRetrievalBundle<T>(graph, {\n\t\tname: `${name}/retrieval`,\n\t\tfragments: projectedFragments,\n\t\tquery: opts.query,\n\t});\n\tconst sources = agenticMemoryProjection(\n\t\tgraph,\n\t\tprojection,\n\t\t`${name}/sources`,\n\t\t\"agenticMemorySources\",\n\t\t(fact) =>\n\t\t\tObject.freeze(\n\t\t\t\tfact.fragments.map((fragment) =>\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\tfragmentId: fragment.id,\n\t\t\t\t\t\t...(fact.metadataByFragmentId[fragment.id] === undefined\n\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t: { record: fact.metadataByFragmentId[fragment.id] }),\n\t\t\t\t\t\tsources: Object.freeze([...fragment.sources]),\n\t\t\t\t\t\t...(fragment.parentFragmentId === undefined\n\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t: { parentFragmentId: fragment.parentFragmentId }),\n\t\t\t\t\t\t...(fragment.provenance === undefined ? {} : { provenance: fragment.provenance }),\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t),\n\t);\n\tconst context = agenticMemoryContextProjection(\n\t\tgraph,\n\t\tprojection,\n\t\tretrieval.snapshot,\n\t\t`${name}/context`,\n\t);\n\n\treturn {\n\t\tinput: { records: opts.records, query: opts.query },\n\t\tprojection,\n\t\tretrieval,\n\t\tretrievalSnapshot: retrieval.snapshot,\n\t\trecords: projectedRecords,\n\t\tfragments: projectedFragments,\n\t\tsources,\n\t\tindexed: retrieval.indexed,\n\t\tranked: retrieval.ranked,\n\t\tcontext,\n\t\tstatus,\n\t\terrors,\n\t\tretrievalStatus: retrieval.status,\n\t\tretrievalErrors: retrieval.errors,\n\t\tcursor: retrieval.cursor,\n\t};\n}\n\n/**\n * D165 solution-level KG assertion projection.\n *\n * Records and explicit assertion drafts stay visible as declared deps. This\n * bundle validates references and shape, then emits DATA facts only; it does\n * not extract assertions, call LLMs, read/write storage, or mutate topology.\n */\nexport function agenticMemoryKgProjectionBundle(\n\tgraph: Graph,\n\topts: AgenticMemoryKgProjectionBundleOptions,\n): AgenticMemoryKgProjectionBundle {\n\tconst name = opts.name ?? \"agenticMemoryKgProjection\";\n\tconst projection = graph.node<AgenticMemoryKgProjectionSnapshot>(\n\t\t[opts.records, opts.drafts],\n\t\t(ctx) => {\n\t\t\tconst state =\n\t\t\t\tctx.state.get<{ evaluation: number }>() ??\n\t\t\t\t({ evaluation: 0 } satisfies { evaluation: number });\n\t\t\tstate.evaluation += 1;\n\t\t\tconst recordProjection = validateAndProjectRecords(depLatest(ctx, 0));\n\t\t\tconst draftProjection = validateAndProjectKgDrafts(\n\t\t\t\tdepLatest(ctx, 1),\n\t\t\t\trecordProjection.records,\n\t\t\t);\n\t\t\tconst cursor: AgenticMemoryKgProjectionCursor = Object.freeze({\n\t\t\t\tevaluation: state.evaluation,\n\t\t\t\tvalidRecords: recordProjection.records.length,\n\t\t\t\tvalidDrafts: draftProjection.assertions.length,\n\t\t\t\tinvalidDrafts: draftProjection.invalidDrafts,\n\t\t\t\tprojectedAssertions: draftProjection.assertions.length,\n\t\t\t});\n\t\t\tconst errors = Object.freeze(\n\t\t\t\t[...recordProjection.errors.map(kgErrorFromRecordError), ...draftProjection.errors].map(\n\t\t\t\t\t(error) => freezeError({ ...error, cursor }),\n\t\t\t\t),\n\t\t\t);\n\t\t\tconst status: AgenticMemoryKgProjectionStatus = Object.freeze({\n\t\t\t\tstate: agenticStatusState(errors.length, draftProjection.assertions.length),\n\t\t\t\tcursor,\n\t\t\t});\n\t\t\tctx.state.set(state);\n\t\t\tctx.down([\n\t\t\t\t[\n\t\t\t\t\t\"DATA\",\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\tassertions: Object.freeze(draftProjection.assertions),\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t\terrors,\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t]);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/projection`,\n\t\t\tfactory: \"agenticMemoryKgProjection\",\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tinput: { records: opts.records, drafts: opts.drafts },\n\t\tprojection,\n\t\tassertions: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/assertions`,\n\t\t\t\"agenticMemoryKgAssertions\",\n\t\t\t(fact) => fact.assertions,\n\t\t),\n\t\tstatus: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/status`,\n\t\t\t\"agenticMemoryKgStatus\",\n\t\t\t(fact) => fact.status,\n\t\t),\n\t\terrors: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/errors`,\n\t\t\t\"agenticMemoryKgErrors\",\n\t\t\t(fact) => fact.errors,\n\t\t),\n\t\tcursor: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/cursor`,\n\t\t\t\"agenticMemoryKgCursor\",\n\t\t\t(fact) => fact.cursor,\n\t\t),\n\t};\n}\n\n/** Build a D166 strict-JSON frame from an in-memory AgenticMemoryRecord. */\nexport function agenticMemoryRecordFrame<TJson extends StrictJsonValue>(\n\trecord: AgenticMemoryRecord<TJson>,\n): AgenticMemoryRecordFrame<TJson> {\n\tconst result = validateAndSnapshotRecord<TJson>(record, 0);\n\tif (result.errors.length > 0 || result.record === undefined) {\n\t\tthrow new TypeError(\n\t\t\t`agenticMemoryRecordFrame: invalid record: ${result.errors\n\t\t\t\t.flatMap((error) => error.validationErrors ?? [error.message])\n\t\t\t\t.join(\"; \")}`,\n\t\t);\n\t}\n\tassertAgenticMemoryRecordCodecShape(record);\n\tassertStrictJsonValue(result.record.fragment.payload, \"record.fragment.payload\");\n\treturn Object.freeze({\n\t\tformat: AGENTIC_MEMORY_RECORD_FRAME_FORMAT,\n\t\tversion: AGENTIC_MEMORY_RECORD_FRAME_VERSION,\n\t\trecord: Object.freeze({\n\t\t\tid: result.record.id,\n\t\t\tkind: result.record.kind,\n\t\t\tpersistenceLevel: result.record.persistenceLevel,\n\t\t\tartifactKind: result.record.artifactKind,\n\t\t\t...(result.record.scope === undefined ? {} : { scope: result.record.scope }),\n\t\t\tfragment: fragmentFrame(result.record.fragment as MemoryFragment<TJson>),\n\t\t}),\n\t});\n}\n\n/** Assert and snapshot a decoded D166 record frame. Unknown fields fail honestly. */\nexport function assertAgenticMemoryRecordFrame<TJson extends StrictJsonValue = StrictJsonValue>(\n\tvalue: unknown,\n): AgenticMemoryRecordFrame<TJson> {\n\tif (!isPlainRecord(value))\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: frame must be an object\");\n\tassertStrictJsonValue(value, \"agenticMemoryRecordFrame\");\n\tassertExactKeys(value, [\"format\", \"record\", \"version\"], \"agenticMemoryRecordFrame\");\n\tif (value.format !== AGENTIC_MEMORY_RECORD_FRAME_FORMAT) {\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: invalid format\");\n\t}\n\tif (value.version !== AGENTIC_MEMORY_RECORD_FRAME_VERSION) {\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: invalid version\");\n\t}\n\tconst rawRecord = value.record;\n\tif (!isPlainRecord(rawRecord)) {\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: record must be an object\");\n\t}\n\tassertExactKeys(\n\t\trawRecord,\n\t\trawRecord.scope === undefined\n\t\t\t? [\"artifactKind\", \"fragment\", \"id\", \"kind\", \"persistenceLevel\"]\n\t\t\t: [\"artifactKind\", \"fragment\", \"id\", \"kind\", \"persistenceLevel\", \"scope\"],\n\t\t\"agenticMemoryRecordFrame.record\",\n\t);\n\tconst rawFragment = rawRecord.fragment;\n\tif (!isPlainRecord(rawFragment)) {\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: fragment must be an object\");\n\t}\n\tassertExactKeys(\n\t\trawFragment,\n\t\t[\n\t\t\t\"id\",\n\t\t\t\"payload\",\n\t\t\t\"tNs\",\n\t\t\t...(rawFragment.validFrom === undefined ? [] : [\"validFrom\"]),\n\t\t\t...(rawFragment.validTo === undefined ? [] : [\"validTo\"]),\n\t\t\t\"confidence\",\n\t\t\t\"tags\",\n\t\t\t\"sources\",\n\t\t\t...(rawFragment.embedding === undefined ? [] : [\"embedding\"]),\n\t\t\t...(rawFragment.parentFragmentId === undefined ? [] : [\"parentFragmentId\"]),\n\t\t\t...(rawFragment.provenance === undefined ? [] : [\"provenance\"]),\n\t\t],\n\t\t\"agenticMemoryRecordFrame.record.fragment\",\n\t);\n\tif (rawRecord.scope !== undefined) assertScopeFrame(rawRecord.scope);\n\tconst frame = value as unknown as AgenticMemoryRecordFrame<TJson>;\n\tconst decoded = recordFromFrame(frame);\n\tconst roundtrip = agenticMemoryRecordFrame(decoded);\n\treturn roundtrip as AgenticMemoryRecordFrame<TJson>;\n}\n\n/** Strict canonical JSON codec for D166 AgenticMemoryRecordFrame values. */\nexport function agenticMemoryRecordFrameCodec<\n\tTJson extends StrictJsonValue = StrictJsonValue,\n>(): Codec<AgenticMemoryRecordFrame<TJson>> {\n\treturn {\n\t\tencode(value: AgenticMemoryRecordFrame<TJson>): Uint8Array {\n\t\t\treturn strictJsonCodec.encode(assertAgenticMemoryRecordFrame<TJson>(value));\n\t\t},\n\t\tdecode(bytes: Uint8Array): AgenticMemoryRecordFrame<TJson> {\n\t\t\treturn assertAgenticMemoryRecordFrame<TJson>(strictJsonCodec.decode(bytes));\n\t\t},\n\t};\n}\n\n/** Strict canonical JSON codec that persists records and decodes bigint fields back to bigint. */\nexport function agenticMemoryRecordCodec<TJson extends StrictJsonValue = StrictJsonValue>(): Codec<\n\tAgenticMemoryRecord<TJson>\n> {\n\tconst frameCodec = agenticMemoryRecordFrameCodec<TJson>();\n\treturn {\n\t\tencode(value: AgenticMemoryRecord<TJson>): Uint8Array {\n\t\t\treturn frameCodec.encode(agenticMemoryRecordFrame(value));\n\t\t},\n\t\tdecode(bytes: Uint8Array): AgenticMemoryRecord<TJson> {\n\t\t\treturn recordFromFrame(frameCodec.decode(bytes));\n\t\t},\n\t};\n}\n\n/**\n * D167 solution-level retention command projection.\n *\n * Archive/restore/setPersistenceLevel are derived views over current records;\n * requestConsolidation emits request facts only.\n */\nexport function agenticMemoryRetentionBundle<T = unknown>(\n\tgraph: Graph,\n\topts: AgenticMemoryRetentionBundleOptions<T>,\n): AgenticMemoryRetentionBundle<T> {\n\tconst name = opts.name ?? \"agenticMemoryRetention\";\n\tconst projection = graph.node<AgenticMemoryRetentionSnapshot<T>>(\n\t\t[opts.records, opts.commands],\n\t\t(ctx) => {\n\t\t\tconst state =\n\t\t\t\tctx.state.get<{ evaluation: number }>() ??\n\t\t\t\t({ evaluation: 0 } satisfies { evaluation: number });\n\t\t\tstate.evaluation += 1;\n\t\t\tconst recordProjection = validateAndProjectRecords<T>(depLatest(ctx, 0));\n\t\t\tconst retention = projectRetention<T>(depLatest(ctx, 1), recordProjection.records);\n\t\t\tconst cursor: AgenticMemoryRetentionCursor = Object.freeze({\n\t\t\t\tevaluation: state.evaluation,\n\t\t\t\tvalidRecords: recordProjection.records.length,\n\t\t\t\tvalidCommands: retention.validCommands,\n\t\t\t\tinvalidCommands: retention.invalidCommands,\n\t\t\t\tactiveRecords: retention.activeRecords.length,\n\t\t\t\tarchivedRecords: retention.archivedRecords.length,\n\t\t\t\tconsolidationRequests: retention.consolidationRequests.length,\n\t\t\t});\n\t\t\tconst errors = Object.freeze(\n\t\t\t\t[...recordProjection.errors.map(retentionErrorFromRecordError), ...retention.errors].map(\n\t\t\t\t\t(error) => freezeError({ ...error, cursor }),\n\t\t\t\t),\n\t\t\t);\n\t\t\tconst status: AgenticMemoryRetentionStatus = Object.freeze({\n\t\t\t\tstate: agenticStatusState(errors.length, recordProjection.records.length),\n\t\t\t\tcursor,\n\t\t\t});\n\t\t\tctx.state.set(state);\n\t\t\tctx.down([\n\t\t\t\t[\n\t\t\t\t\t\"DATA\",\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\tactiveRecords: Object.freeze(retention.activeRecords),\n\t\t\t\t\t\tarchivedRecords: Object.freeze(retention.archivedRecords),\n\t\t\t\t\t\tconsolidationRequests: Object.freeze(retention.consolidationRequests),\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t\terrors,\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t]);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/projection`,\n\t\t\tfactory: \"agenticMemoryRetention\",\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tinput: { records: opts.records, commands: opts.commands },\n\t\tprojection,\n\t\tactiveRecords: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/activeRecords`,\n\t\t\t\"agenticMemoryRetentionActiveRecords\",\n\t\t\t(fact) => fact.activeRecords,\n\t\t),\n\t\tarchivedRecords: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/archivedRecords`,\n\t\t\t\"agenticMemoryRetentionArchivedRecords\",\n\t\t\t(fact) => fact.archivedRecords,\n\t\t),\n\t\tconsolidationRequests: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/consolidationRequests`,\n\t\t\t\"agenticMemoryRetentionConsolidationRequests\",\n\t\t\t(fact) => fact.consolidationRequests,\n\t\t),\n\t\tstatus: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/status`,\n\t\t\t\"agenticMemoryRetentionStatus\",\n\t\t\t(fact) => fact.status,\n\t\t),\n\t\terrors: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/errors`,\n\t\t\t\"agenticMemoryRetentionErrors\",\n\t\t\t(fact) => fact.errors,\n\t\t),\n\t\tcursor: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/cursor`,\n\t\t\t\"agenticMemoryRetentionCursor\",\n\t\t\t(fact) => fact.cursor,\n\t\t),\n\t};\n}\n\n/**\n * D171 consolidation outcome projection.\n *\n * The bundle does not execute consolidation. External adapters may publish\n * outcome facts, and this projection turns them into visible result/proposal\n * facts for downstream record-creation policy.\n */\nexport function agenticMemoryConsolidationBundle<T = unknown>(\n\tgraph: Graph,\n\topts: AgenticMemoryConsolidationBundleOptions<T>,\n): AgenticMemoryConsolidationBundle<T> {\n\tconst name = opts.name ?? \"agenticMemoryConsolidation\";\n\tconst projection = graph.node<AgenticMemoryConsolidationSnapshot<T>>(\n\t\t[opts.records, opts.requests, opts.outcomes],\n\t\t(ctx) => {\n\t\t\tconst state =\n\t\t\t\tctx.state.get<{ evaluation: number }>() ??\n\t\t\t\t({ evaluation: 0 } satisfies { evaluation: number });\n\t\t\tstate.evaluation += 1;\n\t\t\tconst recordProjection = validateAndProjectRecords<T>(depLatest(ctx, 0));\n\t\t\tconst requests = validateConsolidationRequests(depLatest(ctx, 1), recordProjection.records);\n\t\t\tconst outcomes = projectConsolidationOutcomes<T>(\n\t\t\t\tdepLatest(ctx, 2),\n\t\t\t\trequests.requests,\n\t\t\t\tstate.evaluation,\n\t\t\t);\n\t\t\tconst cursor: AgenticMemoryConsolidationCursor = Object.freeze({\n\t\t\t\tevaluation: state.evaluation,\n\t\t\t\tvalidRequests: requests.requests.length,\n\t\t\t\tvalidOutcomes: outcomes.validOutcomes,\n\t\t\t\tinvalidOutcomes: outcomes.invalidOutcomes,\n\t\t\t\tresults: outcomes.results.length,\n\t\t\t\tproposedRecordDrafts: outcomes.proposedRecordDrafts.length,\n\t\t\t});\n\t\t\tconst errors = Object.freeze(\n\t\t\t\t[\n\t\t\t\t\t...recordProjection.errors.map(consolidationErrorFromRecordError),\n\t\t\t\t\t...requests.errors.map(consolidationErrorFromRetentionError),\n\t\t\t\t\t...outcomes.errors,\n\t\t\t\t].map((error) => freezeError({ ...error, cursor })),\n\t\t\t);\n\t\t\tconst status: AgenticMemoryConsolidationStatus = Object.freeze({\n\t\t\t\tstate: agenticStatusState(errors.length, outcomes.results.length),\n\t\t\t\tcursor,\n\t\t\t});\n\t\t\tctx.state.set(state);\n\t\t\tctx.down([\n\t\t\t\t[\n\t\t\t\t\t\"DATA\",\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\tresults: Object.freeze(outcomes.results),\n\t\t\t\t\t\tproposedRecordDrafts: Object.freeze(outcomes.proposedRecordDrafts),\n\t\t\t\t\t\tcommands: Object.freeze(outcomes.commands),\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t\terrors,\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t]);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/projection`,\n\t\t\tfactory: \"agenticMemoryConsolidation\",\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tinput: { records: opts.records, requests: opts.requests, outcomes: opts.outcomes },\n\t\tprojection,\n\t\tresults: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/results`,\n\t\t\t\"agenticMemoryConsolidationResults\",\n\t\t\t(fact) => fact.results,\n\t\t),\n\t\tproposedRecordDrafts: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/proposedRecordDrafts`,\n\t\t\t\"agenticMemoryConsolidationRecordDrafts\",\n\t\t\t(fact) => fact.proposedRecordDrafts,\n\t\t),\n\t\tcommands: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/commands`,\n\t\t\t\"agenticMemoryConsolidationCommands\",\n\t\t\t(fact) => fact.commands,\n\t\t),\n\t\tstatus: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/status`,\n\t\t\t\"agenticMemoryConsolidationStatus\",\n\t\t\t(fact) => fact.status,\n\t\t),\n\t\terrors: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/errors`,\n\t\t\t\"agenticMemoryConsolidationErrors\",\n\t\t\t(fact) => fact.errors,\n\t\t),\n\t\tcursor: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/cursor`,\n\t\t\t\"agenticMemoryConsolidationCursor\",\n\t\t\t(fact) => fact.cursor,\n\t\t),\n\t};\n}\n\n/** D168 deterministic context-packing bundle over explicit context text facts. */\nexport function agenticMemoryContextPackingBundle<T = unknown>(\n\tgraph: Graph,\n\topts: AgenticMemoryContextPackingBundleOptions<T>,\n): AgenticMemoryContextPackingBundle<T> {\n\tconst name = opts.name ?? \"agenticMemoryContextPacking\";\n\tconst projection = graph.node<AgenticMemoryContextPackingSnapshot>(\n\t\t[opts.context, opts.texts, opts.policy],\n\t\t(ctx) => {\n\t\t\tconst state =\n\t\t\t\tctx.state.get<{ evaluation: number }>() ??\n\t\t\t\t({ evaluation: 0 } satisfies { evaluation: number });\n\t\t\tstate.evaluation += 1;\n\t\t\tconst packed = packContext(\n\t\t\t\tdepLatest(ctx, 0),\n\t\t\t\tdepLatest(ctx, 1),\n\t\t\t\tdepLatest(ctx, 2),\n\t\t\t\tstate.evaluation,\n\t\t\t);\n\t\t\tctx.state.set(state);\n\t\t\tctx.down([[\"DATA\", packed]]);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/projection`,\n\t\t\tfactory: \"agenticMemoryContextPacking\",\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tinput: { context: opts.context, texts: opts.texts, policy: opts.policy },\n\t\tprojection,\n\t\tpackedContext: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/packedContext`,\n\t\t\t\"agenticMemoryPackedContext\",\n\t\t\t(fact) => fact.packedContext,\n\t\t),\n\t\tstatus: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/status`,\n\t\t\t\"agenticMemoryContextPackingStatus\",\n\t\t\t(fact) => fact.status,\n\t\t),\n\t\terrors: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/errors`,\n\t\t\t\"agenticMemoryContextPackingErrors\",\n\t\t\t(fact) => fact.errors,\n\t\t),\n\t\tcursor: solutionProjection(\n\t\t\tgraph,\n\t\t\tprojection,\n\t\t\t`${name}/cursor`,\n\t\t\t\"agenticMemoryContextPackingCursor\",\n\t\t\t(fact) => fact.cursor,\n\t\t),\n\t};\n}\n\nfunction solutionProjection<TFact, TSnapshot>(\n\tgraph: Graph,\n\tsnapshot: Node<TSnapshot>,\n\tname: string,\n\tfactory: string,\n\tselect: (fact: TSnapshot) => TFact,\n): Node<TFact> {\n\treturn graph.node<TFact>(\n\t\t[snapshot],\n\t\t(ctx) => {\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tctx.down([[\"DATA\", select(raw as TSnapshot)]]);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname,\n\t\t\tfactory,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n}\n\nfunction agenticMemoryProjection<TFact, T>(\n\tgraph: Graph,\n\tsnapshot: Node<AgenticMemoryProjectionSnapshot<T>>,\n\tname: string,\n\tfactory: string,\n\tselect: (fact: AgenticMemoryProjectionSnapshot<T>) => TFact,\n): Node<TFact> {\n\treturn graph.node<TFact>(\n\t\t[snapshot],\n\t\t(ctx) => {\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tctx.down([[\"DATA\", select(raw as AgenticMemoryProjectionSnapshot<T>)]]);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname,\n\t\t\tfactory,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n}\n\nfunction agenticMemoryContextProjection<T>(\n\tgraph: Graph,\n\tprojection: Node<AgenticMemoryProjectionSnapshot<T>>,\n\tretrieval: Node<MemoryRetrievalSnapshot<T>>,\n\tname: string,\n): Node<AgenticMemoryContext<T>> {\n\treturn graph.node<AgenticMemoryContext<T>>(\n\t\t[projection, retrieval],\n\t\t(ctx) => {\n\t\t\tconst projectionFact = depLatest(ctx, 0) as AgenticMemoryProjectionSnapshot<T> | undefined;\n\t\t\tconst retrievalFacts = depBatch(ctx, 1) ?? [];\n\t\t\tif (projectionFact === undefined || retrievalFacts.length === 0) return;\n\t\t\tfor (const raw of retrievalFacts) {\n\t\t\t\tctx.down([\n\t\t\t\t\t[\"DATA\", contextFromSnapshot(projectionFact, raw as MemoryRetrievalSnapshot<T>)],\n\t\t\t\t]);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname,\n\t\t\tfactory: \"agenticMemoryContext\",\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n}\n\nfunction contextFromSnapshot<T>(\n\tprojection: AgenticMemoryProjectionSnapshot<T>,\n\tretrieval: MemoryRetrievalSnapshot<T>,\n): AgenticMemoryContext<T> {\n\tconst entries = retrieval.ranked.results.map((fragment) =>\n\t\tObject.freeze({\n\t\t\tfragmentId: fragment.id,\n\t\t\tpayload: fragment.payload,\n\t\t\tconfidence: fragment.confidence,\n\t\t\ttags: fragment.tags,\n\t\t\tsources: fragment.sources,\n\t\t\t...(projection.metadataByFragmentId[fragment.id] === undefined\n\t\t\t\t? {}\n\t\t\t\t: { record: projection.metadataByFragmentId[fragment.id] }),\n\t\t\tfragment,\n\t\t}),\n\t);\n\tconst hasContext = entries.length > 0;\n\tconst state = contextState(projection.status.state, retrieval.status.state);\n\treturn Object.freeze({\n\t\tstate,\n\t\tquery: retrieval.ranked.query,\n\t\tentries: Object.freeze(entries),\n\t\tcursor: retrieval.cursor,\n\t\terrors: projection.errors,\n\t\tretrievalErrors: retrieval.errors,\n\t\tcontextReady: hasContext && (state === \"ready\" || state === \"partial\"),\n\t});\n}\n\nfunction agenticMemoryRecordProjection<T>(\n\tgraph: Graph,\n\trecords: Node<readonly AgenticMemoryRecord<T>[]>,\n\tname: string,\n): Node<AgenticMemoryProjectionSnapshot<T>> {\n\treturn graph.node<AgenticMemoryProjectionSnapshot<T>>(\n\t\t[records],\n\t\t(ctx) => {\n\t\t\tconst state =\n\t\t\t\tctx.state.get<{ evaluation: number }>() ??\n\t\t\t\t({ evaluation: 0 } satisfies { evaluation: number });\n\t\t\tstate.evaluation += 1;\n\t\t\tconst rawRecords = (depBatch(ctx, 0) ?? []).at(-1);\n\t\t\tconst projected = validateAndProjectRecords<T>(rawRecords);\n\t\t\tconst cursor: AgenticMemoryProjectionCursor = Object.freeze({\n\t\t\t\tevaluation: state.evaluation,\n\t\t\t\tvalidRecords: projected.records.length,\n\t\t\t\tinvalidRecords: projected.invalidRecordIndexes.size,\n\t\t\t\tprojectedFragments: projected.fragments.length,\n\t\t\t});\n\t\t\tconst status: AgenticMemoryStatus = Object.freeze({\n\t\t\t\tstate: agenticStatusState(projected.errors.length, projected.records.length),\n\t\t\t\tcursor,\n\t\t\t});\n\t\t\tconst errors = Object.freeze(\n\t\t\t\tprojected.errors.map((error) =>\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\t...error,\n\t\t\t\t\t\t...(error.validationErrors === undefined\n\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t: { validationErrors: Object.freeze([...error.validationErrors]) }),\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t);\n\t\t\tctx.state.set(state);\n\t\t\tctx.down([\n\t\t\t\t[\n\t\t\t\t\t\"DATA\",\n\t\t\t\t\tObject.freeze({\n\t\t\t\t\t\trecords: Object.freeze(projected.records),\n\t\t\t\t\t\tfragments: Object.freeze(projected.fragments),\n\t\t\t\t\t\tmetadataByFragmentId: Object.freeze(projected.metadataByFragmentId),\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t\terrors,\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t]);\n\t\t},\n\t\t{\n\t\t\tname,\n\t\t\tfactory: \"agenticMemoryProjection\",\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n}\n\nfunction validateAndProjectKgDrafts(\n\tvalue: unknown,\n\trecords: readonly AgenticMemoryRecord[],\n): {\n\treadonly assertions: KnowledgeAssertion[];\n\treadonly errors: Omit<AgenticMemoryKgProjectionError, \"cursor\">[];\n\treadonly invalidDrafts: number;\n} {\n\tconst assertions: KnowledgeAssertion[] = [];\n\tconst errors: Omit<AgenticMemoryKgProjectionError, \"cursor\">[] = [];\n\tlet invalidDrafts = 0;\n\tif (!Array.isArray(value)) {\n\t\treturn {\n\t\t\tassertions,\n\t\t\tinvalidDrafts: 1,\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-drafts-input\",\n\t\t\t\t\tmessage: \"agenticMemoryKgProjectionBundle: drafts input must be an array\",\n\t\t\t\t\tdraft: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst length = safeArrayLength(value);\n\tif (length === undefined) {\n\t\treturn {\n\t\t\tassertions,\n\t\t\tinvalidDrafts: 1,\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-drafts-input\",\n\t\t\t\t\tmessage: \"agenticMemoryKgProjectionBundle: drafts input length could not be read\",\n\t\t\t\t\tdraft: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst recordById = new Map(records.map((record) => [record.id, record]));\n\tconst fragmentToRecord = new Map(records.map((record) => [record.fragment.id, record.id]));\n\tconst seenAssertions = new Set<FactId>();\n\tfor (let i = 0; i < length; i += 1) {\n\t\tlet raw: unknown;\n\t\ttry {\n\t\t\traw = value[i];\n\t\t\tconst result = validateKgDraft(raw, i);\n\t\t\tif (result.errors.length > 0 || result.draft === undefined) {\n\t\t\t\tinvalidDrafts += 1;\n\t\t\t\terrors.push(...result.errors);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst draft = result.draft;\n\t\t\tif (seenAssertions.has(draft.id)) {\n\t\t\t\tinvalidDrafts += 1;\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"duplicate-assertion-id\",\n\t\t\t\t\tmessage: \"agenticMemoryKgProjectionBundle: duplicate assertion id\",\n\t\t\t\t\tindex: i,\n\t\t\t\t\tassertionId: draft.id,\n\t\t\t\t\trecordId: draft.recordId,\n\t\t\t\t\tfragmentId: draft.fragmentId,\n\t\t\t\t\tdraft: raw,\n\t\t\t\t\tvalidationErrors: [`duplicate assertion id '${draft.id}'`],\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst record = recordById.get(draft.recordId);\n\t\t\tif (record === undefined) {\n\t\t\t\tinvalidDrafts += 1;\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"missing-record-ref\",\n\t\t\t\t\tmessage: \"agenticMemoryKgProjectionBundle: draft references a missing record\",\n\t\t\t\t\tindex: i,\n\t\t\t\t\tassertionId: draft.id,\n\t\t\t\t\trecordId: draft.recordId,\n\t\t\t\t\tfragmentId: draft.fragmentId,\n\t\t\t\t\tdraft: raw,\n\t\t\t\t\tvalidationErrors: [`record '${draft.recordId}' is not projected`],\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst owner = fragmentToRecord.get(draft.fragmentId);\n\t\t\tif (owner === undefined) {\n\t\t\t\tinvalidDrafts += 1;\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"missing-fragment-ref\",\n\t\t\t\t\tmessage: \"agenticMemoryKgProjectionBundle: draft references a missing fragment\",\n\t\t\t\t\tindex: i,\n\t\t\t\t\tassertionId: draft.id,\n\t\t\t\t\trecordId: draft.recordId,\n\t\t\t\t\tfragmentId: draft.fragmentId,\n\t\t\t\t\tdraft: raw,\n\t\t\t\t\tvalidationErrors: [`fragment '${draft.fragmentId}' is not projected`],\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (owner !== draft.recordId || record.fragment.id !== draft.fragmentId) {\n\t\t\t\tinvalidDrafts += 1;\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"fragment-record-mismatch\",\n\t\t\t\t\tmessage: \"agenticMemoryKgProjectionBundle: draft record and fragment refs disagree\",\n\t\t\t\t\tindex: i,\n\t\t\t\t\tassertionId: draft.id,\n\t\t\t\t\trecordId: draft.recordId,\n\t\t\t\t\tfragmentId: draft.fragmentId,\n\t\t\t\t\tdraft: raw,\n\t\t\t\t\tvalidationErrors: [\n\t\t\t\t\t\t`fragment '${draft.fragmentId}' belongs to record '${owner}', not '${draft.recordId}'`,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenAssertions.add(draft.id);\n\t\t\tassertions.push(\n\t\t\t\tObject.freeze({\n\t\t\t\t\tid: draft.id,\n\t\t\t\t\trecordId: draft.recordId,\n\t\t\t\t\tfragmentId: draft.fragmentId,\n\t\t\t\t\tsubject: draft.subject,\n\t\t\t\t\tpredicate: draft.predicate,\n\t\t\t\t\tobject: draft.object,\n\t\t\t\t\t...(draft.confidence === undefined ? {} : { confidence: draft.confidence }),\n\t\t\t\t\tsources: Object.freeze(draft.sources ?? [draft.fragmentId]),\n\t\t\t\t\t...(draft.provenance === undefined ? {} : { provenance: draft.provenance }),\n\t\t\t\t}),\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tinvalidDrafts += 1;\n\t\t\terrors.push({\n\t\t\t\tcode: \"invalid-draft\",\n\t\t\t\tmessage: `agenticMemoryKgProjectionBundle: draft access failed: ${errorMessage(error)}`,\n\t\t\t\tindex: i,\n\t\t\t\tdraft: raw,\n\t\t\t\tvalidationErrors: [\"draft access failed\"],\n\t\t\t});\n\t\t}\n\t}\n\treturn { assertions, errors, invalidDrafts };\n}\n\nfunction validateKgDraft(\n\tvalue: unknown,\n\tindex: number,\n): {\n\treadonly draft?: AgenticMemoryKgAssertionDraft;\n\treadonly errors: Omit<AgenticMemoryKgProjectionError, \"cursor\">[];\n} {\n\tconst errors: Omit<AgenticMemoryKgProjectionError, \"cursor\">[] = [];\n\tif (!isPlainRecord(value)) {\n\t\treturn {\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-draft\",\n\t\t\t\t\tmessage: \"agenticMemoryKgProjectionBundle: draft must be an object\",\n\t\t\t\t\tindex,\n\t\t\t\t\tdraft: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst raw = value as Partial<AgenticMemoryKgAssertionDraft>;\n\tconst id = typeof raw.id === \"string\" && raw.id.length > 0 ? raw.id : undefined;\n\tconst recordId =\n\t\ttypeof raw.recordId === \"string\" && raw.recordId.length > 0 ? raw.recordId : undefined;\n\tconst fragmentId =\n\t\ttypeof raw.fragmentId === \"string\" && raw.fragmentId.length > 0 ? raw.fragmentId : undefined;\n\tconst subject = validateAssertionSubject(raw.subject);\n\tconst object = validateAssertionObject(raw.object);\n\tconst shapeErrors: string[] = [];\n\tif (id === undefined) shapeErrors.push(\"draft.id must be a non-empty string\");\n\tif (recordId === undefined) {\n\t\tshapeErrors.push(\"draft.recordId must be a non-empty string\");\n\t}\n\tif (fragmentId === undefined) {\n\t\tshapeErrors.push(\"draft.fragmentId must be a non-empty string\");\n\t}\n\tshapeErrors.push(...subject.errors);\n\tif (typeof raw.predicate !== \"string\" || raw.predicate.length === 0) {\n\t\tshapeErrors.push(\"draft.predicate must be a non-empty string\");\n\t}\n\tshapeErrors.push(...object.errors);\n\tif (\n\t\traw.confidence !== undefined &&\n\t\t(!Number.isFinite(raw.confidence) || raw.confidence < 0 || raw.confidence > 1)\n\t) {\n\t\tshapeErrors.push(\"draft.confidence must be a finite number in [0, 1]\");\n\t}\n\tif (raw.sources !== undefined && !isDenseArrayOf(raw.sources, isNonEmptyString)) {\n\t\tshapeErrors.push(\"draft.sources must be a readonly string array\");\n\t}\n\tif (raw.provenance !== undefined && typeof raw.provenance !== \"string\") {\n\t\tshapeErrors.push(\"draft.provenance must be a string when present\");\n\t}\n\tif (shapeErrors.length > 0) errors.push(kgShapeError(index, value, ...shapeErrors));\n\tif (errors.length > 0 || id === undefined || recordId === undefined || fragmentId === undefined) {\n\t\treturn { errors };\n\t}\n\treturn {\n\t\tdraft: Object.freeze({\n\t\t\tid,\n\t\t\trecordId,\n\t\t\tfragmentId,\n\t\t\tsubject: subject.subject as KnowledgeAssertionSubject,\n\t\t\tpredicate: raw.predicate as string,\n\t\t\tobject: object.object as KnowledgeAssertionObject,\n\t\t\t...(raw.confidence === undefined ? {} : { confidence: raw.confidence }),\n\t\t\t...(raw.sources === undefined ? {} : { sources: Object.freeze([...raw.sources]) }),\n\t\t\t...(raw.provenance === undefined ? {} : { provenance: raw.provenance }),\n\t\t}),\n\t\terrors,\n\t};\n}\n\nfunction validateAssertionSubject(value: unknown): {\n\treadonly subject?: KnowledgeAssertionSubject;\n\treadonly errors: readonly string[];\n} {\n\tif (!isPlainRecord(value)) return { errors: [\"subject must be an object\"] };\n\tconst id = value.id;\n\tconst type = value.type;\n\tconst errors: string[] = [];\n\tif (typeof id !== \"string\" || id.length === 0) errors.push(\"subject.id must be non-empty\");\n\tif (type !== undefined && (typeof type !== \"string\" || type.length === 0)) {\n\t\terrors.push(\"subject.type must be a non-empty string when present\");\n\t}\n\tif (errors.length > 0) return { errors };\n\treturn {\n\t\tsubject: Object.freeze({\n\t\t\tid: id as string,\n\t\t\t...(type === undefined ? {} : { type: type as string }),\n\t\t}),\n\t\terrors,\n\t};\n}\n\nfunction validateAssertionObject(value: unknown): {\n\treadonly object?: KnowledgeAssertionObject;\n\treadonly errors: readonly string[];\n} {\n\tif (!isPlainRecord(value)) return { errors: [\"object must be an object\"] };\n\tconst kind = value.kind;\n\tconst errors: string[] = [];\n\tif (kind === \"entity\") {\n\t\tif (typeof value.id !== \"string\" || value.id.length === 0) {\n\t\t\terrors.push(\"object.id must be non-empty for entity objects\");\n\t\t}\n\t\tif (value.type !== undefined && (typeof value.type !== \"string\" || value.type.length === 0)) {\n\t\t\terrors.push(\"object.type must be a non-empty string when present\");\n\t\t}\n\t\tif (Object.hasOwn(value, \"value\")) errors.push(\"entity object must not include value\");\n\t\tif (errors.length > 0) return { errors };\n\t\treturn {\n\t\t\tobject: Object.freeze({\n\t\t\t\tkind: \"entity\",\n\t\t\t\tid: value.id as string,\n\t\t\t\t...(value.type === undefined ? {} : { type: value.type as string }),\n\t\t\t}),\n\t\t\terrors,\n\t\t};\n\t}\n\tif (kind === \"value\") {\n\t\tif (!Object.hasOwn(value, \"value\")) errors.push(\"value object must include value\");\n\t\telse {\n\t\t\ttry {\n\t\t\t\tassertStrictJsonValue(value.value, \"object.value\");\n\t\t\t} catch (error) {\n\t\t\t\terrors.push(errorMessage(error));\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tvalue.valueType !== undefined &&\n\t\t\t(typeof value.valueType !== \"string\" || value.valueType.length === 0)\n\t\t) {\n\t\t\terrors.push(\"object.valueType must be a non-empty string when present\");\n\t\t}\n\t\tif (Object.hasOwn(value, \"id\")) errors.push(\"value object must not include id\");\n\t\tif (errors.length > 0) return { errors };\n\t\treturn {\n\t\t\tobject: Object.freeze({\n\t\t\t\tkind: \"value\",\n\t\t\t\tvalue: value.value as StrictJsonValue,\n\t\t\t\t...(value.valueType === undefined ? {} : { valueType: value.valueType as string }),\n\t\t\t}),\n\t\t\terrors,\n\t\t};\n\t}\n\treturn { errors: [\"object.kind must be entity or value\"] };\n}\n\nfunction kgShapeError(\n\tindex: number,\n\tdraft: unknown,\n\t...validationErrors: readonly string[]\n): Omit<AgenticMemoryKgProjectionError, \"cursor\"> {\n\treturn {\n\t\tcode: \"invalid-assertion-shape\",\n\t\tmessage: \"agenticMemoryKgProjectionBundle: draft assertion shape is invalid\",\n\t\tindex,\n\t\tdraft,\n\t\tvalidationErrors: Object.freeze([...validationErrors]),\n\t};\n}\n\nfunction kgErrorFromRecordError(\n\terror: Omit<AgenticMemoryError, \"cursor\">,\n): Omit<AgenticMemoryKgProjectionError, \"cursor\"> {\n\treturn {\n\t\t...error,\n\t\tcode: error.code,\n\t};\n}\n\nfunction fragmentFrame<TJson extends StrictJsonValue>(\n\tfragment: MemoryFragment<TJson>,\n): AgenticMemoryFragmentFrame<TJson> {\n\treturn Object.freeze({\n\t\tid: fragment.id,\n\t\tpayload: fragment.payload,\n\t\ttNs: decimalBigIntString(fragment.tNs, \"fragment.tNs\"),\n\t\t...(fragment.validFrom === undefined\n\t\t\t? {}\n\t\t\t: { validFrom: decimalBigIntString(fragment.validFrom, \"fragment.validFrom\") }),\n\t\t...(fragment.validTo === undefined\n\t\t\t? {}\n\t\t\t: { validTo: decimalBigIntString(fragment.validTo, \"fragment.validTo\") }),\n\t\tconfidence: fragment.confidence,\n\t\ttags: Object.freeze([...fragment.tags]),\n\t\tsources: Object.freeze([...fragment.sources]),\n\t\t...(fragment.embedding === undefined\n\t\t\t? {}\n\t\t\t: { embedding: Object.freeze([...fragment.embedding]) }),\n\t\t...(fragment.parentFragmentId === undefined\n\t\t\t? {}\n\t\t\t: { parentFragmentId: fragment.parentFragmentId }),\n\t\t...(fragment.provenance === undefined ? {} : { provenance: fragment.provenance }),\n\t});\n}\n\nfunction recordFromFrame<TJson extends StrictJsonValue>(\n\tframe: AgenticMemoryRecordFrame<TJson>,\n): AgenticMemoryRecord<TJson> {\n\tconst fragment = frame.record.fragment;\n\tconst record: AgenticMemoryRecord<TJson> = {\n\t\tid: assertNonEmptyString(frame.record.id, \"record.id\"),\n\t\tkind: assertKindValue(frame.record.kind),\n\t\tpersistenceLevel: assertPersistenceLevelValue(frame.record.persistenceLevel),\n\t\tartifactKind: assertArtifactKindValue(frame.record.artifactKind),\n\t\t...(frame.record.scope === undefined ? {} : { scope: assertScopeFrame(frame.record.scope) }),\n\t\tfragment: {\n\t\t\tid: assertNonEmptyString(fragment.id, \"fragment.id\"),\n\t\t\tpayload: assertStrictJsonValue(fragment.payload, \"fragment.payload\") as TJson,\n\t\t\ttNs: parseDecimalBigInt(fragment.tNs, \"fragment.tNs\"),\n\t\t\t...(fragment.validFrom === undefined\n\t\t\t\t? {}\n\t\t\t\t: { validFrom: parseDecimalBigInt(fragment.validFrom, \"fragment.validFrom\") }),\n\t\t\t...(fragment.validTo === undefined\n\t\t\t\t? {}\n\t\t\t\t: { validTo: parseDecimalBigInt(fragment.validTo, \"fragment.validTo\") }),\n\t\t\tconfidence: assertConfidence(fragment.confidence, \"fragment.confidence\"),\n\t\t\ttags: assertStringArray(fragment.tags, \"fragment.tags\"),\n\t\t\tsources: assertStringArray(fragment.sources, \"fragment.sources\"),\n\t\t\t...(fragment.embedding === undefined\n\t\t\t\t? {}\n\t\t\t\t: { embedding: assertFiniteNumberArray(fragment.embedding, \"fragment.embedding\") }),\n\t\t\t...(fragment.parentFragmentId === undefined\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\tparentFragmentId: assertNonEmptyString(fragment.parentFragmentId, \"parentFragmentId\"),\n\t\t\t\t\t}),\n\t\t\t...(fragment.provenance === undefined\n\t\t\t\t? {}\n\t\t\t\t: { provenance: assertString(fragment.provenance, \"provenance\") }),\n\t\t},\n\t};\n\tconst result = validateAndSnapshotRecord<TJson>(record, 0);\n\tif (result.errors.length > 0 || result.record === undefined) {\n\t\tthrow new TypeError(\n\t\t\t`agenticMemoryRecordFrame: decoded record is invalid: ${result.errors\n\t\t\t\t.flatMap((error) => error.validationErrors ?? [error.message])\n\t\t\t\t.join(\"; \")}`,\n\t\t);\n\t}\n\treturn result.record;\n}\n\nfunction projectRetention<T>(\n\tvalue: unknown,\n\trecords: readonly AgenticMemoryRecord<T>[],\n): {\n\treadonly activeRecords: AgenticMemoryRecord<T>[];\n\treadonly archivedRecords: AgenticMemoryRecord<T>[];\n\treadonly consolidationRequests: AgenticMemoryConsolidationRequest[];\n\treadonly errors: Omit<AgenticMemoryRetentionError, \"cursor\">[];\n\treadonly validCommands: number;\n\treadonly invalidCommands: number;\n} {\n\tconst byId = new Map(records.map((record) => [record.id, record]));\n\tconst view = new Map(records.map((record) => [record.id, record]));\n\tconst requests: AgenticMemoryConsolidationRequest[] = [];\n\tconst errors: Omit<AgenticMemoryRetentionError, \"cursor\">[] = [];\n\tlet validCommands = 0;\n\tlet invalidCommands = 0;\n\tif (!Array.isArray(value)) {\n\t\treturn {\n\t\t\tactiveRecords: records.filter((record) => record.persistenceLevel !== \"archived\"),\n\t\t\tarchivedRecords: records.filter((record) => record.persistenceLevel === \"archived\"),\n\t\t\tconsolidationRequests: requests,\n\t\t\tvalidCommands,\n\t\t\tinvalidCommands: 1,\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-commands-input\",\n\t\t\t\t\tmessage: \"agenticMemoryRetentionBundle: commands input must be an array\",\n\t\t\t\t\tcommand: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst length = safeArrayLength(value);\n\tif (length === undefined) {\n\t\treturn {\n\t\t\tactiveRecords: records.filter((record) => record.persistenceLevel !== \"archived\"),\n\t\t\tarchivedRecords: records.filter((record) => record.persistenceLevel === \"archived\"),\n\t\t\tconsolidationRequests: requests,\n\t\t\tvalidCommands,\n\t\t\tinvalidCommands: 1,\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-commands-input\",\n\t\t\t\t\tmessage: \"agenticMemoryRetentionBundle: commands input length could not be read\",\n\t\t\t\t\tcommand: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst seenCommands = new Set<FactId>();\n\tfor (let i = 0; i < length; i += 1) {\n\t\tlet raw: unknown;\n\t\ttry {\n\t\t\traw = value[i];\n\t\t\tconst result = validateRetentionCommand(raw, i);\n\t\t\tif (result.errors.length > 0 || result.command === undefined) {\n\t\t\t\tinvalidCommands += 1;\n\t\t\t\terrors.push(...result.errors);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst command = result.command;\n\t\t\tif (seenCommands.has(command.id)) {\n\t\t\t\tinvalidCommands += 1;\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"duplicate-command-id\",\n\t\t\t\t\tmessage: \"agenticMemoryRetentionBundle: duplicate command id\",\n\t\t\t\t\tindex: i,\n\t\t\t\t\tcommandId: command.id,\n\t\t\t\t\tcommand: raw,\n\t\t\t\t\tvalidationErrors: [`duplicate command id '${command.id}'`],\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst missing = retentionMissingRecords(command, byId);\n\t\t\tif (missing.length > 0) {\n\t\t\t\tinvalidCommands += 1;\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"missing-record-ref\",\n\t\t\t\t\tmessage: \"agenticMemoryRetentionBundle: command references missing records\",\n\t\t\t\t\tindex: i,\n\t\t\t\t\tcommandId: command.id,\n\t\t\t\t\trecordId: \"recordId\" in command ? command.recordId : undefined,\n\t\t\t\t\trecordIds: Object.freeze(missing),\n\t\t\t\t\tcommand: raw,\n\t\t\t\t\tvalidationErrors: Object.freeze(missing.map((id) => `record '${id}' is not projected`)),\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenCommands.add(command.id);\n\t\t\tvalidCommands += 1;\n\t\t\tapplyRetentionCommand(command, byId, view, requests);\n\t\t} catch (error) {\n\t\t\tinvalidCommands += 1;\n\t\t\terrors.push({\n\t\t\t\tcode: \"invalid-command\",\n\t\t\t\tmessage: `agenticMemoryRetentionBundle: command access failed: ${errorMessage(error)}`,\n\t\t\t\tindex: i,\n\t\t\t\tcommand: raw,\n\t\t\t\tvalidationErrors: [\"command access failed\"],\n\t\t\t});\n\t\t}\n\t}\n\tconst projected = records.map((record) => view.get(record.id) ?? record);\n\treturn {\n\t\tactiveRecords: projected.filter((record) => record.persistenceLevel !== \"archived\"),\n\t\tarchivedRecords: projected.filter((record) => record.persistenceLevel === \"archived\"),\n\t\tconsolidationRequests: requests,\n\t\terrors,\n\t\tvalidCommands,\n\t\tinvalidCommands,\n\t};\n}\n\nfunction validateRetentionCommand(\n\tvalue: unknown,\n\tindex: number,\n): {\n\treadonly command?: AgenticMemoryRetentionCommand;\n\treadonly errors: Omit<AgenticMemoryRetentionError, \"cursor\">[];\n} {\n\tif (!isPlainRecord(value)) {\n\t\treturn {\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-command\",\n\t\t\t\t\tmessage: \"agenticMemoryRetentionBundle: command must be an object\",\n\t\t\t\t\tindex,\n\t\t\t\t\tcommand: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst id = typeof value.id === \"string\" && value.id.length > 0 ? value.id : undefined;\n\tconst kind = value.kind;\n\tconst errors: string[] = [];\n\tif (id === undefined) errors.push(\"command.id must be a non-empty string\");\n\tif (\n\t\tkind !== \"archive\" &&\n\t\tkind !== \"restore\" &&\n\t\tkind !== \"setPersistenceLevel\" &&\n\t\tkind !== \"requestConsolidation\"\n\t) {\n\t\terrors.push(\"command.kind is invalid\");\n\t}\n\tif (value.reason !== undefined && typeof value.reason !== \"string\") {\n\t\terrors.push(\"command.reason must be a string when present\");\n\t}\n\tif (kind === \"archive\") {\n\t\tif (!isNonEmptyString(value.recordId)) errors.push(\"command.recordId must be non-empty\");\n\t} else if (kind === \"restore\") {\n\t\tif (!isNonEmptyString(value.recordId)) errors.push(\"command.recordId must be non-empty\");\n\t\tif (\n\t\t\tvalue.persistenceLevel !== undefined &&\n\t\t\t(!isAgenticMemoryPersistenceLevel(value.persistenceLevel) ||\n\t\t\t\tvalue.persistenceLevel === \"archived\")\n\t\t) {\n\t\t\terrors.push(\"restore.persistenceLevel must be a non-archived persistence level when present\");\n\t\t}\n\t} else if (kind === \"setPersistenceLevel\") {\n\t\tif (!isNonEmptyString(value.recordId)) errors.push(\"command.recordId must be non-empty\");\n\t\tif (!isAgenticMemoryPersistenceLevel(value.persistenceLevel)) {\n\t\t\terrors.push(\"setPersistenceLevel.persistenceLevel is invalid\");\n\t\t}\n\t} else if (kind === \"requestConsolidation\") {\n\t\tif (!isDenseArrayOf(value.recordIds, isNonEmptyString) || value.recordIds.length === 0) {\n\t\t\terrors.push(\"requestConsolidation.recordIds must be a non-empty string array\");\n\t\t}\n\t\tif (\n\t\t\tvalue.requestId !== undefined &&\n\t\t\t(typeof value.requestId !== \"string\" || value.requestId.length === 0)\n\t\t) {\n\t\t\terrors.push(\"requestConsolidation.requestId must be non-empty when present\");\n\t\t}\n\t}\n\tif (errors.length > 0 || id === undefined) {\n\t\treturn {\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-command\",\n\t\t\t\t\tmessage: \"agenticMemoryRetentionBundle: command is invalid\",\n\t\t\t\t\tindex,\n\t\t\t\t\tcommandId: id,\n\t\t\t\t\tcommand: value,\n\t\t\t\t\tvalidationErrors: Object.freeze(errors),\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst base = { id, reason: value.reason as string | undefined };\n\tif (kind === \"archive\") {\n\t\treturn {\n\t\t\tcommand: Object.freeze({\n\t\t\t\t...base,\n\t\t\t\tkind,\n\t\t\t\trecordId: value.recordId as string,\n\t\t\t\t...(base.reason === undefined ? {} : { reason: base.reason }),\n\t\t\t}),\n\t\t\terrors: [],\n\t\t};\n\t}\n\tif (kind === \"restore\") {\n\t\treturn {\n\t\t\tcommand: Object.freeze({\n\t\t\t\t...base,\n\t\t\t\tkind,\n\t\t\t\trecordId: value.recordId as string,\n\t\t\t\t...(value.persistenceLevel === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tpersistenceLevel: value.persistenceLevel as Exclude<\n\t\t\t\t\t\t\t\tAgenticMemoryPersistenceLevel,\n\t\t\t\t\t\t\t\t\"archived\"\n\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t}),\n\t\t\t\t...(base.reason === undefined ? {} : { reason: base.reason }),\n\t\t\t}),\n\t\t\terrors: [],\n\t\t};\n\t}\n\tif (kind === \"setPersistenceLevel\") {\n\t\treturn {\n\t\t\tcommand: Object.freeze({\n\t\t\t\t...base,\n\t\t\t\tkind,\n\t\t\t\trecordId: value.recordId as string,\n\t\t\t\tpersistenceLevel: value.persistenceLevel as AgenticMemoryPersistenceLevel,\n\t\t\t\t...(base.reason === undefined ? {} : { reason: base.reason }),\n\t\t\t}),\n\t\t\terrors: [],\n\t\t};\n\t}\n\treturn {\n\t\tcommand: Object.freeze({\n\t\t\t...base,\n\t\t\tkind: \"requestConsolidation\",\n\t\t\trecordIds: Object.freeze([...(value.recordIds as readonly string[])]),\n\t\t\t...(value.requestId === undefined ? {} : { requestId: value.requestId as string }),\n\t\t\t...(base.reason === undefined ? {} : { reason: base.reason }),\n\t\t}),\n\t\terrors: [],\n\t};\n}\n\nfunction retentionMissingRecords(\n\tcommand: AgenticMemoryRetentionCommand,\n\trecords: ReadonlyMap<FactId, AgenticMemoryRecord>,\n): readonly FactId[] {\n\tif (\"recordId\" in command) return records.has(command.recordId) ? [] : [command.recordId];\n\treturn command.recordIds.filter((recordId) => !records.has(recordId));\n}\n\nfunction applyRetentionCommand<T>(\n\tcommand: AgenticMemoryRetentionCommand,\n\tsource: ReadonlyMap<FactId, AgenticMemoryRecord<T>>,\n\tview: Map<FactId, AgenticMemoryRecord<T>>,\n\trequests: AgenticMemoryConsolidationRequest[],\n): void {\n\tif (command.kind === \"requestConsolidation\") {\n\t\trequests.push(\n\t\t\tObject.freeze({\n\t\t\t\tid: command.requestId ?? command.id,\n\t\t\t\tcommandId: command.id,\n\t\t\t\trecordIds: Object.freeze([...command.recordIds]),\n\t\t\t\t...(command.reason === undefined ? {} : { reason: command.reason }),\n\t\t\t}),\n\t\t);\n\t\treturn;\n\t}\n\tconst record = view.get(command.recordId) ?? source.get(command.recordId);\n\tif (record === undefined) return;\n\tconst persistenceLevel =\n\t\tcommand.kind === \"archive\"\n\t\t\t? \"archived\"\n\t\t\t: command.kind === \"restore\"\n\t\t\t\t? (command.persistenceLevel ?? nonArchivedLevel(source.get(command.recordId) ?? record))\n\t\t\t\t: command.persistenceLevel;\n\tview.set(command.recordId, withPersistenceLevel(record, persistenceLevel));\n}\n\nfunction nonArchivedLevel(\n\trecord: AgenticMemoryRecord,\n): Exclude<AgenticMemoryPersistenceLevel, \"archived\"> {\n\treturn record.persistenceLevel === \"archived\" ? \"session\" : record.persistenceLevel;\n}\n\nfunction withPersistenceLevel<T>(\n\trecord: AgenticMemoryRecord<T>,\n\tpersistenceLevel: AgenticMemoryPersistenceLevel,\n): AgenticMemoryRecord<T> {\n\treturn Object.freeze({\n\t\t...record,\n\t\tpersistenceLevel,\n\t});\n}\n\nfunction retentionErrorFromRecordError(\n\terror: Omit<AgenticMemoryError, \"cursor\">,\n): Omit<AgenticMemoryRetentionError, \"cursor\"> {\n\treturn {\n\t\t...error,\n\t\tcode: error.code,\n\t};\n}\n\nfunction validateConsolidationRequests<T>(\n\tvalue: unknown,\n\trecords: readonly AgenticMemoryRecord<T>[],\n): {\n\treadonly requests: readonly AgenticMemoryConsolidationRequest[];\n\treadonly errors: readonly Omit<AgenticMemoryRetentionError, \"cursor\">[];\n} {\n\tconst byId = new Map(records.map((record) => [record.id, record]));\n\tconst requests: AgenticMemoryConsolidationRequest[] = [];\n\tconst errors: Omit<AgenticMemoryRetentionError, \"cursor\">[] = [];\n\tif (!Array.isArray(value)) {\n\t\treturn {\n\t\t\trequests,\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-commands-input\",\n\t\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: requests input must be an array\",\n\t\t\t\t\tcommand: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst length = safeArrayLength(value);\n\tif (length === undefined) {\n\t\treturn {\n\t\t\trequests,\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-commands-input\",\n\t\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: requests input length could not be read\",\n\t\t\t\t\tcommand: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst seen = new Set<FactId>();\n\tfor (let i = 0; i < length; i += 1) {\n\t\tlet raw: unknown;\n\t\ttry {\n\t\t\tif (!Object.hasOwn(value, i)) {\n\t\t\t\tthrow new TypeError(\"request array must be dense\");\n\t\t\t}\n\t\t\traw = value[i];\n\t\t} catch (error) {\n\t\t\terrors.push({\n\t\t\t\tcode: \"invalid-command\",\n\t\t\t\tmessage: `agenticMemoryConsolidationBundle: request access failed: ${errorMessage(error)}`,\n\t\t\t\tindex: i,\n\t\t\t\tvalidationErrors: Object.freeze([\"request access failed\"]),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (!isPlainRecord(raw)) {\n\t\t\terrors.push({\n\t\t\t\tcode: \"invalid-command\",\n\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: request must be an object\",\n\t\t\t\tindex: i,\n\t\t\t\tcommand: raw,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst id = isNonEmptyString(raw.id) ? raw.id : undefined;\n\t\tconst commandId = isNonEmptyString(raw.commandId) ? raw.commandId : undefined;\n\t\tconst recordIds = isDenseArrayOf(raw.recordIds, isNonEmptyString)\n\t\t\t? Object.freeze([...raw.recordIds])\n\t\t\t: undefined;\n\t\tconst validationErrors: string[] = [];\n\t\tif (id === undefined) validationErrors.push(\"request.id must be a non-empty string\");\n\t\tif (commandId === undefined) {\n\t\t\tvalidationErrors.push(\"request.commandId must be a non-empty string\");\n\t\t}\n\t\tif (recordIds === undefined || recordIds.length === 0) {\n\t\t\tvalidationErrors.push(\"request.recordIds must be a non-empty string array\");\n\t\t}\n\t\tif (raw.reason !== undefined && typeof raw.reason !== \"string\") {\n\t\t\tvalidationErrors.push(\"request.reason must be a string when present\");\n\t\t}\n\t\tif (id !== undefined && seen.has(id)) {\n\t\t\tvalidationErrors.push(`duplicate request id '${id}'`);\n\t\t}\n\t\tconst missing = (recordIds ?? []).filter((recordId) => !byId.has(recordId));\n\t\tif (missing.length > 0) {\n\t\t\terrors.push({\n\t\t\t\tcode: \"missing-record-ref\",\n\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: request references missing records\",\n\t\t\t\tindex: i,\n\t\t\t\tcommandId,\n\t\t\t\trecordIds: Object.freeze(missing),\n\t\t\t\tcommand: raw,\n\t\t\t\tvalidationErrors: Object.freeze(\n\t\t\t\t\tmissing.map((recordId) => `record '${recordId}' is not projected`),\n\t\t\t\t),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (\n\t\t\tvalidationErrors.length > 0 ||\n\t\t\tid === undefined ||\n\t\t\tcommandId === undefined ||\n\t\t\trecordIds === undefined\n\t\t) {\n\t\t\terrors.push({\n\t\t\t\tcode: \"invalid-command\",\n\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: request is invalid\",\n\t\t\t\tindex: i,\n\t\t\t\tcommandId,\n\t\t\t\trecordIds,\n\t\t\t\tcommand: raw,\n\t\t\t\tvalidationErrors: Object.freeze(validationErrors),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tseen.add(id);\n\t\trequests.push(\n\t\t\tObject.freeze({\n\t\t\t\tid,\n\t\t\t\tcommandId,\n\t\t\t\trecordIds,\n\t\t\t\t...(raw.reason === undefined ? {} : { reason: raw.reason as string }),\n\t\t\t}),\n\t\t);\n\t}\n\treturn { requests: Object.freeze(requests), errors };\n}\n\nfunction projectConsolidationOutcomes<T>(\n\tvalue: unknown,\n\trequests: readonly AgenticMemoryConsolidationRequest[],\n\tevaluation: number,\n): {\n\treadonly results: readonly AgenticMemoryConsolidationResult[];\n\treadonly proposedRecordDrafts: readonly AgenticMemoryConsolidationRecordDraft<T>[];\n\treadonly commands: readonly AgenticMemoryConsolidationCommand[];\n\treadonly errors: readonly Omit<AgenticMemoryConsolidationError, \"cursor\">[];\n\treadonly validOutcomes: number;\n\treadonly invalidOutcomes: number;\n} {\n\tconst byRequest = new Map(requests.map((request) => [request.id, request]));\n\tconst results: AgenticMemoryConsolidationResult[] = [];\n\tconst proposedRecordDrafts: AgenticMemoryConsolidationRecordDraft<T>[] = [];\n\tconst commands: AgenticMemoryConsolidationCommand[] = [];\n\tconst errors: Omit<AgenticMemoryConsolidationError, \"cursor\">[] = [];\n\tlet validOutcomes = 0;\n\tlet invalidOutcomes = 0;\n\tif (!Array.isArray(value)) {\n\t\treturn {\n\t\t\tresults,\n\t\t\tproposedRecordDrafts,\n\t\t\tcommands,\n\t\t\tvalidOutcomes,\n\t\t\tinvalidOutcomes: 1,\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-outcomes-input\",\n\t\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: outcomes input must be an array\",\n\t\t\t\t\toutcome: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst length = safeArrayLength(value);\n\tif (length === undefined) {\n\t\treturn {\n\t\t\tresults,\n\t\t\tproposedRecordDrafts,\n\t\t\tcommands,\n\t\t\tvalidOutcomes,\n\t\t\tinvalidOutcomes: 1,\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-outcomes-input\",\n\t\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: outcomes input length could not be read\",\n\t\t\t\t\toutcome: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst seenOutcomes = new Set<FactId>();\n\tfor (let i = 0; i < length; i += 1) {\n\t\tlet raw: unknown;\n\t\tlet outcome: {\n\t\t\treadonly outcome?: AgenticMemoryConsolidationOutcome<T>;\n\t\t\treadonly error?: Omit<AgenticMemoryConsolidationError, \"cursor\">;\n\t\t};\n\t\ttry {\n\t\t\tif (!Object.hasOwn(value, i)) {\n\t\t\t\tthrow new TypeError(\"outcome array must be dense\");\n\t\t\t}\n\t\t\traw = value[i];\n\t\t\toutcome = validateConsolidationOutcome<T>(raw, i);\n\t\t} catch (error) {\n\t\t\tinvalidOutcomes += 1;\n\t\t\terrors.push({\n\t\t\t\tcode: \"invalid-outcome\",\n\t\t\t\tmessage: `agenticMemoryConsolidationBundle: outcome access failed: ${errorMessage(error)}`,\n\t\t\t\tindex: i,\n\t\t\t\toutcome: raw,\n\t\t\t\tvalidationErrors: Object.freeze([\"outcome access failed\"]),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (outcome.error !== undefined || outcome.outcome === undefined) {\n\t\t\tinvalidOutcomes += 1;\n\t\t\tif (outcome.error !== undefined) errors.push(outcome.error);\n\t\t\tcontinue;\n\t\t}\n\t\tconst validOutcome = outcome.outcome;\n\t\tif (seenOutcomes.has(validOutcome.id)) {\n\t\t\tinvalidOutcomes += 1;\n\t\t\terrors.push({\n\t\t\t\tcode: \"duplicate-outcome-id\",\n\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: duplicate outcome id\",\n\t\t\t\tindex: i,\n\t\t\t\toutcomeId: validOutcome.id,\n\t\t\t\trequestId: validOutcome.requestId,\n\t\t\t\toutcome: raw,\n\t\t\t\tvalidationErrors: Object.freeze([`duplicate outcome id '${validOutcome.id}'`]),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst request = byRequest.get(validOutcome.requestId);\n\t\tif (request === undefined) {\n\t\t\tinvalidOutcomes += 1;\n\t\t\terrors.push({\n\t\t\t\tcode: \"missing-request-ref\",\n\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: outcome references missing request\",\n\t\t\t\tindex: i,\n\t\t\t\toutcomeId: validOutcome.id,\n\t\t\t\trequestId: validOutcome.requestId,\n\t\t\t\toutcome: raw,\n\t\t\t\tvalidationErrors: Object.freeze([`request '${validOutcome.requestId}' is not projected`]),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tseenOutcomes.add(validOutcome.id);\n\t\tvalidOutcomes += 1;\n\t\tif (validOutcome.kind === \"failed\") {\n\t\t\tconst resultId = `${validOutcome.requestId}:${validOutcome.id}`;\n\t\t\tresults.push(\n\t\t\t\tObject.freeze({\n\t\t\t\t\tid: resultId,\n\t\t\t\t\trequestId: validOutcome.requestId,\n\t\t\t\t\toutcomeId: validOutcome.id,\n\t\t\t\t\tstate: \"failed\",\n\t\t\t\t\tsourceRecordIds: request.recordIds,\n\t\t\t\t\tproposedRecordIds: Object.freeze([]),\n\t\t\t\t\tmessage: validOutcome.message,\n\t\t\t\t\t...(validOutcome.provenance === undefined ? {} : { provenance: validOutcome.provenance }),\n\t\t\t\t}),\n\t\t\t);\n\t\t\tcommands.push(\n\t\t\t\tObject.freeze({\n\t\t\t\t\tid: `${resultId}:markFailed`,\n\t\t\t\t\tkind: \"markFailed\",\n\t\t\t\t\trequestId: validOutcome.requestId,\n\t\t\t\t\toutcomeId: validOutcome.id,\n\t\t\t\t\tmessage: validOutcome.message,\n\t\t\t\t}),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tconst draftIds = validOutcome.records.map(\n\t\t\t(record) => `${validOutcome.requestId}:${validOutcome.id}:${record.id}`,\n\t\t);\n\t\tfor (let recordIndex = 0; recordIndex < validOutcome.records.length; recordIndex += 1) {\n\t\t\tproposedRecordDrafts.push(\n\t\t\t\tObject.freeze({\n\t\t\t\t\tid: draftIds[recordIndex] as FactId,\n\t\t\t\t\trequestId: validOutcome.requestId,\n\t\t\t\t\toutcomeId: validOutcome.id,\n\t\t\t\t\trecord: validOutcome.records[recordIndex] as AgenticMemoryRecord<T>,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t\tconst resultId = `${validOutcome.requestId}:${validOutcome.id}`;\n\t\tresults.push(\n\t\t\tObject.freeze({\n\t\t\t\tid: resultId,\n\t\t\t\trequestId: validOutcome.requestId,\n\t\t\t\toutcomeId: validOutcome.id,\n\t\t\t\tstate: \"proposed\",\n\t\t\t\tsourceRecordIds: request.recordIds,\n\t\t\t\tproposedRecordIds: Object.freeze(validOutcome.records.map((record) => record.id)),\n\t\t\t\t...(validOutcome.provenance === undefined ? {} : { provenance: validOutcome.provenance }),\n\t\t\t}),\n\t\t);\n\t\tcommands.push(\n\t\t\tObject.freeze({\n\t\t\t\tid: `${resultId}:proposeRecords`,\n\t\t\t\tkind: \"proposeRecords\",\n\t\t\t\trequestId: validOutcome.requestId,\n\t\t\t\toutcomeId: validOutcome.id,\n\t\t\t\tdraftIds: Object.freeze(draftIds),\n\t\t\t}),\n\t\t);\n\t}\n\tvoid evaluation;\n\treturn {\n\t\tresults: Object.freeze(results),\n\t\tproposedRecordDrafts: Object.freeze(proposedRecordDrafts),\n\t\tcommands: Object.freeze(commands),\n\t\terrors,\n\t\tvalidOutcomes,\n\t\tinvalidOutcomes,\n\t};\n}\n\nfunction validateConsolidationOutcome<T>(\n\tvalue: unknown,\n\tindex: number,\n): {\n\treadonly outcome?: AgenticMemoryConsolidationOutcome<T>;\n\treadonly error?: Omit<AgenticMemoryConsolidationError, \"cursor\">;\n} {\n\tif (!isPlainRecord(value)) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: \"invalid-outcome\",\n\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: outcome must be an object\",\n\t\t\t\tindex,\n\t\t\t\toutcome: value,\n\t\t\t},\n\t\t};\n\t}\n\tconst errors: string[] = [];\n\tconst id = isNonEmptyString(value.id) ? value.id : undefined;\n\tconst requestId = isNonEmptyString(value.requestId) ? value.requestId : undefined;\n\tif (id === undefined) errors.push(\"outcome.id must be a non-empty string\");\n\tif (requestId === undefined) errors.push(\"outcome.requestId must be a non-empty string\");\n\tif (value.kind !== \"proposedRecords\" && value.kind !== \"failed\") {\n\t\terrors.push(\"outcome.kind must be proposedRecords or failed\");\n\t}\n\tif (value.provenance !== undefined && typeof value.provenance !== \"string\") {\n\t\terrors.push(\"outcome.provenance must be a string when present\");\n\t}\n\tif (value.kind === \"failed\" && !isNonEmptyString(value.message)) {\n\t\terrors.push(\"failed outcome.message must be a non-empty string\");\n\t}\n\tconst records: AgenticMemoryRecord<T>[] = [];\n\tif (value.kind === \"proposedRecords\") {\n\t\tif (!Array.isArray(value.records)) {\n\t\t\terrors.push(\"proposedRecords.records must be a non-empty array\");\n\t\t} else {\n\t\t\tconst recordsLength = safeArrayLength(value.records);\n\t\t\tconst seenRecordIds = new Set<FactId>();\n\t\t\tif (recordsLength === undefined || recordsLength === 0) {\n\t\t\t\terrors.push(\"proposedRecords.records must be a non-empty array\");\n\t\t\t}\n\t\t\tfor (let i = 0; i < (recordsLength ?? 0); i += 1) {\n\t\t\t\tlet result: {\n\t\t\t\t\treadonly record?: AgenticMemoryRecord<T>;\n\t\t\t\t\treadonly errors: Omit<AgenticMemoryError, \"cursor\">[];\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tif (!Object.hasOwn(value.records, i)) {\n\t\t\t\t\t\tthrow new TypeError(\"proposedRecords.records must be dense\");\n\t\t\t\t\t}\n\t\t\t\t\tresult = validateAndSnapshotRecord<T>(value.records[i], i);\n\t\t\t\t} catch (error) {\n\t\t\t\t\terrors.push(`records[${i}]: record access failed: ${errorMessage(error)}`);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (result.record === undefined || result.errors.length > 0) {\n\t\t\t\t\terrors.push(\n\t\t\t\t\t\t...result.errors\n\t\t\t\t\t\t\t.flatMap((error) => error.validationErrors ?? [error.message])\n\t\t\t\t\t\t\t.map((error) => `records[${i}]: ${error}`),\n\t\t\t\t\t);\n\t\t\t\t} else if (seenRecordIds.has(result.record.id)) {\n\t\t\t\t\terrors.push(`records[${i}]: duplicate proposed record id '${result.record.id}'`);\n\t\t\t\t} else {\n\t\t\t\t\tseenRecordIds.add(result.record.id);\n\t\t\t\t\trecords.push(result.record);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (errors.length > 0 || id === undefined || requestId === undefined) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: value.kind === \"proposedRecords\" ? \"invalid-proposed-record\" : \"invalid-outcome\",\n\t\t\t\tmessage: \"agenticMemoryConsolidationBundle: outcome is invalid\",\n\t\t\t\tindex,\n\t\t\t\toutcomeId: id,\n\t\t\t\trequestId,\n\t\t\t\toutcome: value,\n\t\t\t\tvalidationErrors: Object.freeze(errors),\n\t\t\t},\n\t\t};\n\t}\n\tif (value.kind === \"failed\") {\n\t\treturn {\n\t\t\toutcome: Object.freeze({\n\t\t\t\tid,\n\t\t\t\trequestId,\n\t\t\t\tkind: \"failed\",\n\t\t\t\tmessage: value.message as string,\n\t\t\t\t...(value.provenance === undefined ? {} : { provenance: value.provenance as string }),\n\t\t\t}),\n\t\t};\n\t}\n\treturn {\n\t\toutcome: Object.freeze({\n\t\t\tid,\n\t\t\trequestId,\n\t\t\tkind: \"proposedRecords\",\n\t\t\trecords: Object.freeze(records),\n\t\t\t...(value.provenance === undefined ? {} : { provenance: value.provenance as string }),\n\t\t}),\n\t};\n}\n\nfunction consolidationErrorFromRecordError(\n\terror: Omit<AgenticMemoryError, \"cursor\">,\n): Omit<AgenticMemoryConsolidationError, \"cursor\"> {\n\treturn {\n\t\t...error,\n\t\tcode: error.code,\n\t};\n}\n\nfunction consolidationErrorFromRetentionError(\n\terror: Omit<AgenticMemoryRetentionError, \"cursor\">,\n): Omit<AgenticMemoryConsolidationError, \"cursor\"> {\n\treturn {\n\t\t...error,\n\t\tcode: error.code,\n\t};\n}\n\nfunction packContext(\n\tcontextValue: unknown,\n\ttextsValue: unknown,\n\tpolicyValue: unknown,\n\tevaluation: number,\n): AgenticMemoryContextPackingSnapshot {\n\tconst errors: Omit<AgenticMemoryContextPackingError, \"cursor\">[] = [];\n\tconst context = validatePackingContext(contextValue, errors);\n\tconst texts = validateContextTexts(textsValue, errors);\n\tconst policy = validatePackingPolicy(policyValue, errors);\n\tconst packedEntries: AgenticMemoryPackedContextEntry[] = [];\n\tlet omittedEntries = 0;\n\tlet totalChars = 0;\n\tlet totalCost = 0;\n\tif (context !== undefined && policy !== undefined) {\n\t\tfor (const entry of context.entries) {\n\t\t\tconst textFact = texts.get(entry.fragmentId);\n\t\t\tif (textFact === undefined) {\n\t\t\t\tomittedEntries += 1;\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"missing-text\",\n\t\t\t\t\tmessage: \"agenticMemoryContextPackingBundle: missing text projection for context entry\",\n\t\t\t\t\tfragmentId: entry.fragmentId,\n\t\t\t\t\tvalidationErrors: [`missing text for fragment '${entry.fragmentId}'`],\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst cost = textFact.cost ?? textFact.text.length;\n\t\t\tconst nextEntries = packedEntries.length + 1;\n\t\t\tconst separatorChars = packedEntries.length === 0 ? 0 : 2;\n\t\t\tconst nextChars = totalChars + separatorChars + textFact.text.length;\n\t\t\tconst nextCost = totalCost + cost;\n\t\t\tconst exceeds =\n\t\t\t\t(policy.maxEntries !== undefined && nextEntries > policy.maxEntries) ||\n\t\t\t\t(policy.maxChars !== undefined && nextChars > policy.maxChars) ||\n\t\t\t\t(policy.maxCost !== undefined && nextCost > policy.maxCost);\n\t\t\tif (exceeds) {\n\t\t\t\tomittedEntries += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst packedEntry: AgenticMemoryPackedContextEntry = Object.freeze({\n\t\t\t\tfragmentId: entry.fragmentId,\n\t\t\t\ttext: textFact.text,\n\t\t\t\tcost,\n\t\t\t\tchars: textFact.text.length,\n\t\t\t\t...(entry.record === undefined ? {} : { record: entry.record }),\n\t\t\t\t...(policy.includeMetadata && textFact.metadata !== undefined\n\t\t\t\t\t? { metadata: textFact.metadata }\n\t\t\t\t\t: {}),\n\t\t\t});\n\t\t\tpackedEntries.push(packedEntry);\n\t\t\ttotalChars = nextChars;\n\t\t\ttotalCost = nextCost;\n\t\t}\n\t}\n\tconst cursor: AgenticMemoryContextPackingCursor = Object.freeze({\n\t\tevaluation,\n\t\tinputEntries: context?.entries.length ?? 0,\n\t\tpackedEntries: packedEntries.length,\n\t\tomittedEntries,\n\t\ttotalChars,\n\t\ttotalCost,\n\t});\n\tconst errorFacts = Object.freeze(\n\t\terrors.map((error) =>\n\t\t\tfreezeError({\n\t\t\t\t...error,\n\t\t\t\tcursor,\n\t\t\t}),\n\t\t),\n\t);\n\tconst packedContext: AgenticMemoryPackedContext = Object.freeze({\n\t\tentries: Object.freeze(packedEntries),\n\t\ttext: packedEntries.map((entry) => entry.text).join(\"\\n\\n\"),\n\t\ttotalChars,\n\t\ttotalCost,\n\t\ttruncated: omittedEntries > 0,\n\t});\n\tconst status: AgenticMemoryContextPackingStatus = Object.freeze({\n\t\tstate: agenticStatusState(errorFacts.length, packedEntries.length),\n\t\tcursor,\n\t});\n\treturn Object.freeze({\n\t\tpackedContext,\n\t\tstatus,\n\t\terrors: errorFacts,\n\t\tcursor,\n\t});\n}\n\nfunction validatePackingContext(\n\tvalue: unknown,\n\terrors: Omit<AgenticMemoryContextPackingError, \"cursor\">[],\n): ValidatedPackingContext | undefined {\n\tif (!isPlainRecord(value)) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-context\",\n\t\t\tmessage: \"agenticMemoryContextPackingBundle: context must be an AgenticMemoryContext fact\",\n\t\t\tvalue,\n\t\t});\n\t\treturn undefined;\n\t}\n\tlet entriesValue: unknown;\n\ttry {\n\t\tentriesValue = value.entries;\n\t} catch (error) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-context\",\n\t\t\tmessage: `agenticMemoryContextPackingBundle: context entries access failed: ${errorMessage(error)}`,\n\t\t\tvalue,\n\t\t\tvalidationErrors: [\"context entries access failed\"],\n\t\t});\n\t\treturn undefined;\n\t}\n\tif (!Array.isArray(entriesValue)) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-context\",\n\t\t\tmessage: \"agenticMemoryContextPackingBundle: context must be an AgenticMemoryContext fact\",\n\t\t\tvalue,\n\t\t\tvalidationErrors: [\"context.entries must be an array\"],\n\t\t});\n\t\treturn undefined;\n\t}\n\tconst length = safeArrayLength(entriesValue);\n\tif (length === undefined) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-context\",\n\t\t\tmessage: \"agenticMemoryContextPackingBundle: context entries length could not be read\",\n\t\t\tvalue,\n\t\t\tvalidationErrors: [\"context.entries length could not be read\"],\n\t\t});\n\t\treturn undefined;\n\t}\n\tconst entries: AgenticMemoryContextEntry[] = [];\n\tfor (let i = 0; i < length; i += 1) {\n\t\tlet raw: unknown;\n\t\ttry {\n\t\t\traw = entriesValue[i];\n\t\t\tif (!isPlainRecord(raw) || !isNonEmptyString(raw.fragmentId)) {\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"invalid-context\",\n\t\t\t\t\tmessage: \"agenticMemoryContextPackingBundle: context entry is invalid\",\n\t\t\t\t\tindex: i,\n\t\t\t\t\tvalue: raw,\n\t\t\t\t\tvalidationErrors: [\"context entry fragmentId must be a non-empty string\"],\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst record = validateRecordMetadata(raw.record);\n\t\t\tif (!record.ok) {\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"invalid-context\",\n\t\t\t\t\tmessage: \"agenticMemoryContextPackingBundle: context entry record metadata is invalid\",\n\t\t\t\t\tindex: i,\n\t\t\t\t\tfragmentId: raw.fragmentId,\n\t\t\t\t\tvalue: raw,\n\t\t\t\t\tvalidationErrors: Object.freeze(record.errors),\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tentries.push(\n\t\t\t\tObject.freeze({\n\t\t\t\t\tfragmentId: raw.fragmentId,\n\t\t\t\t\t...(record.metadata === undefined ? {} : { record: record.metadata }),\n\t\t\t\t}) as AgenticMemoryContextEntry,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\terrors.push({\n\t\t\t\tcode: \"invalid-context\",\n\t\t\t\tmessage: `agenticMemoryContextPackingBundle: context entry access failed: ${errorMessage(error)}`,\n\t\t\t\tindex: i,\n\t\t\t\tvalue: raw,\n\t\t\t\tvalidationErrors: [\"context entry access failed\"],\n\t\t\t});\n\t\t}\n\t}\n\treturn Object.freeze({\n\t\tentries: Object.freeze(entries),\n\t});\n}\n\nfunction validateContextTexts(\n\tvalue: unknown,\n\terrors: Omit<AgenticMemoryContextPackingError, \"cursor\">[],\n): Map<FactId, AgenticMemoryContextText> {\n\tconst out = new Map<FactId, AgenticMemoryContextText>();\n\tif (!Array.isArray(value)) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-texts-input\",\n\t\t\tmessage: \"agenticMemoryContextPackingBundle: texts input must be an array\",\n\t\t\tvalue,\n\t\t});\n\t\treturn out;\n\t}\n\tconst length = safeArrayLength(value);\n\tif (length === undefined) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-texts-input\",\n\t\t\tmessage: \"agenticMemoryContextPackingBundle: texts input length could not be read\",\n\t\t\tvalue,\n\t\t});\n\t\treturn out;\n\t}\n\tfor (let i = 0; i < length; i += 1) {\n\t\ttry {\n\t\t\tconst raw = value[i];\n\t\t\tconst result = validateContextText(raw, i);\n\t\t\tif (result.error !== undefined) {\n\t\t\t\terrors.push(result.error);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (result.text === undefined) {\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"invalid-text\",\n\t\t\t\t\tmessage: \"agenticMemoryContextPackingBundle: text fact is invalid\",\n\t\t\t\t\tindex: i,\n\t\t\t\t\tvalue: raw,\n\t\t\t\t\tvalidationErrors: [\"text validation returned no fact\"],\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (out.has(result.text.fragmentId)) {\n\t\t\t\terrors.push({\n\t\t\t\t\tcode: \"duplicate-text-fragment-id\",\n\t\t\t\t\tmessage: \"agenticMemoryContextPackingBundle: duplicate text fragment id\",\n\t\t\t\t\tindex: i,\n\t\t\t\t\tfragmentId: result.text.fragmentId,\n\t\t\t\t\tvalue: raw,\n\t\t\t\t\tvalidationErrors: [`duplicate text fragment id '${result.text.fragmentId}'`],\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tout.set(result.text.fragmentId, result.text);\n\t\t} catch (error) {\n\t\t\terrors.push({\n\t\t\t\tcode: \"invalid-text\",\n\t\t\t\tmessage: `agenticMemoryContextPackingBundle: text access failed: ${errorMessage(error)}`,\n\t\t\t\tindex: i,\n\t\t\t\tvalidationErrors: [\"text access failed\"],\n\t\t\t});\n\t\t}\n\t}\n\treturn out;\n}\n\nfunction validateContextText(\n\tvalue: unknown,\n\tindex: number,\n): {\n\treadonly text?: AgenticMemoryContextText;\n\treadonly error?: Omit<AgenticMemoryContextPackingError, \"cursor\">;\n} {\n\tif (!isPlainRecord(value)) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: \"invalid-text\",\n\t\t\t\tmessage: \"agenticMemoryContextPackingBundle: text fact must be an object\",\n\t\t\t\tindex,\n\t\t\t\tvalue,\n\t\t\t},\n\t\t};\n\t}\n\tconst errors: string[] = [];\n\tif (!isNonEmptyString(value.fragmentId)) errors.push(\"fragmentId must be a non-empty string\");\n\tif (typeof value.text !== \"string\") errors.push(\"text must be a string\");\n\tif (\n\t\tvalue.cost !== undefined &&\n\t\t(typeof value.cost !== \"number\" || !Number.isFinite(value.cost) || value.cost < 0)\n\t) {\n\t\terrors.push(\"cost must be a finite number >= 0\");\n\t}\n\tif (value.metadata !== undefined) {\n\t\ttry {\n\t\t\tif (!isPlainRecord(value.metadata)) {\n\t\t\t\tthrow new TypeError(\"metadata must be a plain object when present\");\n\t\t\t}\n\t\t\tassertStrictJsonValue(value.metadata, \"metadata\");\n\t\t} catch (error) {\n\t\t\terrors.push(errorMessage(error));\n\t\t}\n\t}\n\tif (errors.length > 0) {\n\t\treturn {\n\t\t\terror: {\n\t\t\t\tcode: \"invalid-text\",\n\t\t\t\tmessage: \"agenticMemoryContextPackingBundle: text fact is invalid\",\n\t\t\t\tindex,\n\t\t\t\tfragmentId: typeof value.fragmentId === \"string\" ? value.fragmentId : undefined,\n\t\t\t\tvalue,\n\t\t\t\tvalidationErrors: Object.freeze(errors),\n\t\t\t},\n\t\t};\n\t}\n\treturn {\n\t\ttext: Object.freeze({\n\t\t\tfragmentId: value.fragmentId as string,\n\t\t\ttext: value.text as string,\n\t\t\t...(value.cost === undefined ? {} : { cost: value.cost as number }),\n\t\t\t...(value.metadata === undefined\n\t\t\t\t? {}\n\t\t\t\t: { metadata: Object.freeze({ ...(value.metadata as Record<string, StrictJsonValue>) }) }),\n\t\t}),\n\t};\n}\n\nfunction validatePackingPolicy(\n\tvalue: unknown,\n\terrors: Omit<AgenticMemoryContextPackingError, \"cursor\">[],\n): AgenticMemoryContextPackingPolicy | undefined {\n\tif (!isPlainRecord(value)) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-policy\",\n\t\t\tmessage: \"agenticMemoryContextPackingBundle: policy must be an object\",\n\t\t\tvalue,\n\t\t});\n\t\treturn undefined;\n\t}\n\tconst validation: string[] = [];\n\tlet maxEntries: unknown;\n\tlet maxChars: unknown;\n\tlet maxCost: unknown;\n\tlet includeMetadata: unknown;\n\ttry {\n\t\tmaxEntries = value.maxEntries;\n\t\tmaxChars = value.maxChars;\n\t\tmaxCost = value.maxCost;\n\t\tincludeMetadata = value.includeMetadata;\n\t} catch (error) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-policy\",\n\t\t\tmessage: `agenticMemoryContextPackingBundle: policy access failed: ${errorMessage(error)}`,\n\t\t\tvalue,\n\t\t\tvalidationErrors: [\"policy access failed\"],\n\t\t});\n\t\treturn undefined;\n\t}\n\tif (\n\t\tmaxEntries !== undefined &&\n\t\t(typeof maxEntries !== \"number\" || !Number.isSafeInteger(maxEntries) || maxEntries < 0)\n\t) {\n\t\tvalidation.push(\"maxEntries must be a safe integer >= 0\");\n\t}\n\tif (\n\t\tmaxChars !== undefined &&\n\t\t(typeof maxChars !== \"number\" || !Number.isSafeInteger(maxChars) || maxChars < 0)\n\t) {\n\t\tvalidation.push(\"maxChars must be a safe integer >= 0\");\n\t}\n\tif (\n\t\tmaxCost !== undefined &&\n\t\t(typeof maxCost !== \"number\" || !Number.isFinite(maxCost) || maxCost < 0)\n\t) {\n\t\tvalidation.push(\"maxCost must be a finite number >= 0\");\n\t}\n\tif (includeMetadata !== undefined && typeof includeMetadata !== \"boolean\") {\n\t\tvalidation.push(\"includeMetadata must be a boolean when present\");\n\t}\n\tif (validation.length > 0) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-policy\",\n\t\t\tmessage: \"agenticMemoryContextPackingBundle: policy is invalid\",\n\t\t\tvalue,\n\t\t\tvalidationErrors: Object.freeze(validation),\n\t\t});\n\t\treturn undefined;\n\t}\n\treturn Object.freeze({\n\t\t...(maxEntries === undefined ? {} : { maxEntries: maxEntries as number }),\n\t\t...(maxChars === undefined ? {} : { maxChars: maxChars as number }),\n\t\t...(maxCost === undefined ? {} : { maxCost: maxCost as number }),\n\t\t...(includeMetadata === undefined ? {} : { includeMetadata: includeMetadata as boolean }),\n\t});\n}\n\nfunction validateAndProjectRecords<T>(value: unknown): {\n\treadonly records: AgenticMemoryRecord<T>[];\n\treadonly fragments: MemoryFragment<T>[];\n\treadonly metadataByFragmentId: Record<FactId, AgenticMemoryRecordMetadata>;\n\treadonly errors: Omit<AgenticMemoryError, \"cursor\">[];\n\treadonly invalidRecordIndexes: Set<number>;\n} {\n\tconst records: AgenticMemoryRecord<T>[] = [];\n\tconst fragments: MemoryFragment<T>[] = [];\n\tconst metadataByFragmentId = Object.create(null) as Record<FactId, AgenticMemoryRecordMetadata>;\n\tconst errors: Omit<AgenticMemoryError, \"cursor\">[] = [];\n\tconst invalidRecordIndexes = new Set<number>();\n\tconst seenRecordIds = new Set<FactId>();\n\tconst seenFragmentIds = new Set<FactId>();\n\tif (!Array.isArray(value)) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-records-input\",\n\t\t\tmessage: \"agenticMemoryBundle: records input must be an array\",\n\t\t\trecord: value,\n\t\t});\n\t\treturn { records, fragments, metadataByFragmentId, errors, invalidRecordIndexes };\n\t}\n\tconst length = safeArrayLength(value);\n\tif (length === undefined) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-records-input\",\n\t\t\tmessage: \"agenticMemoryBundle: records input length could not be read\",\n\t\t\trecord: value,\n\t\t});\n\t\treturn { records, fragments, metadataByFragmentId, errors, invalidRecordIndexes };\n\t}\n\tfor (let i = 0; i < length; i += 1) {\n\t\tlet raw: unknown;\n\t\ttry {\n\t\t\traw = value[i];\n\t\t} catch (error) {\n\t\t\tinvalidRecordIndexes.add(i);\n\t\t\terrors.push({\n\t\t\t\tcode: \"invalid-record\",\n\t\t\t\tmessage: `agenticMemoryBundle: record access failed: ${errorMessage(error)}`,\n\t\t\t\tindex: i,\n\t\t\t\tvalidationErrors: Object.freeze([\"record access failed\"]),\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst result = validateAndSnapshotRecord<T>(raw, i);\n\t\tif (result.errors.length > 0) {\n\t\t\tinvalidRecordIndexes.add(i);\n\t\t\terrors.push(...result.errors);\n\t\t\tcontinue;\n\t\t}\n\t\tif (result.record === undefined) continue;\n\t\tif (seenRecordIds.has(result.record.id)) {\n\t\t\tinvalidRecordIndexes.add(i);\n\t\t\terrors.push({\n\t\t\t\tcode: \"duplicate-record-id\",\n\t\t\t\tmessage: \"agenticMemoryBundle: duplicate record id\",\n\t\t\t\tindex: i,\n\t\t\t\trecordId: result.record.id,\n\t\t\t\trecord: raw,\n\t\t\t\tvalidationErrors: [`duplicate record id '${result.record.id}'`],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (seenFragmentIds.has(result.record.fragment.id)) {\n\t\t\tinvalidRecordIndexes.add(i);\n\t\t\terrors.push({\n\t\t\t\tcode: \"duplicate-fragment-id\",\n\t\t\t\tmessage: \"agenticMemoryBundle: duplicate fragment id\",\n\t\t\t\tindex: i,\n\t\t\t\trecordId: result.record.id,\n\t\t\t\tfragmentId: result.record.fragment.id,\n\t\t\t\trecord: raw,\n\t\t\t\tvalidationErrors: [`duplicate fragment id '${result.record.fragment.id}'`],\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tseenRecordIds.add(result.record.id);\n\t\tseenFragmentIds.add(result.record.fragment.id);\n\t\trecords.push(result.record);\n\t\tfragments.push(result.record.fragment);\n\t\tmetadataByFragmentId[result.record.fragment.id] = recordMetadata(result.record);\n\t}\n\treturn { records, fragments, metadataByFragmentId, errors, invalidRecordIndexes };\n}\n\nfunction validateAndSnapshotRecord<T>(\n\tvalue: unknown,\n\tindex: number,\n): {\n\treadonly record?: AgenticMemoryRecord<T>;\n\treadonly errors: Omit<AgenticMemoryError, \"cursor\">[];\n} {\n\ttry {\n\t\treturn validateAndSnapshotRecordInner<T>(value, index);\n\t} catch (error) {\n\t\treturn {\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-record\",\n\t\t\t\t\tmessage: `agenticMemoryBundle: record access failed: ${errorMessage(error)}`,\n\t\t\t\t\tindex,\n\t\t\t\t\trecord: value,\n\t\t\t\t\tvalidationErrors: Object.freeze([\"record access failed\"]),\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n}\n\nfunction validateAndSnapshotRecordInner<T>(\n\tvalue: unknown,\n\tindex: number,\n): {\n\treadonly record?: AgenticMemoryRecord<T>;\n\treadonly errors: Omit<AgenticMemoryError, \"cursor\">[];\n} {\n\tconst errors: Omit<AgenticMemoryError, \"cursor\">[] = [];\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n\t\treturn {\n\t\t\terrors: [\n\t\t\t\t{\n\t\t\t\t\tcode: \"invalid-record\",\n\t\t\t\t\tmessage: \"agenticMemoryBundle: record must be an object\",\n\t\t\t\t\tindex,\n\t\t\t\t\trecord: value,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\tconst record = value as Partial<AgenticMemoryRecord<T>> & Record<string, unknown>;\n\tconst recordId = typeof record.id === \"string\" ? record.id : undefined;\n\tif (recordId === undefined || recordId.length === 0) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-record\",\n\t\t\tmessage: \"agenticMemoryBundle: record.id must be a non-empty string\",\n\t\t\tindex,\n\t\t\trecord: value,\n\t\t\tvalidationErrors: [\"record.id must be a non-empty string\"],\n\t\t});\n\t}\n\tif (!isAgenticMemoryKind(record.kind)) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-record-kind\",\n\t\t\tmessage: \"agenticMemoryBundle: record.kind is invalid\",\n\t\t\tindex,\n\t\t\trecordId,\n\t\t\trecord: value,\n\t\t\tvalidationErrors: [\"kind must be one of working, episodic, semantic, procedural, profile\"],\n\t\t});\n\t}\n\tif (!isAgenticMemoryPersistenceLevel(record.persistenceLevel)) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-persistence-level\",\n\t\t\tmessage: \"agenticMemoryBundle: record.persistenceLevel is invalid\",\n\t\t\tindex,\n\t\t\trecordId,\n\t\t\trecord: value,\n\t\t\tvalidationErrors: [\n\t\t\t\t\"persistenceLevel must be one of turn, session, project, longTerm, permanent, archived\",\n\t\t\t],\n\t\t});\n\t}\n\tif (!isAgenticMemoryArtifactKind(record.artifactKind)) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-artifact-kind\",\n\t\t\tmessage: \"agenticMemoryBundle: record.artifactKind is invalid\",\n\t\t\tindex,\n\t\t\trecordId,\n\t\t\trecord: value,\n\t\t\tvalidationErrors: [\"artifactKind must be one of raw, insight, profile, procedure\"],\n\t\t});\n\t}\n\tconst scopeValidation = validateScope(record.scope);\n\tif (!scopeValidation.ok) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-scope\",\n\t\t\tmessage: \"agenticMemoryBundle: record.scope is invalid\",\n\t\t\tindex,\n\t\t\trecordId,\n\t\t\trecord: value,\n\t\t\tvalidationErrors: Object.freeze(scopeValidation.errors),\n\t\t});\n\t}\n\tconst fragmentValidation = validateMemoryFragment(record.fragment);\n\tif (!fragmentValidation.ok) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-fragment\",\n\t\t\tmessage: \"agenticMemoryBundle: record.fragment is invalid\",\n\t\t\tindex,\n\t\t\trecordId,\n\t\t\tfragmentId:\n\t\t\t\ttypeof record.fragment === \"object\" &&\n\t\t\t\trecord.fragment !== null &&\n\t\t\t\ttypeof (record.fragment as Partial<MemoryFragment>).id === \"string\"\n\t\t\t\t\t? (record.fragment as Partial<MemoryFragment>).id\n\t\t\t\t\t: undefined,\n\t\t\trecord: value,\n\t\t\tvalidationErrors: Object.freeze([...fragmentValidation.errors]),\n\t\t});\n\t}\n\tconst forbiddenFields = [\n\t\t\"storageTier\",\n\t\t\"storageKey\",\n\t\t\"adapter\",\n\t\t\"collection\",\n\t\t\"collections\",\n\t\t\"ttl\",\n\t\t\"ttlMs\",\n\t\t\"ttlNs\",\n\t\t\"expiresAt\",\n\t\t\"timer\",\n\t\t\"scheduler\",\n\t\t\"schedule\",\n\t\t\"retentionTimer\",\n\t\t\"consolidationSchedule\",\n\t\t\"reflectionSchedule\",\n\t\t\"llm\",\n\t\t\"llmHandle\",\n\t\t\"tool\",\n\t\t\"toolHandle\",\n\t\t\"runner\",\n\t\t\"runnerHandle\",\n\t\t\"restore\",\n\t\t\"hydrate\",\n\t\t\"hydration\",\n\t\t\"graphMutation\",\n\t\t\"protocol\",\n\t] as const;\n\tconst presentForbidden = forbiddenFields.filter((field) => Object.hasOwn(record, field));\n\tif (presentForbidden.length > 0) {\n\t\terrors.push({\n\t\t\tcode: \"invalid-record\",\n\t\t\tmessage: \"agenticMemoryBundle: record contains forbidden runtime/persistence fields\",\n\t\t\tindex,\n\t\t\trecordId,\n\t\t\trecord: value,\n\t\t\tvalidationErrors: Object.freeze(\n\t\t\t\tpresentForbidden.map((field) => `${field} is not part of AgenticMemoryRecord`),\n\t\t\t),\n\t\t});\n\t}\n\tif (errors.length > 0) return { errors };\n\tconst scope = scopeValidation.scope;\n\tconst fragment = snapshotFragment(record.fragment as MemoryFragment<T>);\n\treturn {\n\t\trecord: Object.freeze({\n\t\t\tid: recordId as FactId,\n\t\t\tkind: record.kind as AgenticMemoryKind,\n\t\t\tpersistenceLevel: record.persistenceLevel as AgenticMemoryPersistenceLevel,\n\t\t\tartifactKind: record.artifactKind as AgenticMemoryArtifactKind,\n\t\t\t...(scope === undefined ? {} : { scope }),\n\t\t\tfragment,\n\t\t}),\n\t\terrors,\n\t};\n}\n\nfunction snapshotFragment<T>(fragment: MemoryFragment<T>): MemoryFragment<T> {\n\treturn Object.freeze({\n\t\tid: fragment.id,\n\t\tpayload: fragment.payload,\n\t\ttNs: fragment.tNs,\n\t\t...(fragment.validFrom === undefined ? {} : { validFrom: fragment.validFrom }),\n\t\t...(fragment.validTo === undefined ? {} : { validTo: fragment.validTo }),\n\t\tconfidence: fragment.confidence,\n\t\ttags: Object.freeze([...fragment.tags]),\n\t\tsources: Object.freeze([...fragment.sources]),\n\t\t...(fragment.embedding === undefined\n\t\t\t? {}\n\t\t\t: { embedding: Object.freeze([...fragment.embedding]) }),\n\t\t...(fragment.parentFragmentId === undefined\n\t\t\t? {}\n\t\t\t: { parentFragmentId: fragment.parentFragmentId }),\n\t\t...(fragment.provenance === undefined ? {} : { provenance: fragment.provenance }),\n\t});\n}\n\nfunction recordMetadata(record: AgenticMemoryRecord): AgenticMemoryRecordMetadata {\n\treturn Object.freeze({\n\t\trecordId: record.id,\n\t\tkind: record.kind,\n\t\tpersistenceLevel: record.persistenceLevel,\n\t\tartifactKind: record.artifactKind,\n\t\t...(record.scope === undefined ? {} : { scope: record.scope }),\n\t});\n}\n\nfunction validateRecordMetadata(value: unknown): {\n\treadonly ok: boolean;\n\treadonly metadata?: AgenticMemoryRecordMetadata;\n\treadonly errors: readonly string[];\n} {\n\tif (value === undefined) return { ok: true, errors: [] };\n\tif (!isPlainRecord(value)) {\n\t\treturn { ok: false, errors: [\"record metadata must be an object when present\"] };\n\t}\n\tconst errors: string[] = [];\n\tfor (const key of Object.keys(value)) {\n\t\tif (\n\t\t\tkey !== \"recordId\" &&\n\t\t\tkey !== \"kind\" &&\n\t\t\tkey !== \"persistenceLevel\" &&\n\t\t\tkey !== \"artifactKind\" &&\n\t\t\tkey !== \"scope\"\n\t\t) {\n\t\t\terrors.push(`record.${key} is not part of AgenticMemoryRecordMetadata`);\n\t\t}\n\t}\n\tif (!isNonEmptyString(value.recordId)) {\n\t\terrors.push(\"record.recordId must be a non-empty string\");\n\t}\n\tif (!isAgenticMemoryKind(value.kind)) {\n\t\terrors.push(\"record.kind is invalid\");\n\t}\n\tif (!isAgenticMemoryPersistenceLevel(value.persistenceLevel)) {\n\t\terrors.push(\"record.persistenceLevel is invalid\");\n\t}\n\tif (!isAgenticMemoryArtifactKind(value.artifactKind)) {\n\t\terrors.push(\"record.artifactKind is invalid\");\n\t}\n\tconst scopeValidation = validateScope(value.scope);\n\tif (!scopeValidation.ok) {\n\t\terrors.push(...scopeValidation.errors.map((error) => `record.${error}`));\n\t}\n\tif (errors.length > 0) return { ok: false, errors };\n\treturn {\n\t\tok: true,\n\t\terrors,\n\t\tmetadata: Object.freeze({\n\t\t\trecordId: value.recordId as FactId,\n\t\t\tkind: value.kind as AgenticMemoryKind,\n\t\t\tpersistenceLevel: value.persistenceLevel as AgenticMemoryPersistenceLevel,\n\t\t\tartifactKind: value.artifactKind as AgenticMemoryArtifactKind,\n\t\t\t...(scopeValidation.scope === undefined ? {} : { scope: scopeValidation.scope }),\n\t\t}),\n\t};\n}\n\nfunction contextState(\n\tprojection: AgenticMemoryStatusState,\n\tretrieval: MemoryRetrievalStatus[\"state\"],\n): AgenticMemoryContextState {\n\tif (projection === \"error\" || retrieval === \"error\") return \"error\";\n\tif (projection === \"partial\" || retrieval === \"partial\") return \"partial\";\n\treturn retrieval;\n}\n\nfunction agenticStatusState(errorCount: number, validRecords: number): AgenticMemoryStatusState {\n\tif (errorCount > 0 && validRecords === 0) return \"error\";\n\tif (errorCount > 0) return \"partial\";\n\treturn validRecords > 0 ? \"ready\" : \"empty\";\n}\n\nfunction isAgenticMemoryKind(value: unknown): value is AgenticMemoryKind {\n\treturn (\n\t\tvalue === \"working\" ||\n\t\tvalue === \"episodic\" ||\n\t\tvalue === \"semantic\" ||\n\t\tvalue === \"procedural\" ||\n\t\tvalue === \"profile\"\n\t);\n}\n\nfunction isAgenticMemoryPersistenceLevel(value: unknown): value is AgenticMemoryPersistenceLevel {\n\treturn (\n\t\tvalue === \"turn\" ||\n\t\tvalue === \"session\" ||\n\t\tvalue === \"project\" ||\n\t\tvalue === \"longTerm\" ||\n\t\tvalue === \"permanent\" ||\n\t\tvalue === \"archived\"\n\t);\n}\n\nfunction isAgenticMemoryArtifactKind(value: unknown): value is AgenticMemoryArtifactKind {\n\treturn value === \"raw\" || value === \"insight\" || value === \"profile\" || value === \"procedure\";\n}\n\nfunction validateScope(value: unknown): {\n\treadonly ok: boolean;\n\treadonly scope?: AgenticMemoryScope;\n\treadonly errors: readonly string[];\n} {\n\tif (value === undefined) return { ok: true, errors: [] };\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n\t\treturn { ok: false, errors: [\"scope must be an object when present\"] };\n\t}\n\tconst scope = value as Record<string, unknown>;\n\tconst errors: string[] = [];\n\tconst allowed = new Set([\"sessionId\", \"projectId\", \"userId\", \"tenantId\"]);\n\tfor (const key of Object.keys(scope)) {\n\t\tif (!allowed.has(key)) errors.push(`scope.${key} is not part of AgenticMemoryScope`);\n\t}\n\tfor (const key of allowed) {\n\t\tif (scope[key] !== undefined && (typeof scope[key] !== \"string\" || scope[key].length === 0)) {\n\t\t\terrors.push(`scope.${key} must be a non-empty string when present`);\n\t\t}\n\t}\n\tif (errors.length > 0) return { ok: false, errors };\n\treturn {\n\t\tok: true,\n\t\terrors,\n\t\tscope: Object.freeze({\n\t\t\t...(scope.sessionId === undefined ? {} : { sessionId: scope.sessionId as string }),\n\t\t\t...(scope.projectId === undefined ? {} : { projectId: scope.projectId as string }),\n\t\t\t...(scope.userId === undefined ? {} : { userId: scope.userId as string }),\n\t\t\t...(scope.tenantId === undefined ? {} : { tenantId: scope.tenantId as string }),\n\t\t}),\n\t};\n}\n\nfunction isPlainRecord(value: unknown): value is Record<string, unknown> {\n\treturn value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction ownKeys(value: Record<string, unknown>): readonly string[] {\n\treturn Object.keys(value).sort();\n}\n\nfunction assertExactKeys(\n\tvalue: Record<string, unknown>,\n\texpected: readonly string[],\n\tlabel: string,\n): void {\n\tconst actual = ownKeys(value);\n\tconst want = [...expected].sort();\n\tif (actual.length !== want.length || actual.some((key, i) => key !== want[i])) {\n\t\tthrow new TypeError(`${label}: unexpected fields ${actual.join(\",\")}`);\n\t}\n}\n\nfunction assertAgenticMemoryRecordCodecShape(value: unknown): void {\n\tif (!isPlainRecord(value)) {\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: record must be an object\");\n\t}\n\tassertNoSymbolKeys(value, \"agenticMemoryRecordFrame.record\");\n\tassertExactKeys(\n\t\tvalue,\n\t\tvalue.scope === undefined\n\t\t\t? [\"artifactKind\", \"fragment\", \"id\", \"kind\", \"persistenceLevel\"]\n\t\t\t: [\"artifactKind\", \"fragment\", \"id\", \"kind\", \"persistenceLevel\", \"scope\"],\n\t\t\"agenticMemoryRecordFrame.record\",\n\t);\n\tconst fragment = value.fragment;\n\tif (!isPlainRecord(fragment)) {\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: fragment must be an object\");\n\t}\n\tassertNoSymbolKeys(fragment, \"agenticMemoryRecordFrame.record.fragment\");\n\tassertExactKeys(\n\t\tfragment,\n\t\t[\n\t\t\t\"id\",\n\t\t\t\"payload\",\n\t\t\t\"tNs\",\n\t\t\t...(fragment.validFrom === undefined ? [] : [\"validFrom\"]),\n\t\t\t...(fragment.validTo === undefined ? [] : [\"validTo\"]),\n\t\t\t\"confidence\",\n\t\t\t\"tags\",\n\t\t\t\"sources\",\n\t\t\t...(fragment.embedding === undefined ? [] : [\"embedding\"]),\n\t\t\t...(fragment.parentFragmentId === undefined ? [] : [\"parentFragmentId\"]),\n\t\t\t...(fragment.provenance === undefined ? [] : [\"provenance\"]),\n\t\t],\n\t\t\"agenticMemoryRecordFrame.record.fragment\",\n\t);\n\tassertStrictJsonValue(fragment.tags, \"record.fragment.tags\");\n\tassertStrictJsonValue(fragment.sources, \"record.fragment.sources\");\n\tif (fragment.embedding !== undefined) {\n\t\tassertStrictJsonValue(fragment.embedding, \"record.fragment.embedding\");\n\t}\n\tif (value.scope !== undefined) assertScopeFrame(value.scope);\n}\n\nfunction assertNoSymbolKeys(value: object, label: string): void {\n\tif (Object.getOwnPropertySymbols(value).length > 0) {\n\t\tthrow new TypeError(`${label}: unexpected symbol fields`);\n\t}\n}\n\nfunction decimalBigIntString(value: bigint, label: string): string {\n\tconst out = value.toString(10);\n\tif (!/^-?(0|[1-9]\\d*)$/.test(out)) {\n\t\tthrow new TypeError(`${label} must encode as a canonical decimal bigint string`);\n\t}\n\treturn out;\n}\n\nfunction parseDecimalBigInt(value: unknown, label: string): bigint {\n\tif (typeof value !== \"string\" || !/^(0|-?[1-9]\\d*)$/.test(value)) {\n\t\tthrow new TypeError(`${label} must be a canonical decimal bigint string`);\n\t}\n\treturn BigInt(value);\n}\n\nfunction assertStrictJsonValue(value: unknown, label: string): StrictJsonValue {\n\ttry {\n\t\tstrictJsonCodec.encode(value);\n\t\treturn value as StrictJsonValue;\n\t} catch (error) {\n\t\tthrow new TypeError(`${label} must be strict JSON: ${errorMessage(error)}`);\n\t}\n}\n\nfunction assertScopeFrame(value: unknown): AgenticMemoryScope {\n\tif (!isPlainRecord(value)) {\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: scope must be an object when present\");\n\t}\n\tassertStrictJsonValue(value, \"record.scope\");\n\tconst validation = validateScope(value);\n\tif (!validation.ok || validation.scope === undefined) {\n\t\tthrow new TypeError(`agenticMemoryRecordFrame: invalid scope: ${validation.errors.join(\"; \")}`);\n\t}\n\tassertExactKeys(\n\t\tvalue as Record<string, unknown>,\n\t\t[\n\t\t\t...((value as Record<string, unknown>).sessionId === undefined ? [] : [\"sessionId\"]),\n\t\t\t...((value as Record<string, unknown>).projectId === undefined ? [] : [\"projectId\"]),\n\t\t\t...((value as Record<string, unknown>).userId === undefined ? [] : [\"userId\"]),\n\t\t\t...((value as Record<string, unknown>).tenantId === undefined ? [] : [\"tenantId\"]),\n\t\t],\n\t\t\"agenticMemoryRecordFrame.record.scope\",\n\t);\n\treturn validation.scope;\n}\n\nfunction assertKindValue(value: unknown): AgenticMemoryKind {\n\tif (!isAgenticMemoryKind(value)) {\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: invalid memory kind\");\n\t}\n\treturn value;\n}\n\nfunction assertPersistenceLevelValue(value: unknown): AgenticMemoryPersistenceLevel {\n\tif (!isAgenticMemoryPersistenceLevel(value)) {\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: invalid persistence level\");\n\t}\n\treturn value;\n}\n\nfunction assertArtifactKindValue(value: unknown): AgenticMemoryArtifactKind {\n\tif (!isAgenticMemoryArtifactKind(value)) {\n\t\tthrow new TypeError(\"agenticMemoryRecordFrame: invalid artifact kind\");\n\t}\n\treturn value;\n}\n\nfunction assertNonEmptyString(value: unknown, label: string): string {\n\tif (!isNonEmptyString(value)) throw new TypeError(`${label} must be a non-empty string`);\n\treturn value;\n}\n\nfunction assertString(value: unknown, label: string): string {\n\tif (typeof value !== \"string\") throw new TypeError(`${label} must be a string`);\n\treturn value;\n}\n\nfunction assertConfidence(value: unknown, label: string): number {\n\tif (!Number.isFinite(value) || (value as number) < 0 || (value as number) > 1) {\n\t\tthrow new TypeError(`${label} must be a finite number in [0, 1]`);\n\t}\n\treturn value as number;\n}\n\nfunction assertStringArray(value: unknown, label: string): readonly string[] {\n\tif (!isDenseArrayOf(value, (item): item is string => typeof item === \"string\")) {\n\t\tthrow new TypeError(`${label} must be a readonly string array`);\n\t}\n\treturn Object.freeze([...value]);\n}\n\nfunction assertFiniteNumberArray(value: unknown, label: string): readonly number[] {\n\tif (!isDenseArrayOf(value, (item): item is number => Number.isFinite(item))) {\n\t\tthrow new TypeError(`${label} must be a finite number array`);\n\t}\n\treturn Object.freeze([...value]);\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n\treturn typeof value === \"string\" && value.length > 0;\n}\n\nfunction isDenseArrayOf<T>(value: unknown, predicate: (item: unknown) => item is T): value is T[] {\n\tif (!Array.isArray(value)) return false;\n\tfor (let i = 0; i < value.length; i += 1) {\n\t\tif (!Object.hasOwn(value, i) || !predicate(value[i])) return false;\n\t}\n\treturn true;\n}\n\nfunction freezeError<T extends { readonly validationErrors?: readonly string[] }>(error: T): T {\n\treturn Object.freeze({\n\t\t...error,\n\t\t...(error.validationErrors === undefined\n\t\t\t? {}\n\t\t\t: { validationErrors: Object.freeze([...error.validationErrors]) }),\n\t}) as T;\n}\n\nfunction safeArrayLength(value: readonly unknown[]): number | undefined {\n\ttry {\n\t\treturn value.length;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction errorMessage(error: unknown): string {\n\treturn error instanceof Error ? error.message : String(error);\n}\n","/**\n * Product-owned capability admission facts (D357).\n *\n * This helper consumes generic BoundaryCapabilityRef data and emits ordinary DATA\n * facts for product admission state. It is not AutoPanel security, not a provider\n * registry, and not protocol ERROR/tier/message semantics.\n */\n\nimport { type Ctx, depBatch } from \"../ctx/types.js\";\nimport type { DataIssue } from \"../data/index.js\";\nimport type { Graph } from \"../graph/graph.js\";\nimport type { BoundaryCapabilityRef, BoundaryRole } from \"../inspection/boundary.js\";\nimport type { Node } from \"../node/node.js\";\nimport type { AgentRuntimeAuditRecord, SourceRef } from \"../orchestration/agent-runtime.js\";\n\nexport type CapabilityAdmissionOutcome = \"allow\" | \"block\" | \"defer\";\nexport type CapabilityAdmissionState = \"allowed\" | \"blocked\" | \"deferred\";\n\nexport interface CapabilityAdmissionProposal {\n\treadonly kind: \"capability-admission-proposal\";\n\treadonly proposalId: string;\n\treadonly subjectId: string;\n\treadonly capability: BoundaryCapabilityRef;\n\treadonly boundaryName?: string;\n\treadonly role?: BoundaryRole;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly proposedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface CapabilityAdmissionPolicy {\n\treadonly kind: \"capability-admission-policy\";\n\treadonly policyId: string;\n\treadonly capabilityIds?: readonly string[];\n\treadonly capabilityKinds?: readonly BoundaryCapabilityRef[\"kind\"][];\n\treadonly requiredOnly?: boolean;\n\treadonly allowedOutcomes?: readonly CapabilityAdmissionOutcome[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface CapabilityAdmissionDecision {\n\treadonly kind: \"capability-admission-decision\";\n\treadonly decisionId: string;\n\treadonly admissionId: string;\n\treadonly proposalId: string;\n\treadonly outcome: CapabilityAdmissionOutcome;\n\treadonly policyId?: string;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly decidedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface CapabilityAdmission {\n\treadonly kind: \"capability-admission\";\n\treadonly admissionId: string;\n\treadonly proposalId: string;\n\treadonly subjectId: string;\n\treadonly capability: BoundaryCapabilityRef;\n\treadonly state: CapabilityAdmissionState;\n\treadonly decisionId: string;\n\treadonly boundaryName?: string;\n\treadonly role?: BoundaryRole;\n\treadonly policyId?: string;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly admittedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface CapabilityAdmissionStatus {\n\treadonly kind: \"capability-admission-status\";\n\treadonly statusId: string;\n\treadonly state:\n\t\t| \"capability-admission-allowed\"\n\t\t| \"capability-admission-blocked\"\n\t\t| \"capability-admission-deferred\"\n\t\t| \"capability-admission-issue\";\n\treadonly proposalId?: string;\n\treadonly admissionId?: string;\n\treadonly subjectId?: string;\n\treadonly capabilityId?: string;\n\treadonly capabilityKind?: BoundaryCapabilityRef[\"kind\"];\n\treadonly policyId?: string;\n\treadonly issues?: readonly DataIssue[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface CapabilityAdmissionViews {\n\treadonly admissionsByProposal: ReadonlyMap<string, CapabilityAdmission>;\n\treadonly admissionsBySubject: ReadonlyMap<string, readonly CapabilityAdmission[]>;\n\treadonly issues: readonly DataIssue[];\n\treadonly audit: readonly AgentRuntimeAuditRecord[];\n}\n\nexport interface CapabilityAdmissionBundle {\n\treadonly admissions: Node<CapabilityAdmission>;\n\treadonly status: Node<CapabilityAdmissionStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n\treadonly views: Node<CapabilityAdmissionViews>;\n}\n\ntype CapabilityAdmissionFact =\n\t| { readonly kind: \"admission\"; readonly admission: CapabilityAdmission }\n\t| { readonly kind: \"status\"; readonly status: CapabilityAdmissionStatus }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\ninterface CapabilityAdmissionStateInternal {\n\tproposals: Map<string, CapabilityAdmissionProposal>;\n\tpolicies: Map<string, CapabilityAdmissionPolicy>;\n\tdecisions: Map<string, CapabilityAdmissionDecision>;\n\tadmissionsById: Map<string, CapabilityAdmission>;\n\tadmissionsByProposal: Map<string, CapabilityAdmission>;\n\tterminalDecisionIds: Set<string>;\n\tissueKeys: Set<string>;\n\tissueSeq: number;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\ninterface CapabilityAdmissionViewsState {\n\tadmissionsByProposal: Map<string, CapabilityAdmission>;\n\tadmissionsBySubject: Map<string, CapabilityAdmission[]>;\n\tissues: DataIssue[];\n\taudit: AgentRuntimeAuditRecord[];\n}\n\nexport function capabilityAdmissionProposal(\n\topts: Omit<CapabilityAdmissionProposal, \"kind\">,\n): CapabilityAdmissionProposal {\n\treturn { kind: \"capability-admission-proposal\", ...opts };\n}\n\nexport function capabilityAdmissionProjector(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly proposals: Node<CapabilityAdmissionProposal>;\n\t\treadonly decisions: Node<CapabilityAdmissionDecision>;\n\t\treadonly admissionPolicies?: readonly Node<CapabilityAdmissionPolicy>[];\n\t\treadonly now?: () => number;\n\t},\n): CapabilityAdmissionBundle {\n\tconst name = opts.name ?? \"capabilityAdmissions\";\n\tconst policyDeps = opts.admissionPolicies ?? [];\n\tconst now = opts.now ?? Date.now;\n\tconst runtime = graph.node<CapabilityAdmissionFact>(\n\t\t[opts.proposals, opts.decisions, ...policyDeps],\n\t\t(ctx) => {\n\t\t\tconst state =\n\t\t\t\tctx.state.get<CapabilityAdmissionStateInternal>() ?? emptyCapabilityAdmissionState();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst proposal = raw as CapabilityAdmissionProposal;\n\t\t\t\tconst issue = capabilityAdmissionProposalIssue(proposal);\n\t\t\t\tif (issue !== undefined) {\n\t\t\t\t\temitIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tnextMalformedIssueKey(state, \"proposal\", proposalKeyFallback(proposal)),\n\t\t\t\t\t\tissue,\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (state.proposals.has(proposal.proposalId)) {\n\t\t\t\t\temitIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`duplicate-proposal:${proposal.proposalId}`,\n\t\t\t\t\t\tdataIssue(\n\t\t\t\t\t\t\t\"duplicate-capability-admission-proposal\",\n\t\t\t\t\t\t\t`CapabilityAdmissionProposal '${proposal.proposalId}' was already seen`,\n\t\t\t\t\t\t\t{ subjectId: proposal.subjectId, refs: capabilityProposalRefs(proposal) },\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstate.proposals.set(proposal.proposalId, proposal);\n\t\t\t}\n\t\t\tforEachPolicyDepBatch(ctx, 2, policyDeps.length, (raw) => {\n\t\t\t\tconst policy = raw as CapabilityAdmissionPolicy;\n\t\t\t\tconst issue = capabilityAdmissionPolicyIssue(policy);\n\t\t\t\tif (issue !== undefined) {\n\t\t\t\t\temitIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tnextMalformedIssueKey(state, \"policy\", policyKeyFallback(policy)),\n\t\t\t\t\t\tissue,\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (state.policies.has(policy.policyId)) {\n\t\t\t\t\temitIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`duplicate-policy:${policy.policyId}`,\n\t\t\t\t\t\tdataIssue(\n\t\t\t\t\t\t\t\"duplicate-capability-admission-policy\",\n\t\t\t\t\t\t\t`CapabilityAdmissionPolicy '${policy.policyId}' was already seen`,\n\t\t\t\t\t\t\t{ refs: [ref(\"capability-admission-policy\", policy.policyId)] },\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tstate.policies.set(policy.policyId, policy);\n\t\t\t});\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst decision = raw as CapabilityAdmissionDecision;\n\t\t\t\tconst issue = capabilityAdmissionDecisionIssue(decision);\n\t\t\t\tif (issue !== undefined) {\n\t\t\t\t\temitIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tnextMalformedIssueKey(state, \"decision\", decisionKeyFallback(decision)),\n\t\t\t\t\t\tissue,\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (state.decisions.has(decision.decisionId)) {\n\t\t\t\t\temitIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`duplicate-decision:${decision.decisionId}`,\n\t\t\t\t\t\tdataIssue(\n\t\t\t\t\t\t\t\"duplicate-capability-admission-decision\",\n\t\t\t\t\t\t\t`CapabilityAdmissionDecision '${decision.decisionId}' was already seen`,\n\t\t\t\t\t\t\t{ refs: capabilityDecisionRefs(decision) },\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstate.decisions.set(decision.decisionId, decision);\n\t\t\t}\n\t\t\tevaluateCapabilityAdmissions(ctx, state, now());\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{ name: `${name}/runtime`, factory: \"capabilityAdmissionProjector\", partial: true },\n\t);\n\treturn {\n\t\tadmissions: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/admissions`,\n\t\t\t\"capabilityAdmissions\",\n\t\t\t(fact) => (fact.kind === \"admission\" ? fact.admission : undefined),\n\t\t),\n\t\tstatus: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/status`,\n\t\t\t\"capabilityAdmissionStatus\",\n\t\t\t(fact) => (fact.kind === \"status\" ? fact.status : undefined),\n\t\t),\n\t\tissues: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/issues`,\n\t\t\t\"capabilityAdmissionIssues\",\n\t\t\t(fact) => (fact.kind === \"issue\" ? fact.issue : undefined),\n\t\t),\n\t\taudit: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/audit`,\n\t\t\t\"capabilityAdmissionAudit\",\n\t\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t\t),\n\t\tviews: capabilityAdmissionViews(graph, runtime, `${name}/views`),\n\t};\n}\n\nfunction evaluateCapabilityAdmissions(\n\tctx: Ctx,\n\tstate: CapabilityAdmissionStateInternal,\n\tadmittedAtMs: number,\n): void {\n\tfor (const decision of state.decisions.values()) {\n\t\tif (state.terminalDecisionIds.has(decision.decisionId)) continue;\n\t\tevaluateCapabilityAdmission(ctx, state, decision, admittedAtMs);\n\t}\n}\n\nfunction evaluateCapabilityAdmission(\n\tctx: Ctx,\n\tstate: CapabilityAdmissionStateInternal,\n\tdecision: CapabilityAdmissionDecision,\n\tadmittedAtMs: number,\n): void {\n\tconst proposal = state.proposals.get(decision.proposalId);\n\tif (proposal === undefined) {\n\t\temitIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`missing-proposal:${decision.decisionId}:${decision.proposalId}`,\n\t\t\tdataIssue(\n\t\t\t\t\"missing-capability-admission-proposal\",\n\t\t\t\t`CapabilityAdmissionDecision '${decision.decisionId}' references missing proposal '${decision.proposalId}'`,\n\t\t\t\t{ subjectId: decision.proposalId, refs: capabilityDecisionRefs(decision) },\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconst policy = capabilityPolicyForDecision(state, decision);\n\tif (typeof policy === \"string\") {\n\t\temitIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`${policy}:${decision.decisionId}:${decision.policyId ?? \"missing\"}`,\n\t\t\tdataIssue(policy, capabilityPolicyIssueMessage(policy, decision), {\n\t\t\t\tsubjectId: proposal.subjectId,\n\t\t\t\trefs: capabilityDecisionRefs(decision, proposal),\n\t\t\t}),\n\t\t);\n\t\tif (policy === \"stale-capability-admission-policy-ref\")\n\t\t\tstate.terminalDecisionIds.add(decision.decisionId);\n\t\treturn;\n\t}\n\tif (policy !== undefined) {\n\t\tconst policyIssue = validateCapabilityAdmissionPolicy(policy, decision, proposal);\n\t\tif (policyIssue !== undefined) {\n\t\t\temitIssue(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\t`${policyIssue.code}:${decision.decisionId}:${policy.policyId}`,\n\t\t\t\tdataIssue(policyIssue.code, policyIssue.message, {\n\t\t\t\t\tsubjectId: proposal.subjectId,\n\t\t\t\t\trefs: capabilityDecisionRefs(decision, proposal, policy),\n\t\t\t\t}),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t}\n\tif (state.admissionsById.has(decision.admissionId)) {\n\t\temitIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`duplicate-admission-id:${decision.admissionId}`,\n\t\t\tdataIssue(\n\t\t\t\t\"duplicate-capability-admission\",\n\t\t\t\t`CapabilityAdmission '${decision.admissionId}' was already emitted`,\n\t\t\t\t{ subjectId: proposal.subjectId, refs: capabilityDecisionRefs(decision, proposal, policy) },\n\t\t\t),\n\t\t);\n\t\tstate.terminalDecisionIds.add(decision.decisionId);\n\t\treturn;\n\t}\n\tif (state.admissionsByProposal.has(decision.proposalId)) {\n\t\temitIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`duplicate-admission-proposal:${decision.proposalId}:${decision.decisionId}`,\n\t\t\tdataIssue(\n\t\t\t\t\"duplicate-capability-admission-proposal\",\n\t\t\t\t`CapabilityAdmissionProposal '${decision.proposalId}' already has an admission decision`,\n\t\t\t\t{ subjectId: proposal.subjectId, refs: capabilityDecisionRefs(decision, proposal, policy) },\n\t\t\t),\n\t\t);\n\t\tstate.terminalDecisionIds.add(decision.decisionId);\n\t\treturn;\n\t}\n\tconst admissionState = admissionStateForOutcome(decision.outcome);\n\tif (admissionState === undefined) {\n\t\temitIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`unsupported-outcome:${decision.decisionId}:${String(decision.outcome)}`,\n\t\t\tdataIssue(\n\t\t\t\t\"unsupported-capability-admission-outcome\",\n\t\t\t\t`CapabilityAdmissionDecision '${decision.decisionId}' uses unsupported outcome '${String(decision.outcome)}'`,\n\t\t\t\t{ subjectId: proposal.subjectId, refs: capabilityDecisionRefs(decision, proposal, policy) },\n\t\t\t),\n\t\t);\n\t\tstate.terminalDecisionIds.add(decision.decisionId);\n\t\treturn;\n\t}\n\tconst admission: CapabilityAdmission = {\n\t\tkind: \"capability-admission\",\n\t\tadmissionId: decision.admissionId,\n\t\tproposalId: proposal.proposalId,\n\t\tsubjectId: proposal.subjectId,\n\t\tcapability: cloneCapabilityRef(proposal.capability),\n\t\tstate: admissionState,\n\t\tdecisionId: decision.decisionId,\n\t\tboundaryName: proposal.boundaryName,\n\t\trole: proposal.role,\n\t\tpolicyId: decision.policyId,\n\t\treason: decision.reason ?? proposal.reason,\n\t\tsourceRefs: capabilityDecisionRefs(decision, proposal, policy),\n\t\tadmittedAtMs: decision.decidedAtMs ?? admittedAtMs,\n\t\tmetadata: {\n\t\t\t...(proposal.metadata ?? {}),\n\t\t\t...(policy?.metadata ?? {}),\n\t\t\t...(decision.metadata ?? {}),\n\t\t},\n\t};\n\tstate.admissionsById.set(admission.admissionId, admission);\n\tstate.admissionsByProposal.set(admission.proposalId, admission);\n\tstate.terminalDecisionIds.add(decision.decisionId);\n\temitAdmission(ctx, state, admission);\n}\n\nfunction capabilityAdmissionViews(\n\tgraph: Graph,\n\truntime: Node<CapabilityAdmissionFact>,\n\tname: string,\n): Node<CapabilityAdmissionViews> {\n\treturn graph.node<CapabilityAdmissionViews>(\n\t\t[runtime],\n\t\t(ctx) => {\n\t\t\tconst state: CapabilityAdmissionViewsState =\n\t\t\t\tctx.state.get<CapabilityAdmissionViewsState>() ?? {\n\t\t\t\t\tadmissionsByProposal: new Map(),\n\t\t\t\t\tadmissionsBySubject: new Map(),\n\t\t\t\t\tissues: [],\n\t\t\t\t\taudit: [],\n\t\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst fact = raw as CapabilityAdmissionFact;\n\t\t\t\tif (fact.kind === \"admission\") {\n\t\t\t\t\tconst admission = fact.admission;\n\t\t\t\t\tstate.admissionsByProposal.set(admission.proposalId, admission);\n\t\t\t\t\tconst bySubject = state.admissionsBySubject.get(admission.subjectId) ?? [];\n\t\t\t\t\tbySubject.push(admission);\n\t\t\t\t\tstate.admissionsBySubject.set(admission.subjectId, bySubject);\n\t\t\t\t}\n\t\t\t\tif (fact.kind === \"issue\") state.issues.push(fact.issue);\n\t\t\t\tif (fact.kind === \"audit\") state.audit.push(fact.audit);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t\tctx.down([[\"DATA\", freezeCapabilityAdmissionViews(state)]]);\n\t\t},\n\t\t{ name, factory: \"capabilityAdmissionViews\" },\n\t);\n}\n\nfunction emitAdmission(\n\tctx: Ctx,\n\tstate: CapabilityAdmissionStateInternal,\n\tadmission: CapabilityAdmission,\n): void {\n\tstate.statusSeq += 1;\n\tstate.auditSeq += 1;\n\tconst statusState = capabilityAdmissionStatusState(admission.state);\n\tconst status: CapabilityAdmissionStatus = {\n\t\tkind: \"capability-admission-status\",\n\t\tstatusId: `${admission.subjectId}:${statusState}:${state.statusSeq}`,\n\t\tstate: statusState,\n\t\tproposalId: admission.proposalId,\n\t\tadmissionId: admission.admissionId,\n\t\tsubjectId: admission.subjectId,\n\t\tcapabilityId: admission.capability.id,\n\t\tcapabilityKind: admission.capability.kind,\n\t\tpolicyId: admission.policyId,\n\t\tsourceRefs: admission.sourceRefs,\n\t};\n\tconst audit: AgentRuntimeAuditRecord = {\n\t\tid: `${admission.subjectId}:${statusState}:${state.auditSeq}`,\n\t\tkind: `capability-admission-${admission.state}`,\n\t\tsubjectId: admission.subjectId,\n\t\tsourceRefs: admission.sourceRefs,\n\t\tmetadata: {\n\t\t\tadmissionId: admission.admissionId,\n\t\t\tcapabilityId: admission.capability.id,\n\t\t\tcapabilityKind: admission.capability.kind,\n\t\t\tpolicyId: admission.policyId,\n\t\t\tproposalId: admission.proposalId,\n\t\t},\n\t};\n\tctx.down([\n\t\t[\"DATA\", { kind: \"admission\", admission } satisfies CapabilityAdmissionFact],\n\t\t[\"DATA\", { kind: \"status\", status } satisfies CapabilityAdmissionFact],\n\t\t[\"DATA\", { kind: \"audit\", audit } satisfies CapabilityAdmissionFact],\n\t]);\n}\n\nfunction emitIssue(\n\tctx: Ctx,\n\tstate: CapabilityAdmissionStateInternal,\n\tkey: string,\n\tissue: DataIssue,\n): void {\n\tif (state.issueKeys.has(key)) return;\n\tstate.issueKeys.add(key);\n\tstate.statusSeq += 1;\n\tstate.auditSeq += 1;\n\tconst status: CapabilityAdmissionStatus = {\n\t\tkind: \"capability-admission-status\",\n\t\tstatusId: `capability-admission-issue:${state.statusSeq}`,\n\t\tstate: \"capability-admission-issue\",\n\t\tsubjectId: issue.subjectId,\n\t\tissues: [issue],\n\t};\n\tconst audit: AgentRuntimeAuditRecord = {\n\t\tid: `capability-admission-issue:${state.auditSeq}`,\n\t\tkind: \"capability-admission-issue\",\n\t\tsubjectId: issue.subjectId,\n\t\tmessage: issue.message,\n\t\tissueCode: issue.code,\n\t};\n\tctx.down([\n\t\t[\"DATA\", { kind: \"issue\", issue } satisfies CapabilityAdmissionFact],\n\t\t[\"DATA\", { kind: \"status\", status } satisfies CapabilityAdmissionFact],\n\t\t[\"DATA\", { kind: \"audit\", audit } satisfies CapabilityAdmissionFact],\n\t]);\n}\n\nfunction capabilityAdmissionProposalIssue(\n\tproposal: CapabilityAdmissionProposal,\n): DataIssue | undefined {\n\tif (\n\t\tproposal.kind !== \"capability-admission-proposal\" ||\n\t\ttypeof proposal.proposalId !== \"string\" ||\n\t\tproposal.proposalId.length === 0 ||\n\t\ttypeof proposal.subjectId !== \"string\" ||\n\t\tproposal.subjectId.length === 0 ||\n\t\t!isBoundaryCapabilityRef(proposal.capability)\n\t) {\n\t\treturn dataIssue(\n\t\t\t\"malformed-capability-admission-proposal\",\n\t\t\t\"CapabilityAdmissionProposal requires proposalId, subjectId, and a D348 BoundaryCapabilityRef\",\n\t\t\t{ subjectId: typeof proposal.subjectId === \"string\" ? proposal.subjectId : undefined },\n\t\t);\n\t}\n\treturn undefined;\n}\n\nfunction capabilityAdmissionPolicyIssue(policy: CapabilityAdmissionPolicy): DataIssue | undefined {\n\tif (\n\t\tpolicy.kind !== \"capability-admission-policy\" ||\n\t\ttypeof policy.policyId !== \"string\" ||\n\t\tpolicy.policyId.length === 0 ||\n\t\t(policy.capabilityIds !== undefined &&\n\t\t\t(!Array.isArray(policy.capabilityIds) ||\n\t\t\t\t!policy.capabilityIds.every((id) => typeof id === \"string\" && id.length > 0))) ||\n\t\t(policy.capabilityKinds !== undefined &&\n\t\t\t(!Array.isArray(policy.capabilityKinds) ||\n\t\t\t\t!policy.capabilityKinds.every(isBoundaryCapabilityKind))) ||\n\t\t(policy.requiredOnly !== undefined && typeof policy.requiredOnly !== \"boolean\") ||\n\t\t(policy.allowedOutcomes !== undefined &&\n\t\t\t(!Array.isArray(policy.allowedOutcomes) ||\n\t\t\t\t!policy.allowedOutcomes.every(isCapabilityAdmissionOutcome)))\n\t) {\n\t\treturn dataIssue(\n\t\t\t\"malformed-capability-admission-policy\",\n\t\t\t\"CapabilityAdmissionPolicy requires a policyId and D348 capability/outcome filters\",\n\t\t\t{ subjectId: typeof policy.policyId === \"string\" ? policy.policyId : undefined },\n\t\t);\n\t}\n\treturn undefined;\n}\n\nfunction capabilityAdmissionDecisionIssue(\n\tdecision: CapabilityAdmissionDecision,\n): DataIssue | undefined {\n\tif (\n\t\tdecision.kind !== \"capability-admission-decision\" ||\n\t\ttypeof decision.decisionId !== \"string\" ||\n\t\tdecision.decisionId.length === 0 ||\n\t\ttypeof decision.admissionId !== \"string\" ||\n\t\tdecision.admissionId.length === 0 ||\n\t\ttypeof decision.proposalId !== \"string\" ||\n\t\tdecision.proposalId.length === 0 ||\n\t\t!isCapabilityAdmissionOutcome(decision.outcome) ||\n\t\t(decision.policyId !== undefined &&\n\t\t\t(typeof decision.policyId !== \"string\" || decision.policyId.length === 0))\n\t) {\n\t\treturn dataIssue(\n\t\t\t\"malformed-capability-admission-decision\",\n\t\t\t\"CapabilityAdmissionDecision requires decisionId, admissionId, proposalId, and allow/block/defer outcome\",\n\t\t\t{ subjectId: typeof decision.proposalId === \"string\" ? decision.proposalId : undefined },\n\t\t);\n\t}\n\treturn undefined;\n}\n\nfunction validateCapabilityAdmissionPolicy(\n\tpolicy: CapabilityAdmissionPolicy,\n\tdecision: CapabilityAdmissionDecision,\n\tproposal: CapabilityAdmissionProposal,\n): { readonly code: string; readonly message: string } | undefined {\n\tif (\n\t\tpolicy.capabilityIds !== undefined &&\n\t\t!policy.capabilityIds.includes(proposal.capability.id)\n\t) {\n\t\treturn {\n\t\t\tcode: \"capability-admission-policy-mismatch\",\n\t\t\tmessage: `CapabilityAdmissionPolicy '${policy.policyId}' does not apply to capability '${proposal.capability.id}'`,\n\t\t};\n\t}\n\tif (\n\t\tpolicy.capabilityKinds !== undefined &&\n\t\t!policy.capabilityKinds.includes(proposal.capability.kind)\n\t) {\n\t\treturn {\n\t\t\tcode: \"capability-admission-policy-mismatch\",\n\t\t\tmessage: `CapabilityAdmissionPolicy '${policy.policyId}' does not apply to capability kind '${proposal.capability.kind}'`,\n\t\t};\n\t}\n\tif (policy.requiredOnly === true && !proposal.capability.required) {\n\t\treturn {\n\t\t\tcode: \"capability-admission-policy-mismatch\",\n\t\t\tmessage: `CapabilityAdmissionPolicy '${policy.policyId}' applies only to required capabilities`,\n\t\t};\n\t}\n\tif (policy.allowedOutcomes !== undefined && !policy.allowedOutcomes.includes(decision.outcome)) {\n\t\treturn {\n\t\t\tcode: \"unsupported-capability-admission-outcome\",\n\t\t\tmessage: `CapabilityAdmissionPolicy '${policy.policyId}' does not allow outcome '${decision.outcome}'`,\n\t\t};\n\t}\n\treturn undefined;\n}\n\nfunction capabilityPolicyForDecision(\n\tstate: CapabilityAdmissionStateInternal,\n\tdecision: CapabilityAdmissionDecision,\n):\n\t| CapabilityAdmissionPolicy\n\t| \"missing-capability-admission-policy\"\n\t| \"stale-capability-admission-policy-ref\"\n\t| undefined {\n\tif (decision.policyId === undefined) return undefined;\n\tconst stalePolicyRef = (decision.sourceRefs ?? []).find(\n\t\t(sourceRef) =>\n\t\t\tsourceRef.kind === \"capability-admission-policy\" && sourceRef.id !== decision.policyId,\n\t);\n\tif (stalePolicyRef !== undefined) return \"stale-capability-admission-policy-ref\";\n\treturn state.policies.get(decision.policyId) ?? \"missing-capability-admission-policy\";\n}\n\nfunction capabilityPolicyIssueMessage(\n\tcode: \"missing-capability-admission-policy\" | \"stale-capability-admission-policy-ref\",\n\tdecision: CapabilityAdmissionDecision,\n): string {\n\tif (code === \"missing-capability-admission-policy\") {\n\t\treturn `CapabilityAdmissionPolicy '${decision.policyId}' was referenced but not present`;\n\t}\n\treturn `CapabilityAdmissionDecision '${decision.decisionId}' carries a stale admission policy source ref`;\n}\n\nfunction admissionStateForOutcome(\n\toutcome: CapabilityAdmissionOutcome,\n): CapabilityAdmissionState | undefined {\n\tif (outcome === \"allow\") return \"allowed\";\n\tif (outcome === \"block\") return \"blocked\";\n\tif (outcome === \"defer\") return \"deferred\";\n\treturn undefined;\n}\n\nfunction capabilityAdmissionStatusState(\n\tstate: CapabilityAdmissionState,\n): CapabilityAdmissionStatus[\"state\"] {\n\tif (state === \"allowed\") return \"capability-admission-allowed\";\n\tif (state === \"blocked\") return \"capability-admission-blocked\";\n\treturn \"capability-admission-deferred\";\n}\n\nfunction cloneCapabilityRef(ref: BoundaryCapabilityRef): BoundaryCapabilityRef {\n\treturn {\n\t\tid: ref.id,\n\t\tkind: ref.kind,\n\t\trequired: ref.required,\n\t\t...(ref.sourceRefs === undefined ? {} : { sourceRefs: [...ref.sourceRefs] }),\n\t};\n}\n\nfunction isBoundaryCapabilityRef(value: unknown): value is BoundaryCapabilityRef {\n\tif (value === null || typeof value !== \"object\" || Array.isArray(value)) return false;\n\tconst record = value as Partial<BoundaryCapabilityRef>;\n\treturn (\n\t\ttypeof record.id === \"string\" &&\n\t\trecord.id.length > 0 &&\n\t\tisBoundaryCapabilityKind(record.kind) &&\n\t\ttypeof record.required === \"boolean\" &&\n\t\t(record.sourceRefs === undefined ||\n\t\t\t(Array.isArray(record.sourceRefs) &&\n\t\t\t\trecord.sourceRefs.every((sourceRef) => typeof sourceRef === \"string\")))\n\t);\n}\n\nfunction isBoundaryCapabilityKind(value: unknown): value is BoundaryCapabilityRef[\"kind\"] {\n\treturn value === \"auth\" || value === \"permission\" || value === \"config\" || value === \"resource\";\n}\n\nfunction isCapabilityAdmissionOutcome(value: unknown): value is CapabilityAdmissionOutcome {\n\treturn value === \"allow\" || value === \"block\" || value === \"defer\";\n}\n\nfunction proposalKeyFallback(proposal: CapabilityAdmissionProposal): string {\n\treturn typeof proposal.proposalId === \"string\" && proposal.proposalId.length > 0\n\t\t? proposal.proposalId\n\t\t: `${stringValue(proposal.subjectId) ?? \"unknown\"}:${capabilityKeyFallback(proposal.capability)}`;\n}\n\nfunction policyKeyFallback(policy: CapabilityAdmissionPolicy): string {\n\treturn typeof policy.policyId === \"string\" && policy.policyId.length > 0\n\t\t? policy.policyId\n\t\t: \"unknown\";\n}\n\nfunction decisionKeyFallback(decision: CapabilityAdmissionDecision): string {\n\treturn typeof decision.decisionId === \"string\" && decision.decisionId.length > 0\n\t\t? decision.decisionId\n\t\t: `${stringValue(decision.proposalId) ?? \"unknown\"}:${stringValue(decision.admissionId) ?? \"unknown\"}`;\n}\n\nfunction capabilityKeyFallback(value: unknown): string {\n\tif (!isBoundaryCapabilityRef(value)) return \"unknown-capability\";\n\treturn `${value.kind}:${value.id}`;\n}\n\nfunction nextMalformedIssueKey(\n\tstate: CapabilityAdmissionStateInternal,\n\tkind: \"decision\" | \"policy\" | \"proposal\",\n\tfallback: string,\n): string {\n\tstate.issueSeq += 1;\n\treturn `malformed-${kind}:${state.issueSeq}:${fallback}`;\n}\n\nfunction stringValue(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction capabilityProposalRefs(proposal: CapabilityAdmissionProposal): readonly SourceRef[] {\n\treturn uniqueSourceRefs([\n\t\tref(\"capability-admission-proposal\", proposal.proposalId),\n\t\tref(\"boundary-capability\", `${proposal.capability.kind}:${proposal.capability.id}`),\n\t\t...(proposal.sourceRefs ?? []),\n\t]);\n}\n\nfunction capabilityDecisionRefs(\n\tdecision: CapabilityAdmissionDecision,\n\tproposal?: CapabilityAdmissionProposal,\n\tpolicy?: CapabilityAdmissionPolicy,\n): readonly SourceRef[] {\n\treturn uniqueSourceRefs([\n\t\tref(\"capability-admission-decision\", decision.decisionId),\n\t\tref(\"capability-admission\", decision.admissionId),\n\t\tref(\"capability-admission-proposal\", decision.proposalId),\n\t\t...(proposal === undefined ? [] : capabilityProposalRefs(proposal)),\n\t\t...(decision.policyId === undefined\n\t\t\t? []\n\t\t\t: [ref(\"capability-admission-policy\", decision.policyId)]),\n\t\t...(policy === undefined ? [] : [ref(\"capability-admission-policy\", policy.policyId)]),\n\t\t...(decision.sourceRefs ?? []),\n\t]);\n}\n\nfunction forEachPolicyDepBatch(\n\tctx: Ctx,\n\tstart: number,\n\tcount: number,\n\tfn: (value: unknown) => void,\n): void {\n\tfor (let i = 0; i < count; i += 1) {\n\t\tfor (const value of depBatch(ctx, start + i) ?? []) fn(value);\n\t}\n}\n\nfunction projectRuntimeFact<T, TOut>(\n\tgraph: Graph,\n\truntime: Node<T>,\n\tname: string,\n\tfactory: string,\n\tpick: (fact: T) => TOut | undefined,\n): Node<TOut> {\n\treturn graph.node<TOut>(\n\t\t[runtime],\n\t\t(ctx) => {\n\t\t\tfor (const fact of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst typed = fact as T;\n\t\t\t\tconst value = pick(typed);\n\t\t\t\tif (value !== undefined) ctx.down([[\"DATA\", value]]);\n\t\t\t}\n\t\t},\n\t\t{ name, factory },\n\t);\n}\n\nfunction freezeCapabilityAdmissionViews(\n\tstate: CapabilityAdmissionViewsState,\n): CapabilityAdmissionViews {\n\treturn {\n\t\tadmissionsByProposal: new Map(state.admissionsByProposal),\n\t\tadmissionsBySubject: new Map(\n\t\t\tArray.from(state.admissionsBySubject, ([key, value]) => [key, Object.freeze([...value])]),\n\t\t),\n\t\tissues: Object.freeze([...state.issues]),\n\t\taudit: Object.freeze([...state.audit]),\n\t};\n}\n\nfunction emptyCapabilityAdmissionState(): CapabilityAdmissionStateInternal {\n\treturn {\n\t\tproposals: new Map(),\n\t\tpolicies: new Map(),\n\t\tdecisions: new Map(),\n\t\tadmissionsById: new Map(),\n\t\tadmissionsByProposal: new Map(),\n\t\tterminalDecisionIds: new Set(),\n\t\tissueKeys: new Set(),\n\t\tissueSeq: 0,\n\t\tstatusSeq: 0,\n\t\tauditSeq: 0,\n\t};\n}\n\nfunction dataIssue(\n\tcode: string,\n\tmessage: string,\n\topts: {\n\t\treadonly subjectId?: string;\n\t\treadonly refs?: readonly SourceRef[];\n\t\treadonly details?: unknown;\n\t} = {},\n): DataIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tcode,\n\t\tmessage,\n\t\tseverity: \"error\",\n\t\tsubjectId: opts.subjectId,\n\t\trefs: opts.refs?.map((sourceRef) => `${sourceRef.kind}:${sourceRef.id}`),\n\t\tdetails: opts.details,\n\t};\n}\n\nfunction uniqueSourceRefs(sourceRefs: readonly SourceRef[]): readonly SourceRef[] {\n\tconst seen = new Set<string>();\n\tconst out: SourceRef[] = [];\n\tfor (const sourceRef of sourceRefs) {\n\t\tconst key = `${sourceRef.kind}:${sourceRef.id}:${JSON.stringify(sourceRef.metadata ?? {})}`;\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tout.push(sourceRef);\n\t}\n\treturn out;\n}\n\nfunction ref(kind: string, id: string): SourceRef {\n\treturn { kind, id };\n}\n"],"mappings":"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","names":["resultId","ref"]}
|