@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/work-item/actions.ts","../../../src/protocol/messages.ts","../../../src/ctx/types.ts","../../../src/solutions/work-item/scheduling.ts","../../../src/orchestration/work-item-runtime.ts"],"sourcesContent":["/**\n * WorkItem domain action intake, admission, and application facts (D239/D333-D343).\n *\n * This focused solution subpath keeps action mutation data-first: proposals and\n * admissions are visible facts, and application lowers only to append-only\n * WorkItem authoring facts plus status/issue/audit projections. It does not\n * mutate WorkItem projections directly, run executors, claim queues, or install\n * hidden schedulers.\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 { BoundaryCapabilityKind, BoundaryCapabilityRef } from \"../../inspection/boundary.js\";\nimport type { Node } from \"../../node/node.js\";\nimport type { AgentRuntimeAuditRecord, SourceRef } from \"../../orchestration/agent-runtime.js\";\nimport type {\n\tWorkItemDomainActionAdmission,\n\tWorkItemDomainActionAdmissionDecision,\n\tWorkItemDomainActionProposal,\n} from \"../../orchestration/work-item-runtime.js\";\nimport type { CapabilityAdmission, CapabilityAdmissionStatus } from \"../capability-admission.js\";\nimport {\n\ttype AcceptanceCriterion,\n\ttype VerificationPlan,\n\tvalidateAcceptanceCriteria,\n\tvalidateVerificationPlan,\n\ttype WorkItemAuthoringFact,\n\ttype WorkItemDraft,\n\ttype WorkItemPatch,\n\ttype WorkItemProjection,\n} from \"./scheduling.js\";\n\nexport type {\n\tWorkItemDomainActionAdmission,\n\tWorkItemDomainActionAdmissionDecision,\n\tWorkItemDomainActionAdmissionPolicy,\n\tWorkItemDomainActionAdmissionViews,\n\tWorkItemDomainActionProposal,\n\tWorkItemDomainActionProposalSpec,\n} from \"../../orchestration/work-item-runtime.js\";\nexport { workItemDomainActionAdmissionProjector } from \"../../orchestration/work-item-runtime.js\";\n\nexport type WorkItemDomainActionKind =\n\t| \"patch\"\n\t| \"mark-verified\"\n\t| \"require-review\"\n\t| \"spawn-proposed\"\n\t| \"spawn-child\"\n\t| (string & {});\n\nexport interface WorkItemDomainActionProposalIntake<TPayload = unknown> {\n\treadonly kind: \"work-item-domain-action-proposal-intake\";\n\treadonly proposalId: string;\n\treadonly workItemId: string;\n\treadonly actionKind: WorkItemDomainActionKind;\n\treadonly payload?: TPayload;\n\treadonly reason?: string;\n\treadonly policyId?: string;\n\treadonly effectRunId?: string;\n\treadonly effectRunResultId?: string;\n\treadonly evidenceId?: string;\n\treadonly proposedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemDomainActionProposalInput<TPayload = unknown> =\n\t| WorkItemDomainActionProposal<TPayload>\n\t| WorkItemDomainActionProposalIntake<TPayload>\n\t| unknown;\n\nexport type WorkItemDomainActionStatusState =\n\t| \"proposed\"\n\t| \"applied\"\n\t| \"rejected\"\n\t| \"deferred\"\n\t| \"duplicate\"\n\t| \"missing-policy\"\n\t| \"merged\"\n\t| \"policy-rejected\"\n\t| \"proposal-only\";\n\nexport interface WorkItemDomainActionStatus {\n\treadonly kind: \"work-item-domain-action-status\";\n\treadonly statusId: string;\n\treadonly workItemId?: string;\n\treadonly proposalId?: string;\n\treadonly admissionId?: string;\n\treadonly actionKind?: string;\n\treadonly state: WorkItemDomainActionStatusState;\n\treadonly code?: string;\n\treadonly message?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemPatchActionPayload<TInput = unknown> {\n\treadonly patch?: WorkItemPatch<TInput>;\n\treadonly acceptanceCriteria?: readonly AcceptanceCriterion[];\n\treadonly verificationPlan?: VerificationPlan<TInput>;\n\treadonly executionRelevantFields?: readonly string[];\n\treadonly authorId?: string;\n\treadonly eventId?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemSpawnActionPayload<TInput = unknown> {\n\treadonly workItemId?: string;\n\treadonly childWorkItemId?: string;\n\treadonly draft?: WorkItemDraft<TInput>;\n\treadonly authorId?: string;\n\treadonly eventId?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemDomainActionApplyPolicy {\n\treadonly kind: \"work-item-domain-action-apply-policy\";\n\treadonly policyId: string;\n\treadonly actionKinds?: readonly WorkItemDomainActionKind[];\n\treadonly patch?: {\n\t\treadonly allowedFields?: readonly string[];\n\t\treadonly executionRelevantFields?: readonly string[];\n\t\treadonly allowAcceptanceCriteria?: boolean;\n\t\treadonly allowVerificationPlan?: boolean;\n\t};\n\treadonly spawn?: {\n\t\treadonly create?: boolean;\n\t\treadonly linkParent?: boolean;\n\t\treadonly idempotencyKey?: string;\n\t\treadonly maxChildrenPerAdmission?: number;\n\t\treadonly childWorkItemId?: string;\n\t\treadonly childIdPrefix?: string;\n\t};\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemDomainActionApplication {\n\treadonly kind: \"work-item-domain-action-application\";\n\treadonly applicationId: string;\n\treadonly admissionId: string;\n\treadonly proposalId: string;\n\treadonly workItemId: string;\n\treadonly actionKind: string;\n\treadonly state: Exclude<WorkItemDomainActionStatusState, \"proposed\">;\n\treadonly producedFactIds?: readonly string[];\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemDomainActionIntakeOptions {\n\treadonly name?: string;\n\treadonly proposals: Node<WorkItemDomainActionProposalInput>;\n\treadonly now?: () => number;\n}\n\nexport interface WorkItemDomainActionIntakeBundle {\n\treadonly proposals: Node<WorkItemDomainActionProposal>;\n\treadonly status: Node<WorkItemDomainActionStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport interface WorkItemDomainActionApplicationOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly proposals: Node<WorkItemDomainActionProposal>;\n\treadonly admissions: Node<WorkItemDomainActionAdmission>;\n\treadonly workItems: Node<WorkItemProjection<TInput>>;\n\treadonly applyPolicies?: Node<WorkItemDomainActionApplyPolicy>;\n}\n\nexport interface WorkItemDomainActionApplicationBundle<TInput = unknown> {\n\treadonly authoringFacts: Node<WorkItemAuthoringFact<TInput>>;\n\treadonly applications: Node<WorkItemDomainActionApplication>;\n\treadonly status: Node<WorkItemDomainActionStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\n/**\n * Product-owned command capability policy (D357): maps WorkItem domain action\n * proposals to explicit boundary capability refs and admission subjects without\n * defining provider/security registry semantics or protocol status vocabulary.\n */\nexport interface WorkItemDomainActionCapabilityGuardPolicy {\n\treadonly kind: \"work-item-domain-action-capability-guard-policy\";\n\treadonly policyId: string;\n\treadonly actionKinds?: readonly WorkItemDomainActionKind[];\n\treadonly capabilityRefs: readonly BoundaryCapabilityRef[];\n\treadonly admissionSubjectIds: readonly string[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * Visible DATA status for the capability guard (D357). Missing or mismatched\n * capability facts remain product issues/status, not protocol ERROR messages.\n */\nexport interface WorkItemDomainActionCapabilityGuardStatus {\n\treadonly kind: \"work-item-domain-action-capability-guard-status\";\n\treadonly statusId: string;\n\treadonly state: \"admitted\" | \"rejected\" | \"deferred\" | \"issue\";\n\treadonly workItemId?: string;\n\treadonly proposalId?: string;\n\treadonly actionKind?: string;\n\treadonly policyId?: string;\n\treadonly capabilityRefs?: readonly BoundaryCapabilityRef[];\n\treadonly admissionSubjectIds?: readonly string[];\n\treadonly admissionIds?: readonly string[];\n\treadonly issues?: readonly DataIssue[];\n\treadonly message?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * Inputs for the WorkItem domain-action capability guard. All dependencies are\n * ordinary solution/product DATA facts; the guard does not mutate WorkItems or\n * claim dispatch queues.\n */\nexport interface WorkItemDomainActionCapabilityGuardOptions {\n\treadonly name?: string;\n\treadonly proposals: Node<WorkItemDomainActionProposal>;\n\treadonly capabilityAdmissions: Node<CapabilityAdmission>;\n\treadonly guardPolicies: Node<WorkItemDomainActionCapabilityGuardPolicy>;\n\treadonly capabilityAdmissionStatus?: Node<CapabilityAdmissionStatus>;\n\treadonly now?: () => number;\n}\n\n/**\n * Output facts for product admission consumption. Decisions feed the existing\n * WorkItem domain-action admission path; status/issues/audit remain inspectable\n * product DATA.\n */\nexport interface WorkItemDomainActionCapabilityGuardBundle {\n\treadonly decisions: Node<WorkItemDomainActionAdmissionDecision>;\n\treadonly status: Node<WorkItemDomainActionCapabilityGuardStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\ntype IntakeFact =\n\t| { readonly kind: \"proposal\"; readonly value: WorkItemDomainActionProposal }\n\t| { readonly kind: \"status\"; readonly value: WorkItemDomainActionStatus }\n\t| { readonly kind: \"issue\"; readonly value: DataIssue }\n\t| { readonly kind: \"audit\"; readonly value: AgentRuntimeAuditRecord };\n\ntype ApplicationFact<T> =\n\t| { readonly kind: \"authoring-fact\"; readonly value: WorkItemAuthoringFact<T> }\n\t| { readonly kind: \"application\"; readonly value: WorkItemDomainActionApplication }\n\t| { readonly kind: \"status\"; readonly value: WorkItemDomainActionStatus }\n\t| { readonly kind: \"issue\"; readonly value: DataIssue }\n\t| { readonly kind: \"audit\"; readonly value: AgentRuntimeAuditRecord };\n\ntype CapabilityGuardFact =\n\t| { readonly kind: \"decision\"; readonly value: WorkItemDomainActionAdmissionDecision }\n\t| { readonly kind: \"status\"; readonly value: WorkItemDomainActionCapabilityGuardStatus }\n\t| { readonly kind: \"issue\"; readonly value: DataIssue }\n\t| { readonly kind: \"audit\"; readonly value: AgentRuntimeAuditRecord };\n\ninterface IntakeState {\n\treadonly proposals: Set<string>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\ninterface ApplicationState<T> {\n\treadonly proposals: Map<string, WorkItemDomainActionProposal>;\n\treadonly admissions: Map<string, WorkItemDomainActionAdmission>;\n\treadonly workItems: Map<string, WorkItemProjection<T>>;\n\treadonly policies: Map<string, WorkItemDomainActionApplyPolicy>;\n\treadonly appliedAdmissions: Set<string>;\n\treadonly emittedFactIds: Set<string>;\n\treadonly issueKeys: Set<string>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\ninterface CapabilityGuardState {\n\treadonly proposals: Map<string, WorkItemDomainActionProposal>;\n\treadonly admissionsByCapability: Map<string, CapabilityAdmission[]>;\n\treadonly issueStatusesByCapability: Map<string, CapabilityAdmissionStatus[]>;\n\treadonly issueStatusesWithoutCapability: CapabilityAdmissionStatus[];\n\treadonly policies: Map<string, WorkItemDomainActionCapabilityGuardPolicy>;\n\treadonly emittedProposalDecisions: Set<string>;\n\treadonly emittedStatusKeys: Set<string>;\n\treadonly issueKeys: Set<string>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\nconst patchFieldKeys = new Set([\n\t\"summary\",\n\t\"detail\",\n\t\"detailRefs\",\n\t\"kind\",\n\t\"priority\",\n\t\"tags\",\n\t\"owner\",\n\t\"assignee\",\n\t\"deadlineMs\",\n\t\"customFields\",\n\t\"sourceRefs\",\n\t\"metadata\",\n]);\n\nexport function workItemDomainActionProposal(\n\tproposalId: string,\n\tworkItemId: string,\n\tactionKind: WorkItemDomainActionKind,\n\topts: Omit<\n\t\tPartial<WorkItemDomainActionProposal>,\n\t\t\"kind\" | \"proposalId\" | \"workItemId\" | \"actionKind\"\n\t> = {},\n): WorkItemDomainActionProposal {\n\treturn {\n\t\tkind: \"work-item-domain-action-proposal\",\n\t\tproposalId,\n\t\tworkItemId,\n\t\tactionKind,\n\t\teffectRunId: opts.effectRunId ?? `domain-action:${proposalId}:effect-run`,\n\t\teffectRunResultId: opts.effectRunResultId ?? `domain-action:${proposalId}:effect-run-result`,\n\t\tevidenceId: opts.evidenceId ?? `domain-action:${proposalId}:evidence`,\n\t\tpolicyId: opts.policyId ?? \"domain-action-proposal\",\n\t\tpayload: opts.payload,\n\t\treason: opts.reason,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tproposedAtMs: opts.proposedAtMs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function workItemDomainActionProposalIntake<TPayload = unknown>(\n\tproposalId: string,\n\tworkItemId: string,\n\tactionKind: WorkItemDomainActionKind,\n\topts: Omit<\n\t\tPartial<WorkItemDomainActionProposalIntake<TPayload>>,\n\t\t\"kind\" | \"proposalId\" | \"workItemId\" | \"actionKind\"\n\t> = {},\n): WorkItemDomainActionProposalIntake<TPayload> {\n\treturn {\n\t\tkind: \"work-item-domain-action-proposal-intake\",\n\t\tproposalId,\n\t\tworkItemId,\n\t\tactionKind,\n\t\tpayload: opts.payload,\n\t\treason: opts.reason,\n\t\tpolicyId: opts.policyId,\n\t\teffectRunId: opts.effectRunId,\n\t\teffectRunResultId: opts.effectRunResultId,\n\t\tevidenceId: opts.evidenceId,\n\t\tproposedAtMs: opts.proposedAtMs,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function workItemDomainActionApplyPolicy(\n\tpolicyId: string,\n\topts: Omit<Partial<WorkItemDomainActionApplyPolicy>, \"kind\" | \"policyId\"> = {},\n): WorkItemDomainActionApplyPolicy {\n\treturn {\n\t\tkind: \"work-item-domain-action-apply-policy\",\n\t\tpolicyId,\n\t\tactionKinds: opts.actionKinds,\n\t\tpatch: opts.patch,\n\t\tspawn: opts.spawn,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function workItemDomainActionProposalIntakeProjector(\n\tgraph: Graph,\n\topts: WorkItemDomainActionIntakeOptions,\n): WorkItemDomainActionIntakeBundle {\n\tconst name = opts.name ?? \"workItemDomainActionIntake\";\n\tconst now = opts.now ?? Date.now;\n\tconst runtime = graph.node<IntakeFact>(\n\t\t[opts.proposals],\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<IntakeState>() ?? {\n\t\t\t\tproposals: new Set(),\n\t\t\t\tstatusSeq: 0,\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) reduceProposalIntake(ctx, state, raw, now());\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemDomainActionProposalIntakeProjector\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tproposals: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/proposals`,\n\t\t\t\"workItemDomainActionProposals\",\n\t\t\t(fact) => (fact.kind === \"proposal\" ? fact.value : undefined),\n\t\t),\n\t\tstatus: project(graph, runtime, `${name}/status`, \"workItemDomainActionStatus\", (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.value : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, \"workItemDomainActionIssues\", (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"workItemDomainActionAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function workItemDomainActionApplicationProjector<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkItemDomainActionApplicationOptions<TInput>,\n): WorkItemDomainActionApplicationBundle<TInput> {\n\tconst name = opts.name ?? \"workItemDomainActionApplication\";\n\tconst deps =\n\t\topts.applyPolicies === undefined\n\t\t\t? [opts.proposals, opts.admissions, opts.workItems]\n\t\t\t: [opts.proposals, opts.admissions, opts.workItems, opts.applyPolicies];\n\tconst runtime = graph.node<ApplicationFact<TInput>>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<ApplicationState<TInput>>() ?? {\n\t\t\t\tproposals: new Map(),\n\t\t\t\tadmissions: new Map(),\n\t\t\t\tworkItems: new Map(),\n\t\t\t\tpolicies: new Map(),\n\t\t\t\tappliedAdmissions: new Set(),\n\t\t\t\temittedFactIds: new Set(),\n\t\t\t\tissueKeys: new Set(),\n\t\t\t\tstatusSeq: 0,\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst proposal = raw as WorkItemDomainActionProposal;\n\t\t\t\tif (state.proposals.has(proposal.proposalId)) {\n\t\t\t\t\temitApplicationIssue(\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\t\"duplicate-suppressed\",\n\t\t\t\t\t\t`Duplicate WorkItem domain action proposal '${proposal.proposalId}' suppressed`,\n\t\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t\tproposal.sourceRefs,\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\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\t\t\tconst workItem = raw as WorkItemProjection<TInput>;\n\t\t\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t\t\t}\n\t\t\tif (opts.applyPolicies !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, 3) ?? []) {\n\t\t\t\t\tconst policy = raw as WorkItemDomainActionApplyPolicy;\n\t\t\t\t\tstate.policies.set(policy.policyId, policy);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst admission = raw as WorkItemDomainActionAdmission;\n\t\t\t\tif (state.admissions.has(admission.admissionId)) {\n\t\t\t\t\temitApplicationIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`duplicate-admission:${admission.admissionId}`,\n\t\t\t\t\t\t\"duplicate-suppressed\",\n\t\t\t\t\t\t`Duplicate WorkItem domain action admission '${admission.admissionId}' suppressed`,\n\t\t\t\t\t\tadmission.workItemId,\n\t\t\t\t\t\tadmissionRefs(admission),\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstate.admissions.set(admission.admissionId, admission);\n\t\t\t}\n\t\t\tfor (const admission of state.admissions.values()) applyAdmission(ctx, state, admission);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemDomainActionApplicationProjector\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tauthoringFacts: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/authoringFacts`,\n\t\t\t\"workItemDomainActionAuthoringFacts\",\n\t\t\t(fact) => (fact.kind === \"authoring-fact\" ? fact.value : undefined),\n\t\t),\n\t\tapplications: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/applications`,\n\t\t\t\"workItemDomainActionApplications\",\n\t\t\t(fact) => (fact.kind === \"application\" ? fact.value : undefined),\n\t\t),\n\t\tstatus: project(graph, runtime, `${name}/status`, \"workItemDomainActionStatus\", (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.value : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, \"workItemDomainActionIssues\", (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"workItemDomainActionAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\n/**\n * Connects CapabilityAdmission facts to WorkItem domain-action admission as a\n * product-owned guard (D357), without adding protocol/boundary vocabulary or\n * treating AutoPanel display affordances as hard security enforcement.\n */\nexport function workItemDomainActionCapabilityGuardProjector(\n\tgraph: Graph,\n\topts: WorkItemDomainActionCapabilityGuardOptions,\n): WorkItemDomainActionCapabilityGuardBundle {\n\tconst name = opts.name ?? \"workItemDomainActionCapabilityGuard\";\n\tconst deps =\n\t\topts.capabilityAdmissionStatus === undefined\n\t\t\t? [opts.proposals, opts.capabilityAdmissions, opts.guardPolicies]\n\t\t\t: [\n\t\t\t\t\topts.proposals,\n\t\t\t\t\topts.capabilityAdmissions,\n\t\t\t\t\topts.guardPolicies,\n\t\t\t\t\topts.capabilityAdmissionStatus,\n\t\t\t\t];\n\tconst statusIndex = opts.capabilityAdmissionStatus === undefined ? -1 : 3;\n\tconst now = opts.now ?? Date.now;\n\tconst runtime = graph.node<CapabilityGuardFact>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state: CapabilityGuardState = ctx.state.get<CapabilityGuardState>() ?? {\n\t\t\t\tproposals: new Map(),\n\t\t\t\tadmissionsByCapability: new Map(),\n\t\t\t\tissueStatusesByCapability: new Map(),\n\t\t\t\tissueStatusesWithoutCapability: [],\n\t\t\t\tpolicies: new Map(),\n\t\t\t\temittedProposalDecisions: new Set(),\n\t\t\t\temittedStatusKeys: new Set(),\n\t\t\t\tissueKeys: new Set(),\n\t\t\t\tstatusSeq: 0,\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\t\t\tconst policyIssue = capabilityGuardPolicyIssue(raw);\n\t\t\t\tif (policyIssue !== undefined) {\n\t\t\t\t\temitCapabilityGuardIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`malformed-policy:${recordString(raw, \"policyId\") ?? \"unknown\"}`,\n\t\t\t\t\t\tpolicyIssue,\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst policy = raw as WorkItemDomainActionCapabilityGuardPolicy;\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 admissionIssue = capabilityAdmissionIssue(raw);\n\t\t\t\tif (admissionIssue !== undefined) {\n\t\t\t\t\temitCapabilityGuardIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`malformed-admission:${recordString(raw, \"admissionId\") ?? \"unknown\"}`,\n\t\t\t\t\t\tadmissionIssue,\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst admission = raw as CapabilityAdmission;\n\t\t\t\tconst capabilityKey = capabilityBoundaryRefId(admission.capability);\n\t\t\t\tconst byCapability: CapabilityAdmission[] =\n\t\t\t\t\tstate.admissionsByCapability.get(capabilityKey) ?? [];\n\t\t\t\tif (!byCapability.some((item) => item.admissionId === admission.admissionId)) {\n\t\t\t\t\tstate.admissionsByCapability.set(capabilityKey, [...byCapability, admission]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (statusIndex >= 0) {\n\t\t\t\tfor (const raw of depBatch(ctx, statusIndex) ?? []) {\n\t\t\t\t\tconst statusIssue = capabilityAdmissionStatusIssue(raw);\n\t\t\t\t\tif (statusIssue !== undefined) {\n\t\t\t\t\t\temitCapabilityGuardIssue(\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t`malformed-capability-status:${recordString(raw, \"statusId\") ?? \"unknown\"}`,\n\t\t\t\t\t\t\tstatusIssue,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst status = raw as CapabilityAdmissionStatus;\n\t\t\t\t\tif (status.state !== \"capability-admission-issue\") continue;\n\t\t\t\t\tconst capabilityId = status.capabilityId;\n\t\t\t\t\tconst capabilityKind = status.capabilityKind;\n\t\t\t\t\tif (capabilityId !== undefined && capabilityKind !== undefined) {\n\t\t\t\t\t\tconst capabilityKey = capabilityBoundaryRefId({\n\t\t\t\t\t\t\tid: capabilityId,\n\t\t\t\t\t\t\tkind: capabilityKind,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst statuses: CapabilityAdmissionStatus[] =\n\t\t\t\t\t\t\tstate.issueStatusesByCapability.get(capabilityKey) ?? [];\n\t\t\t\t\t\tif (!statuses.some((item) => item.statusId === status.statusId)) {\n\t\t\t\t\t\t\tstate.issueStatusesByCapability.set(capabilityKey, [...statuses, status]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t!state.issueStatusesWithoutCapability.some((item) => item.statusId === status.statusId)\n\t\t\t\t\t) {\n\t\t\t\t\t\tstate.issueStatusesWithoutCapability.push(status);\n\t\t\t\t\t}\n\t\t\t\t\tfor (const proposal of state.proposals.values())\n\t\t\t\t\t\temitCapabilityStatusIssueForProposal(ctx, state, proposal, status);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst proposalIssue = capabilityGuardProposalIssue(raw);\n\t\t\t\tif (proposalIssue !== undefined) {\n\t\t\t\t\temitCapabilityGuardIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`malformed-proposal:${recordString(raw, \"proposalId\") ?? \"unknown\"}`,\n\t\t\t\t\t\tproposalIssue,\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst proposal = raw as WorkItemDomainActionProposal;\n\t\t\t\tstate.proposals.set(proposal.proposalId, proposal);\n\t\t\t}\n\t\t\tfor (const proposal of state.proposals.values())\n\t\t\t\tevaluateCapabilityGuardProposal(ctx, state, proposal, now());\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemDomainActionCapabilityGuardProjector\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tdecisions: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/decisions`,\n\t\t\t\"workItemDomainActionCapabilityGuardDecisions\",\n\t\t\t(fact) => (fact.kind === \"decision\" ? fact.value : undefined),\n\t\t),\n\t\tstatus: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/status`,\n\t\t\t\"workItemDomainActionCapabilityGuardStatus\",\n\t\t\t(fact) => (fact.kind === \"status\" ? fact.value : undefined),\n\t\t),\n\t\tissues: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/issues`,\n\t\t\t\"workItemDomainActionCapabilityGuardIssues\",\n\t\t\t(fact) => (fact.kind === \"issue\" ? fact.value : undefined),\n\t\t),\n\t\taudit: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/audit`,\n\t\t\t\"workItemDomainActionCapabilityGuardAudit\",\n\t\t\t(fact) => (fact.kind === \"audit\" ? fact.value : undefined),\n\t\t),\n\t};\n}\n\nfunction evaluateCapabilityGuardProposal(\n\tctx: Ctx,\n\tstate: CapabilityGuardState,\n\tproposal: WorkItemDomainActionProposal,\n\tdecidedAtMs: number,\n): void {\n\tif (state.emittedProposalDecisions.has(proposal.proposalId)) return;\n\tconst policy = selectCapabilityGuardPolicy(state, proposal);\n\tif (typeof policy === \"string\") {\n\t\temitCapabilityGuardIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`policy:${proposal.proposalId}:${policy}`,\n\t\t\tdataIssue(policy, capabilityGuardPolicyMessage(policy, proposal), {\n\t\t\t\tsubjectId: proposal.workItemId,\n\t\t\t\trefs: [ref(\"work-item-domain-action-proposal\", proposal.proposalId)],\n\t\t\t}),\n\t\t);\n\t\treturn;\n\t}\n\tfor (const status of state.issueStatusesWithoutCapability)\n\t\temitCapabilityStatusIssueForProposal(ctx, state, proposal, status);\n\tfor (const capabilityRef of policy.capabilityRefs) {\n\t\tfor (const status of state.issueStatusesByCapability.get(\n\t\t\tcapabilityBoundaryRefId(capabilityRef),\n\t\t) ?? [])\n\t\t\temitCapabilityStatusIssueForProposal(ctx, state, proposal, status);\n\t}\n\tconst admissions = policy.capabilityRefs.map((capabilityRef) =>\n\t\tlatestCapabilityAdmission(state, policy, capabilityRef),\n\t);\n\tconst missingCapabilityRefs = policy.capabilityRefs.filter(\n\t\t(_, index) => admissions[index] === undefined,\n\t);\n\tconst deferredCapabilityRefs = admissions\n\t\t.filter((admission): admission is CapabilityAdmission => admission !== undefined)\n\t\t.filter((admission) => admission.state === \"deferred\")\n\t\t.map((admission) => capabilityBoundaryRefId(admission.capability));\n\tif (missingCapabilityRefs.length > 0 || deferredCapabilityRefs.length > 0) {\n\t\temitCapabilityGuardStatusOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`deferred:${proposal.proposalId}:${policy.policyId}:missing=${missingCapabilityRefs.map(capabilityBoundaryRefId).join(\",\")}:deferred=${deferredCapabilityRefs.join(\",\")}`,\n\t\t\t{\n\t\t\t\tstate: \"deferred\",\n\t\t\t\tworkItemId: proposal.workItemId,\n\t\t\t\tproposalId: proposal.proposalId,\n\t\t\t\tactionKind: proposal.actionKind,\n\t\t\t\tpolicyId: policy.policyId,\n\t\t\t\tcapabilityRefs: policy.capabilityRefs,\n\t\t\t\tadmissionSubjectIds: policy.admissionSubjectIds,\n\t\t\t\tmessage: \"WorkItem domain action is waiting for capability admission\",\n\t\t\t\tsourceRefs: capabilityGuardRefs(proposal, policy, admissions),\n\t\t\t\tmetadata: {\n\t\t\t\t\tmissingCapabilityRefs: missingCapabilityRefs.map(capabilityBoundaryRefId),\n\t\t\t\t\tdeferredCapabilityRefs,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\treturn;\n\t}\n\tconst presentAdmissions = admissions.filter(\n\t\t(admission): admission is CapabilityAdmission => admission !== undefined,\n\t);\n\tconst blocked = presentAdmissions.filter((admission) => admission.state === \"blocked\");\n\tconst outcome: WorkItemDomainActionAdmissionDecision[\"outcome\"] =\n\t\tblocked.length === 0 ? \"admit\" : \"reject\";\n\tconst decision: WorkItemDomainActionAdmissionDecision = {\n\t\tkind: \"work-item-domain-action-admission-decision\",\n\t\tdecisionId: `capability-guard:${proposal.proposalId}:decision`,\n\t\tadmissionId: `capability-guard:${proposal.proposalId}:admission`,\n\t\tproposalId: proposal.proposalId,\n\t\toutcome,\n\t\treason:\n\t\t\tblocked.length === 0\n\t\t\t\t? \"Capability guard admitted required capabilities\"\n\t\t\t\t: \"Capability guard rejected blocked capabilities\",\n\t\tdecidedAtMs,\n\t\tsourceRefs: capabilityGuardRefs(proposal, policy, presentAdmissions),\n\t\tmetadata: {\n\t\t\tcapabilityGuardPolicyId: policy.policyId,\n\t\t\tcapabilityRefs: policy.capabilityRefs.map(capabilityBoundaryRefId),\n\t\t\tadmissionSubjectIds: policy.admissionSubjectIds,\n\t\t\tblockedCapabilityRefs: blocked.map((admission) =>\n\t\t\t\tcapabilityBoundaryRefId(admission.capability),\n\t\t\t),\n\t\t},\n\t};\n\tstate.emittedProposalDecisions.add(proposal.proposalId);\n\temitCapabilityGuard(ctx, \"decision\", decision);\n\temitCapabilityGuardStatus(ctx, state, {\n\t\tstate: outcome === \"admit\" ? \"admitted\" : \"rejected\",\n\t\tworkItemId: proposal.workItemId,\n\t\tproposalId: proposal.proposalId,\n\t\tactionKind: proposal.actionKind,\n\t\tpolicyId: policy.policyId,\n\t\tcapabilityRefs: policy.capabilityRefs,\n\t\tadmissionSubjectIds: policy.admissionSubjectIds,\n\t\tadmissionIds: presentAdmissions.map((admission) => admission.admissionId),\n\t\tsourceRefs: decision.sourceRefs,\n\t\tmetadata: { decisionId: decision.decisionId, admissionId: decision.admissionId },\n\t});\n}\n\nfunction capabilityGuardProposalIssue(proposal: unknown): DataIssue | undefined {\n\tif (\n\t\t!isRecord(proposal) ||\n\t\tproposal.kind !== \"work-item-domain-action-proposal\" ||\n\t\ttypeof proposal.proposalId !== \"string\" ||\n\t\tproposal.proposalId.length === 0 ||\n\t\ttypeof proposal.workItemId !== \"string\" ||\n\t\tproposal.workItemId.length === 0 ||\n\t\ttypeof proposal.actionKind !== \"string\" ||\n\t\tproposal.actionKind.length === 0 ||\n\t\t(proposal.sourceRefs !== undefined && !isSourceRefArray(proposal.sourceRefs))\n\t) {\n\t\treturn dataIssue(\n\t\t\t\"malformed-work-item-domain-action-capability-guard-proposal\",\n\t\t\t\"WorkItem domain action capability guard requires valid proposal DATA facts\",\n\t\t\t{ subjectId: recordString(proposal, \"workItemId\") },\n\t\t);\n\t}\n\treturn undefined;\n}\n\nfunction capabilityGuardPolicyIssue(policy: unknown): DataIssue | undefined {\n\tif (\n\t\t!isRecord(policy) ||\n\t\tpolicy.kind !== \"work-item-domain-action-capability-guard-policy\" ||\n\t\ttypeof policy.policyId !== \"string\" ||\n\t\tpolicy.policyId.length === 0 ||\n\t\t!Array.isArray(policy.capabilityRefs) ||\n\t\tpolicy.capabilityRefs.length === 0 ||\n\t\t!policy.capabilityRefs.every(isBoundaryCapabilityRef) ||\n\t\t!Array.isArray(policy.admissionSubjectIds) ||\n\t\tpolicy.admissionSubjectIds.length === 0 ||\n\t\t!policy.admissionSubjectIds.every((id) => typeof id === \"string\" && id.length > 0) ||\n\t\t(policy.actionKinds !== undefined &&\n\t\t\t(!Array.isArray(policy.actionKinds) ||\n\t\t\t\t!policy.actionKinds.every((kind) => typeof kind === \"string\" && kind.length > 0)))\n\t) {\n\t\treturn dataIssue(\n\t\t\t\"malformed-work-item-domain-action-capability-guard-policy\",\n\t\t\t\"WorkItem domain action capability guard policy requires policyId, capabilityRefs, and admissionSubjectIds\",\n\t\t\t{\n\t\t\t\tsubjectId: recordString(policy, \"policyId\"),\n\t\t\t},\n\t\t);\n\t}\n\treturn undefined;\n}\n\nfunction capabilityAdmissionIssue(admission: unknown): DataIssue | undefined {\n\tif (\n\t\t!isRecord(admission) ||\n\t\tadmission.kind !== \"capability-admission\" ||\n\t\ttypeof admission.admissionId !== \"string\" ||\n\t\tadmission.admissionId.length === 0 ||\n\t\ttypeof admission.proposalId !== \"string\" ||\n\t\tadmission.proposalId.length === 0 ||\n\t\ttypeof admission.subjectId !== \"string\" ||\n\t\tadmission.subjectId.length === 0 ||\n\t\t!isBoundaryCapabilityRef(admission.capability) ||\n\t\t!isCapabilityAdmissionState(admission.state) ||\n\t\ttypeof admission.decisionId !== \"string\" ||\n\t\tadmission.decisionId.length === 0 ||\n\t\t(admission.sourceRefs !== undefined && !isSourceRefArray(admission.sourceRefs))\n\t) {\n\t\treturn dataIssue(\n\t\t\t\"malformed-capability-admission\",\n\t\t\t\"WorkItem domain action capability guard requires valid CapabilityAdmission DATA facts\",\n\t\t\t{ subjectId: recordString(admission, \"subjectId\") },\n\t\t);\n\t}\n\treturn undefined;\n}\n\nfunction capabilityAdmissionStatusIssue(status: unknown): DataIssue | undefined {\n\tif (\n\t\t!isRecord(status) ||\n\t\tstatus.kind !== \"capability-admission-status\" ||\n\t\ttypeof status.statusId !== \"string\" ||\n\t\tstatus.statusId.length === 0 ||\n\t\t!isCapabilityAdmissionStatusState(status.state)\n\t) {\n\t\treturn dataIssue(\n\t\t\t\"malformed-capability-admission-status\",\n\t\t\t\"WorkItem domain action capability guard requires valid CapabilityAdmissionStatus DATA facts\",\n\t\t\t{ subjectId: recordString(status, \"subjectId\") },\n\t\t);\n\t}\n\tconst hasCapabilityId = status.capabilityId !== undefined;\n\tconst hasCapabilityKind = status.capabilityKind !== undefined;\n\tif (\n\t\thasCapabilityId !== hasCapabilityKind ||\n\t\t(hasCapabilityId &&\n\t\t\t(typeof status.capabilityId !== \"string\" ||\n\t\t\t\tstatus.capabilityId.length === 0 ||\n\t\t\t\t!isBoundaryCapabilityKind(status.capabilityKind))) ||\n\t\t(status.sourceRefs !== undefined && !isSourceRefArray(status.sourceRefs)) ||\n\t\t(status.issues !== undefined && !isDataIssueArray(status.issues))\n\t) {\n\t\treturn dataIssue(\n\t\t\t\"malformed-capability-admission-status\",\n\t\t\t\"WorkItem domain action capability guard requires valid CapabilityAdmissionStatus DATA facts\",\n\t\t\t{ subjectId: recordString(status, \"subjectId\") },\n\t\t);\n\t}\n\treturn undefined;\n}\n\nfunction isCapabilityAdmissionState(value: unknown): value is CapabilityAdmission[\"state\"] {\n\treturn value === \"allowed\" || value === \"blocked\" || value === \"deferred\";\n}\n\nfunction isCapabilityAdmissionStatusState(\n\tvalue: unknown,\n): value is CapabilityAdmissionStatus[\"state\"] {\n\treturn (\n\t\tvalue === \"capability-admission-allowed\" ||\n\t\tvalue === \"capability-admission-blocked\" ||\n\t\tvalue === \"capability-admission-deferred\" ||\n\t\tvalue === \"capability-admission-issue\"\n\t);\n}\n\nfunction isSourceRefArray(value: unknown): value is readonly SourceRef[] {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tvalue.every(\n\t\t\t(item) => isRecord(item) && typeof item.kind === \"string\" && typeof item.id === \"string\",\n\t\t)\n\t);\n}\n\nfunction isDataIssueArray(value: unknown): value is readonly DataIssue[] {\n\treturn Array.isArray(value) && value.every(isDataIssue);\n}\n\nfunction isDataIssue(value: unknown): value is DataIssue {\n\treturn (\n\t\tisRecord(value) &&\n\t\tvalue.kind === \"issue\" &&\n\t\ttypeof value.code === \"string\" &&\n\t\tvalue.code.length > 0 &&\n\t\ttypeof value.message === \"string\" &&\n\t\tvalue.message.length > 0\n\t);\n}\n\nfunction isBoundaryCapabilityRef(value: unknown): value is BoundaryCapabilityRef {\n\treturn (\n\t\tisRecord(value) &&\n\t\ttypeof value.id === \"string\" &&\n\t\tvalue.id.length > 0 &&\n\t\tisBoundaryCapabilityKind(value.kind) &&\n\t\ttypeof value.required === \"boolean\" &&\n\t\t(value.sourceRefs === undefined ||\n\t\t\t(Array.isArray(value.sourceRefs) &&\n\t\t\t\tvalue.sourceRefs.every((sourceRef) => typeof sourceRef === \"string\")))\n\t);\n}\n\nfunction isBoundaryCapabilityKind(value: unknown): value is BoundaryCapabilityKind {\n\treturn value === \"auth\" || value === \"permission\" || value === \"config\" || value === \"resource\";\n}\n\nfunction selectCapabilityGuardPolicy(\n\tstate: CapabilityGuardState,\n\tproposal: WorkItemDomainActionProposal,\n):\n\t| WorkItemDomainActionCapabilityGuardPolicy\n\t| \"missing-policy\"\n\t| \"unknown-work-item-domain-action-capability-guard-policy\"\n\t| \"policy-mismatch\" {\n\tconst explicitId =\n\t\tstringMetadata(proposal.metadata, \"capabilityGuardPolicyId\") ??\n\t\tproposal.sourceRefs?.find(\n\t\t\t(sourceRef) => sourceRef.kind === \"work-item-domain-action-capability-guard-policy\",\n\t\t)?.id;\n\tif (explicitId !== undefined)\n\t\treturn (\n\t\t\tstate.policies.get(explicitId) ?? \"unknown-work-item-domain-action-capability-guard-policy\"\n\t\t);\n\tconst matching = [...state.policies.values()].filter(\n\t\t(policy) =>\n\t\t\tpolicy.actionKinds === undefined || policy.actionKinds.includes(proposal.actionKind),\n\t);\n\tif (matching.length === 0) return \"missing-policy\";\n\tif (matching.length > 1) return \"policy-mismatch\";\n\treturn matching[0];\n}\n\nfunction latestCapabilityAdmission(\n\tstate: CapabilityGuardState,\n\tpolicy: WorkItemDomainActionCapabilityGuardPolicy,\n\tcapabilityRef: BoundaryCapabilityRef,\n): CapabilityAdmission | undefined {\n\tconst admissions = state.admissionsByCapability.get(capabilityBoundaryRefId(capabilityRef)) ?? [];\n\tfor (let index = admissions.length - 1; index >= 0; index -= 1) {\n\t\tconst admission = admissions[index];\n\t\tif (admission !== undefined && policy.admissionSubjectIds.includes(admission.subjectId))\n\t\t\treturn admission;\n\t}\n\treturn undefined;\n}\n\nfunction emitCapabilityStatusIssueForProposal(\n\tctx: Ctx,\n\tstate: CapabilityGuardState,\n\tproposal: WorkItemDomainActionProposal,\n\tstatus: CapabilityAdmissionStatus,\n): void {\n\tconst policy = selectCapabilityGuardPolicy(state, proposal);\n\tif (typeof policy === \"string\") return;\n\tif (status.subjectId !== undefined && !policy.admissionSubjectIds.includes(status.subjectId))\n\t\treturn;\n\tconst capabilityId = status.capabilityId;\n\tconst capabilityKind = status.capabilityKind;\n\tconst statusCapabilityKey =\n\t\tcapabilityId === undefined || capabilityKind === undefined\n\t\t\t? undefined\n\t\t\t: capabilityBoundaryRefId({ id: capabilityId, kind: capabilityKind });\n\tif (\n\t\tstatusCapabilityKey !== undefined &&\n\t\t!policy.capabilityRefs.some(\n\t\t\t(capabilityRef) => capabilityBoundaryRefId(capabilityRef) === statusCapabilityKey,\n\t\t)\n\t)\n\t\treturn;\n\tconst issue =\n\t\tstatus.issues?.[0] ??\n\t\tdataIssue(\n\t\t\t\"capability-admission-status-issue\",\n\t\t\t\"Capability admission status reported an issue\",\n\t\t\t{ subjectId: proposal.workItemId },\n\t\t);\n\temitCapabilityGuardIssue(\n\t\tctx,\n\t\tstate,\n\t\t`capability-status:${proposal.proposalId}:${status.statusId}`,\n\t\tdataIssue(issue.code, issue.message, {\n\t\t\tsubjectId: proposal.workItemId,\n\t\t\trefs: uniqueSourceRefs([\n\t\t\t\t...capabilityGuardRefs(proposal, policy),\n\t\t\t\t...(status.sourceRefs ?? []),\n\t\t\t]),\n\t\t\tmetadata: {\n\t\t\t\t...(statusCapabilityKey === undefined ? {} : { capabilityRef: statusCapabilityKey }),\n\t\t\t\tcapabilityAdmissionStatusId: status.statusId,\n\t\t\t},\n\t\t}),\n\t);\n}\n\nfunction capabilityGuardPolicyMessage(\n\tcode:\n\t\t| \"missing-policy\"\n\t\t| \"unknown-work-item-domain-action-capability-guard-policy\"\n\t\t| \"policy-mismatch\",\n\tproposal: WorkItemDomainActionProposal,\n): string {\n\tif (code === \"missing-policy\")\n\t\treturn `WorkItem domain action '${proposal.proposalId}' has no capability guard policy`;\n\tif (code === \"unknown-work-item-domain-action-capability-guard-policy\")\n\t\treturn `WorkItem domain action '${proposal.proposalId}' references a missing capability guard policy`;\n\treturn `WorkItem domain action '${proposal.proposalId}' matches multiple capability guard policies`;\n}\n\nfunction capabilityGuardRefs(\n\tproposal: WorkItemDomainActionProposal,\n\tpolicy: WorkItemDomainActionCapabilityGuardPolicy,\n\tadmissions: readonly (CapabilityAdmission | undefined)[] = [],\n): readonly SourceRef[] {\n\treturn uniqueSourceRefs([\n\t\tref(\"work-item\", proposal.workItemId),\n\t\tref(\"work-item-domain-action-proposal\", proposal.proposalId),\n\t\tref(\"work-item-domain-action-capability-guard-policy\", policy.policyId),\n\t\t...admissions\n\t\t\t.filter((admission): admission is CapabilityAdmission => admission !== undefined)\n\t\t\t.flatMap((admission) => [\n\t\t\t\tref(\"capability-admission\", admission.admissionId),\n\t\t\t\tref(\"capability-admission-proposal\", admission.proposalId),\n\t\t\t\tref(\"boundary-capability\", capabilityBoundaryRefId(admission.capability)),\n\t\t\t\t...(admission.sourceRefs ?? []),\n\t\t\t]),\n\t\t...(proposal.sourceRefs ?? []),\n\t]);\n}\n\nfunction capabilityBoundaryRefId(capability: Pick<BoundaryCapabilityRef, \"id\" | \"kind\">): string {\n\treturn `${capability.kind}:${capability.id}`;\n}\n\nfunction emitCapabilityGuardStatus(\n\tctx: Ctx,\n\tstate: CapabilityGuardState,\n\tstatus: Omit<WorkItemDomainActionCapabilityGuardStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact: WorkItemDomainActionCapabilityGuardStatus = {\n\t\tkind: \"work-item-domain-action-capability-guard-status\",\n\t\tstatusId: `work-item-domain-action-capability-guard-status:${state.statusSeq}`,\n\t\t...status,\n\t};\n\temitCapabilityGuard(ctx, \"status\", statusFact);\n\tstate.auditSeq += 1;\n\temitCapabilityGuard(ctx, \"audit\", {\n\t\tid: `work-item-domain-action-capability-guard-status:${state.auditSeq}`,\n\t\tkind: \"work-item-domain-action-capability-guard-status\",\n\t\tsubjectId: status.workItemId,\n\t\tmessage: status.message,\n\t\tsourceRefs: status.sourceRefs,\n\t\tmetadata: {\n\t\t\tstatusId: statusFact.statusId,\n\t\t\tstate: status.state,\n\t\t\tproposalId: status.proposalId,\n\t\t\tpolicyId: status.policyId,\n\t\t\t...(status.metadata ?? {}),\n\t\t},\n\t});\n}\n\nfunction emitCapabilityGuardStatusOnce(\n\tctx: Ctx,\n\tstate: CapabilityGuardState,\n\tkey: string,\n\tstatus: Omit<WorkItemDomainActionCapabilityGuardStatus, \"kind\" | \"statusId\">,\n): void {\n\tif (state.emittedStatusKeys.has(key)) return;\n\tstate.emittedStatusKeys.add(key);\n\temitCapabilityGuardStatus(ctx, state, status);\n}\n\nfunction emitCapabilityGuardIssue(\n\tctx: Ctx,\n\tstate: CapabilityGuardState,\n\tkey: string,\n\tissue: DataIssue,\n): void {\n\tif (state.issueKeys.has(key)) return;\n\tstate.issueKeys.add(key);\n\temitCapabilityGuard(ctx, \"issue\", issue);\n\temitCapabilityGuardStatus(ctx, state, {\n\t\tstate: \"issue\",\n\t\tworkItemId: issue.subjectId,\n\t\tissues: [issue],\n\t\tmessage: issue.message,\n\t\tmetadata: { issueCode: issue.code },\n\t});\n}\n\nfunction emitCapabilityGuard<K extends CapabilityGuardFact[\"kind\"]>(\n\tctx: Ctx,\n\tkind: K,\n\tvalue: Extract<CapabilityGuardFact, { readonly kind: K }>[\"value\"],\n): void {\n\tctx.down([[\"DATA\", { kind, value } as unknown as CapabilityGuardFact]]);\n}\n\nfunction reduceProposalIntake(\n\tctx: Ctx,\n\tstate: IntakeState,\n\tinput: unknown,\n\tproposedAtMs: number,\n): void {\n\tconst proposal = normalizeProposal(input, proposedAtMs);\n\tif (typeof proposal === \"string\") {\n\t\tconst issue = dataIssue(\"malformed-domain-action-proposal\", proposal);\n\t\temitIntake(ctx, \"issue\", issue);\n\t\temitIntakeStatus(ctx, state, {\n\t\t\tstate: \"rejected\",\n\t\t\tcode: issue.code,\n\t\t\tmessage: issue.message,\n\t\t});\n\t\treturn;\n\t}\n\tif (state.proposals.has(proposal.proposalId)) {\n\t\temitIntakeStatus(ctx, state, {\n\t\t\tstate: \"duplicate\",\n\t\t\tcode: \"duplicate-suppressed\",\n\t\t\tworkItemId: proposal.workItemId,\n\t\t\tproposalId: proposal.proposalId,\n\t\t\tactionKind: proposal.actionKind,\n\t\t\tmessage: `Duplicate WorkItem domain action proposal '${proposal.proposalId}' suppressed`,\n\t\t});\n\t\treturn;\n\t}\n\tstate.proposals.add(proposal.proposalId);\n\temitIntake(ctx, \"proposal\", proposal);\n\temitIntakeStatus(ctx, state, {\n\t\tstate: \"proposed\",\n\t\tworkItemId: proposal.workItemId,\n\t\tproposalId: proposal.proposalId,\n\t\tactionKind: proposal.actionKind,\n\t\tsourceRefs: proposal.sourceRefs,\n\t});\n}\n\nfunction normalizeProposal(\n\tinput: unknown,\n\tproposedAtMs: number,\n): WorkItemDomainActionProposal | string {\n\tif (!isRecord(input)) return \"WorkItemDomainActionProposal intake must be an object\";\n\tif (\n\t\tinput.kind !== \"work-item-domain-action-proposal\" &&\n\t\tinput.kind !== \"work-item-domain-action-proposal-intake\"\n\t)\n\t\treturn \"WorkItemDomainActionProposal intake has unsupported kind\";\n\tif (typeof input.proposalId !== \"string\" || input.proposalId.trim() === \"\")\n\t\treturn \"WorkItemDomainActionProposal.proposalId is required\";\n\tif (typeof input.workItemId !== \"string\" || input.workItemId.trim() === \"\")\n\t\treturn \"WorkItemDomainActionProposal.workItemId is required\";\n\tif (typeof input.actionKind !== \"string\" || input.actionKind.trim() === \"\")\n\t\treturn \"WorkItemDomainActionProposal.actionKind is required\";\n\tif (input.kind === \"work-item-domain-action-proposal\") {\n\t\tif (typeof input.effectRunId !== \"string\")\n\t\t\treturn \"WorkItemDomainActionProposal.effectRunId is required\";\n\t\tif (typeof input.effectRunResultId !== \"string\")\n\t\t\treturn \"WorkItemDomainActionProposal.effectRunResultId is required\";\n\t\tif (typeof input.evidenceId !== \"string\")\n\t\t\treturn \"WorkItemDomainActionProposal.evidenceId is required\";\n\t\tif (typeof input.policyId !== \"string\")\n\t\t\treturn \"WorkItemDomainActionProposal.policyId is required\";\n\t\treturn input as unknown as WorkItemDomainActionProposal;\n\t}\n\treturn workItemDomainActionProposal(\n\t\tinput.proposalId,\n\t\tinput.workItemId,\n\t\tinput.actionKind as WorkItemDomainActionKind,\n\t\t{\n\t\t\tpayload: input.payload,\n\t\t\treason: typeof input.reason === \"string\" ? input.reason : undefined,\n\t\t\tpolicyId: typeof input.policyId === \"string\" ? input.policyId : undefined,\n\t\t\teffectRunId: typeof input.effectRunId === \"string\" ? input.effectRunId : undefined,\n\t\t\teffectRunResultId:\n\t\t\t\ttypeof input.effectRunResultId === \"string\" ? input.effectRunResultId : undefined,\n\t\t\tevidenceId: typeof input.evidenceId === \"string\" ? input.evidenceId : undefined,\n\t\t\tproposedAtMs: typeof input.proposedAtMs === \"number\" ? input.proposedAtMs : proposedAtMs,\n\t\t\tsourceRefs: sourceRefs(input.sourceRefs),\n\t\t\tmetadata: isRecord(input.metadata) ? input.metadata : undefined,\n\t\t},\n\t);\n}\n\nfunction applyAdmission<T>(\n\tctx: Ctx,\n\tstate: ApplicationState<T>,\n\tadmission: WorkItemDomainActionAdmission,\n): void {\n\tif (state.appliedAdmissions.has(admission.admissionId)) return;\n\tconst proposal = state.proposals.get(admission.proposalId);\n\tif (proposal === undefined) {\n\t\temitApplicationIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`missing-proposal:${admission.admissionId}:${admission.proposalId}`,\n\t\t\t\"dangling-ref\",\n\t\t\t`Admission '${admission.admissionId}' cannot apply without proposal '${admission.proposalId}'`,\n\t\t\tadmission.workItemId,\n\t\t\tadmissionRefs(admission),\n\t\t);\n\t\treturn;\n\t}\n\tif (admission.state !== \"admitted\") {\n\t\tstate.appliedAdmissions.add(admission.admissionId);\n\t\temitApplication(ctx, state, admission, proposal, admission.state, []);\n\t\treturn;\n\t}\n\tconst mismatch = admissionProposalMismatch(admission, proposal);\n\tif (mismatch !== undefined) {\n\t\tstate.appliedAdmissions.add(admission.admissionId);\n\t\temitApplicationIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`admission-proposal-mismatch:${admission.admissionId}:${mismatch.field}`,\n\t\t\t\"dangling-ref\",\n\t\t\tmismatch.message,\n\t\t\tadmission.workItemId,\n\t\t\tadmissionRefs(admission, proposal),\n\t\t\t{\n\t\t\t\tfield: mismatch.field,\n\t\t\t\tadmissionValue: mismatch.admissionValue,\n\t\t\t\tproposalValue: mismatch.proposalValue,\n\t\t\t},\n\t\t);\n\t\temitApplication(ctx, state, admission, proposal, \"rejected\", [], {\n\t\t\tcode: \"dangling-ref\",\n\t\t\tmessage: mismatch.message,\n\t\t});\n\t\treturn;\n\t}\n\tconst workItem = state.workItems.get(admission.workItemId);\n\tif (workItem === undefined) {\n\t\temitApplicationIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`missing-work-item:${admission.admissionId}:${admission.workItemId}`,\n\t\t\t\"dangling-ref\",\n\t\t\t`Admission '${admission.admissionId}' references unknown WorkItem '${admission.workItemId}'`,\n\t\t\tadmission.workItemId,\n\t\t\tadmissionRefs(admission, proposal),\n\t\t);\n\t\treturn;\n\t}\n\tconst metadataConflict = conflictingApplicationMetadata(proposal, admission);\n\tif (metadataConflict !== undefined) {\n\t\tstate.appliedAdmissions.add(admission.admissionId);\n\t\temitApplicationIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`metadata-conflict:${admission.admissionId}:${metadataConflict.field}`,\n\t\t\tmetadataConflict.code,\n\t\t\tmetadataConflict.message,\n\t\t\tadmission.workItemId,\n\t\t\tadmissionRefs(admission, proposal),\n\t\t\t{\n\t\t\t\tfield: metadataConflict.field,\n\t\t\t\tadmissionValue: metadataConflict.admissionValue,\n\t\t\t\tproposalValue: metadataConflict.proposalValue,\n\t\t\t},\n\t\t);\n\t\temitApplication(ctx, state, admission, proposal, \"rejected\", [], {\n\t\t\tcode: metadataConflict.code,\n\t\t\tmessage: metadataConflict.message,\n\t\t});\n\t\treturn;\n\t}\n\tconst stale = staleRevision(proposal, admission, workItem);\n\tif (stale !== undefined) {\n\t\tstate.appliedAdmissions.add(admission.admissionId);\n\t\temitApplicationIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`stale:${admission.admissionId}:${stale.kind}:${stale.expected}:${stale.current}`,\n\t\t\tstale.kind,\n\t\t\t`Admission '${admission.admissionId}' targets stale WorkItem revision`,\n\t\t\tadmission.workItemId,\n\t\t\tadmissionRefs(admission, proposal),\n\t\t\t{ expected: stale.expected, current: stale.current },\n\t\t);\n\t\temitApplication(ctx, state, admission, proposal, \"rejected\", [], {\n\t\t\tcode: stale.kind,\n\t\t\tmessage: \"Stale WorkItem revision\",\n\t\t});\n\t\treturn;\n\t}\n\tconst policyResult = selectApplyPolicy(state, proposal, admission);\n\tif (typeof policyResult === \"string\") {\n\t\temitApplicationIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`policy:${admission.admissionId}:${policyResult}`,\n\t\t\tpolicyResult,\n\t\t\tapplyPolicyMessage(policyResult, proposal, admission),\n\t\t\tadmission.workItemId,\n\t\t\tadmissionRefs(admission, proposal),\n\t\t);\n\t\treturn;\n\t}\n\tconst output = lowerAction(ctx, state, workItem, proposal, admission, policyResult);\n\tif (output === undefined) {\n\t\tstate.appliedAdmissions.add(admission.admissionId);\n\t\temitApplication(ctx, state, admission, proposal, \"rejected\", [], {\n\t\t\tcode: \"invalid-action\",\n\t\t\tmessage: \"WorkItem domain action application rejected; see emitted issues\",\n\t\t\tpolicyId: policyResult.policyId,\n\t\t});\n\t\treturn;\n\t}\n\tconst duplicateFactId = firstDuplicateFactId(state, output.facts);\n\tif (duplicateFactId !== undefined) {\n\t\tstate.appliedAdmissions.add(admission.admissionId);\n\t\temitApplicationIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`duplicate-authoring-fact:${admission.admissionId}:${duplicateFactId}`,\n\t\t\t\"duplicate-suppressed\",\n\t\t\t`WorkItem domain action application '${admission.admissionId}' would duplicate authoring fact '${duplicateFactId}'`,\n\t\t\tadmission.workItemId,\n\t\t\tadmissionRefs(admission, proposal, policyResult),\n\t\t\t{ eventId: duplicateFactId },\n\t\t);\n\t\temitApplication(ctx, state, admission, proposal, \"duplicate\", [], {\n\t\t\tcode: \"duplicate-suppressed\",\n\t\t\tmessage: \"Duplicate WorkItem authoring fact suppressed atomically\",\n\t\t\tpolicyId: policyResult.policyId,\n\t\t});\n\t\treturn;\n\t}\n\tstate.appliedAdmissions.add(admission.admissionId);\n\tfor (const fact of output.facts) claimFactId(state, fact.eventId);\n\tfor (const fact of output.facts) emitApplicationFact(ctx, \"authoring-fact\", fact);\n\temitApplication(ctx, state, admission, proposal, output.state, output.facts, {\n\t\tcode: output.code,\n\t\tmessage: output.message,\n\t\tpolicyId: policyResult.policyId,\n\t});\n}\n\nfunction lowerAction<T>(\n\tctx: Ctx,\n\tstate: ApplicationState<T>,\n\tworkItem: WorkItemProjection<T>,\n\tproposal: WorkItemDomainActionProposal,\n\tadmission: WorkItemDomainActionAdmission,\n\tpolicy: WorkItemDomainActionApplyPolicy,\n):\n\t| {\n\t\t\treadonly state: WorkItemDomainActionApplication[\"state\"];\n\t\t\treadonly facts: readonly WorkItemAuthoringFact<T>[];\n\t\t\treadonly code?: string;\n\t\t\treadonly message?: string;\n\t }\n\t| undefined {\n\tif (!policyAllowsAction(policy, proposal.actionKind)) {\n\t\temitApplicationIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`policy-action:${admission.admissionId}:${policy.policyId}:${proposal.actionKind}`,\n\t\t\t\"policy-mismatch\",\n\t\t\t`Apply policy '${policy.policyId}' does not allow actionKind '${proposal.actionKind}'`,\n\t\t\tproposal.workItemId,\n\t\t\tadmissionRefs(admission, proposal, policy),\n\t\t);\n\t\treturn { state: \"policy-rejected\", facts: [], code: \"policy-mismatch\" };\n\t}\n\tif (proposal.actionKind === \"patch\") {\n\t\tconst lowered = lowerPatchAction(ctx, state, workItem, proposal, admission, policy);\n\t\tif (lowered === undefined) return undefined;\n\t\treturn { state: \"applied\", facts: lowered };\n\t}\n\tif (proposal.actionKind === \"mark-verified\" || proposal.actionKind === \"require-review\") {\n\t\treturn {\n\t\t\tstate: \"proposal-only\",\n\t\t\tfacts: [],\n\t\t\tcode: \"domain-fact-unimplemented\",\n\t\t\tmessage: `Action '${proposal.actionKind}' recorded as visible application status only; no WorkItem domain mutation fact was emitted`,\n\t\t};\n\t}\n\tif (proposal.actionKind === \"spawn-proposed\" || proposal.actionKind === \"spawn-child\") {\n\t\treturn lowerSpawnAction(ctx, state, proposal, admission, policy);\n\t}\n\temitApplicationIssue(\n\t\tctx,\n\t\tstate,\n\t\t`unsupported-action:${admission.admissionId}:${proposal.actionKind}`,\n\t\t\"unsupported-effect-kind\",\n\t\t`Unsupported WorkItem domain actionKind '${proposal.actionKind}'`,\n\t\tproposal.workItemId,\n\t\tadmissionRefs(admission, proposal, policy),\n\t);\n\treturn { state: \"rejected\", facts: [], code: \"unsupported-effect-kind\" };\n}\n\nfunction lowerPatchAction<T>(\n\tctx: Ctx,\n\tstate: ApplicationState<T>,\n\tworkItem: WorkItemProjection<T>,\n\tproposal: WorkItemDomainActionProposal,\n\tadmission: WorkItemDomainActionAdmission,\n\tpolicy: WorkItemDomainActionApplyPolicy,\n): readonly WorkItemAuthoringFact<T>[] | undefined {\n\tconst payload = normalizePatchPayload<T>(proposal.payload);\n\tif (typeof payload === \"string\") {\n\t\temitApplicationIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`invalid-patch:${admission.admissionId}`,\n\t\t\t\"invalid-patch\",\n\t\t\tpayload,\n\t\t\tproposal.workItemId,\n\t\t\tadmissionRefs(admission, proposal, policy),\n\t\t);\n\t\treturn undefined;\n\t}\n\tconst splitPayload = splitDedicatedPatchFields(payload, workItem);\n\tconst facts: WorkItemAuthoringFact<T>[] = [];\n\tif (splitPayload.patch !== undefined) {\n\t\tconst invalid = invalidPatchKeys(splitPayload.patch, policy);\n\t\tif (invalid.length > 0) {\n\t\t\temitApplicationIssue(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\t`invalid-patch-fields:${admission.admissionId}:${invalid.join(\",\")}`,\n\t\t\t\t\"invalid-patch\",\n\t\t\t\t`Patch action uses unsupported fields: ${invalid.join(\", \")}`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\tadmissionRefs(admission, proposal, policy),\n\t\t\t\t{ invalidFields: invalid },\n\t\t\t);\n\t\t\treturn undefined;\n\t\t}\n\t\tfacts.push({\n\t\t\tkind: \"work-item-patched\",\n\t\t\teventId: splitPayload.eventId ?? `${admission.admissionId}:work-item-patched`,\n\t\t\tworkItemId: workItem.workItemId,\n\t\t\tpatch: splitPayload.patch,\n\t\t\texecutionRelevantFields:\n\t\t\t\tsplitPayload.executionRelevantFields ?? policy.patch?.executionRelevantFields,\n\t\t\tauthorId: splitPayload.authorId,\n\t\t\tsourceRefs: actionSourceRefs(admission, proposal, policy),\n\t\t\tmetadata: { ...(splitPayload.metadata ?? {}), actionKind: proposal.actionKind },\n\t\t});\n\t}\n\tif (splitPayload.acceptanceCriteria !== undefined) {\n\t\tif (!allowsAcceptanceCriteria(policy)) {\n\t\t\temitApplicationIssue(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\t`ac-policy:${admission.admissionId}`,\n\t\t\t\t\"policy-mismatch\",\n\t\t\t\t`Apply policy '${policy.policyId}' does not allow acceptance criteria changes`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\tadmissionRefs(admission, proposal, policy),\n\t\t\t);\n\t\t\treturn undefined;\n\t\t}\n\t\tconst issues = validateAcceptanceCriteria(splitPayload.acceptanceCriteria, {\n\t\t\tworkItemId: workItem.workItemId,\n\t\t});\n\t\tif (issues.length > 0) {\n\t\t\tfor (const item of issues) emitApplicationFact(ctx, \"issue\", item);\n\t\t\temitApplicationStatus(ctx, state, {\n\t\t\t\tstate: \"rejected\",\n\t\t\t\tcode: issues[0]?.code,\n\t\t\t\tmessage: issues[0]?.message,\n\t\t\t\tworkItemId: workItem.workItemId,\n\t\t\t\tproposalId: proposal.proposalId,\n\t\t\t\tadmissionId: admission.admissionId,\n\t\t\t\tactionKind: proposal.actionKind,\n\t\t\t\tsourceRefs: admissionRefs(admission, proposal, policy),\n\t\t\t});\n\t\t\treturn undefined;\n\t\t}\n\t\tfacts.push({\n\t\t\tkind: \"acceptance-criteria-changed\",\n\t\t\teventId: `${admission.admissionId}:acceptance-criteria-changed`,\n\t\t\tworkItemId: workItem.workItemId,\n\t\t\tacceptanceCriteria: splitPayload.acceptanceCriteria,\n\t\t\tauthorId: splitPayload.authorId,\n\t\t\tsourceRefs: actionSourceRefs(admission, proposal, policy),\n\t\t\tmetadata: { ...(splitPayload.metadata ?? {}), actionKind: proposal.actionKind },\n\t\t});\n\t}\n\tif (splitPayload.verificationPlan !== undefined) {\n\t\tif (!allowsVerificationPlan(policy)) {\n\t\t\temitApplicationIssue(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\t`plan-policy:${admission.admissionId}`,\n\t\t\t\t\"policy-mismatch\",\n\t\t\t\t`Apply policy '${policy.policyId}' does not allow verification plan changes`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\tadmissionRefs(admission, proposal, policy),\n\t\t\t);\n\t\t\treturn undefined;\n\t\t}\n\t\tconst issues = validateVerificationPlan(\n\t\t\tsplitPayload.verificationPlan,\n\t\t\tsplitPayload.acceptanceCriteria ?? workItem.acceptanceCriteria ?? [],\n\t\t\t{ workItemId: workItem.workItemId },\n\t\t);\n\t\tif (issues.length > 0) {\n\t\t\tfor (const item of issues) emitApplicationFact(ctx, \"issue\", item);\n\t\t\temitApplicationStatus(ctx, state, {\n\t\t\t\tstate: \"rejected\",\n\t\t\t\tcode: issues[0]?.code,\n\t\t\t\tmessage: issues[0]?.message,\n\t\t\t\tworkItemId: workItem.workItemId,\n\t\t\t\tproposalId: proposal.proposalId,\n\t\t\t\tadmissionId: admission.admissionId,\n\t\t\t\tactionKind: proposal.actionKind,\n\t\t\t\tsourceRefs: admissionRefs(admission, proposal, policy),\n\t\t\t});\n\t\t\treturn undefined;\n\t\t}\n\t\tfacts.push({\n\t\t\tkind: \"verification-plan-changed\",\n\t\t\teventId: `${admission.admissionId}:verification-plan-changed`,\n\t\t\tworkItemId: workItem.workItemId,\n\t\t\tverificationPlan: splitPayload.verificationPlan,\n\t\t\tauthorId: splitPayload.authorId,\n\t\t\tsourceRefs: actionSourceRefs(admission, proposal, policy),\n\t\t\tmetadata: { ...(splitPayload.metadata ?? {}), actionKind: proposal.actionKind },\n\t\t});\n\t}\n\tif (facts.length === 0) {\n\t\temitApplicationIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`empty-patch:${admission.admissionId}`,\n\t\t\t\"invalid-patch\",\n\t\t\t\"Patch action payload did not contain patch, acceptanceCriteria, or verificationPlan\",\n\t\t\tproposal.workItemId,\n\t\t\tadmissionRefs(admission, proposal, policy),\n\t\t);\n\t\treturn undefined;\n\t}\n\treturn facts;\n}\n\nfunction lowerSpawnAction<T>(\n\tctx: Ctx,\n\tstate: ApplicationState<T>,\n\tproposal: WorkItemDomainActionProposal,\n\tadmission: WorkItemDomainActionAdmission,\n\tpolicy: WorkItemDomainActionApplyPolicy,\n): {\n\treadonly state: WorkItemDomainActionApplication[\"state\"];\n\treadonly facts: readonly WorkItemAuthoringFact<T>[];\n\treadonly code?: string;\n\treadonly message?: string;\n} {\n\tif (policy.spawn?.create !== true) {\n\t\treturn {\n\t\t\tstate: \"proposal-only\",\n\t\t\tfacts: [],\n\t\t\tmessage: \"Spawn action remains proposal/admission only without explicit create policy\",\n\t\t};\n\t}\n\temitApplicationIssue(\n\t\tctx,\n\t\tstate,\n\t\t`spawn-create-policy:${admission.admissionId}:${policy.policyId}`,\n\t\t\"policy-mismatch\",\n\t\t`Spawn create policy '${policy.policyId}' is incomplete: child creation requires an explicit create/link/idempotency policy surface`,\n\t\tproposal.workItemId,\n\t\tadmissionRefs(admission, proposal, policy),\n\t\t{\n\t\t\trequires: [\"linkParent\", \"idempotencyKey\", \"maxChildrenPerAdmission\", \"link-fact-vocabulary\"],\n\t\t},\n\t);\n\treturn {\n\t\tstate: \"proposal-only\",\n\t\tfacts: [],\n\t\tcode: \"policy-mismatch\",\n\t\tmessage:\n\t\t\t\"Spawn action remains proposal/admission only until explicit create/link policy is available\",\n\t};\n}\n\nfunction normalizePatchPayload<T>(payload: unknown): WorkItemPatchActionPayload<T> | string {\n\tif (!isRecord(payload)) return \"Patch action payload must be an object\";\n\tif (\n\t\t\"patch\" in payload ||\n\t\t\"acceptanceCriteria\" in payload ||\n\t\t\"verificationPlan\" in payload ||\n\t\t\"executionRelevantFields\" in payload\n\t) {\n\t\tif (\"patch\" in payload && payload.patch !== undefined && !isRecord(payload.patch))\n\t\t\treturn \"Patch action payload.patch must be an object\";\n\t\tif (\n\t\t\t\"acceptanceCriteria\" in payload &&\n\t\t\tpayload.acceptanceCriteria !== undefined &&\n\t\t\t!Array.isArray(payload.acceptanceCriteria)\n\t\t)\n\t\t\treturn \"Patch action payload.acceptanceCriteria must be an array\";\n\t\tif (\n\t\t\t\"verificationPlan\" in payload &&\n\t\t\tpayload.verificationPlan !== undefined &&\n\t\t\t!isRecord(payload.verificationPlan)\n\t\t)\n\t\t\treturn \"Patch action payload.verificationPlan must be an object\";\n\t\tconst inlinePatch = inlinePatchFields<T>(payload);\n\t\tconst explicitPatch = isRecord(payload.patch) ? (payload.patch as WorkItemPatch<T>) : undefined;\n\t\tconst patch =\n\t\t\texplicitPatch === undefined\n\t\t\t\t? inlinePatch\n\t\t\t\t: ({ ...inlinePatch, ...explicitPatch } as WorkItemPatch<T>);\n\t\treturn {\n\t\t\t...(payload as unknown as WorkItemPatchActionPayload<T>),\n\t\t\tpatch: Object.keys(patch).length === 0 ? undefined : patch,\n\t\t};\n\t}\n\treturn { patch: payload as WorkItemPatch<T> };\n}\n\nfunction inlinePatchFields<T>(payload: Record<string, unknown>): WorkItemPatch<T> {\n\tconst patch: Record<string, unknown> = {};\n\tfor (const [key, value] of Object.entries(payload)) {\n\t\tif (key === \"metadata\") continue;\n\t\tif (patchFieldKeys.has(key)) patch[key] = value;\n\t}\n\treturn patch as WorkItemPatch<T>;\n}\n\nfunction splitDedicatedPatchFields<T>(\n\tpayload: WorkItemPatchActionPayload<T>,\n\tworkItem: WorkItemProjection<T>,\n): WorkItemPatchActionPayload<T> {\n\tif (!isRecord(payload.patch)) return payload;\n\tconst patchRecord = payload.patch as Record<string, unknown>;\n\tconst patch: Record<string, unknown> = {};\n\tfor (const [key, value] of Object.entries(patchRecord)) {\n\t\tif (key === \"acceptanceCriteria\" || key === \"verificationPlan\" || key === \"verificationSteps\")\n\t\t\tcontinue;\n\t\tpatch[key] = value;\n\t}\n\tconst acceptanceCriteria =\n\t\tpayload.acceptanceCriteria ??\n\t\t(Array.isArray(patchRecord.acceptanceCriteria)\n\t\t\t? (patchRecord.acceptanceCriteria as readonly AcceptanceCriterion[])\n\t\t\t: undefined);\n\tconst verificationPlan =\n\t\tpayload.verificationPlan ??\n\t\t(isRecord(patchRecord.verificationPlan)\n\t\t\t? (patchRecord.verificationPlan as unknown as VerificationPlan<T>)\n\t\t\t: Array.isArray(patchRecord.verificationSteps)\n\t\t\t\t? ({\n\t\t\t\t\t\t...(workItem.verificationPlan ?? { planId: \"default\" }),\n\t\t\t\t\t\tsteps: patchRecord.verificationSteps,\n\t\t\t\t\t} as VerificationPlan<T>)\n\t\t\t\t: undefined);\n\treturn {\n\t\t...payload,\n\t\tpatch: Object.keys(patch).length === 0 ? undefined : (patch as WorkItemPatch<T>),\n\t\tacceptanceCriteria,\n\t\tverificationPlan,\n\t};\n}\n\nfunction invalidPatchKeys<T>(\n\tpatch: WorkItemPatch<T>,\n\tpolicy: WorkItemDomainActionApplyPolicy,\n): readonly string[] {\n\tconst allowed = new Set(policy.patch?.allowedFields ?? Array.from(patchFieldKeys));\n\treturn Object.keys(patch).filter((key) => !patchFieldKeys.has(key) || !allowed.has(key));\n}\n\nfunction allowsAcceptanceCriteria(policy: WorkItemDomainActionApplyPolicy): boolean {\n\tif (policy.patch?.allowAcceptanceCriteria === false) return false;\n\tconst allowed = policy.patch?.allowedFields;\n\treturn (\n\t\tallowed === undefined ||\n\t\tallowed.includes(\"acceptanceCriteria\") ||\n\t\tpolicy.patch?.allowAcceptanceCriteria === true\n\t);\n}\n\nfunction allowsVerificationPlan(policy: WorkItemDomainActionApplyPolicy): boolean {\n\tif (policy.patch?.allowVerificationPlan === false) return false;\n\tconst allowed = policy.patch?.allowedFields;\n\treturn (\n\t\tallowed === undefined ||\n\t\tallowed.includes(\"verificationPlan\") ||\n\t\tallowed.includes(\"verificationSteps\") ||\n\t\tpolicy.patch?.allowVerificationPlan === true\n\t);\n}\n\nfunction selectApplyPolicy<T>(\n\tstate: ApplicationState<T>,\n\tproposal: WorkItemDomainActionProposal,\n\tadmission: WorkItemDomainActionAdmission,\n):\n\t| WorkItemDomainActionApplyPolicy\n\t| \"missing-policy\"\n\t| \"unknown-work-item-domain-action-apply-policy\"\n\t| \"policy-mismatch\" {\n\tconst explicitId = explicitApplyPolicyId(proposal, admission);\n\tif (explicitId !== undefined)\n\t\treturn state.policies.get(explicitId) ?? \"unknown-work-item-domain-action-apply-policy\";\n\tconst matching = Array.from(state.policies.values()).filter((policy) =>\n\t\tpolicyAllowsAction(policy, proposal.actionKind),\n\t);\n\tif (matching.length === 0) return \"missing-policy\";\n\tif (matching.length > 1) return \"policy-mismatch\";\n\treturn matching[0];\n}\n\nfunction explicitApplyPolicyId(\n\tproposal: WorkItemDomainActionProposal,\n\tadmission: WorkItemDomainActionAdmission,\n): string | undefined {\n\tconst metadataPolicy =\n\t\tstringMetadata(admission.metadata, \"applyPolicyId\") ??\n\t\tstringMetadata(proposal.metadata, \"applyPolicyId\");\n\tif (metadataPolicy !== undefined) return metadataPolicy;\n\treturn [...(admission.sourceRefs ?? []), ...(proposal.sourceRefs ?? [])].find(\n\t\t(sourceRef) => sourceRef.kind === \"work-item-domain-action-apply-policy\",\n\t)?.id;\n}\n\nfunction policyAllowsAction(policy: WorkItemDomainActionApplyPolicy, actionKind: string): boolean {\n\treturn policy.actionKinds === undefined || policy.actionKinds.includes(actionKind);\n}\n\nfunction admissionProposalMismatch(\n\tadmission: WorkItemDomainActionAdmission,\n\tproposal: WorkItemDomainActionProposal,\n):\n\t| {\n\t\t\treadonly field: \"workItemId\" | \"actionKind\";\n\t\t\treadonly admissionValue: string;\n\t\t\treadonly proposalValue: string;\n\t\t\treadonly message: string;\n\t }\n\t| undefined {\n\tif (admission.workItemId !== proposal.workItemId)\n\t\treturn {\n\t\t\tfield: \"workItemId\",\n\t\t\tadmissionValue: admission.workItemId,\n\t\t\tproposalValue: proposal.workItemId,\n\t\t\tmessage: `Admission '${admission.admissionId}' workItemId does not match proposal '${proposal.proposalId}'`,\n\t\t};\n\tif (admission.actionKind !== proposal.actionKind)\n\t\treturn {\n\t\t\tfield: \"actionKind\",\n\t\t\tadmissionValue: admission.actionKind,\n\t\t\tproposalValue: proposal.actionKind,\n\t\t\tmessage: `Admission '${admission.admissionId}' actionKind does not match proposal '${proposal.proposalId}'`,\n\t\t};\n\treturn undefined;\n}\n\nfunction conflictingApplicationMetadata(\n\tproposal: WorkItemDomainActionProposal,\n\tadmission: WorkItemDomainActionAdmission,\n):\n\t| {\n\t\t\treadonly field: \"authoringRevision\" | \"executionInputRevision\" | \"applyPolicyId\";\n\t\t\treadonly code: \"stale-revision\" | \"stale-execution-input\" | \"policy-mismatch\";\n\t\t\treadonly proposalValue: number | string;\n\t\t\treadonly admissionValue: number | string;\n\t\t\treadonly message: string;\n\t }\n\t| undefined {\n\tconst authoringRevision = conflictingMetadataNumber(proposal, admission, \"authoringRevision\");\n\tif (authoringRevision !== undefined)\n\t\treturn {\n\t\t\tfield: \"authoringRevision\",\n\t\t\tcode: \"stale-revision\",\n\t\t\t...authoringRevision,\n\t\t\tmessage: `Admission '${admission.admissionId}' carries conflicting authoringRevision metadata`,\n\t\t};\n\tconst executionInputRevision = conflictingMetadataNumber(\n\t\tproposal,\n\t\tadmission,\n\t\t\"executionInputRevision\",\n\t);\n\tif (executionInputRevision !== undefined)\n\t\treturn {\n\t\t\tfield: \"executionInputRevision\",\n\t\t\tcode: \"stale-execution-input\",\n\t\t\t...executionInputRevision,\n\t\t\tmessage: `Admission '${admission.admissionId}' carries conflicting executionInputRevision metadata`,\n\t\t};\n\tconst applyPolicyId = conflictingMetadataString(proposal, admission, \"applyPolicyId\");\n\tif (applyPolicyId !== undefined)\n\t\treturn {\n\t\t\tfield: \"applyPolicyId\",\n\t\t\tcode: \"policy-mismatch\",\n\t\t\t...applyPolicyId,\n\t\t\tmessage: `Admission '${admission.admissionId}' carries conflicting applyPolicyId metadata`,\n\t\t};\n\treturn undefined;\n}\n\nfunction conflictingMetadataNumber(\n\tproposal: WorkItemDomainActionProposal,\n\tadmission: WorkItemDomainActionAdmission,\n\tkey: string,\n): { readonly proposalValue: number; readonly admissionValue: number } | undefined {\n\tconst proposalValue = numberMetadata(proposal.metadata, key);\n\tconst admissionValue = numberMetadata(admission.metadata, key);\n\tif (\n\t\tproposalValue === undefined ||\n\t\tadmissionValue === undefined ||\n\t\tproposalValue === admissionValue\n\t)\n\t\treturn undefined;\n\treturn { proposalValue, admissionValue };\n}\n\nfunction conflictingMetadataString(\n\tproposal: WorkItemDomainActionProposal,\n\tadmission: WorkItemDomainActionAdmission,\n\tkey: string,\n): { readonly proposalValue: string; readonly admissionValue: string } | undefined {\n\tconst proposalValue = stringMetadata(proposal.metadata, key);\n\tconst admissionValue = stringMetadata(admission.metadata, key);\n\tif (\n\t\tproposalValue === undefined ||\n\t\tadmissionValue === undefined ||\n\t\tproposalValue === admissionValue\n\t)\n\t\treturn undefined;\n\treturn { proposalValue, admissionValue };\n}\n\nfunction staleRevision<T>(\n\tproposal: WorkItemDomainActionProposal,\n\tadmission: WorkItemDomainActionAdmission,\n\tworkItem: WorkItemProjection<T>,\n):\n\t| { readonly kind: \"stale-revision\"; readonly expected: number; readonly current: number }\n\t| { readonly kind: \"stale-execution-input\"; readonly expected: number; readonly current: number }\n\t| undefined {\n\tconst authoringRevision =\n\t\tnumberMetadata(admission.metadata, \"authoringRevision\") ??\n\t\tnumberMetadata(proposal.metadata, \"authoringRevision\");\n\tif (authoringRevision !== undefined && authoringRevision !== workItem.authoringRevision)\n\t\treturn {\n\t\t\tkind: \"stale-revision\",\n\t\t\texpected: authoringRevision,\n\t\t\tcurrent: workItem.authoringRevision,\n\t\t};\n\tconst executionInputRevision =\n\t\tnumberMetadata(admission.metadata, \"executionInputRevision\") ??\n\t\tnumberMetadata(proposal.metadata, \"executionInputRevision\");\n\tif (\n\t\texecutionInputRevision !== undefined &&\n\t\texecutionInputRevision !== workItem.executionInputRevision\n\t)\n\t\treturn {\n\t\t\tkind: \"stale-execution-input\",\n\t\t\texpected: executionInputRevision,\n\t\t\tcurrent: workItem.executionInputRevision,\n\t\t};\n\treturn undefined;\n}\n\nfunction applyPolicyMessage(\n\tcode: \"missing-policy\" | \"unknown-work-item-domain-action-apply-policy\" | \"policy-mismatch\",\n\tproposal: WorkItemDomainActionProposal,\n\tadmission: WorkItemDomainActionAdmission,\n): string {\n\tif (code === \"missing-policy\")\n\t\treturn `Admitted action '${admission.admissionId}' requires an explicit apply policy`;\n\tif (code === \"unknown-work-item-domain-action-apply-policy\")\n\t\treturn `Admitted action '${admission.admissionId}' references a missing apply policy`;\n\treturn `Admitted action '${proposal.proposalId}' matches multiple apply policies`;\n}\n\nfunction emitApplication<T>(\n\tctx: Ctx,\n\tstate: ApplicationState<T>,\n\tadmission: WorkItemDomainActionAdmission,\n\tproposal: WorkItemDomainActionProposal,\n\tapplicationState: WorkItemDomainActionApplication[\"state\"],\n\tfacts: readonly WorkItemAuthoringFact<T>[],\n\topts: { readonly code?: string; readonly message?: string; readonly policyId?: string } = {},\n): void {\n\tconst producedFactIds = facts.map((fact) => fact.eventId);\n\tconst application: WorkItemDomainActionApplication = {\n\t\tkind: \"work-item-domain-action-application\",\n\t\tapplicationId: `${admission.admissionId}:application`,\n\t\tadmissionId: admission.admissionId,\n\t\tproposalId: proposal.proposalId,\n\t\tworkItemId: proposal.workItemId,\n\t\tactionKind: proposal.actionKind,\n\t\tstate: applicationState,\n\t\tproducedFactIds,\n\t\treason: admission.reason ?? proposal.reason,\n\t\tsourceRefs: admissionRefs(admission, proposal),\n\t\tmetadata: { policyId: opts.policyId, code: opts.code },\n\t};\n\temitApplicationFact(ctx, \"application\", application);\n\temitApplicationStatus(ctx, state, {\n\t\tstate: applicationState,\n\t\tcode: opts.code,\n\t\tmessage: opts.message,\n\t\tworkItemId: proposal.workItemId,\n\t\tproposalId: proposal.proposalId,\n\t\tadmissionId: admission.admissionId,\n\t\tactionKind: proposal.actionKind,\n\t\tsourceRefs: application.sourceRefs,\n\t\tmetadata: { producedFactIds, policyId: opts.policyId },\n\t});\n}\n\nfunction emitApplicationIssue<T>(\n\tctx: Ctx,\n\tstate: ApplicationState<T>,\n\tkey: string,\n\tcode: string,\n\tmessage: string,\n\tworkItemId?: string,\n\tsourceRefs?: readonly SourceRef[],\n\tmetadata?: Record<string, unknown>,\n): void {\n\tif (state.issueKeys.has(key)) return;\n\tstate.issueKeys.add(key);\n\tconst item = dataIssue(code, message, { subjectId: workItemId, refs: sourceRefs, metadata });\n\temitApplicationFact(ctx, \"issue\", item);\n\temitApplicationStatus(ctx, state, {\n\t\tstate: code === \"missing-policy\" ? \"missing-policy\" : \"rejected\",\n\t\tcode,\n\t\tmessage,\n\t\tworkItemId,\n\t\tsourceRefs,\n\t\tmetadata,\n\t});\n}\n\nfunction emitIntakeStatus(\n\tctx: Ctx,\n\tstate: IntakeState,\n\tstatus: Omit<WorkItemDomainActionStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact = {\n\t\tkind: \"work-item-domain-action-status\",\n\t\tstatusId: `work-item-domain-action-intake-status:${state.statusSeq}`,\n\t\t...status,\n\t} satisfies WorkItemDomainActionStatus;\n\temitIntake(ctx, \"status\", statusFact);\n\temitIntakeAudit(ctx, state, \"work-item-domain-action-intake-status\", statusFact);\n}\n\nfunction emitApplicationStatus<T>(\n\tctx: Ctx,\n\tstate: ApplicationState<T>,\n\tstatus: Omit<WorkItemDomainActionStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact = {\n\t\tkind: \"work-item-domain-action-status\",\n\t\tstatusId: `work-item-domain-action-application-status:${state.statusSeq}`,\n\t\t...status,\n\t} satisfies WorkItemDomainActionStatus;\n\temitApplicationFact(ctx, \"status\", statusFact);\n\temitApplicationAudit(ctx, state, \"work-item-domain-action-application-status\", statusFact);\n}\n\nfunction emitIntakeAudit(\n\tctx: Ctx,\n\tstate: IntakeState,\n\tkind: string,\n\tstatus: WorkItemDomainActionStatus,\n): void {\n\tstate.auditSeq += 1;\n\temitIntake(ctx, \"audit\", auditRecord(kind, state.auditSeq, status));\n}\n\nfunction emitApplicationAudit<T>(\n\tctx: Ctx,\n\tstate: ApplicationState<T>,\n\tkind: string,\n\tstatus: WorkItemDomainActionStatus,\n): void {\n\tstate.auditSeq += 1;\n\temitApplicationFact(ctx, \"audit\", auditRecord(kind, state.auditSeq, status));\n}\n\nfunction auditRecord(\n\tkind: string,\n\tseq: number,\n\tstatus: WorkItemDomainActionStatus,\n): AgentRuntimeAuditRecord {\n\treturn {\n\t\tid: `${kind}:${seq}`,\n\t\tkind,\n\t\tsubjectId: status.workItemId,\n\t\tmessage: status.message,\n\t\tissueCode: status.code,\n\t\tsourceRefs: status.sourceRefs,\n\t\tmetadata: {\n\t\t\tstatusId: status.statusId,\n\t\t\tstate: status.state,\n\t\t\tproposalId: status.proposalId,\n\t\t\tadmissionId: status.admissionId,\n\t\t\tactionKind: status.actionKind,\n\t\t\t...(status.metadata ?? {}),\n\t\t},\n\t};\n}\n\nfunction emitIntake<K extends IntakeFact[\"kind\"]>(\n\tctx: Ctx,\n\tkind: K,\n\tvalue: Extract<IntakeFact, { kind: K }>[\"value\"],\n): void {\n\tctx.down([[\"DATA\", { kind, value } as IntakeFact]]);\n}\n\nfunction emitApplicationFact<T, K extends ApplicationFact<T>[\"kind\"]>(\n\tctx: Ctx,\n\tkind: K,\n\tvalue: Extract<ApplicationFact<T>, { kind: K }>[\"value\"],\n): void {\n\tctx.down([[\"DATA\", { kind, value } as ApplicationFact<T>]]);\n}\n\nfunction project<TFact, TSelected>(\n\tgraph: Graph,\n\truntime: Node<TFact>,\n\tname: string,\n\tfactory: string,\n\tselect: (fact: TFact) => TSelected | undefined,\n): Node<TSelected> {\n\treturn graph.node<TSelected>(\n\t\t[runtime],\n\t\t(ctx) => {\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst selected = select(raw as TFact);\n\t\t\t\tif (selected !== undefined) ctx.down([[\"DATA\", selected]]);\n\t\t\t}\n\t\t},\n\t\t{ name, factory, partial: true, completeWhenDepsComplete: false, errorWhenDepsError: false },\n\t);\n}\n\nfunction firstDuplicateFactId<T>(\n\tstate: ApplicationState<T>,\n\tfacts: readonly WorkItemAuthoringFact<T>[],\n): string | undefined {\n\tconst pending = new Set<string>();\n\tfor (const fact of facts) {\n\t\tif (state.emittedFactIds.has(fact.eventId) || pending.has(fact.eventId)) return fact.eventId;\n\t\tpending.add(fact.eventId);\n\t}\n\treturn undefined;\n}\n\nfunction claimFactId<T>(state: ApplicationState<T>, factId: string): boolean {\n\tif (state.emittedFactIds.has(factId)) return false;\n\tstate.emittedFactIds.add(factId);\n\treturn true;\n}\n\nfunction admissionRefs(\n\tadmission: WorkItemDomainActionAdmission,\n\tproposal?: WorkItemDomainActionProposal,\n\tpolicy?: WorkItemDomainActionApplyPolicy,\n): readonly SourceRef[] {\n\treturn uniqueSourceRefs([\n\t\tref(\"work-item-domain-action-admission\", admission.admissionId),\n\t\tref(\"work-item-domain-action-proposal\", admission.proposalId),\n\t\t...(proposal === undefined\n\t\t\t? []\n\t\t\t: [\n\t\t\t\t\tref(\"work-item\", proposal.workItemId),\n\t\t\t\t\tref(\"work-item-evidence\", proposal.evidenceId),\n\t\t\t\t\t...(proposal.sourceRefs ?? []),\n\t\t\t\t]),\n\t\t...(policy === undefined ? [] : [ref(\"work-item-domain-action-apply-policy\", policy.policyId)]),\n\t\t...(admission.sourceRefs ?? []),\n\t]);\n}\n\nfunction actionSourceRefs(\n\tadmission: WorkItemDomainActionAdmission,\n\tproposal: WorkItemDomainActionProposal,\n\tpolicy: WorkItemDomainActionApplyPolicy,\n): readonly SourceRef[] {\n\treturn admissionRefs(admission, proposal, policy);\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 metadata?: Record<string, unknown>;\n\t} = {},\n): DataIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tcode,\n\t\tmessage,\n\t\tseverity: \"error\",\n\t\tsource: \"work-item-actions\",\n\t\tsubjectId: opts.subjectId,\n\t\trefs: opts.refs?.map((sourceRef) => `${sourceRef.kind}:${sourceRef.id}`),\n\t\tmetadata: opts.metadata,\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 sourceRefs(value: unknown): readonly SourceRef[] | undefined {\n\tif (!Array.isArray(value)) return undefined;\n\treturn value.filter(\n\t\t(item): item is SourceRef =>\n\t\t\tisRecord(item) && typeof item.kind === \"string\" && typeof item.id === \"string\",\n\t);\n}\n\nfunction numberMetadata(\n\tmetadata: Record<string, unknown> | undefined,\n\tkey: string,\n): number | undefined {\n\tconst value = metadata?.[key];\n\treturn typeof value === \"number\" ? value : undefined;\n}\n\nfunction stringMetadata(\n\tmetadata: Record<string, unknown> | undefined,\n\tkey: string,\n): string | undefined {\n\tconst value = metadata?.[key];\n\treturn typeof value === \"string\" ? value : undefined;\n}\n\nfunction ref(kind: string, id: string): SourceRef {\n\treturn { kind, id };\n}\n\nfunction recordString(value: unknown, key: string): string | undefined {\n\treturn isRecord(value) && typeof value[key] === \"string\" ? value[key] : undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn value !== null && typeof value === \"object\";\n}\n","/**\n * Wave-protocol message types and the tier const table.\n *\n * Canonical authority: ~/src/graphrefly/spec/rules.jsonl\n * R-msg-format, R-msg-closed-set, R-tier (D34), R-data-payload, R-sentinel.\n */\n\n/** Opaque pause-lock / pull identifier (R-pause-lockset, R-pull). */\nexport type LockId = string | symbol;\n\n/** Explicit pull demand payload (D269/D272). Params are holder-visible context, never DATA-up. */\nexport interface PullDemand {\n\treadonly pullId: LockId;\n\treadonly params?: unknown;\n}\n\n/**\n * The CLOSED set of 11 message types (R-msg-closed-set / D9 + D269 + START handshake).\n * No open set, no user-defined custom types. Adding a type is a spec change.\n */\nexport type Message =\n\t| readonly [\"START\"]\n\t| readonly [\"DIRTY\"]\n\t| readonly [\"DATA\", unknown]\n\t| readonly [\"RESOLVED\"]\n\t| readonly [\"INVALIDATE\"]\n\t| readonly [\"COMPLETE\"]\n\t| readonly [\"ERROR\", unknown]\n\t| readonly [\"TEARDOWN\"]\n\t| readonly [\"PAUSE\", LockId]\n\t| readonly [\"RESUME\", LockId]\n\t| readonly [\"PULL\", PullDemand];\n\n/** One array of messages delivered in one call = one Wave (R-wave-boundary). */\nexport type Wave = readonly Message[];\n\n/** The message-type tag (the first tuple element). */\nexport type MessageType = Message[0];\n\n/**\n * SENTINEL = absence-of-DATA (R-sentinel / D16). TS representation is `undefined`.\n * Never a valid DATA payload; `null` IS a valid DATA value (domain-level absence).\n */\nexport const SENTINEL = undefined;\n\n/** R-data-payload: ERROR payloads must not collide with terminal metadata shorthand. */\nexport function isInvalidErrorPayload(v: unknown): boolean {\n\treturn v === SENTINEL || typeof v === \"boolean\";\n}\n\n/** R-data-payload / D78: host-language failures that collide with ctx.terminal shorthand become diagnostics. */\nexport function errorPayload(reason: unknown, fallback = \"error without a valid payload\"): unknown {\n\treturn isInvalidErrorPayload(reason) ? new Error(fallback) : reason;\n}\n\nexport const TIER_START = 0;\nexport const TIER_CONTROL = 1;\nexport const TIER_NOTIFICATION = 2;\nexport const TIER_VALUE = 3;\nexport const TIER_SETTLE = 4;\nexport const TIER_TERMINAL = 5;\nexport const TIER_TEARDOWN = 6;\n\n/**\n * Tier const table (R-tier / D34). Tiers below value dispatch immediately; value\n * and above are batch-deferred. This is a compile-time const table (D18), not runtime config.\n */\nconst TIER: Record<MessageType, number> = {\n\tSTART: TIER_START,\n\tPAUSE: TIER_CONTROL,\n\tRESUME: TIER_CONTROL,\n\tPULL: TIER_CONTROL,\n\tDIRTY: TIER_NOTIFICATION,\n\tDATA: TIER_VALUE,\n\tRESOLVED: TIER_VALUE,\n\tINVALIDATE: TIER_SETTLE,\n\tCOMPLETE: TIER_TERMINAL,\n\tERROR: TIER_TERMINAL,\n\tTEARDOWN: TIER_TEARDOWN,\n};\n\nexport function messageTier(t: MessageType): number {\n\treturn TIER[t];\n}\n\n/** Value and above are deferred inside a batch (DATA/RESOLVED/INVALIDATE/terminal/teardown). */\nexport function isDeferredTier(t: MessageType): boolean {\n\treturn TIER[t] >= TIER_VALUE;\n}\n\n/** Value-tier messages (DATA/RESOLVED) occupy the tier-3 slot. */\nexport function isValueTier(t: MessageType): boolean {\n\treturn TIER[t] === TIER_VALUE;\n}\n\n/** The pause buffer holds the settle slice only: value-tier DATA/RESOLVED plus INVALIDATE. */\nexport function isPauseBufferedTier(t: MessageType): boolean {\n\tconst tier = TIER[t];\n\treturn tier === TIER_VALUE || tier === TIER_SETTLE;\n}\n\n/**\n * A TERMINAL message = tier 5 (COMPLETE | ERROR), R-tier / D34. Detected via the CENTRAL tier\n * table, NOT a per-variant `=== \"COMPLETE\" || === \"ERROR\"` check — so terminal routing stays\n * driven by the one const table (feedback_use_tier_for_signal_routing); discriminate COMPLETE vs\n * ERROR within the tier by the message type only where the handling actually differs.\n */\nexport function isTerminal(t: MessageType): boolean {\n\treturn TIER[t] === TIER_TERMINAL;\n}\n\n/**\n * ctx.up carries control/demand tiers only (R-ctx-up / D269): DIRTY, PAUSE, RESUME, PULL,\n * INVALIDATE, TEARDOWN. DATA/RESOLVED (tier 3) and COMPLETE/ERROR (tier 5) are\n * down-only.\n */\nexport function isUpAllowed(t: MessageType): boolean {\n\tconst tier = TIER[t];\n\treturn tier !== TIER_VALUE && tier !== TIER_TERMINAL;\n}\n","/**\n * The fn-invocation context and per-dep input shapes.\n *\n * Canonical authority: ~/src/graphrefly/spec/rules.jsonl\n * R-fn-contract (D8/D27), R-ctx-state (D23/D29), R-cleanup-hooks (D28), R-ctx-up.\n */\n\nimport type { Dispatcher } from \"../dispatcher/index.js\";\nimport type { EnvironmentDrivers } from \"../graph/environment.js\";\nimport type { Node } from \"../node/node.js\";\nimport { type Message, type PullDemand, SENTINEL, type Wave } from \"../protocol/messages.js\";\n\n/** A downstream sink callback (the only way to connect to a node's output). */\nexport type Sink = (msg: Message, delivery?: DeliveryMeta) => void;\n\n/** Internal delivery metadata used to preserve the upstream `ctx.down(msgs)` wave boundary. */\nexport interface DeliveryMeta {\n\treadonly wave: object;\n\treadonly last: boolean;\n}\n\n/**\n * Internal current-value reader. It is deliberately a symbol-backed implementation detail:\n * raw ctx exposes `waveData` + `terminal`; helpers below derive from that plus this dep cache.\n */\nexport const CTX_DEP_CACHE: unique symbol = Symbol(\"graphrefly.ctx.depCache\");\n\nexport interface CtxDepCache {\n\treadonly latest: readonly unknown[];\n}\n\n/** Internal node-construction binding for graph-local helper-created deps. */\nexport const CTX_NODE_BINDING: unique symbol = Symbol(\"graphrefly.ctx.nodeBinding\");\n\nexport interface CtxNodeBinding {\n\treadonly dispatcher: Dispatcher;\n\tcreate<T>(factory: () => Node<T>): Node<T>;\n}\n\n/** Per-dep wave projections: dep -> waves -> values/SENTINEL markers. */\nexport type WaveData = readonly (readonly (readonly unknown[])[])[];\n\n/** Terminal metadata parallel to `waveData`: false = none, true = COMPLETE, otherwise ERROR payload. */\nexport type TerminalData = readonly unknown[];\n\nexport function isTerminalNone(t: unknown): boolean {\n\treturn t === false || t === undefined;\n}\n\nexport function isTerminalComplete(t: unknown): t is true {\n\treturn t === true;\n}\n\nexport function isTerminalError(t: unknown): boolean {\n\treturn !isTerminalNone(t) && !isTerminalComplete(t);\n}\n\nexport function terminalErrorValue(t: unknown): unknown {\n\treturn isTerminalError(t) ? t : undefined;\n}\n\n/**\n * Per-node private cross-wave state (R-ctx-state / D23,D29). Default fresh-lifecycle\n * wipe; `persist(true)` keeps it across lifecycle transitions.\n */\nexport interface CtxState {\n\tget<S = unknown>(): S | undefined;\n\tset<S = unknown>(v: S): void;\n\tpersist(on?: boolean): void;\n}\n\n/**\n * Deferred SELF-rewire (R-rewire-deferred / D47). A node fn may, DURING its run, request a\n * mutation of its OWN dep set; the request is QUEUED and applied at the committed wave boundary\n * (after the current wave settles / batch commit / final-lock RESUME) as a fresh wave, reusing\n * R-rewire surgical/Option-C semantics (D42). This is the ONLY legal self-triggered rewire — an\n * IMMEDIATE in-fn `node.subscribeDep/unsubscribeDep/replaceDeps` is the D37 mid-fn feedback-cycle ERROR. An\n * added cached dep pushes `[DIRTY,DATA]` on the boundary wave (R-push-subscribe); a removed dep\n * is drained and, if it loses its last subscriber, `_deactivate`s + fires `onDeactivation`\n * (input-side teardown — the basis for higher-order operator cancellation / abortInFlight).\n */\nexport interface RewireNext {\n\t/** Defer subscribing to a dep (paired with the re-supplied fn — positional fn-deps lock, SD-1). */\n\tsubscribeDep(dep: Node<unknown>, fn: NodeFn): void;\n\t/** Defer unsubscribing from a dep (its source is torn down if it loses its last subscriber). */\n\tunsubscribeDep(dep: Node<unknown>, fn: NodeFn): void;\n\t/** Defer replacing the whole dep set (surgical: kept deps untouched, removed drained, added fresh-subscribe). */\n\treplaceDeps(deps: Node<unknown>[], fn: NodeFn): void;\n}\n\n/**\n * The single argument to a node fn: `(ctx) => void` (R-fn-contract / D8). All emission\n * is explicit via `ctx.down`; there is no return-value framing.\n */\nexport interface Ctx {\n\t/**\n\t * Emit upstream toward deps — control tiers only (R-ctx-up). IMMEDIATE. `towardDep` (a dep index)\n\t * routes the wave up ONE declared edge (R-up-routing directed-up); omitted = broadcast up all deps.\n\t * A pull DEMAND is `up([[PULL, { pullId, params }]])` — but for a SELF-demand (demanding a dep\n\t * this fn also reads) use {@link Ctx.upNext} instead, since an immediate demand whose delivery loops back\n\t * re-enters this fn mid-wave (D37 / R-reentrancy).\n\t */\n\tup(msgs: Wave, towardDep?: number): void;\n\t/** Emit downstream toward sinks. */\n\tdown(msgs: Wave): void;\n\t/**\n\t * The single raw dep-value input surface (R-ctx-wave-data / D77): dep -> upstream waves ->\n\t * per-wave DATA payloads and INVALIDATE/SENTINEL markers. `waveData[i] = []` means dep i\n\t * delivered no wave to this invocation; `waveData[i] = [[]]` means RESOLVED-only.\n\t */\n\twaveData: WaveData;\n\t/** Terminal metadata for the same invocation; terminal values never enter `waveData`. */\n\tterminal: TerminalData;\n\tstate: CtxState;\n\t/** Release external resources on deactivation (R-cleanup-hooks). */\n\tonDeactivation(fn: () => void): void;\n\t/** Flush on INVALIDATE (R-cleanup-hooks). */\n\tonInvalidate(fn: () => void): void;\n\t/** Graph-owned environment drivers for source/adapter boundaries (D130/D131). */\n\tenvironment(): EnvironmentDrivers;\n\t/** Holder-visible context for a PULL-caused invocation (D272); absent for ordinary waves. */\n\treadonly pull?: PullDemand;\n\t/**\n\t * Deferred SELF-rewire (R-rewire-deferred / D47) — the substrate affordance higher-order\n\t * operators (switchMap/mergeMap/concatMap/exhaustMap/flatMap) use to grow/shrink their own\n\t * inner-source dep set in response to their own data. Always present; see {@link RewireNext}.\n\t */\n\trewireNext: RewireNext;\n\t/**\n\t * Deferred up — the boundary-deferred form of {@link Ctx.up} (R-up-routing / R-pull / D59). Routes\n\t * `msgs` up from this node at the COMMITTED wave boundary (broadcast, or up the single `towardDep`\n\t * edge), riding the same R-rewire-deferred (D47) drain as {@link RewireNext}. This is the\n\t * SELF-DEMAND path: a consumer issues `ctx.upNext([[PULL, { pullId, params }]])` to demand a pull\n\t * dep it ALSO reads — the cone-routed PULL reaches the pullId-holder, whose delivery loops back as a\n\t * FRESH wave (not a mid-fn re-entry → no D37). The consumer accepts one-wave latency (the\n\t * HTTP-request model). No node reference needed: the author writes the pullId verbatim.\n\t */\n\tupNext(msgs: Wave, towardDep?: number): void;\n\t/**\n\t * Read a dep's latest value by index (dynamicNode only, R-dynamic-node / D35).\n\t * Present only on dynamicNode fns; all declared deps still participate in wave\n\t * tracking. Under D49/R-resolved-undirty an unread dep's change still fires the fn,\n\t * which re-emits its (unchanged) output as a DATA occurrence — there is NO equals-\n\t * absorption; pair with distinctUntilChanged to suppress unchanged re-emits (opt-in).\n\t */\n\ttrack?(depIndex: number): unknown;\n\t[CTX_DEP_CACHE]?: CtxDepCache;\n\t[CTX_NODE_BINDING]?: CtxNodeBinding;\n}\n\n/** A node fn (R-fn-contract). Registered in a dispatcher pool, indexed by Handle. */\nexport type NodeFn = (ctx: Ctx) => void;\n\n/** Number of declared dep slots visible in this invocation. */\nexport function depCount(ctx: Ctx): number {\n\treturn ctx.waveData.length;\n}\n\n/** DATA/SENTINEL projection batches delivered by one dep in this invocation. */\nexport function depWaves(ctx: Ctx, depIndex: number): readonly (readonly unknown[])[] {\n\treturn ctx.waveData[depIndex] ?? [];\n}\n\n/** Flattened DATA projection for old event-counting operator bodies; null = no wave. */\nexport function depBatch(ctx: Ctx, depIndex: number): readonly unknown[] | null {\n\tconst waves = depWaves(ctx, depIndex);\n\tif (waves.length === 0) return null;\n\tconst flattened = waves.flat().filter((v) => v !== SENTINEL);\n\treturn flattened.length === 0 ? [] : flattened;\n}\n\n/** Latest cached DATA for a dep, derived from implementation-owned dep cache. */\nexport function depLatest(ctx: Ctx, depIndex: number): unknown {\n\treturn ctx[CTX_DEP_CACHE]?.latest[depIndex];\n}\n\n/** Terminal metadata for one dep: false = none, true = COMPLETE, otherwise ERROR payload. */\nexport function depTerminal(ctx: Ctx, depIndex: number): unknown {\n\tconst t = ctx.terminal[depIndex];\n\treturn t === undefined ? false : t;\n}\n","/**\n * WorkItem authoring, verification, and scheduling facts (D333-D343).\n *\n * This focused solution subpath is data-first glue. It emits graph-visible\n * projections, requests, results, status, issues, and audit facts; it does not\n * run verification, claim queues, dispatch executors, or mutate WorkItems.\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 { Node } from \"../../node/node.js\";\nimport type {\n\tAgentOutputEnvelope,\n\tAgentRuntimeAuditRecord,\n\tEffectRunGoal,\n\tEffectRunLimits,\n\tEffectRunResult,\n\tEffectRunResultStatus,\n\tSourceRef,\n} from \"../../orchestration/agent-runtime.js\";\nimport type {\n\tWorkItemDomainActionProposal,\n\tWorkItemDomainActionProposalSpec,\n\tWorkItemEffectRequested,\n\tWorkItemEvidenceRecorded,\n} from \"../../orchestration/work-item-runtime.js\";\n\nexport type WorkItemValidationIssueCode =\n\t| \"malformed-draft\"\n\t| \"missing-required-field\"\n\t| \"invalid-patch\"\n\t| \"duplicate-id\"\n\t| \"dangling-ref\"\n\t| \"cyclic-dependency\"\n\t| \"unsupported-mode\"\n\t| \"unsupported-effect-kind\"\n\t| \"oversized-inline-data\"\n\t| \"policy-mismatch\"\n\t| \"missing-policy\"\n\t| \"stale-revision\"\n\t| \"stale-execution-input\"\n\t| \"blocked-prerequisite\"\n\t| \"verification-unplanned\"\n\t| \"manual-review-required\"\n\t| \"duplicate-suppressed\"\n\t| \"ambiguous-coverage\"\n\t| \"partial-coverage\"\n\t| \"unverifiable-output\"\n\t| \"unauthorized-author\"\n\t| \"unauthorized-target\"\n\t| \"invalid-schedule\";\n\nexport type WorkItemValidationStatusState =\n\t| \"projected\"\n\t| \"rejected\"\n\t| \"deferred\"\n\t| \"blocked\"\n\t| \"needs-human-review\"\n\t| \"stale\"\n\t| \"duplicate\"\n\t| \"request-emitted\"\n\t| \"result-recorded\"\n\t| \"domain-action-proposed\";\n\nexport interface WorkItemValidationStatus {\n\treadonly kind: \"work-item-validation-status\";\n\treadonly statusId: string;\n\treadonly workItemId?: string;\n\treadonly state: WorkItemValidationStatusState;\n\treadonly code?: WorkItemValidationIssueCode;\n\treadonly revision?: number;\n\treadonly executionInputRevision?: number;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly stepId?: string;\n\treadonly criterionId?: string;\n\treadonly message?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AcceptanceCriterion {\n\treadonly criterionId: string;\n\treadonly statement: string;\n\treadonly required?: boolean;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type VerificationStepMode = \"auto\" | \"manual\" | \"hybrid\";\n\nexport interface VerificationStep<TInput = unknown> {\n\treadonly stepId: string;\n\treadonly title?: string;\n\treadonly description?: string;\n\treadonly verifiesCriteriaIds?: readonly string[];\n\treadonly mode: VerificationStepMode;\n\treadonly effectKind?: string;\n\treadonly goal?: EffectRunGoal<TInput>;\n\treadonly input?: TInput;\n\treadonly contextRefs?: readonly SourceRef[];\n\treadonly requirements?: readonly string[];\n\treadonly capacityHints?: Record<string, unknown>;\n\treadonly dependsOnStepIds?: readonly string[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface VerificationPlan<TInput = unknown> {\n\treadonly planId: string;\n\treadonly planRevision?: string | number;\n\treadonly steps: readonly VerificationStep<TInput>[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemDraft<TInput = unknown> {\n\treadonly summary: string;\n\treadonly detail?: string;\n\treadonly detailRefs?: readonly SourceRef[];\n\treadonly acceptanceCriteria?: readonly AcceptanceCriterion[];\n\treadonly verificationPlan?: VerificationPlan<TInput>;\n\treadonly verificationSteps?: readonly VerificationStep<TInput>[];\n\treadonly kind?: string;\n\treadonly priority?: number;\n\treadonly tags?: readonly string[];\n\treadonly owner?: string;\n\treadonly assignee?: string;\n\treadonly deadlineMs?: number;\n\treadonly customFields?: Record<string, unknown>;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemPatch<TInput = unknown> = Partial<WorkItemDraft<TInput>>;\n\nexport interface WorkItemCreated<TInput = unknown> {\n\treadonly kind: \"work-item-created\";\n\treadonly eventId: string;\n\treadonly workItemId: string;\n\treadonly draft: WorkItemDraft<TInput>;\n\treadonly authorId?: string;\n\treadonly createdAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemPatched<TInput = unknown> {\n\treadonly kind: \"work-item-patched\";\n\treadonly eventId: string;\n\treadonly workItemId: string;\n\treadonly patch: WorkItemPatch<TInput>;\n\treadonly executionRelevantFields?: readonly string[];\n\treadonly authorId?: string;\n\treadonly patchedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AcceptanceCriteriaChanged {\n\treadonly kind: \"acceptance-criteria-changed\";\n\treadonly eventId: string;\n\treadonly workItemId: string;\n\treadonly acceptanceCriteria: readonly AcceptanceCriterion[];\n\treadonly authorId?: string;\n\treadonly changedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface VerificationPlanChanged<TInput = unknown> {\n\treadonly kind: \"verification-plan-changed\";\n\treadonly eventId: string;\n\treadonly workItemId: string;\n\treadonly verificationPlan: VerificationPlan<TInput>;\n\treadonly authorId?: string;\n\treadonly changedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemAuthoringFact<TInput = unknown> =\n\t| WorkItemCreated<TInput>\n\t| WorkItemPatched<TInput>\n\t| AcceptanceCriteriaChanged\n\t| VerificationPlanChanged<TInput>;\n\nexport interface WorkItemSpawnProposed<TInput = unknown> {\n\treadonly kind: \"work-item-spawn-proposed\";\n\treadonly proposalId: string;\n\treadonly parentWorkItemId?: string;\n\treadonly draft: WorkItemDraft<TInput>;\n\treadonly proposedBy?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemAuthoringInput<TInput = unknown> =\n\t| WorkItemAuthoringFact<TInput>\n\t| WorkItemSpawnProposed<TInput>;\n\nexport interface WorkItemProjection<TInput = unknown> extends WorkItemDraft<TInput> {\n\treadonly workItemId: string;\n\treadonly authoringRevision: number;\n\treadonly executionInputRevision: number;\n\treadonly lastEventId: string;\n\treadonly revisionSourceRefs?: readonly SourceRef[];\n\treadonly createdAtMs?: number;\n\treadonly updatedAtMs?: number;\n}\n\nexport interface WorkItemPriorityAssessment {\n\treadonly kind: \"work-item-priority-assessment\";\n\treadonly assessmentId: string;\n\treadonly workItemId: string;\n\treadonly authoringRevision?: number;\n\treadonly executionInputRevision?: number;\n\treadonly priority?: number;\n\treadonly rank?: number;\n\treadonly reason?: string;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemPlacementDecision {\n\treadonly kind: \"work-item-placement-decision\";\n\treadonly decisionId: string;\n\treadonly workItemId: string;\n\treadonly authoringRevision?: number;\n\treadonly executionInputRevision?: number;\n\treadonly laneId: string;\n\treadonly targetKind?: string;\n\treadonly reason?: string;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemScheduleDecision {\n\treadonly kind: \"work-item-schedule-decision\";\n\treadonly decisionId: string;\n\treadonly workItemId: string;\n\treadonly authoringRevision?: number;\n\treadonly executionInputRevision?: number;\n\treadonly targetKind: \"work-item-effect\" | \"work-queue\" | \"executor\" | \"status\";\n\treadonly effectKind?: string;\n\treadonly notBeforeMs?: number;\n\treadonly deadlineMs?: number;\n\treadonly requirements?: readonly string[];\n\treadonly capacityHints?: Record<string, unknown>;\n\treadonly reason?: string;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemDispatchIntent<TInput = unknown> {\n\treadonly kind: \"work-item-dispatch-intent\";\n\treadonly intentId: string;\n\treadonly workItemId: string;\n\treadonly authoringRevision?: number;\n\treadonly executionInputRevision: number;\n\treadonly targetKind:\n\t\t| \"verification\"\n\t\t| \"approval\"\n\t\t| \"human-review\"\n\t\t| \"external-sync\"\n\t\t| \"spawn-review\"\n\t\t| \"background-evidence\"\n\t\t| \"executor\";\n\treadonly effectKind?: string;\n\treadonly stepIds?: readonly string[];\n\treadonly acceptanceCriterionIds?: readonly string[];\n\treadonly goal?: EffectRunGoal<TInput>;\n\treadonly contextRefs?: readonly SourceRef[];\n\treadonly requirements?: readonly string[];\n\treadonly capacityHints?: Record<string, unknown>;\n\treadonly limits?: EffectRunLimits;\n\treadonly idempotencyKey?: string;\n\treadonly reason?: string;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemAuthoringPolicy {\n\treadonly executionRelevantFields?: readonly string[];\n}\n\nexport interface WorkItemAuthoringProjectorOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly facts: Node<WorkItemAuthoringInput<TInput>>;\n\treadonly policy?: WorkItemAuthoringPolicy;\n}\n\nexport interface WorkItemAuthoringProjectorBundle<TInput = unknown> {\n\treadonly workItems: Node<WorkItemProjection<TInput>>;\n\treadonly status: Node<WorkItemValidationStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport interface WorkItemVerificationLowererPolicy {\n\treadonly policyId?: string;\n\treadonly autoRun?: boolean;\n\treadonly allowedModes?: readonly VerificationStepMode[];\n\treadonly allowedEffectKinds?: readonly string[];\n\treadonly stalePolicy?: \"cancel\" | \"reschedule\" | \"requeue\" | \"replacement-intent\" | \"review\";\n}\n\nexport interface WorkItemVerificationRequestLowererOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly workItems: Node<WorkItemProjection<TInput>>;\n\treadonly dispatchIntents?: Node<WorkItemDispatchIntent<TInput>>;\n\treadonly verificationResults?: Node<VerificationResultRecorded>;\n\treadonly policy?: WorkItemVerificationLowererPolicy;\n}\n\nexport interface WorkItemVerificationRequestLowererBundle<TInput = unknown> {\n\treadonly effectRequests: Node<WorkItemEffectRequested<TInput>>;\n\treadonly status: Node<WorkItemValidationStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport type VerificationResultStatus =\n\t| \"passed\"\n\t| \"failed\"\n\t| \"blocked\"\n\t| \"canceled\"\n\t| \"timeout\"\n\t| \"waived\"\n\t| \"unverifiable\";\n\nexport interface VerificationResultRecorded {\n\treadonly kind: \"verification-result-recorded\";\n\treadonly resultId: string;\n\treadonly workItemId: string;\n\treadonly evidenceId: string;\n\treadonly effectRunId: string;\n\treadonly effectRunResultId: string;\n\treadonly executionInputRevision: number;\n\treadonly verificationStepIds: readonly string[];\n\treadonly acceptanceCriterionIds: readonly string[];\n\treadonly status: VerificationResultStatus;\n\treadonly output?: AgentOutputEnvelope;\n\treadonly error?: DataIssue;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly recordedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemVerificationMappingPolicy {\n\treadonly kind: \"work-item-verification-mapping-policy\";\n\treadonly policyId: string;\n\treadonly actionProposals?: readonly WorkItemDomainActionProposalSpec[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemVerificationResultMapperOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly workItems: Node<WorkItemProjection<TInput>>;\n\treadonly evidence: Node<WorkItemEvidenceRecorded>;\n\treadonly policies?: Node<WorkItemVerificationMappingPolicy>;\n}\n\nexport interface WorkItemVerificationResultMapperBundle {\n\treadonly results: Node<VerificationResultRecorded>;\n\treadonly proposals: Node<WorkItemDomainActionProposal>;\n\treadonly status: Node<WorkItemValidationStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport type WorkItemEffectPlanJoinPolicy = \"all-required\" | \"evidence-only\";\n\nexport interface WorkItemEffectPlanMember<TInput = unknown> {\n\treadonly memberId: string;\n\treadonly effectKind: string;\n\treadonly goal: EffectRunGoal<TInput>;\n\treadonly required?: boolean;\n\treadonly dependsOnMemberIds?: readonly string[];\n\treadonly contextRefs?: readonly SourceRef[];\n\treadonly requirements?: readonly string[];\n\treadonly capacityHints?: Record<string, unknown>;\n\treadonly limits?: EffectRunLimits;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly idempotencyKey?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectPlanProposed<TInput = unknown> {\n\treadonly kind: \"work-item-effect-plan-proposed\";\n\treadonly planId: string;\n\treadonly workItemId: string;\n\treadonly executionInputRevision: number;\n\treadonly members: readonly WorkItemEffectPlanMember<TInput>[];\n\treadonly joinPolicy?: WorkItemEffectPlanJoinPolicy;\n\treadonly limits?: EffectRunLimits;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly proposedBy?: string;\n\treadonly proposedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectPlanSnapshot<TInput = unknown> {\n\treadonly planId: string;\n\treadonly workItemId: string;\n\treadonly executionInputRevision: number;\n\treadonly members: readonly WorkItemEffectPlanMember<TInput>[];\n\treadonly joinPolicy: WorkItemEffectPlanJoinPolicy;\n\treadonly limits?: EffectRunLimits;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectPlanAdmitted<TInput = unknown> {\n\treadonly kind: \"work-item-effect-plan-admitted\";\n\treadonly planId: string;\n\treadonly workItemId: string;\n\treadonly executionInputRevision: number;\n\treadonly plan: WorkItemEffectPlanSnapshot<TInput>;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly admittedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectPlanRejected {\n\treadonly kind: \"work-item-effect-plan-rejected\";\n\treadonly planId: string;\n\treadonly workItemId: string;\n\treadonly executionInputRevision?: number;\n\treadonly issues: readonly DataIssue[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly rejectedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemEffectPlanMemberStatus =\n\t| \"eligible\"\n\t| \"requested\"\n\t| \"blocked\"\n\t| \"deferred\"\n\t| \"evidence-recorded\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"duplicate\"\n\t| \"stale\"\n\t| \"rejected\";\n\nexport interface WorkItemEffectPlanStatus {\n\treadonly kind: \"work-item-effect-plan-status\";\n\treadonly statusId: string;\n\treadonly workItemId: string;\n\treadonly planId: string;\n\treadonly executionInputRevision: number;\n\treadonly state: WorkItemEffectPlanMemberStatus;\n\treadonly planMemberId?: string;\n\treadonly requestId?: string;\n\treadonly effectRunId?: string;\n\treadonly evidenceId?: string;\n\treadonly effectRunResultId?: string;\n\treadonly issues?: readonly DataIssue[];\n\treadonly message?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemEffectPlanResultStatus = \"succeeded\" | \"failed\" | \"evidence-only\";\n\nexport interface WorkItemEffectPlanResult {\n\treadonly kind: \"work-item-effect-plan-result\";\n\treadonly resultId: string;\n\treadonly workItemId: string;\n\treadonly planId: string;\n\treadonly executionInputRevision: number;\n\treadonly status: WorkItemEffectPlanResultStatus;\n\treadonly memberResults: readonly {\n\t\treadonly planMemberId: string;\n\t\treadonly status: EffectRunResultStatus;\n\t\treadonly requestId?: string;\n\t\treadonly effectRunId?: string;\n\t\treadonly evidenceId?: string;\n\t\treadonly effectRunResultId?: string;\n\t}[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectPlanPolicy {\n\treadonly policyId?: string;\n\treadonly allowedEffectKinds?: readonly string[];\n\treadonly joinPolicy?: WorkItemEffectPlanJoinPolicy;\n}\n\nexport interface WorkItemEffectPlanProjectorOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly workItems: Node<WorkItemProjection<TInput>>;\n\treadonly proposals: Node<WorkItemEffectPlanProposed<TInput>>;\n\treadonly evidence?: Node<WorkItemEvidenceRecorded>;\n\treadonly effectRunResults?: Node<EffectRunResult>;\n\treadonly policy?: WorkItemEffectPlanPolicy;\n\treadonly now?: () => number;\n}\n\nexport interface WorkItemEffectPlanProjectorBundle<TInput = unknown> {\n\treadonly admitted: Node<WorkItemEffectPlanAdmitted<TInput>>;\n\treadonly rejected: Node<WorkItemEffectPlanRejected>;\n\treadonly effectRequests: Node<WorkItemEffectRequested<TInput>>;\n\treadonly results: Node<WorkItemEffectPlanResult>;\n\treadonly status: Node<WorkItemEffectPlanStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\ntype Fact<T> =\n\t| { readonly kind: \"work-item\"; readonly value: WorkItemProjection<T> }\n\t| { readonly kind: \"request\"; readonly value: WorkItemEffectRequested<T> }\n\t| { readonly kind: \"result\"; readonly value: VerificationResultRecorded }\n\t| { readonly kind: \"proposal\"; readonly value: WorkItemDomainActionProposal }\n\t| { readonly kind: \"status\"; readonly value: WorkItemValidationStatus }\n\t| { readonly kind: \"issue\"; readonly value: DataIssue }\n\t| { readonly kind: \"audit\"; readonly value: AgentRuntimeAuditRecord };\n\ntype PlanFact<T> =\n\t| { readonly kind: \"admitted\"; readonly value: WorkItemEffectPlanAdmitted<T> }\n\t| { readonly kind: \"rejected\"; readonly value: WorkItemEffectPlanRejected }\n\t| { readonly kind: \"request\"; readonly value: WorkItemEffectRequested<T> }\n\t| { readonly kind: \"result\"; readonly value: WorkItemEffectPlanResult }\n\t| { readonly kind: \"status\"; readonly value: WorkItemEffectPlanStatus }\n\t| { readonly kind: \"issue\"; readonly value: DataIssue }\n\t| { readonly kind: \"audit\"; readonly value: AgentRuntimeAuditRecord };\n\ninterface AuthoringState<T> {\n\treadonly workItems: Map<string, WorkItemProjection<T>>;\n\treadonly seenEvents: Set<string>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\ninterface RequestState<T> {\n\treadonly workItems: Map<string, WorkItemProjection<T>>;\n\treadonly emittedKeys: Set<string>;\n\treadonly passedSteps: Map<string, Set<string>>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\ninterface ResultState<T> {\n\treadonly workItems: Map<string, WorkItemProjection<T>>;\n\treadonly policies: Map<string, WorkItemVerificationMappingPolicy>;\n\treadonly evidenceById: Map<string, WorkItemEvidenceRecorded>;\n\treadonly resultEvidence: Set<string>;\n\treadonly proposalKeys: Set<string>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\ninterface PlanMemberEvidence {\n\treadonly status: EffectRunResultStatus;\n\treadonly requestId?: string;\n\treadonly effectRunId?: string;\n\treadonly evidenceId?: string;\n\treadonly effectRunResultId?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n}\n\ninterface PlanState<T> {\n\treadonly workItems: Map<string, WorkItemProjection<T>>;\n\treadonly proposals: Map<string, WorkItemEffectPlanProposed<T>>;\n\treadonly admitted: Map<string, WorkItemEffectPlanAdmitted<T>>;\n\treadonly rejected: Set<string>;\n\treadonly emittedMemberKeys: Set<string>;\n\treadonly statusKeys: Set<string>;\n\treadonly resultKeys: Set<string>;\n\treadonly requestByEffectRun: Map<string, WorkItemEffectRequested<T>>;\n\treadonly requestByRequestId: Map<string, WorkItemEffectRequested<T>>;\n\treadonly memberEvidence: Map<string, PlanMemberEvidence>;\n\treadonly pendingEvidence: Map<string, WorkItemEvidenceRecorded>;\n\treadonly pendingResults: Map<string, EffectRunResult>;\n\treadonly unmatchedEvidence: Set<string>;\n\treadonly unmatchedResults: Set<string>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\nconst executionRelevantDefaults = new Set([\n\t\"detail\",\n\t\"detailRefs\",\n\t\"acceptanceCriteria\",\n\t\"verificationPlan\",\n\t\"verificationSteps\",\n\t\"dependencies\",\n]);\n\nconst draftPatchKeys = new Set([\n\t\"summary\",\n\t\"detail\",\n\t\"detailRefs\",\n\t\"acceptanceCriteria\",\n\t\"verificationPlan\",\n\t\"verificationSteps\",\n\t\"kind\",\n\t\"priority\",\n\t\"tags\",\n\t\"owner\",\n\t\"assignee\",\n\t\"deadlineMs\",\n\t\"customFields\",\n\t\"sourceRefs\",\n\t\"metadata\",\n]);\n\nexport function workItemCreatedFromDraft<TInput = unknown>(\n\tworkItemId: string,\n\tdraft: WorkItemDraft<TInput>,\n\topts: Partial<Omit<WorkItemCreated<TInput>, \"kind\" | \"eventId\" | \"workItemId\" | \"draft\">> & {\n\t\treadonly eventId?: string;\n\t} = {},\n): WorkItemCreated<TInput> {\n\treturn {\n\t\tkind: \"work-item-created\",\n\t\teventId: opts.eventId ?? `${workItemId}:created`,\n\t\tworkItemId,\n\t\tdraft,\n\t\tauthorId: opts.authorId,\n\t\tcreatedAtMs: opts.createdAtMs,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function workItemSpawnProposed<TInput = unknown>(\n\tproposalId: string,\n\tdraft: WorkItemDraft<TInput>,\n\topts: Partial<Omit<WorkItemSpawnProposed<TInput>, \"kind\" | \"proposalId\" | \"draft\">> = {},\n): WorkItemSpawnProposed<TInput> {\n\treturn {\n\t\tkind: \"work-item-spawn-proposed\",\n\t\tproposalId,\n\t\tdraft,\n\t\tparentWorkItemId: opts.parentWorkItemId,\n\t\tproposedBy: opts.proposedBy,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function acceptanceCriteriaChanged(\n\tworkItemId: string,\n\tacceptanceCriteria: readonly AcceptanceCriterion[],\n\topts: Partial<\n\t\tOmit<AcceptanceCriteriaChanged, \"kind\" | \"eventId\" | \"workItemId\" | \"acceptanceCriteria\">\n\t> & {\n\t\treadonly eventId: string;\n\t},\n): AcceptanceCriteriaChanged {\n\treturn {\n\t\tkind: \"acceptance-criteria-changed\",\n\t\teventId: opts.eventId,\n\t\tworkItemId,\n\t\tacceptanceCriteria,\n\t\tauthorId: opts.authorId,\n\t\tchangedAtMs: opts.changedAtMs,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function verificationPlanChanged<TInput = unknown>(\n\tworkItemId: string,\n\tverificationPlan: VerificationPlan<TInput>,\n\topts: Partial<\n\t\tOmit<VerificationPlanChanged<TInput>, \"kind\" | \"eventId\" | \"workItemId\" | \"verificationPlan\">\n\t> & {\n\t\treadonly eventId: string;\n\t},\n): VerificationPlanChanged<TInput> {\n\treturn {\n\t\tkind: \"verification-plan-changed\",\n\t\teventId: opts.eventId,\n\t\tworkItemId,\n\t\tverificationPlan,\n\t\tauthorId: opts.authorId,\n\t\tchangedAtMs: opts.changedAtMs,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function validateWorkItemDraft<TInput>(\n\tdraft: WorkItemDraft<TInput> | unknown,\n\topts: { readonly workItemId?: string } = {},\n): readonly DataIssue[] {\n\tconst out: DataIssue[] = [];\n\tif (!isRecord(draft)) {\n\t\treturn [issue(\"malformed-draft\", \"WorkItemDraft must be an object\", opts.workItemId)];\n\t}\n\tif (typeof draft.summary !== \"string\") {\n\t\tout.push(issue(\"missing-required-field\", \"WorkItemDraft.summary is required\", opts.workItemId));\n\t} else if (draft.summary.trim() === \"\") {\n\t\tout.push(issue(\"missing-required-field\", \"WorkItemDraft.summary is required\", opts.workItemId));\n\t}\n\tconst criteria =\n\t\tdraft.acceptanceCriteria === undefined || Array.isArray(draft.acceptanceCriteria)\n\t\t\t? (draft.acceptanceCriteria as readonly AcceptanceCriterion[] | undefined)\n\t\t\t: undefined;\n\tif (draft.acceptanceCriteria !== undefined && criteria === undefined) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"malformed-draft\",\n\t\t\t\t\"WorkItemDraft.acceptanceCriteria must be an array\",\n\t\t\t\topts.workItemId,\n\t\t\t),\n\t\t);\n\t}\n\tout.push(...validateAcceptanceCriteria(criteria ?? [], opts));\n\tif (draft.verificationPlan !== undefined && !isVerificationPlanShape(draft.verificationPlan)) {\n\t\tout.push(\n\t\t\tissue(\"malformed-draft\", \"WorkItemDraft.verificationPlan is malformed\", opts.workItemId),\n\t\t);\n\t}\n\tif (draft.verificationSteps !== undefined && !Array.isArray(draft.verificationSteps)) {\n\t\tout.push(\n\t\t\tissue(\"malformed-draft\", \"WorkItemDraft.verificationSteps must be an array\", opts.workItemId),\n\t\t);\n\t}\n\tconst plan = normalizePlanFromUnknown(draft);\n\tif (plan !== undefined) {\n\t\tout.push(...validateVerificationPlan(plan, criteria ?? [], opts));\n\t}\n\treturn out;\n}\n\nexport function validateAcceptanceCriteria(\n\tcriteria: readonly AcceptanceCriterion[],\n\topts: { readonly workItemId?: string } = {},\n): readonly DataIssue[] {\n\tconst out: DataIssue[] = [];\n\tconst seen = new Set<string>();\n\tfor (const criterion of criteria) {\n\t\tif (!isRecord(criterion)) {\n\t\t\tout.push(issue(\"malformed-draft\", \"AcceptanceCriterion must be an object\", opts.workItemId));\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof criterion.criterionId !== \"string\" || criterion.criterionId === \"\") {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-required-field\",\n\t\t\t\t\t\"AcceptanceCriterion.criterionId is required\",\n\t\t\t\t\topts.workItemId,\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (seen.has(criterion.criterionId)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"duplicate-id\",\n\t\t\t\t\t`Duplicate acceptance criterion id '${criterion.criterionId}'`,\n\t\t\t\t\topts.workItemId,\n\t\t\t\t\t{ criterionId: criterion.criterionId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tseen.add(criterion.criterionId);\n\t\tif (typeof criterion.statement !== \"string\" || criterion.statement.trim() === \"\") {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-required-field\",\n\t\t\t\t\t\"AcceptanceCriterion.statement is required\",\n\t\t\t\t\topts.workItemId,\n\t\t\t\t\t{ criterionId: criterion.criterionId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\treturn out;\n}\n\nexport function validateVerificationPlan<TInput>(\n\tplan: VerificationPlan<TInput>,\n\tcriteria: readonly AcceptanceCriterion[] = [],\n\topts: {\n\t\treadonly workItemId?: string;\n\t\treadonly allowedModes?: readonly VerificationStepMode[];\n\t\treadonly allowedEffectKinds?: readonly string[];\n\t} = {},\n): readonly DataIssue[] {\n\tconst out: DataIssue[] = [];\n\tif (!isRecord(plan) || !Array.isArray(plan.steps)) {\n\t\treturn [issue(\"malformed-draft\", \"VerificationPlan.steps must be an array\", opts.workItemId)];\n\t}\n\tconst criterionIds = new Set(criteria.map((criterion) => criterion.criterionId));\n\tconst stepIds = new Set<string>();\n\tconst modes = new Set(opts.allowedModes ?? [\"auto\", \"manual\", \"hybrid\"]);\n\tconst effectKinds = new Set(opts.allowedEffectKinds ?? [\"verification\"]);\n\tfor (const step of plan.steps) {\n\t\tif (!isRecord(step)) {\n\t\t\tout.push(issue(\"malformed-draft\", \"VerificationStep must be an object\", opts.workItemId));\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof step.stepId !== \"string\" || step.stepId === \"\") {\n\t\t\tout.push(\n\t\t\t\tissue(\"missing-required-field\", \"VerificationStep.stepId is required\", opts.workItemId),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (stepIds.has(step.stepId)) {\n\t\t\tout.push(\n\t\t\t\tissue(\"duplicate-id\", `Duplicate verification step id '${step.stepId}'`, opts.workItemId, {\n\t\t\t\t\tstepId: step.stepId,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t\tstepIds.add(step.stepId);\n\t\tif (typeof step.mode !== \"string\" || !modes.has(step.mode as VerificationStepMode)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"unsupported-mode\",\n\t\t\t\t\t`Unsupported verification step mode '${step.mode}'`,\n\t\t\t\t\topts.workItemId,\n\t\t\t\t\t{ stepId: step.stepId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tstep.effectKind !== undefined &&\n\t\t\t(typeof step.effectKind !== \"string\" || !effectKinds.has(step.effectKind))\n\t\t) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"unsupported-effect-kind\",\n\t\t\t\t\t`Unsupported verification effect kind '${step.effectKind}'`,\n\t\t\t\t\topts.workItemId,\n\t\t\t\t\t{ stepId: step.stepId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tconst verifiesCriteriaIds = Array.isArray(step.verifiesCriteriaIds)\n\t\t\t? step.verifiesCriteriaIds\n\t\t\t: [];\n\t\tfor (const criterionId of verifiesCriteriaIds) {\n\t\t\tif (!criterionIds.has(criterionId)) {\n\t\t\t\tout.push(\n\t\t\t\t\tissue(\"dangling-ref\", `Unknown acceptance criterion '${criterionId}'`, opts.workItemId, {\n\t\t\t\t\t\tstepId: step.stepId,\n\t\t\t\t\t\tcriterionId,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tfor (const step of plan.steps) {\n\t\tif (!isRecord(step) || typeof step.stepId !== \"string\") continue;\n\t\tconst dependsOnStepIds = Array.isArray(step.dependsOnStepIds) ? step.dependsOnStepIds : [];\n\t\tfor (const depId of dependsOnStepIds) {\n\t\t\tif (!stepIds.has(depId)) {\n\t\t\t\tout.push(\n\t\t\t\t\tissue(\"dangling-ref\", `Unknown verification dependency '${depId}'`, opts.workItemId, {\n\t\t\t\t\t\tstepId: step.stepId,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tconst cycle = findCycle(\n\t\tplan.steps.filter(\n\t\t\t(step): step is VerificationStep =>\n\t\t\t\tisRecord(step) && typeof step.stepId === \"string\" && Array.isArray(step.dependsOnStepIds),\n\t\t),\n\t);\n\tif (cycle !== undefined) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"cyclic-dependency\",\n\t\t\t\t`Verification step cycle detected: ${cycle.join(\" -> \")}`,\n\t\t\t\topts.workItemId,\n\t\t\t\t{ stepId: cycle[0] },\n\t\t\t),\n\t\t);\n\t}\n\treturn out;\n}\n\nexport function workItemAuthoringProjector<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkItemAuthoringProjectorOptions<TInput>,\n): WorkItemAuthoringProjectorBundle<TInput> {\n\tconst name = opts.name ?? \"workItemAuthoring\";\n\tconst runtime = graph.node<Fact<TInput>>(\n\t\t[opts.facts],\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<AuthoringState<TInput>>() ?? {\n\t\t\t\tworkItems: new Map(),\n\t\t\t\tseenEvents: new Set(),\n\t\t\t\tstatusSeq: 0,\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? [])\n\t\t\t\treduceAuthoring(ctx, state, raw as WorkItemAuthoringInput<TInput>, opts.policy);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemAuthoringProjector\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tworkItems: project(graph, runtime, `${name}/workItems`, \"workItemAuthoringWorkItems\", (fact) =>\n\t\t\tfact.kind === \"work-item\" ? fact.value : undefined,\n\t\t),\n\t\tstatus: project(graph, runtime, `${name}/status`, \"workItemAuthoringStatus\", (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.value : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, \"workItemAuthoringIssues\", (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"workItemAuthoringAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function workItemVerificationRequestLowerer<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkItemVerificationRequestLowererOptions<TInput>,\n): WorkItemVerificationRequestLowererBundle<TInput> {\n\tconst name = opts.name ?? \"workItemVerificationRequests\";\n\tconst deps: Node<unknown>[] = [opts.workItems];\n\tconst dispatchIntentIndex =\n\t\topts.dispatchIntents === undefined ? -1 : deps.push(opts.dispatchIntents) - 1;\n\tconst verificationResultIndex =\n\t\topts.verificationResults === undefined ? -1 : deps.push(opts.verificationResults) - 1;\n\tconst runtime = graph.node<Fact<TInput>>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<RequestState<TInput>>() ?? {\n\t\t\t\tworkItems: new Map(),\n\t\t\t\temittedKeys: new Set(),\n\t\t\t\tpassedSteps: new Map(),\n\t\t\t\tstatusSeq: 0,\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst workItem = raw as WorkItemProjection<TInput>;\n\t\t\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t\t\t\tlowerPlan(ctx, state, workItem, opts.policy);\n\t\t\t}\n\t\t\tif (dispatchIntentIndex >= 0) {\n\t\t\t\tfor (const raw of depBatch(ctx, dispatchIntentIndex) ?? [])\n\t\t\t\t\tlowerIntent(ctx, state, raw as WorkItemDispatchIntent<TInput>, opts.policy);\n\t\t\t}\n\t\t\tif (verificationResultIndex >= 0) {\n\t\t\t\tfor (const raw of depBatch(ctx, verificationResultIndex) ?? [])\n\t\t\t\t\trecordVerificationResult(ctx, state, raw as VerificationResultRecorded, opts.policy);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemVerificationRequestLowerer\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\teffectRequests: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/effectRequests`,\n\t\t\t\"workItemVerificationEffectRequests\",\n\t\t\t(fact) => (fact.kind === \"request\" ? fact.value : undefined),\n\t\t),\n\t\tstatus: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/status`,\n\t\t\t\"workItemVerificationRequestStatus\",\n\t\t\t(fact) => (fact.kind === \"status\" ? fact.value : undefined),\n\t\t),\n\t\tissues: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/issues`,\n\t\t\t\"workItemVerificationRequestIssues\",\n\t\t\t(fact) => (fact.kind === \"issue\" ? fact.value : undefined),\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"workItemVerificationRequestAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function workItemVerificationResultMapper<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkItemVerificationResultMapperOptions<TInput>,\n): WorkItemVerificationResultMapperBundle {\n\tconst name = opts.name ?? \"workItemVerificationResults\";\n\tconst deps =\n\t\topts.policies === undefined\n\t\t\t? [opts.workItems, opts.evidence]\n\t\t\t: [opts.workItems, opts.evidence, opts.policies];\n\tconst runtime = graph.node<Fact<TInput>>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<ResultState<TInput>>() ?? {\n\t\t\t\tworkItems: new Map(),\n\t\t\t\tpolicies: new Map(),\n\t\t\t\tevidenceById: new Map(),\n\t\t\t\tresultEvidence: new Set(),\n\t\t\t\tproposalKeys: new Set(),\n\t\t\t\tstatusSeq: 0,\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst workItem = raw as WorkItemProjection<TInput>;\n\t\t\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t\t\t\treplayEvidence(ctx, state, workItem.workItemId);\n\t\t\t}\n\t\t\tif (opts.policies !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\t\t\t\tconst policy = raw as WorkItemVerificationMappingPolicy;\n\t\t\t\t\tconst issues = validateMappingPolicy(policy);\n\t\t\t\t\tif (issues.length > 0) {\n\t\t\t\t\t\tfor (const item of issues) emit(ctx, \"issue\", item);\n\t\t\t\t\t\temitResultStatus(ctx, state, {\n\t\t\t\t\t\t\tstate: \"rejected\",\n\t\t\t\t\t\t\tcode: \"policy-mismatch\",\n\t\t\t\t\t\t\tmetadata: { policyId: isRecord(policy) ? policy.policyId : undefined },\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstate.policies.set(policy.policyId, policy);\n\t\t\t\t}\n\t\t\t\tfor (const evidence of state.evidenceById.values()) {\n\t\t\t\t\tmapEvidence(ctx, state, evidence, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? [])\n\t\t\t\tmapEvidence(ctx, state, raw as WorkItemEvidenceRecorded);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemVerificationResultMapper\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tresults: project(graph, runtime, `${name}/results`, \"workItemVerificationResults\", (fact) =>\n\t\t\tfact.kind === \"result\" ? fact.value : undefined,\n\t\t),\n\t\tproposals: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/proposals`,\n\t\t\t\"workItemVerificationProposals\",\n\t\t\t(fact) => (fact.kind === \"proposal\" ? fact.value : undefined),\n\t\t),\n\t\tstatus: project(graph, runtime, `${name}/status`, \"workItemVerificationResultStatus\", (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.value : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, \"workItemVerificationResultIssues\", (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"workItemVerificationResultAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function validateWorkItemEffectPlan<TInput>(\n\tproposal: WorkItemEffectPlanProposed<TInput> | unknown,\n\tworkItem: WorkItemProjection<TInput> | undefined,\n\tpolicy: WorkItemEffectPlanPolicy = {},\n): readonly DataIssue[] {\n\tconst out: DataIssue[] = [];\n\tif (\n\t\t!isRecord(proposal) ||\n\t\tproposal.kind !== \"work-item-effect-plan-proposed\" ||\n\t\ttypeof proposal.planId !== \"string\" ||\n\t\tproposal.planId.trim() === \"\" ||\n\t\ttypeof proposal.workItemId !== \"string\" ||\n\t\tproposal.workItemId.trim() === \"\" ||\n\t\ttypeof proposal.executionInputRevision !== \"number\" ||\n\t\t!Array.isArray(proposal.members)\n\t) {\n\t\treturn [\n\t\t\tissue(\n\t\t\t\t\"malformed-draft\",\n\t\t\t\t\"WorkItemEffectPlanProposed requires planId, workItemId, executionInputRevision, and members\",\n\t\t\t\tisRecord(proposal) && typeof proposal.workItemId === \"string\"\n\t\t\t\t\t? proposal.workItemId\n\t\t\t\t\t: undefined,\n\t\t\t),\n\t\t];\n\t}\n\tif (proposal.joinPolicy !== undefined && !isWorkItemEffectPlanJoinPolicy(proposal.joinPolicy)) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"policy-mismatch\",\n\t\t\t\t`Unsupported WorkItemEffectPlan join policy '${proposal.joinPolicy}'`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\t{ planId: proposal.planId, joinPolicy: proposal.joinPolicy },\n\t\t\t),\n\t\t);\n\t}\n\tif (workItem === undefined) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`WorkItemEffectPlan '${proposal.planId}' references unknown WorkItem '${proposal.workItemId}'`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\t{ planId: proposal.planId },\n\t\t\t),\n\t\t);\n\t} else if (proposal.executionInputRevision !== workItem.executionInputRevision) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"stale-execution-input\",\n\t\t\t\t`WorkItemEffectPlan '${proposal.planId}' targets stale execution input`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\t{\n\t\t\t\t\tplanId: proposal.planId,\n\t\t\t\t\tproposedRevision: proposal.executionInputRevision,\n\t\t\t\t\tcurrentRevision: workItem.executionInputRevision,\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t}\n\tconst memberIds = new Set<string>();\n\tconst allowedEffectKinds =\n\t\tpolicy.allowedEffectKinds === undefined ? undefined : new Set(policy.allowedEffectKinds);\n\tfor (const member of proposal.members) {\n\t\tif (!isRecord(member)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"malformed-draft\",\n\t\t\t\t\t\"WorkItemEffectPlan member must be an object\",\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{\n\t\t\t\t\t\tplanId: proposal.planId,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof member.memberId !== \"string\" || member.memberId.trim() === \"\") {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-required-field\",\n\t\t\t\t\t\"WorkItemEffectPlan memberId is required\",\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{ planId: proposal.planId },\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (memberIds.has(member.memberId)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"duplicate-id\",\n\t\t\t\t\t`Duplicate WorkItemEffectPlan member id '${member.memberId}'`,\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tmemberIds.add(member.memberId);\n\t\tif (typeof member.effectKind !== \"string\" || member.effectKind.trim() === \"\") {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-required-field\",\n\t\t\t\t\t\"WorkItemEffectPlan member effectKind is required\",\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId },\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (allowedEffectKinds !== undefined && !allowedEffectKinds.has(member.effectKind)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"unsupported-effect-kind\",\n\t\t\t\t\t`Unsupported WorkItemEffectPlan effect kind '${member.effectKind}'`,\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (!isRecord(member.goal)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-required-field\",\n\t\t\t\t\t\"WorkItemEffectPlan member goal is required\",\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tfor (const field of [\n\t\t\t\"dependsOnMemberIds\",\n\t\t\t\"contextRefs\",\n\t\t\t\"requirements\",\n\t\t\t\"policyRefs\",\n\t\t\t\"sourceRefs\",\n\t\t] as const) {\n\t\t\tif (member[field] !== undefined && !Array.isArray(member[field])) {\n\t\t\t\tout.push(\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"malformed-draft\",\n\t\t\t\t\t\t`WorkItemEffectPlan member ${field} must be an array`,\n\t\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId, field },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tfor (const member of proposal.members) {\n\t\tif (!isRecord(member) || typeof member.memberId !== \"string\") continue;\n\t\tconst deps = Array.isArray(member.dependsOnMemberIds) ? member.dependsOnMemberIds : [];\n\t\tfor (const depId of deps) {\n\t\t\tif (!memberIds.has(depId)) {\n\t\t\t\tout.push(\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"dangling-ref\",\n\t\t\t\t\t\t`Unknown WorkItemEffectPlan dependency '${depId}'`,\n\t\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId, depId },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tconst cycle = findPlanCycle(\n\t\tproposal.members.filter(\n\t\t\t(member): member is WorkItemEffectPlanMember<TInput> =>\n\t\t\t\tisRecord(member) &&\n\t\t\t\ttypeof member.memberId === \"string\" &&\n\t\t\t\tArray.isArray(member.dependsOnMemberIds),\n\t\t),\n\t);\n\tif (cycle !== undefined) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"cyclic-dependency\",\n\t\t\t\t`WorkItemEffectPlan member cycle detected: ${cycle.join(\" -> \")}`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\t{ planId: proposal.planId, planMemberId: cycle[0] },\n\t\t\t),\n\t\t);\n\t}\n\treturn out;\n}\n\nexport function workItemEffectPlanProjector<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkItemEffectPlanProjectorOptions<TInput>,\n): WorkItemEffectPlanProjectorBundle<TInput> {\n\tconst name = opts.name ?? \"workItemEffectPlans\";\n\tconst deps: Node<unknown>[] = [opts.workItems, opts.proposals];\n\tconst evidenceIndex = opts.evidence === undefined ? -1 : deps.push(opts.evidence) - 1;\n\tconst resultIndex =\n\t\topts.effectRunResults === undefined ? -1 : deps.push(opts.effectRunResults) - 1;\n\tconst now = opts.now ?? Date.now;\n\tconst runtime = graph.node<PlanFact<TInput>>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<PlanState<TInput>>() ?? emptyPlanState<TInput>();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst workItem = raw as WorkItemProjection<TInput>;\n\t\t\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t\t\t\tfor (const proposal of state.proposals.values()) {\n\t\t\t\t\tif (proposal.workItemId === workItem.workItemId)\n\t\t\t\t\t\tadmitPlan(ctx, state, proposal, opts.policy, now);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst proposal = raw as WorkItemEffectPlanProposed<TInput>;\n\t\t\t\tif (\n\t\t\t\t\tisRecord(proposal) &&\n\t\t\t\t\ttypeof proposal.planId === \"string\" &&\n\t\t\t\t\ttypeof proposal.workItemId === \"string\"\n\t\t\t\t) {\n\t\t\t\t\tconst key = planKey(\n\t\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t\tproposal.planId,\n\t\t\t\t\t\tproposal.executionInputRevision,\n\t\t\t\t\t);\n\t\t\t\t\tif (key !== undefined) state.proposals.set(key, proposal);\n\t\t\t\t}\n\t\t\t\tadmitPlan(ctx, state, proposal, opts.policy, now);\n\t\t\t}\n\t\t\tif (evidenceIndex >= 0) {\n\t\t\t\tfor (const raw of depBatch(ctx, evidenceIndex) ?? [])\n\t\t\t\t\trecordPlanEvidence(ctx, state, raw as WorkItemEvidenceRecorded);\n\t\t\t}\n\t\t\tif (resultIndex >= 0) {\n\t\t\t\tfor (const raw of depBatch(ctx, resultIndex) ?? [])\n\t\t\t\t\trecordPlanResult(ctx, state, raw as EffectRunResult);\n\t\t\t}\n\t\t\tdrainPlanWork(ctx, state, opts.policy);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemEffectPlanProjector\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tadmitted: project(graph, runtime, `${name}/admitted`, \"workItemEffectPlansAdmitted\", (fact) =>\n\t\t\tfact.kind === \"admitted\" ? fact.value : undefined,\n\t\t),\n\t\trejected: project(graph, runtime, `${name}/rejected`, \"workItemEffectPlansRejected\", (fact) =>\n\t\t\tfact.kind === \"rejected\" ? fact.value : undefined,\n\t\t),\n\t\teffectRequests: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/effectRequests`,\n\t\t\t\"workItemEffectPlanEffectRequests\",\n\t\t\t(fact) => (fact.kind === \"request\" ? fact.value : undefined),\n\t\t),\n\t\tresults: project(graph, runtime, `${name}/results`, \"workItemEffectPlanResults\", (fact) =>\n\t\t\tfact.kind === \"result\" ? fact.value : undefined,\n\t\t),\n\t\tstatus: project(graph, runtime, `${name}/status`, \"workItemEffectPlanStatus\", (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.value : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, \"workItemEffectPlanIssues\", (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"workItemEffectPlanAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nfunction emptyPlanState<T>(): PlanState<T> {\n\treturn {\n\t\tworkItems: new Map(),\n\t\tproposals: new Map(),\n\t\tadmitted: new Map(),\n\t\trejected: new Set(),\n\t\temittedMemberKeys: new Set(),\n\t\tstatusKeys: new Set(),\n\t\tresultKeys: new Set(),\n\t\trequestByEffectRun: new Map(),\n\t\trequestByRequestId: new Map(),\n\t\tmemberEvidence: new Map(),\n\t\tpendingEvidence: new Map(),\n\t\tpendingResults: new Map(),\n\t\tunmatchedEvidence: new Set(),\n\t\tunmatchedResults: new Set(),\n\t\tstatusSeq: 0,\n\t\tauditSeq: 0,\n\t};\n}\n\nfunction admitPlan<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tproposal: WorkItemEffectPlanProposed<T>,\n\tpolicy: WorkItemEffectPlanPolicy | undefined,\n\tnow: () => number,\n): void {\n\tif (!isRecord(proposal) || typeof proposal.planId !== \"string\") {\n\t\tconst issues = validateWorkItemEffectPlan(proposal, undefined, policy);\n\t\temitPlanIssues(ctx, state, issues);\n\t\treturn;\n\t}\n\tconst key = planKey(proposal.workItemId, proposal.planId, proposal.executionInputRevision);\n\tif (key === undefined) {\n\t\tconst issues = validateWorkItemEffectPlan(proposal, undefined, policy);\n\t\temitPlanIssues(ctx, state, issues);\n\t\treturn;\n\t}\n\tif (state.admitted.has(key) || state.rejected.has(key)) return;\n\tconst workItem = state.workItems.get(proposal.workItemId);\n\tif (workItem === undefined) {\n\t\temitPlanStatusOnce(ctx, state, `${key}:deferred:missing-work-item`, {\n\t\t\tworkItemId: proposal.workItemId,\n\t\t\tplanId: proposal.planId,\n\t\t\texecutionInputRevision: proposal.executionInputRevision,\n\t\t\tstate: \"deferred\",\n\t\t\tmessage: `WorkItemEffectPlan '${proposal.planId}' is waiting for WorkItem '${proposal.workItemId}'`,\n\t\t\tsourceRefs: proposal.sourceRefs,\n\t\t\tmetadata: { reason: \"missing-work-item\" },\n\t\t});\n\t\treturn;\n\t}\n\tconst issues = validateWorkItemEffectPlan(proposal, workItem, policy);\n\tif (issues.length > 0) {\n\t\tstate.rejected.add(key);\n\t\temitPlanIssues(ctx, state, issues);\n\t\tconst rejected: WorkItemEffectPlanRejected = {\n\t\t\tkind: \"work-item-effect-plan-rejected\",\n\t\t\tplanId: proposal.planId,\n\t\t\tworkItemId: proposal.workItemId,\n\t\t\texecutionInputRevision: proposal.executionInputRevision,\n\t\t\tissues,\n\t\t\tsourceRefs: proposal.sourceRefs,\n\t\t\trejectedAtMs: now(),\n\t\t\tmetadata: proposal.metadata,\n\t\t};\n\t\temitPlan(ctx, \"rejected\", rejected);\n\t\temitPlanStatus(ctx, state, {\n\t\t\tworkItemId: proposal.workItemId,\n\t\t\tplanId: proposal.planId,\n\t\t\texecutionInputRevision: proposal.executionInputRevision,\n\t\t\tstate: \"rejected\",\n\t\t\tissues,\n\t\t\tsourceRefs: proposal.sourceRefs,\n\t\t\tmetadata: { issueCodes: issues.map((item) => item.code) },\n\t\t});\n\t\treturn;\n\t}\n\tconst snapshot = normalizeEffectPlanSnapshot(proposal, policy);\n\tconst admitted: WorkItemEffectPlanAdmitted<T> = {\n\t\tkind: \"work-item-effect-plan-admitted\",\n\t\tplanId: snapshot.planId,\n\t\tworkItemId: snapshot.workItemId,\n\t\texecutionInputRevision: snapshot.executionInputRevision,\n\t\tplan: snapshot,\n\t\tsourceRefs: immutableClone(proposal.sourceRefs),\n\t\tadmittedAtMs: now(),\n\t\tmetadata: immutableClone(proposal.metadata),\n\t};\n\tstate.admitted.set(key, admitted);\n\temitPlan(ctx, \"admitted\", admitted);\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: admitted.workItemId,\n\t\tplanId: admitted.planId,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tstate: \"eligible\",\n\t\tsourceRefs: admitted.sourceRefs,\n\t\tmetadata: { memberCount: admitted.plan.members.length },\n\t});\n}\n\nfunction drainPlanWork<T>(ctx: Ctx, state: PlanState<T>, policy?: WorkItemEffectPlanPolicy): void {\n\tconst maxPasses =\n\t\tstate.admitted.size +\n\t\tstate.pendingEvidence.size +\n\t\tstate.pendingResults.size +\n\t\tstate.emittedMemberKeys.size +\n\t\t1;\n\tfor (let pass = 0; pass < maxPasses; pass += 1) {\n\t\tlet changed = false;\n\t\tfor (const admitted of state.admitted.values()) {\n\t\t\tchanged = lowerEligiblePlanMembers(ctx, state, admitted, policy) || changed;\n\t\t\tderivePlanResult(ctx, state, admitted);\n\t\t}\n\t\tchanged = replayPendingPlanFacts(ctx, state) || changed;\n\t\tif (!changed) break;\n\t}\n\tfor (const admitted of state.admitted.values()) derivePlanResult(ctx, state, admitted);\n}\n\nfunction lowerEligiblePlanMembers<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tpolicy?: WorkItemEffectPlanPolicy,\n): boolean {\n\tif (isAdmittedPlanStale(state, admitted)) {\n\t\temitStaleAdmittedPlanOnce(ctx, state, admitted);\n\t\treturn false;\n\t}\n\tlet changed = false;\n\tfor (const member of admitted.plan.members) {\n\t\tconst coord = memberCoord(admitted, member.memberId);\n\t\tif (state.memberEvidence.has(coord)) continue;\n\t\tconst missing = (member.dependsOnMemberIds ?? []).filter(\n\t\t\t(memberId) => !memberSucceeded(state, admitted, memberId),\n\t\t);\n\t\tif (missing.length > 0) {\n\t\t\temitPlanStatusOnce(ctx, state, `${coord}:blocked:${missing.join(\",\")}`, {\n\t\t\t\tworkItemId: admitted.workItemId,\n\t\t\t\tplanId: admitted.planId,\n\t\t\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\t\t\tstate: \"blocked\",\n\t\t\t\tplanMemberId: member.memberId,\n\t\t\t\tissues: [\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"blocked-prerequisite\",\n\t\t\t\t\t\t`WorkItemEffectPlan member '${member.memberId}' is blocked by prerequisites`,\n\t\t\t\t\t\tadmitted.workItemId,\n\t\t\t\t\t\t{ planId: admitted.planId, planMemberId: member.memberId, missingMemberIds: missing },\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t\tsourceRefs: member.sourceRefs,\n\t\t\t\tmetadata: { missingMemberIds: missing },\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (state.emittedMemberKeys.has(coord)) continue;\n\t\tstate.emittedMemberKeys.add(coord);\n\t\tchanged = true;\n\t\tconst request = requestFromPlanMember(admitted, member, policy);\n\t\tstate.requestByEffectRun.set(request.effectRunId, request);\n\t\tstate.requestByRequestId.set(request.requestId, request);\n\t\temitPlan(ctx, \"request\", request);\n\t\temitPlanStatus(ctx, state, {\n\t\t\tworkItemId: admitted.workItemId,\n\t\t\tplanId: admitted.planId,\n\t\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\t\tstate: \"requested\",\n\t\t\tplanMemberId: member.memberId,\n\t\t\trequestId: request.requestId,\n\t\t\teffectRunId: request.effectRunId,\n\t\t\tsourceRefs: request.sourceRefs,\n\t\t\tmetadata: { effectKind: request.effectKind },\n\t\t});\n\t}\n\treturn changed;\n}\n\nfunction recordPlanEvidence<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tevidence: WorkItemEvidenceRecorded,\n): boolean {\n\tconst coordinate = planCoordinateFromEvidence(state, evidence);\n\tif (coordinate === undefined) {\n\t\tstate.pendingEvidence.set(evidence.evidenceId, evidence);\n\t\temitUnmatchedEvidence(ctx, state, `evidence:${evidence.evidenceId}`, evidence.workItemId, {\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t});\n\t\treturn false;\n\t}\n\tif (emitConflictingPlanEvidenceCoordinate(ctx, state, evidence, coordinate)) return true;\n\tconst key = requiredPlanKey(\n\t\tcoordinate.workItemId,\n\t\tcoordinate.planId,\n\t\tcoordinate.executionInputRevision,\n\t);\n\tconst admitted = state.admitted.get(key);\n\tif (admitted === undefined) {\n\t\tstate.pendingEvidence.set(evidence.evidenceId, evidence);\n\t\temitUnmatchedEvidence(ctx, state, `evidence:${evidence.evidenceId}`, coordinate.workItemId, {\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t\tplanId: coordinate.planId,\n\t\t\tplanMemberId: coordinate.planMemberId,\n\t\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\t});\n\t\treturn false;\n\t}\n\tif (isAdmittedPlanStale(state, admitted)) {\n\t\temitStaleAdmittedPlanOnce(ctx, state, admitted);\n\t\treturn true;\n\t}\n\tif (!hasPlanMember(admitted, coordinate.planMemberId)) {\n\t\temitUnknownPlanMember(ctx, state, admitted, coordinate.planMemberId, {\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t});\n\t\treturn true;\n\t}\n\tconst recorded = recordMemberEvidence(ctx, state, admitted, coordinate.planMemberId, {\n\t\tstatus: evidence.status,\n\t\trequestId: coordinate.requestId ?? coordinate.request?.requestId,\n\t\teffectRunId: evidence.effectRunId,\n\t\tevidenceId: evidence.evidenceId,\n\t\teffectRunResultId: evidence.effectRunResultId,\n\t\tsourceRefs: evidence.sourceRefs,\n\t});\n\tif (!recorded) return true;\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: coordinate.workItemId,\n\t\tplanId: coordinate.planId,\n\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\tstate: evidence.status === \"completed\" ? \"completed\" : \"failed\",\n\t\tplanMemberId: coordinate.planMemberId,\n\t\trequestId: coordinate.requestId ?? coordinate.request?.requestId,\n\t\teffectRunId: evidence.effectRunId,\n\t\tevidenceId: evidence.evidenceId,\n\t\teffectRunResultId: evidence.effectRunResultId,\n\t\tsourceRefs: evidence.sourceRefs,\n\t\tmetadata: { evidenceStatus: evidence.status },\n\t});\n\treturn true;\n}\n\nfunction emitConflictingPlanEvidenceCoordinate<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tevidence: WorkItemEvidenceRecorded,\n\tcoordinate: PlanCoordinate<T>,\n): boolean {\n\tconst expectedRequest = planRequestForCoordinate(state, coordinate);\n\tconst expectedRequestIdMismatch =\n\t\texpectedRequest !== undefined &&\n\t\tevidence.requestId !== undefined &&\n\t\tevidence.requestId !== expectedRequest.requestId;\n\tif (\n\t\texpectedRequest !== undefined &&\n\t\t(expectedRequestIdMismatch || evidence.effectRunId !== expectedRequest.effectRunId)\n\t) {\n\t\temitPlanEvidenceCoordinateMismatch(ctx, state, evidence, coordinate, expectedRequest);\n\t\treturn true;\n\t}\n\tconst requestRefs = [\n\t\tevidence.requestId === undefined ? undefined : state.requestByRequestId.get(evidence.requestId),\n\t\tstate.requestByEffectRun.get(evidence.effectRunId),\n\t].filter((request): request is WorkItemEffectRequested<T> => request !== undefined);\n\tconst conflicting = requestRefs.find(\n\t\t(request) =>\n\t\t\t!requestMatchesPlanCoordinate(request, coordinate) ||\n\t\t\t!requestMatchesEvidenceIdentity(request, evidence),\n\t);\n\tif (conflicting === undefined) return false;\n\temitPlanEvidenceCoordinateMismatch(ctx, state, evidence, coordinate, conflicting);\n\treturn true;\n}\n\nfunction emitPlanEvidenceCoordinateMismatch<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tevidence: WorkItemEvidenceRecorded,\n\tcoordinate: PlanCoordinate<T>,\n\tconflicting: WorkItemEffectRequested<T>,\n): void {\n\tconst item = issue(\n\t\t\"dangling-ref\",\n\t\t\"WorkItemEffectPlan evidence request/effectRun coordinates do not match its plan member coordinates\",\n\t\tevidence.workItemId,\n\t\t{\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\trequestId: evidence.requestId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t\tplanId: coordinate.planId,\n\t\t\tplanMemberId: coordinate.planMemberId,\n\t\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\t\trequestPlanId: conflicting.planId,\n\t\t\trequestPlanMemberId: conflicting.planMemberId,\n\t\t\trequestExecutionInputRevision: conflicting.executionInputRevision,\n\t\t},\n\t);\n\temitPlan(ctx, \"issue\", item);\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: coordinate.workItemId,\n\t\tplanId: coordinate.planId,\n\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\tstate: \"rejected\",\n\t\tplanMemberId: coordinate.planMemberId,\n\t\trequestId: evidence.requestId,\n\t\teffectRunId: evidence.effectRunId,\n\t\tevidenceId: evidence.evidenceId,\n\t\tissues: [item],\n\t\tsourceRefs: evidence.sourceRefs,\n\t\tmetadata: item.metadata,\n\t});\n}\n\nfunction requestMatchesPlanCoordinate<T>(\n\trequest: WorkItemEffectRequested<T>,\n\tcoordinate: PlanCoordinate<T>,\n): boolean {\n\treturn (\n\t\trequest.workItemId === coordinate.workItemId &&\n\t\trequest.planId === coordinate.planId &&\n\t\trequest.planMemberId === coordinate.planMemberId &&\n\t\trequest.executionInputRevision === coordinate.executionInputRevision\n\t);\n}\n\nfunction requestMatchesEvidenceIdentity<T>(\n\trequest: WorkItemEffectRequested<T>,\n\tevidence: WorkItemEvidenceRecorded,\n): boolean {\n\treturn (\n\t\t(evidence.requestId === undefined || evidence.requestId === request.requestId) &&\n\t\tevidence.effectRunId === request.effectRunId\n\t);\n}\n\nfunction planRequestForCoordinate<T>(\n\tstate: PlanState<T>,\n\tcoordinate: PlanCoordinate<T>,\n): WorkItemEffectRequested<T> | undefined {\n\tfor (const request of state.requestByRequestId.values()) {\n\t\tif (requestMatchesPlanCoordinate(request, coordinate)) return request;\n\t}\n\treturn undefined;\n}\n\nfunction recordPlanResult<T>(ctx: Ctx, state: PlanState<T>, result: EffectRunResult): boolean {\n\tconst coordinate = planCoordinateFromResult(state, result);\n\tif (coordinate === undefined) {\n\t\tstate.pendingResults.set(result.resultId, result);\n\t\temitUnmatchedEvidence(ctx, state, `result:${result.resultId}`, undefined, {\n\t\t\teffectRunResultId: result.resultId,\n\t\t\teffectRunId: result.effectRunId,\n\t\t});\n\t\treturn false;\n\t}\n\tconst key = requiredPlanKey(\n\t\tcoordinate.workItemId,\n\t\tcoordinate.planId,\n\t\tcoordinate.executionInputRevision,\n\t);\n\tconst admitted = state.admitted.get(key);\n\tif (admitted === undefined) {\n\t\tstate.pendingResults.set(result.resultId, result);\n\t\temitUnmatchedEvidence(ctx, state, `result:${result.resultId}`, coordinate.workItemId, {\n\t\t\teffectRunResultId: result.resultId,\n\t\t\teffectRunId: result.effectRunId,\n\t\t\tplanId: coordinate.planId,\n\t\t\tplanMemberId: coordinate.planMemberId,\n\t\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\t});\n\t\treturn false;\n\t}\n\tif (isAdmittedPlanStale(state, admitted)) {\n\t\temitStaleAdmittedPlanOnce(ctx, state, admitted);\n\t\treturn true;\n\t}\n\tif (!hasPlanMember(admitted, coordinate.planMemberId)) {\n\t\temitUnknownPlanMember(ctx, state, admitted, coordinate.planMemberId, {\n\t\t\teffectRunResultId: result.resultId,\n\t\t\teffectRunId: result.effectRunId,\n\t\t});\n\t\treturn true;\n\t}\n\tconst recorded = recordMemberEvidence(ctx, state, admitted, coordinate.planMemberId, {\n\t\tstatus: result.status,\n\t\trequestId: coordinate.request?.requestId,\n\t\teffectRunId: result.effectRunId,\n\t\teffectRunResultId: result.resultId,\n\t\tsourceRefs: result.sourceRefs,\n\t});\n\tif (!recorded) return true;\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: coordinate.workItemId,\n\t\tplanId: coordinate.planId,\n\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\tstate: result.status === \"completed\" ? \"completed\" : \"failed\",\n\t\tplanMemberId: coordinate.planMemberId,\n\t\trequestId: coordinate.request?.requestId,\n\t\teffectRunId: result.effectRunId,\n\t\teffectRunResultId: result.resultId,\n\t\tsourceRefs: result.sourceRefs,\n\t\tmetadata: { resultStatus: result.status },\n\t});\n\treturn true;\n}\n\nfunction replayPendingPlanFacts<T>(ctx: Ctx, state: PlanState<T>): boolean {\n\tlet changed = false;\n\tfor (const [evidenceId, evidence] of [...state.pendingEvidence]) {\n\t\tif (recordPlanEvidence(ctx, state, evidence)) {\n\t\t\tstate.pendingEvidence.delete(evidenceId);\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tfor (const [resultId, result] of [...state.pendingResults]) {\n\t\tif (recordPlanResult(ctx, state, result)) {\n\t\t\tstate.pendingResults.delete(resultId);\n\t\t\tchanged = true;\n\t\t}\n\t}\n\treturn changed;\n}\n\ninterface PlanCoordinate<T> {\n\treadonly workItemId: string;\n\treadonly planId: string;\n\treadonly executionInputRevision: number;\n\treadonly planMemberId: string;\n\treadonly requestId?: string;\n\treadonly request?: WorkItemEffectRequested<T>;\n}\n\nfunction planCoordinateFromEvidence<T>(\n\tstate: PlanState<T>,\n\tevidence: WorkItemEvidenceRecorded,\n): PlanCoordinate<T> | undefined {\n\tconst topLevelRequest =\n\t\tevidence.requestId === undefined ? undefined : state.requestByRequestId.get(evidence.requestId);\n\tconst effectRunRequest = state.requestByEffectRun.get(evidence.effectRunId);\n\tif (\n\t\tevidence.planId !== undefined &&\n\t\tevidence.planMemberId !== undefined &&\n\t\tevidence.executionInputRevision !== undefined\n\t) {\n\t\treturn {\n\t\t\tworkItemId: evidence.workItemId,\n\t\t\tplanId: evidence.planId,\n\t\t\texecutionInputRevision: evidence.executionInputRevision,\n\t\t\tplanMemberId: evidence.planMemberId,\n\t\t\trequestId: topLevelRequest?.requestId ?? effectRunRequest?.requestId ?? evidence.requestId,\n\t\t\trequest: topLevelRequest ?? effectRunRequest,\n\t\t};\n\t}\n\tconst request = effectRunRequest;\n\tif (\n\t\trequest?.planId !== undefined &&\n\t\trequest.planMemberId !== undefined &&\n\t\trequest.executionInputRevision !== undefined\n\t) {\n\t\treturn {\n\t\t\tworkItemId: request.workItemId,\n\t\t\tplanId: request.planId,\n\t\t\texecutionInputRevision: request.executionInputRevision,\n\t\t\tplanMemberId: request.planMemberId,\n\t\t\trequestId: request.requestId,\n\t\t\trequest,\n\t\t};\n\t}\n\tconst planId = stringMetadata(evidence.metadata, \"planId\");\n\tconst planMemberId = stringMetadata(evidence.metadata, \"planMemberId\");\n\tconst executionInputRevision = numberMetadata(evidence.metadata, \"executionInputRevision\");\n\tconst requestId = stringMetadata(evidence.metadata, \"requestId\");\n\tif (planId === undefined || planMemberId === undefined || executionInputRevision === undefined)\n\t\treturn undefined;\n\treturn {\n\t\tworkItemId: evidence.workItemId,\n\t\tplanId,\n\t\texecutionInputRevision,\n\t\tplanMemberId,\n\t\trequestId,\n\t};\n}\n\nfunction planCoordinateFromResult<T>(\n\tstate: PlanState<T>,\n\tresult: EffectRunResult,\n): PlanCoordinate<T> | undefined {\n\tconst request = state.requestByEffectRun.get(result.effectRunId);\n\tif (\n\t\trequest?.planId !== undefined &&\n\t\trequest.planMemberId !== undefined &&\n\t\trequest.executionInputRevision !== undefined\n\t) {\n\t\treturn {\n\t\t\tworkItemId: request.workItemId,\n\t\t\tplanId: request.planId,\n\t\t\texecutionInputRevision: request.executionInputRevision,\n\t\t\tplanMemberId: request.planMemberId,\n\t\t\trequestId: request.requestId,\n\t\t\trequest,\n\t\t};\n\t}\n\tconst workItemId =\n\t\tsourceRefId(result.subjectRefs, \"work-item\") ?? sourceRefId(result.sourceRefs, \"work-item\");\n\tconst planId = stringMetadata(result.metadata, \"planId\");\n\tconst planMemberId = stringMetadata(result.metadata, \"planMemberId\");\n\tconst executionInputRevision = numberMetadata(result.metadata, \"executionInputRevision\");\n\tif (\n\t\tworkItemId === undefined ||\n\t\tplanId === undefined ||\n\t\tplanMemberId === undefined ||\n\t\texecutionInputRevision === undefined\n\t)\n\t\treturn undefined;\n\treturn { workItemId, planId, executionInputRevision, planMemberId };\n}\n\nfunction recordMemberEvidence<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tplanMemberId: string,\n\tevidence: PlanMemberEvidence,\n): boolean {\n\tconst coord = memberCoord(admitted, planMemberId);\n\tconst existing = state.memberEvidence.get(coord);\n\tif (existing !== undefined) {\n\t\tconst duplicateIssue = issue(\n\t\t\t\"duplicate-suppressed\",\n\t\t\t`WorkItemEffectPlan member '${planMemberId}' already has terminal evidence`,\n\t\t\tadmitted.workItemId,\n\t\t\t{\n\t\t\t\tplanId: admitted.planId,\n\t\t\t\tplanMemberId,\n\t\t\t\texistingEvidenceId: existing.evidenceId,\n\t\t\t\texistingEffectRunResultId: existing.effectRunResultId,\n\t\t\t\tevidenceId: evidence.evidenceId,\n\t\t\t\teffectRunResultId: evidence.effectRunResultId,\n\t\t\t},\n\t\t);\n\t\temitPlan(ctx, \"issue\", duplicateIssue);\n\t\temitPlanStatus(ctx, state, {\n\t\t\tworkItemId: admitted.workItemId,\n\t\t\tplanId: admitted.planId,\n\t\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\t\tstate: \"duplicate\",\n\t\t\tplanMemberId,\n\t\t\trequestId: evidence.requestId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\teffectRunResultId: evidence.effectRunResultId,\n\t\t\tissues: [duplicateIssue],\n\t\t\tsourceRefs: evidence.sourceRefs,\n\t\t});\n\t\treturn false;\n\t}\n\tstate.memberEvidence.set(coord, evidence);\n\treturn true;\n}\n\nfunction hasPlanMember<T>(admitted: WorkItemEffectPlanAdmitted<T>, planMemberId: string): boolean {\n\treturn admitted.plan.members.some((member) => member.memberId === planMemberId);\n}\n\nfunction isAdmittedPlanStale<T>(\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n): boolean {\n\tconst current = state.workItems.get(admitted.workItemId);\n\treturn (\n\t\tcurrent !== undefined && current.executionInputRevision !== admitted.executionInputRevision\n\t);\n}\n\nfunction emitStaleAdmittedPlanOnce<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n): void {\n\tconst current = state.workItems.get(admitted.workItemId);\n\temitPlanStatusOnce(ctx, state, `${memberCoord(admitted, \"plan\")}:stale`, {\n\t\tworkItemId: admitted.workItemId,\n\t\tplanId: admitted.planId,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tstate: \"stale\",\n\t\tissues: [\n\t\t\tissue(\n\t\t\t\t\"stale-execution-input\",\n\t\t\t\t`WorkItemEffectPlan '${admitted.planId}' targets stale execution input`,\n\t\t\t\tadmitted.workItemId,\n\t\t\t\t{\n\t\t\t\t\tplanId: admitted.planId,\n\t\t\t\t\tproposedRevision: admitted.executionInputRevision,\n\t\t\t\t\tcurrentRevision: current?.executionInputRevision,\n\t\t\t\t},\n\t\t\t),\n\t\t],\n\t\tsourceRefs: admitted.sourceRefs,\n\t\tmetadata: { currentRevision: current?.executionInputRevision },\n\t});\n}\n\nfunction emitUnknownPlanMember<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tplanMemberId: string,\n\tmetadata: Record<string, unknown>,\n): void {\n\tconst item = issue(\n\t\t\"dangling-ref\",\n\t\t`WorkItemEffectPlan evidence/result references unknown member '${planMemberId}'`,\n\t\tadmitted.workItemId,\n\t\t{ planId: admitted.planId, planMemberId, ...metadata },\n\t);\n\temitPlan(ctx, \"issue\", item);\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: admitted.workItemId,\n\t\tplanId: admitted.planId,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tstate: \"rejected\",\n\t\tplanMemberId,\n\t\tissues: [item],\n\t\tsourceRefs: admitted.sourceRefs,\n\t\tmetadata,\n\t});\n}\n\nfunction emitUnmatchedEvidence<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tkey: string,\n\tworkItemId: string | undefined,\n\tmetadata: Record<string, unknown>,\n): void {\n\tconst seen = key.startsWith(\"evidence:\") ? state.unmatchedEvidence : state.unmatchedResults;\n\tif (seen.has(key)) return;\n\tseen.add(key);\n\tconst item = issue(\n\t\t\"dangling-ref\",\n\t\t\"WorkItemEffectPlan evidence/result could not be joined to an admitted plan member\",\n\t\tworkItemId,\n\t\tmetadata,\n\t);\n\temitPlan(ctx, \"issue\", item);\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: workItemId ?? \"unknown\",\n\t\tplanId: typeof metadata.planId === \"string\" ? metadata.planId : \"unknown\",\n\t\texecutionInputRevision:\n\t\t\ttypeof metadata.executionInputRevision === \"number\" ? metadata.executionInputRevision : 0,\n\t\tstate: \"deferred\",\n\t\tissues: [item],\n\t\tmetadata,\n\t});\n}\n\nfunction derivePlanResult<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n): void {\n\tconst requiredMembers = admitted.plan.members.filter((member) => member.required !== false);\n\tif (requiredMembers.length === 0) return;\n\tconst memberResults: WorkItemEffectPlanResult[\"memberResults\"][number][] = [];\n\tfor (const member of admitted.plan.members) {\n\t\tconst evidence = state.memberEvidence.get(memberCoord(admitted, member.memberId));\n\t\tif (evidence === undefined) continue;\n\t\tmemberResults.push({\n\t\t\tplanMemberId: member.memberId,\n\t\t\tstatus: evidence.status,\n\t\t\trequestId: evidence.requestId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\teffectRunResultId: evidence.effectRunResultId,\n\t\t});\n\t}\n\tconst hasRequiredFailed = requiredMembers.some((member) => {\n\t\tconst evidence = state.memberEvidence.get(memberCoord(admitted, member.memberId));\n\t\treturn evidence !== undefined && evidence.status !== \"completed\";\n\t});\n\tconst settledRequiredCount = requiredMembers.filter((member) =>\n\t\tstate.memberEvidence.has(memberCoord(admitted, member.memberId)),\n\t).length;\n\tconst allRequiredSettled = settledRequiredCount === requiredMembers.length;\n\tconst requiredBlockedByFailure = requiredMembers.some((member) =>\n\t\tmemberBlockedByFailure(state, admitted, member.memberId, new Set()),\n\t);\n\tif (!hasRequiredFailed && !allRequiredSettled && !requiredBlockedByFailure) return;\n\tconst status: WorkItemEffectPlanResultStatus =\n\t\tadmitted.plan.joinPolicy === \"evidence-only\"\n\t\t\t? \"evidence-only\"\n\t\t\t: hasRequiredFailed || requiredBlockedByFailure\n\t\t\t\t? \"failed\"\n\t\t\t\t: \"succeeded\";\n\tconst key = memberCoord(admitted, \"result\");\n\tif (state.resultKeys.has(key)) return;\n\tstate.resultKeys.add(key);\n\tconst result: WorkItemEffectPlanResult = {\n\t\tkind: \"work-item-effect-plan-result\",\n\t\tresultId: `work-item-effect-plan-result:${admitted.workItemId}:${admitted.executionInputRevision}:${admitted.planId}`,\n\t\tworkItemId: admitted.workItemId,\n\t\tplanId: admitted.planId,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tstatus,\n\t\tmemberResults,\n\t\tsourceRefs: admitted.sourceRefs,\n\t};\n\temitPlan(ctx, \"result\", result);\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: admitted.workItemId,\n\t\tplanId: admitted.planId,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tstate: status === \"succeeded\" || status === \"evidence-only\" ? \"completed\" : \"failed\",\n\t\tsourceRefs: admitted.sourceRefs,\n\t\tmetadata: { resultId: result.resultId, resultStatus: status },\n\t});\n}\n\nfunction normalizeEffectPlanSnapshot<T>(\n\tproposal: WorkItemEffectPlanProposed<T>,\n\tpolicy?: WorkItemEffectPlanPolicy,\n): WorkItemEffectPlanSnapshot<T> {\n\tconst joinPolicy = proposal.joinPolicy ?? policy?.joinPolicy ?? \"all-required\";\n\tconst members = proposal.members.map((member) =>\n\t\tObject.freeze({\n\t\t\t...member,\n\t\t\tgoal: immutableClone(member.goal),\n\t\t\tdependsOnMemberIds: immutableClone(member.dependsOnMemberIds ?? []),\n\t\t\tcontextRefs: immutableClone(member.contextRefs),\n\t\t\trequirements: immutableClone(member.requirements),\n\t\t\tcapacityHints: immutableClone(member.capacityHints),\n\t\t\tlimits: immutableClone(member.limits),\n\t\t\tpolicyRefs: immutableClone(member.policyRefs),\n\t\t\tsourceRefs: immutableClone(member.sourceRefs),\n\t\t\tmetadata: immutableClone(member.metadata),\n\t\t}),\n\t);\n\treturn Object.freeze({\n\t\tplanId: proposal.planId,\n\t\tworkItemId: proposal.workItemId,\n\t\texecutionInputRevision: proposal.executionInputRevision,\n\t\tmembers: Object.freeze(members),\n\t\tjoinPolicy,\n\t\tlimits: immutableClone(proposal.limits),\n\t\tpolicyRefs: immutableClone(proposal.policyRefs),\n\t\tsourceRefs: immutableClone(proposal.sourceRefs),\n\t\tmetadata: immutableClone(proposal.metadata),\n\t});\n}\n\nfunction requestFromPlanMember<T>(\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tmember: WorkItemEffectPlanMember<T>,\n\tpolicy?: WorkItemEffectPlanPolicy,\n): WorkItemEffectRequested<T> {\n\tconst requestId = `work-item:${admitted.workItemId}:effect-plan:${admitted.executionInputRevision}:${admitted.planId}:${member.memberId}`;\n\tconst policyRefs =\n\t\tpolicy?.policyId === undefined\n\t\t\t? [...(admitted.plan.policyRefs ?? []), ...(member.policyRefs ?? [])]\n\t\t\t: [\n\t\t\t\t\t...(admitted.plan.policyRefs ?? []),\n\t\t\t\t\t...(member.policyRefs ?? []),\n\t\t\t\t\tref(\"work-item-effect-plan-policy\", policy.policyId),\n\t\t\t\t];\n\treturn {\n\t\tkind: \"work-item-effect-requested\",\n\t\trequestId,\n\t\tworkItemId: admitted.workItemId,\n\t\teffectRunId: `effect-run:${requestId}`,\n\t\teffectKind: member.effectKind,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tplanId: admitted.planId,\n\t\tplanMemberId: member.memberId,\n\t\tsourceRefs: [\n\t\t\tref(\"work-item\", admitted.workItemId),\n\t\t\tref(\"work-item-revision\", `${admitted.workItemId}:${admitted.executionInputRevision}`),\n\t\t\tref(\"work-item-effect-plan\", admitted.planId),\n\t\t\tref(\"work-item-effect-plan-member\", member.memberId),\n\t\t\t...(admitted.plan.sourceRefs ?? []),\n\t\t\t...(member.sourceRefs ?? []),\n\t\t],\n\t\tgoal: member.goal,\n\t\tpolicyRefs: policyRefs.length === 0 ? undefined : policyRefs,\n\t\tlimits: member.limits ?? admitted.plan.limits,\n\t\tidempotencyKey:\n\t\t\tmember.idempotencyKey ??\n\t\t\t`${admitted.workItemId}:effect-plan:${admitted.executionInputRevision}:${admitted.planId}:${member.memberId}`,\n\t\tmetadata: {\n\t\t\t...(member.metadata ?? {}),\n\t\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\t\tplanId: admitted.planId,\n\t\t\tplanMemberId: member.memberId,\n\t\t\t...(member.contextRefs === undefined ? {} : { contextRefs: member.contextRefs }),\n\t\t\t...(member.requirements === undefined ? {} : { requirements: member.requirements }),\n\t\t\t...(member.capacityHints === undefined ? {} : { capacityHints: member.capacityHints }),\n\t\t},\n\t};\n}\n\nfunction immutableClone<T>(value: T): T {\n\tif (Array.isArray(value)) return Object.freeze(value.map((item) => immutableClone(item))) as T;\n\tif (!isRecord(value)) return value;\n\tconst out: Record<string, unknown> = {};\n\tfor (const [key, child] of Object.entries(value)) out[key] = immutableClone(child);\n\treturn Object.freeze(out) as T;\n}\n\nfunction stringMetadata(\n\tmetadata: Record<string, unknown> | undefined,\n\tkey: string,\n): string | undefined {\n\tconst value = metadata?.[key];\n\treturn typeof value === \"string\" && value !== \"\" ? value : undefined;\n}\n\nfunction numberMetadata(\n\tmetadata: Record<string, unknown> | undefined,\n\tkey: string,\n): number | undefined {\n\tconst value = metadata?.[key];\n\treturn typeof value === \"number\" ? value : undefined;\n}\n\nfunction sourceRefId(refs: readonly SourceRef[] | undefined, kind: string): string | undefined {\n\treturn refs?.find((sourceRef) => sourceRef.kind === kind)?.id;\n}\n\nfunction memberSucceeded<T>(\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tmemberId: string,\n): boolean {\n\treturn state.memberEvidence.get(memberCoord(admitted, memberId))?.status === \"completed\";\n}\n\nfunction memberBlockedByFailure<T>(\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tmemberId: string,\n\tseen: Set<string>,\n): boolean {\n\tif (seen.has(memberId)) return false;\n\tseen.add(memberId);\n\tconst evidence = state.memberEvidence.get(memberCoord(admitted, memberId));\n\tif (evidence !== undefined) return evidence.status !== \"completed\";\n\tconst member = admitted.plan.members.find((item) => item.memberId === memberId);\n\treturn (member?.dependsOnMemberIds ?? []).some((depId) =>\n\t\tmemberBlockedByFailure(state, admitted, depId, seen),\n\t);\n}\n\nfunction memberCoord<T>(admitted: WorkItemEffectPlanAdmitted<T>, memberId: string): string {\n\treturn `${admitted.workItemId}:${admitted.executionInputRevision}:${admitted.planId}:${memberId}`;\n}\n\nfunction planKey(\n\tworkItemId: string | undefined,\n\tplanId: string | undefined,\n\texecutionInputRevision: number | undefined,\n): string | undefined {\n\tif (workItemId === undefined || planId === undefined || executionInputRevision === undefined)\n\t\treturn undefined;\n\treturn `${workItemId}:${executionInputRevision}:${planId}`;\n}\n\nfunction requiredPlanKey(\n\tworkItemId: string,\n\tplanId: string,\n\texecutionInputRevision: number,\n): string {\n\treturn `${workItemId}:${executionInputRevision}:${planId}`;\n}\n\nfunction emitPlanIssues<T>(ctx: Ctx, state: PlanState<T>, issues: readonly DataIssue[]): void {\n\tfor (const item of issues) emitPlan(ctx, \"issue\", item);\n\tif (issues.length > 0) {\n\t\tstate.auditSeq += 1;\n\t\temitPlan(ctx, \"audit\", {\n\t\t\tid: `work-item-effect-plan-issue:${state.auditSeq}`,\n\t\t\tkind: \"work-item-effect-plan-issue\",\n\t\t\tsubjectId: issues[0]?.subjectId,\n\t\t\tmessage: issues[0]?.message,\n\t\t\tissueCode: issues[0]?.code,\n\t\t\tmetadata: { issueCodes: issues.map((item) => item.code) },\n\t\t});\n\t}\n}\n\nfunction emitPlanStatusOnce<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tkey: string,\n\tstatus: Omit<WorkItemEffectPlanStatus, \"kind\" | \"statusId\">,\n): void {\n\tif (state.statusKeys.has(key)) return;\n\tstate.statusKeys.add(key);\n\temitPlanStatus(ctx, state, status);\n}\n\nfunction emitPlanStatus<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tstatus: Omit<WorkItemEffectPlanStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact = {\n\t\tkind: \"work-item-effect-plan-status\",\n\t\tstatusId: `work-item-effect-plan-status:${state.statusSeq}`,\n\t\t...status,\n\t} satisfies WorkItemEffectPlanStatus;\n\temitPlan(ctx, \"status\", statusFact);\n\tstate.auditSeq += 1;\n\temitPlan(ctx, \"audit\", {\n\t\tid: `work-item-effect-plan-status:${state.auditSeq}`,\n\t\tkind: \"work-item-effect-plan-status\",\n\t\tsubjectId: status.workItemId,\n\t\tmessage: status.message,\n\t\tsourceRefs: status.sourceRefs,\n\t\tmetadata: {\n\t\t\tstatusId: statusFact.statusId,\n\t\t\tstate: status.state,\n\t\t\tplanId: status.planId,\n\t\t\tplanMemberId: status.planMemberId,\n\t\t\texecutionInputRevision: status.executionInputRevision,\n\t\t\t...(status.metadata ?? {}),\n\t\t},\n\t});\n}\n\nfunction emitPlan<T, K extends PlanFact<T>[\"kind\"]>(\n\tctx: Ctx,\n\tkind: K,\n\tvalue: Extract<PlanFact<T>, { kind: K }>[\"value\"],\n): void {\n\tctx.down([[\"DATA\", { kind, value } as PlanFact<T>]]);\n}\n\nfunction isWorkItemEffectPlanJoinPolicy(value: unknown): value is WorkItemEffectPlanJoinPolicy {\n\treturn value === \"all-required\" || value === \"evidence-only\";\n}\n\nfunction findPlanCycle<T>(\n\tmembers: readonly WorkItemEffectPlanMember<T>[],\n): readonly string[] | undefined {\n\tconst byId = new Map(members.map((member) => [member.memberId, member.dependsOnMemberIds ?? []]));\n\tconst visiting = new Set<string>();\n\tconst visited = new Set<string>();\n\tconst stack: string[] = [];\n\tconst visit = (id: string): readonly string[] | undefined => {\n\t\tif (visiting.has(id)) return [...stack.slice(stack.indexOf(id)), id];\n\t\tif (visited.has(id)) return undefined;\n\t\tvisiting.add(id);\n\t\tstack.push(id);\n\t\tfor (const dep of byId.get(id) ?? []) {\n\t\t\tif (!byId.has(dep)) continue;\n\t\t\tconst cycle = visit(dep);\n\t\t\tif (cycle !== undefined) return cycle;\n\t\t}\n\t\tstack.pop();\n\t\tvisiting.delete(id);\n\t\tvisited.add(id);\n\t\treturn undefined;\n\t};\n\tfor (const member of members) {\n\t\tconst cycle = visit(member.memberId);\n\t\tif (cycle !== undefined) return cycle;\n\t}\n\treturn undefined;\n}\n\nfunction reduceAuthoring<T>(\n\tctx: Ctx,\n\tstate: AuthoringState<T>,\n\tinput: WorkItemAuthoringInput<T>,\n\tpolicy?: WorkItemAuthoringPolicy,\n): void {\n\tif (input.kind === \"work-item-spawn-proposed\") {\n\t\tconst issues = validateWorkItemDraft(input.draft, { workItemId: input.parentWorkItemId });\n\t\tif (issues.length > 0) {\n\t\t\tfor (const item of issues) emit(ctx, \"issue\", item);\n\t\t\temitStatus(ctx, state, {\n\t\t\t\tstate: \"rejected\",\n\t\t\t\tcode: issues[0]?.code as WorkItemValidationIssueCode | undefined,\n\t\t\t\tworkItemId: input.parentWorkItemId,\n\t\t\t\tmessage: issues[0]?.message,\n\t\t\t\tmetadata: { proposalId: input.proposalId },\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\temitStatus(ctx, state, {\n\t\t\tstate: \"deferred\",\n\t\t\tworkItemId: input.parentWorkItemId,\n\t\t\tmessage: `WorkItem spawn proposal '${input.proposalId}' carries draft data but is not applied`,\n\t\t\tmetadata: { proposalId: input.proposalId },\n\t\t});\n\t\treturn;\n\t}\n\tif (state.seenEvents.has(input.eventId)) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\"duplicate-id\", `Duplicate WorkItem authoring id '${input.eventId}'`, input.workItemId),\n\t\t);\n\t\treturn;\n\t}\n\tstate.seenEvents.add(input.eventId);\n\tif (input.kind === \"work-item-created\") {\n\t\tif (state.workItems.has(input.workItemId)) {\n\t\t\temit(\n\t\t\t\tctx,\n\t\t\t\t\"issue\",\n\t\t\t\tissue(\"duplicate-id\", `Duplicate WorkItem '${input.workItemId}'`, input.workItemId),\n\t\t\t);\n\t\t\temitStatus(ctx, state, {\n\t\t\t\tstate: \"duplicate\",\n\t\t\t\tcode: \"duplicate-id\",\n\t\t\t\tworkItemId: input.workItemId,\n\t\t\t\tmetadata: { eventId: input.eventId },\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst issues = validateWorkItemDraft(input.draft, { workItemId: input.workItemId });\n\t\tif (issues.length > 0) {\n\t\t\treject(ctx, state, input.workItemId, issues);\n\t\t\treturn;\n\t\t}\n\t\tconst projection: WorkItemProjection<T> = {\n\t\t\t...input.draft,\n\t\t\tverificationPlan: normalizePlan(input.draft),\n\t\t\tworkItemId: input.workItemId,\n\t\t\tauthoringRevision: 1,\n\t\t\texecutionInputRevision: 1,\n\t\t\tlastEventId: input.eventId,\n\t\t\trevisionSourceRefs: refs(\"work-item-authoring-fact\", input.eventId, input.sourceRefs),\n\t\t\tcreatedAtMs: input.createdAtMs,\n\t\t\tupdatedAtMs: input.createdAtMs,\n\t\t};\n\t\taccept(ctx, state, projection);\n\t\treturn;\n\t}\n\tconst existing = state.workItems.get(input.workItemId);\n\tif (existing === undefined) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`Authoring fact '${input.eventId}' references unknown WorkItem '${input.workItemId}'`,\n\t\t\t\tinput.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tif (input.kind === \"work-item-patched\") {\n\t\tif (!isRecord(input.patch)) {\n\t\t\treject(ctx, state, input.workItemId, [\n\t\t\t\tissue(\"invalid-patch\", \"WorkItemPatch must be an object\", input.workItemId),\n\t\t\t]);\n\t\t\treturn;\n\t\t}\n\t\tconst invalidKeys = Object.keys(input.patch).filter((key) => !draftPatchKeys.has(key));\n\t\tif (invalidKeys.length > 0) {\n\t\t\treject(ctx, state, input.workItemId, [\n\t\t\t\tissue(\n\t\t\t\t\t\"invalid-patch\",\n\t\t\t\t\t`WorkItemPatch contains unsupported keys: ${invalidKeys.join(\", \")}`,\n\t\t\t\t\tinput.workItemId,\n\t\t\t\t\t{\n\t\t\t\t\t\tinvalidKeys,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t]);\n\t\t\treturn;\n\t\t}\n\t\tconst draft = applyDraftPatch(existing, input.patch);\n\t\tconst issues = validateWorkItemDraft(draft, { workItemId: input.workItemId });\n\t\tif (issues.length > 0) {\n\t\t\treject(ctx, state, input.workItemId, issues);\n\t\t\treturn;\n\t\t}\n\t\tconst touched = touchesExecutionRelevant(\n\t\t\tinput.patch,\n\t\t\texecutionRelevant(policy, input.executionRelevantFields),\n\t\t);\n\t\taccept(ctx, state, {\n\t\t\t...existing,\n\t\t\t...draft,\n\t\t\tauthoringRevision: existing.authoringRevision + 1,\n\t\t\texecutionInputRevision: touched\n\t\t\t\t? existing.executionInputRevision + 1\n\t\t\t\t: existing.executionInputRevision,\n\t\t\tlastEventId: input.eventId,\n\t\t\trevisionSourceRefs: refs(\"work-item-authoring-fact\", input.eventId, input.sourceRefs),\n\t\t\tupdatedAtMs: input.patchedAtMs,\n\t\t});\n\t\treturn;\n\t}\n\tif (input.kind === \"acceptance-criteria-changed\") {\n\t\tconst issues = validateAcceptanceCriteria(input.acceptanceCriteria, {\n\t\t\tworkItemId: input.workItemId,\n\t\t});\n\t\tif (issues.length > 0) {\n\t\t\treject(ctx, state, input.workItemId, issues);\n\t\t\treturn;\n\t\t}\n\t\taccept(ctx, state, {\n\t\t\t...existing,\n\t\t\tacceptanceCriteria: input.acceptanceCriteria,\n\t\t\tauthoringRevision: existing.authoringRevision + 1,\n\t\t\texecutionInputRevision: existing.executionInputRevision + 1,\n\t\t\tlastEventId: input.eventId,\n\t\t\trevisionSourceRefs: refs(\"work-item-authoring-fact\", input.eventId, input.sourceRefs),\n\t\t\tupdatedAtMs: input.changedAtMs,\n\t\t});\n\t\treturn;\n\t}\n\tconst issues = validateVerificationPlan(\n\t\tinput.verificationPlan,\n\t\texisting.acceptanceCriteria ?? [],\n\t\t{ workItemId: input.workItemId },\n\t);\n\tif (issues.length > 0) {\n\t\treject(ctx, state, input.workItemId, issues);\n\t\treturn;\n\t}\n\taccept(ctx, state, {\n\t\t...existing,\n\t\tverificationPlan: input.verificationPlan,\n\t\tverificationSteps: input.verificationPlan.steps,\n\t\tauthoringRevision: existing.authoringRevision + 1,\n\t\texecutionInputRevision: existing.executionInputRevision + 1,\n\t\tlastEventId: input.eventId,\n\t\trevisionSourceRefs: refs(\"work-item-authoring-fact\", input.eventId, input.sourceRefs),\n\t\tupdatedAtMs: input.changedAtMs,\n\t});\n}\n\nfunction lowerPlan<T>(\n\tctx: Ctx,\n\tstate: RequestState<T>,\n\tworkItem: WorkItemProjection<T>,\n\tpolicy?: WorkItemVerificationLowererPolicy,\n): void {\n\tconst plan = normalizePlan(workItem);\n\tif (plan === undefined) {\n\t\temitRequestStatus(ctx, state, {\n\t\t\tstate: \"needs-human-review\",\n\t\t\tcode: \"verification-unplanned\",\n\t\t\tworkItemId: workItem.workItemId,\n\t\t});\n\t\treturn;\n\t}\n\tconst issues = validateVerificationPlan(plan, workItem.acceptanceCriteria ?? [], {\n\t\tworkItemId: workItem.workItemId,\n\t\tallowedModes: policy?.allowedModes,\n\t\tallowedEffectKinds: policy?.allowedEffectKinds,\n\t});\n\tif (issues.length > 0) {\n\t\tfor (const item of issues) emit(ctx, \"issue\", item);\n\t\treturn;\n\t}\n\tif (policy?.autoRun === false) {\n\t\temitRequestStatus(ctx, state, {\n\t\t\tstate: \"deferred\",\n\t\t\tcode: \"policy-mismatch\",\n\t\t\tworkItemId: workItem.workItemId,\n\t\t\trevision: workItem.authoringRevision,\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tmetadata: { policyId: policy.policyId, reason: \"auto-run-disabled\" },\n\t\t});\n\t\treturn;\n\t}\n\tfor (const step of plan.steps) {\n\t\tif (isStepSatisfied(state, workItem, step.stepId)) {\n\t\t\temitRequestStatus(ctx, state, {\n\t\t\t\tstate: \"duplicate\",\n\t\t\t\tcode: \"duplicate-suppressed\",\n\t\t\t\tworkItemId: workItem.workItemId,\n\t\t\t\trevision: workItem.authoringRevision,\n\t\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\t\tstepId: step.stepId,\n\t\t\t\tmessage: `Verification step '${step.stepId}' already has valid evidence`,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (step.mode === \"manual\") {\n\t\t\temitRequestStatus(ctx, state, {\n\t\t\t\tstate: \"needs-human-review\",\n\t\t\t\tcode: \"manual-review-required\",\n\t\t\t\tworkItemId: workItem.workItemId,\n\t\t\t\tstepId: step.stepId,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst missingPrerequisites = (step.dependsOnStepIds ?? []).filter(\n\t\t\t(stepId) => !isStepSatisfied(state, workItem, stepId),\n\t\t);\n\t\tif (missingPrerequisites.length > 0) {\n\t\t\temitRequestStatus(ctx, state, {\n\t\t\t\tstate: \"blocked\",\n\t\t\t\tcode: \"blocked-prerequisite\",\n\t\t\t\tworkItemId: workItem.workItemId,\n\t\t\t\tstepId: step.stepId,\n\t\t\t\tmetadata: { missingStepIds: missingPrerequisites },\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\temitRequest(ctx, state, requestFromStep(workItem, plan, step, policy));\n\t}\n}\n\nfunction lowerIntent<T>(\n\tctx: Ctx,\n\tstate: RequestState<T>,\n\tintent: WorkItemDispatchIntent<T>,\n\tpolicy?: WorkItemVerificationLowererPolicy,\n): void {\n\tconst workItem = state.workItems.get(intent.workItemId);\n\tif (workItem === undefined) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`Dispatch intent '${intent.intentId}' references unknown WorkItem '${intent.workItemId}'`,\n\t\t\t\tintent.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tif (intent.executionInputRevision !== workItem.executionInputRevision) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"stale-execution-input\",\n\t\t\t\t`Dispatch intent '${intent.intentId}' targets stale execution input`,\n\t\t\t\tintent.workItemId,\n\t\t\t\t{\n\t\t\t\t\tintentRevision: intent.executionInputRevision,\n\t\t\t\t\tcurrentRevision: workItem.executionInputRevision,\n\t\t\t\t\tstalePolicy: policy?.stalePolicy ?? \"review\",\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t\temitRequestStatus(ctx, state, {\n\t\t\tstate: \"stale\",\n\t\t\tcode: \"stale-execution-input\",\n\t\t\tworkItemId: intent.workItemId,\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tmetadata: { intentId: intent.intentId },\n\t\t});\n\t\treturn;\n\t}\n\tconst effectKind = intent.effectKind ?? intent.targetKind;\n\tconst allowedEffectKinds = new Set(policy?.allowedEffectKinds ?? [\"verification\"]);\n\tif (!allowedEffectKinds.has(effectKind)) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"unsupported-effect-kind\",\n\t\t\t\t`Dispatch intent '${intent.intentId}' targets unsupported effect kind '${effectKind}'`,\n\t\t\t\tintent.workItemId,\n\t\t\t\t{ intentId: intent.intentId, effectKind },\n\t\t\t),\n\t\t);\n\t\temitRequestStatus(ctx, state, {\n\t\t\tstate: \"rejected\",\n\t\t\tcode: \"unsupported-effect-kind\",\n\t\t\tworkItemId: intent.workItemId,\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tmetadata: { intentId: intent.intentId, effectKind },\n\t\t});\n\t\treturn;\n\t}\n\temitRequest(ctx, state, requestFromIntent(workItem, intent));\n}\n\nfunction recordVerificationResult<T>(\n\tctx: Ctx,\n\tstate: RequestState<T>,\n\tresult: VerificationResultRecorded,\n\tpolicy?: WorkItemVerificationLowererPolicy,\n): void {\n\tif (result.status !== \"passed\") return;\n\tconst workItem = state.workItems.get(result.workItemId);\n\tif (workItem === undefined) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`Verification result '${result.resultId}' references unknown WorkItem '${result.workItemId}'`,\n\t\t\t\tresult.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tif (result.executionInputRevision !== workItem.executionInputRevision) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"stale-revision\",\n\t\t\t\t`Verification result '${result.resultId}' targets stale execution input`,\n\t\t\t\tresult.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconst key = revisionKey(result.workItemId, result.executionInputRevision);\n\tconst passedSteps = state.passedSteps.get(key) ?? new Set<string>();\n\tfor (const stepId of result.verificationStepIds) passedSteps.add(stepId);\n\tstate.passedSteps.set(key, passedSteps);\n\tlowerPlan(ctx, state, workItem, policy);\n}\n\nfunction mapEvidence<T>(\n\tctx: Ctx,\n\tstate: ResultState<T>,\n\tevidence: WorkItemEvidenceRecorded,\n\treplay = false,\n): void {\n\tif (!replay && state.evidenceById.has(evidence.evidenceId)) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"duplicate-suppressed\",\n\t\t\t\t`Duplicate evidence '${evidence.evidenceId}'`,\n\t\t\t\tevidence.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tstate.evidenceById.set(evidence.evidenceId, evidence);\n\tconst workItem = state.workItems.get(evidence.workItemId);\n\tif (workItem === undefined) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`Evidence '${evidence.evidenceId}' references unknown WorkItem '${evidence.workItemId}'`,\n\t\t\t\tevidence.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconst revision =\n\t\ttypeof evidence.metadata?.executionInputRevision === \"number\"\n\t\t\t? evidence.metadata.executionInputRevision\n\t\t\t: undefined;\n\tif (revision !== workItem.executionInputRevision) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"stale-revision\",\n\t\t\t\t`Evidence '${evidence.evidenceId}' targets stale revision`,\n\t\t\t\tevidence.workItemId,\n\t\t\t),\n\t\t);\n\t\temitResultStatus(ctx, state, {\n\t\t\tstate: \"stale\",\n\t\t\tcode: \"stale-revision\",\n\t\t\tworkItemId: evidence.workItemId,\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t});\n\t\treturn;\n\t}\n\tconst stepIds = stringArray(evidence.metadata?.verificationStepIds);\n\tconst criterionIds = stringArray(evidence.metadata?.acceptanceCriterionIds);\n\tif (stepIds.length === 0 || criterionIds.length === 0) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"ambiguous-coverage\",\n\t\t\t\t`Evidence '${evidence.evidenceId}' lacks coverage refs`,\n\t\t\t\tevidence.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconst coverageIssue = validateEvidenceCoverage(workItem, stepIds, criterionIds);\n\tif (coverageIssue !== undefined) {\n\t\temit(ctx, \"issue\", {\n\t\t\t...coverageIssue,\n\t\t\tmessage: `Evidence '${evidence.evidenceId}' has invalid verification coverage: ${coverageIssue.message}`,\n\t\t});\n\t\temitResultStatus(ctx, state, {\n\t\t\tstate: \"rejected\",\n\t\t\tcode: coverageIssue.code as WorkItemValidationIssueCode,\n\t\t\tworkItemId: evidence.workItemId,\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tmetadata: { evidenceId: evidence.evidenceId },\n\t\t});\n\t\treturn;\n\t}\n\tconst result: VerificationResultRecorded = {\n\t\tkind: \"verification-result-recorded\",\n\t\tresultId: `verification-result:${evidence.evidenceId}`,\n\t\tworkItemId: evidence.workItemId,\n\t\tevidenceId: evidence.evidenceId,\n\t\teffectRunId: evidence.effectRunId,\n\t\teffectRunResultId: evidence.effectRunResultId,\n\t\texecutionInputRevision: revision,\n\t\tverificationStepIds: stepIds,\n\t\tacceptanceCriterionIds: criterionIds,\n\t\tstatus: resultStatus(evidence.status),\n\t\toutput: evidence.output,\n\t\terror: evidence.error,\n\t\treason: evidence.reason,\n\t\tsourceRefs: evidence.sourceRefs,\n\t\trecordedAtMs: evidence.recordedAtMs,\n\t\tmetadata: evidence.metadata,\n\t};\n\tif (!state.resultEvidence.has(evidence.evidenceId)) {\n\t\tstate.resultEvidence.add(evidence.evidenceId);\n\t\temit(ctx, \"result\", result);\n\t\temitResultStatus(ctx, state, {\n\t\t\tstate: \"result-recorded\",\n\t\t\tworkItemId: evidence.workItemId,\n\t\t\texecutionInputRevision: revision,\n\t\t\tmetadata: { resultId: result.resultId },\n\t\t});\n\t}\n\tconst policyIds = [\n\t\t...new Set(\n\t\t\t(evidence.sourceRefs ?? [])\n\t\t\t\t.filter((sourceRef) => sourceRef.kind === \"work-item-verification-mapping-policy\")\n\t\t\t\t.map((sourceRef) => sourceRef.id),\n\t\t),\n\t];\n\tif (policyIds.length === 0) return;\n\tfor (const policyId of policyIds) {\n\t\tconst policy = state.policies.get(policyId);\n\t\tif (policy === undefined) {\n\t\t\tif (!replay) {\n\t\t\t\temit(\n\t\t\t\t\tctx,\n\t\t\t\t\t\"issue\",\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"missing-policy\",\n\t\t\t\t\t\t`Missing verification mapping policy '${policyId}'`,\n\t\t\t\t\t\tevidence.workItemId,\n\t\t\t\t\t\t{ policyId },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\temitResultStatus(ctx, state, {\n\t\t\t\t\tstate: \"deferred\",\n\t\t\t\t\tcode: \"missing-policy\",\n\t\t\t\t\tworkItemId: evidence.workItemId,\n\t\t\t\t\texecutionInputRevision: revision,\n\t\t\t\t\tmetadata: { evidenceId: evidence.evidenceId, policyId },\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const [index, spec] of (policy.actionProposals ?? []).entries()) {\n\t\t\tif (spec.behavior !== undefined && spec.behavior !== \"propose\") {\n\t\t\t\temit(ctx, \"issue\", actionProposalIssue(policy, spec, evidence, \"unsupported behavior\"));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (spec.actionKind.length === 0) {\n\t\t\t\temit(ctx, \"issue\", actionProposalIssue(policy, spec, evidence, \"empty actionKind\"));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (spec.statuses !== undefined && !spec.statuses.includes(evidence.status)) continue;\n\t\t\tconst outputKind = evidence.output?.kind;\n\t\t\tif (\n\t\t\t\tspec.outputKinds !== undefined &&\n\t\t\t\t(outputKind === undefined || !spec.outputKinds.includes(outputKind))\n\t\t\t)\n\t\t\t\tcontinue;\n\t\t\tconst proposalKey = `${evidence.evidenceId}:${policy.policyId}:${index}:${spec.actionKind}`;\n\t\t\tif (state.proposalKeys.has(proposalKey)) continue;\n\t\t\tstate.proposalKeys.add(proposalKey);\n\t\t\temit(ctx, \"proposal\", {\n\t\t\t\tkind: \"work-item-domain-action-proposal\",\n\t\t\t\tproposalId: `verification:${result.resultId}:${policy.policyId}:${index}:${spec.actionKind}`,\n\t\t\t\tworkItemId: result.workItemId,\n\t\t\t\tactionKind: spec.actionKind,\n\t\t\t\teffectRunId: result.effectRunId,\n\t\t\t\teffectRunResultId: result.effectRunResultId,\n\t\t\t\tevidenceId: result.evidenceId,\n\t\t\t\tpolicyId: policy.policyId,\n\t\t\t\tpayload: actionProposalPayload(spec, evidence, result),\n\t\t\t\treason: spec.reason ?? evidence.reason,\n\t\t\t\tsourceRefs: [\n\t\t\t\t\tref(\"work-item-evidence\", evidence.evidenceId),\n\t\t\t\t\tref(\"verification-result\", result.resultId),\n\t\t\t\t\tref(\"effect-run-result\", result.effectRunResultId),\n\t\t\t\t\tref(\"work-item-verification-mapping-policy\", policy.policyId),\n\t\t\t\t],\n\t\t\t\tmetadata: {\n\t\t\t\t\t...(policy.metadata ?? {}),\n\t\t\t\t\t...(spec.metadata ?? {}),\n\t\t\t\t\tresultStatus: evidence.status,\n\t\t\t\t},\n\t\t\t});\n\t\t\temitResultStatus(ctx, state, {\n\t\t\t\tstate: \"domain-action-proposed\",\n\t\t\t\tworkItemId: evidence.workItemId,\n\t\t\t\texecutionInputRevision: revision,\n\t\t\t\tmetadata: { actionKind: spec.actionKind, policyId: policy.policyId },\n\t\t\t});\n\t\t}\n\t}\n}\n\nfunction requestFromStep<T>(\n\tworkItem: WorkItemProjection<T>,\n\tplan: VerificationPlan<T>,\n\tstep: VerificationStep<T>,\n\tpolicy?: WorkItemVerificationLowererPolicy,\n): WorkItemEffectRequested<T> {\n\tconst requestId = `work-item:${workItem.workItemId}:verification:${workItem.executionInputRevision}:${plan.planId}:${step.stepId}`;\n\tconst effectKind = step.effectKind ?? \"verification\";\n\tconst criterionIds =\n\t\tstep.verifiesCriteriaIds ??\n\t\t(workItem.acceptanceCriteria ?? []).map((criterion) => criterion.criterionId);\n\tconst goal = goalWithInlineInput(\n\t\tstep.goal ?? { kind: effectKind, summary: step.title ?? workItem.summary },\n\t\tstep.input,\n\t\t`verification-step:${step.stepId}:input`,\n\t\teffectKind,\n\t\tstep.contextRefs,\n\t);\n\treturn {\n\t\tkind: \"work-item-effect-requested\",\n\t\trequestId,\n\t\tworkItemId: workItem.workItemId,\n\t\teffectRunId: `effect-run:${requestId}`,\n\t\teffectKind,\n\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\tsourceRefs: [\n\t\t\tref(\"work-item\", workItem.workItemId),\n\t\t\tref(\"work-item-revision\", `${workItem.workItemId}:${workItem.executionInputRevision}`),\n\t\t\tref(\"verification-plan\", plan.planId),\n\t\t\tref(\"verification-step\", step.stepId),\n\t\t\t...(plan.sourceRefs ?? []),\n\t\t\t...(step.sourceRefs ?? []),\n\t\t],\n\t\tgoal,\n\t\tpolicyRefs:\n\t\t\tpolicy?.policyId === undefined\n\t\t\t\t? step.policyRefs\n\t\t\t\t: [\n\t\t\t\t\t\t...(step.policyRefs ?? []),\n\t\t\t\t\t\tref(\"work-item-verification-lowerer-policy\", policy.policyId),\n\t\t\t\t\t],\n\t\tidempotencyKey: `${workItem.workItemId}:verification:${workItem.executionInputRevision}:${plan.planId}:${step.stepId}`,\n\t\tmetadata: {\n\t\t\t...(step.metadata ?? {}),\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tverificationPlanId: plan.planId,\n\t\t\tverificationStepIds: [step.stepId],\n\t\t\tacceptanceCriterionIds: criterionIds,\n\t\t\t...(step.contextRefs === undefined ? {} : { contextRefs: step.contextRefs }),\n\t\t\t...(step.requirements === undefined ? {} : { requirements: step.requirements }),\n\t\t\t...(step.capacityHints === undefined ? {} : { capacityHints: step.capacityHints }),\n\t\t},\n\t};\n}\n\nfunction requestFromIntent<T>(\n\tworkItem: WorkItemProjection<T>,\n\tintent: WorkItemDispatchIntent<T>,\n): WorkItemEffectRequested<T> {\n\tconst requestId = `work-item:${workItem.workItemId}:dispatch:${workItem.executionInputRevision}:${intent.intentId}`;\n\tconst effectKind = intent.effectKind ?? intent.targetKind;\n\treturn {\n\t\tkind: \"work-item-effect-requested\",\n\t\trequestId,\n\t\tworkItemId: workItem.workItemId,\n\t\teffectRunId: `effect-run:${requestId}`,\n\t\teffectKind,\n\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\tsourceRefs: [\n\t\t\tref(\"work-item\", workItem.workItemId),\n\t\t\tref(\"work-item-dispatch-intent\", intent.intentId),\n\t\t\t...(intent.sourceRefs ?? []),\n\t\t],\n\t\tgoal: intent.goal ?? { kind: effectKind, summary: intent.reason ?? workItem.summary },\n\t\tpolicyRefs: intent.policyRefs,\n\t\tlimits: intent.limits,\n\t\tidempotencyKey:\n\t\t\tintent.idempotencyKey ??\n\t\t\t`${workItem.workItemId}:dispatch:${workItem.executionInputRevision}:${intent.intentId}`,\n\t\tmetadata: {\n\t\t\t...(intent.metadata ?? {}),\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tverificationStepIds: intent.stepIds ?? [],\n\t\t\tacceptanceCriterionIds: intent.acceptanceCriterionIds ?? [],\n\t\t\t...(intent.contextRefs === undefined ? {} : { contextRefs: intent.contextRefs }),\n\t\t\t...(intent.requirements === undefined ? {} : { requirements: intent.requirements }),\n\t\t\t...(intent.capacityHints === undefined ? {} : { capacityHints: intent.capacityHints }),\n\t\t},\n\t};\n}\n\nfunction accept<T>(ctx: Ctx, state: AuthoringState<T>, projection: WorkItemProjection<T>): void {\n\tstate.workItems.set(projection.workItemId, projection);\n\temit(ctx, \"work-item\", projection);\n\temitStatus(ctx, state, {\n\t\tstate: \"projected\",\n\t\tworkItemId: projection.workItemId,\n\t\trevision: projection.authoringRevision,\n\t\texecutionInputRevision: projection.executionInputRevision,\n\t\tmetadata: { lastEventId: projection.lastEventId },\n\t});\n}\n\nfunction reject<T>(\n\tctx: Ctx,\n\tstate: AuthoringState<T>,\n\tworkItemId: string,\n\tissues: readonly DataIssue[],\n): void {\n\tfor (const item of issues) emit(ctx, \"issue\", item);\n\temitStatus(ctx, state, {\n\t\tstate: \"rejected\",\n\t\tcode: issues[0]?.code as WorkItemValidationIssueCode | undefined,\n\t\tworkItemId,\n\t\tmessage: issues[0]?.message,\n\t});\n}\n\nfunction emitRequest<T>(\n\tctx: Ctx,\n\tstate: RequestState<T>,\n\trequest: WorkItemEffectRequested<T>,\n): void {\n\tconst key = request.idempotencyKey ?? request.requestId;\n\tif (state.emittedKeys.has(key)) {\n\t\temitRequestStatus(ctx, state, {\n\t\t\tstate: \"duplicate\",\n\t\t\tcode: \"duplicate-suppressed\",\n\t\t\tworkItemId: request.workItemId,\n\t\t\tmetadata: { requestId: request.requestId },\n\t\t});\n\t\treturn;\n\t}\n\tstate.emittedKeys.add(key);\n\temit(ctx, \"request\", request);\n\temitRequestStatus(ctx, state, {\n\t\tstate: \"request-emitted\",\n\t\tworkItemId: request.workItemId,\n\t\texecutionInputRevision:\n\t\t\trequest.executionInputRevision ??\n\t\t\t(request.metadata?.executionInputRevision as number | undefined),\n\t\tmetadata: { requestId: request.requestId },\n\t});\n}\n\nfunction emitStatus<T>(\n\tctx: Ctx,\n\tstate: AuthoringState<T>,\n\tstatus: Omit<WorkItemValidationStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact = {\n\t\tkind: \"work-item-validation-status\",\n\t\tstatusId: `work-item-authoring-status:${state.statusSeq}`,\n\t\t...status,\n\t} satisfies WorkItemValidationStatus;\n\temit(ctx, \"status\", statusFact);\n\temitAudit(ctx, state, \"work-item-authoring-status\", statusFact);\n}\n\nfunction emitRequestStatus<T>(\n\tctx: Ctx,\n\tstate: RequestState<T>,\n\tstatus: Omit<WorkItemValidationStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact = {\n\t\tkind: \"work-item-validation-status\",\n\t\tstatusId: `work-item-verification-request-status:${state.statusSeq}`,\n\t\t...status,\n\t} satisfies WorkItemValidationStatus;\n\temit(ctx, \"status\", statusFact);\n\temitAudit(ctx, state, \"work-item-verification-request-status\", statusFact);\n}\n\nfunction emitResultStatus<T>(\n\tctx: Ctx,\n\tstate: ResultState<T>,\n\tstatus: Omit<WorkItemValidationStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact = {\n\t\tkind: \"work-item-validation-status\",\n\t\tstatusId: `work-item-verification-result-status:${state.statusSeq}`,\n\t\t...status,\n\t} satisfies WorkItemValidationStatus;\n\temit(ctx, \"status\", statusFact);\n\temitAudit(ctx, state, \"work-item-verification-result-status\", statusFact);\n}\n\nfunction emitAudit(\n\tctx: Ctx,\n\tstate: { auditSeq: number },\n\tkind: string,\n\tstatus: WorkItemValidationStatus,\n): void {\n\tstate.auditSeq += 1;\n\temit(ctx, \"audit\", {\n\t\tid: `${kind}:${state.auditSeq}`,\n\t\tkind,\n\t\tsubjectId: status.workItemId,\n\t\tmessage: status.message,\n\t\tissueCode: status.code,\n\t\tsourceRefs: status.sourceRefs,\n\t\tmetadata: {\n\t\t\tstatusId: status.statusId,\n\t\t\tstate: status.state,\n\t\t\trevision: status.revision,\n\t\t\texecutionInputRevision: status.executionInputRevision,\n\t\t\t...(status.metadata ?? {}),\n\t\t},\n\t});\n}\n\nfunction emit<T, K extends Fact<T>[\"kind\"]>(\n\tctx: Ctx,\n\tkind: K,\n\tvalue: Extract<Fact<T>, { kind: K }>[\"value\"],\n): void {\n\tctx.down([[\"DATA\", { kind, value } as Fact<T>]]);\n}\n\nfunction project<TFact, TSelected>(\n\tgraph: Graph,\n\truntime: Node<TFact>,\n\tname: string,\n\tfactory: string,\n\tselect: (fact: TFact) => TSelected | undefined,\n): Node<TSelected> {\n\treturn graph.node<TSelected>(\n\t\t[runtime],\n\t\t(ctx) => {\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst selected = select(raw as TFact);\n\t\t\t\tif (selected !== undefined) ctx.down([[\"DATA\", selected]]);\n\t\t\t}\n\t\t},\n\t\t{ name, factory, partial: true, completeWhenDepsComplete: false, errorWhenDepsError: false },\n\t);\n}\n\nfunction normalizePlan<T>(\n\tdraft: Pick<WorkItemDraft<T>, \"verificationPlan\" | \"verificationSteps\">,\n): VerificationPlan<T> | undefined {\n\tif (draft.verificationPlan !== undefined) return draft.verificationPlan;\n\tif (draft.verificationSteps !== undefined)\n\t\treturn { planId: \"default\", steps: draft.verificationSteps };\n\treturn undefined;\n}\n\nfunction normalizePlanFromUnknown<T>(\n\tdraft: Record<string, unknown>,\n): VerificationPlan<T> | undefined {\n\tconst verificationPlan = draft.verificationPlan;\n\tif (verificationPlan !== undefined) {\n\t\tif (!isRecord(verificationPlan) || !Array.isArray(verificationPlan.steps)) {\n\t\t\treturn { planId: \"malformed\", steps: [] };\n\t\t}\n\t\treturn verificationPlan as unknown as VerificationPlan<T>;\n\t}\n\tconst verificationSteps = draft.verificationSteps;\n\tif (verificationSteps !== undefined) {\n\t\tif (!Array.isArray(verificationSteps)) return { planId: \"malformed\", steps: [] };\n\t\treturn { planId: \"default\", steps: verificationSteps as readonly VerificationStep<T>[] };\n\t}\n\treturn undefined;\n}\n\nfunction isVerificationPlanShape(value: unknown): value is VerificationPlan {\n\treturn isRecord(value) && typeof value.planId === \"string\" && Array.isArray(value.steps);\n}\n\nfunction applyDraftPatch<T>(\n\texisting: WorkItemProjection<T>,\n\tpatch: WorkItemPatch<T>,\n): WorkItemDraft<T> {\n\treturn {\n\t\tsummary: patchValue(patch, existing, \"summary\"),\n\t\tdetail: patchValue(patch, existing, \"detail\"),\n\t\tdetailRefs: patchValue(patch, existing, \"detailRefs\"),\n\t\tacceptanceCriteria: patchValue(patch, existing, \"acceptanceCriteria\"),\n\t\tverificationPlan: patchValue(patch, existing, \"verificationPlan\"),\n\t\tverificationSteps: patchValue(patch, existing, \"verificationSteps\"),\n\t\tkind: patchValue(patch, existing, \"kind\"),\n\t\tpriority: patchValue(patch, existing, \"priority\"),\n\t\ttags: patchValue(patch, existing, \"tags\"),\n\t\towner: patchValue(patch, existing, \"owner\"),\n\t\tassignee: patchValue(patch, existing, \"assignee\"),\n\t\tdeadlineMs: patchValue(patch, existing, \"deadlineMs\"),\n\t\tcustomFields: patchValue(patch, existing, \"customFields\"),\n\t\tsourceRefs: patchValue(patch, existing, \"sourceRefs\"),\n\t\tmetadata: patchValue(patch, existing, \"metadata\"),\n\t};\n}\n\nfunction patchValue<T, K extends keyof WorkItemDraft<T>>(\n\tpatch: WorkItemPatch<T>,\n\texisting: WorkItemProjection<T>,\n\tkey: K,\n): WorkItemDraft<T>[K] {\n\treturn Object.hasOwn(patch, key) ? (patch[key] as WorkItemDraft<T>[K]) : existing[key];\n}\n\nfunction validateEvidenceCoverage<T>(\n\tworkItem: WorkItemProjection<T>,\n\tstepIds: readonly string[],\n\tcriterionIds: readonly string[],\n): DataIssue | undefined {\n\tconst plan = normalizePlan(workItem);\n\tconst validStepIds = new Set((plan?.steps ?? []).map((step) => step.stepId));\n\tconst validCriterionIds = new Set(\n\t\t(workItem.acceptanceCriteria ?? []).map((criterion) => criterion.criterionId),\n\t);\n\tfor (const stepId of stepIds) {\n\t\tif (!validStepIds.has(stepId)) {\n\t\t\treturn issue(\"dangling-ref\", `unknown verification step '${stepId}'`, workItem.workItemId, {\n\t\t\t\tstepId,\n\t\t\t});\n\t\t}\n\t}\n\tfor (const criterionId of criterionIds) {\n\t\tif (!validCriterionIds.has(criterionId)) {\n\t\t\treturn issue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`unknown acceptance criterion '${criterionId}'`,\n\t\t\t\tworkItem.workItemId,\n\t\t\t\t{ criterionId },\n\t\t\t);\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction executionRelevant(\n\tpolicy?: WorkItemAuthoringPolicy,\n\tfields?: readonly string[],\n): Set<string> {\n\treturn new Set([\n\t\t...executionRelevantDefaults,\n\t\t...(policy?.executionRelevantFields ?? []),\n\t\t...(fields ?? []),\n\t]);\n}\n\nfunction touchesExecutionRelevant<T>(\n\tpatch: WorkItemPatch<T>,\n\trelevantFields: Set<string>,\n): boolean {\n\tconst paths = patchPaths(patch);\n\tfor (const path of paths) {\n\t\tif (relevantFields.has(path)) return true;\n\t}\n\treturn false;\n}\n\nfunction patchPaths<T>(patch: WorkItemPatch<T>): readonly string[] {\n\tconst paths: string[] = [];\n\tfor (const [key, value] of Object.entries(patch)) {\n\t\tpaths.push(key);\n\t\tif (isRecord(value)) {\n\t\t\tfor (const childKey of Object.keys(value)) paths.push(`${key}.${childKey}`);\n\t\t}\n\t}\n\treturn paths;\n}\n\nfunction isStepSatisfied<T>(\n\tstate: RequestState<T>,\n\tworkItem: WorkItemProjection<T>,\n\tstepId: string,\n): boolean {\n\treturn (\n\t\tstate.passedSteps\n\t\t\t.get(revisionKey(workItem.workItemId, workItem.executionInputRevision))\n\t\t\t?.has(stepId) === true\n\t);\n}\n\nfunction revisionKey(workItemId: string, executionInputRevision: number): string {\n\treturn `${workItemId}:${executionInputRevision}`;\n}\n\nfunction replayEvidence<T>(ctx: Ctx, state: ResultState<T>, workItemId: string): void {\n\tfor (const evidence of state.evidenceById.values()) {\n\t\tif (evidence.workItemId === workItemId) mapEvidence(ctx, state, evidence, true);\n\t}\n}\n\nfunction validateMappingPolicy(policy: WorkItemVerificationMappingPolicy): readonly DataIssue[] {\n\tif (\n\t\t!isRecord(policy) ||\n\t\tpolicy.kind !== \"work-item-verification-mapping-policy\" ||\n\t\ttypeof policy.policyId !== \"string\" ||\n\t\tpolicy.policyId.trim() === \"\"\n\t) {\n\t\treturn [\n\t\t\tissue(\n\t\t\t\t\"policy-mismatch\",\n\t\t\t\t\"WorkItemVerificationMappingPolicy requires kind and policyId\",\n\t\t\t\tundefined,\n\t\t\t),\n\t\t];\n\t}\n\tif (policy.actionProposals !== undefined && !Array.isArray(policy.actionProposals)) {\n\t\treturn [\n\t\t\tissue(\n\t\t\t\t\"policy-mismatch\",\n\t\t\t\t\"WorkItemVerificationMappingPolicy.actionProposals must be an array\",\n\t\t\t\tundefined,\n\t\t\t\t{\n\t\t\t\t\tpolicyId: policy.policyId,\n\t\t\t\t},\n\t\t\t),\n\t\t];\n\t}\n\tconst out: DataIssue[] = [];\n\tfor (const [index, spec] of (policy.actionProposals ?? []).entries()) {\n\t\tif (!isRecord(spec) || typeof spec.actionKind !== \"string\") {\n\t\t\tout.push(\n\t\t\t\tissue(\"policy-mismatch\", \"WorkItem action proposal requires actionKind\", undefined, {\n\t\t\t\t\tpolicyId: policy.policyId,\n\t\t\t\t\tindex,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t}\n\treturn out;\n}\n\nfunction findCycle(steps: readonly VerificationStep[]): readonly string[] | undefined {\n\tconst byId = new Map(steps.map((step) => [step.stepId, step.dependsOnStepIds ?? []]));\n\tconst visiting = new Set<string>();\n\tconst visited = new Set<string>();\n\tconst stack: string[] = [];\n\tconst visit = (id: string): readonly string[] | undefined => {\n\t\tif (visiting.has(id)) return [...stack.slice(stack.indexOf(id)), id];\n\t\tif (visited.has(id)) return undefined;\n\t\tvisiting.add(id);\n\t\tstack.push(id);\n\t\tfor (const dep of byId.get(id) ?? []) {\n\t\t\tif (!byId.has(dep)) continue;\n\t\t\tconst cycle = visit(dep);\n\t\t\tif (cycle !== undefined) return cycle;\n\t\t}\n\t\tstack.pop();\n\t\tvisiting.delete(id);\n\t\tvisited.add(id);\n\t\treturn undefined;\n\t};\n\tfor (const step of steps) {\n\t\tconst cycle = visit(step.stepId);\n\t\tif (cycle !== undefined) return cycle;\n\t}\n\treturn undefined;\n}\n\nfunction resultStatus(status: EffectRunResultStatus): VerificationResultStatus {\n\tif (status === \"completed\") return \"passed\";\n\tif (status === \"failed\") return \"failed\";\n\tif (status === \"blocked\") return \"blocked\";\n\tif (status === \"canceled\") return \"canceled\";\n\tif (status === \"timeout\") return \"timeout\";\n\treturn \"waived\";\n}\n\nfunction goalWithInlineInput<T>(\n\tgoal: EffectRunGoal<T>,\n\tinput: T | undefined,\n\tinputId: string,\n\tinputKind: string,\n\tsubjectRefs: readonly SourceRef[] | undefined,\n): EffectRunGoal<T> {\n\tif (input === undefined || goal.input !== undefined) return goal;\n\treturn {\n\t\t...goal,\n\t\tinput: {\n\t\t\tinputId,\n\t\t\tinputKind,\n\t\t\tdataMode: \"inline\",\n\t\t\tvalue: input,\n\t\t\tsubjectRefs,\n\t\t},\n\t};\n}\n\nfunction actionProposalPayload(\n\tspec: WorkItemDomainActionProposalSpec,\n\tevidence: WorkItemEvidenceRecorded,\n\tresult: VerificationResultRecorded,\n): unknown {\n\tif (spec.payload !== undefined) return spec.payload;\n\tif (spec.payloadFrom === \"effect-run-result\")\n\t\treturn { kind: \"effect-run-result-ref\", resultId: result.effectRunResultId };\n\tif (spec.payloadFrom === \"output\") return evidence.output;\n\tif (spec.payloadFrom === \"evidence\")\n\t\treturn { kind: \"work-item-evidence-ref\", evidenceId: evidence.evidenceId };\n\treturn undefined;\n}\n\nfunction actionProposalIssue(\n\tpolicy: WorkItemVerificationMappingPolicy,\n\tspec: WorkItemDomainActionProposalSpec,\n\tevidence: WorkItemEvidenceRecorded,\n\treason: string,\n): DataIssue {\n\treturn issue(\n\t\t\"policy-mismatch\",\n\t\t`Verification mapping policy '${policy.policyId}' has an invalid action proposal: ${reason}`,\n\t\tevidence.workItemId,\n\t\t{ policyId: policy.policyId, actionKind: spec.actionKind },\n\t);\n}\n\nfunction issue(\n\tcode: WorkItemValidationIssueCode,\n\tmessage: string,\n\tworkItemId?: string,\n\tmetadata?: Record<string, unknown>,\n): DataIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tcode,\n\t\tmessage,\n\t\tseverity: \"error\",\n\t\tsource: \"work-item-scheduling\",\n\t\tsubjectId: workItemId,\n\t\tmetadata,\n\t};\n}\n\nfunction refs(kind: string, id: string, rest?: readonly SourceRef[]): readonly SourceRef[] {\n\treturn [ref(kind, id), ...(rest ?? [])];\n}\n\nfunction ref(kind: string, id: string): SourceRef {\n\treturn { kind, id };\n}\n\nfunction stringArray(value: unknown): readonly string[] {\n\treturn Array.isArray(value)\n\t\t? value.filter((item): item is string => typeof item === \"string\")\n\t\t: [];\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn value !== null && typeof value === \"object\";\n}\n","import { type Ctx, depBatch } from \"../ctx/types.js\";\nimport type { DataIssue } from \"../data/index.js\";\nimport type { Graph } from \"../graph/graph.js\";\nimport type { Node } from \"../node/node.js\";\nimport {\n\ttype AgentNeed,\n\ttype AgentOutputEnvelope,\n\ttype AgentRuntimeAuditRecord,\n\ttype EffectRun,\n\ttype EffectRunGoal,\n\ttype EffectRunLimits,\n\ttype EffectRunResult,\n\ttype EffectRunResultStatus,\n\teffectRun,\n\ttype SourceRef,\n} from \"./agent-runtime.js\";\n\nexport interface WorkItemSeed {\n\treadonly kind: \"work-item\";\n\treadonly workItemId: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly workItemKind?: string;\n\treadonly summary?: string;\n\treadonly detailRef?: string;\n\treadonly lifecycleStatus?: string;\n\treadonly issues?: readonly DataIssue[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectRequested<TInput = unknown> {\n\treadonly kind: \"work-item-effect-requested\";\n\treadonly requestId: string;\n\treadonly workItemId: string;\n\treadonly effectRunId: string;\n\treadonly effectKind: string;\n\treadonly executionInputRevision?: number;\n\treadonly planId?: string;\n\treadonly planMemberId?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly goal: EffectRunGoal<TInput>;\n\treadonly agentRunId?: string;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly limits?: EffectRunLimits;\n\treadonly createdBy?: string;\n\treadonly createdAtMs?: number;\n\treadonly idempotencyKey?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEvidenceRecorded {\n\treadonly kind: \"work-item-evidence-recorded\";\n\treadonly evidenceId: string;\n\treadonly workItemId: string;\n\treadonly requestId?: string;\n\treadonly effectRunId: string;\n\treadonly effectRunResultId: string;\n\treadonly executionInputRevision?: number;\n\treadonly planId?: string;\n\treadonly planMemberId?: string;\n\treadonly status: EffectRunResultStatus;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly output?: AgentOutputEnvelope;\n\treadonly error?: DataIssue;\n\treadonly needs?: readonly AgentNeed[];\n\treadonly reason?: string;\n\treadonly timeoutMs?: number;\n\treadonly issues?: readonly DataIssue[];\n\treadonly auditRefs?: readonly string[];\n\treadonly recordedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemDomainActionProposalPayloadFrom = \"evidence\" | \"effect-run-result\" | \"output\";\n\nexport interface WorkItemDomainActionProposalSpec<TPayload = unknown> {\n\treadonly actionKind: string;\n\treadonly behavior?: \"propose\";\n\treadonly statuses?: readonly EffectRunResultStatus[];\n\treadonly outputKinds?: readonly string[];\n\treadonly payloadFrom?: WorkItemDomainActionProposalPayloadFrom;\n\treadonly payload?: TPayload;\n\treadonly reason?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemDomainActionProposal<TPayload = unknown> {\n\treadonly kind: \"work-item-domain-action-proposal\";\n\treadonly proposalId: string;\n\treadonly workItemId: string;\n\treadonly actionKind: string;\n\treadonly effectRunId: string;\n\treadonly effectRunResultId: string;\n\treadonly evidenceId: string;\n\treadonly policyId: string;\n\treadonly payload?: TPayload;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly proposedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemDomainActionAdmissionOutcome = \"admit\" | \"reject\" | \"defer\" | \"merge\";\nexport type WorkItemDomainActionAdmissionState = \"admitted\" | \"rejected\" | \"deferred\" | \"merged\";\n\nexport interface WorkItemDomainActionAdmissionPolicy {\n\treadonly kind: \"work-item-domain-action-admission-policy\";\n\treadonly policyId: string;\n\treadonly actionKinds?: readonly string[];\n\treadonly allowedOutcomes?: readonly WorkItemDomainActionAdmissionOutcome[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemDomainActionAdmissionDecision {\n\treadonly kind: \"work-item-domain-action-admission-decision\";\n\treadonly decisionId: string;\n\treadonly admissionId: string;\n\treadonly proposalId: string;\n\treadonly outcome: WorkItemDomainActionAdmissionOutcome;\n\treadonly policyId?: string;\n\treadonly reason?: string;\n\treadonly targetProposalId?: string;\n\treadonly targetAdmissionId?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly decidedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemDomainActionAdmission {\n\treadonly kind: \"work-item-domain-action-admission\";\n\treadonly admissionId: string;\n\treadonly proposalId: string;\n\treadonly workItemId: string;\n\treadonly actionKind: string;\n\treadonly state: WorkItemDomainActionAdmissionState;\n\treadonly decisionId: string;\n\treadonly policyId?: string;\n\treadonly reason?: string;\n\treadonly targetProposalId?: string;\n\treadonly targetAdmissionId?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly admittedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectMappingPolicy {\n\treadonly kind: \"work-item-effect-mapping-policy\";\n\treadonly policyId: string;\n\treadonly effectKinds?: readonly string[];\n\treadonly evidence?: {\n\t\treadonly behavior?: \"record\";\n\t};\n\treadonly actionProposals?: readonly WorkItemDomainActionProposalSpec[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemStatusRecord {\n\treadonly kind: \"work-item-status\";\n\treadonly statusId: string;\n\treadonly workItemId: string;\n\treadonly state:\n\t\t| \"effect-request-pending\"\n\t\t| \"effect-run-seeded\"\n\t\t| \"evidence-recorded\"\n\t\t| \"domain-action-proposed\"\n\t\t| \"domain-action-admitted\"\n\t\t| \"domain-action-rejected\"\n\t\t| \"domain-action-deferred\"\n\t\t| \"domain-action-merged\"\n\t\t| \"mapping-issue\";\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly effectRunId?: string;\n\treadonly requestId?: string;\n\treadonly evidenceId?: string;\n\treadonly proposalId?: string;\n\treadonly issues?: readonly DataIssue[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectRequestViews {\n\treadonly pendingEffectRequests: readonly WorkItemEffectRequested[];\n\treadonly issues: readonly DataIssue[];\n\treadonly audit: readonly AgentRuntimeAuditRecord[];\n}\n\nexport interface WorkItemEvidenceViews {\n\treadonly evidenceByWorkItem: ReadonlyMap<string, readonly WorkItemEvidenceRecorded[]>;\n\treadonly latestEvidenceByEffectRun: ReadonlyMap<string, WorkItemEvidenceRecorded>;\n\treadonly issues: readonly DataIssue[];\n\treadonly audit: readonly AgentRuntimeAuditRecord[];\n\treadonly pendingEffectRequests: readonly WorkItemEffectRequested[];\n}\n\nexport interface WorkItemDomainActionProposalViews {\n\treadonly proposalsByWorkItem: ReadonlyMap<string, readonly WorkItemDomainActionProposal[]>;\n\treadonly proposalsByEvidence: ReadonlyMap<string, readonly WorkItemDomainActionProposal[]>;\n\treadonly issues: readonly DataIssue[];\n\treadonly audit: readonly AgentRuntimeAuditRecord[];\n}\n\nexport interface WorkItemDomainActionAdmissionViews {\n\treadonly admissionsByProposal: ReadonlyMap<string, WorkItemDomainActionAdmission>;\n\treadonly admissionsByWorkItem: ReadonlyMap<string, readonly WorkItemDomainActionAdmission[]>;\n\treadonly issues: readonly DataIssue[];\n\treadonly audit: readonly AgentRuntimeAuditRecord[];\n}\n\nexport interface WorkItemEffectRunBundle {\n\treadonly effectRuns: Node<EffectRun>;\n\treadonly status: Node<WorkItemStatusRecord>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n\treadonly views: Node<WorkItemEffectRequestViews>;\n}\n\nexport interface WorkItemEvidenceMapperBundle {\n\treadonly evidence: Node<WorkItemEvidenceRecorded>;\n\treadonly status: Node<WorkItemStatusRecord>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n\treadonly views: Node<WorkItemEvidenceViews>;\n}\n\nexport interface WorkItemDomainActionProposalBundle {\n\treadonly proposals: Node<WorkItemDomainActionProposal>;\n\treadonly status: Node<WorkItemStatusRecord>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n\treadonly views: Node<WorkItemDomainActionProposalViews>;\n}\n\nexport interface WorkItemDomainActionAdmissionBundle {\n\treadonly admissions: Node<WorkItemDomainActionAdmission>;\n\treadonly status: Node<WorkItemStatusRecord>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n\treadonly views: Node<WorkItemDomainActionAdmissionViews>;\n}\n\nexport function workItemEffectRunProjector(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly workItems: Node<WorkItemSeed>;\n\t\treadonly effectRequests: Node<WorkItemEffectRequested>;\n\t},\n): WorkItemEffectRunBundle {\n\tconst name = opts.name ?? \"workItemEffectRuns\";\n\tconst runtime = graph.node<WorkItemEffectRunFact>(\n\t\t[opts.workItems, opts.effectRequests],\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<WorkItemEffectRunState>() ?? emptyWorkItemEffectRunState();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst workItem = raw as WorkItemSeed;\n\t\t\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst request = raw as WorkItemEffectRequested;\n\t\t\t\tstate.requests.set(request.requestId, request);\n\t\t\t\tconst requestRefs = workItemEffectRequestRefs(request);\n\t\t\t\tstate.statusSeq += 1;\n\t\t\t\tstate.auditSeq += 1;\n\t\t\t\tctx.down([\n\t\t\t\t\t[\n\t\t\t\t\t\t\"DATA\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkind: \"status\",\n\t\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\t\tkind: \"work-item-status\",\n\t\t\t\t\t\t\t\tstatusId: `${request.workItemId}:effect-request-pending:${state.statusSeq}`,\n\t\t\t\t\t\t\t\tworkItemId: request.workItemId,\n\t\t\t\t\t\t\t\teffectRunId: request.effectRunId,\n\t\t\t\t\t\t\t\trequestId: request.requestId,\n\t\t\t\t\t\t\t\tstate: \"effect-request-pending\",\n\t\t\t\t\t\t\t\tsourceRefs: requestRefs,\n\t\t\t\t\t\t\t\tmetadata: { effectKind: request.effectKind },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies WorkItemEffectRunFact,\n\t\t\t\t\t],\n\t\t\t\t\t[\n\t\t\t\t\t\t\"DATA\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkind: \"audit\",\n\t\t\t\t\t\t\taudit: {\n\t\t\t\t\t\t\t\tid: `${request.workItemId}:effect-request-pending:${state.auditSeq}`,\n\t\t\t\t\t\t\t\tkind: \"work-item-effect-request-pending\",\n\t\t\t\t\t\t\t\tsubjectId: request.workItemId,\n\t\t\t\t\t\t\t\tsourceRefs: requestRefs,\n\t\t\t\t\t\t\t\tmetadata: { effectRunId: request.effectRunId, effectKind: request.effectKind },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies WorkItemEffectRunFact,\n\t\t\t\t\t],\n\t\t\t\t]);\n\t\t\t\tconst workItem = state.workItems.get(request.workItemId);\n\t\t\t\tif (workItem === undefined) {\n\t\t\t\t\temitWorkItemEffectRunIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`unknown-work-item:${request.requestId}`,\n\t\t\t\t\t\t\"unknown-work-item-effect-request\",\n\t\t\t\t\t\t`WorkItemEffectRequested '${request.requestId}' references unknown WorkItem '${request.workItemId}'`,\n\t\t\t\t\t\trequest.workItemId,\n\t\t\t\t\t\trequestRefs,\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst existingEffectRunId = state.effectRunsByRequest.get(request.requestId);\n\t\t\t\tif (existingEffectRunId !== undefined) {\n\t\t\t\t\temitWorkItemEffectRunIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`duplicate-effect-request:${request.requestId}`,\n\t\t\t\t\t\t\"duplicate-work-item-effect-request\",\n\t\t\t\t\t\t`WorkItemEffectRequested '${request.requestId}' was already mapped to EffectRun '${existingEffectRunId}'`,\n\t\t\t\t\t\trequest.workItemId,\n\t\t\t\t\t\trequestRefs,\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (state.seededEffectRunIds.has(request.effectRunId)) {\n\t\t\t\t\temitWorkItemEffectRunIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`duplicate-effect-run:${request.effectRunId}:${request.requestId}`,\n\t\t\t\t\t\t\"duplicate-work-item-effect-run\",\n\t\t\t\t\t\t`EffectRun '${request.effectRunId}' was already seeded from another WorkItemEffectRequested fact`,\n\t\t\t\t\t\trequest.workItemId,\n\t\t\t\t\t\trequestRefs,\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstate.effectRunsByRequest.set(request.requestId, request.effectRunId);\n\t\t\t\tstate.seededEffectRunIds.add(request.effectRunId);\n\t\t\t\tconst run = effectRun({\n\t\t\t\t\teffectRunId: request.effectRunId,\n\t\t\t\t\tagentRunId: request.agentRunId,\n\t\t\t\t\tsubjectRefs: [ref(\"work-item\", request.workItemId)],\n\t\t\t\t\tgoal: request.goal,\n\t\t\t\t\tsourceRefs: [\n\t\t\t\t\t\tref(\"work-item\", request.workItemId),\n\t\t\t\t\t\tref(\"work-item-effect-request\", request.requestId),\n\t\t\t\t\t\t...(request.sourceRefs ?? []),\n\t\t\t\t\t],\n\t\t\t\t\tpolicyRefs: request.policyRefs,\n\t\t\t\t\tlimits: request.limits,\n\t\t\t\t\tcreatedBy: request.createdBy,\n\t\t\t\t\tcreatedAtMs: request.createdAtMs,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...(request.metadata ?? {}),\n\t\t\t\t\t\teffectKind: request.effectKind,\n\t\t\t\t\t\tidempotencyKey: request.idempotencyKey,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tstate.statusSeq += 1;\n\t\t\t\tstate.auditSeq += 1;\n\t\t\t\tctx.down([\n\t\t\t\t\t[\"DATA\", { kind: \"effect-run\", effectRun: run } satisfies WorkItemEffectRunFact],\n\t\t\t\t\t[\n\t\t\t\t\t\t\"DATA\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkind: \"status\",\n\t\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\t\tkind: \"work-item-status\",\n\t\t\t\t\t\t\t\tstatusId: `${request.workItemId}:effect-run-seeded:${state.statusSeq}`,\n\t\t\t\t\t\t\t\tworkItemId: request.workItemId,\n\t\t\t\t\t\t\t\teffectRunId: request.effectRunId,\n\t\t\t\t\t\t\t\trequestId: request.requestId,\n\t\t\t\t\t\t\t\tstate: \"effect-run-seeded\",\n\t\t\t\t\t\t\t\tsourceRefs: run.sourceRefs,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies WorkItemEffectRunFact,\n\t\t\t\t\t],\n\t\t\t\t\t[\n\t\t\t\t\t\t\"DATA\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkind: \"audit\",\n\t\t\t\t\t\t\taudit: {\n\t\t\t\t\t\t\t\tid: `${request.workItemId}:effect-run-seeded:${state.auditSeq}`,\n\t\t\t\t\t\t\t\tkind: \"work-item-effect-run-seeded\",\n\t\t\t\t\t\t\t\tsubjectId: request.workItemId,\n\t\t\t\t\t\t\t\tsourceRefs: run.sourceRefs,\n\t\t\t\t\t\t\t\tmetadata: { effectRunId: request.effectRunId, effectKind: request.effectKind },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies WorkItemEffectRunFact,\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},\n\t\t{ name: `${name}/runtime`, factory: \"workItemEffectRunProjector\" },\n\t);\n\treturn {\n\t\teffectRuns: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/effectRuns`,\n\t\t\t\"workItemEffectRuns\",\n\t\t\t(fact) => (fact.kind === \"effect-run\" ? fact.effectRun : 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\"workItemEffectRunStatus\",\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\"workItemEffectRunIssues\",\n\t\t\t(fact) => (fact.kind === \"issue\" ? fact.issue : undefined),\n\t\t),\n\t\taudit: projectRuntimeFact(graph, runtime, `${name}/audit`, \"workItemEffectRunAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.audit : undefined,\n\t\t),\n\t\tviews: graph.node<WorkItemEffectRequestViews>(\n\t\t\t[opts.effectRequests, runtime],\n\t\t\t(ctx) => {\n\t\t\t\tconst state = ctx.state.get<WorkItemEffectRunViewsState>() ?? {\n\t\t\t\t\tpendingEffectRequests: new Map<string, WorkItemEffectRequested>(),\n\t\t\t\t\tsettledRequestIds: new Set<string>(),\n\t\t\t\t\tissues: [],\n\t\t\t\t\taudit: [],\n\t\t\t\t};\n\t\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\t\tconst request = raw as WorkItemEffectRequested;\n\t\t\t\t\tif (!state.settledRequestIds.has(request.requestId))\n\t\t\t\t\t\tstate.pendingEffectRequests.set(request.requestId, request);\n\t\t\t\t}\n\t\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\t\tconst fact = raw as WorkItemEffectRunFact;\n\t\t\t\t\tif (fact.kind === \"effect-run\") {\n\t\t\t\t\t\tfor (const request of state.pendingEffectRequests.values()) {\n\t\t\t\t\t\t\tif (request.effectRunId === fact.effectRun.effectRunId) {\n\t\t\t\t\t\t\t\tstate.pendingEffectRequests.delete(request.requestId);\n\t\t\t\t\t\t\t\tstate.settledRequestIds.add(request.requestId);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (fact.kind === \"issue\") {\n\t\t\t\t\t\tdeletePendingWorkItemEffectRequest(state, fact.issue.refs);\n\t\t\t\t\t\tstate.issues.push(fact.issue);\n\t\t\t\t\t} else if (fact.kind === \"audit\") state.audit.push(fact.audit);\n\t\t\t\t}\n\t\t\t\tctx.state.set(state);\n\t\t\t\tctx.down([[\"DATA\", freezeWorkItemEffectRequestViews(state)]]);\n\t\t\t},\n\t\t\t{ name: `${name}/views`, factory: \"workItemEffectRequestViews\" },\n\t\t),\n\t};\n}\n\nexport function workItemEffectResultMapper(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly workItems: Node<WorkItemSeed>;\n\t\treadonly effectRuns: Node<EffectRun>;\n\t\treadonly effectRunResults: Node<EffectRunResult>;\n\t\treadonly effectRequests?: Node<WorkItemEffectRequested>;\n\t\treadonly mappingPolicies?: readonly Node<WorkItemEffectMappingPolicy>[];\n\t\treadonly now?: () => number;\n\t},\n): WorkItemEvidenceMapperBundle {\n\tconst name = opts.name ?? \"workItemEffectResultMapper\";\n\tconst policyDeps = opts.mappingPolicies ?? [];\n\tconst deps = [\n\t\topts.workItems,\n\t\topts.effectRuns,\n\t\topts.effectRunResults,\n\t\t...(opts.effectRequests === undefined ? [] : [opts.effectRequests]),\n\t\t...policyDeps,\n\t];\n\tconst effectRequestIndex = 3;\n\tconst policyStart = effectRequestIndex + (opts.effectRequests === undefined ? 0 : 1);\n\tconst now = opts.now ?? Date.now;\n\tconst runtime = graph.node<WorkItemEvidenceMapperFact>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<WorkItemEvidenceState>() ?? emptyWorkItemEvidenceState();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst workItem = raw as WorkItemSeed;\n\t\t\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst run = raw as EffectRun;\n\t\t\t\tstate.effectRuns.set(run.effectRunId, run);\n\t\t\t\tconst workItemRef = singleWorkItemRef([\n\t\t\t\t\t...(run.subjectRefs ?? []),\n\t\t\t\t\t...(run.sourceRefs ?? []),\n\t\t\t\t]);\n\t\t\t\tif (workItemRef !== undefined)\n\t\t\t\t\tstate.effectRunWorkItems.set(run.effectRunId, workItemRef.id);\n\t\t\t}\n\t\t\tif (opts.effectRequests !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, effectRequestIndex) ?? []) {\n\t\t\t\t\tconst request = raw as WorkItemEffectRequested;\n\t\t\t\t\tstate.pendingEffectRequests.set(request.requestId, request);\n\t\t\t\t\tconst existing = state.requestsByEffectRun.get(request.effectRunId);\n\t\t\t\t\tif (existing !== undefined && existing.requestId !== request.requestId) {\n\t\t\t\t\t\tconst ambiguous = state.ambiguousRequestsByEffectRun.get(request.effectRunId) ?? [\n\t\t\t\t\t\t\texisting,\n\t\t\t\t\t\t];\n\t\t\t\t\t\tif (!ambiguous.some((item) => item.requestId === request.requestId))\n\t\t\t\t\t\t\tambiguous.push(request);\n\t\t\t\t\t\tstate.ambiguousRequestsByEffectRun.set(request.effectRunId, ambiguous);\n\t\t\t\t\t\temitWorkItemEvidenceIssue(\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t`duplicate-effect-request:${request.effectRunId}:${request.requestId}`,\n\t\t\t\t\t\t\t\"duplicate-work-item-effect-request\",\n\t\t\t\t\t\t\t`EffectRun '${request.effectRunId}' has multiple WorkItemEffectRequested facts`,\n\t\t\t\t\t\t\trequest.workItemId,\n\t\t\t\t\t\t\tuniqueSourceRefs(ambiguous.flatMap(workItemEffectRequestRefs)),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate.requestsByEffectRun.set(request.effectRunId, request);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tforEachPolicyDepBatch(ctx, policyStart, policyDeps.length, (raw) => {\n\t\t\t\tconst policy = raw as WorkItemEffectMappingPolicy;\n\t\t\t\tstate.policies.set(policy.policyId, policy);\n\t\t\t});\n\t\t\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\t\t\tconst result = raw as EffectRunResult;\n\t\t\t\tmapEffectRunResultToWorkItemEvidence(ctx, state, result, now());\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{ name: `${name}/runtime`, factory: \"workItemEffectResultMapper\" },\n\t);\n\treturn {\n\t\tevidence: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/evidence`,\n\t\t\t\"workItemEvidenceRecorded\",\n\t\t\t(fact) => (fact.kind === \"evidence\" ? fact.evidence : 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\"workItemEvidenceStatus\",\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\"workItemEvidenceIssues\",\n\t\t\t(fact) => (fact.kind === \"issue\" ? fact.issue : undefined),\n\t\t),\n\t\taudit: projectRuntimeFact(graph, runtime, `${name}/audit`, \"workItemEvidenceAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.audit : undefined,\n\t\t),\n\t\tviews: graph.node<WorkItemEvidenceViews>(\n\t\t\t[...(opts.effectRequests === undefined ? [] : [opts.effectRequests]), runtime],\n\t\t\t(ctx) => {\n\t\t\t\tconst state = ctx.state.get<WorkItemEvidenceViewsState>() ?? {\n\t\t\t\t\tevidenceByWorkItem: new Map<string, WorkItemEvidenceRecorded[]>(),\n\t\t\t\t\tlatestEvidenceByEffectRun: new Map<string, WorkItemEvidenceRecorded>(),\n\t\t\t\t\tpendingEffectRequests: new Map<string, WorkItemEffectRequested>(),\n\t\t\t\t\tsettledEffectRunIds: new Set<string>(),\n\t\t\t\t\tsettledRequestIds: new Set<string>(),\n\t\t\t\t\tissues: [],\n\t\t\t\t\taudit: [],\n\t\t\t\t};\n\t\t\t\tif (opts.effectRequests !== undefined) {\n\t\t\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\t\t\tconst request = raw as WorkItemEffectRequested;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!state.settledRequestIds.has(request.requestId) &&\n\t\t\t\t\t\t\t!state.settledEffectRunIds.has(request.effectRunId)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\tstate.pendingEffectRequests.set(request.requestId, request);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst runtimeIndex = opts.effectRequests === undefined ? 0 : 1;\n\t\t\t\tfor (const raw of depBatch(ctx, runtimeIndex) ?? []) {\n\t\t\t\t\tconst fact = raw as WorkItemEvidenceMapperFact;\n\t\t\t\t\tif (fact.kind === \"evidence\") {\n\t\t\t\t\t\tconst evidence = fact.evidence;\n\t\t\t\t\t\tconst byWorkItem = state.evidenceByWorkItem.get(evidence.workItemId) ?? [];\n\t\t\t\t\t\tbyWorkItem.push(evidence);\n\t\t\t\t\t\tstate.evidenceByWorkItem.set(evidence.workItemId, byWorkItem);\n\t\t\t\t\t\tstate.latestEvidenceByEffectRun.set(evidence.effectRunId, evidence);\n\t\t\t\t\t\tfor (const request of state.pendingEffectRequests.values()) {\n\t\t\t\t\t\t\tif (request.effectRunId === evidence.effectRunId) {\n\t\t\t\t\t\t\t\tstate.pendingEffectRequests.delete(request.requestId);\n\t\t\t\t\t\t\t\tstate.settledRequestIds.add(request.requestId);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.settledEffectRunIds.add(evidence.effectRunId);\n\t\t\t\t\t} else if (fact.kind === \"issue\") {\n\t\t\t\t\t\tdeletePendingWorkItemEffectRequest(state, fact.issue.refs);\n\t\t\t\t\t\tstate.issues.push(fact.issue);\n\t\t\t\t\t} else if (fact.kind === \"audit\") state.audit.push(fact.audit);\n\t\t\t\t}\n\t\t\t\tctx.state.set(state);\n\t\t\t\tctx.down([[\"DATA\", freezeWorkItemEvidenceViews(state)]]);\n\t\t\t},\n\t\t\t{ name: `${name}/views`, factory: \"workItemEvidenceViews\" },\n\t\t),\n\t};\n}\n\nexport function workItemDomainActionProposalProjector(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly workItems: Node<WorkItemSeed>;\n\t\treadonly evidence: Node<WorkItemEvidenceRecorded>;\n\t\treadonly effectRunResults: Node<EffectRunResult>;\n\t\treadonly mappingPolicies: readonly Node<WorkItemEffectMappingPolicy>[];\n\t\treadonly now?: () => number;\n\t},\n): WorkItemDomainActionProposalBundle {\n\tconst name = opts.name ?? \"workItemDomainActionProposals\";\n\tconst now = opts.now ?? Date.now;\n\tconst policyStart = 3;\n\tconst runtime = graph.node<WorkItemDomainActionProposalFact>(\n\t\t[opts.workItems, opts.evidence, opts.effectRunResults, ...opts.mappingPolicies],\n\t\t(ctx) => {\n\t\t\tconst state =\n\t\t\t\tctx.state.get<WorkItemDomainActionProposalState>() ??\n\t\t\t\temptyWorkItemDomainActionProposalState();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst workItem = raw as WorkItemSeed;\n\t\t\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst evidence = raw as WorkItemEvidenceRecorded;\n\t\t\t\tif (state.evidence.has(evidence.evidenceId)) {\n\t\t\t\t\temitWorkItemActionProposalIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`duplicate-action-proposal-evidence:${evidence.evidenceId}`,\n\t\t\t\t\t\t\"duplicate-work-item-action-proposal-evidence\",\n\t\t\t\t\t\t`WorkItemEvidenceRecorded '${evidence.evidenceId}' was already seen by the action proposal projector`,\n\t\t\t\t\t\tevidence.workItemId,\n\t\t\t\t\t\tworkItemEvidenceOnlyRefs(evidence),\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstate.evidence.set(evidence.evidenceId, evidence);\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\t\t\tconst result = raw as EffectRunResult;\n\t\t\t\tif (state.results.has(result.resultId)) {\n\t\t\t\t\temitWorkItemActionProposalIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`duplicate-action-proposal-result:${result.resultId}`,\n\t\t\t\t\t\t\"duplicate-work-item-action-proposal-result\",\n\t\t\t\t\t\t`EffectRunResult '${result.resultId}' was already seen by the action proposal projector`,\n\t\t\t\t\t\tworkItemIdForEffectRunResult(state, result),\n\t\t\t\t\t\tworkItemResultRefs(result),\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstate.results.set(result.resultId, result);\n\t\t\t}\n\t\t\tforEachPolicyDepBatch(ctx, policyStart, opts.mappingPolicies.length, (raw) => {\n\t\t\t\tconst policy = raw as WorkItemEffectMappingPolicy;\n\t\t\t\tstate.policies.set(policy.policyId, policy);\n\t\t\t});\n\t\t\tevaluateWorkItemDomainActionProposals(ctx, state, now());\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{ name: `${name}/runtime`, factory: \"workItemDomainActionProposalProjector\", partial: true },\n\t);\n\treturn {\n\t\tproposals: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/proposals`,\n\t\t\t\"workItemDomainActionProposals\",\n\t\t\t(fact) => (fact.kind === \"proposal\" ? fact.proposal : 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\"workItemDomainActionProposalStatus\",\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\"workItemDomainActionProposalIssues\",\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\"workItemDomainActionProposalAudit\",\n\t\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t\t),\n\t\tviews: graph.node<WorkItemDomainActionProposalViews>(\n\t\t\t[runtime],\n\t\t\t(ctx) => {\n\t\t\t\tconst state = ctx.state.get<WorkItemDomainActionProposalViewsState>() ?? {\n\t\t\t\t\tproposalsByWorkItem: new Map<string, WorkItemDomainActionProposal[]>(),\n\t\t\t\t\tproposalsByEvidence: new Map<string, WorkItemDomainActionProposal[]>(),\n\t\t\t\t\tissues: [],\n\t\t\t\t\taudit: [],\n\t\t\t\t};\n\t\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\t\tconst fact = raw as WorkItemDomainActionProposalFact;\n\t\t\t\t\tif (fact.kind === \"proposal\") {\n\t\t\t\t\t\tconst proposal = fact.proposal;\n\t\t\t\t\t\tconst byWorkItem = state.proposalsByWorkItem.get(proposal.workItemId) ?? [];\n\t\t\t\t\t\tbyWorkItem.push(proposal);\n\t\t\t\t\t\tstate.proposalsByWorkItem.set(proposal.workItemId, byWorkItem);\n\t\t\t\t\t\tconst byEvidence = state.proposalsByEvidence.get(proposal.evidenceId) ?? [];\n\t\t\t\t\t\tbyEvidence.push(proposal);\n\t\t\t\t\t\tstate.proposalsByEvidence.set(proposal.evidenceId, byEvidence);\n\t\t\t\t\t} else if (fact.kind === \"issue\") state.issues.push(fact.issue);\n\t\t\t\t\telse if (fact.kind === \"audit\") state.audit.push(fact.audit);\n\t\t\t\t}\n\t\t\t\tctx.state.set(state);\n\t\t\t\tctx.down([[\"DATA\", freezeWorkItemDomainActionProposalViews(state)]]);\n\t\t\t},\n\t\t\t{ name: `${name}/views`, factory: \"workItemDomainActionProposalViews\" },\n\t\t),\n\t};\n}\n\nexport function workItemDomainActionAdmissionProjector(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly proposals: Node<WorkItemDomainActionProposal>;\n\t\treadonly decisions: Node<WorkItemDomainActionAdmissionDecision>;\n\t\treadonly admissionPolicies?: readonly Node<WorkItemDomainActionAdmissionPolicy>[];\n\t\treadonly now?: () => number;\n\t},\n): WorkItemDomainActionAdmissionBundle {\n\tconst name = opts.name ?? \"workItemDomainActionAdmissions\";\n\tconst policyDeps = opts.admissionPolicies ?? [];\n\tconst policyStart = 2;\n\tconst now = opts.now ?? Date.now;\n\tconst runtime = graph.node<WorkItemDomainActionAdmissionFact>(\n\t\t[opts.proposals, opts.decisions, ...policyDeps],\n\t\t(ctx) => {\n\t\t\tconst state =\n\t\t\t\tctx.state.get<WorkItemDomainActionAdmissionStateInternal>() ??\n\t\t\t\temptyWorkItemDomainActionAdmissionState();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst proposal = raw as WorkItemDomainActionProposal;\n\t\t\t\tif (state.proposals.has(proposal.proposalId)) {\n\t\t\t\t\temitWorkItemAdmissionIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`duplicate-admission-proposal:${proposal.proposalId}`,\n\t\t\t\t\t\t\"duplicate-work-item-domain-action-proposal\",\n\t\t\t\t\t\t`WorkItemDomainActionProposal '${proposal.proposalId}' was already seen by the admission projector`,\n\t\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t\tworkItemAdmissionProposalRefs(proposal),\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, policyStart, policyDeps.length, (raw) => {\n\t\t\t\tconst policy = raw as WorkItemDomainActionAdmissionPolicy;\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 WorkItemDomainActionAdmissionDecision;\n\t\t\t\tif (state.decisions.has(decision.decisionId)) {\n\t\t\t\t\temitWorkItemAdmissionIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t`duplicate-admission-decision:${decision.decisionId}`,\n\t\t\t\t\t\t\"duplicate-work-item-domain-action-admission-decision\",\n\t\t\t\t\t\t`WorkItemDomainActionAdmissionDecision '${decision.decisionId}' was already seen by the admission projector`,\n\t\t\t\t\t\tdecision.proposalId,\n\t\t\t\t\t\tworkItemAdmissionDecisionRefs(decision),\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\tevaluateWorkItemDomainActionAdmissions(ctx, state, now());\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{ name: `${name}/runtime`, factory: \"workItemDomainActionAdmissionProjector\", 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\"workItemDomainActionAdmissions\",\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\"workItemDomainActionAdmissionStatus\",\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\"workItemDomainActionAdmissionIssues\",\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\"workItemDomainActionAdmissionAudit\",\n\t\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t\t),\n\t\tviews: graph.node<WorkItemDomainActionAdmissionViews>(\n\t\t\t[runtime],\n\t\t\t(ctx) => {\n\t\t\t\tconst state = ctx.state.get<WorkItemDomainActionAdmissionViewsState>() ?? {\n\t\t\t\t\tadmissionsByProposal: new Map<string, WorkItemDomainActionAdmission>(),\n\t\t\t\t\tadmissionsByWorkItem: new Map<string, WorkItemDomainActionAdmission[]>(),\n\t\t\t\t\tissues: [],\n\t\t\t\t\taudit: [],\n\t\t\t\t};\n\t\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\t\tconst fact = raw as WorkItemDomainActionAdmissionFact;\n\t\t\t\t\tif (fact.kind === \"admission\") {\n\t\t\t\t\t\tconst admission = fact.admission;\n\t\t\t\t\t\tstate.admissionsByProposal.set(admission.proposalId, admission);\n\t\t\t\t\t\tconst byWorkItem = state.admissionsByWorkItem.get(admission.workItemId) ?? [];\n\t\t\t\t\t\tbyWorkItem.push(admission);\n\t\t\t\t\t\tstate.admissionsByWorkItem.set(admission.workItemId, byWorkItem);\n\t\t\t\t\t} else if (fact.kind === \"issue\") state.issues.push(fact.issue);\n\t\t\t\t\telse if (fact.kind === \"audit\") state.audit.push(fact.audit);\n\t\t\t\t}\n\t\t\t\tctx.state.set(state);\n\t\t\t\tctx.down([[\"DATA\", freezeWorkItemDomainActionAdmissionViews(state)]]);\n\t\t\t},\n\t\t\t{ name: `${name}/views`, factory: \"workItemDomainActionAdmissionViews\" },\n\t\t),\n\t};\n}\n\ntype WorkItemEffectRunFact =\n\t| { readonly kind: \"effect-run\"; readonly effectRun: EffectRun }\n\t| { readonly kind: \"status\"; readonly status: WorkItemStatusRecord }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\ntype WorkItemEvidenceMapperFact =\n\t| { readonly kind: \"evidence\"; readonly evidence: WorkItemEvidenceRecorded }\n\t| { readonly kind: \"status\"; readonly status: WorkItemStatusRecord }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\ntype WorkItemDomainActionProposalFact =\n\t| { readonly kind: \"proposal\"; readonly proposal: WorkItemDomainActionProposal }\n\t| { readonly kind: \"status\"; readonly status: WorkItemStatusRecord }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\ntype WorkItemDomainActionAdmissionFact =\n\t| { readonly kind: \"admission\"; readonly admission: WorkItemDomainActionAdmission }\n\t| { readonly kind: \"status\"; readonly status: WorkItemStatusRecord }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\ninterface WorkItemEffectRunState {\n\tworkItems: Map<string, WorkItemSeed>;\n\trequests: Map<string, WorkItemEffectRequested>;\n\teffectRunsByRequest: Map<string, string>;\n\tseededEffectRunIds: Set<string>;\n\tissues: DataIssue[];\n\taudit: AgentRuntimeAuditRecord[];\n\tissueKeys: Set<string>;\n\tstatusSeq: number;\n\tissueSeq: number;\n\tauditSeq: number;\n}\n\ninterface WorkItemEvidenceState {\n\tworkItems: Map<string, WorkItemSeed>;\n\teffectRuns: Map<string, EffectRun>;\n\teffectRunWorkItems: Map<string, string>;\n\tevidenceByWorkItem: Map<string, WorkItemEvidenceRecorded[]>;\n\tlatestEvidenceByEffectRun: Map<string, WorkItemEvidenceRecorded>;\n\tpendingEffectRequests: Map<string, WorkItemEffectRequested>;\n\trequestsByEffectRun: Map<string, WorkItemEffectRequested>;\n\tambiguousRequestsByEffectRun: Map<string, WorkItemEffectRequested[]>;\n\tpolicies: Map<string, WorkItemEffectMappingPolicy>;\n\tissues: DataIssue[];\n\taudit: AgentRuntimeAuditRecord[];\n\tissueKeys: Set<string>;\n\tstatusSeq: number;\n\tissueSeq: number;\n\tauditSeq: number;\n}\n\ninterface WorkItemDomainActionProposalState {\n\tworkItems: Map<string, WorkItemSeed>;\n\tevidence: Map<string, WorkItemEvidenceRecorded>;\n\tresults: Map<string, EffectRunResult>;\n\tpolicies: Map<string, WorkItemEffectMappingPolicy>;\n\tproposedKeys: Set<string>;\n\tissueKeys: Set<string>;\n\tstatusSeq: number;\n\tissueSeq: number;\n\tauditSeq: number;\n}\n\ninterface WorkItemDomainActionAdmissionStateInternal {\n\tproposals: Map<string, WorkItemDomainActionProposal>;\n\tpolicies: Map<string, WorkItemDomainActionAdmissionPolicy>;\n\tdecisions: Map<string, WorkItemDomainActionAdmissionDecision>;\n\tadmissionsById: Map<string, WorkItemDomainActionAdmission>;\n\tadmissionsByProposal: Map<string, WorkItemDomainActionAdmission>;\n\tterminalDecisionIds: Set<string>;\n\tissueKeys: Set<string>;\n\tstatusSeq: number;\n\tissueSeq: number;\n\tauditSeq: number;\n}\n\ninterface WorkItemEffectRunViewsState {\n\tpendingEffectRequests: Map<string, WorkItemEffectRequested>;\n\tsettledRequestIds: Set<string>;\n\tissues: DataIssue[];\n\taudit: AgentRuntimeAuditRecord[];\n}\n\ninterface WorkItemEvidenceViewsState {\n\tevidenceByWorkItem: Map<string, WorkItemEvidenceRecorded[]>;\n\tlatestEvidenceByEffectRun: Map<string, WorkItemEvidenceRecorded>;\n\tpendingEffectRequests: Map<string, WorkItemEffectRequested>;\n\tsettledEffectRunIds: Set<string>;\n\tsettledRequestIds: Set<string>;\n\tissues: DataIssue[];\n\taudit: AgentRuntimeAuditRecord[];\n}\n\ninterface WorkItemDomainActionProposalViewsState {\n\tproposalsByWorkItem: Map<string, WorkItemDomainActionProposal[]>;\n\tproposalsByEvidence: Map<string, WorkItemDomainActionProposal[]>;\n\tissues: DataIssue[];\n\taudit: AgentRuntimeAuditRecord[];\n}\n\ninterface WorkItemDomainActionAdmissionViewsState {\n\tadmissionsByProposal: Map<string, WorkItemDomainActionAdmission>;\n\tadmissionsByWorkItem: Map<string, WorkItemDomainActionAdmission[]>;\n\tissues: DataIssue[];\n\taudit: AgentRuntimeAuditRecord[];\n}\n\ninterface WorkItemMappingPolicyContext {\n\treadonly policyRefs: readonly SourceRef[];\n\treadonly effectKind?: string;\n}\n\nfunction mapEffectRunResultToWorkItemEvidence(\n\tctx: Ctx,\n\tstate: WorkItemEvidenceState,\n\tresult: EffectRunResult,\n\trecordedAtMs: number,\n): void {\n\tconst run = state.effectRuns.get(result.effectRunId);\n\tif (run === undefined) {\n\t\temitWorkItemEvidenceIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`unknown-effect-run:${result.resultId}`,\n\t\t\t\"unknown-effect-run-result\",\n\t\t\t`EffectRunResult '${result.resultId}' references unknown EffectRun '${result.effectRunId}'`,\n\t\t\tresult.effectRunId,\n\t\t\tresult.sourceRefs,\n\t\t);\n\t\treturn;\n\t}\n\tconst staleEffectRunRef = (result.sourceRefs ?? []).find(\n\t\t(sourceRef) => sourceRef.kind === \"effect-run\" && sourceRef.id !== result.effectRunId,\n\t);\n\tif (staleEffectRunRef !== undefined) {\n\t\temitWorkItemEvidenceIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`stale-effect-run-ref:${result.resultId}`,\n\t\t\t\"stale-effect-run-source-ref\",\n\t\t\t`EffectRunResult '${result.resultId}' carries a stale EffectRun source ref '${staleEffectRunRef.id}'`,\n\t\t\tresult.effectRunId,\n\t\t\tresult.sourceRefs,\n\t\t);\n\t\treturn;\n\t}\n\tconst runWorkItemRef = singleWorkItemRef([...(run.subjectRefs ?? []), ...(run.sourceRefs ?? [])]);\n\tconst resultWorkItemRefs = distinctWorkItemRefs([\n\t\t...(result.subjectRefs ?? []),\n\t\t...(result.sourceRefs ?? []),\n\t]);\n\tif (resultWorkItemRefs.length > 1) {\n\t\temitWorkItemEvidenceIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`ambiguous-work-item-ref:${result.resultId}`,\n\t\t\t\"stale-work-item-source-ref\",\n\t\t\t`EffectRunResult '${result.resultId}' carries multiple WorkItem refs`,\n\t\t\tresultWorkItemRefs[0]?.id,\n\t\t\tworkItemResultRefs(result),\n\t\t);\n\t\treturn;\n\t}\n\tconst resultWorkItemRef = resultWorkItemRefs[0];\n\tif (\n\t\trunWorkItemRef !== undefined &&\n\t\tresultWorkItemRef !== undefined &&\n\t\trunWorkItemRef.id !== resultWorkItemRef.id\n\t) {\n\t\temitWorkItemEvidenceIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`stale-work-item-ref:${result.resultId}`,\n\t\t\t\"stale-work-item-source-ref\",\n\t\t\t`EffectRunResult '${result.resultId}' WorkItem ref '${resultWorkItemRef.id}' does not match EffectRun '${result.effectRunId}'`,\n\t\t\tresultWorkItemRef.id,\n\t\t\tworkItemResultRefs(result),\n\t\t);\n\t\treturn;\n\t}\n\tconst workItemId =\n\t\tresultWorkItemRef?.id ?? runWorkItemRef?.id ?? state.effectRunWorkItems.get(result.effectRunId);\n\tif (workItemId === undefined) {\n\t\temitWorkItemEvidenceIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`missing-work-item-ref:${result.resultId}`,\n\t\t\t\"missing-work-item-source-ref\",\n\t\t\t`EffectRunResult '${result.resultId}' cannot be mapped without a WorkItem source ref`,\n\t\t\tresult.effectRunId,\n\t\t\tworkItemResultRefs(result),\n\t\t);\n\t\treturn;\n\t}\n\tif (!state.workItems.has(workItemId)) {\n\t\temitWorkItemEvidenceIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`unknown-work-item:${result.resultId}`,\n\t\t\t\"unknown-work-item-evidence-target\",\n\t\t\t`EffectRunResult '${result.resultId}' references unseeded WorkItem '${workItemId}'`,\n\t\t\tworkItemId,\n\t\t\tworkItemResultRefs(result),\n\t\t);\n\t\treturn;\n\t}\n\tconst request = state.requestsByEffectRun.get(result.effectRunId);\n\tconst ambiguousRequests = state.ambiguousRequestsByEffectRun.get(result.effectRunId);\n\tif (ambiguousRequests !== undefined) {\n\t\tconst refs = uniqueSourceRefs([\n\t\t\t...workItemResultRefs(result),\n\t\t\t...ambiguousRequests.flatMap(workItemEffectRequestRefs),\n\t\t]);\n\t\temitWorkItemEvidenceIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`ambiguous-effect-request:${result.effectRunId}:${result.resultId}`,\n\t\t\t\"duplicate-work-item-effect-request\",\n\t\t\t`EffectRun '${result.effectRunId}' has ambiguous WorkItemEffectRequested facts`,\n\t\t\tworkItemId,\n\t\t\trefs,\n\t\t);\n\t\tclearPendingWorkItemEffectRequestsForRun(state, result.effectRunId);\n\t\treturn;\n\t}\n\tconst policyIssue = workItemMappingPolicyIssue(state, request, run);\n\tif (policyIssue !== undefined) {\n\t\temitWorkItemEvidenceIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`${policyIssue.code}:${result.resultId}`,\n\t\t\tpolicyIssue.code,\n\t\t\tpolicyIssue.message,\n\t\t\tworkItemId,\n\t\t\tworkItemMappingPolicyIssueRefs(result, run, request),\n\t\t);\n\t\tclearPendingWorkItemEffectRequestsForRun(state, result.effectRunId);\n\t\treturn;\n\t}\n\tif (state.latestEvidenceByEffectRun.has(result.effectRunId)) {\n\t\temitWorkItemEvidenceIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`duplicate-evidence:${result.effectRunId}:${result.resultId}`,\n\t\t\t\"duplicate-work-item-evidence\",\n\t\t\t`EffectRun '${result.effectRunId}' already recorded WorkItem evidence`,\n\t\t\tworkItemId,\n\t\t\tworkItemResultRefs(result),\n\t\t);\n\t\treturn;\n\t}\n\tconst evidence = workItemEvidenceFromResult(result, run, workItemId, request, recordedAtMs);\n\tconst byWorkItem = state.evidenceByWorkItem.get(workItemId) ?? [];\n\tbyWorkItem.push(evidence);\n\tstate.evidenceByWorkItem.set(workItemId, byWorkItem);\n\tstate.latestEvidenceByEffectRun.set(result.effectRunId, evidence);\n\tclearPendingWorkItemEffectRequestsForRun(state, result.effectRunId);\n\tstate.statusSeq += 1;\n\tstate.auditSeq += 1;\n\tconst refs = evidence.sourceRefs;\n\tconst status: WorkItemStatusRecord = {\n\t\tkind: \"work-item-status\",\n\t\tstatusId: `${workItemId}:evidence-recorded:${state.statusSeq}`,\n\t\tworkItemId,\n\t\tstate: \"evidence-recorded\",\n\t\tsourceRefs: refs,\n\t\teffectRunId: result.effectRunId,\n\t\tevidenceId: evidence.evidenceId,\n\t\tissues: result.issues,\n\t\tmetadata: { resultStatus: result.status },\n\t};\n\tconst audit: AgentRuntimeAuditRecord = {\n\t\tid: `${workItemId}:evidence-recorded:${state.auditSeq}`,\n\t\tkind: \"work-item-evidence-recorded\",\n\t\tsubjectId: workItemId,\n\t\tsourceRefs: refs,\n\t\tmetadata: {\n\t\t\teffectRunId: result.effectRunId,\n\t\t\teffectRunResultId: result.resultId,\n\t\t\tresultStatus: result.status,\n\t\t},\n\t};\n\tstate.audit.push(audit);\n\tctx.down([\n\t\t[\"DATA\", { kind: \"evidence\", evidence } satisfies WorkItemEvidenceMapperFact],\n\t\t[\"DATA\", { kind: \"status\", status } satisfies WorkItemEvidenceMapperFact],\n\t\t[\"DATA\", { kind: \"audit\", audit } satisfies WorkItemEvidenceMapperFact],\n\t]);\n}\n\nfunction evaluateWorkItemDomainActionProposals(\n\tctx: Ctx,\n\tstate: WorkItemDomainActionProposalState,\n\tproposedAtMs: number,\n): void {\n\tfor (const evidence of state.evidence.values()) {\n\t\tconst result = state.results.get(evidence.effectRunResultId);\n\t\tif (result === undefined) {\n\t\t\temitWorkItemActionProposalIssue(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\t`missing-action-proposal-result:${evidence.evidenceId}:${evidence.effectRunResultId}`,\n\t\t\t\t\"missing-work-item-action-proposal-result\",\n\t\t\t\t`WorkItemEvidenceRecorded '${evidence.evidenceId}' references missing EffectRunResult '${evidence.effectRunResultId}'`,\n\t\t\t\tevidence.workItemId,\n\t\t\t\tworkItemEvidenceOnlyRefs(evidence),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (result.effectRunId !== evidence.effectRunId || result.status !== evidence.status) {\n\t\t\temitWorkItemActionProposalIssue(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\t`stale-action-proposal-result:${evidence.evidenceId}:${result.resultId}`,\n\t\t\t\t\"stale-work-item-action-proposal-result\",\n\t\t\t\t`WorkItemEvidenceRecorded '${evidence.evidenceId}' does not match EffectRunResult '${result.resultId}'`,\n\t\t\t\tevidence.workItemId,\n\t\t\t\tworkItemActionProposalRefs(evidence, result),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (!state.workItems.has(evidence.workItemId)) {\n\t\t\temitWorkItemActionProposalIssue(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\t`unknown-action-proposal-work-item:${evidence.evidenceId}`,\n\t\t\t\t\"unknown-work-item-action-proposal-target\",\n\t\t\t\t`WorkItemEvidenceRecorded '${evidence.evidenceId}' references unseeded WorkItem '${evidence.workItemId}'`,\n\t\t\t\tevidence.workItemId,\n\t\t\t\tworkItemActionProposalRefs(evidence, result),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tconst policyIds = referencedWorkItemMappingPolicyIds(evidence);\n\t\tfor (const policyId of policyIds) {\n\t\t\tconst policy = state.policies.get(policyId);\n\t\t\tif (policy === undefined) {\n\t\t\t\temitWorkItemActionProposalIssue(\n\t\t\t\t\tctx,\n\t\t\t\t\tstate,\n\t\t\t\t\t`missing-action-proposal-policy:${evidence.evidenceId}:${policyId}`,\n\t\t\t\t\t\"missing-work-item-action-proposal-policy\",\n\t\t\t\t\t`WorkItemEffectMappingPolicy '${policyId}' was referenced for WorkItem action proposals but not present`,\n\t\t\t\t\tevidence.workItemId,\n\t\t\t\t\tworkItemActionProposalRefs(evidence, result),\n\t\t\t\t);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst effectKind =\n\t\t\t\teffectKindFromMetadata(evidence.metadata) ?? effectKindFromMetadata(result.metadata);\n\t\t\tif (!policyAppliesToRequest(policy, effectKind)) {\n\t\t\t\temitWorkItemActionProposalIssue(\n\t\t\t\t\tctx,\n\t\t\t\t\tstate,\n\t\t\t\t\t`action-proposal-policy-mismatch:${evidence.evidenceId}:${policy.policyId}`,\n\t\t\t\t\t\"work-item-action-proposal-policy-mismatch\",\n\t\t\t\t\t`WorkItemEffectMappingPolicy '${policy.policyId}' does not apply to effectKind '${effectKind ?? \"unknown\"}'`,\n\t\t\t\t\tevidence.workItemId,\n\t\t\t\t\tworkItemActionProposalRefs(evidence, result, policy),\n\t\t\t\t);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (const [index, spec] of (policy.actionProposals ?? []).entries()) {\n\t\t\t\temitWorkItemDomainActionProposal(\n\t\t\t\t\tctx,\n\t\t\t\t\tstate,\n\t\t\t\t\tevidence,\n\t\t\t\t\tresult,\n\t\t\t\t\tpolicy,\n\t\t\t\t\tspec,\n\t\t\t\t\tindex,\n\t\t\t\t\tproposedAtMs,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction emitWorkItemDomainActionProposal(\n\tctx: Ctx,\n\tstate: WorkItemDomainActionProposalState,\n\tevidence: WorkItemEvidenceRecorded,\n\tresult: EffectRunResult,\n\tpolicy: WorkItemEffectMappingPolicy,\n\tspec: WorkItemDomainActionProposalSpec,\n\tindex: number,\n\tproposedAtMs: number,\n): void {\n\tconst key = `${evidence.evidenceId}:${policy.policyId}:${index}:${spec.actionKind}`;\n\tif (state.proposedKeys.has(key)) return;\n\tif (spec.behavior !== undefined && spec.behavior !== \"propose\") {\n\t\temitWorkItemActionProposalIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`unsupported-action-proposal-behavior:${key}`,\n\t\t\t\"unsupported-work-item-action-proposal-behavior\",\n\t\t\t`WorkItemEffectMappingPolicy '${policy.policyId}' uses unsupported action proposal behavior '${spec.behavior}'`,\n\t\t\tevidence.workItemId,\n\t\t\tworkItemActionProposalRefs(evidence, result, policy),\n\t\t);\n\t\treturn;\n\t}\n\tif (spec.actionKind.length === 0) {\n\t\temitWorkItemActionProposalIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`malformed-action-proposal:${key}`,\n\t\t\t\"malformed-work-item-action-proposal\",\n\t\t\t`WorkItemEffectMappingPolicy '${policy.policyId}' has an empty actionKind`,\n\t\t\tevidence.workItemId,\n\t\t\tworkItemActionProposalRefs(evidence, result, policy),\n\t\t);\n\t\treturn;\n\t}\n\tif (spec.statuses !== undefined && !spec.statuses.includes(evidence.status)) return;\n\tconst outputKind = evidence.output?.kind;\n\tif (\n\t\tspec.outputKinds !== undefined &&\n\t\t(outputKind === undefined || !spec.outputKinds.includes(outputKind))\n\t)\n\t\treturn;\n\tstate.proposedKeys.add(key);\n\tstate.statusSeq += 1;\n\tstate.auditSeq += 1;\n\tconst proposal: WorkItemDomainActionProposal = {\n\t\tkind: \"work-item-domain-action-proposal\",\n\t\tproposalId: `${evidence.workItemId}:${evidence.effectRunId}:${evidence.effectRunResultId}:${policy.policyId}:${index}:${spec.actionKind}`,\n\t\tworkItemId: evidence.workItemId,\n\t\tactionKind: spec.actionKind,\n\t\teffectRunId: evidence.effectRunId,\n\t\teffectRunResultId: evidence.effectRunResultId,\n\t\tevidenceId: evidence.evidenceId,\n\t\tpolicyId: policy.policyId,\n\t\tpayload: workItemActionProposalPayload(spec, evidence, result),\n\t\treason: spec.reason ?? evidence.reason ?? resultReason(result),\n\t\tsourceRefs: workItemActionProposalRefs(evidence, result, policy),\n\t\tproposedAtMs,\n\t\tmetadata: {\n\t\t\t...(policy.metadata ?? {}),\n\t\t\t...(spec.metadata ?? {}),\n\t\t\tresultStatus: evidence.status,\n\t\t},\n\t};\n\tconst status: WorkItemStatusRecord = {\n\t\tkind: \"work-item-status\",\n\t\tstatusId: `${evidence.workItemId}:domain-action-proposed:${state.statusSeq}`,\n\t\tworkItemId: evidence.workItemId,\n\t\tstate: \"domain-action-proposed\",\n\t\tsourceRefs: proposal.sourceRefs,\n\t\teffectRunId: evidence.effectRunId,\n\t\tevidenceId: evidence.evidenceId,\n\t\tproposalId: proposal.proposalId,\n\t\tmetadata: { actionKind: spec.actionKind, policyId: policy.policyId },\n\t};\n\tconst audit: AgentRuntimeAuditRecord = {\n\t\tid: `${evidence.workItemId}:domain-action-proposed:${state.auditSeq}`,\n\t\tkind: \"work-item-domain-action-proposed\",\n\t\tsubjectId: evidence.workItemId,\n\t\tsourceRefs: proposal.sourceRefs,\n\t\tmetadata: {\n\t\t\tactionKind: spec.actionKind,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t\teffectRunResultId: evidence.effectRunResultId,\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\tpolicyId: policy.policyId,\n\t\t\tproposalId: proposal.proposalId,\n\t\t},\n\t};\n\tctx.down([\n\t\t[\"DATA\", { kind: \"proposal\", proposal } satisfies WorkItemDomainActionProposalFact],\n\t\t[\"DATA\", { kind: \"status\", status } satisfies WorkItemDomainActionProposalFact],\n\t\t[\"DATA\", { kind: \"audit\", audit } satisfies WorkItemDomainActionProposalFact],\n\t]);\n}\n\nfunction evaluateWorkItemDomainActionAdmissions(\n\tctx: Ctx,\n\tstate: WorkItemDomainActionAdmissionStateInternal,\n\tadmittedAtMs: number,\n): void {\n\tlet emitted = true;\n\tlet passes = 0;\n\twhile (emitted && passes <= state.decisions.size) {\n\t\temitted = false;\n\t\tpasses += 1;\n\t\tfor (const decision of state.decisions.values()) {\n\t\t\tif (state.terminalDecisionIds.has(decision.decisionId)) continue;\n\t\t\temitted =\n\t\t\t\tevaluateWorkItemDomainActionAdmission(ctx, state, decision, admittedAtMs) || emitted;\n\t\t}\n\t}\n}\n\nfunction evaluateWorkItemDomainActionAdmission(\n\tctx: Ctx,\n\tstate: WorkItemDomainActionAdmissionStateInternal,\n\tdecision: WorkItemDomainActionAdmissionDecision,\n\tadmittedAtMs: number,\n): boolean {\n\tconst proposal = state.proposals.get(decision.proposalId);\n\tconst proposalRefs = workItemAdmissionDecisionRefs(decision, proposal);\n\tconst subjectId = proposal?.workItemId ?? decision.proposalId;\n\tif (proposal === undefined) {\n\t\temitWorkItemAdmissionIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`missing-admission-proposal:${decision.decisionId}:${decision.proposalId}`,\n\t\t\t\"missing-work-item-domain-action-admission-proposal\",\n\t\t\t`WorkItemDomainActionAdmissionDecision '${decision.decisionId}' references missing proposal '${decision.proposalId}'`,\n\t\t\tsubjectId,\n\t\t\tproposalRefs,\n\t\t);\n\t\treturn false;\n\t}\n\tconst staleProposalRef = (decision.sourceRefs ?? []).find(\n\t\t(sourceRef) =>\n\t\t\tsourceRef.kind === \"work-item-domain-action-proposal\" &&\n\t\t\tsourceRef.id !== decision.proposalId &&\n\t\t\tsourceRef.id !== decision.targetProposalId,\n\t);\n\tif (staleProposalRef !== undefined) {\n\t\temitWorkItemAdmissionIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`stale-admission-proposal-ref:${decision.decisionId}:${staleProposalRef.id}`,\n\t\t\t\"stale-work-item-domain-action-admission-proposal-ref\",\n\t\t\t`WorkItemDomainActionAdmissionDecision '${decision.decisionId}' carries stale proposal ref '${staleProposalRef.id}'`,\n\t\t\tproposal.workItemId,\n\t\t\tproposalRefs,\n\t\t);\n\t\tstate.terminalDecisionIds.add(decision.decisionId);\n\t\treturn false;\n\t}\n\tconst policy = admissionPolicyForDecision(state, decision);\n\tif (typeof policy === \"string\") {\n\t\temitWorkItemAdmissionIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`${policy}:${decision.decisionId}:${decision.policyId ?? \"missing\"}`,\n\t\t\tpolicy,\n\t\t\tadmissionPolicyIssueMessage(policy, decision),\n\t\t\tproposal.workItemId,\n\t\t\tproposalRefs,\n\t\t);\n\t\tif (policy === \"stale-work-item-domain-action-admission-policy-ref\")\n\t\t\tstate.terminalDecisionIds.add(decision.decisionId);\n\t\treturn false;\n\t}\n\tif (policy !== undefined) {\n\t\tconst policyIssue = validateWorkItemAdmissionPolicy(policy, decision, proposal);\n\t\tif (policyIssue !== undefined) {\n\t\t\temitWorkItemAdmissionIssue(\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\tpolicyIssue.code,\n\t\t\t\tpolicyIssue.message,\n\t\t\t\tproposal.workItemId,\n\t\t\t\tworkItemAdmissionDecisionRefs(decision, proposal, policy),\n\t\t\t);\n\t\t\treturn false;\n\t\t}\n\t}\n\tconst mergeIssue = validateWorkItemAdmissionMergeTarget(state, decision);\n\tif (mergeIssue !== undefined) {\n\t\temitWorkItemAdmissionIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`${mergeIssue.code}:${decision.decisionId}:${decision.targetProposalId ?? \"\"}:${decision.targetAdmissionId ?? \"\"}`,\n\t\t\tmergeIssue.code,\n\t\t\tmergeIssue.message,\n\t\t\tproposal.workItemId,\n\t\t\tproposalRefs,\n\t\t);\n\t\tif (mergeIssue.code !== \"unknown-work-item-domain-action-admission-merge-target\")\n\t\t\tstate.terminalDecisionIds.add(decision.decisionId);\n\t\treturn false;\n\t}\n\tif (state.admissionsById.has(decision.admissionId)) {\n\t\temitWorkItemAdmissionIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`duplicate-admission-id:${decision.admissionId}`,\n\t\t\t\"duplicate-work-item-domain-action-admission\",\n\t\t\t`WorkItemDomainActionAdmission '${decision.admissionId}' was already emitted`,\n\t\t\tproposal.workItemId,\n\t\t\tproposalRefs,\n\t\t);\n\t\tstate.terminalDecisionIds.add(decision.decisionId);\n\t\treturn false;\n\t}\n\tif (state.admissionsByProposal.has(decision.proposalId)) {\n\t\temitWorkItemAdmissionIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`duplicate-admission-proposal-decision:${decision.proposalId}:${decision.decisionId}`,\n\t\t\t\"duplicate-work-item-domain-action-admission-proposal\",\n\t\t\t`WorkItemDomainActionProposal '${decision.proposalId}' already has an admission decision`,\n\t\t\tproposal.workItemId,\n\t\t\tproposalRefs,\n\t\t);\n\t\tstate.terminalDecisionIds.add(decision.decisionId);\n\t\treturn false;\n\t}\n\tconst admissionState = admissionStateForOutcome(decision.outcome);\n\tif (admissionState === undefined) {\n\t\temitWorkItemAdmissionIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`unsupported-admission-outcome:${decision.decisionId}:${String(decision.outcome)}`,\n\t\t\t\"unsupported-work-item-domain-action-admission-outcome\",\n\t\t\t`WorkItemDomainActionAdmissionDecision '${decision.decisionId}' uses unsupported outcome '${String(decision.outcome)}'`,\n\t\t\tproposal.workItemId,\n\t\t\tproposalRefs,\n\t\t);\n\t\tstate.terminalDecisionIds.add(decision.decisionId);\n\t\treturn false;\n\t}\n\tconst admission: WorkItemDomainActionAdmission = {\n\t\tkind: \"work-item-domain-action-admission\",\n\t\tadmissionId: decision.admissionId,\n\t\tproposalId: proposal.proposalId,\n\t\tworkItemId: proposal.workItemId,\n\t\tactionKind: proposal.actionKind,\n\t\tstate: admissionState,\n\t\tdecisionId: decision.decisionId,\n\t\tpolicyId: decision.policyId,\n\t\treason: decision.reason,\n\t\ttargetProposalId: decision.targetProposalId,\n\t\ttargetAdmissionId: decision.targetAdmissionId,\n\t\tsourceRefs: workItemAdmissionDecisionRefs(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\tstate.statusSeq += 1;\n\tstate.auditSeq += 1;\n\tconst statusState = workItemAdmissionStatusState(admission.state);\n\tconst status: WorkItemStatusRecord = {\n\t\tkind: \"work-item-status\",\n\t\tstatusId: `${proposal.workItemId}:${statusState}:${state.statusSeq}`,\n\t\tworkItemId: proposal.workItemId,\n\t\tstate: statusState,\n\t\tsourceRefs: admission.sourceRefs,\n\t\teffectRunId: proposal.effectRunId,\n\t\tevidenceId: proposal.evidenceId,\n\t\tproposalId: proposal.proposalId,\n\t\tmetadata: {\n\t\t\tactionKind: proposal.actionKind,\n\t\t\tadmissionId: admission.admissionId,\n\t\t\tdecisionId: decision.decisionId,\n\t\t\tpolicyId: decision.policyId,\n\t\t},\n\t};\n\tconst audit: AgentRuntimeAuditRecord = {\n\t\tid: `${proposal.workItemId}:${statusState}:${state.auditSeq}`,\n\t\tkind: `work-item-domain-action-${admission.state}`,\n\t\tsubjectId: proposal.workItemId,\n\t\tsourceRefs: admission.sourceRefs,\n\t\tmetadata: {\n\t\t\tactionKind: proposal.actionKind,\n\t\t\tadmissionId: admission.admissionId,\n\t\t\tdecisionId: decision.decisionId,\n\t\t\tpolicyId: decision.policyId,\n\t\t\tproposalId: proposal.proposalId,\n\t\t},\n\t};\n\tctx.down([\n\t\t[\"DATA\", { kind: \"admission\", admission } satisfies WorkItemDomainActionAdmissionFact],\n\t\t[\"DATA\", { kind: \"status\", status } satisfies WorkItemDomainActionAdmissionFact],\n\t\t[\"DATA\", { kind: \"audit\", audit } satisfies WorkItemDomainActionAdmissionFact],\n\t]);\n\treturn true;\n}\n\nfunction workItemEvidenceFromResult(\n\tresult: EffectRunResult,\n\trun: EffectRun,\n\tworkItemId: string,\n\trequest: WorkItemEffectRequested | undefined,\n\trecordedAtMs: number,\n): WorkItemEvidenceRecorded {\n\tconst base = {\n\t\tkind: \"work-item-evidence-recorded\",\n\t\tevidenceId: `${workItemId}:${result.effectRunId}:${result.resultId}`,\n\t\tworkItemId,\n\t\trequestId: request?.requestId,\n\t\teffectRunId: result.effectRunId,\n\t\teffectRunResultId: result.resultId,\n\t\texecutionInputRevision: request?.executionInputRevision,\n\t\tplanId: request?.planId,\n\t\tplanMemberId: request?.planMemberId,\n\t\tstatus: result.status,\n\t\tsourceRefs: uniqueSourceRefs([\n\t\t\tref(\"work-item\", workItemId),\n\t\t\tref(\"effect-run\", result.effectRunId),\n\t\t\tref(\"effect-run-result\", result.resultId),\n\t\t\t...(run.sourceRefs ?? []),\n\t\t\t...(run.subjectRefs ?? []),\n\t\t\t...(run.policyRefs ?? []),\n\t\t\t...(result.sourceRefs ?? []),\n\t\t\t...(result.subjectRefs ?? []),\n\t\t]),\n\t\tissues: result.issues,\n\t\tauditRefs: result.auditRefs,\n\t\trecordedAtMs,\n\t\tmetadata: {\n\t\t\t...(result.metadata ?? {}),\n\t\t\t...(request?.requestId === undefined ? {} : { requestId: request.requestId }),\n\t\t\t...(request?.executionInputRevision === undefined\n\t\t\t\t? {}\n\t\t\t\t: { executionInputRevision: request.executionInputRevision }),\n\t\t\t...(request?.planId === undefined ? {} : { planId: request.planId }),\n\t\t\t...(request?.planMemberId === undefined ? {} : { planMemberId: request.planMemberId }),\n\t\t},\n\t} satisfies Omit<WorkItemEvidenceRecorded, \"output\" | \"error\" | \"needs\" | \"reason\" | \"timeoutMs\">;\n\tif (result.status === \"completed\") return { ...base, output: result.output };\n\tif (result.status === \"failed\") return { ...base, error: result.error };\n\tif (result.status === \"blocked\") return { ...base, needs: result.needs };\n\tif (result.status === \"timeout\") return { ...base, timeoutMs: result.timeoutMs };\n\tif (result.status === \"canceled\" || result.status === \"waived\")\n\t\treturn { ...base, reason: result.reason };\n\treturn base;\n}\n\nfunction workItemMappingPolicyIssue(\n\tstate: WorkItemEvidenceState,\n\trequest: WorkItemEffectRequested | undefined,\n\trun: EffectRun,\n): { readonly code: string; readonly message: string } | undefined {\n\tconst context = workItemMappingPolicyContext(request, run);\n\tconst referencedPolicyIds = context.policyRefs\n\t\t.filter((sourceRef) => sourceRef.kind === \"work-item-effect-mapping-policy\")\n\t\t.map((sourceRef) => sourceRef.id);\n\tfor (const policyId of referencedPolicyIds) {\n\t\tconst policy = state.policies.get(policyId);\n\t\tif (policy === undefined) {\n\t\t\treturn {\n\t\t\t\tcode: \"missing-work-item-effect-mapping-policy\",\n\t\t\t\tmessage: `WorkItemEffectMappingPolicy '${policyId}' was required but not present`,\n\t\t\t};\n\t\t}\n\t\tconst issue = validateWorkItemMappingPolicy(policy, context.effectKind);\n\t\tif (issue !== undefined) return issue;\n\t}\n\treturn undefined;\n}\n\nfunction validateWorkItemMappingPolicy(\n\tpolicy: WorkItemEffectMappingPolicy,\n\teffectKind: string | undefined,\n): { readonly code: string; readonly message: string } | undefined {\n\tif (!policyAppliesToRequest(policy, effectKind)) {\n\t\treturn {\n\t\t\tcode: \"work-item-effect-mapping-policy-mismatch\",\n\t\t\tmessage: `WorkItemEffectMappingPolicy '${policy.policyId}' does not apply to effectKind '${effectKind ?? \"unknown\"}'`,\n\t\t};\n\t}\n\tconst behavior = policy.evidence?.behavior ?? \"record\";\n\tif (behavior !== \"record\") {\n\t\treturn {\n\t\t\tcode: \"unsupported-work-item-evidence-behavior\",\n\t\t\tmessage: `WorkItemEffectMappingPolicy '${policy.policyId}' uses unsupported evidence behavior '${behavior}'`,\n\t\t};\n\t}\n\treturn undefined;\n}\n\nfunction admissionPolicyForDecision(\n\tstate: WorkItemDomainActionAdmissionStateInternal,\n\tdecision: WorkItemDomainActionAdmissionDecision,\n):\n\t| WorkItemDomainActionAdmissionPolicy\n\t| \"missing-work-item-domain-action-admission-policy\"\n\t| \"stale-work-item-domain-action-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 === \"work-item-domain-action-admission-policy\" &&\n\t\t\tsourceRef.id !== decision.policyId,\n\t);\n\tif (stalePolicyRef !== undefined) return \"stale-work-item-domain-action-admission-policy-ref\";\n\treturn (\n\t\tstate.policies.get(decision.policyId) ?? \"missing-work-item-domain-action-admission-policy\"\n\t);\n}\n\nfunction admissionPolicyIssueMessage(\n\tcode:\n\t\t| \"missing-work-item-domain-action-admission-policy\"\n\t\t| \"stale-work-item-domain-action-admission-policy-ref\",\n\tdecision: WorkItemDomainActionAdmissionDecision,\n): string {\n\tif (code === \"missing-work-item-domain-action-admission-policy\") {\n\t\treturn `WorkItemDomainActionAdmissionPolicy '${decision.policyId}' was referenced for WorkItem action admission but not present`;\n\t}\n\treturn `WorkItemDomainActionAdmissionDecision '${decision.decisionId}' carries a stale admission policy source ref`;\n}\n\nfunction validateWorkItemAdmissionPolicy(\n\tpolicy: WorkItemDomainActionAdmissionPolicy,\n\tdecision: WorkItemDomainActionAdmissionDecision,\n\tproposal: WorkItemDomainActionProposal,\n): { readonly code: string; readonly message: string } | undefined {\n\tif (policy.actionKinds !== undefined && !policy.actionKinds.includes(proposal.actionKind)) {\n\t\treturn {\n\t\t\tcode: \"work-item-domain-action-admission-policy-mismatch\",\n\t\t\tmessage: `WorkItemDomainActionAdmissionPolicy '${policy.policyId}' does not apply to actionKind '${proposal.actionKind}'`,\n\t\t};\n\t}\n\tif (policy.allowedOutcomes !== undefined && !policy.allowedOutcomes.includes(decision.outcome)) {\n\t\treturn {\n\t\t\tcode: \"unsupported-work-item-domain-action-admission-outcome\",\n\t\t\tmessage: `WorkItemDomainActionAdmissionPolicy '${policy.policyId}' does not allow outcome '${decision.outcome}'`,\n\t\t};\n\t}\n\treturn undefined;\n}\n\nfunction validateWorkItemAdmissionMergeTarget(\n\tstate: WorkItemDomainActionAdmissionStateInternal,\n\tdecision: WorkItemDomainActionAdmissionDecision,\n): { readonly code: string; readonly message: string } | undefined {\n\tconst hasTargetProposal = decision.targetProposalId !== undefined;\n\tconst hasTargetAdmission = decision.targetAdmissionId !== undefined;\n\tif (decision.outcome !== \"merge\") {\n\t\tif (hasTargetProposal || hasTargetAdmission) {\n\t\t\treturn {\n\t\t\t\tcode: \"ambiguous-work-item-domain-action-admission-merge-target\",\n\t\t\t\tmessage: `WorkItemDomainActionAdmissionDecision '${decision.decisionId}' carries a merge target for non-merge outcome '${decision.outcome}'`,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t}\n\tif (hasTargetProposal === hasTargetAdmission) {\n\t\treturn {\n\t\t\tcode: \"ambiguous-work-item-domain-action-admission-merge-target\",\n\t\t\tmessage: `WorkItemDomainActionAdmissionDecision '${decision.decisionId}' must reference exactly one merge target`,\n\t\t};\n\t}\n\tif (decision.targetProposalId === decision.proposalId) {\n\t\treturn {\n\t\t\tcode: \"ambiguous-work-item-domain-action-admission-merge-target\",\n\t\t\tmessage: `WorkItemDomainActionAdmissionDecision '${decision.decisionId}' cannot merge a proposal into itself`,\n\t\t};\n\t}\n\tif (decision.targetProposalId !== undefined && !state.proposals.has(decision.targetProposalId)) {\n\t\treturn {\n\t\t\tcode: \"unknown-work-item-domain-action-admission-merge-target\",\n\t\t\tmessage: `WorkItemDomainActionAdmissionDecision '${decision.decisionId}' references unknown target proposal '${decision.targetProposalId}'`,\n\t\t};\n\t}\n\tif (\n\t\tdecision.targetAdmissionId !== undefined &&\n\t\t!state.admissionsById.has(decision.targetAdmissionId)\n\t) {\n\t\treturn {\n\t\t\tcode: \"unknown-work-item-domain-action-admission-merge-target\",\n\t\t\tmessage: `WorkItemDomainActionAdmissionDecision '${decision.decisionId}' references unknown target admission '${decision.targetAdmissionId}'`,\n\t\t};\n\t}\n\treturn undefined;\n}\n\nfunction admissionStateForOutcome(\n\toutcome: WorkItemDomainActionAdmissionOutcome,\n): WorkItemDomainActionAdmissionState | undefined {\n\tif (outcome === \"admit\") return \"admitted\";\n\tif (outcome === \"reject\") return \"rejected\";\n\tif (outcome === \"defer\") return \"deferred\";\n\tif (outcome === \"merge\") return \"merged\";\n\treturn undefined;\n}\n\nfunction workItemAdmissionStatusState(\n\tstate: WorkItemDomainActionAdmissionState,\n): WorkItemStatusRecord[\"state\"] {\n\tif (state === \"admitted\") return \"domain-action-admitted\";\n\tif (state === \"rejected\") return \"domain-action-rejected\";\n\tif (state === \"deferred\") return \"domain-action-deferred\";\n\treturn \"domain-action-merged\";\n}\n\nfunction policyAppliesToRequest(\n\tpolicy: WorkItemEffectMappingPolicy,\n\teffectKind: string | undefined,\n): boolean {\n\treturn (\n\t\tpolicy.effectKinds === undefined ||\n\t\t(effectKind !== undefined && policy.effectKinds.includes(effectKind))\n\t);\n}\n\nfunction workItemMappingPolicyContext(\n\trequest: WorkItemEffectRequested | undefined,\n\trun: EffectRun,\n): WorkItemMappingPolicyContext {\n\treturn {\n\t\tpolicyRefs: request?.policyRefs ?? run.policyRefs ?? [],\n\t\teffectKind: request?.effectKind ?? effectKindFromRun(run),\n\t};\n}\n\nfunction effectKindFromRun(run: EffectRun): string | undefined {\n\tconst effectKind = run.metadata?.effectKind;\n\treturn typeof effectKind === \"string\" ? effectKind : undefined;\n}\n\nfunction workItemMappingPolicyIssueRefs(\n\tresult: EffectRunResult,\n\trun: EffectRun,\n\trequest: WorkItemEffectRequested | undefined,\n): readonly SourceRef[] {\n\treturn uniqueSourceRefs([\n\t\t...workItemResultRefs(result),\n\t\t...(request === undefined\n\t\t\t? [...(run.sourceRefs ?? []), ...(run.subjectRefs ?? []), ...(run.policyRefs ?? [])]\n\t\t\t: workItemEffectRequestRefs(request)),\n\t]);\n}\n\nfunction clearPendingWorkItemEffectRequestsForRun(\n\tstate: Pick<WorkItemEvidenceState, \"pendingEffectRequests\">,\n\teffectRunId: string,\n): void {\n\tfor (const pendingRequest of state.pendingEffectRequests.values()) {\n\t\tif (pendingRequest.effectRunId === effectRunId)\n\t\t\tstate.pendingEffectRequests.delete(pendingRequest.requestId);\n\t}\n}\n\nfunction emitWorkItemEffectRunIssue(\n\tctx: Ctx,\n\tstate: WorkItemEffectRunState,\n\tkey: string,\n\tcode: string,\n\tmessage: string,\n\tsubjectId?: string,\n\tsourceRefs?: readonly SourceRef[],\n): void {\n\tif (state.issueKeys.has(key)) return;\n\tstate.issueKeys.add(key);\n\tstate.issueSeq += 1;\n\tstate.statusSeq += 1;\n\tstate.auditSeq += 1;\n\tconst issue = dataIssue(code, message, { subjectId, refs: sourceRefs });\n\tconst status: WorkItemStatusRecord = {\n\t\tkind: \"work-item-status\",\n\t\tstatusId: `${subjectId ?? \"work-item\"}:mapping-issue:${state.statusSeq}`,\n\t\tworkItemId: subjectId ?? \"unknown\",\n\t\tstate: \"mapping-issue\",\n\t\tsourceRefs,\n\t\tissues: [issue],\n\t};\n\tconst audit: AgentRuntimeAuditRecord = {\n\t\tid: `${subjectId ?? \"work-item\"}:${code}:${state.auditSeq}`,\n\t\tkind: \"work-item-effect-run-issue\",\n\t\tsubjectId,\n\t\tissueCode: code,\n\t\tmessage,\n\t\tsourceRefs,\n\t};\n\tstate.issues.push(issue);\n\tstate.audit.push(audit);\n\tctx.down([\n\t\t[\"DATA\", { kind: \"issue\", issue } satisfies WorkItemEffectRunFact],\n\t\t[\"DATA\", { kind: \"status\", status } satisfies WorkItemEffectRunFact],\n\t\t[\"DATA\", { kind: \"audit\", audit } satisfies WorkItemEffectRunFact],\n\t]);\n}\n\nfunction emitWorkItemEvidenceIssue(\n\tctx: Ctx,\n\tstate: WorkItemEvidenceState,\n\tkey: string,\n\tcode: string,\n\tmessage: string,\n\tsubjectId?: string,\n\tsourceRefs?: readonly SourceRef[],\n): void {\n\tif (state.issueKeys.has(key)) return;\n\tstate.issueKeys.add(key);\n\tstate.issueSeq += 1;\n\tstate.statusSeq += 1;\n\tstate.auditSeq += 1;\n\tconst issue = dataIssue(code, message, { subjectId, refs: sourceRefs });\n\tconst status: WorkItemStatusRecord = {\n\t\tkind: \"work-item-status\",\n\t\tstatusId: `${subjectId ?? \"work-item\"}:mapping-issue:${state.statusSeq}`,\n\t\tworkItemId: subjectId ?? \"unknown\",\n\t\tstate: \"mapping-issue\",\n\t\tsourceRefs,\n\t\tissues: [issue],\n\t};\n\tconst audit: AgentRuntimeAuditRecord = {\n\t\tid: `${subjectId ?? \"work-item\"}:${code}:${state.auditSeq}`,\n\t\tkind: \"work-item-evidence-mapping-issue\",\n\t\tsubjectId,\n\t\tissueCode: code,\n\t\tmessage,\n\t\tsourceRefs,\n\t};\n\tstate.issues.push(issue);\n\tstate.audit.push(audit);\n\tctx.down([\n\t\t[\"DATA\", { kind: \"issue\", issue } satisfies WorkItemEvidenceMapperFact],\n\t\t[\"DATA\", { kind: \"status\", status } satisfies WorkItemEvidenceMapperFact],\n\t\t[\"DATA\", { kind: \"audit\", audit } satisfies WorkItemEvidenceMapperFact],\n\t]);\n}\n\nfunction emitWorkItemActionProposalIssue(\n\tctx: Ctx,\n\tstate: WorkItemDomainActionProposalState,\n\tkey: string,\n\tcode: string,\n\tmessage: string,\n\tsubjectId?: string,\n\tsourceRefs?: readonly SourceRef[],\n): void {\n\tif (state.issueKeys.has(key)) return;\n\tstate.issueKeys.add(key);\n\tstate.issueSeq += 1;\n\tstate.statusSeq += 1;\n\tstate.auditSeq += 1;\n\tconst issue = dataIssue(code, message, { subjectId, refs: sourceRefs });\n\tconst status: WorkItemStatusRecord = {\n\t\tkind: \"work-item-status\",\n\t\tstatusId: `${subjectId ?? \"work-item\"}:mapping-issue:${state.statusSeq}`,\n\t\tworkItemId: subjectId ?? \"unknown\",\n\t\tstate: \"mapping-issue\",\n\t\tsourceRefs,\n\t\tissues: [issue],\n\t};\n\tconst audit: AgentRuntimeAuditRecord = {\n\t\tid: `${subjectId ?? \"work-item\"}:${code}:${state.auditSeq}`,\n\t\tkind: \"work-item-action-proposal-issue\",\n\t\tsubjectId,\n\t\tissueCode: code,\n\t\tmessage,\n\t\tsourceRefs,\n\t};\n\tctx.down([\n\t\t[\"DATA\", { kind: \"issue\", issue } satisfies WorkItemDomainActionProposalFact],\n\t\t[\"DATA\", { kind: \"status\", status } satisfies WorkItemDomainActionProposalFact],\n\t\t[\"DATA\", { kind: \"audit\", audit } satisfies WorkItemDomainActionProposalFact],\n\t]);\n}\n\nfunction emitWorkItemAdmissionIssue(\n\tctx: Ctx,\n\tstate: WorkItemDomainActionAdmissionStateInternal,\n\tkey: string,\n\tcode: string,\n\tmessage: string,\n\tsubjectId?: string,\n\tsourceRefs?: readonly SourceRef[],\n): void {\n\tif (state.issueKeys.has(key)) return;\n\tstate.issueKeys.add(key);\n\tstate.issueSeq += 1;\n\tstate.statusSeq += 1;\n\tstate.auditSeq += 1;\n\tconst issue = dataIssue(code, message, { subjectId, refs: sourceRefs });\n\tconst status: WorkItemStatusRecord = {\n\t\tkind: \"work-item-status\",\n\t\tstatusId: `${subjectId ?? \"work-item\"}:mapping-issue:${state.statusSeq}`,\n\t\tworkItemId: subjectId ?? \"unknown\",\n\t\tstate: \"mapping-issue\",\n\t\tsourceRefs,\n\t\tissues: [issue],\n\t};\n\tconst audit: AgentRuntimeAuditRecord = {\n\t\tid: `${subjectId ?? \"work-item\"}:${code}:${state.auditSeq}`,\n\t\tkind: \"work-item-domain-action-admission-issue\",\n\t\tsubjectId,\n\t\tissueCode: code,\n\t\tmessage,\n\t\tsourceRefs,\n\t};\n\tctx.down([\n\t\t[\"DATA\", { kind: \"issue\", issue } satisfies WorkItemDomainActionAdmissionFact],\n\t\t[\"DATA\", { kind: \"status\", status } satisfies WorkItemDomainActionAdmissionFact],\n\t\t[\"DATA\", { kind: \"audit\", audit } satisfies WorkItemDomainActionAdmissionFact],\n\t]);\n}\n\nfunction emptyWorkItemEffectRunState(): WorkItemEffectRunState {\n\treturn {\n\t\tworkItems: new Map<string, WorkItemSeed>(),\n\t\trequests: new Map<string, WorkItemEffectRequested>(),\n\t\teffectRunsByRequest: new Map<string, string>(),\n\t\tseededEffectRunIds: new Set<string>(),\n\t\tissues: [],\n\t\taudit: [],\n\t\tissueKeys: new Set<string>(),\n\t\tstatusSeq: 0,\n\t\tissueSeq: 0,\n\t\tauditSeq: 0,\n\t};\n}\n\nfunction emptyWorkItemEvidenceState(): WorkItemEvidenceState {\n\treturn {\n\t\tworkItems: new Map<string, WorkItemSeed>(),\n\t\teffectRuns: new Map<string, EffectRun>(),\n\t\teffectRunWorkItems: new Map<string, string>(),\n\t\tevidenceByWorkItem: new Map<string, WorkItemEvidenceRecorded[]>(),\n\t\tlatestEvidenceByEffectRun: new Map<string, WorkItemEvidenceRecorded>(),\n\t\tpendingEffectRequests: new Map<string, WorkItemEffectRequested>(),\n\t\trequestsByEffectRun: new Map<string, WorkItemEffectRequested>(),\n\t\tambiguousRequestsByEffectRun: new Map<string, WorkItemEffectRequested[]>(),\n\t\tpolicies: new Map<string, WorkItemEffectMappingPolicy>(),\n\t\tissues: [],\n\t\taudit: [],\n\t\tissueKeys: new Set<string>(),\n\t\tstatusSeq: 0,\n\t\tissueSeq: 0,\n\t\tauditSeq: 0,\n\t};\n}\n\nfunction emptyWorkItemDomainActionProposalState(): WorkItemDomainActionProposalState {\n\treturn {\n\t\tworkItems: new Map<string, WorkItemSeed>(),\n\t\tevidence: new Map<string, WorkItemEvidenceRecorded>(),\n\t\tresults: new Map<string, EffectRunResult>(),\n\t\tpolicies: new Map<string, WorkItemEffectMappingPolicy>(),\n\t\tproposedKeys: new Set<string>(),\n\t\tissueKeys: new Set<string>(),\n\t\tstatusSeq: 0,\n\t\tissueSeq: 0,\n\t\tauditSeq: 0,\n\t};\n}\n\nfunction emptyWorkItemDomainActionAdmissionState(): WorkItemDomainActionAdmissionStateInternal {\n\treturn {\n\t\tproposals: new Map<string, WorkItemDomainActionProposal>(),\n\t\tpolicies: new Map<string, WorkItemDomainActionAdmissionPolicy>(),\n\t\tdecisions: new Map<string, WorkItemDomainActionAdmissionDecision>(),\n\t\tadmissionsById: new Map<string, WorkItemDomainActionAdmission>(),\n\t\tadmissionsByProposal: new Map<string, WorkItemDomainActionAdmission>(),\n\t\tterminalDecisionIds: new Set<string>(),\n\t\tissueKeys: new Set<string>(),\n\t\tstatusSeq: 0,\n\t\tissueSeq: 0,\n\t\tauditSeq: 0,\n\t};\n}\n\nfunction freezeWorkItemEffectRequestViews(\n\tstate: WorkItemEffectRunViewsState,\n): WorkItemEffectRequestViews {\n\treturn {\n\t\tpendingEffectRequests: Object.freeze(Array.from(state.pendingEffectRequests.values())),\n\t\tissues: Object.freeze([...state.issues]),\n\t\taudit: Object.freeze([...state.audit]),\n\t};\n}\n\nfunction freezeWorkItemEvidenceViews(state: WorkItemEvidenceViewsState): WorkItemEvidenceViews {\n\treturn {\n\t\tevidenceByWorkItem: new Map(\n\t\t\tArray.from(state.evidenceByWorkItem, ([key, value]) => [key, Object.freeze([...value])]),\n\t\t),\n\t\tlatestEvidenceByEffectRun: new Map(state.latestEvidenceByEffectRun),\n\t\tissues: Object.freeze([...state.issues]),\n\t\taudit: Object.freeze([...state.audit]),\n\t\tpendingEffectRequests: Object.freeze(Array.from(state.pendingEffectRequests.values())),\n\t};\n}\n\nfunction freezeWorkItemDomainActionProposalViews(\n\tstate: WorkItemDomainActionProposalViewsState,\n): WorkItemDomainActionProposalViews {\n\treturn {\n\t\tproposalsByWorkItem: new Map(\n\t\t\tArray.from(state.proposalsByWorkItem, ([key, value]) => [key, Object.freeze([...value])]),\n\t\t),\n\t\tproposalsByEvidence: new Map(\n\t\t\tArray.from(state.proposalsByEvidence, ([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 freezeWorkItemDomainActionAdmissionViews(\n\tstate: WorkItemDomainActionAdmissionViewsState,\n): WorkItemDomainActionAdmissionViews {\n\treturn {\n\t\tadmissionsByProposal: new Map(state.admissionsByProposal),\n\t\tadmissionsByWorkItem: new Map(\n\t\t\tArray.from(state.admissionsByWorkItem, ([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 deletePendingWorkItemEffectRequest(\n\tstate: Pick<\n\t\tWorkItemEffectRunViewsState | WorkItemEvidenceViewsState,\n\t\t\"pendingEffectRequests\" | \"settledRequestIds\"\n\t>,\n\trefs: readonly string[] | undefined,\n): void {\n\tfor (const requestRef of refs?.filter((value) => value.startsWith(\"work-item-effect-request:\")) ??\n\t\t[]) {\n\t\tconst requestId = requestRef.slice(\"work-item-effect-request:\".length);\n\t\tstate.pendingEffectRequests.delete(requestId);\n\t\tstate.settledRequestIds.add(requestId);\n\t}\n}\n\nfunction workItemEffectRequestRefs(request: WorkItemEffectRequested): readonly SourceRef[] {\n\treturn [\n\t\tref(\"work-item\", request.workItemId),\n\t\tref(\"work-item-effect-request\", request.requestId),\n\t\t...(request.sourceRefs ?? []),\n\t];\n}\n\nfunction workItemResultRefs(result: EffectRunResult): readonly SourceRef[] {\n\treturn [\n\t\tref(\"effect-run\", result.effectRunId),\n\t\tref(\"effect-run-result\", result.resultId),\n\t\t...(result.sourceRefs ?? []),\n\t\t...(result.subjectRefs ?? []),\n\t];\n}\n\nfunction workItemActionProposalRefs(\n\tevidence: WorkItemEvidenceRecorded,\n\tresult: EffectRunResult,\n\tpolicy?: WorkItemEffectMappingPolicy,\n): readonly SourceRef[] {\n\treturn uniqueSourceRefs([\n\t\tref(\"work-item\", evidence.workItemId),\n\t\tref(\"effect-run\", evidence.effectRunId),\n\t\tref(\"effect-run-result\", evidence.effectRunResultId),\n\t\tref(\"work-item-evidence\", evidence.evidenceId),\n\t\t...(policy === undefined ? [] : [ref(\"work-item-effect-mapping-policy\", policy.policyId)]),\n\t\t...(evidence.sourceRefs ?? []),\n\t\t...(result.sourceRefs ?? []),\n\t\t...(result.subjectRefs ?? []),\n\t]);\n}\n\nfunction workItemAdmissionProposalRefs(\n\tproposal: WorkItemDomainActionProposal,\n): readonly SourceRef[] {\n\treturn uniqueSourceRefs([\n\t\tref(\"work-item\", proposal.workItemId),\n\t\tref(\"work-item-domain-action-proposal\", proposal.proposalId),\n\t\tref(\"effect-run\", proposal.effectRunId),\n\t\tref(\"effect-run-result\", proposal.effectRunResultId),\n\t\tref(\"work-item-evidence\", proposal.evidenceId),\n\t\tref(\"work-item-effect-mapping-policy\", proposal.policyId),\n\t\t...(proposal.sourceRefs ?? []),\n\t]);\n}\n\nfunction workItemAdmissionDecisionRefs(\n\tdecision: WorkItemDomainActionAdmissionDecision,\n\tproposal?: WorkItemDomainActionProposal,\n\tpolicy?: WorkItemDomainActionAdmissionPolicy,\n): readonly SourceRef[] {\n\treturn uniqueSourceRefs([\n\t\t...(proposal === undefined ? [] : workItemAdmissionProposalRefs(proposal)),\n\t\tref(\"work-item-domain-action-admission-decision\", decision.decisionId),\n\t\tref(\"work-item-domain-action-admission\", decision.admissionId),\n\t\tref(\"work-item-domain-action-proposal\", decision.proposalId),\n\t\t...(decision.policyId === undefined\n\t\t\t? []\n\t\t\t: [ref(\"work-item-domain-action-admission-policy\", decision.policyId)]),\n\t\t...(policy === undefined\n\t\t\t? []\n\t\t\t: [ref(\"work-item-domain-action-admission-policy\", policy.policyId)]),\n\t\t...(decision.targetProposalId === undefined\n\t\t\t? []\n\t\t\t: [ref(\"work-item-domain-action-proposal\", decision.targetProposalId)]),\n\t\t...(decision.targetAdmissionId === undefined\n\t\t\t? []\n\t\t\t: [ref(\"work-item-domain-action-admission\", decision.targetAdmissionId)]),\n\t\t...(decision.sourceRefs ?? []),\n\t]);\n}\n\nfunction workItemEvidenceOnlyRefs(evidence: WorkItemEvidenceRecorded): readonly SourceRef[] {\n\treturn uniqueSourceRefs([\n\t\tref(\"work-item\", evidence.workItemId),\n\t\tref(\"effect-run\", evidence.effectRunId),\n\t\tref(\"effect-run-result\", evidence.effectRunResultId),\n\t\tref(\"work-item-evidence\", evidence.evidenceId),\n\t\t...(evidence.sourceRefs ?? []),\n\t]);\n}\n\nfunction referencedWorkItemMappingPolicyIds(evidence: WorkItemEvidenceRecorded): readonly string[] {\n\tconst refs = uniqueSourceRefs([...(evidence.sourceRefs ?? [])]);\n\treturn refs\n\t\t.filter((sourceRef) => sourceRef.kind === \"work-item-effect-mapping-policy\")\n\t\t.map((sourceRef) => sourceRef.id);\n}\n\nfunction effectKindFromMetadata(metadata: Record<string, unknown> | undefined): string | undefined {\n\tconst effectKind = metadata?.effectKind;\n\treturn typeof effectKind === \"string\" ? effectKind : undefined;\n}\n\nfunction workItemActionProposalPayload(\n\tspec: WorkItemDomainActionProposalSpec,\n\tevidence: WorkItemEvidenceRecorded,\n\tresult: EffectRunResult,\n): unknown {\n\tif (spec.payload !== undefined) return spec.payload;\n\tconst payloadFrom = spec.payloadFrom;\n\tif (payloadFrom === undefined) return undefined;\n\tif (payloadFrom === \"effect-run-result\")\n\t\treturn { kind: \"effect-run-result-ref\", resultId: result.resultId };\n\tif (payloadFrom === \"output\") return evidence.output;\n\treturn { kind: \"work-item-evidence-ref\", evidenceId: evidence.evidenceId };\n}\n\nfunction resultReason(result: EffectRunResult): string | undefined {\n\tif (result.status === \"canceled\" || result.status === \"waived\") return result.reason;\n\treturn undefined;\n}\n\nfunction workItemIdForEffectRunResult(\n\tstate: Pick<WorkItemDomainActionProposalState, \"evidence\">,\n\tresult: EffectRunResult,\n): string | undefined {\n\tfor (const evidence of state.evidence.values()) {\n\t\tif (\n\t\t\tevidence.effectRunResultId === result.resultId &&\n\t\t\tevidence.effectRunId === result.effectRunId\n\t\t)\n\t\t\treturn evidence.workItemId;\n\t}\n\treturn undefined;\n}\n\nfunction uniqueSourceRefs(sourceRefs: readonly SourceRef[]): readonly SourceRef[] {\n\tconst seen = new Set<string>();\n\tconst unique: SourceRef[] = [];\n\tfor (const sourceRef of sourceRefs) {\n\t\tconst key = sourceRefKey(sourceRef);\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tunique.push(sourceRef);\n\t}\n\treturn unique;\n}\n\nfunction sourceRefKey(sourceRef: SourceRef): string {\n\treturn `${sourceRef.kind}:${sourceRef.id}:${JSON.stringify(sourceRef.metadata ?? {})}`;\n}\n\nfunction distinctWorkItemRefs(sourceRefs: readonly SourceRef[] | undefined): readonly SourceRef[] {\n\tconst refs = new Map<string, SourceRef>();\n\tfor (const sourceRef of sourceRefs ?? []) {\n\t\tif (sourceRef.kind === \"work-item\") refs.set(sourceRef.id, sourceRef);\n\t}\n\treturn Array.from(refs.values());\n}\n\nfunction singleWorkItemRef(sourceRefs: readonly SourceRef[] | undefined): SourceRef | undefined {\n\tconst matches = distinctWorkItemRefs(sourceRefs);\n\treturn matches.length === 1 ? matches[0] : undefined;\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 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 dataIssue(\n\tcode: string,\n\tmessage: string,\n\topts: {\n\t\treadonly subjectId?: string;\n\t\treadonly refs?: readonly SourceRef[];\n\t\treadonly severity?: DataIssue[\"severity\"];\n\t\treadonly details?: unknown;\n\t} = {},\n): DataIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tcode,\n\t\tmessage,\n\t\tseverity: opts.severity ?? \"error\",\n\t\tsubjectId: opts.subjectId,\n\t\trefs: opts.refs?.map((r) => `${r.kind}:${r.id}`),\n\t\tdetails: opts.details,\n\t};\n}\n\nfunction ref(kind: string, id: string): SourceRef {\n\treturn { kind, id };\n}\n"],"mappings":"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","names":["sourceRefs","issue","sourceRefs","dataIssue","ref","isRecord","issue","uniqueSourceRefs","sourceRefs"]}
|