@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.
Files changed (333) hide show
  1. package/README.md +197 -117
  2. package/dist/actions-types-CH-XCU9O.d.cts +657 -0
  3. package/dist/actions-types-w2iPQTkv.d.ts +657 -0
  4. package/dist/adapters/index.cjs +5157 -2951
  5. package/dist/adapters/index.cjs.map +1 -1
  6. package/dist/adapters/index.d.cts +207 -70
  7. package/dist/adapters/index.d.ts +207 -70
  8. package/dist/adapters/index.js +3738 -1688
  9. package/dist/adapters/index.js.map +1 -1
  10. package/dist/adapters/nestjs/microservices.cjs +841 -0
  11. package/dist/adapters/nestjs/microservices.cjs.map +1 -0
  12. package/dist/adapters/nestjs/microservices.d.cts +45 -0
  13. package/dist/adapters/nestjs/microservices.d.ts +45 -0
  14. package/dist/adapters/nestjs/microservices.js +206 -0
  15. package/dist/adapters/nestjs/microservices.js.map +1 -0
  16. package/dist/adapters/nestjs/native.cjs +1391 -0
  17. package/dist/adapters/nestjs/native.cjs.map +1 -0
  18. package/dist/adapters/nestjs/native.d.cts +111 -0
  19. package/dist/adapters/nestjs/native.d.ts +111 -0
  20. package/dist/adapters/nestjs/native.js +577 -0
  21. package/dist/adapters/nestjs/native.js.map +1 -0
  22. package/dist/adapters/nestjs/websockets.cjs +924 -0
  23. package/dist/adapters/nestjs/websockets.cjs.map +1 -0
  24. package/dist/adapters/nestjs/websockets.d.cts +47 -0
  25. package/dist/adapters/nestjs/websockets.d.ts +47 -0
  26. package/dist/adapters/nestjs/websockets.js +286 -0
  27. package/dist/adapters/nestjs/websockets.js.map +1 -0
  28. package/dist/adapters/nestjs.cjs +1085 -0
  29. package/dist/adapters/nestjs.cjs.map +1 -0
  30. package/dist/adapters/nestjs.d.cts +385 -0
  31. package/dist/adapters/nestjs.d.ts +385 -0
  32. package/dist/adapters/nestjs.js +112 -0
  33. package/dist/adapters/nestjs.js.map +1 -0
  34. package/dist/adapters/observe-storage.d.cts +3 -3
  35. package/dist/adapters/observe-storage.d.ts +3 -3
  36. package/dist/adapters/observe-storage.js +4 -4
  37. package/dist/adapters/react.cjs.map +1 -1
  38. package/dist/adapters/react.d.cts +2 -2
  39. package/dist/adapters/react.d.ts +2 -2
  40. package/dist/adapters/react.js +1 -1
  41. package/dist/adapters/solid.cjs.map +1 -1
  42. package/dist/adapters/solid.d.cts +2 -2
  43. package/dist/adapters/solid.d.ts +2 -2
  44. package/dist/adapters/solid.js +1 -1
  45. package/dist/adapters/svelte.cjs.map +1 -1
  46. package/dist/adapters/svelte.d.cts +2 -2
  47. package/dist/adapters/svelte.d.ts +2 -2
  48. package/dist/adapters/svelte.js +1 -1
  49. package/dist/adapters/vue.cjs.map +1 -1
  50. package/dist/adapters/vue.d.cts +2 -2
  51. package/dist/adapters/vue.d.ts +2 -2
  52. package/dist/adapters/vue.js +1 -1
  53. package/dist/{agent-runtime-BesGDZcB.d.ts → agent-runtime-types-core-CKwrBDyi.d.ts} +171 -320
  54. package/dist/{agent-runtime-DZTJ3C-p.d.cts → agent-runtime-types-core-bfl4m0vM.d.cts} +171 -320
  55. package/dist/agent-runtime-types-tool-BLPV3azj.d.cts +695 -0
  56. package/dist/agent-runtime-types-tool-hwqvVqNt.d.ts +695 -0
  57. package/dist/agentic-memory-retention-CLwI76JK.d.ts +14 -0
  58. package/dist/agentic-memory-retention-Cz8GR6ie.d.cts +14 -0
  59. package/dist/{agentic-memory-DfuVZ-lY.d.cts → agentic-memory-types-JDr7MPhh.d.cts} +13 -57
  60. package/dist/{agentic-memory-BmRCvh0d.d.ts → agentic-memory-types-khYJgzKL.d.ts} +13 -57
  61. package/dist/{capability-admission-B0BzqAm5.d.cts → capability-admission-B8RNFyaZ.d.cts} +3 -3
  62. package/dist/{capability-admission-g0mn9hpq.d.ts → capability-admission-Dkw1Xz3r.d.ts} +3 -3
  63. package/dist/chunk-2KUAG2GZ.js +9693 -0
  64. package/dist/chunk-2KUAG2GZ.js.map +1 -0
  65. package/dist/{chunk-CZNV3VXM.js → chunk-3J7UPZL5.js} +11 -11
  66. package/dist/{chunk-HKK2JD7Z.js → chunk-3LYI6ADX.js} +12 -125
  67. package/dist/chunk-3LYI6ADX.js.map +1 -0
  68. package/dist/{chunk-YXMZ2N6J.js → chunk-4M37FH2I.js} +1071 -1025
  69. package/dist/chunk-4M37FH2I.js.map +1 -0
  70. package/dist/{chunk-YDSIVHRR.js → chunk-4NWSNI4K.js} +1598 -1584
  71. package/dist/chunk-4NWSNI4K.js.map +1 -0
  72. package/dist/{chunk-Z2ANQ6JW.js → chunk-4Q77MMJY.js} +2 -2
  73. package/dist/{chunk-SS2A464I.js → chunk-54WPEODM.js} +3 -3
  74. package/dist/chunk-54WPEODM.js.map +1 -0
  75. package/dist/chunk-6E76H4OU.js +132 -0
  76. package/dist/chunk-6E76H4OU.js.map +1 -0
  77. package/dist/chunk-7GOTIIQ7.js +819 -0
  78. package/dist/chunk-7GOTIIQ7.js.map +1 -0
  79. package/dist/{chunk-V7CIJE4B.js → chunk-DKFWDTVY.js} +92 -9
  80. package/dist/chunk-DKFWDTVY.js.map +1 -0
  81. package/dist/{chunk-FBUU43PM.js → chunk-E4QCH32M.js} +448 -446
  82. package/dist/chunk-E4QCH32M.js.map +1 -0
  83. package/dist/{chunk-XKXWK2KP.js → chunk-GXU6WFEJ.js} +1157 -1021
  84. package/dist/chunk-GXU6WFEJ.js.map +1 -0
  85. package/dist/{chunk-K3FXTC3I.js → chunk-HJACH5PU.js} +3 -3
  86. package/dist/{chunk-GTPCOEOZ.js → chunk-IDMLXLLG.js} +3 -3
  87. package/dist/{chunk-DKP56CSW.js → chunk-JKAYLDQV.js} +2 -2
  88. package/dist/{chunk-4VLAQHZI.js → chunk-K7FB3JTD.js} +17 -1
  89. package/dist/chunk-K7FB3JTD.js.map +1 -0
  90. package/dist/{chunk-43BKLFZU.js → chunk-KFURM6FM.js} +10 -10
  91. package/dist/{chunk-H75VXTGT.js → chunk-L6LDXRWE.js} +3 -3
  92. package/dist/{chunk-H75VXTGT.js.map → chunk-L6LDXRWE.js.map} +1 -1
  93. package/dist/chunk-MCOFHMUU.js +4131 -0
  94. package/dist/chunk-MCOFHMUU.js.map +1 -0
  95. package/dist/chunk-MQEQMS7B.js +1009 -0
  96. package/dist/chunk-MQEQMS7B.js.map +1 -0
  97. package/dist/chunk-MTELVIYR.js +1421 -0
  98. package/dist/chunk-MTELVIYR.js.map +1 -0
  99. package/dist/{chunk-3JR3EDB2.js → chunk-NNDIFUKX.js} +121 -115
  100. package/dist/chunk-NNDIFUKX.js.map +1 -0
  101. package/dist/{chunk-2747WN4Y.js → chunk-PUSRRALM.js} +3 -3
  102. package/dist/{chunk-QFY4AFY4.js → chunk-PVC7WDKI.js} +58 -52
  103. package/dist/chunk-PVC7WDKI.js.map +1 -0
  104. package/dist/{chunk-VTHLCFN4.js → chunk-RAHNUYA5.js} +2 -2
  105. package/dist/chunk-TQPCAIQI.js +612 -0
  106. package/dist/chunk-TQPCAIQI.js.map +1 -0
  107. package/dist/{chunk-IXZBUWSP.js → chunk-UEMN5URK.js} +2 -2
  108. package/dist/chunk-WOS7RJYZ.js +1320 -0
  109. package/dist/chunk-WOS7RJYZ.js.map +1 -0
  110. package/dist/{chunk-6PHB5CJS.js → chunk-ZLFRB6FI.js} +2 -2
  111. package/dist/composition/index.cjs +1228 -1076
  112. package/dist/composition/index.cjs.map +1 -1
  113. package/dist/composition/index.d.cts +3 -3
  114. package/dist/composition/index.d.ts +3 -3
  115. package/dist/composition/index.js +4 -4
  116. package/dist/core/index.cjs +1198 -1046
  117. package/dist/core/index.cjs.map +1 -1
  118. package/dist/core/index.d.cts +23 -2
  119. package/dist/core/index.d.ts +23 -2
  120. package/dist/core/index.js +2 -2
  121. package/dist/cqrs/index.d.cts +3 -3
  122. package/dist/cqrs/index.d.ts +3 -3
  123. package/dist/cqrs/messaging.d.cts +4 -4
  124. package/dist/cqrs/messaging.d.ts +4 -4
  125. package/dist/cqrs/work-queue.d.cts +5 -5
  126. package/dist/cqrs/work-queue.d.ts +5 -5
  127. package/dist/data-structures/index.cjs +1226 -1074
  128. package/dist/data-structures/index.cjs.map +1 -1
  129. package/dist/data-structures/index.d.cts +8 -7
  130. package/dist/data-structures/index.d.ts +8 -7
  131. package/dist/data-structures/index.js +6 -5
  132. package/dist/{describe-DYMw_l1C.d.cts → describe-BumQ-3_0.d.cts} +1 -1
  133. package/dist/{describe-BpyJuWkw.d.ts → describe-cYr_Z5zm.d.ts} +1 -1
  134. package/dist/executors/tool-provider-adapters.cjs +3091 -0
  135. package/dist/executors/tool-provider-adapters.cjs.map +1 -0
  136. package/dist/executors/tool-provider-adapters.d.cts +174 -0
  137. package/dist/executors/tool-provider-adapters.d.ts +174 -0
  138. package/dist/executors/tool-provider-adapters.js +1336 -0
  139. package/dist/executors/tool-provider-adapters.js.map +1 -0
  140. package/dist/executors/tool-provider-runtime.cjs +5178 -0
  141. package/dist/executors/tool-provider-runtime.cjs.map +1 -0
  142. package/dist/executors/tool-provider-runtime.d.cts +17 -0
  143. package/dist/executors/tool-provider-runtime.d.ts +17 -0
  144. package/dist/executors/tool-provider-runtime.js +15 -0
  145. package/dist/executors/tool-provider-runtime.js.map +1 -0
  146. package/dist/executors/tool-provider.cjs +6392 -0
  147. package/dist/executors/tool-provider.cjs.map +1 -0
  148. package/dist/executors/tool-provider.d.cts +60 -0
  149. package/dist/executors/tool-provider.d.ts +60 -0
  150. package/dist/executors/tool-provider.js +89 -0
  151. package/dist/executors/tool-provider.js.map +1 -0
  152. package/dist/executors/work-queue.d.cts +6 -6
  153. package/dist/executors/work-queue.d.ts +6 -6
  154. package/dist/graph/index.cjs +1499 -1341
  155. package/dist/graph/index.cjs.map +1 -1
  156. package/dist/graph/index.d.cts +9 -8
  157. package/dist/graph/index.d.ts +9 -8
  158. package/dist/graph/index.js +23 -22
  159. package/dist/{graph-DCEWh4T2.d.cts → graph-C1C-wb0L.d.cts} +266 -137
  160. package/dist/{graph-D-1-SQeC.d.ts → graph-CS0b4V9B.d.ts} +266 -137
  161. package/dist/{index-72VZC0-E.d.cts → index-DLrNopda.d.cts} +151 -10
  162. package/dist/{index-Bmxeu0nK.d.ts → index-DzJni3_6.d.ts} +151 -10
  163. package/dist/index.cjs +3397 -3140
  164. package/dist/index.cjs.map +1 -1
  165. package/dist/index.d.cts +12 -9
  166. package/dist/index.d.ts +12 -9
  167. package/dist/index.js +110 -109
  168. package/dist/inspection/boundary.d.cts +4 -4
  169. package/dist/inspection/boundary.d.ts +4 -4
  170. package/dist/measurements-BWAnochv.d.ts +294 -0
  171. package/dist/measurements-B_gJfD8h.d.cts +294 -0
  172. package/dist/messaging/index.cjs +57 -51
  173. package/dist/messaging/index.cjs.map +1 -1
  174. package/dist/messaging/index.d.cts +11 -276
  175. package/dist/messaging/index.d.ts +11 -276
  176. package/dist/messaging/index.js +1 -1
  177. package/dist/operators/index.cjs +1228 -1076
  178. package/dist/operators/index.cjs.map +1 -1
  179. package/dist/operators/index.d.cts +5 -5
  180. package/dist/operators/index.d.ts +5 -5
  181. package/dist/operators/index.js +5 -5
  182. package/dist/orchestration/index.cjs +8844 -6071
  183. package/dist/orchestration/index.cjs.map +1 -1
  184. package/dist/orchestration/index.d.cts +171 -224
  185. package/dist/orchestration/index.d.ts +171 -224
  186. package/dist/orchestration/index.js +42 -991
  187. package/dist/orchestration/index.js.map +1 -1
  188. package/dist/orchestration/messaging.d.cts +5 -8
  189. package/dist/orchestration/messaging.d.ts +5 -8
  190. package/dist/orchestration/work-queue.cjs +1243 -5
  191. package/dist/orchestration/work-queue.cjs.map +1 -1
  192. package/dist/orchestration/work-queue.d.cts +121 -10
  193. package/dist/orchestration/work-queue.d.ts +121 -10
  194. package/dist/orchestration/work-queue.js +1067 -4
  195. package/dist/orchestration/work-queue.js.map +1 -1
  196. package/dist/patterns/event-flow.cjs +6 -20
  197. package/dist/patterns/event-flow.cjs.map +1 -1
  198. package/dist/patterns/event-flow.d.cts +4 -4
  199. package/dist/patterns/event-flow.d.ts +4 -4
  200. package/dist/patterns/event-flow.js +2 -2
  201. package/dist/patterns/index.cjs +453 -465
  202. package/dist/patterns/index.cjs.map +1 -1
  203. package/dist/patterns/index.d.cts +6 -5
  204. package/dist/patterns/index.d.ts +6 -5
  205. package/dist/patterns/index.js +3 -3
  206. package/dist/process-types-BB7oRhX3.d.cts +200 -0
  207. package/dist/process-types-QNhyoYJ8.d.ts +200 -0
  208. package/dist/{reactive-collection-DNV0-gFi.d.cts → reactive-collection-BYlWvtnp.d.cts} +4 -34
  209. package/dist/{reactive-collection-BAmfrGjd.d.ts → reactive-collection-efOEdGFN.d.ts} +4 -34
  210. package/dist/{reactive-collection-storage-BNEldDyi.d.cts → reactive-collection-storage-BjoLsoiC.d.cts} +5 -5
  211. package/dist/{reactive-collection-storage-YZsAQsWK.d.ts → reactive-collection-storage-DwW6UuK_.d.ts} +5 -5
  212. package/dist/{reactive-map-DRD1LJ2H.d.cts → reactive-map-BHacbIqz.d.cts} +7 -2
  213. package/dist/{reactive-map-EsDiCmJk.d.ts → reactive-map-DN4Jyqnf.d.ts} +7 -2
  214. package/dist/render/index.d.cts +2 -2
  215. package/dist/render/index.d.ts +2 -2
  216. package/dist/scheduled-readiness-BmqXxnzX.d.ts +91 -0
  217. package/dist/scheduled-readiness-CYSw7KDE.d.cts +91 -0
  218. package/dist/semantic-memory-graph-B_LwbM-E.d.cts +30 -0
  219. package/dist/semantic-memory-graph-rsFNNhwn.d.ts +30 -0
  220. package/dist/{semantic-memory-graph-DKuNzuWw.d.cts → semantic-memory-graph-types-Y73bbwVI.d.cts} +2 -28
  221. package/dist/{semantic-memory-graph-uwbwJdhe.d.ts → semantic-memory-graph-types-safmPkuX.d.ts} +2 -28
  222. package/dist/solutions/index.cjs +6353 -6169
  223. package/dist/solutions/index.cjs.map +1 -1
  224. package/dist/solutions/index.d.cts +12 -10
  225. package/dist/solutions/index.d.ts +12 -10
  226. package/dist/solutions/index.js +5 -5
  227. package/dist/solutions/reactive-layout/browser/index.cjs +116 -108
  228. package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -1
  229. package/dist/solutions/reactive-layout/browser/index.d.cts +4 -4
  230. package/dist/solutions/reactive-layout/browser/index.d.ts +4 -4
  231. package/dist/solutions/reactive-layout/browser/index.js +3 -3
  232. package/dist/solutions/reactive-layout/index.cjs +3578 -3350
  233. package/dist/solutions/reactive-layout/index.cjs.map +1 -1
  234. package/dist/solutions/reactive-layout/index.d.cts +32 -576
  235. package/dist/solutions/reactive-layout/index.d.ts +32 -576
  236. package/dist/solutions/reactive-layout/index.js +65 -5
  237. package/dist/solutions/reactive-layout/node-canvas/index.cjs +127 -117
  238. package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -1
  239. package/dist/solutions/reactive-layout/node-canvas/index.d.cts +4 -4
  240. package/dist/solutions/reactive-layout/node-canvas/index.d.ts +4 -4
  241. package/dist/solutions/reactive-layout/node-canvas/index.js +3 -3
  242. package/dist/solutions/reactive-layout/react-native/index.cjs +127 -117
  243. package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -1
  244. package/dist/solutions/reactive-layout/react-native/index.d.cts +4 -4
  245. package/dist/solutions/reactive-layout/react-native/index.d.ts +4 -4
  246. package/dist/solutions/reactive-layout/react-native/index.js +3 -3
  247. package/dist/solutions/reactive-layout/skia/index.cjs +127 -117
  248. package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -1
  249. package/dist/solutions/reactive-layout/skia/index.d.cts +4 -4
  250. package/dist/solutions/reactive-layout/skia/index.d.ts +4 -4
  251. package/dist/solutions/reactive-layout/skia/index.js +3 -3
  252. package/dist/solutions/work-item/actions.cjs +1609 -1428
  253. package/dist/solutions/work-item/actions.cjs.map +1 -1
  254. package/dist/solutions/work-item/actions.d.cts +23 -184
  255. package/dist/solutions/work-item/actions.d.ts +23 -184
  256. package/dist/solutions/work-item/actions.js +1558 -934
  257. package/dist/solutions/work-item/actions.js.map +1 -1
  258. package/dist/solutions/work-item/scheduling.cjs +9181 -1838
  259. package/dist/solutions/work-item/scheduling.cjs.map +1 -1
  260. package/dist/solutions/work-item/scheduling.d.cts +1763 -328
  261. package/dist/solutions/work-item/scheduling.d.ts +1763 -328
  262. package/dist/solutions/work-item/scheduling.js +117 -3
  263. package/dist/solutions/work-item/work-queue.d.cts +7 -7
  264. package/dist/solutions/work-item/work-queue.d.ts +7 -7
  265. package/dist/sources/browser.cjs +1318 -1083
  266. package/dist/sources/browser.cjs.map +1 -1
  267. package/dist/sources/browser.d.cts +22 -6
  268. package/dist/sources/browser.d.ts +22 -6
  269. package/dist/sources/browser.js +4 -4
  270. package/dist/sources/browser.js.map +1 -1
  271. package/dist/sources/index.cjs +1318 -1083
  272. package/dist/sources/index.cjs.map +1 -1
  273. package/dist/sources/index.d.cts +4 -4
  274. package/dist/sources/index.d.ts +4 -4
  275. package/dist/sources/index.js +4 -4
  276. package/dist/sources/node.d.cts +3 -3
  277. package/dist/sources/node.d.ts +3 -3
  278. package/dist/storage/browser.cjs +16 -0
  279. package/dist/storage/browser.cjs.map +1 -1
  280. package/dist/storage/browser.js +3 -3
  281. package/dist/storage/index.cjs +16 -0
  282. package/dist/storage/index.cjs.map +1 -1
  283. package/dist/storage/index.d.cts +5 -4
  284. package/dist/storage/index.d.ts +5 -4
  285. package/dist/storage/index.js +6 -6
  286. package/dist/storage/node.cjs +16 -0
  287. package/dist/storage/node.cjs.map +1 -1
  288. package/dist/storage/node.js +3 -3
  289. package/dist/{store-C-joM4gh.d.ts → store-6_CHF6Ge.d.ts} +1 -1
  290. package/dist/{store-CNJwmT-h.d.cts → store-BljX8RkQ.d.cts} +1 -1
  291. package/dist/types-BAw2QVVE.d.cts +274 -0
  292. package/dist/types-BUbbbh4f.d.cts +34 -0
  293. package/dist/types-CMnzoL54.d.cts +457 -0
  294. package/dist/{types-CcPIn7sy.d.cts → types-CTN3XoMl.d.cts} +57 -108
  295. package/dist/types-CV_ohy5T.d.cts +357 -0
  296. package/dist/{types-BsJvElYZ.d.ts → types-DChxk1vK.d.ts} +57 -108
  297. package/dist/types-DRu7SnLV.d.ts +274 -0
  298. package/dist/types-DeID_FRl.d.ts +34 -0
  299. package/dist/types-IhKH0hGW.d.ts +357 -0
  300. package/dist/types-ePlD2uyT.d.ts +457 -0
  301. package/dist/{work-item-runtime-qaVgsL0T.d.cts → work-item-runtime-types-BTxLskN5.d.cts} +3 -93
  302. package/dist/{work-item-runtime-C3M79vE9.d.ts → work-item-runtime-types-DAsZbb2y.d.ts} +3 -93
  303. package/dist/work-queue/index.cjs +957 -953
  304. package/dist/work-queue/index.cjs.map +1 -1
  305. package/dist/work-queue/index.d.cts +9 -357
  306. package/dist/work-queue/index.d.ts +9 -357
  307. package/dist/work-queue/index.js +957 -953
  308. package/dist/work-queue/index.js.map +1 -1
  309. package/package.json +611 -513
  310. package/dist/chunk-3JR3EDB2.js.map +0 -1
  311. package/dist/chunk-4VLAQHZI.js.map +0 -1
  312. package/dist/chunk-6XAIOL3X.js +0 -2407
  313. package/dist/chunk-6XAIOL3X.js.map +0 -1
  314. package/dist/chunk-FBUU43PM.js.map +0 -1
  315. package/dist/chunk-HKK2JD7Z.js.map +0 -1
  316. package/dist/chunk-PC3BTTBE.js +0 -3217
  317. package/dist/chunk-PC3BTTBE.js.map +0 -1
  318. package/dist/chunk-QFY4AFY4.js.map +0 -1
  319. package/dist/chunk-SS2A464I.js.map +0 -1
  320. package/dist/chunk-V7CIJE4B.js.map +0 -1
  321. package/dist/chunk-XKXWK2KP.js.map +0 -1
  322. package/dist/chunk-YDSIVHRR.js.map +0 -1
  323. package/dist/chunk-YXMZ2N6J.js.map +0 -1
  324. /package/dist/{chunk-CZNV3VXM.js.map → chunk-3J7UPZL5.js.map} +0 -0
  325. /package/dist/{chunk-Z2ANQ6JW.js.map → chunk-4Q77MMJY.js.map} +0 -0
  326. /package/dist/{chunk-K3FXTC3I.js.map → chunk-HJACH5PU.js.map} +0 -0
  327. /package/dist/{chunk-GTPCOEOZ.js.map → chunk-IDMLXLLG.js.map} +0 -0
  328. /package/dist/{chunk-DKP56CSW.js.map → chunk-JKAYLDQV.js.map} +0 -0
  329. /package/dist/{chunk-43BKLFZU.js.map → chunk-KFURM6FM.js.map} +0 -0
  330. /package/dist/{chunk-2747WN4Y.js.map → chunk-PUSRRALM.js.map} +0 -0
  331. /package/dist/{chunk-VTHLCFN4.js.map → chunk-RAHNUYA5.js.map} +0 -0
  332. /package/dist/{chunk-IXZBUWSP.js.map → chunk-UEMN5URK.js.map} +0 -0
  333. /package/dist/{chunk-6PHB5CJS.js.map → chunk-ZLFRB6FI.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/solutions/work-item/scheduling.ts"],"sourcesContent":["/**\n * WorkItem authoring, verification, and scheduling facts (D333-D343).\n *\n * This focused solution subpath is data-first glue. It emits graph-visible\n * projections, requests, results, status, issues, and audit facts; it does not\n * run verification, claim queues, dispatch executors, or mutate WorkItems.\n */\n\nimport { type Ctx, depBatch } from \"../../ctx/types.js\";\nimport type { DataIssue } from \"../../data/index.js\";\nimport type { Graph } from \"../../graph/graph.js\";\nimport type { Node } from \"../../node/node.js\";\nimport type {\n\tAgentOutputEnvelope,\n\tAgentRuntimeAuditRecord,\n\tEffectRunGoal,\n\tEffectRunLimits,\n\tEffectRunResult,\n\tEffectRunResultStatus,\n\tSourceRef,\n} from \"../../orchestration/agent-runtime.js\";\nimport type {\n\tWorkItemDomainActionProposal,\n\tWorkItemDomainActionProposalSpec,\n\tWorkItemEffectRequested,\n\tWorkItemEvidenceRecorded,\n} from \"../../orchestration/work-item-runtime.js\";\n\nexport type WorkItemValidationIssueCode =\n\t| \"malformed-draft\"\n\t| \"missing-required-field\"\n\t| \"invalid-patch\"\n\t| \"duplicate-id\"\n\t| \"dangling-ref\"\n\t| \"cyclic-dependency\"\n\t| \"unsupported-mode\"\n\t| \"unsupported-effect-kind\"\n\t| \"oversized-inline-data\"\n\t| \"policy-mismatch\"\n\t| \"missing-policy\"\n\t| \"stale-revision\"\n\t| \"stale-execution-input\"\n\t| \"blocked-prerequisite\"\n\t| \"verification-unplanned\"\n\t| \"manual-review-required\"\n\t| \"duplicate-suppressed\"\n\t| \"ambiguous-coverage\"\n\t| \"partial-coverage\"\n\t| \"unverifiable-output\"\n\t| \"unauthorized-author\"\n\t| \"unauthorized-target\"\n\t| \"invalid-schedule\";\n\nexport type WorkItemValidationStatusState =\n\t| \"projected\"\n\t| \"rejected\"\n\t| \"deferred\"\n\t| \"blocked\"\n\t| \"needs-human-review\"\n\t| \"stale\"\n\t| \"duplicate\"\n\t| \"request-emitted\"\n\t| \"result-recorded\"\n\t| \"domain-action-proposed\";\n\nexport interface WorkItemValidationStatus {\n\treadonly kind: \"work-item-validation-status\";\n\treadonly statusId: string;\n\treadonly workItemId?: string;\n\treadonly state: WorkItemValidationStatusState;\n\treadonly code?: WorkItemValidationIssueCode;\n\treadonly revision?: number;\n\treadonly executionInputRevision?: number;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly stepId?: string;\n\treadonly criterionId?: string;\n\treadonly message?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AcceptanceCriterion {\n\treadonly criterionId: string;\n\treadonly statement: string;\n\treadonly required?: boolean;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type VerificationStepMode = \"auto\" | \"manual\" | \"hybrid\";\n\nexport interface VerificationStep<TInput = unknown> {\n\treadonly stepId: string;\n\treadonly title?: string;\n\treadonly description?: string;\n\treadonly verifiesCriteriaIds?: readonly string[];\n\treadonly mode: VerificationStepMode;\n\treadonly effectKind?: string;\n\treadonly goal?: EffectRunGoal<TInput>;\n\treadonly input?: TInput;\n\treadonly contextRefs?: readonly SourceRef[];\n\treadonly requirements?: readonly string[];\n\treadonly capacityHints?: Record<string, unknown>;\n\treadonly dependsOnStepIds?: readonly string[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface VerificationPlan<TInput = unknown> {\n\treadonly planId: string;\n\treadonly planRevision?: string | number;\n\treadonly steps: readonly VerificationStep<TInput>[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemDraft<TInput = unknown> {\n\treadonly summary: string;\n\treadonly detail?: string;\n\treadonly detailRefs?: readonly SourceRef[];\n\treadonly acceptanceCriteria?: readonly AcceptanceCriterion[];\n\treadonly verificationPlan?: VerificationPlan<TInput>;\n\treadonly verificationSteps?: readonly VerificationStep<TInput>[];\n\treadonly kind?: string;\n\treadonly priority?: number;\n\treadonly tags?: readonly string[];\n\treadonly owner?: string;\n\treadonly assignee?: string;\n\treadonly deadlineMs?: number;\n\treadonly customFields?: Record<string, unknown>;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemPatch<TInput = unknown> = Partial<WorkItemDraft<TInput>>;\n\nexport interface WorkItemCreated<TInput = unknown> {\n\treadonly kind: \"work-item-created\";\n\treadonly eventId: string;\n\treadonly workItemId: string;\n\treadonly draft: WorkItemDraft<TInput>;\n\treadonly authorId?: string;\n\treadonly createdAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemPatched<TInput = unknown> {\n\treadonly kind: \"work-item-patched\";\n\treadonly eventId: string;\n\treadonly workItemId: string;\n\treadonly patch: WorkItemPatch<TInput>;\n\treadonly executionRelevantFields?: readonly string[];\n\treadonly authorId?: string;\n\treadonly patchedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface AcceptanceCriteriaChanged {\n\treadonly kind: \"acceptance-criteria-changed\";\n\treadonly eventId: string;\n\treadonly workItemId: string;\n\treadonly acceptanceCriteria: readonly AcceptanceCriterion[];\n\treadonly authorId?: string;\n\treadonly changedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface VerificationPlanChanged<TInput = unknown> {\n\treadonly kind: \"verification-plan-changed\";\n\treadonly eventId: string;\n\treadonly workItemId: string;\n\treadonly verificationPlan: VerificationPlan<TInput>;\n\treadonly authorId?: string;\n\treadonly changedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemAuthoringFact<TInput = unknown> =\n\t| WorkItemCreated<TInput>\n\t| WorkItemPatched<TInput>\n\t| AcceptanceCriteriaChanged\n\t| VerificationPlanChanged<TInput>;\n\nexport interface WorkItemSpawnProposed<TInput = unknown> {\n\treadonly kind: \"work-item-spawn-proposed\";\n\treadonly proposalId: string;\n\treadonly parentWorkItemId?: string;\n\treadonly draft: WorkItemDraft<TInput>;\n\treadonly proposedBy?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemAuthoringInput<TInput = unknown> =\n\t| WorkItemAuthoringFact<TInput>\n\t| WorkItemSpawnProposed<TInput>;\n\nexport interface WorkItemProjection<TInput = unknown> extends WorkItemDraft<TInput> {\n\treadonly workItemId: string;\n\treadonly authoringRevision: number;\n\treadonly executionInputRevision: number;\n\treadonly lastEventId: string;\n\treadonly revisionSourceRefs?: readonly SourceRef[];\n\treadonly createdAtMs?: number;\n\treadonly updatedAtMs?: number;\n}\n\nexport interface WorkItemPriorityAssessment {\n\treadonly kind: \"work-item-priority-assessment\";\n\treadonly assessmentId: string;\n\treadonly workItemId: string;\n\treadonly authoringRevision?: number;\n\treadonly executionInputRevision?: number;\n\treadonly priority?: number;\n\treadonly rank?: number;\n\treadonly reason?: string;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemPlacementDecision {\n\treadonly kind: \"work-item-placement-decision\";\n\treadonly decisionId: string;\n\treadonly workItemId: string;\n\treadonly authoringRevision?: number;\n\treadonly executionInputRevision?: number;\n\treadonly laneId: string;\n\treadonly targetKind?: string;\n\treadonly reason?: string;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemScheduleDecision {\n\treadonly kind: \"work-item-schedule-decision\";\n\treadonly decisionId: string;\n\treadonly workItemId: string;\n\treadonly authoringRevision?: number;\n\treadonly executionInputRevision?: number;\n\treadonly targetKind: \"work-item-effect\" | \"work-queue\" | \"executor\" | \"status\";\n\treadonly effectKind?: string;\n\treadonly notBeforeMs?: number;\n\treadonly deadlineMs?: number;\n\treadonly requirements?: readonly string[];\n\treadonly capacityHints?: Record<string, unknown>;\n\treadonly reason?: string;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemDispatchIntent<TInput = unknown> {\n\treadonly kind: \"work-item-dispatch-intent\";\n\treadonly intentId: string;\n\treadonly workItemId: string;\n\treadonly authoringRevision?: number;\n\treadonly executionInputRevision: number;\n\treadonly targetKind:\n\t\t| \"verification\"\n\t\t| \"approval\"\n\t\t| \"human-review\"\n\t\t| \"external-sync\"\n\t\t| \"spawn-review\"\n\t\t| \"background-evidence\"\n\t\t| \"executor\";\n\treadonly effectKind?: string;\n\treadonly stepIds?: readonly string[];\n\treadonly acceptanceCriterionIds?: readonly string[];\n\treadonly goal?: EffectRunGoal<TInput>;\n\treadonly contextRefs?: readonly SourceRef[];\n\treadonly requirements?: readonly string[];\n\treadonly capacityHints?: Record<string, unknown>;\n\treadonly limits?: EffectRunLimits;\n\treadonly idempotencyKey?: string;\n\treadonly reason?: string;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemAuthoringPolicy {\n\treadonly executionRelevantFields?: readonly string[];\n}\n\nexport interface WorkItemAuthoringProjectorOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly facts: Node<WorkItemAuthoringInput<TInput>>;\n\treadonly policy?: WorkItemAuthoringPolicy;\n}\n\nexport interface WorkItemAuthoringProjectorBundle<TInput = unknown> {\n\treadonly workItems: Node<WorkItemProjection<TInput>>;\n\treadonly status: Node<WorkItemValidationStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport interface WorkItemVerificationLowererPolicy {\n\treadonly policyId?: string;\n\treadonly autoRun?: boolean;\n\treadonly allowedModes?: readonly VerificationStepMode[];\n\treadonly allowedEffectKinds?: readonly string[];\n\treadonly stalePolicy?: \"cancel\" | \"reschedule\" | \"requeue\" | \"replacement-intent\" | \"review\";\n}\n\nexport interface WorkItemVerificationRequestLowererOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly workItems: Node<WorkItemProjection<TInput>>;\n\treadonly dispatchIntents?: Node<WorkItemDispatchIntent<TInput>>;\n\treadonly verificationResults?: Node<VerificationResultRecorded>;\n\treadonly policy?: WorkItemVerificationLowererPolicy;\n}\n\nexport interface WorkItemVerificationRequestLowererBundle<TInput = unknown> {\n\treadonly effectRequests: Node<WorkItemEffectRequested<TInput>>;\n\treadonly status: Node<WorkItemValidationStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport type VerificationResultStatus =\n\t| \"passed\"\n\t| \"failed\"\n\t| \"blocked\"\n\t| \"canceled\"\n\t| \"timeout\"\n\t| \"waived\"\n\t| \"unverifiable\";\n\nexport interface VerificationResultRecorded {\n\treadonly kind: \"verification-result-recorded\";\n\treadonly resultId: string;\n\treadonly workItemId: string;\n\treadonly evidenceId: string;\n\treadonly effectRunId: string;\n\treadonly effectRunResultId: string;\n\treadonly executionInputRevision: number;\n\treadonly verificationStepIds: readonly string[];\n\treadonly acceptanceCriterionIds: readonly string[];\n\treadonly status: VerificationResultStatus;\n\treadonly output?: AgentOutputEnvelope;\n\treadonly error?: DataIssue;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly recordedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemVerificationMappingPolicy {\n\treadonly kind: \"work-item-verification-mapping-policy\";\n\treadonly policyId: string;\n\treadonly actionProposals?: readonly WorkItemDomainActionProposalSpec[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemVerificationResultMapperOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly workItems: Node<WorkItemProjection<TInput>>;\n\treadonly evidence: Node<WorkItemEvidenceRecorded>;\n\treadonly policies?: Node<WorkItemVerificationMappingPolicy>;\n}\n\nexport interface WorkItemVerificationResultMapperBundle {\n\treadonly results: Node<VerificationResultRecorded>;\n\treadonly proposals: Node<WorkItemDomainActionProposal>;\n\treadonly status: Node<WorkItemValidationStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\nexport type WorkItemEffectPlanJoinPolicy = \"all-required\" | \"evidence-only\";\n\nexport interface WorkItemEffectPlanMember<TInput = unknown> {\n\treadonly memberId: string;\n\treadonly effectKind: string;\n\treadonly goal: EffectRunGoal<TInput>;\n\treadonly required?: boolean;\n\treadonly dependsOnMemberIds?: readonly string[];\n\treadonly contextRefs?: readonly SourceRef[];\n\treadonly requirements?: readonly string[];\n\treadonly capacityHints?: Record<string, unknown>;\n\treadonly limits?: EffectRunLimits;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly idempotencyKey?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectPlanProposed<TInput = unknown> {\n\treadonly kind: \"work-item-effect-plan-proposed\";\n\treadonly planId: string;\n\treadonly workItemId: string;\n\treadonly executionInputRevision: number;\n\treadonly members: readonly WorkItemEffectPlanMember<TInput>[];\n\treadonly joinPolicy?: WorkItemEffectPlanJoinPolicy;\n\treadonly limits?: EffectRunLimits;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly proposedBy?: string;\n\treadonly proposedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectPlanSnapshot<TInput = unknown> {\n\treadonly planId: string;\n\treadonly workItemId: string;\n\treadonly executionInputRevision: number;\n\treadonly members: readonly WorkItemEffectPlanMember<TInput>[];\n\treadonly joinPolicy: WorkItemEffectPlanJoinPolicy;\n\treadonly limits?: EffectRunLimits;\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectPlanAdmitted<TInput = unknown> {\n\treadonly kind: \"work-item-effect-plan-admitted\";\n\treadonly planId: string;\n\treadonly workItemId: string;\n\treadonly executionInputRevision: number;\n\treadonly plan: WorkItemEffectPlanSnapshot<TInput>;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly admittedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectPlanRejected {\n\treadonly kind: \"work-item-effect-plan-rejected\";\n\treadonly planId: string;\n\treadonly workItemId: string;\n\treadonly executionInputRevision?: number;\n\treadonly issues: readonly DataIssue[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly rejectedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemEffectPlanMemberStatus =\n\t| \"eligible\"\n\t| \"requested\"\n\t| \"blocked\"\n\t| \"deferred\"\n\t| \"evidence-recorded\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"duplicate\"\n\t| \"stale\"\n\t| \"rejected\";\n\nexport interface WorkItemEffectPlanStatus {\n\treadonly kind: \"work-item-effect-plan-status\";\n\treadonly statusId: string;\n\treadonly workItemId: string;\n\treadonly planId: string;\n\treadonly executionInputRevision: number;\n\treadonly state: WorkItemEffectPlanMemberStatus;\n\treadonly planMemberId?: string;\n\treadonly requestId?: string;\n\treadonly effectRunId?: string;\n\treadonly evidenceId?: string;\n\treadonly effectRunResultId?: string;\n\treadonly issues?: readonly DataIssue[];\n\treadonly message?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemEffectPlanResultStatus = \"succeeded\" | \"failed\" | \"evidence-only\";\n\nexport interface WorkItemEffectPlanResult {\n\treadonly kind: \"work-item-effect-plan-result\";\n\treadonly resultId: string;\n\treadonly workItemId: string;\n\treadonly planId: string;\n\treadonly executionInputRevision: number;\n\treadonly status: WorkItemEffectPlanResultStatus;\n\treadonly memberResults: readonly {\n\t\treadonly planMemberId: string;\n\t\treadonly status: EffectRunResultStatus;\n\t\treadonly requestId?: string;\n\t\treadonly effectRunId?: string;\n\t\treadonly evidenceId?: string;\n\t\treadonly effectRunResultId?: string;\n\t}[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemEffectPlanPolicy {\n\treadonly policyId?: string;\n\treadonly allowedEffectKinds?: readonly string[];\n\treadonly joinPolicy?: WorkItemEffectPlanJoinPolicy;\n}\n\nexport interface WorkItemEffectPlanProjectorOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly workItems: Node<WorkItemProjection<TInput>>;\n\treadonly proposals: Node<WorkItemEffectPlanProposed<TInput>>;\n\treadonly evidence?: Node<WorkItemEvidenceRecorded>;\n\treadonly effectRunResults?: Node<EffectRunResult>;\n\treadonly policy?: WorkItemEffectPlanPolicy;\n\treadonly now?: () => number;\n}\n\nexport interface WorkItemEffectPlanProjectorBundle<TInput = unknown> {\n\treadonly admitted: Node<WorkItemEffectPlanAdmitted<TInput>>;\n\treadonly rejected: Node<WorkItemEffectPlanRejected>;\n\treadonly effectRequests: Node<WorkItemEffectRequested<TInput>>;\n\treadonly results: Node<WorkItemEffectPlanResult>;\n\treadonly status: Node<WorkItemEffectPlanStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n}\n\ntype Fact<T> =\n\t| { readonly kind: \"work-item\"; readonly value: WorkItemProjection<T> }\n\t| { readonly kind: \"request\"; readonly value: WorkItemEffectRequested<T> }\n\t| { readonly kind: \"result\"; readonly value: VerificationResultRecorded }\n\t| { readonly kind: \"proposal\"; readonly value: WorkItemDomainActionProposal }\n\t| { readonly kind: \"status\"; readonly value: WorkItemValidationStatus }\n\t| { readonly kind: \"issue\"; readonly value: DataIssue }\n\t| { readonly kind: \"audit\"; readonly value: AgentRuntimeAuditRecord };\n\ntype PlanFact<T> =\n\t| { readonly kind: \"admitted\"; readonly value: WorkItemEffectPlanAdmitted<T> }\n\t| { readonly kind: \"rejected\"; readonly value: WorkItemEffectPlanRejected }\n\t| { readonly kind: \"request\"; readonly value: WorkItemEffectRequested<T> }\n\t| { readonly kind: \"result\"; readonly value: WorkItemEffectPlanResult }\n\t| { readonly kind: \"status\"; readonly value: WorkItemEffectPlanStatus }\n\t| { readonly kind: \"issue\"; readonly value: DataIssue }\n\t| { readonly kind: \"audit\"; readonly value: AgentRuntimeAuditRecord };\n\ninterface AuthoringState<T> {\n\treadonly workItems: Map<string, WorkItemProjection<T>>;\n\treadonly seenEvents: Set<string>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\ninterface RequestState<T> {\n\treadonly workItems: Map<string, WorkItemProjection<T>>;\n\treadonly emittedKeys: Set<string>;\n\treadonly passedSteps: Map<string, Set<string>>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\ninterface ResultState<T> {\n\treadonly workItems: Map<string, WorkItemProjection<T>>;\n\treadonly policies: Map<string, WorkItemVerificationMappingPolicy>;\n\treadonly evidenceById: Map<string, WorkItemEvidenceRecorded>;\n\treadonly resultEvidence: Set<string>;\n\treadonly proposalKeys: Set<string>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\ninterface PlanMemberEvidence {\n\treadonly status: EffectRunResultStatus;\n\treadonly requestId?: string;\n\treadonly effectRunId?: string;\n\treadonly evidenceId?: string;\n\treadonly effectRunResultId?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n}\n\ninterface PlanState<T> {\n\treadonly workItems: Map<string, WorkItemProjection<T>>;\n\treadonly proposals: Map<string, WorkItemEffectPlanProposed<T>>;\n\treadonly admitted: Map<string, WorkItemEffectPlanAdmitted<T>>;\n\treadonly rejected: Set<string>;\n\treadonly emittedMemberKeys: Set<string>;\n\treadonly statusKeys: Set<string>;\n\treadonly resultKeys: Set<string>;\n\treadonly requestByEffectRun: Map<string, WorkItemEffectRequested<T>>;\n\treadonly requestByRequestId: Map<string, WorkItemEffectRequested<T>>;\n\treadonly memberEvidence: Map<string, PlanMemberEvidence>;\n\treadonly pendingEvidence: Map<string, WorkItemEvidenceRecorded>;\n\treadonly pendingResults: Map<string, EffectRunResult>;\n\treadonly unmatchedEvidence: Set<string>;\n\treadonly unmatchedResults: Set<string>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\nconst executionRelevantDefaults = new Set([\n\t\"detail\",\n\t\"detailRefs\",\n\t\"acceptanceCriteria\",\n\t\"verificationPlan\",\n\t\"verificationSteps\",\n\t\"dependencies\",\n]);\n\nconst draftPatchKeys = new Set([\n\t\"summary\",\n\t\"detail\",\n\t\"detailRefs\",\n\t\"acceptanceCriteria\",\n\t\"verificationPlan\",\n\t\"verificationSteps\",\n\t\"kind\",\n\t\"priority\",\n\t\"tags\",\n\t\"owner\",\n\t\"assignee\",\n\t\"deadlineMs\",\n\t\"customFields\",\n\t\"sourceRefs\",\n\t\"metadata\",\n]);\n\nexport function workItemCreatedFromDraft<TInput = unknown>(\n\tworkItemId: string,\n\tdraft: WorkItemDraft<TInput>,\n\topts: Partial<Omit<WorkItemCreated<TInput>, \"kind\" | \"eventId\" | \"workItemId\" | \"draft\">> & {\n\t\treadonly eventId?: string;\n\t} = {},\n): WorkItemCreated<TInput> {\n\treturn {\n\t\tkind: \"work-item-created\",\n\t\teventId: opts.eventId ?? `${workItemId}:created`,\n\t\tworkItemId,\n\t\tdraft,\n\t\tauthorId: opts.authorId,\n\t\tcreatedAtMs: opts.createdAtMs,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function workItemSpawnProposed<TInput = unknown>(\n\tproposalId: string,\n\tdraft: WorkItemDraft<TInput>,\n\topts: Partial<Omit<WorkItemSpawnProposed<TInput>, \"kind\" | \"proposalId\" | \"draft\">> = {},\n): WorkItemSpawnProposed<TInput> {\n\treturn {\n\t\tkind: \"work-item-spawn-proposed\",\n\t\tproposalId,\n\t\tdraft,\n\t\tparentWorkItemId: opts.parentWorkItemId,\n\t\tproposedBy: opts.proposedBy,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function acceptanceCriteriaChanged(\n\tworkItemId: string,\n\tacceptanceCriteria: readonly AcceptanceCriterion[],\n\topts: Partial<\n\t\tOmit<AcceptanceCriteriaChanged, \"kind\" | \"eventId\" | \"workItemId\" | \"acceptanceCriteria\">\n\t> & {\n\t\treadonly eventId: string;\n\t},\n): AcceptanceCriteriaChanged {\n\treturn {\n\t\tkind: \"acceptance-criteria-changed\",\n\t\teventId: opts.eventId,\n\t\tworkItemId,\n\t\tacceptanceCriteria,\n\t\tauthorId: opts.authorId,\n\t\tchangedAtMs: opts.changedAtMs,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function verificationPlanChanged<TInput = unknown>(\n\tworkItemId: string,\n\tverificationPlan: VerificationPlan<TInput>,\n\topts: Partial<\n\t\tOmit<VerificationPlanChanged<TInput>, \"kind\" | \"eventId\" | \"workItemId\" | \"verificationPlan\">\n\t> & {\n\t\treadonly eventId: string;\n\t},\n): VerificationPlanChanged<TInput> {\n\treturn {\n\t\tkind: \"verification-plan-changed\",\n\t\teventId: opts.eventId,\n\t\tworkItemId,\n\t\tverificationPlan,\n\t\tauthorId: opts.authorId,\n\t\tchangedAtMs: opts.changedAtMs,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tmetadata: opts.metadata,\n\t};\n}\n\nexport function validateWorkItemDraft<TInput>(\n\tdraft: WorkItemDraft<TInput> | unknown,\n\topts: { readonly workItemId?: string } = {},\n): readonly DataIssue[] {\n\tconst out: DataIssue[] = [];\n\tif (!isRecord(draft)) {\n\t\treturn [issue(\"malformed-draft\", \"WorkItemDraft must be an object\", opts.workItemId)];\n\t}\n\tif (typeof draft.summary !== \"string\") {\n\t\tout.push(issue(\"missing-required-field\", \"WorkItemDraft.summary is required\", opts.workItemId));\n\t} else if (draft.summary.trim() === \"\") {\n\t\tout.push(issue(\"missing-required-field\", \"WorkItemDraft.summary is required\", opts.workItemId));\n\t}\n\tconst criteria =\n\t\tdraft.acceptanceCriteria === undefined || Array.isArray(draft.acceptanceCriteria)\n\t\t\t? (draft.acceptanceCriteria as readonly AcceptanceCriterion[] | undefined)\n\t\t\t: undefined;\n\tif (draft.acceptanceCriteria !== undefined && criteria === undefined) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"malformed-draft\",\n\t\t\t\t\"WorkItemDraft.acceptanceCriteria must be an array\",\n\t\t\t\topts.workItemId,\n\t\t\t),\n\t\t);\n\t}\n\tout.push(...validateAcceptanceCriteria(criteria ?? [], opts));\n\tif (draft.verificationPlan !== undefined && !isVerificationPlanShape(draft.verificationPlan)) {\n\t\tout.push(\n\t\t\tissue(\"malformed-draft\", \"WorkItemDraft.verificationPlan is malformed\", opts.workItemId),\n\t\t);\n\t}\n\tif (draft.verificationSteps !== undefined && !Array.isArray(draft.verificationSteps)) {\n\t\tout.push(\n\t\t\tissue(\"malformed-draft\", \"WorkItemDraft.verificationSteps must be an array\", opts.workItemId),\n\t\t);\n\t}\n\tconst plan = normalizePlanFromUnknown(draft);\n\tif (plan !== undefined) {\n\t\tout.push(...validateVerificationPlan(plan, criteria ?? [], opts));\n\t}\n\treturn out;\n}\n\nexport function validateAcceptanceCriteria(\n\tcriteria: readonly AcceptanceCriterion[],\n\topts: { readonly workItemId?: string } = {},\n): readonly DataIssue[] {\n\tconst out: DataIssue[] = [];\n\tconst seen = new Set<string>();\n\tfor (const criterion of criteria) {\n\t\tif (!isRecord(criterion)) {\n\t\t\tout.push(issue(\"malformed-draft\", \"AcceptanceCriterion must be an object\", opts.workItemId));\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof criterion.criterionId !== \"string\" || criterion.criterionId === \"\") {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-required-field\",\n\t\t\t\t\t\"AcceptanceCriterion.criterionId is required\",\n\t\t\t\t\topts.workItemId,\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (seen.has(criterion.criterionId)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"duplicate-id\",\n\t\t\t\t\t`Duplicate acceptance criterion id '${criterion.criterionId}'`,\n\t\t\t\t\topts.workItemId,\n\t\t\t\t\t{ criterionId: criterion.criterionId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tseen.add(criterion.criterionId);\n\t\tif (typeof criterion.statement !== \"string\" || criterion.statement.trim() === \"\") {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-required-field\",\n\t\t\t\t\t\"AcceptanceCriterion.statement is required\",\n\t\t\t\t\topts.workItemId,\n\t\t\t\t\t{ criterionId: criterion.criterionId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\treturn out;\n}\n\nexport function validateVerificationPlan<TInput>(\n\tplan: VerificationPlan<TInput>,\n\tcriteria: readonly AcceptanceCriterion[] = [],\n\topts: {\n\t\treadonly workItemId?: string;\n\t\treadonly allowedModes?: readonly VerificationStepMode[];\n\t\treadonly allowedEffectKinds?: readonly string[];\n\t} = {},\n): readonly DataIssue[] {\n\tconst out: DataIssue[] = [];\n\tif (!isRecord(plan) || !Array.isArray(plan.steps)) {\n\t\treturn [issue(\"malformed-draft\", \"VerificationPlan.steps must be an array\", opts.workItemId)];\n\t}\n\tconst criterionIds = new Set(criteria.map((criterion) => criterion.criterionId));\n\tconst stepIds = new Set<string>();\n\tconst modes = new Set(opts.allowedModes ?? [\"auto\", \"manual\", \"hybrid\"]);\n\tconst effectKinds = new Set(opts.allowedEffectKinds ?? [\"verification\"]);\n\tfor (const step of plan.steps) {\n\t\tif (!isRecord(step)) {\n\t\t\tout.push(issue(\"malformed-draft\", \"VerificationStep must be an object\", opts.workItemId));\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof step.stepId !== \"string\" || step.stepId === \"\") {\n\t\t\tout.push(\n\t\t\t\tissue(\"missing-required-field\", \"VerificationStep.stepId is required\", opts.workItemId),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (stepIds.has(step.stepId)) {\n\t\t\tout.push(\n\t\t\t\tissue(\"duplicate-id\", `Duplicate verification step id '${step.stepId}'`, opts.workItemId, {\n\t\t\t\t\tstepId: step.stepId,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t\tstepIds.add(step.stepId);\n\t\tif (typeof step.mode !== \"string\" || !modes.has(step.mode as VerificationStepMode)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"unsupported-mode\",\n\t\t\t\t\t`Unsupported verification step mode '${step.mode}'`,\n\t\t\t\t\topts.workItemId,\n\t\t\t\t\t{ stepId: step.stepId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tstep.effectKind !== undefined &&\n\t\t\t(typeof step.effectKind !== \"string\" || !effectKinds.has(step.effectKind))\n\t\t) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"unsupported-effect-kind\",\n\t\t\t\t\t`Unsupported verification effect kind '${step.effectKind}'`,\n\t\t\t\t\topts.workItemId,\n\t\t\t\t\t{ stepId: step.stepId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tconst verifiesCriteriaIds = Array.isArray(step.verifiesCriteriaIds)\n\t\t\t? step.verifiesCriteriaIds\n\t\t\t: [];\n\t\tfor (const criterionId of verifiesCriteriaIds) {\n\t\t\tif (!criterionIds.has(criterionId)) {\n\t\t\t\tout.push(\n\t\t\t\t\tissue(\"dangling-ref\", `Unknown acceptance criterion '${criterionId}'`, opts.workItemId, {\n\t\t\t\t\t\tstepId: step.stepId,\n\t\t\t\t\t\tcriterionId,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tfor (const step of plan.steps) {\n\t\tif (!isRecord(step) || typeof step.stepId !== \"string\") continue;\n\t\tconst dependsOnStepIds = Array.isArray(step.dependsOnStepIds) ? step.dependsOnStepIds : [];\n\t\tfor (const depId of dependsOnStepIds) {\n\t\t\tif (!stepIds.has(depId)) {\n\t\t\t\tout.push(\n\t\t\t\t\tissue(\"dangling-ref\", `Unknown verification dependency '${depId}'`, opts.workItemId, {\n\t\t\t\t\t\tstepId: step.stepId,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tconst cycle = findCycle(\n\t\tplan.steps.filter(\n\t\t\t(step): step is VerificationStep =>\n\t\t\t\tisRecord(step) && typeof step.stepId === \"string\" && Array.isArray(step.dependsOnStepIds),\n\t\t),\n\t);\n\tif (cycle !== undefined) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"cyclic-dependency\",\n\t\t\t\t`Verification step cycle detected: ${cycle.join(\" -> \")}`,\n\t\t\t\topts.workItemId,\n\t\t\t\t{ stepId: cycle[0] },\n\t\t\t),\n\t\t);\n\t}\n\treturn out;\n}\n\nexport function workItemAuthoringProjector<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkItemAuthoringProjectorOptions<TInput>,\n): WorkItemAuthoringProjectorBundle<TInput> {\n\tconst name = opts.name ?? \"workItemAuthoring\";\n\tconst runtime = graph.node<Fact<TInput>>(\n\t\t[opts.facts],\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<AuthoringState<TInput>>() ?? {\n\t\t\t\tworkItems: new Map(),\n\t\t\t\tseenEvents: new Set(),\n\t\t\t\tstatusSeq: 0,\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? [])\n\t\t\t\treduceAuthoring(ctx, state, raw as WorkItemAuthoringInput<TInput>, opts.policy);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemAuthoringProjector\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tworkItems: project(graph, runtime, `${name}/workItems`, \"workItemAuthoringWorkItems\", (fact) =>\n\t\t\tfact.kind === \"work-item\" ? fact.value : undefined,\n\t\t),\n\t\tstatus: project(graph, runtime, `${name}/status`, \"workItemAuthoringStatus\", (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.value : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, \"workItemAuthoringIssues\", (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"workItemAuthoringAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function workItemVerificationRequestLowerer<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkItemVerificationRequestLowererOptions<TInput>,\n): WorkItemVerificationRequestLowererBundle<TInput> {\n\tconst name = opts.name ?? \"workItemVerificationRequests\";\n\tconst deps: Node<unknown>[] = [opts.workItems];\n\tconst dispatchIntentIndex =\n\t\topts.dispatchIntents === undefined ? -1 : deps.push(opts.dispatchIntents) - 1;\n\tconst verificationResultIndex =\n\t\topts.verificationResults === undefined ? -1 : deps.push(opts.verificationResults) - 1;\n\tconst runtime = graph.node<Fact<TInput>>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<RequestState<TInput>>() ?? {\n\t\t\t\tworkItems: new Map(),\n\t\t\t\temittedKeys: new Set(),\n\t\t\t\tpassedSteps: new Map(),\n\t\t\t\tstatusSeq: 0,\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst workItem = raw as WorkItemProjection<TInput>;\n\t\t\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t\t\t\tlowerPlan(ctx, state, workItem, opts.policy);\n\t\t\t}\n\t\t\tif (dispatchIntentIndex >= 0) {\n\t\t\t\tfor (const raw of depBatch(ctx, dispatchIntentIndex) ?? [])\n\t\t\t\t\tlowerIntent(ctx, state, raw as WorkItemDispatchIntent<TInput>, opts.policy);\n\t\t\t}\n\t\t\tif (verificationResultIndex >= 0) {\n\t\t\t\tfor (const raw of depBatch(ctx, verificationResultIndex) ?? [])\n\t\t\t\t\trecordVerificationResult(ctx, state, raw as VerificationResultRecorded, opts.policy);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemVerificationRequestLowerer\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\teffectRequests: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/effectRequests`,\n\t\t\t\"workItemVerificationEffectRequests\",\n\t\t\t(fact) => (fact.kind === \"request\" ? fact.value : undefined),\n\t\t),\n\t\tstatus: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/status`,\n\t\t\t\"workItemVerificationRequestStatus\",\n\t\t\t(fact) => (fact.kind === \"status\" ? fact.value : undefined),\n\t\t),\n\t\tissues: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/issues`,\n\t\t\t\"workItemVerificationRequestIssues\",\n\t\t\t(fact) => (fact.kind === \"issue\" ? fact.value : undefined),\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"workItemVerificationRequestAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function workItemVerificationResultMapper<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkItemVerificationResultMapperOptions<TInput>,\n): WorkItemVerificationResultMapperBundle {\n\tconst name = opts.name ?? \"workItemVerificationResults\";\n\tconst deps =\n\t\topts.policies === undefined\n\t\t\t? [opts.workItems, opts.evidence]\n\t\t\t: [opts.workItems, opts.evidence, opts.policies];\n\tconst runtime = graph.node<Fact<TInput>>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<ResultState<TInput>>() ?? {\n\t\t\t\tworkItems: new Map(),\n\t\t\t\tpolicies: new Map(),\n\t\t\t\tevidenceById: new Map(),\n\t\t\t\tresultEvidence: new Set(),\n\t\t\t\tproposalKeys: new Set(),\n\t\t\t\tstatusSeq: 0,\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst workItem = raw as WorkItemProjection<TInput>;\n\t\t\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t\t\t\treplayEvidence(ctx, state, workItem.workItemId);\n\t\t\t}\n\t\t\tif (opts.policies !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\t\t\t\tconst policy = raw as WorkItemVerificationMappingPolicy;\n\t\t\t\t\tconst issues = validateMappingPolicy(policy);\n\t\t\t\t\tif (issues.length > 0) {\n\t\t\t\t\t\tfor (const item of issues) emit(ctx, \"issue\", item);\n\t\t\t\t\t\temitResultStatus(ctx, state, {\n\t\t\t\t\t\t\tstate: \"rejected\",\n\t\t\t\t\t\t\tcode: \"policy-mismatch\",\n\t\t\t\t\t\t\tmetadata: { policyId: isRecord(policy) ? policy.policyId : undefined },\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstate.policies.set(policy.policyId, policy);\n\t\t\t\t}\n\t\t\t\tfor (const evidence of state.evidenceById.values()) {\n\t\t\t\t\tmapEvidence(ctx, state, evidence, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? [])\n\t\t\t\tmapEvidence(ctx, state, raw as WorkItemEvidenceRecorded);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemVerificationResultMapper\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tresults: project(graph, runtime, `${name}/results`, \"workItemVerificationResults\", (fact) =>\n\t\t\tfact.kind === \"result\" ? fact.value : undefined,\n\t\t),\n\t\tproposals: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/proposals`,\n\t\t\t\"workItemVerificationProposals\",\n\t\t\t(fact) => (fact.kind === \"proposal\" ? fact.value : undefined),\n\t\t),\n\t\tstatus: project(graph, runtime, `${name}/status`, \"workItemVerificationResultStatus\", (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.value : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, \"workItemVerificationResultIssues\", (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"workItemVerificationResultAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function validateWorkItemEffectPlan<TInput>(\n\tproposal: WorkItemEffectPlanProposed<TInput> | unknown,\n\tworkItem: WorkItemProjection<TInput> | undefined,\n\tpolicy: WorkItemEffectPlanPolicy = {},\n): readonly DataIssue[] {\n\tconst out: DataIssue[] = [];\n\tif (\n\t\t!isRecord(proposal) ||\n\t\tproposal.kind !== \"work-item-effect-plan-proposed\" ||\n\t\ttypeof proposal.planId !== \"string\" ||\n\t\tproposal.planId.trim() === \"\" ||\n\t\ttypeof proposal.workItemId !== \"string\" ||\n\t\tproposal.workItemId.trim() === \"\" ||\n\t\ttypeof proposal.executionInputRevision !== \"number\" ||\n\t\t!Array.isArray(proposal.members)\n\t) {\n\t\treturn [\n\t\t\tissue(\n\t\t\t\t\"malformed-draft\",\n\t\t\t\t\"WorkItemEffectPlanProposed requires planId, workItemId, executionInputRevision, and members\",\n\t\t\t\tisRecord(proposal) && typeof proposal.workItemId === \"string\"\n\t\t\t\t\t? proposal.workItemId\n\t\t\t\t\t: undefined,\n\t\t\t),\n\t\t];\n\t}\n\tif (proposal.joinPolicy !== undefined && !isWorkItemEffectPlanJoinPolicy(proposal.joinPolicy)) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"policy-mismatch\",\n\t\t\t\t`Unsupported WorkItemEffectPlan join policy '${proposal.joinPolicy}'`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\t{ planId: proposal.planId, joinPolicy: proposal.joinPolicy },\n\t\t\t),\n\t\t);\n\t}\n\tif (workItem === undefined) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`WorkItemEffectPlan '${proposal.planId}' references unknown WorkItem '${proposal.workItemId}'`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\t{ planId: proposal.planId },\n\t\t\t),\n\t\t);\n\t} else if (proposal.executionInputRevision !== workItem.executionInputRevision) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"stale-execution-input\",\n\t\t\t\t`WorkItemEffectPlan '${proposal.planId}' targets stale execution input`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\t{\n\t\t\t\t\tplanId: proposal.planId,\n\t\t\t\t\tproposedRevision: proposal.executionInputRevision,\n\t\t\t\t\tcurrentRevision: workItem.executionInputRevision,\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t}\n\tconst memberIds = new Set<string>();\n\tconst allowedEffectKinds =\n\t\tpolicy.allowedEffectKinds === undefined ? undefined : new Set(policy.allowedEffectKinds);\n\tfor (const member of proposal.members) {\n\t\tif (!isRecord(member)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"malformed-draft\",\n\t\t\t\t\t\"WorkItemEffectPlan member must be an object\",\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{\n\t\t\t\t\t\tplanId: proposal.planId,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof member.memberId !== \"string\" || member.memberId.trim() === \"\") {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-required-field\",\n\t\t\t\t\t\"WorkItemEffectPlan memberId is required\",\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{ planId: proposal.planId },\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (memberIds.has(member.memberId)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"duplicate-id\",\n\t\t\t\t\t`Duplicate WorkItemEffectPlan member id '${member.memberId}'`,\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tmemberIds.add(member.memberId);\n\t\tif (typeof member.effectKind !== \"string\" || member.effectKind.trim() === \"\") {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-required-field\",\n\t\t\t\t\t\"WorkItemEffectPlan member effectKind is required\",\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId },\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (allowedEffectKinds !== undefined && !allowedEffectKinds.has(member.effectKind)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"unsupported-effect-kind\",\n\t\t\t\t\t`Unsupported WorkItemEffectPlan effect kind '${member.effectKind}'`,\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (!isRecord(member.goal)) {\n\t\t\tout.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-required-field\",\n\t\t\t\t\t\"WorkItemEffectPlan member goal is required\",\n\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tfor (const field of [\n\t\t\t\"dependsOnMemberIds\",\n\t\t\t\"contextRefs\",\n\t\t\t\"requirements\",\n\t\t\t\"policyRefs\",\n\t\t\t\"sourceRefs\",\n\t\t] as const) {\n\t\t\tif (member[field] !== undefined && !Array.isArray(member[field])) {\n\t\t\t\tout.push(\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"malformed-draft\",\n\t\t\t\t\t\t`WorkItemEffectPlan member ${field} must be an array`,\n\t\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId, field },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tfor (const member of proposal.members) {\n\t\tif (!isRecord(member) || typeof member.memberId !== \"string\") continue;\n\t\tconst deps = Array.isArray(member.dependsOnMemberIds) ? member.dependsOnMemberIds : [];\n\t\tfor (const depId of deps) {\n\t\t\tif (!memberIds.has(depId)) {\n\t\t\t\tout.push(\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"dangling-ref\",\n\t\t\t\t\t\t`Unknown WorkItemEffectPlan dependency '${depId}'`,\n\t\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t\t{ planId: proposal.planId, planMemberId: member.memberId, depId },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tconst cycle = findPlanCycle(\n\t\tproposal.members.filter(\n\t\t\t(member): member is WorkItemEffectPlanMember<TInput> =>\n\t\t\t\tisRecord(member) &&\n\t\t\t\ttypeof member.memberId === \"string\" &&\n\t\t\t\tArray.isArray(member.dependsOnMemberIds),\n\t\t),\n\t);\n\tif (cycle !== undefined) {\n\t\tout.push(\n\t\t\tissue(\n\t\t\t\t\"cyclic-dependency\",\n\t\t\t\t`WorkItemEffectPlan member cycle detected: ${cycle.join(\" -> \")}`,\n\t\t\t\tproposal.workItemId,\n\t\t\t\t{ planId: proposal.planId, planMemberId: cycle[0] },\n\t\t\t),\n\t\t);\n\t}\n\treturn out;\n}\n\nexport function workItemEffectPlanProjector<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkItemEffectPlanProjectorOptions<TInput>,\n): WorkItemEffectPlanProjectorBundle<TInput> {\n\tconst name = opts.name ?? \"workItemEffectPlans\";\n\tconst deps: Node<unknown>[] = [opts.workItems, opts.proposals];\n\tconst evidenceIndex = opts.evidence === undefined ? -1 : deps.push(opts.evidence) - 1;\n\tconst resultIndex =\n\t\topts.effectRunResults === undefined ? -1 : deps.push(opts.effectRunResults) - 1;\n\tconst now = opts.now ?? Date.now;\n\tconst runtime = graph.node<PlanFact<TInput>>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<PlanState<TInput>>() ?? emptyPlanState<TInput>();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst workItem = raw as WorkItemProjection<TInput>;\n\t\t\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t\t\t\tfor (const proposal of state.proposals.values()) {\n\t\t\t\t\tif (proposal.workItemId === workItem.workItemId)\n\t\t\t\t\t\tadmitPlan(ctx, state, proposal, opts.policy, now);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst proposal = raw as WorkItemEffectPlanProposed<TInput>;\n\t\t\t\tif (\n\t\t\t\t\tisRecord(proposal) &&\n\t\t\t\t\ttypeof proposal.planId === \"string\" &&\n\t\t\t\t\ttypeof proposal.workItemId === \"string\"\n\t\t\t\t) {\n\t\t\t\t\tconst key = planKey(\n\t\t\t\t\t\tproposal.workItemId,\n\t\t\t\t\t\tproposal.planId,\n\t\t\t\t\t\tproposal.executionInputRevision,\n\t\t\t\t\t);\n\t\t\t\t\tif (key !== undefined) state.proposals.set(key, proposal);\n\t\t\t\t}\n\t\t\t\tadmitPlan(ctx, state, proposal, opts.policy, now);\n\t\t\t}\n\t\t\tif (evidenceIndex >= 0) {\n\t\t\t\tfor (const raw of depBatch(ctx, evidenceIndex) ?? [])\n\t\t\t\t\trecordPlanEvidence(ctx, state, raw as WorkItemEvidenceRecorded);\n\t\t\t}\n\t\t\tif (resultIndex >= 0) {\n\t\t\t\tfor (const raw of depBatch(ctx, resultIndex) ?? [])\n\t\t\t\t\trecordPlanResult(ctx, state, raw as EffectRunResult);\n\t\t\t}\n\t\t\tdrainPlanWork(ctx, state, opts.policy);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workItemEffectPlanProjector\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tadmitted: project(graph, runtime, `${name}/admitted`, \"workItemEffectPlansAdmitted\", (fact) =>\n\t\t\tfact.kind === \"admitted\" ? fact.value : undefined,\n\t\t),\n\t\trejected: project(graph, runtime, `${name}/rejected`, \"workItemEffectPlansRejected\", (fact) =>\n\t\t\tfact.kind === \"rejected\" ? fact.value : undefined,\n\t\t),\n\t\teffectRequests: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/effectRequests`,\n\t\t\t\"workItemEffectPlanEffectRequests\",\n\t\t\t(fact) => (fact.kind === \"request\" ? fact.value : undefined),\n\t\t),\n\t\tresults: project(graph, runtime, `${name}/results`, \"workItemEffectPlanResults\", (fact) =>\n\t\t\tfact.kind === \"result\" ? fact.value : undefined,\n\t\t),\n\t\tstatus: project(graph, runtime, `${name}/status`, \"workItemEffectPlanStatus\", (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.value : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, \"workItemEffectPlanIssues\", (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"workItemEffectPlanAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nfunction emptyPlanState<T>(): PlanState<T> {\n\treturn {\n\t\tworkItems: new Map(),\n\t\tproposals: new Map(),\n\t\tadmitted: new Map(),\n\t\trejected: new Set(),\n\t\temittedMemberKeys: new Set(),\n\t\tstatusKeys: new Set(),\n\t\tresultKeys: new Set(),\n\t\trequestByEffectRun: new Map(),\n\t\trequestByRequestId: new Map(),\n\t\tmemberEvidence: new Map(),\n\t\tpendingEvidence: new Map(),\n\t\tpendingResults: new Map(),\n\t\tunmatchedEvidence: new Set(),\n\t\tunmatchedResults: new Set(),\n\t\tstatusSeq: 0,\n\t\tauditSeq: 0,\n\t};\n}\n\nfunction admitPlan<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tproposal: WorkItemEffectPlanProposed<T>,\n\tpolicy: WorkItemEffectPlanPolicy | undefined,\n\tnow: () => number,\n): void {\n\tif (!isRecord(proposal) || typeof proposal.planId !== \"string\") {\n\t\tconst issues = validateWorkItemEffectPlan(proposal, undefined, policy);\n\t\temitPlanIssues(ctx, state, issues);\n\t\treturn;\n\t}\n\tconst key = planKey(proposal.workItemId, proposal.planId, proposal.executionInputRevision);\n\tif (key === undefined) {\n\t\tconst issues = validateWorkItemEffectPlan(proposal, undefined, policy);\n\t\temitPlanIssues(ctx, state, issues);\n\t\treturn;\n\t}\n\tif (state.admitted.has(key) || state.rejected.has(key)) return;\n\tconst workItem = state.workItems.get(proposal.workItemId);\n\tif (workItem === undefined) {\n\t\temitPlanStatusOnce(ctx, state, `${key}:deferred:missing-work-item`, {\n\t\t\tworkItemId: proposal.workItemId,\n\t\t\tplanId: proposal.planId,\n\t\t\texecutionInputRevision: proposal.executionInputRevision,\n\t\t\tstate: \"deferred\",\n\t\t\tmessage: `WorkItemEffectPlan '${proposal.planId}' is waiting for WorkItem '${proposal.workItemId}'`,\n\t\t\tsourceRefs: proposal.sourceRefs,\n\t\t\tmetadata: { reason: \"missing-work-item\" },\n\t\t});\n\t\treturn;\n\t}\n\tconst issues = validateWorkItemEffectPlan(proposal, workItem, policy);\n\tif (issues.length > 0) {\n\t\tstate.rejected.add(key);\n\t\temitPlanIssues(ctx, state, issues);\n\t\tconst rejected: WorkItemEffectPlanRejected = {\n\t\t\tkind: \"work-item-effect-plan-rejected\",\n\t\t\tplanId: proposal.planId,\n\t\t\tworkItemId: proposal.workItemId,\n\t\t\texecutionInputRevision: proposal.executionInputRevision,\n\t\t\tissues,\n\t\t\tsourceRefs: proposal.sourceRefs,\n\t\t\trejectedAtMs: now(),\n\t\t\tmetadata: proposal.metadata,\n\t\t};\n\t\temitPlan(ctx, \"rejected\", rejected);\n\t\temitPlanStatus(ctx, state, {\n\t\t\tworkItemId: proposal.workItemId,\n\t\t\tplanId: proposal.planId,\n\t\t\texecutionInputRevision: proposal.executionInputRevision,\n\t\t\tstate: \"rejected\",\n\t\t\tissues,\n\t\t\tsourceRefs: proposal.sourceRefs,\n\t\t\tmetadata: { issueCodes: issues.map((item) => item.code) },\n\t\t});\n\t\treturn;\n\t}\n\tconst snapshot = normalizeEffectPlanSnapshot(proposal, policy);\n\tconst admitted: WorkItemEffectPlanAdmitted<T> = {\n\t\tkind: \"work-item-effect-plan-admitted\",\n\t\tplanId: snapshot.planId,\n\t\tworkItemId: snapshot.workItemId,\n\t\texecutionInputRevision: snapshot.executionInputRevision,\n\t\tplan: snapshot,\n\t\tsourceRefs: immutableClone(proposal.sourceRefs),\n\t\tadmittedAtMs: now(),\n\t\tmetadata: immutableClone(proposal.metadata),\n\t};\n\tstate.admitted.set(key, admitted);\n\temitPlan(ctx, \"admitted\", admitted);\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: admitted.workItemId,\n\t\tplanId: admitted.planId,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tstate: \"eligible\",\n\t\tsourceRefs: admitted.sourceRefs,\n\t\tmetadata: { memberCount: admitted.plan.members.length },\n\t});\n}\n\nfunction drainPlanWork<T>(ctx: Ctx, state: PlanState<T>, policy?: WorkItemEffectPlanPolicy): void {\n\tconst maxPasses =\n\t\tstate.admitted.size +\n\t\tstate.pendingEvidence.size +\n\t\tstate.pendingResults.size +\n\t\tstate.emittedMemberKeys.size +\n\t\t1;\n\tfor (let pass = 0; pass < maxPasses; pass += 1) {\n\t\tlet changed = false;\n\t\tfor (const admitted of state.admitted.values()) {\n\t\t\tchanged = lowerEligiblePlanMembers(ctx, state, admitted, policy) || changed;\n\t\t\tderivePlanResult(ctx, state, admitted);\n\t\t}\n\t\tchanged = replayPendingPlanFacts(ctx, state) || changed;\n\t\tif (!changed) break;\n\t}\n\tfor (const admitted of state.admitted.values()) derivePlanResult(ctx, state, admitted);\n}\n\nfunction lowerEligiblePlanMembers<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tpolicy?: WorkItemEffectPlanPolicy,\n): boolean {\n\tif (isAdmittedPlanStale(state, admitted)) {\n\t\temitStaleAdmittedPlanOnce(ctx, state, admitted);\n\t\treturn false;\n\t}\n\tlet changed = false;\n\tfor (const member of admitted.plan.members) {\n\t\tconst coord = memberCoord(admitted, member.memberId);\n\t\tif (state.memberEvidence.has(coord)) continue;\n\t\tconst missing = (member.dependsOnMemberIds ?? []).filter(\n\t\t\t(memberId) => !memberSucceeded(state, admitted, memberId),\n\t\t);\n\t\tif (missing.length > 0) {\n\t\t\temitPlanStatusOnce(ctx, state, `${coord}:blocked:${missing.join(\",\")}`, {\n\t\t\t\tworkItemId: admitted.workItemId,\n\t\t\t\tplanId: admitted.planId,\n\t\t\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\t\t\tstate: \"blocked\",\n\t\t\t\tplanMemberId: member.memberId,\n\t\t\t\tissues: [\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"blocked-prerequisite\",\n\t\t\t\t\t\t`WorkItemEffectPlan member '${member.memberId}' is blocked by prerequisites`,\n\t\t\t\t\t\tadmitted.workItemId,\n\t\t\t\t\t\t{ planId: admitted.planId, planMemberId: member.memberId, missingMemberIds: missing },\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t\tsourceRefs: member.sourceRefs,\n\t\t\t\tmetadata: { missingMemberIds: missing },\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (state.emittedMemberKeys.has(coord)) continue;\n\t\tstate.emittedMemberKeys.add(coord);\n\t\tchanged = true;\n\t\tconst request = requestFromPlanMember(admitted, member, policy);\n\t\tstate.requestByEffectRun.set(request.effectRunId, request);\n\t\tstate.requestByRequestId.set(request.requestId, request);\n\t\temitPlan(ctx, \"request\", request);\n\t\temitPlanStatus(ctx, state, {\n\t\t\tworkItemId: admitted.workItemId,\n\t\t\tplanId: admitted.planId,\n\t\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\t\tstate: \"requested\",\n\t\t\tplanMemberId: member.memberId,\n\t\t\trequestId: request.requestId,\n\t\t\teffectRunId: request.effectRunId,\n\t\t\tsourceRefs: request.sourceRefs,\n\t\t\tmetadata: { effectKind: request.effectKind },\n\t\t});\n\t}\n\treturn changed;\n}\n\nfunction recordPlanEvidence<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tevidence: WorkItemEvidenceRecorded,\n): boolean {\n\tconst coordinate = planCoordinateFromEvidence(state, evidence);\n\tif (coordinate === undefined) {\n\t\tstate.pendingEvidence.set(evidence.evidenceId, evidence);\n\t\temitUnmatchedEvidence(ctx, state, `evidence:${evidence.evidenceId}`, evidence.workItemId, {\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t});\n\t\treturn false;\n\t}\n\tif (emitConflictingPlanEvidenceCoordinate(ctx, state, evidence, coordinate)) return true;\n\tconst key = requiredPlanKey(\n\t\tcoordinate.workItemId,\n\t\tcoordinate.planId,\n\t\tcoordinate.executionInputRevision,\n\t);\n\tconst admitted = state.admitted.get(key);\n\tif (admitted === undefined) {\n\t\tstate.pendingEvidence.set(evidence.evidenceId, evidence);\n\t\temitUnmatchedEvidence(ctx, state, `evidence:${evidence.evidenceId}`, coordinate.workItemId, {\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t\tplanId: coordinate.planId,\n\t\t\tplanMemberId: coordinate.planMemberId,\n\t\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\t});\n\t\treturn false;\n\t}\n\tif (isAdmittedPlanStale(state, admitted)) {\n\t\temitStaleAdmittedPlanOnce(ctx, state, admitted);\n\t\treturn true;\n\t}\n\tif (!hasPlanMember(admitted, coordinate.planMemberId)) {\n\t\temitUnknownPlanMember(ctx, state, admitted, coordinate.planMemberId, {\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t});\n\t\treturn true;\n\t}\n\tconst recorded = recordMemberEvidence(ctx, state, admitted, coordinate.planMemberId, {\n\t\tstatus: evidence.status,\n\t\trequestId: coordinate.requestId ?? coordinate.request?.requestId,\n\t\teffectRunId: evidence.effectRunId,\n\t\tevidenceId: evidence.evidenceId,\n\t\teffectRunResultId: evidence.effectRunResultId,\n\t\tsourceRefs: evidence.sourceRefs,\n\t});\n\tif (!recorded) return true;\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: coordinate.workItemId,\n\t\tplanId: coordinate.planId,\n\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\tstate: evidence.status === \"completed\" ? \"completed\" : \"failed\",\n\t\tplanMemberId: coordinate.planMemberId,\n\t\trequestId: coordinate.requestId ?? coordinate.request?.requestId,\n\t\teffectRunId: evidence.effectRunId,\n\t\tevidenceId: evidence.evidenceId,\n\t\teffectRunResultId: evidence.effectRunResultId,\n\t\tsourceRefs: evidence.sourceRefs,\n\t\tmetadata: { evidenceStatus: evidence.status },\n\t});\n\treturn true;\n}\n\nfunction emitConflictingPlanEvidenceCoordinate<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tevidence: WorkItemEvidenceRecorded,\n\tcoordinate: PlanCoordinate<T>,\n): boolean {\n\tconst expectedRequest = planRequestForCoordinate(state, coordinate);\n\tconst expectedRequestIdMismatch =\n\t\texpectedRequest !== undefined &&\n\t\tevidence.requestId !== undefined &&\n\t\tevidence.requestId !== expectedRequest.requestId;\n\tif (\n\t\texpectedRequest !== undefined &&\n\t\t(expectedRequestIdMismatch || evidence.effectRunId !== expectedRequest.effectRunId)\n\t) {\n\t\temitPlanEvidenceCoordinateMismatch(ctx, state, evidence, coordinate, expectedRequest);\n\t\treturn true;\n\t}\n\tconst requestRefs = [\n\t\tevidence.requestId === undefined ? undefined : state.requestByRequestId.get(evidence.requestId),\n\t\tstate.requestByEffectRun.get(evidence.effectRunId),\n\t].filter((request): request is WorkItemEffectRequested<T> => request !== undefined);\n\tconst conflicting = requestRefs.find(\n\t\t(request) =>\n\t\t\t!requestMatchesPlanCoordinate(request, coordinate) ||\n\t\t\t!requestMatchesEvidenceIdentity(request, evidence),\n\t);\n\tif (conflicting === undefined) return false;\n\temitPlanEvidenceCoordinateMismatch(ctx, state, evidence, coordinate, conflicting);\n\treturn true;\n}\n\nfunction emitPlanEvidenceCoordinateMismatch<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tevidence: WorkItemEvidenceRecorded,\n\tcoordinate: PlanCoordinate<T>,\n\tconflicting: WorkItemEffectRequested<T>,\n): void {\n\tconst item = issue(\n\t\t\"dangling-ref\",\n\t\t\"WorkItemEffectPlan evidence request/effectRun coordinates do not match its plan member coordinates\",\n\t\tevidence.workItemId,\n\t\t{\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\trequestId: evidence.requestId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t\tplanId: coordinate.planId,\n\t\t\tplanMemberId: coordinate.planMemberId,\n\t\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\t\trequestPlanId: conflicting.planId,\n\t\t\trequestPlanMemberId: conflicting.planMemberId,\n\t\t\trequestExecutionInputRevision: conflicting.executionInputRevision,\n\t\t},\n\t);\n\temitPlan(ctx, \"issue\", item);\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: coordinate.workItemId,\n\t\tplanId: coordinate.planId,\n\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\tstate: \"rejected\",\n\t\tplanMemberId: coordinate.planMemberId,\n\t\trequestId: evidence.requestId,\n\t\teffectRunId: evidence.effectRunId,\n\t\tevidenceId: evidence.evidenceId,\n\t\tissues: [item],\n\t\tsourceRefs: evidence.sourceRefs,\n\t\tmetadata: item.metadata,\n\t});\n}\n\nfunction requestMatchesPlanCoordinate<T>(\n\trequest: WorkItemEffectRequested<T>,\n\tcoordinate: PlanCoordinate<T>,\n): boolean {\n\treturn (\n\t\trequest.workItemId === coordinate.workItemId &&\n\t\trequest.planId === coordinate.planId &&\n\t\trequest.planMemberId === coordinate.planMemberId &&\n\t\trequest.executionInputRevision === coordinate.executionInputRevision\n\t);\n}\n\nfunction requestMatchesEvidenceIdentity<T>(\n\trequest: WorkItemEffectRequested<T>,\n\tevidence: WorkItemEvidenceRecorded,\n): boolean {\n\treturn (\n\t\t(evidence.requestId === undefined || evidence.requestId === request.requestId) &&\n\t\tevidence.effectRunId === request.effectRunId\n\t);\n}\n\nfunction planRequestForCoordinate<T>(\n\tstate: PlanState<T>,\n\tcoordinate: PlanCoordinate<T>,\n): WorkItemEffectRequested<T> | undefined {\n\tfor (const request of state.requestByRequestId.values()) {\n\t\tif (requestMatchesPlanCoordinate(request, coordinate)) return request;\n\t}\n\treturn undefined;\n}\n\nfunction recordPlanResult<T>(ctx: Ctx, state: PlanState<T>, result: EffectRunResult): boolean {\n\tconst coordinate = planCoordinateFromResult(state, result);\n\tif (coordinate === undefined) {\n\t\tstate.pendingResults.set(result.resultId, result);\n\t\temitUnmatchedEvidence(ctx, state, `result:${result.resultId}`, undefined, {\n\t\t\teffectRunResultId: result.resultId,\n\t\t\teffectRunId: result.effectRunId,\n\t\t});\n\t\treturn false;\n\t}\n\tconst key = requiredPlanKey(\n\t\tcoordinate.workItemId,\n\t\tcoordinate.planId,\n\t\tcoordinate.executionInputRevision,\n\t);\n\tconst admitted = state.admitted.get(key);\n\tif (admitted === undefined) {\n\t\tstate.pendingResults.set(result.resultId, result);\n\t\temitUnmatchedEvidence(ctx, state, `result:${result.resultId}`, coordinate.workItemId, {\n\t\t\teffectRunResultId: result.resultId,\n\t\t\teffectRunId: result.effectRunId,\n\t\t\tplanId: coordinate.planId,\n\t\t\tplanMemberId: coordinate.planMemberId,\n\t\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\t});\n\t\treturn false;\n\t}\n\tif (isAdmittedPlanStale(state, admitted)) {\n\t\temitStaleAdmittedPlanOnce(ctx, state, admitted);\n\t\treturn true;\n\t}\n\tif (!hasPlanMember(admitted, coordinate.planMemberId)) {\n\t\temitUnknownPlanMember(ctx, state, admitted, coordinate.planMemberId, {\n\t\t\teffectRunResultId: result.resultId,\n\t\t\teffectRunId: result.effectRunId,\n\t\t});\n\t\treturn true;\n\t}\n\tconst recorded = recordMemberEvidence(ctx, state, admitted, coordinate.planMemberId, {\n\t\tstatus: result.status,\n\t\trequestId: coordinate.request?.requestId,\n\t\teffectRunId: result.effectRunId,\n\t\teffectRunResultId: result.resultId,\n\t\tsourceRefs: result.sourceRefs,\n\t});\n\tif (!recorded) return true;\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: coordinate.workItemId,\n\t\tplanId: coordinate.planId,\n\t\texecutionInputRevision: coordinate.executionInputRevision,\n\t\tstate: result.status === \"completed\" ? \"completed\" : \"failed\",\n\t\tplanMemberId: coordinate.planMemberId,\n\t\trequestId: coordinate.request?.requestId,\n\t\teffectRunId: result.effectRunId,\n\t\teffectRunResultId: result.resultId,\n\t\tsourceRefs: result.sourceRefs,\n\t\tmetadata: { resultStatus: result.status },\n\t});\n\treturn true;\n}\n\nfunction replayPendingPlanFacts<T>(ctx: Ctx, state: PlanState<T>): boolean {\n\tlet changed = false;\n\tfor (const [evidenceId, evidence] of [...state.pendingEvidence]) {\n\t\tif (recordPlanEvidence(ctx, state, evidence)) {\n\t\t\tstate.pendingEvidence.delete(evidenceId);\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tfor (const [resultId, result] of [...state.pendingResults]) {\n\t\tif (recordPlanResult(ctx, state, result)) {\n\t\t\tstate.pendingResults.delete(resultId);\n\t\t\tchanged = true;\n\t\t}\n\t}\n\treturn changed;\n}\n\ninterface PlanCoordinate<T> {\n\treadonly workItemId: string;\n\treadonly planId: string;\n\treadonly executionInputRevision: number;\n\treadonly planMemberId: string;\n\treadonly requestId?: string;\n\treadonly request?: WorkItemEffectRequested<T>;\n}\n\nfunction planCoordinateFromEvidence<T>(\n\tstate: PlanState<T>,\n\tevidence: WorkItemEvidenceRecorded,\n): PlanCoordinate<T> | undefined {\n\tconst topLevelRequest =\n\t\tevidence.requestId === undefined ? undefined : state.requestByRequestId.get(evidence.requestId);\n\tconst effectRunRequest = state.requestByEffectRun.get(evidence.effectRunId);\n\tif (\n\t\tevidence.planId !== undefined &&\n\t\tevidence.planMemberId !== undefined &&\n\t\tevidence.executionInputRevision !== undefined\n\t) {\n\t\treturn {\n\t\t\tworkItemId: evidence.workItemId,\n\t\t\tplanId: evidence.planId,\n\t\t\texecutionInputRevision: evidence.executionInputRevision,\n\t\t\tplanMemberId: evidence.planMemberId,\n\t\t\trequestId: topLevelRequest?.requestId ?? effectRunRequest?.requestId ?? evidence.requestId,\n\t\t\trequest: topLevelRequest ?? effectRunRequest,\n\t\t};\n\t}\n\tconst request = effectRunRequest;\n\tif (\n\t\trequest?.planId !== undefined &&\n\t\trequest.planMemberId !== undefined &&\n\t\trequest.executionInputRevision !== undefined\n\t) {\n\t\treturn {\n\t\t\tworkItemId: request.workItemId,\n\t\t\tplanId: request.planId,\n\t\t\texecutionInputRevision: request.executionInputRevision,\n\t\t\tplanMemberId: request.planMemberId,\n\t\t\trequestId: request.requestId,\n\t\t\trequest,\n\t\t};\n\t}\n\tconst planId = stringMetadata(evidence.metadata, \"planId\");\n\tconst planMemberId = stringMetadata(evidence.metadata, \"planMemberId\");\n\tconst executionInputRevision = numberMetadata(evidence.metadata, \"executionInputRevision\");\n\tconst requestId = stringMetadata(evidence.metadata, \"requestId\");\n\tif (planId === undefined || planMemberId === undefined || executionInputRevision === undefined)\n\t\treturn undefined;\n\treturn {\n\t\tworkItemId: evidence.workItemId,\n\t\tplanId,\n\t\texecutionInputRevision,\n\t\tplanMemberId,\n\t\trequestId,\n\t};\n}\n\nfunction planCoordinateFromResult<T>(\n\tstate: PlanState<T>,\n\tresult: EffectRunResult,\n): PlanCoordinate<T> | undefined {\n\tconst request = state.requestByEffectRun.get(result.effectRunId);\n\tif (\n\t\trequest?.planId !== undefined &&\n\t\trequest.planMemberId !== undefined &&\n\t\trequest.executionInputRevision !== undefined\n\t) {\n\t\treturn {\n\t\t\tworkItemId: request.workItemId,\n\t\t\tplanId: request.planId,\n\t\t\texecutionInputRevision: request.executionInputRevision,\n\t\t\tplanMemberId: request.planMemberId,\n\t\t\trequestId: request.requestId,\n\t\t\trequest,\n\t\t};\n\t}\n\tconst workItemId =\n\t\tsourceRefId(result.subjectRefs, \"work-item\") ?? sourceRefId(result.sourceRefs, \"work-item\");\n\tconst planId = stringMetadata(result.metadata, \"planId\");\n\tconst planMemberId = stringMetadata(result.metadata, \"planMemberId\");\n\tconst executionInputRevision = numberMetadata(result.metadata, \"executionInputRevision\");\n\tif (\n\t\tworkItemId === undefined ||\n\t\tplanId === undefined ||\n\t\tplanMemberId === undefined ||\n\t\texecutionInputRevision === undefined\n\t)\n\t\treturn undefined;\n\treturn { workItemId, planId, executionInputRevision, planMemberId };\n}\n\nfunction recordMemberEvidence<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tplanMemberId: string,\n\tevidence: PlanMemberEvidence,\n): boolean {\n\tconst coord = memberCoord(admitted, planMemberId);\n\tconst existing = state.memberEvidence.get(coord);\n\tif (existing !== undefined) {\n\t\tconst duplicateIssue = issue(\n\t\t\t\"duplicate-suppressed\",\n\t\t\t`WorkItemEffectPlan member '${planMemberId}' already has terminal evidence`,\n\t\t\tadmitted.workItemId,\n\t\t\t{\n\t\t\t\tplanId: admitted.planId,\n\t\t\t\tplanMemberId,\n\t\t\t\texistingEvidenceId: existing.evidenceId,\n\t\t\t\texistingEffectRunResultId: existing.effectRunResultId,\n\t\t\t\tevidenceId: evidence.evidenceId,\n\t\t\t\teffectRunResultId: evidence.effectRunResultId,\n\t\t\t},\n\t\t);\n\t\temitPlan(ctx, \"issue\", duplicateIssue);\n\t\temitPlanStatus(ctx, state, {\n\t\t\tworkItemId: admitted.workItemId,\n\t\t\tplanId: admitted.planId,\n\t\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\t\tstate: \"duplicate\",\n\t\t\tplanMemberId,\n\t\t\trequestId: evidence.requestId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\teffectRunResultId: evidence.effectRunResultId,\n\t\t\tissues: [duplicateIssue],\n\t\t\tsourceRefs: evidence.sourceRefs,\n\t\t});\n\t\treturn false;\n\t}\n\tstate.memberEvidence.set(coord, evidence);\n\treturn true;\n}\n\nfunction hasPlanMember<T>(admitted: WorkItemEffectPlanAdmitted<T>, planMemberId: string): boolean {\n\treturn admitted.plan.members.some((member) => member.memberId === planMemberId);\n}\n\nfunction isAdmittedPlanStale<T>(\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n): boolean {\n\tconst current = state.workItems.get(admitted.workItemId);\n\treturn (\n\t\tcurrent !== undefined && current.executionInputRevision !== admitted.executionInputRevision\n\t);\n}\n\nfunction emitStaleAdmittedPlanOnce<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n): void {\n\tconst current = state.workItems.get(admitted.workItemId);\n\temitPlanStatusOnce(ctx, state, `${memberCoord(admitted, \"plan\")}:stale`, {\n\t\tworkItemId: admitted.workItemId,\n\t\tplanId: admitted.planId,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tstate: \"stale\",\n\t\tissues: [\n\t\t\tissue(\n\t\t\t\t\"stale-execution-input\",\n\t\t\t\t`WorkItemEffectPlan '${admitted.planId}' targets stale execution input`,\n\t\t\t\tadmitted.workItemId,\n\t\t\t\t{\n\t\t\t\t\tplanId: admitted.planId,\n\t\t\t\t\tproposedRevision: admitted.executionInputRevision,\n\t\t\t\t\tcurrentRevision: current?.executionInputRevision,\n\t\t\t\t},\n\t\t\t),\n\t\t],\n\t\tsourceRefs: admitted.sourceRefs,\n\t\tmetadata: { currentRevision: current?.executionInputRevision },\n\t});\n}\n\nfunction emitUnknownPlanMember<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tplanMemberId: string,\n\tmetadata: Record<string, unknown>,\n): void {\n\tconst item = issue(\n\t\t\"dangling-ref\",\n\t\t`WorkItemEffectPlan evidence/result references unknown member '${planMemberId}'`,\n\t\tadmitted.workItemId,\n\t\t{ planId: admitted.planId, planMemberId, ...metadata },\n\t);\n\temitPlan(ctx, \"issue\", item);\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: admitted.workItemId,\n\t\tplanId: admitted.planId,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tstate: \"rejected\",\n\t\tplanMemberId,\n\t\tissues: [item],\n\t\tsourceRefs: admitted.sourceRefs,\n\t\tmetadata,\n\t});\n}\n\nfunction emitUnmatchedEvidence<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tkey: string,\n\tworkItemId: string | undefined,\n\tmetadata: Record<string, unknown>,\n): void {\n\tconst seen = key.startsWith(\"evidence:\") ? state.unmatchedEvidence : state.unmatchedResults;\n\tif (seen.has(key)) return;\n\tseen.add(key);\n\tconst item = issue(\n\t\t\"dangling-ref\",\n\t\t\"WorkItemEffectPlan evidence/result could not be joined to an admitted plan member\",\n\t\tworkItemId,\n\t\tmetadata,\n\t);\n\temitPlan(ctx, \"issue\", item);\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: workItemId ?? \"unknown\",\n\t\tplanId: typeof metadata.planId === \"string\" ? metadata.planId : \"unknown\",\n\t\texecutionInputRevision:\n\t\t\ttypeof metadata.executionInputRevision === \"number\" ? metadata.executionInputRevision : 0,\n\t\tstate: \"deferred\",\n\t\tissues: [item],\n\t\tmetadata,\n\t});\n}\n\nfunction derivePlanResult<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n): void {\n\tconst requiredMembers = admitted.plan.members.filter((member) => member.required !== false);\n\tif (requiredMembers.length === 0) return;\n\tconst memberResults: WorkItemEffectPlanResult[\"memberResults\"][number][] = [];\n\tfor (const member of admitted.plan.members) {\n\t\tconst evidence = state.memberEvidence.get(memberCoord(admitted, member.memberId));\n\t\tif (evidence === undefined) continue;\n\t\tmemberResults.push({\n\t\t\tplanMemberId: member.memberId,\n\t\t\tstatus: evidence.status,\n\t\t\trequestId: evidence.requestId,\n\t\t\teffectRunId: evidence.effectRunId,\n\t\t\tevidenceId: evidence.evidenceId,\n\t\t\teffectRunResultId: evidence.effectRunResultId,\n\t\t});\n\t}\n\tconst hasRequiredFailed = requiredMembers.some((member) => {\n\t\tconst evidence = state.memberEvidence.get(memberCoord(admitted, member.memberId));\n\t\treturn evidence !== undefined && evidence.status !== \"completed\";\n\t});\n\tconst settledRequiredCount = requiredMembers.filter((member) =>\n\t\tstate.memberEvidence.has(memberCoord(admitted, member.memberId)),\n\t).length;\n\tconst allRequiredSettled = settledRequiredCount === requiredMembers.length;\n\tconst requiredBlockedByFailure = requiredMembers.some((member) =>\n\t\tmemberBlockedByFailure(state, admitted, member.memberId, new Set()),\n\t);\n\tif (!hasRequiredFailed && !allRequiredSettled && !requiredBlockedByFailure) return;\n\tconst status: WorkItemEffectPlanResultStatus =\n\t\tadmitted.plan.joinPolicy === \"evidence-only\"\n\t\t\t? \"evidence-only\"\n\t\t\t: hasRequiredFailed || requiredBlockedByFailure\n\t\t\t\t? \"failed\"\n\t\t\t\t: \"succeeded\";\n\tconst key = memberCoord(admitted, \"result\");\n\tif (state.resultKeys.has(key)) return;\n\tstate.resultKeys.add(key);\n\tconst result: WorkItemEffectPlanResult = {\n\t\tkind: \"work-item-effect-plan-result\",\n\t\tresultId: `work-item-effect-plan-result:${admitted.workItemId}:${admitted.executionInputRevision}:${admitted.planId}`,\n\t\tworkItemId: admitted.workItemId,\n\t\tplanId: admitted.planId,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tstatus,\n\t\tmemberResults,\n\t\tsourceRefs: admitted.sourceRefs,\n\t};\n\temitPlan(ctx, \"result\", result);\n\temitPlanStatus(ctx, state, {\n\t\tworkItemId: admitted.workItemId,\n\t\tplanId: admitted.planId,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tstate: status === \"succeeded\" || status === \"evidence-only\" ? \"completed\" : \"failed\",\n\t\tsourceRefs: admitted.sourceRefs,\n\t\tmetadata: { resultId: result.resultId, resultStatus: status },\n\t});\n}\n\nfunction normalizeEffectPlanSnapshot<T>(\n\tproposal: WorkItemEffectPlanProposed<T>,\n\tpolicy?: WorkItemEffectPlanPolicy,\n): WorkItemEffectPlanSnapshot<T> {\n\tconst joinPolicy = proposal.joinPolicy ?? policy?.joinPolicy ?? \"all-required\";\n\tconst members = proposal.members.map((member) =>\n\t\tObject.freeze({\n\t\t\t...member,\n\t\t\tgoal: immutableClone(member.goal),\n\t\t\tdependsOnMemberIds: immutableClone(member.dependsOnMemberIds ?? []),\n\t\t\tcontextRefs: immutableClone(member.contextRefs),\n\t\t\trequirements: immutableClone(member.requirements),\n\t\t\tcapacityHints: immutableClone(member.capacityHints),\n\t\t\tlimits: immutableClone(member.limits),\n\t\t\tpolicyRefs: immutableClone(member.policyRefs),\n\t\t\tsourceRefs: immutableClone(member.sourceRefs),\n\t\t\tmetadata: immutableClone(member.metadata),\n\t\t}),\n\t);\n\treturn Object.freeze({\n\t\tplanId: proposal.planId,\n\t\tworkItemId: proposal.workItemId,\n\t\texecutionInputRevision: proposal.executionInputRevision,\n\t\tmembers: Object.freeze(members),\n\t\tjoinPolicy,\n\t\tlimits: immutableClone(proposal.limits),\n\t\tpolicyRefs: immutableClone(proposal.policyRefs),\n\t\tsourceRefs: immutableClone(proposal.sourceRefs),\n\t\tmetadata: immutableClone(proposal.metadata),\n\t});\n}\n\nfunction requestFromPlanMember<T>(\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tmember: WorkItemEffectPlanMember<T>,\n\tpolicy?: WorkItemEffectPlanPolicy,\n): WorkItemEffectRequested<T> {\n\tconst requestId = `work-item:${admitted.workItemId}:effect-plan:${admitted.executionInputRevision}:${admitted.planId}:${member.memberId}`;\n\tconst policyRefs =\n\t\tpolicy?.policyId === undefined\n\t\t\t? [...(admitted.plan.policyRefs ?? []), ...(member.policyRefs ?? [])]\n\t\t\t: [\n\t\t\t\t\t...(admitted.plan.policyRefs ?? []),\n\t\t\t\t\t...(member.policyRefs ?? []),\n\t\t\t\t\tref(\"work-item-effect-plan-policy\", policy.policyId),\n\t\t\t\t];\n\treturn {\n\t\tkind: \"work-item-effect-requested\",\n\t\trequestId,\n\t\tworkItemId: admitted.workItemId,\n\t\teffectRunId: `effect-run:${requestId}`,\n\t\teffectKind: member.effectKind,\n\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\tplanId: admitted.planId,\n\t\tplanMemberId: member.memberId,\n\t\tsourceRefs: [\n\t\t\tref(\"work-item\", admitted.workItemId),\n\t\t\tref(\"work-item-revision\", `${admitted.workItemId}:${admitted.executionInputRevision}`),\n\t\t\tref(\"work-item-effect-plan\", admitted.planId),\n\t\t\tref(\"work-item-effect-plan-member\", member.memberId),\n\t\t\t...(admitted.plan.sourceRefs ?? []),\n\t\t\t...(member.sourceRefs ?? []),\n\t\t],\n\t\tgoal: member.goal,\n\t\tpolicyRefs: policyRefs.length === 0 ? undefined : policyRefs,\n\t\tlimits: member.limits ?? admitted.plan.limits,\n\t\tidempotencyKey:\n\t\t\tmember.idempotencyKey ??\n\t\t\t`${admitted.workItemId}:effect-plan:${admitted.executionInputRevision}:${admitted.planId}:${member.memberId}`,\n\t\tmetadata: {\n\t\t\t...(member.metadata ?? {}),\n\t\t\texecutionInputRevision: admitted.executionInputRevision,\n\t\t\tplanId: admitted.planId,\n\t\t\tplanMemberId: member.memberId,\n\t\t\t...(member.contextRefs === undefined ? {} : { contextRefs: member.contextRefs }),\n\t\t\t...(member.requirements === undefined ? {} : { requirements: member.requirements }),\n\t\t\t...(member.capacityHints === undefined ? {} : { capacityHints: member.capacityHints }),\n\t\t},\n\t};\n}\n\nfunction immutableClone<T>(value: T): T {\n\tif (Array.isArray(value)) return Object.freeze(value.map((item) => immutableClone(item))) as T;\n\tif (!isRecord(value)) return value;\n\tconst out: Record<string, unknown> = {};\n\tfor (const [key, child] of Object.entries(value)) out[key] = immutableClone(child);\n\treturn Object.freeze(out) as T;\n}\n\nfunction stringMetadata(\n\tmetadata: Record<string, unknown> | undefined,\n\tkey: string,\n): string | undefined {\n\tconst value = metadata?.[key];\n\treturn typeof value === \"string\" && value !== \"\" ? value : undefined;\n}\n\nfunction numberMetadata(\n\tmetadata: Record<string, unknown> | undefined,\n\tkey: string,\n): number | undefined {\n\tconst value = metadata?.[key];\n\treturn typeof value === \"number\" ? value : undefined;\n}\n\nfunction sourceRefId(refs: readonly SourceRef[] | undefined, kind: string): string | undefined {\n\treturn refs?.find((sourceRef) => sourceRef.kind === kind)?.id;\n}\n\nfunction memberSucceeded<T>(\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tmemberId: string,\n): boolean {\n\treturn state.memberEvidence.get(memberCoord(admitted, memberId))?.status === \"completed\";\n}\n\nfunction memberBlockedByFailure<T>(\n\tstate: PlanState<T>,\n\tadmitted: WorkItemEffectPlanAdmitted<T>,\n\tmemberId: string,\n\tseen: Set<string>,\n): boolean {\n\tif (seen.has(memberId)) return false;\n\tseen.add(memberId);\n\tconst evidence = state.memberEvidence.get(memberCoord(admitted, memberId));\n\tif (evidence !== undefined) return evidence.status !== \"completed\";\n\tconst member = admitted.plan.members.find((item) => item.memberId === memberId);\n\treturn (member?.dependsOnMemberIds ?? []).some((depId) =>\n\t\tmemberBlockedByFailure(state, admitted, depId, seen),\n\t);\n}\n\nfunction memberCoord<T>(admitted: WorkItemEffectPlanAdmitted<T>, memberId: string): string {\n\treturn `${admitted.workItemId}:${admitted.executionInputRevision}:${admitted.planId}:${memberId}`;\n}\n\nfunction planKey(\n\tworkItemId: string | undefined,\n\tplanId: string | undefined,\n\texecutionInputRevision: number | undefined,\n): string | undefined {\n\tif (workItemId === undefined || planId === undefined || executionInputRevision === undefined)\n\t\treturn undefined;\n\treturn `${workItemId}:${executionInputRevision}:${planId}`;\n}\n\nfunction requiredPlanKey(\n\tworkItemId: string,\n\tplanId: string,\n\texecutionInputRevision: number,\n): string {\n\treturn `${workItemId}:${executionInputRevision}:${planId}`;\n}\n\nfunction emitPlanIssues<T>(ctx: Ctx, state: PlanState<T>, issues: readonly DataIssue[]): void {\n\tfor (const item of issues) emitPlan(ctx, \"issue\", item);\n\tif (issues.length > 0) {\n\t\tstate.auditSeq += 1;\n\t\temitPlan(ctx, \"audit\", {\n\t\t\tid: `work-item-effect-plan-issue:${state.auditSeq}`,\n\t\t\tkind: \"work-item-effect-plan-issue\",\n\t\t\tsubjectId: issues[0]?.subjectId,\n\t\t\tmessage: issues[0]?.message,\n\t\t\tissueCode: issues[0]?.code,\n\t\t\tmetadata: { issueCodes: issues.map((item) => item.code) },\n\t\t});\n\t}\n}\n\nfunction emitPlanStatusOnce<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tkey: string,\n\tstatus: Omit<WorkItemEffectPlanStatus, \"kind\" | \"statusId\">,\n): void {\n\tif (state.statusKeys.has(key)) return;\n\tstate.statusKeys.add(key);\n\temitPlanStatus(ctx, state, status);\n}\n\nfunction emitPlanStatus<T>(\n\tctx: Ctx,\n\tstate: PlanState<T>,\n\tstatus: Omit<WorkItemEffectPlanStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact = {\n\t\tkind: \"work-item-effect-plan-status\",\n\t\tstatusId: `work-item-effect-plan-status:${state.statusSeq}`,\n\t\t...status,\n\t} satisfies WorkItemEffectPlanStatus;\n\temitPlan(ctx, \"status\", statusFact);\n\tstate.auditSeq += 1;\n\temitPlan(ctx, \"audit\", {\n\t\tid: `work-item-effect-plan-status:${state.auditSeq}`,\n\t\tkind: \"work-item-effect-plan-status\",\n\t\tsubjectId: status.workItemId,\n\t\tmessage: status.message,\n\t\tsourceRefs: status.sourceRefs,\n\t\tmetadata: {\n\t\t\tstatusId: statusFact.statusId,\n\t\t\tstate: status.state,\n\t\t\tplanId: status.planId,\n\t\t\tplanMemberId: status.planMemberId,\n\t\t\texecutionInputRevision: status.executionInputRevision,\n\t\t\t...(status.metadata ?? {}),\n\t\t},\n\t});\n}\n\nfunction emitPlan<T, K extends PlanFact<T>[\"kind\"]>(\n\tctx: Ctx,\n\tkind: K,\n\tvalue: Extract<PlanFact<T>, { kind: K }>[\"value\"],\n): void {\n\tctx.down([[\"DATA\", { kind, value } as PlanFact<T>]]);\n}\n\nfunction isWorkItemEffectPlanJoinPolicy(value: unknown): value is WorkItemEffectPlanJoinPolicy {\n\treturn value === \"all-required\" || value === \"evidence-only\";\n}\n\nfunction findPlanCycle<T>(\n\tmembers: readonly WorkItemEffectPlanMember<T>[],\n): readonly string[] | undefined {\n\tconst byId = new Map(members.map((member) => [member.memberId, member.dependsOnMemberIds ?? []]));\n\tconst visiting = new Set<string>();\n\tconst visited = new Set<string>();\n\tconst stack: string[] = [];\n\tconst visit = (id: string): readonly string[] | undefined => {\n\t\tif (visiting.has(id)) return [...stack.slice(stack.indexOf(id)), id];\n\t\tif (visited.has(id)) return undefined;\n\t\tvisiting.add(id);\n\t\tstack.push(id);\n\t\tfor (const dep of byId.get(id) ?? []) {\n\t\t\tif (!byId.has(dep)) continue;\n\t\t\tconst cycle = visit(dep);\n\t\t\tif (cycle !== undefined) return cycle;\n\t\t}\n\t\tstack.pop();\n\t\tvisiting.delete(id);\n\t\tvisited.add(id);\n\t\treturn undefined;\n\t};\n\tfor (const member of members) {\n\t\tconst cycle = visit(member.memberId);\n\t\tif (cycle !== undefined) return cycle;\n\t}\n\treturn undefined;\n}\n\nfunction reduceAuthoring<T>(\n\tctx: Ctx,\n\tstate: AuthoringState<T>,\n\tinput: WorkItemAuthoringInput<T>,\n\tpolicy?: WorkItemAuthoringPolicy,\n): void {\n\tif (input.kind === \"work-item-spawn-proposed\") {\n\t\tconst issues = validateWorkItemDraft(input.draft, { workItemId: input.parentWorkItemId });\n\t\tif (issues.length > 0) {\n\t\t\tfor (const item of issues) emit(ctx, \"issue\", item);\n\t\t\temitStatus(ctx, state, {\n\t\t\t\tstate: \"rejected\",\n\t\t\t\tcode: issues[0]?.code as WorkItemValidationIssueCode | undefined,\n\t\t\t\tworkItemId: input.parentWorkItemId,\n\t\t\t\tmessage: issues[0]?.message,\n\t\t\t\tmetadata: { proposalId: input.proposalId },\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\temitStatus(ctx, state, {\n\t\t\tstate: \"deferred\",\n\t\t\tworkItemId: input.parentWorkItemId,\n\t\t\tmessage: `WorkItem spawn proposal '${input.proposalId}' carries draft data but is not applied`,\n\t\t\tmetadata: { proposalId: input.proposalId },\n\t\t});\n\t\treturn;\n\t}\n\tif (state.seenEvents.has(input.eventId)) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\"duplicate-id\", `Duplicate WorkItem authoring id '${input.eventId}'`, input.workItemId),\n\t\t);\n\t\treturn;\n\t}\n\tstate.seenEvents.add(input.eventId);\n\tif (input.kind === \"work-item-created\") {\n\t\tif (state.workItems.has(input.workItemId)) {\n\t\t\temit(\n\t\t\t\tctx,\n\t\t\t\t\"issue\",\n\t\t\t\tissue(\"duplicate-id\", `Duplicate WorkItem '${input.workItemId}'`, input.workItemId),\n\t\t\t);\n\t\t\temitStatus(ctx, state, {\n\t\t\t\tstate: \"duplicate\",\n\t\t\t\tcode: \"duplicate-id\",\n\t\t\t\tworkItemId: input.workItemId,\n\t\t\t\tmetadata: { eventId: input.eventId },\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst issues = validateWorkItemDraft(input.draft, { workItemId: input.workItemId });\n\t\tif (issues.length > 0) {\n\t\t\treject(ctx, state, input.workItemId, issues);\n\t\t\treturn;\n\t\t}\n\t\tconst projection: WorkItemProjection<T> = {\n\t\t\t...input.draft,\n\t\t\tverificationPlan: normalizePlan(input.draft),\n\t\t\tworkItemId: input.workItemId,\n\t\t\tauthoringRevision: 1,\n\t\t\texecutionInputRevision: 1,\n\t\t\tlastEventId: input.eventId,\n\t\t\trevisionSourceRefs: refs(\"work-item-authoring-fact\", input.eventId, input.sourceRefs),\n\t\t\tcreatedAtMs: input.createdAtMs,\n\t\t\tupdatedAtMs: input.createdAtMs,\n\t\t};\n\t\taccept(ctx, state, projection);\n\t\treturn;\n\t}\n\tconst existing = state.workItems.get(input.workItemId);\n\tif (existing === undefined) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`Authoring fact '${input.eventId}' references unknown WorkItem '${input.workItemId}'`,\n\t\t\t\tinput.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tif (input.kind === \"work-item-patched\") {\n\t\tif (!isRecord(input.patch)) {\n\t\t\treject(ctx, state, input.workItemId, [\n\t\t\t\tissue(\"invalid-patch\", \"WorkItemPatch must be an object\", input.workItemId),\n\t\t\t]);\n\t\t\treturn;\n\t\t}\n\t\tconst invalidKeys = Object.keys(input.patch).filter((key) => !draftPatchKeys.has(key));\n\t\tif (invalidKeys.length > 0) {\n\t\t\treject(ctx, state, input.workItemId, [\n\t\t\t\tissue(\n\t\t\t\t\t\"invalid-patch\",\n\t\t\t\t\t`WorkItemPatch contains unsupported keys: ${invalidKeys.join(\", \")}`,\n\t\t\t\t\tinput.workItemId,\n\t\t\t\t\t{\n\t\t\t\t\t\tinvalidKeys,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t]);\n\t\t\treturn;\n\t\t}\n\t\tconst draft = applyDraftPatch(existing, input.patch);\n\t\tconst issues = validateWorkItemDraft(draft, { workItemId: input.workItemId });\n\t\tif (issues.length > 0) {\n\t\t\treject(ctx, state, input.workItemId, issues);\n\t\t\treturn;\n\t\t}\n\t\tconst touched = touchesExecutionRelevant(\n\t\t\tinput.patch,\n\t\t\texecutionRelevant(policy, input.executionRelevantFields),\n\t\t);\n\t\taccept(ctx, state, {\n\t\t\t...existing,\n\t\t\t...draft,\n\t\t\tauthoringRevision: existing.authoringRevision + 1,\n\t\t\texecutionInputRevision: touched\n\t\t\t\t? existing.executionInputRevision + 1\n\t\t\t\t: existing.executionInputRevision,\n\t\t\tlastEventId: input.eventId,\n\t\t\trevisionSourceRefs: refs(\"work-item-authoring-fact\", input.eventId, input.sourceRefs),\n\t\t\tupdatedAtMs: input.patchedAtMs,\n\t\t});\n\t\treturn;\n\t}\n\tif (input.kind === \"acceptance-criteria-changed\") {\n\t\tconst issues = validateAcceptanceCriteria(input.acceptanceCriteria, {\n\t\t\tworkItemId: input.workItemId,\n\t\t});\n\t\tif (issues.length > 0) {\n\t\t\treject(ctx, state, input.workItemId, issues);\n\t\t\treturn;\n\t\t}\n\t\taccept(ctx, state, {\n\t\t\t...existing,\n\t\t\tacceptanceCriteria: input.acceptanceCriteria,\n\t\t\tauthoringRevision: existing.authoringRevision + 1,\n\t\t\texecutionInputRevision: existing.executionInputRevision + 1,\n\t\t\tlastEventId: input.eventId,\n\t\t\trevisionSourceRefs: refs(\"work-item-authoring-fact\", input.eventId, input.sourceRefs),\n\t\t\tupdatedAtMs: input.changedAtMs,\n\t\t});\n\t\treturn;\n\t}\n\tconst issues = validateVerificationPlan(\n\t\tinput.verificationPlan,\n\t\texisting.acceptanceCriteria ?? [],\n\t\t{ workItemId: input.workItemId },\n\t);\n\tif (issues.length > 0) {\n\t\treject(ctx, state, input.workItemId, issues);\n\t\treturn;\n\t}\n\taccept(ctx, state, {\n\t\t...existing,\n\t\tverificationPlan: input.verificationPlan,\n\t\tverificationSteps: input.verificationPlan.steps,\n\t\tauthoringRevision: existing.authoringRevision + 1,\n\t\texecutionInputRevision: existing.executionInputRevision + 1,\n\t\tlastEventId: input.eventId,\n\t\trevisionSourceRefs: refs(\"work-item-authoring-fact\", input.eventId, input.sourceRefs),\n\t\tupdatedAtMs: input.changedAtMs,\n\t});\n}\n\nfunction lowerPlan<T>(\n\tctx: Ctx,\n\tstate: RequestState<T>,\n\tworkItem: WorkItemProjection<T>,\n\tpolicy?: WorkItemVerificationLowererPolicy,\n): void {\n\tconst plan = normalizePlan(workItem);\n\tif (plan === undefined) {\n\t\temitRequestStatus(ctx, state, {\n\t\t\tstate: \"needs-human-review\",\n\t\t\tcode: \"verification-unplanned\",\n\t\t\tworkItemId: workItem.workItemId,\n\t\t});\n\t\treturn;\n\t}\n\tconst issues = validateVerificationPlan(plan, workItem.acceptanceCriteria ?? [], {\n\t\tworkItemId: workItem.workItemId,\n\t\tallowedModes: policy?.allowedModes,\n\t\tallowedEffectKinds: policy?.allowedEffectKinds,\n\t});\n\tif (issues.length > 0) {\n\t\tfor (const item of issues) emit(ctx, \"issue\", item);\n\t\treturn;\n\t}\n\tif (policy?.autoRun === false) {\n\t\temitRequestStatus(ctx, state, {\n\t\t\tstate: \"deferred\",\n\t\t\tcode: \"policy-mismatch\",\n\t\t\tworkItemId: workItem.workItemId,\n\t\t\trevision: workItem.authoringRevision,\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tmetadata: { policyId: policy.policyId, reason: \"auto-run-disabled\" },\n\t\t});\n\t\treturn;\n\t}\n\tfor (const step of plan.steps) {\n\t\tif (isStepSatisfied(state, workItem, step.stepId)) {\n\t\t\temitRequestStatus(ctx, state, {\n\t\t\t\tstate: \"duplicate\",\n\t\t\t\tcode: \"duplicate-suppressed\",\n\t\t\t\tworkItemId: workItem.workItemId,\n\t\t\t\trevision: workItem.authoringRevision,\n\t\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\t\tstepId: step.stepId,\n\t\t\t\tmessage: `Verification step '${step.stepId}' already has valid evidence`,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (step.mode === \"manual\") {\n\t\t\temitRequestStatus(ctx, state, {\n\t\t\t\tstate: \"needs-human-review\",\n\t\t\t\tcode: \"manual-review-required\",\n\t\t\t\tworkItemId: workItem.workItemId,\n\t\t\t\tstepId: step.stepId,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst missingPrerequisites = (step.dependsOnStepIds ?? []).filter(\n\t\t\t(stepId) => !isStepSatisfied(state, workItem, stepId),\n\t\t);\n\t\tif (missingPrerequisites.length > 0) {\n\t\t\temitRequestStatus(ctx, state, {\n\t\t\t\tstate: \"blocked\",\n\t\t\t\tcode: \"blocked-prerequisite\",\n\t\t\t\tworkItemId: workItem.workItemId,\n\t\t\t\tstepId: step.stepId,\n\t\t\t\tmetadata: { missingStepIds: missingPrerequisites },\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\temitRequest(ctx, state, requestFromStep(workItem, plan, step, policy));\n\t}\n}\n\nfunction lowerIntent<T>(\n\tctx: Ctx,\n\tstate: RequestState<T>,\n\tintent: WorkItemDispatchIntent<T>,\n\tpolicy?: WorkItemVerificationLowererPolicy,\n): void {\n\tconst workItem = state.workItems.get(intent.workItemId);\n\tif (workItem === undefined) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`Dispatch intent '${intent.intentId}' references unknown WorkItem '${intent.workItemId}'`,\n\t\t\t\tintent.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tif (intent.executionInputRevision !== workItem.executionInputRevision) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"stale-execution-input\",\n\t\t\t\t`Dispatch intent '${intent.intentId}' targets stale execution input`,\n\t\t\t\tintent.workItemId,\n\t\t\t\t{\n\t\t\t\t\tintentRevision: intent.executionInputRevision,\n\t\t\t\t\tcurrentRevision: workItem.executionInputRevision,\n\t\t\t\t\tstalePolicy: policy?.stalePolicy ?? \"review\",\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t\temitRequestStatus(ctx, state, {\n\t\t\tstate: \"stale\",\n\t\t\tcode: \"stale-execution-input\",\n\t\t\tworkItemId: intent.workItemId,\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tmetadata: { intentId: intent.intentId },\n\t\t});\n\t\treturn;\n\t}\n\tconst effectKind = intent.effectKind ?? intent.targetKind;\n\tconst allowedEffectKinds = new Set(policy?.allowedEffectKinds ?? [\"verification\"]);\n\tif (!allowedEffectKinds.has(effectKind)) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"unsupported-effect-kind\",\n\t\t\t\t`Dispatch intent '${intent.intentId}' targets unsupported effect kind '${effectKind}'`,\n\t\t\t\tintent.workItemId,\n\t\t\t\t{ intentId: intent.intentId, effectKind },\n\t\t\t),\n\t\t);\n\t\temitRequestStatus(ctx, state, {\n\t\t\tstate: \"rejected\",\n\t\t\tcode: \"unsupported-effect-kind\",\n\t\t\tworkItemId: intent.workItemId,\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tmetadata: { intentId: intent.intentId, effectKind },\n\t\t});\n\t\treturn;\n\t}\n\temitRequest(ctx, state, requestFromIntent(workItem, intent));\n}\n\nfunction recordVerificationResult<T>(\n\tctx: Ctx,\n\tstate: RequestState<T>,\n\tresult: VerificationResultRecorded,\n\tpolicy?: WorkItemVerificationLowererPolicy,\n): void {\n\tif (result.status !== \"passed\") return;\n\tconst workItem = state.workItems.get(result.workItemId);\n\tif (workItem === undefined) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`Verification result '${result.resultId}' references unknown WorkItem '${result.workItemId}'`,\n\t\t\t\tresult.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tif (result.executionInputRevision !== workItem.executionInputRevision) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"stale-revision\",\n\t\t\t\t`Verification result '${result.resultId}' targets stale execution input`,\n\t\t\t\tresult.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconst key = revisionKey(result.workItemId, result.executionInputRevision);\n\tconst passedSteps = state.passedSteps.get(key) ?? new Set<string>();\n\tfor (const stepId of result.verificationStepIds) passedSteps.add(stepId);\n\tstate.passedSteps.set(key, passedSteps);\n\tlowerPlan(ctx, state, workItem, policy);\n}\n\nfunction mapEvidence<T>(\n\tctx: Ctx,\n\tstate: ResultState<T>,\n\tevidence: WorkItemEvidenceRecorded,\n\treplay = false,\n): void {\n\tif (!replay && state.evidenceById.has(evidence.evidenceId)) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"duplicate-suppressed\",\n\t\t\t\t`Duplicate evidence '${evidence.evidenceId}'`,\n\t\t\t\tevidence.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tstate.evidenceById.set(evidence.evidenceId, evidence);\n\tconst workItem = state.workItems.get(evidence.workItemId);\n\tif (workItem === undefined) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`Evidence '${evidence.evidenceId}' references unknown WorkItem '${evidence.workItemId}'`,\n\t\t\t\tevidence.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconst revision =\n\t\ttypeof evidence.metadata?.executionInputRevision === \"number\"\n\t\t\t? evidence.metadata.executionInputRevision\n\t\t\t: undefined;\n\tif (revision !== workItem.executionInputRevision) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"stale-revision\",\n\t\t\t\t`Evidence '${evidence.evidenceId}' targets stale revision`,\n\t\t\t\tevidence.workItemId,\n\t\t\t),\n\t\t);\n\t\temitResultStatus(ctx, state, {\n\t\t\tstate: \"stale\",\n\t\t\tcode: \"stale-revision\",\n\t\t\tworkItemId: evidence.workItemId,\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t});\n\t\treturn;\n\t}\n\tconst stepIds = stringArray(evidence.metadata?.verificationStepIds);\n\tconst criterionIds = stringArray(evidence.metadata?.acceptanceCriterionIds);\n\tif (stepIds.length === 0 || criterionIds.length === 0) {\n\t\temit(\n\t\t\tctx,\n\t\t\t\"issue\",\n\t\t\tissue(\n\t\t\t\t\"ambiguous-coverage\",\n\t\t\t\t`Evidence '${evidence.evidenceId}' lacks coverage refs`,\n\t\t\t\tevidence.workItemId,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconst coverageIssue = validateEvidenceCoverage(workItem, stepIds, criterionIds);\n\tif (coverageIssue !== undefined) {\n\t\temit(ctx, \"issue\", {\n\t\t\t...coverageIssue,\n\t\t\tmessage: `Evidence '${evidence.evidenceId}' has invalid verification coverage: ${coverageIssue.message}`,\n\t\t});\n\t\temitResultStatus(ctx, state, {\n\t\t\tstate: \"rejected\",\n\t\t\tcode: coverageIssue.code as WorkItemValidationIssueCode,\n\t\t\tworkItemId: evidence.workItemId,\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tmetadata: { evidenceId: evidence.evidenceId },\n\t\t});\n\t\treturn;\n\t}\n\tconst result: VerificationResultRecorded = {\n\t\tkind: \"verification-result-recorded\",\n\t\tresultId: `verification-result:${evidence.evidenceId}`,\n\t\tworkItemId: evidence.workItemId,\n\t\tevidenceId: evidence.evidenceId,\n\t\teffectRunId: evidence.effectRunId,\n\t\teffectRunResultId: evidence.effectRunResultId,\n\t\texecutionInputRevision: revision,\n\t\tverificationStepIds: stepIds,\n\t\tacceptanceCriterionIds: criterionIds,\n\t\tstatus: resultStatus(evidence.status),\n\t\toutput: evidence.output,\n\t\terror: evidence.error,\n\t\treason: evidence.reason,\n\t\tsourceRefs: evidence.sourceRefs,\n\t\trecordedAtMs: evidence.recordedAtMs,\n\t\tmetadata: evidence.metadata,\n\t};\n\tif (!state.resultEvidence.has(evidence.evidenceId)) {\n\t\tstate.resultEvidence.add(evidence.evidenceId);\n\t\temit(ctx, \"result\", result);\n\t\temitResultStatus(ctx, state, {\n\t\t\tstate: \"result-recorded\",\n\t\t\tworkItemId: evidence.workItemId,\n\t\t\texecutionInputRevision: revision,\n\t\t\tmetadata: { resultId: result.resultId },\n\t\t});\n\t}\n\tconst policyIds = [\n\t\t...new Set(\n\t\t\t(evidence.sourceRefs ?? [])\n\t\t\t\t.filter((sourceRef) => sourceRef.kind === \"work-item-verification-mapping-policy\")\n\t\t\t\t.map((sourceRef) => sourceRef.id),\n\t\t),\n\t];\n\tif (policyIds.length === 0) return;\n\tfor (const policyId of policyIds) {\n\t\tconst policy = state.policies.get(policyId);\n\t\tif (policy === undefined) {\n\t\t\tif (!replay) {\n\t\t\t\temit(\n\t\t\t\t\tctx,\n\t\t\t\t\t\"issue\",\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"missing-policy\",\n\t\t\t\t\t\t`Missing verification mapping policy '${policyId}'`,\n\t\t\t\t\t\tevidence.workItemId,\n\t\t\t\t\t\t{ policyId },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\temitResultStatus(ctx, state, {\n\t\t\t\t\tstate: \"deferred\",\n\t\t\t\t\tcode: \"missing-policy\",\n\t\t\t\t\tworkItemId: evidence.workItemId,\n\t\t\t\t\texecutionInputRevision: revision,\n\t\t\t\t\tmetadata: { evidenceId: evidence.evidenceId, policyId },\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const [index, spec] of (policy.actionProposals ?? []).entries()) {\n\t\t\tif (spec.behavior !== undefined && spec.behavior !== \"propose\") {\n\t\t\t\temit(ctx, \"issue\", actionProposalIssue(policy, spec, evidence, \"unsupported behavior\"));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (spec.actionKind.length === 0) {\n\t\t\t\temit(ctx, \"issue\", actionProposalIssue(policy, spec, evidence, \"empty actionKind\"));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (spec.statuses !== undefined && !spec.statuses.includes(evidence.status)) continue;\n\t\t\tconst outputKind = evidence.output?.kind;\n\t\t\tif (\n\t\t\t\tspec.outputKinds !== undefined &&\n\t\t\t\t(outputKind === undefined || !spec.outputKinds.includes(outputKind))\n\t\t\t)\n\t\t\t\tcontinue;\n\t\t\tconst proposalKey = `${evidence.evidenceId}:${policy.policyId}:${index}:${spec.actionKind}`;\n\t\t\tif (state.proposalKeys.has(proposalKey)) continue;\n\t\t\tstate.proposalKeys.add(proposalKey);\n\t\t\temit(ctx, \"proposal\", {\n\t\t\t\tkind: \"work-item-domain-action-proposal\",\n\t\t\t\tproposalId: `verification:${result.resultId}:${policy.policyId}:${index}:${spec.actionKind}`,\n\t\t\t\tworkItemId: result.workItemId,\n\t\t\t\tactionKind: spec.actionKind,\n\t\t\t\teffectRunId: result.effectRunId,\n\t\t\t\teffectRunResultId: result.effectRunResultId,\n\t\t\t\tevidenceId: result.evidenceId,\n\t\t\t\tpolicyId: policy.policyId,\n\t\t\t\tpayload: actionProposalPayload(spec, evidence, result),\n\t\t\t\treason: spec.reason ?? evidence.reason,\n\t\t\t\tsourceRefs: [\n\t\t\t\t\tref(\"work-item-evidence\", evidence.evidenceId),\n\t\t\t\t\tref(\"verification-result\", result.resultId),\n\t\t\t\t\tref(\"effect-run-result\", result.effectRunResultId),\n\t\t\t\t\tref(\"work-item-verification-mapping-policy\", policy.policyId),\n\t\t\t\t],\n\t\t\t\tmetadata: {\n\t\t\t\t\t...(policy.metadata ?? {}),\n\t\t\t\t\t...(spec.metadata ?? {}),\n\t\t\t\t\tresultStatus: evidence.status,\n\t\t\t\t},\n\t\t\t});\n\t\t\temitResultStatus(ctx, state, {\n\t\t\t\tstate: \"domain-action-proposed\",\n\t\t\t\tworkItemId: evidence.workItemId,\n\t\t\t\texecutionInputRevision: revision,\n\t\t\t\tmetadata: { actionKind: spec.actionKind, policyId: policy.policyId },\n\t\t\t});\n\t\t}\n\t}\n}\n\nfunction requestFromStep<T>(\n\tworkItem: WorkItemProjection<T>,\n\tplan: VerificationPlan<T>,\n\tstep: VerificationStep<T>,\n\tpolicy?: WorkItemVerificationLowererPolicy,\n): WorkItemEffectRequested<T> {\n\tconst requestId = `work-item:${workItem.workItemId}:verification:${workItem.executionInputRevision}:${plan.planId}:${step.stepId}`;\n\tconst effectKind = step.effectKind ?? \"verification\";\n\tconst criterionIds =\n\t\tstep.verifiesCriteriaIds ??\n\t\t(workItem.acceptanceCriteria ?? []).map((criterion) => criterion.criterionId);\n\tconst goal = goalWithInlineInput(\n\t\tstep.goal ?? { kind: effectKind, summary: step.title ?? workItem.summary },\n\t\tstep.input,\n\t\t`verification-step:${step.stepId}:input`,\n\t\teffectKind,\n\t\tstep.contextRefs,\n\t);\n\treturn {\n\t\tkind: \"work-item-effect-requested\",\n\t\trequestId,\n\t\tworkItemId: workItem.workItemId,\n\t\teffectRunId: `effect-run:${requestId}`,\n\t\teffectKind,\n\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\tsourceRefs: [\n\t\t\tref(\"work-item\", workItem.workItemId),\n\t\t\tref(\"work-item-revision\", `${workItem.workItemId}:${workItem.executionInputRevision}`),\n\t\t\tref(\"verification-plan\", plan.planId),\n\t\t\tref(\"verification-step\", step.stepId),\n\t\t\t...(plan.sourceRefs ?? []),\n\t\t\t...(step.sourceRefs ?? []),\n\t\t],\n\t\tgoal,\n\t\tpolicyRefs:\n\t\t\tpolicy?.policyId === undefined\n\t\t\t\t? step.policyRefs\n\t\t\t\t: [\n\t\t\t\t\t\t...(step.policyRefs ?? []),\n\t\t\t\t\t\tref(\"work-item-verification-lowerer-policy\", policy.policyId),\n\t\t\t\t\t],\n\t\tidempotencyKey: `${workItem.workItemId}:verification:${workItem.executionInputRevision}:${plan.planId}:${step.stepId}`,\n\t\tmetadata: {\n\t\t\t...(step.metadata ?? {}),\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tverificationPlanId: plan.planId,\n\t\t\tverificationStepIds: [step.stepId],\n\t\t\tacceptanceCriterionIds: criterionIds,\n\t\t\t...(step.contextRefs === undefined ? {} : { contextRefs: step.contextRefs }),\n\t\t\t...(step.requirements === undefined ? {} : { requirements: step.requirements }),\n\t\t\t...(step.capacityHints === undefined ? {} : { capacityHints: step.capacityHints }),\n\t\t},\n\t};\n}\n\nfunction requestFromIntent<T>(\n\tworkItem: WorkItemProjection<T>,\n\tintent: WorkItemDispatchIntent<T>,\n): WorkItemEffectRequested<T> {\n\tconst requestId = `work-item:${workItem.workItemId}:dispatch:${workItem.executionInputRevision}:${intent.intentId}`;\n\tconst effectKind = intent.effectKind ?? intent.targetKind;\n\treturn {\n\t\tkind: \"work-item-effect-requested\",\n\t\trequestId,\n\t\tworkItemId: workItem.workItemId,\n\t\teffectRunId: `effect-run:${requestId}`,\n\t\teffectKind,\n\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\tsourceRefs: [\n\t\t\tref(\"work-item\", workItem.workItemId),\n\t\t\tref(\"work-item-dispatch-intent\", intent.intentId),\n\t\t\t...(intent.sourceRefs ?? []),\n\t\t],\n\t\tgoal: intent.goal ?? { kind: effectKind, summary: intent.reason ?? workItem.summary },\n\t\tpolicyRefs: intent.policyRefs,\n\t\tlimits: intent.limits,\n\t\tidempotencyKey:\n\t\t\tintent.idempotencyKey ??\n\t\t\t`${workItem.workItemId}:dispatch:${workItem.executionInputRevision}:${intent.intentId}`,\n\t\tmetadata: {\n\t\t\t...(intent.metadata ?? {}),\n\t\t\texecutionInputRevision: workItem.executionInputRevision,\n\t\t\tverificationStepIds: intent.stepIds ?? [],\n\t\t\tacceptanceCriterionIds: intent.acceptanceCriterionIds ?? [],\n\t\t\t...(intent.contextRefs === undefined ? {} : { contextRefs: intent.contextRefs }),\n\t\t\t...(intent.requirements === undefined ? {} : { requirements: intent.requirements }),\n\t\t\t...(intent.capacityHints === undefined ? {} : { capacityHints: intent.capacityHints }),\n\t\t},\n\t};\n}\n\nfunction accept<T>(ctx: Ctx, state: AuthoringState<T>, projection: WorkItemProjection<T>): void {\n\tstate.workItems.set(projection.workItemId, projection);\n\temit(ctx, \"work-item\", projection);\n\temitStatus(ctx, state, {\n\t\tstate: \"projected\",\n\t\tworkItemId: projection.workItemId,\n\t\trevision: projection.authoringRevision,\n\t\texecutionInputRevision: projection.executionInputRevision,\n\t\tmetadata: { lastEventId: projection.lastEventId },\n\t});\n}\n\nfunction reject<T>(\n\tctx: Ctx,\n\tstate: AuthoringState<T>,\n\tworkItemId: string,\n\tissues: readonly DataIssue[],\n): void {\n\tfor (const item of issues) emit(ctx, \"issue\", item);\n\temitStatus(ctx, state, {\n\t\tstate: \"rejected\",\n\t\tcode: issues[0]?.code as WorkItemValidationIssueCode | undefined,\n\t\tworkItemId,\n\t\tmessage: issues[0]?.message,\n\t});\n}\n\nfunction emitRequest<T>(\n\tctx: Ctx,\n\tstate: RequestState<T>,\n\trequest: WorkItemEffectRequested<T>,\n): void {\n\tconst key = request.idempotencyKey ?? request.requestId;\n\tif (state.emittedKeys.has(key)) {\n\t\temitRequestStatus(ctx, state, {\n\t\t\tstate: \"duplicate\",\n\t\t\tcode: \"duplicate-suppressed\",\n\t\t\tworkItemId: request.workItemId,\n\t\t\tmetadata: { requestId: request.requestId },\n\t\t});\n\t\treturn;\n\t}\n\tstate.emittedKeys.add(key);\n\temit(ctx, \"request\", request);\n\temitRequestStatus(ctx, state, {\n\t\tstate: \"request-emitted\",\n\t\tworkItemId: request.workItemId,\n\t\texecutionInputRevision:\n\t\t\trequest.executionInputRevision ??\n\t\t\t(request.metadata?.executionInputRevision as number | undefined),\n\t\tmetadata: { requestId: request.requestId },\n\t});\n}\n\nfunction emitStatus<T>(\n\tctx: Ctx,\n\tstate: AuthoringState<T>,\n\tstatus: Omit<WorkItemValidationStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact = {\n\t\tkind: \"work-item-validation-status\",\n\t\tstatusId: `work-item-authoring-status:${state.statusSeq}`,\n\t\t...status,\n\t} satisfies WorkItemValidationStatus;\n\temit(ctx, \"status\", statusFact);\n\temitAudit(ctx, state, \"work-item-authoring-status\", statusFact);\n}\n\nfunction emitRequestStatus<T>(\n\tctx: Ctx,\n\tstate: RequestState<T>,\n\tstatus: Omit<WorkItemValidationStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact = {\n\t\tkind: \"work-item-validation-status\",\n\t\tstatusId: `work-item-verification-request-status:${state.statusSeq}`,\n\t\t...status,\n\t} satisfies WorkItemValidationStatus;\n\temit(ctx, \"status\", statusFact);\n\temitAudit(ctx, state, \"work-item-verification-request-status\", statusFact);\n}\n\nfunction emitResultStatus<T>(\n\tctx: Ctx,\n\tstate: ResultState<T>,\n\tstatus: Omit<WorkItemValidationStatus, \"kind\" | \"statusId\">,\n): void {\n\tstate.statusSeq += 1;\n\tconst statusFact = {\n\t\tkind: \"work-item-validation-status\",\n\t\tstatusId: `work-item-verification-result-status:${state.statusSeq}`,\n\t\t...status,\n\t} satisfies WorkItemValidationStatus;\n\temit(ctx, \"status\", statusFact);\n\temitAudit(ctx, state, \"work-item-verification-result-status\", statusFact);\n}\n\nfunction emitAudit(\n\tctx: Ctx,\n\tstate: { auditSeq: number },\n\tkind: string,\n\tstatus: WorkItemValidationStatus,\n): void {\n\tstate.auditSeq += 1;\n\temit(ctx, \"audit\", {\n\t\tid: `${kind}:${state.auditSeq}`,\n\t\tkind,\n\t\tsubjectId: status.workItemId,\n\t\tmessage: status.message,\n\t\tissueCode: status.code,\n\t\tsourceRefs: status.sourceRefs,\n\t\tmetadata: {\n\t\t\tstatusId: status.statusId,\n\t\t\tstate: status.state,\n\t\t\trevision: status.revision,\n\t\t\texecutionInputRevision: status.executionInputRevision,\n\t\t\t...(status.metadata ?? {}),\n\t\t},\n\t});\n}\n\nfunction emit<T, K extends Fact<T>[\"kind\"]>(\n\tctx: Ctx,\n\tkind: K,\n\tvalue: Extract<Fact<T>, { kind: K }>[\"value\"],\n): void {\n\tctx.down([[\"DATA\", { kind, value } as Fact<T>]]);\n}\n\nfunction project<TFact, TSelected>(\n\tgraph: Graph,\n\truntime: Node<TFact>,\n\tname: string,\n\tfactory: string,\n\tselect: (fact: TFact) => TSelected | undefined,\n): Node<TSelected> {\n\treturn graph.node<TSelected>(\n\t\t[runtime],\n\t\t(ctx) => {\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst selected = select(raw as TFact);\n\t\t\t\tif (selected !== undefined) ctx.down([[\"DATA\", selected]]);\n\t\t\t}\n\t\t},\n\t\t{ name, factory, partial: true, completeWhenDepsComplete: false, errorWhenDepsError: false },\n\t);\n}\n\nfunction normalizePlan<T>(\n\tdraft: Pick<WorkItemDraft<T>, \"verificationPlan\" | \"verificationSteps\">,\n): VerificationPlan<T> | undefined {\n\tif (draft.verificationPlan !== undefined) return draft.verificationPlan;\n\tif (draft.verificationSteps !== undefined)\n\t\treturn { planId: \"default\", steps: draft.verificationSteps };\n\treturn undefined;\n}\n\nfunction normalizePlanFromUnknown<T>(\n\tdraft: Record<string, unknown>,\n): VerificationPlan<T> | undefined {\n\tconst verificationPlan = draft.verificationPlan;\n\tif (verificationPlan !== undefined) {\n\t\tif (!isRecord(verificationPlan) || !Array.isArray(verificationPlan.steps)) {\n\t\t\treturn { planId: \"malformed\", steps: [] };\n\t\t}\n\t\treturn verificationPlan as unknown as VerificationPlan<T>;\n\t}\n\tconst verificationSteps = draft.verificationSteps;\n\tif (verificationSteps !== undefined) {\n\t\tif (!Array.isArray(verificationSteps)) return { planId: \"malformed\", steps: [] };\n\t\treturn { planId: \"default\", steps: verificationSteps as readonly VerificationStep<T>[] };\n\t}\n\treturn undefined;\n}\n\nfunction isVerificationPlanShape(value: unknown): value is VerificationPlan {\n\treturn isRecord(value) && typeof value.planId === \"string\" && Array.isArray(value.steps);\n}\n\nfunction applyDraftPatch<T>(\n\texisting: WorkItemProjection<T>,\n\tpatch: WorkItemPatch<T>,\n): WorkItemDraft<T> {\n\treturn {\n\t\tsummary: patchValue(patch, existing, \"summary\"),\n\t\tdetail: patchValue(patch, existing, \"detail\"),\n\t\tdetailRefs: patchValue(patch, existing, \"detailRefs\"),\n\t\tacceptanceCriteria: patchValue(patch, existing, \"acceptanceCriteria\"),\n\t\tverificationPlan: patchValue(patch, existing, \"verificationPlan\"),\n\t\tverificationSteps: patchValue(patch, existing, \"verificationSteps\"),\n\t\tkind: patchValue(patch, existing, \"kind\"),\n\t\tpriority: patchValue(patch, existing, \"priority\"),\n\t\ttags: patchValue(patch, existing, \"tags\"),\n\t\towner: patchValue(patch, existing, \"owner\"),\n\t\tassignee: patchValue(patch, existing, \"assignee\"),\n\t\tdeadlineMs: patchValue(patch, existing, \"deadlineMs\"),\n\t\tcustomFields: patchValue(patch, existing, \"customFields\"),\n\t\tsourceRefs: patchValue(patch, existing, \"sourceRefs\"),\n\t\tmetadata: patchValue(patch, existing, \"metadata\"),\n\t};\n}\n\nfunction patchValue<T, K extends keyof WorkItemDraft<T>>(\n\tpatch: WorkItemPatch<T>,\n\texisting: WorkItemProjection<T>,\n\tkey: K,\n): WorkItemDraft<T>[K] {\n\treturn Object.hasOwn(patch, key) ? (patch[key] as WorkItemDraft<T>[K]) : existing[key];\n}\n\nfunction validateEvidenceCoverage<T>(\n\tworkItem: WorkItemProjection<T>,\n\tstepIds: readonly string[],\n\tcriterionIds: readonly string[],\n): DataIssue | undefined {\n\tconst plan = normalizePlan(workItem);\n\tconst validStepIds = new Set((plan?.steps ?? []).map((step) => step.stepId));\n\tconst validCriterionIds = new Set(\n\t\t(workItem.acceptanceCriteria ?? []).map((criterion) => criterion.criterionId),\n\t);\n\tfor (const stepId of stepIds) {\n\t\tif (!validStepIds.has(stepId)) {\n\t\t\treturn issue(\"dangling-ref\", `unknown verification step '${stepId}'`, workItem.workItemId, {\n\t\t\t\tstepId,\n\t\t\t});\n\t\t}\n\t}\n\tfor (const criterionId of criterionIds) {\n\t\tif (!validCriterionIds.has(criterionId)) {\n\t\t\treturn issue(\n\t\t\t\t\"dangling-ref\",\n\t\t\t\t`unknown acceptance criterion '${criterionId}'`,\n\t\t\t\tworkItem.workItemId,\n\t\t\t\t{ criterionId },\n\t\t\t);\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction executionRelevant(\n\tpolicy?: WorkItemAuthoringPolicy,\n\tfields?: readonly string[],\n): Set<string> {\n\treturn new Set([\n\t\t...executionRelevantDefaults,\n\t\t...(policy?.executionRelevantFields ?? []),\n\t\t...(fields ?? []),\n\t]);\n}\n\nfunction touchesExecutionRelevant<T>(\n\tpatch: WorkItemPatch<T>,\n\trelevantFields: Set<string>,\n): boolean {\n\tconst paths = patchPaths(patch);\n\tfor (const path of paths) {\n\t\tif (relevantFields.has(path)) return true;\n\t}\n\treturn false;\n}\n\nfunction patchPaths<T>(patch: WorkItemPatch<T>): readonly string[] {\n\tconst paths: string[] = [];\n\tfor (const [key, value] of Object.entries(patch)) {\n\t\tpaths.push(key);\n\t\tif (isRecord(value)) {\n\t\t\tfor (const childKey of Object.keys(value)) paths.push(`${key}.${childKey}`);\n\t\t}\n\t}\n\treturn paths;\n}\n\nfunction isStepSatisfied<T>(\n\tstate: RequestState<T>,\n\tworkItem: WorkItemProjection<T>,\n\tstepId: string,\n): boolean {\n\treturn (\n\t\tstate.passedSteps\n\t\t\t.get(revisionKey(workItem.workItemId, workItem.executionInputRevision))\n\t\t\t?.has(stepId) === true\n\t);\n}\n\nfunction revisionKey(workItemId: string, executionInputRevision: number): string {\n\treturn `${workItemId}:${executionInputRevision}`;\n}\n\nfunction replayEvidence<T>(ctx: Ctx, state: ResultState<T>, workItemId: string): void {\n\tfor (const evidence of state.evidenceById.values()) {\n\t\tif (evidence.workItemId === workItemId) mapEvidence(ctx, state, evidence, true);\n\t}\n}\n\nfunction validateMappingPolicy(policy: WorkItemVerificationMappingPolicy): readonly DataIssue[] {\n\tif (\n\t\t!isRecord(policy) ||\n\t\tpolicy.kind !== \"work-item-verification-mapping-policy\" ||\n\t\ttypeof policy.policyId !== \"string\" ||\n\t\tpolicy.policyId.trim() === \"\"\n\t) {\n\t\treturn [\n\t\t\tissue(\n\t\t\t\t\"policy-mismatch\",\n\t\t\t\t\"WorkItemVerificationMappingPolicy requires kind and policyId\",\n\t\t\t\tundefined,\n\t\t\t),\n\t\t];\n\t}\n\tif (policy.actionProposals !== undefined && !Array.isArray(policy.actionProposals)) {\n\t\treturn [\n\t\t\tissue(\n\t\t\t\t\"policy-mismatch\",\n\t\t\t\t\"WorkItemVerificationMappingPolicy.actionProposals must be an array\",\n\t\t\t\tundefined,\n\t\t\t\t{\n\t\t\t\t\tpolicyId: policy.policyId,\n\t\t\t\t},\n\t\t\t),\n\t\t];\n\t}\n\tconst out: DataIssue[] = [];\n\tfor (const [index, spec] of (policy.actionProposals ?? []).entries()) {\n\t\tif (!isRecord(spec) || typeof spec.actionKind !== \"string\") {\n\t\t\tout.push(\n\t\t\t\tissue(\"policy-mismatch\", \"WorkItem action proposal requires actionKind\", undefined, {\n\t\t\t\t\tpolicyId: policy.policyId,\n\t\t\t\t\tindex,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t}\n\treturn out;\n}\n\nfunction findCycle(steps: readonly VerificationStep[]): readonly string[] | undefined {\n\tconst byId = new Map(steps.map((step) => [step.stepId, step.dependsOnStepIds ?? []]));\n\tconst visiting = new Set<string>();\n\tconst visited = new Set<string>();\n\tconst stack: string[] = [];\n\tconst visit = (id: string): readonly string[] | undefined => {\n\t\tif (visiting.has(id)) return [...stack.slice(stack.indexOf(id)), id];\n\t\tif (visited.has(id)) return undefined;\n\t\tvisiting.add(id);\n\t\tstack.push(id);\n\t\tfor (const dep of byId.get(id) ?? []) {\n\t\t\tif (!byId.has(dep)) continue;\n\t\t\tconst cycle = visit(dep);\n\t\t\tif (cycle !== undefined) return cycle;\n\t\t}\n\t\tstack.pop();\n\t\tvisiting.delete(id);\n\t\tvisited.add(id);\n\t\treturn undefined;\n\t};\n\tfor (const step of steps) {\n\t\tconst cycle = visit(step.stepId);\n\t\tif (cycle !== undefined) return cycle;\n\t}\n\treturn undefined;\n}\n\nfunction resultStatus(status: EffectRunResultStatus): VerificationResultStatus {\n\tif (status === \"completed\") return \"passed\";\n\tif (status === \"failed\") return \"failed\";\n\tif (status === \"blocked\") return \"blocked\";\n\tif (status === \"canceled\") return \"canceled\";\n\tif (status === \"timeout\") return \"timeout\";\n\treturn \"waived\";\n}\n\nfunction goalWithInlineInput<T>(\n\tgoal: EffectRunGoal<T>,\n\tinput: T | undefined,\n\tinputId: string,\n\tinputKind: string,\n\tsubjectRefs: readonly SourceRef[] | undefined,\n): EffectRunGoal<T> {\n\tif (input === undefined || goal.input !== undefined) return goal;\n\treturn {\n\t\t...goal,\n\t\tinput: {\n\t\t\tinputId,\n\t\t\tinputKind,\n\t\t\tdataMode: \"inline\",\n\t\t\tvalue: input,\n\t\t\tsubjectRefs,\n\t\t},\n\t};\n}\n\nfunction actionProposalPayload(\n\tspec: WorkItemDomainActionProposalSpec,\n\tevidence: WorkItemEvidenceRecorded,\n\tresult: VerificationResultRecorded,\n): unknown {\n\tif (spec.payload !== undefined) return spec.payload;\n\tif (spec.payloadFrom === \"effect-run-result\")\n\t\treturn { kind: \"effect-run-result-ref\", resultId: result.effectRunResultId };\n\tif (spec.payloadFrom === \"output\") return evidence.output;\n\tif (spec.payloadFrom === \"evidence\")\n\t\treturn { kind: \"work-item-evidence-ref\", evidenceId: evidence.evidenceId };\n\treturn undefined;\n}\n\nfunction actionProposalIssue(\n\tpolicy: WorkItemVerificationMappingPolicy,\n\tspec: WorkItemDomainActionProposalSpec,\n\tevidence: WorkItemEvidenceRecorded,\n\treason: string,\n): DataIssue {\n\treturn issue(\n\t\t\"policy-mismatch\",\n\t\t`Verification mapping policy '${policy.policyId}' has an invalid action proposal: ${reason}`,\n\t\tevidence.workItemId,\n\t\t{ policyId: policy.policyId, actionKind: spec.actionKind },\n\t);\n}\n\nfunction issue(\n\tcode: WorkItemValidationIssueCode,\n\tmessage: string,\n\tworkItemId?: string,\n\tmetadata?: Record<string, unknown>,\n): DataIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tcode,\n\t\tmessage,\n\t\tseverity: \"error\",\n\t\tsource: \"work-item-scheduling\",\n\t\tsubjectId: workItemId,\n\t\tmetadata,\n\t};\n}\n\nfunction refs(kind: string, id: string, rest?: readonly SourceRef[]): readonly SourceRef[] {\n\treturn [ref(kind, id), ...(rest ?? [])];\n}\n\nfunction ref(kind: string, id: string): SourceRef {\n\treturn { kind, id };\n}\n\nfunction stringArray(value: unknown): readonly string[] {\n\treturn Array.isArray(value)\n\t\t? value.filter((item): item is string => typeof item === \"string\")\n\t\t: [];\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn value !== null && typeof value === \"object\";\n}\n"],"mappings":"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","names":["issues","refs"]}