@graphrefly/ts 0.0.1 → 0.0.3
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 +197 -117
- package/dist/actions-types-CH-XCU9O.d.cts +657 -0
- package/dist/actions-types-w2iPQTkv.d.ts +657 -0
- package/dist/adapters/index.cjs +5157 -2951
- package/dist/adapters/index.cjs.map +1 -1
- package/dist/adapters/index.d.cts +207 -70
- package/dist/adapters/index.d.ts +207 -70
- package/dist/adapters/index.js +3738 -1688
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/nestjs/microservices.cjs +841 -0
- package/dist/adapters/nestjs/microservices.cjs.map +1 -0
- package/dist/adapters/nestjs/microservices.d.cts +45 -0
- package/dist/adapters/nestjs/microservices.d.ts +45 -0
- package/dist/adapters/nestjs/microservices.js +206 -0
- package/dist/adapters/nestjs/microservices.js.map +1 -0
- package/dist/adapters/nestjs/native.cjs +1391 -0
- package/dist/adapters/nestjs/native.cjs.map +1 -0
- package/dist/adapters/nestjs/native.d.cts +111 -0
- package/dist/adapters/nestjs/native.d.ts +111 -0
- package/dist/adapters/nestjs/native.js +577 -0
- package/dist/adapters/nestjs/native.js.map +1 -0
- package/dist/adapters/nestjs/websockets.cjs +924 -0
- package/dist/adapters/nestjs/websockets.cjs.map +1 -0
- package/dist/adapters/nestjs/websockets.d.cts +47 -0
- package/dist/adapters/nestjs/websockets.d.ts +47 -0
- package/dist/adapters/nestjs/websockets.js +286 -0
- package/dist/adapters/nestjs/websockets.js.map +1 -0
- package/dist/adapters/nestjs.cjs +1085 -0
- package/dist/adapters/nestjs.cjs.map +1 -0
- package/dist/adapters/nestjs.d.cts +385 -0
- package/dist/adapters/nestjs.d.ts +385 -0
- package/dist/adapters/nestjs.js +112 -0
- package/dist/adapters/nestjs.js.map +1 -0
- package/dist/adapters/observe-storage.d.cts +3 -3
- package/dist/adapters/observe-storage.d.ts +3 -3
- package/dist/adapters/observe-storage.js +4 -4
- package/dist/adapters/react.cjs.map +1 -1
- package/dist/adapters/react.d.cts +2 -2
- package/dist/adapters/react.d.ts +2 -2
- package/dist/adapters/react.js +1 -1
- package/dist/adapters/solid.cjs.map +1 -1
- package/dist/adapters/solid.d.cts +2 -2
- package/dist/adapters/solid.d.ts +2 -2
- package/dist/adapters/solid.js +1 -1
- package/dist/adapters/svelte.cjs.map +1 -1
- package/dist/adapters/svelte.d.cts +2 -2
- package/dist/adapters/svelte.d.ts +2 -2
- package/dist/adapters/svelte.js +1 -1
- package/dist/adapters/vue.cjs.map +1 -1
- package/dist/adapters/vue.d.cts +2 -2
- package/dist/adapters/vue.d.ts +2 -2
- package/dist/adapters/vue.js +1 -1
- package/dist/{agent-runtime-BesGDZcB.d.ts → agent-runtime-types-core-CKwrBDyi.d.ts} +171 -320
- package/dist/{agent-runtime-DZTJ3C-p.d.cts → agent-runtime-types-core-bfl4m0vM.d.cts} +171 -320
- package/dist/agent-runtime-types-tool-BLPV3azj.d.cts +695 -0
- package/dist/agent-runtime-types-tool-hwqvVqNt.d.ts +695 -0
- package/dist/agentic-memory-retention-CLwI76JK.d.ts +14 -0
- package/dist/agentic-memory-retention-Cz8GR6ie.d.cts +14 -0
- package/dist/{agentic-memory-DfuVZ-lY.d.cts → agentic-memory-types-JDr7MPhh.d.cts} +13 -57
- package/dist/{agentic-memory-BmRCvh0d.d.ts → agentic-memory-types-khYJgzKL.d.ts} +13 -57
- package/dist/{capability-admission-B0BzqAm5.d.cts → capability-admission-B8RNFyaZ.d.cts} +3 -3
- package/dist/{capability-admission-g0mn9hpq.d.ts → capability-admission-Dkw1Xz3r.d.ts} +3 -3
- package/dist/chunk-2KUAG2GZ.js +9693 -0
- package/dist/chunk-2KUAG2GZ.js.map +1 -0
- package/dist/{chunk-CZNV3VXM.js → chunk-3J7UPZL5.js} +11 -11
- package/dist/{chunk-HKK2JD7Z.js → chunk-3LYI6ADX.js} +12 -125
- package/dist/chunk-3LYI6ADX.js.map +1 -0
- package/dist/{chunk-YXMZ2N6J.js → chunk-4M37FH2I.js} +1071 -1025
- package/dist/chunk-4M37FH2I.js.map +1 -0
- package/dist/{chunk-YDSIVHRR.js → chunk-4NWSNI4K.js} +1598 -1584
- package/dist/chunk-4NWSNI4K.js.map +1 -0
- package/dist/{chunk-Z2ANQ6JW.js → chunk-4Q77MMJY.js} +2 -2
- package/dist/{chunk-SS2A464I.js → chunk-54WPEODM.js} +3 -3
- package/dist/chunk-54WPEODM.js.map +1 -0
- package/dist/chunk-6E76H4OU.js +132 -0
- package/dist/chunk-6E76H4OU.js.map +1 -0
- package/dist/chunk-7GOTIIQ7.js +819 -0
- package/dist/chunk-7GOTIIQ7.js.map +1 -0
- package/dist/{chunk-V7CIJE4B.js → chunk-DKFWDTVY.js} +92 -9
- package/dist/chunk-DKFWDTVY.js.map +1 -0
- package/dist/{chunk-FBUU43PM.js → chunk-E4QCH32M.js} +448 -446
- package/dist/chunk-E4QCH32M.js.map +1 -0
- package/dist/{chunk-XKXWK2KP.js → chunk-GXU6WFEJ.js} +1157 -1021
- package/dist/chunk-GXU6WFEJ.js.map +1 -0
- package/dist/{chunk-K3FXTC3I.js → chunk-HJACH5PU.js} +3 -3
- package/dist/{chunk-GTPCOEOZ.js → chunk-IDMLXLLG.js} +3 -3
- package/dist/{chunk-DKP56CSW.js → chunk-JKAYLDQV.js} +2 -2
- package/dist/{chunk-4VLAQHZI.js → chunk-K7FB3JTD.js} +17 -1
- package/dist/chunk-K7FB3JTD.js.map +1 -0
- package/dist/{chunk-43BKLFZU.js → chunk-KFURM6FM.js} +10 -10
- package/dist/{chunk-H75VXTGT.js → chunk-L6LDXRWE.js} +3 -3
- package/dist/{chunk-H75VXTGT.js.map → chunk-L6LDXRWE.js.map} +1 -1
- package/dist/chunk-MCOFHMUU.js +4131 -0
- package/dist/chunk-MCOFHMUU.js.map +1 -0
- package/dist/chunk-MQEQMS7B.js +1009 -0
- package/dist/chunk-MQEQMS7B.js.map +1 -0
- package/dist/chunk-MTELVIYR.js +1421 -0
- package/dist/chunk-MTELVIYR.js.map +1 -0
- package/dist/{chunk-3JR3EDB2.js → chunk-NNDIFUKX.js} +121 -115
- package/dist/chunk-NNDIFUKX.js.map +1 -0
- package/dist/{chunk-2747WN4Y.js → chunk-PUSRRALM.js} +3 -3
- package/dist/{chunk-QFY4AFY4.js → chunk-PVC7WDKI.js} +58 -52
- package/dist/chunk-PVC7WDKI.js.map +1 -0
- package/dist/{chunk-VTHLCFN4.js → chunk-RAHNUYA5.js} +2 -2
- package/dist/chunk-TQPCAIQI.js +612 -0
- package/dist/chunk-TQPCAIQI.js.map +1 -0
- package/dist/{chunk-IXZBUWSP.js → chunk-UEMN5URK.js} +2 -2
- package/dist/chunk-WOS7RJYZ.js +1320 -0
- package/dist/chunk-WOS7RJYZ.js.map +1 -0
- package/dist/{chunk-6PHB5CJS.js → chunk-ZLFRB6FI.js} +2 -2
- package/dist/composition/index.cjs +1228 -1076
- package/dist/composition/index.cjs.map +1 -1
- package/dist/composition/index.d.cts +3 -3
- package/dist/composition/index.d.ts +3 -3
- package/dist/composition/index.js +4 -4
- package/dist/core/index.cjs +1198 -1046
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +23 -2
- package/dist/core/index.d.ts +23 -2
- package/dist/core/index.js +2 -2
- package/dist/cqrs/index.d.cts +3 -3
- package/dist/cqrs/index.d.ts +3 -3
- package/dist/cqrs/messaging.d.cts +4 -4
- package/dist/cqrs/messaging.d.ts +4 -4
- package/dist/cqrs/work-queue.d.cts +5 -5
- package/dist/cqrs/work-queue.d.ts +5 -5
- package/dist/data-structures/index.cjs +1226 -1074
- package/dist/data-structures/index.cjs.map +1 -1
- package/dist/data-structures/index.d.cts +8 -7
- package/dist/data-structures/index.d.ts +8 -7
- package/dist/data-structures/index.js +6 -5
- package/dist/{describe-DYMw_l1C.d.cts → describe-BumQ-3_0.d.cts} +1 -1
- package/dist/{describe-BpyJuWkw.d.ts → describe-cYr_Z5zm.d.ts} +1 -1
- package/dist/executors/tool-provider-adapters.cjs +3091 -0
- package/dist/executors/tool-provider-adapters.cjs.map +1 -0
- package/dist/executors/tool-provider-adapters.d.cts +174 -0
- package/dist/executors/tool-provider-adapters.d.ts +174 -0
- package/dist/executors/tool-provider-adapters.js +1336 -0
- package/dist/executors/tool-provider-adapters.js.map +1 -0
- package/dist/executors/tool-provider-runtime.cjs +5178 -0
- package/dist/executors/tool-provider-runtime.cjs.map +1 -0
- package/dist/executors/tool-provider-runtime.d.cts +17 -0
- package/dist/executors/tool-provider-runtime.d.ts +17 -0
- package/dist/executors/tool-provider-runtime.js +15 -0
- package/dist/executors/tool-provider-runtime.js.map +1 -0
- package/dist/executors/tool-provider.cjs +6392 -0
- package/dist/executors/tool-provider.cjs.map +1 -0
- package/dist/executors/tool-provider.d.cts +60 -0
- package/dist/executors/tool-provider.d.ts +60 -0
- package/dist/executors/tool-provider.js +89 -0
- package/dist/executors/tool-provider.js.map +1 -0
- package/dist/executors/work-queue.d.cts +6 -6
- package/dist/executors/work-queue.d.ts +6 -6
- package/dist/graph/index.cjs +1499 -1341
- package/dist/graph/index.cjs.map +1 -1
- package/dist/graph/index.d.cts +9 -8
- package/dist/graph/index.d.ts +9 -8
- package/dist/graph/index.js +23 -22
- package/dist/{graph-DCEWh4T2.d.cts → graph-C1C-wb0L.d.cts} +266 -137
- package/dist/{graph-D-1-SQeC.d.ts → graph-CS0b4V9B.d.ts} +266 -137
- package/dist/{index-72VZC0-E.d.cts → index-DLrNopda.d.cts} +151 -10
- package/dist/{index-Bmxeu0nK.d.ts → index-DzJni3_6.d.ts} +151 -10
- package/dist/index.cjs +3397 -3140
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -9
- package/dist/index.d.ts +12 -9
- package/dist/index.js +110 -109
- package/dist/inspection/boundary.d.cts +4 -4
- package/dist/inspection/boundary.d.ts +4 -4
- package/dist/measurements-BWAnochv.d.ts +294 -0
- package/dist/measurements-B_gJfD8h.d.cts +294 -0
- package/dist/messaging/index.cjs +57 -51
- package/dist/messaging/index.cjs.map +1 -1
- package/dist/messaging/index.d.cts +11 -276
- package/dist/messaging/index.d.ts +11 -276
- package/dist/messaging/index.js +1 -1
- package/dist/operators/index.cjs +1228 -1076
- package/dist/operators/index.cjs.map +1 -1
- package/dist/operators/index.d.cts +5 -5
- package/dist/operators/index.d.ts +5 -5
- package/dist/operators/index.js +5 -5
- package/dist/orchestration/index.cjs +8844 -6071
- package/dist/orchestration/index.cjs.map +1 -1
- package/dist/orchestration/index.d.cts +171 -224
- package/dist/orchestration/index.d.ts +171 -224
- package/dist/orchestration/index.js +42 -991
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/messaging.d.cts +5 -8
- package/dist/orchestration/messaging.d.ts +5 -8
- package/dist/orchestration/work-queue.cjs +1243 -5
- package/dist/orchestration/work-queue.cjs.map +1 -1
- package/dist/orchestration/work-queue.d.cts +121 -10
- package/dist/orchestration/work-queue.d.ts +121 -10
- package/dist/orchestration/work-queue.js +1067 -4
- package/dist/orchestration/work-queue.js.map +1 -1
- package/dist/patterns/event-flow.cjs +6 -20
- package/dist/patterns/event-flow.cjs.map +1 -1
- package/dist/patterns/event-flow.d.cts +4 -4
- package/dist/patterns/event-flow.d.ts +4 -4
- package/dist/patterns/event-flow.js +2 -2
- package/dist/patterns/index.cjs +453 -465
- package/dist/patterns/index.cjs.map +1 -1
- package/dist/patterns/index.d.cts +6 -5
- package/dist/patterns/index.d.ts +6 -5
- package/dist/patterns/index.js +3 -3
- package/dist/process-types-BB7oRhX3.d.cts +200 -0
- package/dist/process-types-QNhyoYJ8.d.ts +200 -0
- package/dist/{reactive-collection-DNV0-gFi.d.cts → reactive-collection-BYlWvtnp.d.cts} +4 -34
- package/dist/{reactive-collection-BAmfrGjd.d.ts → reactive-collection-efOEdGFN.d.ts} +4 -34
- package/dist/{reactive-collection-storage-BNEldDyi.d.cts → reactive-collection-storage-BjoLsoiC.d.cts} +5 -5
- package/dist/{reactive-collection-storage-YZsAQsWK.d.ts → reactive-collection-storage-DwW6UuK_.d.ts} +5 -5
- package/dist/{reactive-map-DRD1LJ2H.d.cts → reactive-map-BHacbIqz.d.cts} +7 -2
- package/dist/{reactive-map-EsDiCmJk.d.ts → reactive-map-DN4Jyqnf.d.ts} +7 -2
- package/dist/render/index.d.cts +2 -2
- package/dist/render/index.d.ts +2 -2
- package/dist/scheduled-readiness-BmqXxnzX.d.ts +91 -0
- package/dist/scheduled-readiness-CYSw7KDE.d.cts +91 -0
- package/dist/semantic-memory-graph-B_LwbM-E.d.cts +30 -0
- package/dist/semantic-memory-graph-rsFNNhwn.d.ts +30 -0
- package/dist/{semantic-memory-graph-DKuNzuWw.d.cts → semantic-memory-graph-types-Y73bbwVI.d.cts} +2 -28
- package/dist/{semantic-memory-graph-uwbwJdhe.d.ts → semantic-memory-graph-types-safmPkuX.d.ts} +2 -28
- package/dist/solutions/index.cjs +6353 -6169
- package/dist/solutions/index.cjs.map +1 -1
- package/dist/solutions/index.d.cts +12 -10
- package/dist/solutions/index.d.ts +12 -10
- package/dist/solutions/index.js +5 -5
- package/dist/solutions/reactive-layout/browser/index.cjs +116 -108
- package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -1
- package/dist/solutions/reactive-layout/browser/index.d.cts +4 -4
- package/dist/solutions/reactive-layout/browser/index.d.ts +4 -4
- package/dist/solutions/reactive-layout/browser/index.js +3 -3
- package/dist/solutions/reactive-layout/index.cjs +3578 -3350
- package/dist/solutions/reactive-layout/index.cjs.map +1 -1
- package/dist/solutions/reactive-layout/index.d.cts +32 -576
- package/dist/solutions/reactive-layout/index.d.ts +32 -576
- package/dist/solutions/reactive-layout/index.js +65 -5
- package/dist/solutions/reactive-layout/node-canvas/index.cjs +127 -117
- package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -1
- package/dist/solutions/reactive-layout/node-canvas/index.d.cts +4 -4
- package/dist/solutions/reactive-layout/node-canvas/index.d.ts +4 -4
- package/dist/solutions/reactive-layout/node-canvas/index.js +3 -3
- package/dist/solutions/reactive-layout/react-native/index.cjs +127 -117
- package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -1
- package/dist/solutions/reactive-layout/react-native/index.d.cts +4 -4
- package/dist/solutions/reactive-layout/react-native/index.d.ts +4 -4
- package/dist/solutions/reactive-layout/react-native/index.js +3 -3
- package/dist/solutions/reactive-layout/skia/index.cjs +127 -117
- package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -1
- package/dist/solutions/reactive-layout/skia/index.d.cts +4 -4
- package/dist/solutions/reactive-layout/skia/index.d.ts +4 -4
- package/dist/solutions/reactive-layout/skia/index.js +3 -3
- package/dist/solutions/work-item/actions.cjs +1609 -1428
- package/dist/solutions/work-item/actions.cjs.map +1 -1
- package/dist/solutions/work-item/actions.d.cts +23 -184
- package/dist/solutions/work-item/actions.d.ts +23 -184
- package/dist/solutions/work-item/actions.js +1558 -934
- package/dist/solutions/work-item/actions.js.map +1 -1
- package/dist/solutions/work-item/scheduling.cjs +9181 -1838
- package/dist/solutions/work-item/scheduling.cjs.map +1 -1
- package/dist/solutions/work-item/scheduling.d.cts +1763 -328
- package/dist/solutions/work-item/scheduling.d.ts +1763 -328
- package/dist/solutions/work-item/scheduling.js +117 -3
- package/dist/solutions/work-item/work-queue.d.cts +7 -7
- package/dist/solutions/work-item/work-queue.d.ts +7 -7
- package/dist/sources/browser.cjs +1318 -1083
- package/dist/sources/browser.cjs.map +1 -1
- package/dist/sources/browser.d.cts +22 -6
- package/dist/sources/browser.d.ts +22 -6
- package/dist/sources/browser.js +4 -4
- package/dist/sources/browser.js.map +1 -1
- package/dist/sources/index.cjs +1318 -1083
- package/dist/sources/index.cjs.map +1 -1
- package/dist/sources/index.d.cts +4 -4
- package/dist/sources/index.d.ts +4 -4
- package/dist/sources/index.js +4 -4
- package/dist/sources/node.d.cts +3 -3
- package/dist/sources/node.d.ts +3 -3
- package/dist/storage/browser.cjs +16 -0
- package/dist/storage/browser.cjs.map +1 -1
- package/dist/storage/browser.js +3 -3
- package/dist/storage/index.cjs +16 -0
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.d.cts +5 -4
- package/dist/storage/index.d.ts +5 -4
- package/dist/storage/index.js +6 -6
- package/dist/storage/node.cjs +16 -0
- package/dist/storage/node.cjs.map +1 -1
- package/dist/storage/node.js +3 -3
- package/dist/{store-C-joM4gh.d.ts → store-6_CHF6Ge.d.ts} +1 -1
- package/dist/{store-CNJwmT-h.d.cts → store-BljX8RkQ.d.cts} +1 -1
- package/dist/types-BAw2QVVE.d.cts +274 -0
- package/dist/types-BUbbbh4f.d.cts +34 -0
- package/dist/types-CMnzoL54.d.cts +457 -0
- package/dist/{types-CcPIn7sy.d.cts → types-CTN3XoMl.d.cts} +57 -108
- package/dist/types-CV_ohy5T.d.cts +357 -0
- package/dist/{types-BsJvElYZ.d.ts → types-DChxk1vK.d.ts} +57 -108
- package/dist/types-DRu7SnLV.d.ts +274 -0
- package/dist/types-DeID_FRl.d.ts +34 -0
- package/dist/types-IhKH0hGW.d.ts +357 -0
- package/dist/types-ePlD2uyT.d.ts +457 -0
- package/dist/{work-item-runtime-qaVgsL0T.d.cts → work-item-runtime-types-BTxLskN5.d.cts} +3 -93
- package/dist/{work-item-runtime-C3M79vE9.d.ts → work-item-runtime-types-DAsZbb2y.d.ts} +3 -93
- package/dist/work-queue/index.cjs +957 -953
- package/dist/work-queue/index.cjs.map +1 -1
- package/dist/work-queue/index.d.cts +9 -357
- package/dist/work-queue/index.d.ts +9 -357
- package/dist/work-queue/index.js +957 -953
- package/dist/work-queue/index.js.map +1 -1
- package/package.json +611 -513
- package/dist/chunk-3JR3EDB2.js.map +0 -1
- package/dist/chunk-4VLAQHZI.js.map +0 -1
- package/dist/chunk-6XAIOL3X.js +0 -2407
- package/dist/chunk-6XAIOL3X.js.map +0 -1
- package/dist/chunk-FBUU43PM.js.map +0 -1
- package/dist/chunk-HKK2JD7Z.js.map +0 -1
- package/dist/chunk-PC3BTTBE.js +0 -3217
- package/dist/chunk-PC3BTTBE.js.map +0 -1
- package/dist/chunk-QFY4AFY4.js.map +0 -1
- package/dist/chunk-SS2A464I.js.map +0 -1
- package/dist/chunk-V7CIJE4B.js.map +0 -1
- package/dist/chunk-XKXWK2KP.js.map +0 -1
- package/dist/chunk-YDSIVHRR.js.map +0 -1
- package/dist/chunk-YXMZ2N6J.js.map +0 -1
- /package/dist/{chunk-CZNV3VXM.js.map → chunk-3J7UPZL5.js.map} +0 -0
- /package/dist/{chunk-Z2ANQ6JW.js.map → chunk-4Q77MMJY.js.map} +0 -0
- /package/dist/{chunk-K3FXTC3I.js.map → chunk-HJACH5PU.js.map} +0 -0
- /package/dist/{chunk-GTPCOEOZ.js.map → chunk-IDMLXLLG.js.map} +0 -0
- /package/dist/{chunk-DKP56CSW.js.map → chunk-JKAYLDQV.js.map} +0 -0
- /package/dist/{chunk-43BKLFZU.js.map → chunk-KFURM6FM.js.map} +0 -0
- /package/dist/{chunk-2747WN4Y.js.map → chunk-PUSRRALM.js.map} +0 -0
- /package/dist/{chunk-VTHLCFN4.js.map → chunk-RAHNUYA5.js.map} +0 -0
- /package/dist/{chunk-IXZBUWSP.js.map → chunk-UEMN5URK.js.map} +0 -0
- /package/dist/{chunk-6PHB5CJS.js.map → chunk-ZLFRB6FI.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/orchestration/agent-runtime.ts","../src/orchestration/work-item-runtime.ts"],"sourcesContent":["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\";\n\nexport interface SourceRef {\n\treadonly kind: string;\n\treadonly id: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AgentRequestInput<T = unknown> {\n\treadonly inputId: string;\n\treadonly inputKind: string;\n\treadonly dataMode?: \"ref\" | \"summary\" | \"inline\";\n\treadonly ref?: string;\n\treadonly summary?: string;\n\treadonly value?: T;\n\treadonly schemaRef?: string;\n\treadonly subjectRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface EffectRunGoal<TInput = unknown> {\n\treadonly kind: string;\n\treadonly summary?: string;\n\treadonly detailRef?: string;\n\treadonly input?: AgentRequestInput<TInput>;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface EffectRunLimits {\n\treadonly maxSteps?: number;\n\treadonly maxRequests?: number;\n\treadonly maxAttemptsPerOperation?: number;\n\treadonly maxPendingRequests?: number;\n\treadonly maxCostUsd?: number;\n\treadonly timeoutMs?: number;\n}\n\nexport interface EffectRun<TInput = unknown> {\n\treadonly kind: \"effect-run\";\n\treadonly effectRunId: string;\n\treadonly agentRunId?: string;\n\treadonly subjectRefs?: readonly SourceRef[];\n\treadonly goal: EffectRunGoal<TInput>;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly limits?: EffectRunLimits;\n\treadonly createdBy?: string;\n\treadonly createdAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface EffectRunOptions<TInput = unknown> {\n\treadonly effectRunId: string;\n\treadonly agentRunId?: string;\n\treadonly subjectRefs?: readonly SourceRef[];\n\treadonly goal: EffectRunGoal<TInput>;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly limits?: EffectRunLimits;\n\treadonly createdBy?: string;\n\treadonly createdAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport function effectRun<TInput = unknown>(opts: EffectRunOptions<TInput>): EffectRun<TInput> {\n\treturn {\n\t\tkind: \"effect-run\",\n\t\teffectRunId: opts.effectRunId,\n\t\tagentRunId: opts.agentRunId,\n\t\tsubjectRefs: opts.subjectRefs,\n\t\tgoal: opts.goal,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tpolicyRefs: opts.policyRefs,\n\t\tlimits: opts.limits,\n\t\tcreatedBy: opts.createdBy,\n\t\tcreatedAtMs: opts.createdAtMs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport type AgentRequestKind = \"context\" | \"prompt\" | \"executor\";\n\nexport interface AgentRequestProposal<TPayload = unknown> {\n\treadonly kind: \"proposal\";\n\treadonly proposalId: string;\n\treadonly effectRunId: string;\n\treadonly agentRunId?: string;\n\treadonly parentRequestId?: string;\n\treadonly sourceDecisionId?: string;\n\treadonly requestKind: AgentRequestKind;\n\treadonly required?: boolean;\n\treadonly subjectId?: string;\n\treadonly input?: AgentRequestInput<TPayload>;\n\treadonly payload?: TPayload;\n\treadonly reason?: string;\n\treadonly evidenceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AgentRequestAdmitted {\n\treadonly kind: \"admitted\";\n\treadonly proposalId: string;\n\treadonly requestId: string;\n\treadonly operationId: string;\n\treadonly effectRunId: string;\n\treadonly agentRunId?: string;\n\treadonly admittedAtMs?: number;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AgentRequestRejected {\n\treadonly kind: \"rejected\";\n\treadonly proposalId: string;\n\treadonly effectRunId: string;\n\treadonly issue: DataIssue;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AgentRequestDeferred {\n\treadonly kind: \"deferred\";\n\treadonly proposalId: string;\n\treadonly effectRunId: string;\n\treadonly reason?: string;\n\treadonly untilRef?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AgentRequestMerged {\n\treadonly kind: \"merged\";\n\treadonly proposalId: string;\n\treadonly effectRunId: string;\n\treadonly targetRequestId: string;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AgentRequestIssued<TPayload = unknown> {\n\treadonly kind: \"issued\";\n\treadonly requestId: string;\n\treadonly operationId: string;\n\treadonly effectRunId: string;\n\treadonly agentRunId?: string;\n\treadonly proposalId?: string;\n\treadonly parentRequestId?: string;\n\treadonly requestKind: AgentRequestKind;\n\treadonly required: boolean;\n\treadonly input?: AgentRequestInput<TPayload>;\n\treadonly payload?: TPayload;\n\treadonly issuedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type AgentRequestStatus =\n\t| \"proposed\"\n\t| \"admitted\"\n\t| \"rejected\"\n\t| \"deferred\"\n\t| \"merged\"\n\t| \"issued\"\n\t| \"awaiting-context\"\n\t| \"awaiting-prompt\"\n\t| \"awaiting-route\"\n\t| \"awaiting-provider\"\n\t| \"in-flight\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"blocked\"\n\t| \"canceled\"\n\t| \"timeout\"\n\t| \"waived\"\n\t| \"retry-exhausted\";\n\nexport interface AgentRequestStatusChanged {\n\treadonly kind: \"status\";\n\treadonly requestId: string;\n\treadonly operationId?: string;\n\treadonly effectRunId: string;\n\treadonly status: AgentRequestStatus;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly issues?: readonly DataIssue[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type AgentRequestFact<TPayload = unknown> =\n\t| AgentRequestProposal<TPayload>\n\t| AgentRequestAdmitted\n\t| AgentRequestRejected\n\t| AgentRequestDeferred\n\t| AgentRequestMerged\n\t| AgentRequestIssued<TPayload>\n\t| AgentRequestStatusChanged;\n\nexport interface AgentRequestViews {\n\treadonly requestsById: ReadonlyMap<string, AgentRequestIssued>;\n\treadonly requestsByEffectRun: ReadonlyMap<string, readonly string[]>;\n\treadonly statusByRequest: ReadonlyMap<string, AgentRequestStatusChanged>;\n\treadonly pending: readonly AgentRequestIssued[];\n\treadonly awaitingProvider: readonly AgentRequestIssued[];\n\treadonly issues: readonly DataIssue[];\n\treadonly audit: readonly AgentRuntimeAuditRecord[];\n}\n\nexport interface AgentRequestLedgerBundle {\n\treadonly views: Node<AgentRequestViews>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport interface ExecutorProfile {\n\treadonly profileId: string;\n\treadonly executorId: string;\n\treadonly kind: \"llm\" | \"tool\" | \"human\" | \"agent\";\n\treadonly acceptedInputKinds?: readonly string[];\n\treadonly acceptedSchemaRefs?: readonly string[];\n\treadonly acceptedResultKinds?: readonly string[];\n\treadonly capabilities?: Record<string, unknown>;\n\treadonly limits?: Record<string, number>;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface ExecutorRoute {\n\treadonly kind: \"executor-route\";\n\treadonly routeId: string;\n\treadonly requestId: string;\n\treadonly operationId: string;\n\treadonly inputId?: string;\n\treadonly inputKind?: string;\n\treadonly executorId: string;\n\treadonly profileId: string;\n\treadonly allowedParams?: Record<string, unknown>;\n\treadonly reason?: string;\n\treadonly evidenceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type ExecutorOutcomeStatus = \"result\" | \"failure\" | \"canceled\" | \"timeout\" | \"blocked\";\n\nexport interface ExecutorUsage {\n\treadonly inputTokens?: number;\n\treadonly outputTokens?: number;\n\treadonly cacheHitTokens?: number;\n\treadonly cacheMissTokens?: number;\n\treadonly cacheWriteTokens?: number;\n\treadonly cacheMode?: string;\n\treadonly costUsd?: number;\n\treadonly latencyMs?: number;\n}\n\nexport interface ExecutorOutcomeBase {\n\treadonly kind: ExecutorOutcomeStatus;\n\treadonly outcomeId: string;\n\treadonly requestId: string;\n\treadonly operationId: string;\n\treadonly routeId: string;\n\treadonly executorId: string;\n\treadonly profileId: string;\n\treadonly attempt: number;\n\treadonly inputId?: string;\n\treadonly inputKind?: string;\n\treadonly occurredAtMs?: number;\n\treadonly evidenceRefs?: readonly SourceRef[];\n\treadonly issues?: readonly DataIssue[];\n\treadonly usage?: ExecutorUsage;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AgentOutputEnvelope<T = unknown> {\n\treadonly kind: string;\n\treadonly value?: T;\n\treadonly refs?: readonly SourceRef[];\n\treadonly summary?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type ExecutorOutcome<T = unknown> =\n\t| (ExecutorOutcomeBase & { readonly kind: \"result\"; readonly result: AgentOutputEnvelope<T> })\n\t| (ExecutorOutcomeBase & {\n\t\t\treadonly kind: \"failure\";\n\t\t\treadonly error: DataIssue;\n\t\t\treadonly retryable?: boolean;\n\t })\n\t| (ExecutorOutcomeBase & { readonly kind: \"canceled\"; readonly reason?: string })\n\t| (ExecutorOutcomeBase & {\n\t\t\treadonly kind: \"timeout\";\n\t\t\treadonly timeoutMs?: number;\n\t\t\treadonly retryable?: boolean;\n\t })\n\t| (ExecutorOutcomeBase & {\n\t\t\treadonly kind: \"blocked\";\n\t\t\treadonly needs: readonly AgentNeed[];\n\t });\n\n/**\n * Provider-neutral tool-call request input (D359). Concrete clients, secrets,\n * transports, and SDK handles stay in executor adapter bindings, not this fact.\n */\nexport interface ToolCallInput<TArguments = unknown> {\n\treadonly kind: \"tool-call\";\n\treadonly toolName: string;\n\treadonly operation?: string;\n\treadonly arguments?: TArguments;\n\treadonly argumentsRef?: string;\n\treadonly expectedOutput?: {\n\t\treadonly resultKind?: string;\n\t\treadonly schemaRef?: string;\n\t};\n\treadonly idempotency?: {\n\t\treadonly key?: string;\n\t\treadonly safeToRetry?: boolean;\n\t};\n\treadonly timeoutMs?: number;\n\treadonly subjectRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * Tool provider family label for optional Layer C adapters (D359). Builtin,\n * MCP, CLI, and Composio providers stay executor/tool recipes, not WorkItem\n * core or protocol semantics.\n */\nexport type ToolProviderKind = \"local-builtin\" | \"mcp\" | \"cli\" | \"composio\" | (string & {});\n\n/**\n * Graph-visible catalog entry for a tool exposed by an executor provider\n * (D359). Runtime clients and credentials remain private adapter state.\n */\nexport interface ToolProviderCatalogEntry {\n\treadonly kind: \"tool-catalog-entry\";\n\treadonly providerId: string;\n\treadonly toolName: string;\n\treadonly operation?: string;\n\treadonly inputKind: \"tool-call\";\n\treadonly profileId: string;\n\treadonly executorId: string;\n\treadonly resultKinds?: readonly string[];\n\treadonly schemaRefs?: readonly string[];\n\treadonly capabilities?: Record<string, unknown>;\n\treadonly limits?: Record<string, number>;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * Graph-visible tool provider catalog/status surface (D359). This is passive\n * DATA for routing/profile selection and UI inspection, not a provider runtime.\n */\nexport interface ToolProviderCatalog {\n\treadonly kind: \"tool-provider-catalog\";\n\treadonly providerId: string;\n\treadonly providerKind: ToolProviderKind;\n\treadonly profiles: readonly ExecutorProfile[];\n\treadonly tools: readonly ToolProviderCatalogEntry[];\n\treadonly status?: \"ready\" | \"unavailable\" | \"misconfigured\";\n\treadonly issues?: readonly DataIssue[];\n\treadonly audit?: readonly AgentRuntimeAuditRecord[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * Options for producing a local builtin tool-provider catalog (D359). Limits and\n * capabilities are declarative policy hints; execution remains adapter-owned.\n */\nexport interface LocalBuiltinToolProviderCatalogOptions {\n\treadonly providerId?: string;\n\treadonly executorId?: string;\n\treadonly profileId?: string;\n\treadonly tools?: readonly Omit<\n\t\tToolProviderCatalogEntry,\n\t\t\"kind\" | \"providerId\" | \"inputKind\" | \"profileId\" | \"executorId\"\n\t>[];\n\treadonly limits?: Record<string, number>;\n\treadonly capabilities?: Record<string, unknown>;\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * Audience selector for bounded ExecutorOutcome projections (D359).\n */\nexport type ExecutorOutcomeViewAudience = \"agent-observation\" | \"ui\" | \"diagnostic\" | \"audit\";\n\n/**\n * View policy for deriving bounded, audience-specific ExecutorOutcome summaries\n * (D359/D270/D293) without inlining large/raw provider material.\n */\nexport interface ExecutorOutcomeViewPolicy {\n\treadonly audience?: ExecutorOutcomeViewAudience;\n\treadonly maxSummaryChars?: number;\n\treadonly includeIssues?: boolean;\n\treadonly includeUsage?: boolean;\n\treadonly includeMetadata?: boolean;\n}\n\n/**\n * Bounded projection of ExecutorOutcome for agent, UI, diagnostic, or audit\n * consumers (D359). Large/raw material stays behind refs.\n */\nexport interface ExecutorOutcomeView {\n\treadonly kind: \"executor-outcome-view\";\n\treadonly viewId: string;\n\treadonly audience: ExecutorOutcomeViewAudience;\n\treadonly outcomeId: string;\n\treadonly requestId: string;\n\treadonly operationId: string;\n\treadonly routeId: string;\n\treadonly executorId: string;\n\treadonly profileId: string;\n\treadonly status: ExecutorOutcomeStatus;\n\treadonly summary: string;\n\treadonly summaryTruncated?: boolean;\n\treadonly summaryChars?: number;\n\treadonly summaryLimitChars?: number;\n\treadonly errorKind?: string;\n\treadonly retryable?: boolean;\n\treadonly nextActions?: readonly string[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly materialRefs?: readonly SourceRef[];\n\treadonly issues?: readonly DataIssue[];\n\treadonly usage?: ExecutorUsage;\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * Output bundle for ExecutorOutcome view projectors (D359).\n */\nexport interface ExecutorOutcomeViewBundle {\n\treadonly views: Node<ExecutorOutcomeView>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport interface ContextContribution {\n\treadonly kind: \"context-contribution\";\n\treadonly contributionId: string;\n\treadonly requestId: string;\n\treadonly operationId: string;\n\treadonly status: \"ready\" | \"pending\" | \"issue\";\n\treadonly frameId?: string;\n\treadonly issues?: readonly DataIssue[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface PromptBundle {\n\treadonly kind: \"prompt-bundle\";\n\treadonly promptId: string;\n\treadonly requestId: string;\n\treadonly operationId: string;\n\treadonly status: \"ready\" | \"partial\" | \"issue\";\n\treadonly sourceFrameIds?: readonly string[];\n\treadonly issues?: readonly DataIssue[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AgentRequestSatisfactionBundle {\n\treadonly status: Node<AgentRequestStatusChanged>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport type AgentDecisionKind = \"continue\" | \"final\" | \"blocked\";\n\nexport interface AgentNeed {\n\treadonly kind: string;\n\treadonly message?: string;\n\treadonly refs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AgentDecisionBase {\n\treadonly kind: AgentDecisionKind;\n\treadonly decisionId: string;\n\treadonly effectRunId: string;\n\treadonly agentRunId: string;\n\treadonly source: {\n\t\treadonly requestId: string;\n\t\treadonly operationId: string;\n\t\treadonly outcomeId: string;\n\t};\n\treadonly reason?: string;\n\treadonly confidence?: number;\n\treadonly evidenceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AgentDecisionContinue extends AgentDecisionBase {\n\treadonly kind: \"continue\";\n\treadonly next: readonly AgentRequestProposal[];\n}\n\nexport interface AgentDecisionFinal extends AgentDecisionBase {\n\treadonly kind: \"final\";\n\treadonly output: AgentOutputEnvelope;\n\treadonly summary?: string;\n}\n\nexport interface AgentDecisionBlocked extends AgentDecisionBase {\n\treadonly kind: \"blocked\";\n\treadonly needs: readonly AgentNeed[];\n}\n\nexport type AgentDecision = AgentDecisionContinue | AgentDecisionFinal | AgentDecisionBlocked;\n\nexport interface StructuredAgentDecisionEnvelope {\n\treadonly kind: \"agent-decision\";\n\treadonly decision: AgentDecision;\n\treadonly schemaRef: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n}\n\nexport interface StructuredAgentDecisionInterpreterBundle {\n\treadonly decisions: Node<AgentDecision>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport type EffectRunResultStatus =\n\t| \"completed\"\n\t| \"failed\"\n\t| \"blocked\"\n\t| \"canceled\"\n\t| \"timeout\"\n\t| \"waived\";\n\nexport interface EffectRunResultBase {\n\treadonly kind: \"effect-run-result\";\n\treadonly resultId: string;\n\treadonly status: EffectRunResultStatus;\n\treadonly effectRunId: string;\n\treadonly subjectRefs?: readonly SourceRef[];\n\treadonly operationId?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly issues?: readonly DataIssue[];\n\treadonly auditRefs?: readonly string[];\n\treadonly completedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type EffectRunResult =\n\t| (EffectRunResultBase & { readonly status: \"completed\"; readonly output: AgentOutputEnvelope })\n\t| (EffectRunResultBase & { readonly status: \"failed\"; readonly error: DataIssue })\n\t| (EffectRunResultBase & { readonly status: \"blocked\"; readonly needs: readonly AgentNeed[] })\n\t| (EffectRunResultBase & { readonly status: \"canceled\"; readonly reason?: string })\n\t| (EffectRunResultBase & { readonly status: \"timeout\"; readonly timeoutMs?: number })\n\t| (EffectRunResultBase & { readonly status: \"waived\"; readonly reason?: string });\n\nexport interface EffectRunCompletionBundle {\n\treadonly results: Node<EffectRunResult>;\n\treadonly status: Node<EffectRunCompletionStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport interface EffectRunCompletionStatus {\n\treadonly effectRunId: string;\n\treadonly state:\n\t\t| \"pending\"\n\t\t| \"completed\"\n\t\t| \"failed\"\n\t\t| \"blocked\"\n\t\t| \"canceled\"\n\t\t| \"timeout\"\n\t\t| \"waived\";\n\treadonly requiredPending: readonly string[];\n\treadonly requiredTerminal: readonly string[];\n\treadonly sourceRefs?: readonly SourceRef[];\n}\n\nexport interface AgentRuntimeAuditRecord {\n\treadonly id: string;\n\treadonly kind: string;\n\treadonly subjectId?: string;\n\treadonly message?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly issueCode?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\ninterface RequestSatisfactionState {\n\trequests: Map<string, AgentRequestIssued>;\n\tprofiles: Map<string, ExecutorProfile>;\n\troutes: Map<string, ExecutorRoute>;\n\toutcomes: Map<string, ExecutorOutcome>;\n\tcontexts: Map<string, ContextContribution>;\n\tprompts: Map<string, PromptBundle>;\n\tcompatibleRoutesByRouteId: Map<string, ExecutorRoute>;\n\tterminalRequests: Set<string>;\n\tacceptedTerminalFactIds: Set<string>;\n\tissueKeys: Set<string>;\n\tstatusKeys: Set<string>;\n\tissueSeq: number;\n\tauditSeq: number;\n}\n\nexport function agentRequestProposalFromDecision(\n\tdecision: AgentDecisionContinue,\n\tproposal: Omit<AgentRequestProposal, \"kind\" | \"effectRunId\" | \"agentRunId\" | \"sourceDecisionId\">,\n): AgentRequestProposal {\n\treturn {\n\t\tkind: \"proposal\",\n\t\t...proposal,\n\t\teffectRunId: decision.effectRunId,\n\t\tagentRunId: decision.agentRunId,\n\t\tsourceDecisionId: decision.decisionId,\n\t\tevidenceRefs: proposal.evidenceRefs ?? decision.evidenceRefs,\n\t};\n}\n\nexport function admitAgentRequestProposal(\n\tproposal: AgentRequestProposal,\n\topts: {\n\t\treadonly requestId: string;\n\t\treadonly operationId: string;\n\t\treadonly admittedAtMs?: number;\n\t\treadonly reason?: string;\n\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\treadonly metadata?: Record<string, unknown>;\n\t},\n): AgentRequestAdmitted {\n\treturn {\n\t\tkind: \"admitted\",\n\t\tproposalId: proposal.proposalId,\n\t\trequestId: opts.requestId,\n\t\toperationId: opts.operationId,\n\t\teffectRunId: proposal.effectRunId,\n\t\tagentRunId: proposal.agentRunId,\n\t\tadmittedAtMs: opts.admittedAtMs,\n\t\treason: opts.reason,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function issueAgentRequest(\n\tproposal: AgentRequestProposal,\n\tadmission: AgentRequestAdmitted,\n\topts: { readonly issuedAtMs?: number; readonly sourceRefs?: readonly SourceRef[] } = {},\n): AgentRequestIssued {\n\treturn {\n\t\tkind: \"issued\",\n\t\trequestId: admission.requestId,\n\t\toperationId: admission.operationId,\n\t\teffectRunId: admission.effectRunId,\n\t\tagentRunId: admission.agentRunId,\n\t\tproposalId: proposal.proposalId,\n\t\tparentRequestId: proposal.parentRequestId,\n\t\trequestKind: proposal.requestKind,\n\t\trequired: proposal.required ?? true,\n\t\tinput: proposal.input,\n\t\tpayload: proposal.payload,\n\t\tissuedAtMs: opts.issuedAtMs,\n\t\tsourceRefs: opts.sourceRefs ?? admission.sourceRefs,\n\t\tmetadata: proposal.metadata,\n\t};\n}\n\nexport function agentRequestLedgerViews(\n\tgraph: Graph,\n\tfacts: Node<AgentRequestFact>,\n\topts: { readonly name?: string } = {},\n): AgentRequestLedgerBundle {\n\tconst name = opts.name ?? \"agentRequests\";\n\tconst views = graph.node<AgentRequestViews>(\n\t\t[facts],\n\t\t(ctx) => {\n\t\t\tconst prev = ctx.state.get<AgentRequestViewsState>() ?? emptyAgentRequestViewsState();\n\t\t\tconst next = cloneAgentRequestViewsState(prev);\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst fact = raw as AgentRequestFact;\n\t\t\t\treduceAgentRequestViews(next, fact);\n\t\t\t}\n\t\t\tctx.state.set(next);\n\t\t\tctx.down([[\"DATA\", freezeAgentRequestViews(next)]]);\n\t\t},\n\t\t{ name: `${name}/views`, factory: \"agentRequestLedgerViews\" },\n\t);\n\tconst issues = graph.node<DataIssue>(\n\t\t[facts],\n\t\t(ctx) => {\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst fact = raw as AgentRequestFact;\n\t\t\t\tif (fact.kind === \"rejected\") ctx.down([[\"DATA\", fact.issue]]);\n\t\t\t\tif (fact.kind === \"status\") {\n\t\t\t\t\tfor (const issue of fact.issues ?? []) ctx.down([[\"DATA\", issue]]);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{ name: `${name}/issues`, factory: \"agentRequestLedgerIssues\" },\n\t);\n\tconst audit = graph.node<AgentRuntimeAuditRecord>(\n\t\t[facts],\n\t\t(ctx) => {\n\t\t\tlet seq = ctx.state.get<number>() ?? 0;\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tseq += 1;\n\t\t\t\tconst fact = raw as AgentRequestFact;\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\tid: `${name}:ledger:${seq}`,\n\t\t\t\t\t\t\tkind: `agent-request-${fact.kind}`,\n\t\t\t\t\t\t\tsubjectId: \"requestId\" in fact ? fact.requestId : fact.proposalId,\n\t\t\t\t\t\t} satisfies AgentRuntimeAuditRecord,\n\t\t\t\t\t],\n\t\t\t\t]);\n\t\t\t}\n\t\t\tctx.state.set(seq);\n\t\t},\n\t\t{ name: `${name}/audit`, factory: \"agentRequestLedgerAudit\" },\n\t);\n\treturn { views, issues, audit };\n}\n\nexport function requestSatisfactionProjector(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly requestFacts: Node<AgentRequestFact>;\n\t\treadonly executorProfiles?: readonly Node<ExecutorProfile>[];\n\t\treadonly executorRoutes?: readonly Node<ExecutorRoute>[];\n\t\treadonly executorOutcomes?: readonly Node<ExecutorOutcome>[];\n\t\treadonly contextContributions?: readonly Node<ContextContribution>[];\n\t\treadonly promptBundles?: readonly Node<PromptBundle>[];\n\t},\n): AgentRequestSatisfactionBundle {\n\tconst name = opts.name ?? \"requestSatisfaction\";\n\tconst profileDeps = opts.executorProfiles ?? [];\n\tconst routeDeps = opts.executorRoutes ?? [];\n\tconst outcomeDeps = opts.executorOutcomes ?? [];\n\tconst contextDeps = opts.contextContributions ?? [];\n\tconst promptDeps = opts.promptBundles ?? [];\n\tconst deps = [\n\t\topts.requestFacts,\n\t\t...profileDeps,\n\t\t...routeDeps,\n\t\t...outcomeDeps,\n\t\t...contextDeps,\n\t\t...promptDeps,\n\t];\n\tconst profileStart = 1;\n\tconst routeStart = profileStart + profileDeps.length;\n\tconst outcomeStart = routeStart + routeDeps.length;\n\tconst contextStart = outcomeStart + outcomeDeps.length;\n\tconst promptStart = contextStart + contextDeps.length;\n\tconst runtime = graph.node<AgentRequestSatisfactionFact>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<RequestSatisfactionState>() ?? {\n\t\t\t\trequests: new Map<string, AgentRequestIssued>(),\n\t\t\t\tprofiles: new Map<string, ExecutorProfile>(),\n\t\t\t\troutes: new Map<string, ExecutorRoute>(),\n\t\t\t\toutcomes: new Map<string, ExecutorOutcome>(),\n\t\t\t\tcontexts: new Map<string, ContextContribution>(),\n\t\t\t\tprompts: new Map<string, PromptBundle>(),\n\t\t\t\tcompatibleRoutesByRouteId: new Map<string, ExecutorRoute>(),\n\t\t\t\tterminalRequests: new Set<string>(),\n\t\t\t\tacceptedTerminalFactIds: new Set<string>(),\n\t\t\t\tissueKeys: new Set<string>(),\n\t\t\t\tstatusKeys: new Set<string>(),\n\t\t\t\tissueSeq: 0,\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const fact of depBatch(ctx, 0) ?? []) {\n\t\t\t\tif ((fact as AgentRequestFact).kind === \"issued\") {\n\t\t\t\t\tconst request = fact as AgentRequestIssued;\n\t\t\t\t\tstate.requests.set(request.requestId, request);\n\t\t\t\t\temitStatus(ctx, state, request, initialRequestStatus(request), [\n\t\t\t\t\t\tref(\"agent-request\", request.requestId),\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tforEachDepBatch(ctx, profileStart, profileDeps.length, (raw) => {\n\t\t\t\tconst profile = raw as ExecutorProfile;\n\t\t\t\tstate.profiles.set(profile.profileId, profile);\n\t\t\t});\n\t\t\tforEachDepBatch(ctx, routeStart, routeDeps.length, (raw) => {\n\t\t\t\tconst route = raw as ExecutorRoute;\n\t\t\t\tstate.routes.set(route.routeId, route);\n\t\t\t});\n\t\t\tforEachDepBatch(ctx, outcomeStart, outcomeDeps.length, (raw) => {\n\t\t\t\tconst outcome = raw as ExecutorOutcome;\n\t\t\t\tstate.outcomes.set(outcome.outcomeId, outcome);\n\t\t\t});\n\t\t\tforEachDepBatch(ctx, contextStart, contextDeps.length, (raw) => {\n\t\t\t\tconst contribution = raw as ContextContribution;\n\t\t\t\tstate.contexts.set(contribution.contributionId, contribution);\n\t\t\t});\n\t\t\tforEachDepBatch(ctx, promptStart, promptDeps.length, (raw) => {\n\t\t\t\tconst prompt = raw as PromptBundle;\n\t\t\t\tstate.prompts.set(prompt.promptId, prompt);\n\t\t\t});\n\t\t\tevaluateRequestSatisfaction(ctx, state);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{ name: `${name}/runtime`, factory: \"requestSatisfactionProjector\" },\n\t);\n\tconst status = graph.node<AgentRequestStatusChanged>(\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 AgentRequestSatisfactionFact;\n\t\t\t\tif (typed.kind === \"status\") ctx.down([[\"DATA\", typed.status]]);\n\t\t\t}\n\t\t},\n\t\t{ name: `${name}/status`, factory: \"requestSatisfactionStatus\" },\n\t);\n\tconst issues = graph.node<DataIssue>(\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 AgentRequestSatisfactionFact;\n\t\t\t\tif (typed.kind === \"issue\") ctx.down([[\"DATA\", typed.issue]]);\n\t\t\t}\n\t\t},\n\t\t{ name: `${name}/issues`, factory: \"requestSatisfactionIssues\" },\n\t);\n\tconst audit = graph.node<AgentRuntimeAuditRecord>(\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 AgentRequestSatisfactionFact;\n\t\t\t\tif (typed.kind === \"audit\") ctx.down([[\"DATA\", typed.audit]]);\n\t\t\t}\n\t\t},\n\t\t{ name: `${name}/audit`, factory: \"requestSatisfactionAudit\" },\n\t);\n\treturn { status, issues, audit };\n}\n\nexport function localBuiltinToolProviderCatalog(\n\topts: LocalBuiltinToolProviderCatalogOptions = {},\n): ToolProviderCatalog {\n\tconst providerId = opts.providerId ?? \"local-builtin\";\n\tconst executorId = opts.executorId ?? `${providerId}:tool-executor`;\n\tconst profileId = opts.profileId ?? `${providerId}:tool-profile`;\n\tconst tools =\n\t\topts.tools ??\n\t\t([\n\t\t\t{ toolName: \"document/read-doc\", operation: \"read\" },\n\t\t\t{ toolName: \"file.read\", operation: \"read\" },\n\t\t\t{ toolName: \"file.edit/apply-patch\", operation: \"edit\" },\n\t\t\t{ toolName: \"bash.run\", operation: \"run\" },\n\t\t\t{ toolName: \"url.fetch\", operation: \"fetch\" },\n\t\t\t{ toolName: \"date.now\", operation: \"read\" },\n\t\t\t{ toolName: \"weather.fetch\", operation: \"fetch\" },\n\t\t\t{ toolName: \"calculator/eval\", operation: \"eval\" },\n\t\t] satisfies readonly Omit<\n\t\t\tToolProviderCatalogEntry,\n\t\t\t\"kind\" | \"providerId\" | \"inputKind\" | \"profileId\" | \"executorId\"\n\t\t>[]);\n\tconst toolEntries = tools.map((tool) =>\n\t\tObject.freeze({\n\t\t\tkind: \"tool-catalog-entry\",\n\t\t\tproviderId,\n\t\t\tinputKind: \"tool-call\",\n\t\t\tprofileId,\n\t\t\texecutorId,\n\t\t\t...tool,\n\t\t} satisfies ToolProviderCatalogEntry),\n\t);\n\treturn Object.freeze({\n\t\tkind: \"tool-provider-catalog\",\n\t\tproviderId,\n\t\tproviderKind: \"local-builtin\",\n\t\tstatus: \"ready\",\n\t\tprofiles: Object.freeze([\n\t\t\tObject.freeze({\n\t\t\t\tprofileId,\n\t\t\t\texecutorId,\n\t\t\t\tkind: \"tool\",\n\t\t\t\tacceptedInputKinds: Object.freeze([\"tool-call\"]),\n\t\t\t\tacceptedResultKinds: Object.freeze(\n\t\t\t\t\tArray.from(new Set(toolEntries.flatMap((tool) => tool.resultKinds ?? []))),\n\t\t\t\t),\n\t\t\t\tcapabilities: Object.freeze({\n\t\t\t\t\ttoolNames: Object.freeze(toolEntries.map((tool) => tool.toolName)),\n\t\t\t\t\t...(opts.capabilities ?? {}),\n\t\t\t\t}),\n\t\t\t\tlimits: opts.limits,\n\t\t\t\tmetadata: opts.metadata,\n\t\t\t} satisfies ExecutorProfile),\n\t\t]),\n\t\ttools: Object.freeze(toolEntries),\n\t\tmetadata: opts.metadata,\n\t});\n}\n\nexport function executorOutcomeViewProjector(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly outcomes: Node<ExecutorOutcome>;\n\t\treadonly policy?: ExecutorOutcomeViewPolicy;\n\t},\n): ExecutorOutcomeViewBundle {\n\tconst name = opts.name ?? \"executorOutcomeViews\";\n\tconst policy = {\n\t\taudience: opts.policy?.audience ?? \"agent-observation\",\n\t\tmaxSummaryChars: opts.policy?.maxSummaryChars ?? 512,\n\t\tincludeIssues: opts.policy?.includeIssues ?? true,\n\t\tincludeUsage: opts.policy?.includeUsage ?? false,\n\t\tincludeMetadata: opts.policy?.includeMetadata ?? false,\n\t} satisfies Required<ExecutorOutcomeViewPolicy>;\n\tconst runtime = graph.node<ExecutorOutcomeViewFact>(\n\t\t[opts.outcomes],\n\t\t(ctx) => {\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst outcome = raw as ExecutorOutcome;\n\t\t\t\tconst projection = executorOutcomeViewProjectionFromOutcome(outcome, policy);\n\t\t\t\tctx.down([\n\t\t\t\t\t[\"DATA\", { kind: \"view\", view: projection.view } satisfies ExecutorOutcomeViewFact],\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: `${outcome.outcomeId}:outcome-view:${policy.audience}`,\n\t\t\t\t\t\t\t\tkind: \"executor-outcome-view-projected\",\n\t\t\t\t\t\t\t\tsubjectId: outcome.requestId,\n\t\t\t\t\t\t\t\tsourceRefs: [ref(\"executor-outcome\", outcome.outcomeId)],\n\t\t\t\t\t\t\t\tmetadata: { audience: policy.audience, status: outcome.kind },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies ExecutorOutcomeViewFact,\n\t\t\t\t\t],\n\t\t\t\t]);\n\t\t\t\tfor (const issue of projection.issues) {\n\t\t\t\t\tctx.down([[\"DATA\", { kind: \"issue\", issue } satisfies ExecutorOutcomeViewFact]]);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{ name: `${name}/runtime`, factory: \"executorOutcomeViewProjector\" },\n\t);\n\treturn {\n\t\tviews: projectRuntimeFact(graph, runtime, `${name}/views`, \"executorOutcomeViews\", (fact) =>\n\t\t\tfact.kind === \"view\" ? fact.view : 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\"executorOutcomeViewIssues\",\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\"executorOutcomeViewAudit\",\n\t\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t\t),\n\t};\n}\n\nexport function structuredAgentDecisionInterpreter(\n\tgraph: Graph,\n\toutcomes: Node<ExecutorOutcome>,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly schemaRef?: string;\n\t\treadonly requestFacts?: readonly Node<AgentRequestFact>[];\n\t} = {},\n): StructuredAgentDecisionInterpreterBundle {\n\tconst name = opts.name ?? \"structuredAgentDecisionInterpreter\";\n\tconst requestFacts = opts.requestFacts ?? [];\n\tconst runtime = graph.node<StructuredAgentDecisionInterpreterFact>(\n\t\t[outcomes, ...requestFacts],\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<StructuredInterpreterState>() ?? {\n\t\t\t\trequests: new Map<string, AgentRequestIssued>(),\n\t\t\t\tissueSeq: 0,\n\t\t\t};\n\t\t\tforEachDepBatch(ctx, 1, requestFacts.length, (raw) => {\n\t\t\t\tconst fact = raw as AgentRequestFact;\n\t\t\t\tif (fact.kind === \"issued\") state.requests.set(fact.requestId, fact);\n\t\t\t});\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst outcome = raw as ExecutorOutcome;\n\t\t\t\tif (outcome.kind !== \"result\") {\n\t\t\t\t\tstate.issueSeq += 1;\n\t\t\t\t\temitInterpreterIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate.issueSeq,\n\t\t\t\t\t\toutcome,\n\t\t\t\t\t\t\"non-result-outcome\",\n\t\t\t\t\t\t\"Only result outcomes can carry AgentDecision envelopes\",\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst value = outcome.result.value;\n\t\t\t\tif (!isRecord(value)) {\n\t\t\t\t\tstate.issueSeq += 1;\n\t\t\t\t\temitInterpreterIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate.issueSeq,\n\t\t\t\t\t\toutcome,\n\t\t\t\t\t\t\"malformed-agent-decision\",\n\t\t\t\t\t\t\"ExecutorOutcome result must carry a structured agent-decision envelope\",\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst envelope = value as Partial<StructuredAgentDecisionEnvelope>;\n\t\t\t\tif (envelope.kind !== \"agent-decision\" || !isRecord(envelope.decision)) {\n\t\t\t\t\tstate.issueSeq += 1;\n\t\t\t\t\temitInterpreterIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate.issueSeq,\n\t\t\t\t\t\toutcome,\n\t\t\t\t\t\t\"malformed-agent-decision\",\n\t\t\t\t\t\t\"Structured agent-decision envelope is missing kind or decision\",\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (typeof envelope.schemaRef !== \"string\" || envelope.schemaRef.length === 0) {\n\t\t\t\t\tstate.issueSeq += 1;\n\t\t\t\t\temitInterpreterIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate.issueSeq,\n\t\t\t\t\t\toutcome,\n\t\t\t\t\t\t\"missing-agent-decision-schema\",\n\t\t\t\t\t\t\"Structured agent-decision envelope must carry schemaRef evidence\",\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (opts.schemaRef !== undefined && envelope.schemaRef !== opts.schemaRef) {\n\t\t\t\t\tstate.issueSeq += 1;\n\t\t\t\t\temitInterpreterIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate.issueSeq,\n\t\t\t\t\t\toutcome,\n\t\t\t\t\t\t\"agent-decision-schema-mismatch\",\n\t\t\t\t\t\t\"Structured agent-decision envelope schemaRef did not match\",\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst decision = validateAgentDecision(envelope.decision, outcome);\n\t\t\t\tif (typeof decision === \"string\") {\n\t\t\t\t\tstate.issueSeq += 1;\n\t\t\t\t\temitInterpreterIssue(ctx, state.issueSeq, outcome, \"malformed-agent-decision\", decision);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst request = state.requests.get(decision.source.requestId);\n\t\t\t\tif (request === undefined) {\n\t\t\t\t\tstate.issueSeq += 1;\n\t\t\t\t\temitInterpreterIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate.issueSeq,\n\t\t\t\t\t\toutcome,\n\t\t\t\t\t\t\"missing-agent-decision-request\",\n\t\t\t\t\t\t\"AgentDecision source request must be present in the request ledger\",\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\trequest.effectRunId !== decision.effectRunId ||\n\t\t\t\t\trequest.operationId !== decision.source.operationId\n\t\t\t\t) {\n\t\t\t\t\tstate.issueSeq += 1;\n\t\t\t\t\temitInterpreterIssue(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate.issueSeq,\n\t\t\t\t\t\toutcome,\n\t\t\t\t\t\t\"stale-agent-decision-source\",\n\t\t\t\t\t\t\"AgentDecision source request/effectRun/operation identity did not match the request ledger\",\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tctx.down([\n\t\t\t\t\t[\"DATA\", { kind: \"decision\", decision } satisfies StructuredAgentDecisionInterpreterFact],\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: `${outcome.outcomeId}:agent-decision-interpreted`,\n\t\t\t\t\t\t\t\tkind: \"agent-decision-interpreted\",\n\t\t\t\t\t\t\t\tsubjectId: decision.effectRunId,\n\t\t\t\t\t\t\t\tsourceRefs: [ref(\"executor-outcome\", outcome.outcomeId)],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} satisfies StructuredAgentDecisionInterpreterFact,\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: \"structuredAgentDecisionInterpreter\" },\n\t);\n\treturn {\n\t\tdecisions: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/decisions`,\n\t\t\t\"structuredAgentDecisions\",\n\t\t\t(fact) => (fact.kind === \"decision\" ? fact.decision : 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\"structuredAgentDecisionIssues\",\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\"structuredAgentDecisionAudit\",\n\t\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t\t),\n\t};\n}\n\nexport function effectRunCompletionProjector(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly effectRuns: Node<EffectRun>;\n\t\treadonly decisions?: readonly Node<AgentDecision>[];\n\t\treadonly requestStatuses?: readonly Node<AgentRequestStatusChanged>[];\n\t\treadonly requestFacts?: readonly Node<AgentRequestFact>[];\n\t\treadonly resultCandidates?: readonly Node<EffectRunResult>[];\n\t\treadonly now?: () => number;\n\t},\n): EffectRunCompletionBundle {\n\tconst name = opts.name ?? \"effectRunCompletion\";\n\tconst decisions = opts.decisions ?? [];\n\tconst requestStatuses = opts.requestStatuses ?? [];\n\tconst requestFacts = opts.requestFacts ?? [];\n\tconst resultCandidates = opts.resultCandidates ?? [];\n\tconst deps = [\n\t\topts.effectRuns,\n\t\t...decisions,\n\t\t...requestStatuses,\n\t\t...requestFacts,\n\t\t...resultCandidates,\n\t];\n\tconst decisionStart = 1;\n\tconst requestStatusStart = decisionStart + decisions.length;\n\tconst requestFactStart = requestStatusStart + requestStatuses.length;\n\tconst resultCandidateStart = requestFactStart + requestFacts.length;\n\tconst now = opts.now ?? Date.now;\n\tconst runtime = graph.node<EffectRunCompletionFact>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<EffectRunCompletionState>() ?? emptyEffectRunCompletionState();\n\t\t\tconst touchedEffectRunIds = new Set<string>();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst run = raw as EffectRun;\n\t\t\t\tstate.runs.set(run.effectRunId, run);\n\t\t\t\ttouchedEffectRunIds.add(run.effectRunId);\n\t\t\t}\n\t\t\tforEachDepBatch(ctx, requestFactStart, requestFacts.length, (raw) => {\n\t\t\t\tconst fact = raw as AgentRequestFact;\n\t\t\t\tif (fact.kind === \"issued\") {\n\t\t\t\t\tstate.requests.set(fact.requestId, fact);\n\t\t\t\t\ttouchedEffectRunIds.add(fact.effectRunId);\n\t\t\t\t\tconst existingStatus = state.statusByRequest.get(fact.requestId);\n\t\t\t\t\tif (existingStatus !== undefined && !statusMatchesRequest(existingStatus, fact)) {\n\t\t\t\t\t\temitEffectRunIssue(\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\"stale-request-status\",\n\t\t\t\t\t\t\t`AgentRequest status for '${fact.requestId}' did not match its issued effectRun/operation identity`,\n\t\t\t\t\t\t\tfact.effectRunId,\n\t\t\t\t\t\t\t[ref(\"agent-request\", fact.requestId)],\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst result = state.resultsByEffectRun.get(fact.effectRunId);\n\t\t\t\t\tif (result !== undefined && fact.required) {\n\t\t\t\t\t\tstate.issueSeq += 1;\n\t\t\t\t\t\tconst issue = dataIssue(\n\t\t\t\t\t\t\t\"late-required-request-after-effect-run-result\",\n\t\t\t\t\t\t\t`Required request '${fact.requestId}' arrived after EffectRun '${fact.effectRunId}' already had a terminal result`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsubjectId: fact.effectRunId,\n\t\t\t\t\t\t\t\trefs: [\n\t\t\t\t\t\t\t\t\tref(\"agent-request\", fact.requestId),\n\t\t\t\t\t\t\t\t\tref(\"effect-run-result\", result.resultId),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tctx.down([\n\t\t\t\t\t\t\t[\"DATA\", { kind: \"issue\", issue } satisfies EffectRunCompletionFact],\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\"DATA\",\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tkind: \"audit\",\n\t\t\t\t\t\t\t\t\taudit: {\n\t\t\t\t\t\t\t\t\t\tid: `${fact.effectRunId}:late-required-request:${state.issueSeq}`,\n\t\t\t\t\t\t\t\t\t\tkind: \"late-required-request-after-effect-run-result\",\n\t\t\t\t\t\t\t\t\t\tsubjectId: fact.effectRunId,\n\t\t\t\t\t\t\t\t\t\tissueCode: issue.code,\n\t\t\t\t\t\t\t\t\t\tsourceRefs: [\n\t\t\t\t\t\t\t\t\t\t\tref(\"agent-request\", fact.requestId),\n\t\t\t\t\t\t\t\t\t\t\tref(\"effect-run-result\", result.resultId),\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} satisfies EffectRunCompletionFact,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t} else if (fact.kind === \"status\") {\n\t\t\t\t\tacceptRequestStatus(ctx, state, fact);\n\t\t\t\t\ttouchedEffectRunIds.add(fact.effectRunId);\n\t\t\t\t}\n\t\t\t});\n\t\t\tforEachDepBatch(ctx, requestStatusStart, requestStatuses.length, (raw) => {\n\t\t\t\tconst status = raw as AgentRequestStatusChanged;\n\t\t\t\tacceptRequestStatus(ctx, state, status);\n\t\t\t\ttouchedEffectRunIds.add(status.effectRunId);\n\t\t\t});\n\t\t\tforEachDepBatch(ctx, resultCandidateStart, resultCandidates.length, (raw) => {\n\t\t\t\tacceptEffectRunResultCandidate(ctx, state, raw as EffectRunResult);\n\t\t\t});\n\t\t\tforEachDepBatch(ctx, decisionStart, decisions.length, (raw) => {\n\t\t\t\tconst decision = raw as AgentDecision;\n\t\t\t\tstate.decisions.set(decision.decisionId, decision);\n\t\t\t\ttouchedEffectRunIds.add(decision.effectRunId);\n\t\t\t});\n\t\t\tfor (const decision of state.decisions.values()) {\n\t\t\t\tif (state.resultsByEffectRun.has(decision.effectRunId)) continue;\n\t\t\t\tconst candidate = candidateFromDecision(decision, state, now());\n\t\t\t\tif (candidate === undefined) continue;\n\t\t\t\tacceptEffectRunResultCandidate(ctx, state, candidate);\n\t\t\t}\n\t\t\tfor (const effectRunId of touchedEffectRunIds) {\n\t\t\t\tif (!state.resultsByEffectRun.has(effectRunId)) {\n\t\t\t\t\temitEffectRunStatus(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\teffectRunId,\n\t\t\t\t\t\t\"pending\",\n\t\t\t\t\t\trequiredPendingRequests(effectRunId, state),\n\t\t\t\t\t\trequiredTerminalRequests(effectRunId, state),\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: \"effectRunCompletionProjector\" },\n\t);\n\treturn {\n\t\tresults: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/results`,\n\t\t\t\"effectRunCompletionResults\",\n\t\t\t(fact) => (fact.kind === \"result\" ? fact.result : 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\"effectRunCompletionStatus\",\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\"effectRunCompletionIssues\",\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\"effectRunCompletionAudit\",\n\t\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t\t),\n\t};\n}\n\nexport function fakeExecutorResult<T>(\n\topts: Omit<ExecutorOutcomeBase, \"kind\"> & { readonly result: AgentOutputEnvelope<T> },\n): ExecutorOutcome<T> {\n\treturn { kind: \"result\", ...opts };\n}\n\nexport function fakeExecutorFailure(\n\topts: Omit<ExecutorOutcomeBase, \"kind\"> & {\n\t\treadonly error: DataIssue;\n\t\treadonly retryable?: boolean;\n\t},\n): ExecutorOutcome {\n\treturn { kind: \"failure\", ...opts };\n}\n\nexport function fakeExecutorBlocked(\n\topts: Omit<ExecutorOutcomeBase, \"kind\"> & { readonly needs: readonly AgentNeed[] },\n): ExecutorOutcome {\n\treturn { kind: \"blocked\", ...opts };\n}\n\nexport function fakeExecutorTimeout(\n\topts: Omit<ExecutorOutcomeBase, \"kind\"> & {\n\t\treadonly timeoutMs?: number;\n\t\treadonly retryable?: boolean;\n\t},\n): ExecutorOutcome {\n\treturn { kind: \"timeout\", ...opts };\n}\n\nexport function fakeExecutorCanceled(\n\topts: Omit<ExecutorOutcomeBase, \"kind\"> & { readonly reason?: string },\n): ExecutorOutcome {\n\treturn { kind: \"canceled\", ...opts };\n}\n\ntype AgentRequestSatisfactionFact =\n\t| { readonly kind: \"status\"; readonly status: AgentRequestStatusChanged }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\ntype ExecutorOutcomeViewFact =\n\t| { readonly kind: \"view\"; readonly view: ExecutorOutcomeView }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\ninterface ExecutorOutcomeViewProjection {\n\treadonly view: ExecutorOutcomeView;\n\treadonly issues: readonly DataIssue[];\n}\n\ninterface ExecutorOutcomeSummaryProjection {\n\treadonly summary: string;\n\treadonly truncated: boolean;\n\treadonly originalChars: number;\n\treadonly limitChars: number;\n}\n\ntype StructuredAgentDecisionInterpreterFact =\n\t| { readonly kind: \"decision\"; readonly decision: AgentDecision }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\ntype EffectRunCompletionFact =\n\t| { readonly kind: \"result\"; readonly result: EffectRunResult }\n\t| { readonly kind: \"status\"; readonly status: EffectRunCompletionStatus }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord };\n\ninterface AgentRequestViewsState {\n\trequestsById: Map<string, AgentRequestIssued>;\n\trequestsByEffectRun: Map<string, string[]>;\n\tstatusByRequest: Map<string, AgentRequestStatusChanged>;\n\tissues: DataIssue[];\n\taudit: AgentRuntimeAuditRecord[];\n\tauditSeq: number;\n}\n\ninterface EffectRunCompletionState {\n\truns: Map<string, EffectRun>;\n\trequests: Map<string, AgentRequestIssued>;\n\tstatusByRequest: Map<string, AgentRequestStatusChanged>;\n\tdecisions: Map<string, AgentDecision>;\n\tresultsByEffectRun: Map<string, EffectRunResult>;\n\tissueSeq: number;\n}\n\ninterface StructuredInterpreterState {\n\trequests: Map<string, AgentRequestIssued>;\n\tissueSeq: number;\n}\n\nfunction initialRequestStatus(request: AgentRequestIssued): AgentRequestStatus {\n\tif (request.requestKind === \"context\") return \"awaiting-context\";\n\tif (request.requestKind === \"prompt\") return \"awaiting-prompt\";\n\treturn \"awaiting-route\";\n}\n\nfunction evaluateRequestSatisfaction(ctx: Ctx, state: RequestSatisfactionState): void {\n\tfor (const route of state.routes.values()) handleRoute(ctx, state, route);\n\tfor (const contribution of state.contexts.values())\n\t\thandleContextContribution(ctx, state, contribution);\n\tfor (const prompt of state.prompts.values()) handlePromptBundle(ctx, state, prompt);\n\tfor (const outcome of state.outcomes.values()) handleExecutorOutcome(ctx, state, outcome);\n}\n\nfunction handleRoute(ctx: Ctx, state: RequestSatisfactionState, route: ExecutorRoute): void {\n\tconst request = state.requests.get(route.requestId);\n\tif (request === undefined) {\n\t\treturn;\n\t}\n\tif (state.terminalRequests.has(request.requestId)) {\n\t\tif (state.compatibleRoutesByRouteId.get(route.routeId)?.requestId !== request.requestId) {\n\t\t\temitIssueOnce(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\t`late-route:${route.routeId}`,\n\t\t\t\t\"late-route-after-terminal\",\n\t\t\t\t`ExecutorRoute '${route.routeId}' arrived after request '${request.requestId}' was already terminal`,\n\t\t\t\trequest.requestId,\n\t\t\t\t[ref(\"executor-route\", route.routeId), ref(\"agent-request\", request.requestId)],\n\t\t\t);\n\t\t}\n\t\treturn;\n\t}\n\tif (request.operationId !== route.operationId) {\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`stale-route:${route.routeId}`,\n\t\t\t\"stale-route-operation\",\n\t\t\t`ExecutorRoute '${route.routeId}' operationId does not match request '${request.requestId}'`,\n\t\t\trequest.requestId,\n\t\t\t[ref(\"executor-route\", route.routeId), ref(\"agent-request\", request.requestId)],\n\t\t);\n\t\treturn;\n\t}\n\tconst profile = state.profiles.get(route.profileId);\n\tif (profile === undefined) {\n\t\treturn;\n\t}\n\tconst compatibilityIssue = routeCompatibilityIssue(request, route, profile);\n\tif (compatibilityIssue !== undefined) {\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`route-incompatible:${route.routeId}:${compatibilityIssue}`,\n\t\t\tcompatibilityIssue,\n\t\t\t`ExecutorRoute '${route.routeId}' is incompatible with request '${request.requestId}'`,\n\t\t\trequest.requestId,\n\t\t\t[\n\t\t\t\tref(\"executor-route\", route.routeId),\n\t\t\t\tref(\"executor-profile\", profile.profileId),\n\t\t\t\tref(\"agent-request\", request.requestId),\n\t\t\t],\n\t\t);\n\t\treturn;\n\t}\n\tstate.compatibleRoutesByRouteId.set(route.routeId, route);\n\temitStatusOnce(\n\t\tctx,\n\t\tstate,\n\t\t`route:${route.routeId}:awaiting-provider`,\n\t\trequest,\n\t\t\"awaiting-provider\",\n\t\t[\n\t\t\tref(\"executor-route\", route.routeId),\n\t\t\tref(\"executor-profile\", profile.profileId),\n\t\t\tref(\"agent-request\", request.requestId),\n\t\t],\n\t);\n}\n\nfunction handleExecutorOutcome(\n\tctx: Ctx,\n\tstate: RequestSatisfactionState,\n\toutcome: ExecutorOutcome,\n): void {\n\tconst request = state.requests.get(outcome.requestId);\n\tif (request === undefined) {\n\t\treturn;\n\t}\n\tif (request.operationId !== outcome.operationId) {\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`stale-outcome:${outcome.outcomeId}`,\n\t\t\t\"stale-outcome-operation\",\n\t\t\t`ExecutorOutcome '${outcome.outcomeId}' operationId does not match request '${request.requestId}'`,\n\t\t\trequest.requestId,\n\t\t\t[ref(\"executor-outcome\", outcome.outcomeId), ref(\"agent-request\", request.requestId)],\n\t\t);\n\t\treturn;\n\t}\n\tconst route = state.compatibleRoutesByRouteId.get(outcome.routeId);\n\tif (route === undefined || route.requestId !== request.requestId) {\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`missing-route:${outcome.outcomeId}`,\n\t\t\t\"missing-compatible-route\",\n\t\t\t`ExecutorOutcome '${outcome.outcomeId}' has no compatible route for request '${request.requestId}'`,\n\t\t\trequest.requestId,\n\t\t\t[ref(\"executor-outcome\", outcome.outcomeId), ref(\"agent-request\", request.requestId)],\n\t\t);\n\t\treturn;\n\t}\n\tconst outcomeIssue = outcomeCompatibilityIssue(request, route, outcome);\n\tif (outcomeIssue !== undefined) {\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`outcome-incompatible:${outcome.outcomeId}:${outcomeIssue}`,\n\t\t\toutcomeIssue,\n\t\t\t`ExecutorOutcome '${outcome.outcomeId}' is incompatible with route '${route.routeId}' for request '${request.requestId}'`,\n\t\t\trequest.requestId,\n\t\t\t[\n\t\t\t\tref(\"executor-outcome\", outcome.outcomeId),\n\t\t\t\tref(\"executor-route\", route.routeId),\n\t\t\t\tref(\"agent-request\", request.requestId),\n\t\t\t],\n\t\t);\n\t\treturn;\n\t}\n\tif (state.terminalRequests.has(request.requestId)) {\n\t\tif (state.acceptedTerminalFactIds.has(`outcome:${outcome.outcomeId}`)) return;\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`duplicate-outcome:${outcome.outcomeId}`,\n\t\t\t\"duplicate-terminal-outcome\",\n\t\t\t`ExecutorOutcome '${outcome.outcomeId}' arrived after request '${request.requestId}' was already terminal`,\n\t\t\trequest.requestId,\n\t\t\t[ref(\"executor-outcome\", outcome.outcomeId), ref(\"agent-request\", request.requestId)],\n\t\t);\n\t\treturn;\n\t}\n\tstate.terminalRequests.add(request.requestId);\n\tstate.acceptedTerminalFactIds.add(`outcome:${outcome.outcomeId}`);\n\tconst status = outcomeStatus(outcome);\n\temitStatus(ctx, state, request, status, [\n\t\tref(\"executor-outcome\", outcome.outcomeId),\n\t\tref(\"executor-route\", route.routeId),\n\t\tref(\"agent-request\", request.requestId),\n\t]);\n}\n\nfunction handleContextContribution(\n\tctx: Ctx,\n\tstate: RequestSatisfactionState,\n\tcontribution: ContextContribution,\n): void {\n\tconst request = state.requests.get(contribution.requestId);\n\tif (request === undefined) return;\n\tif (request.operationId !== contribution.operationId) {\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`stale-context:${contribution.contributionId}`,\n\t\t\t\"stale-context-operation\",\n\t\t\t`ContextContribution '${contribution.contributionId}' operationId does not match request '${request.requestId}'`,\n\t\t\trequest.requestId,\n\t\t\t[ref(\"context-contribution\", contribution.contributionId)],\n\t\t);\n\t\treturn;\n\t}\n\tif (request.requestKind !== \"context\") {\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`wrong-context-kind:${contribution.contributionId}`,\n\t\t\t\"wrong-kind-context-satisfaction\",\n\t\t\t`ContextContribution '${contribution.contributionId}' cannot satisfy ${request.requestKind} request '${request.requestId}'`,\n\t\t\trequest.requestId,\n\t\t\t[ref(\"context-contribution\", contribution.contributionId)],\n\t\t);\n\t\treturn;\n\t}\n\tif (state.terminalRequests.has(request.requestId)) {\n\t\tif (\n\t\t\tstate.acceptedTerminalFactIds.has(`context:${contribution.contributionId}`) ||\n\t\t\tstate.statusKeys.has(`context:${contribution.contributionId}:awaiting-context`)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`duplicate-context:${contribution.contributionId}`,\n\t\t\t\"duplicate-terminal-context\",\n\t\t\t`ContextContribution '${contribution.contributionId}' arrived after request '${request.requestId}' was already terminal`,\n\t\t\trequest.requestId,\n\t\t\t[\n\t\t\t\tref(\"context-contribution\", contribution.contributionId),\n\t\t\t\tref(\"agent-request\", request.requestId),\n\t\t\t],\n\t\t);\n\t\treturn;\n\t}\n\tif (contribution.status === \"pending\")\n\t\temitStatusOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`context:${contribution.contributionId}:awaiting-context`,\n\t\t\trequest,\n\t\t\t\"awaiting-context\",\n\t\t\t[ref(\"context-contribution\", contribution.contributionId)],\n\t\t);\n\telse {\n\t\tstate.terminalRequests.add(request.requestId);\n\t\tstate.acceptedTerminalFactIds.add(`context:${contribution.contributionId}`);\n\t\temitStatus(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\trequest,\n\t\t\tcontribution.status === \"ready\" ? \"completed\" : \"failed\",\n\t\t\t[ref(\"context-contribution\", contribution.contributionId)],\n\t\t\tcontribution.issues,\n\t\t);\n\t}\n}\n\nfunction handlePromptBundle(ctx: Ctx, state: RequestSatisfactionState, prompt: PromptBundle): void {\n\tconst request = state.requests.get(prompt.requestId);\n\tif (request === undefined) return;\n\tif (request.operationId !== prompt.operationId) {\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`stale-prompt:${prompt.promptId}`,\n\t\t\t\"stale-prompt-operation\",\n\t\t\t`PromptBundle '${prompt.promptId}' operationId does not match request '${request.requestId}'`,\n\t\t\trequest.requestId,\n\t\t\t[ref(\"prompt-bundle\", prompt.promptId)],\n\t\t);\n\t\treturn;\n\t}\n\tif (request.requestKind !== \"prompt\") {\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`wrong-prompt-kind:${prompt.promptId}`,\n\t\t\t\"wrong-kind-prompt-satisfaction\",\n\t\t\t`PromptBundle '${prompt.promptId}' cannot satisfy ${request.requestKind} request '${request.requestId}'`,\n\t\t\trequest.requestId,\n\t\t\t[ref(\"prompt-bundle\", prompt.promptId)],\n\t\t);\n\t\treturn;\n\t}\n\tif (state.terminalRequests.has(request.requestId)) {\n\t\tif (\n\t\t\tstate.acceptedTerminalFactIds.has(`prompt:${prompt.promptId}`) ||\n\t\t\tstate.statusKeys.has(`prompt:${prompt.promptId}:awaiting-prompt`)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\temitIssueOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`duplicate-prompt:${prompt.promptId}`,\n\t\t\t\"duplicate-terminal-prompt\",\n\t\t\t`PromptBundle '${prompt.promptId}' arrived after request '${request.requestId}' was already terminal`,\n\t\t\trequest.requestId,\n\t\t\t[ref(\"prompt-bundle\", prompt.promptId), ref(\"agent-request\", request.requestId)],\n\t\t);\n\t\treturn;\n\t}\n\tif (prompt.status === \"ready\") {\n\t\tstate.terminalRequests.add(request.requestId);\n\t\tstate.acceptedTerminalFactIds.add(`prompt:${prompt.promptId}`);\n\t\temitStatus(ctx, state, request, \"completed\", [ref(\"prompt-bundle\", prompt.promptId)]);\n\t} else if (prompt.status === \"issue\") {\n\t\tstate.terminalRequests.add(request.requestId);\n\t\tstate.acceptedTerminalFactIds.add(`prompt:${prompt.promptId}`);\n\t\temitStatus(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\trequest,\n\t\t\t\"failed\",\n\t\t\t[ref(\"prompt-bundle\", prompt.promptId)],\n\t\t\tprompt.issues,\n\t\t);\n\t} else {\n\t\temitStatusOnce(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t`prompt:${prompt.promptId}:awaiting-prompt`,\n\t\t\trequest,\n\t\t\t\"awaiting-prompt\",\n\t\t\t[ref(\"prompt-bundle\", prompt.promptId)],\n\t\t\tprompt.issues,\n\t\t);\n\t}\n}\n\nfunction routeCompatibilityIssue(\n\trequest: AgentRequestIssued,\n\troute: ExecutorRoute,\n\tprofile: ExecutorProfile,\n): string | undefined {\n\tif (request.requestKind !== \"executor\") return \"route-for-non-executor-request\";\n\tif (route.executorId !== profile.executorId) return \"route-profile-executor-mismatch\";\n\tif (\n\t\trequest.input?.inputId !== undefined &&\n\t\troute.inputId !== undefined &&\n\t\trequest.input.inputId !== route.inputId\n\t) {\n\t\treturn \"route-input-mismatch\";\n\t}\n\tif (\n\t\trequest.input?.inputKind !== undefined &&\n\t\troute.inputKind !== undefined &&\n\t\trequest.input.inputKind !== route.inputKind\n\t) {\n\t\treturn \"route-input-kind-mismatch\";\n\t}\n\tconst inputKind = request.input?.inputKind ?? route.inputKind;\n\tif (inputKind !== undefined && !profileKindAcceptsInput(profile.kind, inputKind))\n\t\treturn \"profile-kind-input-incompatible\";\n\tif (\n\t\tinputKind !== undefined &&\n\t\tprofile.acceptedInputKinds !== undefined &&\n\t\t!profile.acceptedInputKinds.includes(inputKind)\n\t) {\n\t\treturn \"profile-rejects-input-kind\";\n\t}\n\tif (\n\t\trequest.input?.schemaRef !== undefined &&\n\t\tprofile.acceptedSchemaRefs !== undefined &&\n\t\t!profile.acceptedSchemaRefs.includes(request.input.schemaRef)\n\t) {\n\t\treturn \"profile-rejects-schema\";\n\t}\n\treturn undefined;\n}\n\nfunction outcomeCompatibilityIssue(\n\trequest: AgentRequestIssued,\n\troute: ExecutorRoute,\n\toutcome: ExecutorOutcome,\n): string | undefined {\n\tif (outcome.executorId !== route.executorId) return \"outcome-route-executor-mismatch\";\n\tif (outcome.profileId !== route.profileId) return \"outcome-route-profile-mismatch\";\n\tif (\n\t\troute.inputId !== undefined &&\n\t\t(outcome.inputId === undefined || outcome.inputId !== route.inputId)\n\t) {\n\t\treturn \"outcome-route-input-mismatch\";\n\t}\n\tif (\n\t\trequest.input?.inputId !== undefined &&\n\t\toutcome.inputId !== undefined &&\n\t\toutcome.inputId !== request.input.inputId\n\t) {\n\t\treturn \"outcome-request-input-mismatch\";\n\t}\n\tif (\n\t\troute.inputKind !== undefined &&\n\t\t(outcome.inputKind === undefined || outcome.inputKind !== route.inputKind)\n\t) {\n\t\treturn \"outcome-route-input-kind-mismatch\";\n\t}\n\tif (\n\t\trequest.input?.inputKind !== undefined &&\n\t\toutcome.inputKind !== undefined &&\n\t\toutcome.inputKind !== request.input.inputKind\n\t) {\n\t\treturn \"outcome-request-input-kind-mismatch\";\n\t}\n\treturn undefined;\n}\n\nfunction profileKindAcceptsInput(kind: ExecutorProfile[\"kind\"], inputKind: string): boolean {\n\tif (kind === \"llm\") return inputKind === \"llm-call\";\n\tif (kind === \"tool\") return inputKind === \"tool-call\";\n\tif (kind === \"human\") return inputKind === \"human-task\";\n\treturn inputKind === \"agent-task\";\n}\n\nfunction outcomeStatus(outcome: ExecutorOutcome): AgentRequestStatus {\n\tif (outcome.kind === \"result\") return \"completed\";\n\tif (outcome.kind === \"failure\") return \"failed\";\n\tif (outcome.kind === \"timeout\") return \"timeout\";\n\tif (outcome.kind === \"canceled\") return \"canceled\";\n\treturn \"blocked\";\n}\n\nfunction executorOutcomeViewProjectionFromOutcome(\n\toutcome: ExecutorOutcome,\n\tpolicy: Required<ExecutorOutcomeViewPolicy>,\n): ExecutorOutcomeViewProjection {\n\tconst sourceRefs = uniqueSourceRefs([\n\t\tref(\"executor-outcome\", outcome.outcomeId),\n\t\t...(outcome.evidenceRefs ?? []),\n\t]);\n\tconst summary = projectOutcomeSummary(outcome, policy.maxSummaryChars);\n\tconst issues = Object.freeze([\n\t\t...outcomeIssues(outcome),\n\t\t...(summary.truncated ? [outcomeSummaryTruncationIssue(outcome, summary, policy)] : []),\n\t]);\n\tconst view = Object.freeze({\n\t\tkind: \"executor-outcome-view\",\n\t\tviewId: `${outcome.outcomeId}:${policy.audience}`,\n\t\taudience: policy.audience,\n\t\toutcomeId: outcome.outcomeId,\n\t\trequestId: outcome.requestId,\n\t\toperationId: outcome.operationId,\n\t\trouteId: outcome.routeId,\n\t\texecutorId: outcome.executorId,\n\t\tprofileId: outcome.profileId,\n\t\tstatus: outcome.kind,\n\t\tsummary: summary.summary,\n\t\tsummaryTruncated: summary.truncated,\n\t\tsummaryChars: summary.originalChars,\n\t\tsummaryLimitChars: summary.limitChars,\n\t\terrorKind: outcomeErrorKind(outcome),\n\t\tretryable: outcomeRetryable(outcome),\n\t\tnextActions: outcomeNextActions(outcome),\n\t\tsourceRefs,\n\t\tmaterialRefs: outcomeMaterialRefs(outcome),\n\t\tissues: policy.includeIssues && issues.length > 0 ? issues : undefined,\n\t\tusage: policy.includeUsage ? outcome.usage : undefined,\n\t\tmetadata: policy.includeMetadata ? outcome.metadata : undefined,\n\t} satisfies ExecutorOutcomeView);\n\treturn Object.freeze({ view, issues });\n}\n\nfunction projectOutcomeSummary(\n\toutcome: ExecutorOutcome,\n\tmaxChars: number,\n): ExecutorOutcomeSummaryProjection {\n\tconst summary = outcomeSummary(outcome);\n\tconst limitChars = Math.max(0, maxChars);\n\tif (summary.length <= limitChars) {\n\t\treturn Object.freeze({\n\t\t\tsummary,\n\t\t\ttruncated: false,\n\t\t\toriginalChars: summary.length,\n\t\t\tlimitChars,\n\t\t});\n\t}\n\tconst bounded =\n\t\tlimitChars <= 1\n\t\t\t? summary.slice(0, limitChars)\n\t\t\t: limitChars <= 3\n\t\t\t\t? summary.slice(0, limitChars)\n\t\t\t\t: `${summary.slice(0, limitChars - 3)}...`;\n\treturn Object.freeze({\n\t\tsummary: bounded,\n\t\ttruncated: true,\n\t\toriginalChars: summary.length,\n\t\tlimitChars,\n\t});\n}\n\nfunction outcomeSummaryTruncationIssue(\n\toutcome: ExecutorOutcome,\n\tsummary: ExecutorOutcomeSummaryProjection,\n\tpolicy: Required<ExecutorOutcomeViewPolicy>,\n): DataIssue {\n\treturn dataIssue(\n\t\t\"executor-outcome-view-summary-truncated\",\n\t\t\"ExecutorOutcome view summary was truncated; inspect material refs or the source outcome for full detail\",\n\t\t{\n\t\t\tsubjectId: outcome.requestId,\n\t\t\trefs: [ref(\"executor-outcome\", outcome.outcomeId)],\n\t\t\tseverity: \"warning\",\n\t\t\tdetails: {\n\t\t\t\taudience: policy.audience,\n\t\t\t\toutcomeId: outcome.outcomeId,\n\t\t\t\toriginalChars: summary.originalChars,\n\t\t\t\tlimitChars: summary.limitChars,\n\t\t\t},\n\t\t},\n\t);\n}\n\nfunction outcomeSummary(outcome: ExecutorOutcome): string {\n\tif (outcome.kind === \"result\") {\n\t\tif (outcome.result.summary !== undefined && outcome.result.summary.length > 0)\n\t\t\treturn outcome.result.summary;\n\t\treturn `Executor result '${outcome.result.kind}' is available via source refs`;\n\t}\n\tif (outcome.kind === \"failure\") return outcome.error.message;\n\tif (outcome.kind === \"blocked\") {\n\t\tconst needKinds = outcome.needs.map((need) => need.kind).join(\", \");\n\t\treturn needKinds.length > 0 ? `Executor blocked: ${needKinds}` : \"Executor blocked\";\n\t}\n\tif (outcome.kind === \"timeout\") {\n\t\treturn outcome.timeoutMs === undefined\n\t\t\t? \"Executor timed out\"\n\t\t\t: `Executor timed out after ${outcome.timeoutMs}ms`;\n\t}\n\treturn outcome.reason ?? \"Executor canceled\";\n}\n\nfunction outcomeErrorKind(outcome: ExecutorOutcome): string | undefined {\n\tif (outcome.kind === \"failure\") return outcome.error.code;\n\tif (outcome.kind === \"timeout\") return \"timeout\";\n\tif (outcome.kind === \"blocked\") return outcome.needs[0]?.kind ?? \"blocked\";\n\tif (outcome.kind === \"canceled\") return \"canceled\";\n\treturn undefined;\n}\n\nfunction outcomeRetryable(outcome: ExecutorOutcome): boolean | undefined {\n\tif (outcome.kind === \"failure\" || outcome.kind === \"timeout\") return outcome.retryable;\n\treturn undefined;\n}\n\nfunction outcomeIssues(outcome: ExecutorOutcome): readonly DataIssue[] {\n\tif (outcome.kind === \"failure\") return Object.freeze([outcome.error, ...(outcome.issues ?? [])]);\n\treturn outcome.issues ?? [];\n}\n\nfunction outcomeNextActions(outcome: ExecutorOutcome): readonly string[] | undefined {\n\tif (outcome.kind === \"blocked\") return Object.freeze(outcome.needs.map((need) => need.kind));\n\tif ((outcome.kind === \"failure\" || outcome.kind === \"timeout\") && outcome.retryable === true) {\n\t\treturn Object.freeze([\"retry-or-route\"]);\n\t}\n\treturn undefined;\n}\n\nfunction outcomeMaterialRefs(outcome: ExecutorOutcome): readonly SourceRef[] | undefined {\n\tconst refs =\n\t\toutcome.kind === \"result\"\n\t\t\t? [...(outcome.result.refs ?? [])]\n\t\t\t: outcome.kind === \"blocked\"\n\t\t\t\t? outcome.needs.flatMap((need) => [...(need.refs ?? [])])\n\t\t\t\t: [];\n\treturn refs.length === 0 ? undefined : uniqueSourceRefs(refs);\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 = `${sourceRef.kind}:${sourceRef.id}:${JSON.stringify(sourceRef.metadata ?? {})}`;\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tunique.push(sourceRef);\n\t}\n\treturn Object.freeze(unique);\n}\n\nfunction emitStatus(\n\tctx: Ctx,\n\tstate: RequestSatisfactionState,\n\trequest: AgentRequestIssued,\n\tstatus: AgentRequestStatus,\n\tsourceRefs?: readonly SourceRef[],\n\tissues?: readonly DataIssue[],\n): void {\n\tconst fact: AgentRequestStatusChanged = {\n\t\tkind: \"status\",\n\t\trequestId: request.requestId,\n\t\toperationId: request.operationId,\n\t\teffectRunId: request.effectRunId,\n\t\tstatus,\n\t\tsourceRefs,\n\t\tissues,\n\t};\n\tstate.auditSeq += 1;\n\tctx.down([\n\t\t[\"DATA\", { kind: \"status\", status: fact } satisfies AgentRequestSatisfactionFact],\n\t\t[\n\t\t\t\"DATA\",\n\t\t\t{\n\t\t\t\tkind: \"audit\",\n\t\t\t\taudit: {\n\t\t\t\t\tid: `${request.requestId}:status:${state.auditSeq}`,\n\t\t\t\t\tkind: \"agent-request-status\",\n\t\t\t\t\tsubjectId: request.requestId,\n\t\t\t\t\tsourceRefs,\n\t\t\t\t\tmetadata: { status },\n\t\t\t\t},\n\t\t\t} satisfies AgentRequestSatisfactionFact,\n\t\t],\n\t]);\n}\n\nfunction emitStatusOnce(\n\tctx: Ctx,\n\tstate: RequestSatisfactionState,\n\tkey: string,\n\trequest: AgentRequestIssued,\n\tstatus: AgentRequestStatus,\n\tsourceRefs?: readonly SourceRef[],\n\tissues?: readonly DataIssue[],\n): void {\n\tif (state.statusKeys.has(key)) return;\n\tstate.statusKeys.add(key);\n\temitStatus(ctx, state, request, status, sourceRefs, issues);\n}\n\nfunction emitIssue(\n\tctx: Ctx,\n\tstate: RequestSatisfactionState,\n\tcode: string,\n\tmessage: string,\n\tsubjectId?: string,\n\trefs?: readonly SourceRef[],\n): void {\n\tstate.issueSeq += 1;\n\tconst issue = dataIssue(code, message, { subjectId, refs });\n\tstate.auditSeq += 1;\n\tctx.down([\n\t\t[\"DATA\", { kind: \"issue\", issue } satisfies AgentRequestSatisfactionFact],\n\t\t[\n\t\t\t\"DATA\",\n\t\t\t{\n\t\t\t\tkind: \"audit\",\n\t\t\t\taudit: {\n\t\t\t\t\tid: `${subjectId ?? \"request\"}:issue:${state.auditSeq}`,\n\t\t\t\t\tkind: \"agent-request-issue\",\n\t\t\t\t\tsubjectId,\n\t\t\t\t\tissueCode: code,\n\t\t\t\t\tmessage,\n\t\t\t\t\tsourceRefs: refs,\n\t\t\t\t},\n\t\t\t} satisfies AgentRequestSatisfactionFact,\n\t\t],\n\t]);\n}\n\nfunction emitIssueOnce(\n\tctx: Ctx,\n\tstate: RequestSatisfactionState,\n\tkey: string,\n\tcode: string,\n\tmessage: string,\n\tsubjectId?: string,\n\trefs?: readonly SourceRef[],\n): void {\n\tif (state.issueKeys.has(key)) return;\n\tstate.issueKeys.add(key);\n\temitIssue(ctx, state, code, message, subjectId, refs);\n}\n\nfunction emitInterpreterIssue(\n\tctx: Ctx,\n\tseq: number,\n\toutcome: ExecutorOutcome,\n\tcode: string,\n\tmessage: string,\n): void {\n\tconst issue = dataIssue(code, message, {\n\t\tsubjectId: outcome.requestId,\n\t\trefs: [ref(\"executor-outcome\", outcome.outcomeId)],\n\t});\n\tctx.down([\n\t\t[\"DATA\", { kind: \"issue\", issue } satisfies StructuredAgentDecisionInterpreterFact],\n\t\t[\n\t\t\t\"DATA\",\n\t\t\t{\n\t\t\t\tkind: \"audit\",\n\t\t\t\taudit: {\n\t\t\t\t\tid: `${outcome.outcomeId}:agent-decision-issue:${seq}`,\n\t\t\t\t\tkind: \"agent-decision-issue\",\n\t\t\t\t\tsubjectId: outcome.requestId,\n\t\t\t\t\tissueCode: code,\n\t\t\t\t\tmessage,\n\t\t\t\t\tsourceRefs: [ref(\"executor-outcome\", outcome.outcomeId)],\n\t\t\t\t},\n\t\t\t} satisfies StructuredAgentDecisionInterpreterFact,\n\t\t],\n\t]);\n}\n\nfunction validateAgentDecision(raw: unknown, outcome: ExecutorOutcome): AgentDecision | string {\n\tif (!isRecord(raw)) return \"AgentDecision must be an object\";\n\tconst kind = raw.kind;\n\tif (kind !== \"continue\" && kind !== \"final\" && kind !== \"blocked\") {\n\t\treturn \"AgentDecision kind must be continue, final, or blocked\";\n\t}\n\tif (typeof raw.decisionId !== \"string\" || raw.decisionId.length === 0)\n\t\treturn \"AgentDecision decisionId must be a non-empty string\";\n\tif (\n\t\traw.effectRunId === undefined ||\n\t\ttypeof raw.effectRunId !== \"string\" ||\n\t\traw.effectRunId.length === 0\n\t)\n\t\treturn \"AgentDecision effectRunId must be a non-empty string\";\n\tif (typeof raw.agentRunId !== \"string\" || raw.agentRunId.length === 0)\n\t\treturn \"AgentDecision agentRunId must be a non-empty string\";\n\tconst source = raw.source;\n\tif (\n\t\t!isRecord(source) ||\n\t\tsource.requestId !== outcome.requestId ||\n\t\tsource.operationId !== outcome.operationId ||\n\t\tsource.outcomeId !== outcome.outcomeId\n\t) {\n\t\treturn \"AgentDecision source must match the ExecutorOutcome requestId, operationId, and outcomeId\";\n\t}\n\tif (kind === \"continue\") {\n\t\tif (!Array.isArray(raw.next)) return \"AgentDecision.continue next must be an array\";\n\t\tfor (const proposal of raw.next) {\n\t\t\tif (!isAgentRequestProposalLike(proposal, raw.effectRunId)) {\n\t\t\t\treturn \"AgentDecision.continue next entries must be AgentRequestProposal-like objects\";\n\t\t\t}\n\t\t}\n\t\treturn raw as unknown as AgentDecisionContinue;\n\t}\n\tif (kind === \"final\") {\n\t\tif (!isRecord(raw.output) || typeof raw.output.kind !== \"string\")\n\t\t\treturn \"AgentDecision.final output must be an envelope with kind\";\n\t\treturn raw as unknown as AgentDecisionFinal;\n\t}\n\tif (!Array.isArray(raw.needs)) return \"AgentDecision.blocked needs must be an array\";\n\tfor (const need of raw.needs) {\n\t\tif (!isAgentNeedLike(need))\n\t\t\treturn \"AgentDecision.blocked needs entries must be AgentNeed-like objects\";\n\t}\n\treturn raw as unknown as AgentDecisionBlocked;\n}\n\nfunction isAgentRequestProposalLike(value: unknown, effectRunId: string): boolean {\n\tif (!isRecord(value)) return false;\n\tif (value.kind !== \"proposal\") return false;\n\tif (typeof value.proposalId !== \"string\" || value.proposalId.length === 0) return false;\n\tif (value.effectRunId !== effectRunId) return false;\n\treturn (\n\t\tvalue.requestKind === \"context\" ||\n\t\tvalue.requestKind === \"prompt\" ||\n\t\tvalue.requestKind === \"executor\"\n\t);\n}\n\nfunction isAgentNeedLike(value: unknown): boolean {\n\treturn isRecord(value) && typeof value.kind === \"string\" && value.kind.length > 0;\n}\n\nfunction candidateFromDecision(\n\tdecision: AgentDecision,\n\tstate: EffectRunCompletionState,\n\tcompletedAtMs: number,\n): EffectRunResult | undefined {\n\tconst run = state.runs.get(decision.effectRunId);\n\tif (run === undefined) return undefined;\n\tif (!decisionSourceRequestTerminal(decision, state)) return undefined;\n\tconst requiredPending = requiredPendingRequests(decision.effectRunId, state);\n\tif (decision.kind === \"final\") {\n\t\tif (requiredPending.length > 0) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn {\n\t\t\tkind: \"effect-run-result\",\n\t\t\tresultId: `${decision.effectRunId}:result`,\n\t\t\tstatus: \"completed\",\n\t\t\teffectRunId: decision.effectRunId,\n\t\t\tsubjectRefs: run.subjectRefs,\n\t\t\toperationId: decision.source.operationId,\n\t\t\tsourceRefs: [\n\t\t\t\tref(\"agent-decision\", decision.decisionId),\n\t\t\t\tref(\"executor-outcome\", decision.source.outcomeId),\n\t\t\t],\n\t\t\tcompletedAtMs,\n\t\t\toutput: decision.output,\n\t\t};\n\t}\n\tif (decision.kind === \"blocked\" && requiredPending.length === 0) {\n\t\treturn {\n\t\t\tkind: \"effect-run-result\",\n\t\t\tresultId: `${decision.effectRunId}:result`,\n\t\t\tstatus: \"blocked\",\n\t\t\teffectRunId: decision.effectRunId,\n\t\t\tsubjectRefs: run.subjectRefs,\n\t\t\toperationId: decision.source.operationId,\n\t\t\tsourceRefs: [\n\t\t\t\tref(\"agent-decision\", decision.decisionId),\n\t\t\t\tref(\"executor-outcome\", decision.source.outcomeId),\n\t\t\t],\n\t\t\tcompletedAtMs,\n\t\t\tneeds: decision.needs,\n\t\t};\n\t}\n\treturn undefined;\n}\n\nfunction acceptEffectRunResultCandidate(\n\tctx: Ctx,\n\tstate: EffectRunCompletionState,\n\tcandidate: EffectRunResult,\n): void {\n\tif (!state.runs.has(candidate.effectRunId)) {\n\t\temitEffectRunIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t\"unknown-effect-run-result-candidate\",\n\t\t\t`EffectRunResult candidate '${candidate.resultId}' references unknown EffectRun '${candidate.effectRunId}'`,\n\t\t\tcandidate.effectRunId,\n\t\t\tcandidate.sourceRefs,\n\t\t);\n\t\treturn;\n\t}\n\tconst existing = state.resultsByEffectRun.get(candidate.effectRunId);\n\tif (existing !== undefined) {\n\t\tstate.issueSeq += 1;\n\t\tconst duplicate = sameTerminalResult(existing, candidate);\n\t\tconst code = duplicate ? \"duplicate-effect-run-result\" : \"conflicting-effect-run-result\";\n\t\tconst issue = dataIssue(\n\t\t\tcode,\n\t\t\t`EffectRun '${candidate.effectRunId}' already has a terminal result`,\n\t\t\t{\n\t\t\t\tsubjectId: candidate.effectRunId,\n\t\t\t\trefs: candidate.sourceRefs,\n\t\t\t},\n\t\t);\n\t\tctx.down([\n\t\t\t[\"DATA\", { kind: \"issue\", issue } satisfies EffectRunCompletionFact],\n\t\t\t[\n\t\t\t\t\"DATA\",\n\t\t\t\t{\n\t\t\t\t\tkind: \"audit\",\n\t\t\t\t\taudit: {\n\t\t\t\t\t\tid: `${candidate.effectRunId}:${code}:${state.issueSeq}`,\n\t\t\t\t\t\tkind: duplicate ? \"effect-run-result-duplicate\" : \"effect-run-result-conflict\",\n\t\t\t\t\t\tsubjectId: candidate.effectRunId,\n\t\t\t\t\t\tissueCode: issue.code,\n\t\t\t\t\t\tsourceRefs: candidate.sourceRefs,\n\t\t\t\t\t},\n\t\t\t\t} satisfies EffectRunCompletionFact,\n\t\t\t],\n\t\t]);\n\t\treturn;\n\t}\n\tstate.resultsByEffectRun.set(candidate.effectRunId, candidate);\n\tctx.down([\n\t\t[\"DATA\", { kind: \"result\", result: candidate } satisfies EffectRunCompletionFact],\n\t\t[\n\t\t\t\"DATA\",\n\t\t\t{\n\t\t\t\tkind: \"status\",\n\t\t\t\tstatus: {\n\t\t\t\t\teffectRunId: candidate.effectRunId,\n\t\t\t\t\tstate: candidate.status,\n\t\t\t\t\trequiredPending: [],\n\t\t\t\t\trequiredTerminal: requiredTerminalRequests(candidate.effectRunId, state),\n\t\t\t\t\tsourceRefs: candidate.sourceRefs,\n\t\t\t\t},\n\t\t\t} satisfies EffectRunCompletionFact,\n\t\t],\n\t\t[\n\t\t\t\"DATA\",\n\t\t\t{\n\t\t\t\tkind: \"audit\",\n\t\t\t\taudit: {\n\t\t\t\t\tid: `${candidate.effectRunId}:terminal-result`,\n\t\t\t\t\tkind: \"effect-run-terminal-result\",\n\t\t\t\t\tsubjectId: candidate.effectRunId,\n\t\t\t\t\tsourceRefs: candidate.sourceRefs,\n\t\t\t\t\tmetadata: { status: candidate.status },\n\t\t\t\t},\n\t\t\t} satisfies EffectRunCompletionFact,\n\t\t],\n\t]);\n}\n\nfunction emitEffectRunStatus(\n\tctx: Ctx,\n\teffectRunId: string,\n\tstate: EffectRunCompletionStatus[\"state\"],\n\trequiredPending: readonly string[],\n\trequiredTerminal: readonly string[],\n): void {\n\tctx.down([\n\t\t[\n\t\t\t\"DATA\",\n\t\t\t{\n\t\t\t\tkind: \"status\",\n\t\t\t\tstatus: { effectRunId, state, requiredPending, requiredTerminal },\n\t\t\t} satisfies EffectRunCompletionFact,\n\t\t],\n\t]);\n}\n\nfunction requiredPendingRequests(\n\teffectRunId: string,\n\tstate: EffectRunCompletionState,\n): readonly string[] {\n\tconst pending: string[] = [];\n\tfor (const request of state.requests.values()) {\n\t\tif (request.effectRunId !== effectRunId || !request.required) continue;\n\t\tconst statusFact = matchingStatusForRequest(state, request);\n\t\tconst status = statusFact?.status;\n\t\tif (status === undefined || !isTerminalRequestStatus(status)) pending.push(request.requestId);\n\t}\n\treturn pending;\n}\n\nfunction requiredTerminalRequests(\n\teffectRunId: string,\n\tstate: EffectRunCompletionState,\n): readonly string[] {\n\tconst terminal: string[] = [];\n\tfor (const request of state.requests.values()) {\n\t\tif (request.effectRunId !== effectRunId || !request.required) continue;\n\t\tconst statusFact = matchingStatusForRequest(state, request);\n\t\tconst status = statusFact?.status;\n\t\tif (status !== undefined && isTerminalRequestStatus(status)) terminal.push(request.requestId);\n\t}\n\treturn terminal;\n}\n\nfunction isTerminalRequestStatus(status: AgentRequestStatus): boolean {\n\treturn (\n\t\tstatus === \"completed\" ||\n\t\tstatus === \"failed\" ||\n\t\tstatus === \"blocked\" ||\n\t\tstatus === \"canceled\" ||\n\t\tstatus === \"timeout\" ||\n\t\tstatus === \"waived\" ||\n\t\tstatus === \"retry-exhausted\"\n\t);\n}\n\nfunction decisionSourceRequestTerminal(\n\tdecision: AgentDecision,\n\tstate: EffectRunCompletionState,\n): boolean {\n\tconst request = state.requests.get(decision.source.requestId);\n\tif (request === undefined) return false;\n\tif (\n\t\trequest.effectRunId !== decision.effectRunId ||\n\t\trequest.operationId !== decision.source.operationId\n\t) {\n\t\treturn false;\n\t}\n\tconst status = matchingStatusForRequest(state, request)?.status;\n\treturn status !== undefined && isTerminalRequestStatus(status);\n}\n\nfunction acceptRequestStatus(\n\tctx: Ctx,\n\tstate: EffectRunCompletionState,\n\tstatus: AgentRequestStatusChanged,\n): void {\n\tconst request = state.requests.get(status.requestId);\n\tif (request !== undefined && !statusMatchesRequest(status, request)) {\n\t\temitEffectRunIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\t\"stale-request-status\",\n\t\t\t`AgentRequest status for '${status.requestId}' did not match its issued effectRun/operation identity`,\n\t\t\trequest.effectRunId,\n\t\t\t[ref(\"agent-request\", status.requestId)],\n\t\t);\n\t\treturn;\n\t}\n\tstate.statusByRequest.set(status.requestId, status);\n}\n\nfunction matchingStatusForRequest(\n\tstate: EffectRunCompletionState,\n\trequest: AgentRequestIssued,\n): AgentRequestStatusChanged | undefined {\n\tconst status = state.statusByRequest.get(request.requestId);\n\tif (status === undefined) return undefined;\n\treturn statusMatchesRequest(status, request) ? status : undefined;\n}\n\nfunction statusMatchesRequest(\n\tstatus: AgentRequestStatusChanged,\n\trequest: AgentRequestIssued,\n): boolean {\n\treturn (\n\t\tstatus.effectRunId === request.effectRunId &&\n\t\t(status.operationId === undefined || status.operationId === request.operationId)\n\t);\n}\n\nfunction emitEffectRunIssue(\n\tctx: Ctx,\n\tstate: EffectRunCompletionState,\n\tcode: string,\n\tmessage: string,\n\tsubjectId?: string,\n\tsourceRefs?: readonly SourceRef[],\n): void {\n\tstate.issueSeq += 1;\n\tconst issue = dataIssue(code, message, { subjectId, refs: sourceRefs });\n\tctx.down([\n\t\t[\"DATA\", { kind: \"issue\", issue } satisfies EffectRunCompletionFact],\n\t\t[\n\t\t\t\"DATA\",\n\t\t\t{\n\t\t\t\tkind: \"audit\",\n\t\t\t\taudit: {\n\t\t\t\t\tid: `${subjectId ?? \"effect-run\"}:${code}:${state.issueSeq}`,\n\t\t\t\t\tkind: \"effect-run-issue\",\n\t\t\t\t\tsubjectId,\n\t\t\t\t\tissueCode: code,\n\t\t\t\t\tmessage,\n\t\t\t\t\tsourceRefs,\n\t\t\t\t},\n\t\t\t} satisfies EffectRunCompletionFact,\n\t\t],\n\t]);\n}\n\nfunction sameTerminalResult(a: EffectRunResult, b: EffectRunResult): boolean {\n\treturn (\n\t\ta.status === b.status && a.resultId === b.resultId && JSON.stringify(a) === JSON.stringify(b)\n\t);\n}\n\nfunction emptyEffectRunCompletionState(): EffectRunCompletionState {\n\treturn {\n\t\truns: new Map<string, EffectRun>(),\n\t\trequests: new Map<string, AgentRequestIssued>(),\n\t\tstatusByRequest: new Map<string, AgentRequestStatusChanged>(),\n\t\tdecisions: new Map<string, AgentDecision>(),\n\t\tresultsByEffectRun: new Map<string, EffectRunResult>(),\n\t\tissueSeq: 0,\n\t};\n}\n\nfunction emptyAgentRequestViewsState(): AgentRequestViewsState {\n\treturn {\n\t\trequestsById: new Map<string, AgentRequestIssued>(),\n\t\trequestsByEffectRun: new Map<string, string[]>(),\n\t\tstatusByRequest: new Map<string, AgentRequestStatusChanged>(),\n\t\tissues: [],\n\t\taudit: [],\n\t\tauditSeq: 0,\n\t};\n}\n\nfunction cloneAgentRequestViewsState(state: AgentRequestViewsState): AgentRequestViewsState {\n\treturn {\n\t\trequestsById: new Map(state.requestsById),\n\t\trequestsByEffectRun: new Map(Array.from(state.requestsByEffectRun, ([k, v]) => [k, [...v]])),\n\t\tstatusByRequest: new Map(state.statusByRequest),\n\t\tissues: [...state.issues],\n\t\taudit: [...state.audit],\n\t\tauditSeq: state.auditSeq,\n\t};\n}\n\nfunction reduceAgentRequestViews(state: AgentRequestViewsState, fact: AgentRequestFact): void {\n\tstate.auditSeq += 1;\n\tif (fact.kind === \"issued\") {\n\t\tstate.requestsById.set(fact.requestId, fact);\n\t\tconst requestIds = state.requestsByEffectRun.get(fact.effectRunId) ?? [];\n\t\tif (!requestIds.includes(fact.requestId)) requestIds.push(fact.requestId);\n\t\tstate.requestsByEffectRun.set(fact.effectRunId, requestIds);\n\t\tstate.statusByRequest.set(fact.requestId, {\n\t\t\tkind: \"status\",\n\t\t\trequestId: fact.requestId,\n\t\t\toperationId: fact.operationId,\n\t\t\teffectRunId: fact.effectRunId,\n\t\t\tstatus: \"issued\",\n\t\t\tsourceRefs: [ref(\"agent-request\", fact.requestId)],\n\t\t});\n\t} else if (fact.kind === \"status\") {\n\t\tstate.statusByRequest.set(fact.requestId, fact);\n\t\tif (fact.issues !== undefined) state.issues.push(...fact.issues);\n\t} else if (fact.kind === \"rejected\") {\n\t\tstate.issues.push(fact.issue);\n\t}\n\tstate.audit.push({\n\t\tid: `agent-request-ledger:${state.auditSeq}`,\n\t\tkind: `agent-request-${fact.kind}`,\n\t\tsubjectId: \"requestId\" in fact ? fact.requestId : fact.proposalId,\n\t});\n}\n\nfunction freezeAgentRequestViews(state: AgentRequestViewsState): AgentRequestViews {\n\tconst pending = Array.from(state.requestsById.values()).filter((request) => {\n\t\tconst status = state.statusByRequest.get(request.requestId)?.status;\n\t\treturn status === undefined || !isTerminalRequestStatus(status);\n\t});\n\tconst awaitingProvider = pending.filter(\n\t\t(request) => state.statusByRequest.get(request.requestId)?.status === \"awaiting-provider\",\n\t);\n\treturn {\n\t\trequestsById: new Map(state.requestsById),\n\t\trequestsByEffectRun: new Map(\n\t\t\tArray.from(state.requestsByEffectRun, ([key, value]) => [key, Object.freeze([...value])]),\n\t\t),\n\t\tstatusByRequest: new Map(state.statusByRequest),\n\t\tpending: Object.freeze(pending),\n\t\tawaitingProvider: Object.freeze(awaitingProvider),\n\t\tissues: Object.freeze([...state.issues]),\n\t\taudit: Object.freeze([...state.audit]),\n\t};\n}\n\nfunction projectRuntimeFact<T, TOut>(\n\tgraph: Graph,\n\truntime: Node<T>,\n\tname: string,\n\tfactory: string,\n\tpick: (fact: T) => TOut | undefined,\n): Node<TOut> {\n\treturn graph.node<TOut>(\n\t\t[runtime],\n\t\t(ctx) => {\n\t\t\tfor (const fact of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst typed = fact as T;\n\t\t\t\tconst value = pick(typed);\n\t\t\t\tif (value !== undefined) ctx.down([[\"DATA\", value]]);\n\t\t\t}\n\t\t},\n\t\t{ name, factory },\n\t);\n}\n\nfunction forEachDepBatch(\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\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\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":["ref","projectRuntimeFact","uniqueSourceRefs","refs","dataIssue"]}
|