@graphrefly/ts 0.0.1 → 0.0.2

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 (330) hide show
  1. package/dist/actions-types-CSC3NMDl.d.ts +657 -0
  2. package/dist/actions-types-wl9Mgkmr.d.cts +657 -0
  3. package/dist/adapters/index.cjs +5157 -2951
  4. package/dist/adapters/index.cjs.map +1 -1
  5. package/dist/adapters/index.d.cts +207 -70
  6. package/dist/adapters/index.d.ts +207 -70
  7. package/dist/adapters/index.js +3738 -1688
  8. package/dist/adapters/index.js.map +1 -1
  9. package/dist/adapters/nestjs/microservices.cjs +841 -0
  10. package/dist/adapters/nestjs/microservices.cjs.map +1 -0
  11. package/dist/adapters/nestjs/microservices.d.cts +45 -0
  12. package/dist/adapters/nestjs/microservices.d.ts +45 -0
  13. package/dist/adapters/nestjs/microservices.js +206 -0
  14. package/dist/adapters/nestjs/microservices.js.map +1 -0
  15. package/dist/adapters/nestjs/native.cjs +1391 -0
  16. package/dist/adapters/nestjs/native.cjs.map +1 -0
  17. package/dist/adapters/nestjs/native.d.cts +111 -0
  18. package/dist/adapters/nestjs/native.d.ts +111 -0
  19. package/dist/adapters/nestjs/native.js +577 -0
  20. package/dist/adapters/nestjs/native.js.map +1 -0
  21. package/dist/adapters/nestjs/websockets.cjs +924 -0
  22. package/dist/adapters/nestjs/websockets.cjs.map +1 -0
  23. package/dist/adapters/nestjs/websockets.d.cts +47 -0
  24. package/dist/adapters/nestjs/websockets.d.ts +47 -0
  25. package/dist/adapters/nestjs/websockets.js +286 -0
  26. package/dist/adapters/nestjs/websockets.js.map +1 -0
  27. package/dist/adapters/nestjs.cjs +1085 -0
  28. package/dist/adapters/nestjs.cjs.map +1 -0
  29. package/dist/adapters/nestjs.d.cts +385 -0
  30. package/dist/adapters/nestjs.d.ts +385 -0
  31. package/dist/adapters/nestjs.js +112 -0
  32. package/dist/adapters/nestjs.js.map +1 -0
  33. package/dist/adapters/observe-storage.d.cts +3 -3
  34. package/dist/adapters/observe-storage.d.ts +3 -3
  35. package/dist/adapters/observe-storage.js +4 -4
  36. package/dist/adapters/react.cjs.map +1 -1
  37. package/dist/adapters/react.d.cts +2 -2
  38. package/dist/adapters/react.d.ts +2 -2
  39. package/dist/adapters/react.js +1 -1
  40. package/dist/adapters/solid.cjs.map +1 -1
  41. package/dist/adapters/solid.d.cts +2 -2
  42. package/dist/adapters/solid.d.ts +2 -2
  43. package/dist/adapters/solid.js +1 -1
  44. package/dist/adapters/svelte.cjs.map +1 -1
  45. package/dist/adapters/svelte.d.cts +2 -2
  46. package/dist/adapters/svelte.d.ts +2 -2
  47. package/dist/adapters/svelte.js +1 -1
  48. package/dist/adapters/vue.cjs.map +1 -1
  49. package/dist/adapters/vue.d.cts +2 -2
  50. package/dist/adapters/vue.d.ts +2 -2
  51. package/dist/adapters/vue.js +1 -1
  52. package/dist/{agent-runtime-DZTJ3C-p.d.cts → agent-runtime-types-core-CaXfKNtY.d.cts} +171 -320
  53. package/dist/{agent-runtime-BesGDZcB.d.ts → agent-runtime-types-core-hU299uIC.d.ts} +171 -320
  54. package/dist/agent-runtime-types-tool-BEpSINol.d.ts +695 -0
  55. package/dist/agent-runtime-types-tool-DninPEzk.d.cts +695 -0
  56. package/dist/agentic-memory-retention-BmGX368S.d.ts +14 -0
  57. package/dist/agentic-memory-retention-Ih1qhX9Z.d.cts +14 -0
  58. package/dist/{agentic-memory-BmRCvh0d.d.ts → agentic-memory-types-CVSUS6XR.d.ts} +13 -57
  59. package/dist/{agentic-memory-DfuVZ-lY.d.cts → agentic-memory-types-FnnYlVUs.d.cts} +13 -57
  60. package/dist/{capability-admission-g0mn9hpq.d.ts → capability-admission-BW2CziT6.d.ts} +3 -3
  61. package/dist/{capability-admission-B0BzqAm5.d.cts → capability-admission-lwSecxXs.d.cts} +3 -3
  62. package/dist/chunk-2KUAG2GZ.js +9693 -0
  63. package/dist/chunk-2KUAG2GZ.js.map +1 -0
  64. package/dist/chunk-2NJP6GO4.js +1320 -0
  65. package/dist/chunk-2NJP6GO4.js.map +1 -0
  66. package/dist/{chunk-YDSIVHRR.js → chunk-4NWSNI4K.js} +1598 -1584
  67. package/dist/chunk-4NWSNI4K.js.map +1 -0
  68. package/dist/{chunk-Z2ANQ6JW.js → chunk-4Q77MMJY.js} +2 -2
  69. package/dist/chunk-6E76H4OU.js +132 -0
  70. package/dist/chunk-6E76H4OU.js.map +1 -0
  71. package/dist/chunk-7GOTIIQ7.js +819 -0
  72. package/dist/chunk-7GOTIIQ7.js.map +1 -0
  73. package/dist/{chunk-IXZBUWSP.js → chunk-7HZRJMN6.js} +2 -2
  74. package/dist/{chunk-SS2A464I.js → chunk-CJIFGJQG.js} +3 -3
  75. package/dist/{chunk-V7CIJE4B.js → chunk-CX6B6PO2.js} +92 -9
  76. package/dist/chunk-CX6B6PO2.js.map +1 -0
  77. package/dist/{chunk-FBUU43PM.js → chunk-E4QCH32M.js} +448 -446
  78. package/dist/chunk-E4QCH32M.js.map +1 -0
  79. package/dist/{chunk-HKK2JD7Z.js → chunk-ECURQ3HD.js} +12 -125
  80. package/dist/chunk-ECURQ3HD.js.map +1 -0
  81. package/dist/{chunk-3JR3EDB2.js → chunk-EOKT4QFF.js} +121 -115
  82. package/dist/chunk-EOKT4QFF.js.map +1 -0
  83. package/dist/{chunk-K3FXTC3I.js → chunk-HJACH5PU.js} +3 -3
  84. package/dist/{chunk-GTPCOEOZ.js → chunk-IDMLXLLG.js} +3 -3
  85. package/dist/{chunk-DKP56CSW.js → chunk-JKAYLDQV.js} +2 -2
  86. package/dist/{chunk-4VLAQHZI.js → chunk-K7FB3JTD.js} +17 -1
  87. package/dist/chunk-K7FB3JTD.js.map +1 -0
  88. package/dist/{chunk-H75VXTGT.js → chunk-L6LDXRWE.js} +3 -3
  89. package/dist/{chunk-H75VXTGT.js.map → chunk-L6LDXRWE.js.map} +1 -1
  90. package/dist/{chunk-YXMZ2N6J.js → chunk-M7J6Z4IJ.js} +1071 -1025
  91. package/dist/chunk-M7J6Z4IJ.js.map +1 -0
  92. package/dist/chunk-MQEQMS7B.js +1009 -0
  93. package/dist/chunk-MQEQMS7B.js.map +1 -0
  94. package/dist/chunk-MTELVIYR.js +1421 -0
  95. package/dist/chunk-MTELVIYR.js.map +1 -0
  96. package/dist/{chunk-QFY4AFY4.js → chunk-PVC7WDKI.js} +58 -52
  97. package/dist/chunk-PVC7WDKI.js.map +1 -0
  98. package/dist/{chunk-VTHLCFN4.js → chunk-RAHNUYA5.js} +2 -2
  99. package/dist/{chunk-XKXWK2KP.js → chunk-SHZDP2MQ.js} +1157 -1021
  100. package/dist/chunk-SHZDP2MQ.js.map +1 -0
  101. package/dist/{chunk-CZNV3VXM.js → chunk-SIDJO2T4.js} +11 -11
  102. package/dist/chunk-STXRMPW4.js +4131 -0
  103. package/dist/chunk-STXRMPW4.js.map +1 -0
  104. package/dist/{chunk-2747WN4Y.js → chunk-TPND5MJS.js} +3 -3
  105. package/dist/chunk-TQPCAIQI.js +612 -0
  106. package/dist/chunk-TQPCAIQI.js.map +1 -0
  107. package/dist/{chunk-43BKLFZU.js → chunk-YDWBXXQZ.js} +10 -10
  108. package/dist/{chunk-6PHB5CJS.js → chunk-ZLFRB6FI.js} +2 -2
  109. package/dist/composition/index.cjs +1228 -1076
  110. package/dist/composition/index.cjs.map +1 -1
  111. package/dist/composition/index.d.cts +3 -3
  112. package/dist/composition/index.d.ts +3 -3
  113. package/dist/composition/index.js +4 -4
  114. package/dist/core/index.cjs +1198 -1046
  115. package/dist/core/index.cjs.map +1 -1
  116. package/dist/core/index.d.cts +1 -1
  117. package/dist/core/index.d.ts +1 -1
  118. package/dist/core/index.js +2 -2
  119. package/dist/cqrs/index.d.cts +3 -3
  120. package/dist/cqrs/index.d.ts +3 -3
  121. package/dist/cqrs/messaging.d.cts +4 -4
  122. package/dist/cqrs/messaging.d.ts +4 -4
  123. package/dist/cqrs/work-queue.d.cts +5 -5
  124. package/dist/cqrs/work-queue.d.ts +5 -5
  125. package/dist/data-structures/index.cjs +1226 -1074
  126. package/dist/data-structures/index.cjs.map +1 -1
  127. package/dist/data-structures/index.d.cts +8 -7
  128. package/dist/data-structures/index.d.ts +8 -7
  129. package/dist/data-structures/index.js +6 -5
  130. package/dist/{describe-BpyJuWkw.d.ts → describe-B_A5fbXH.d.ts} +1 -1
  131. package/dist/{describe-DYMw_l1C.d.cts → describe-CQRrkv-Q.d.cts} +1 -1
  132. package/dist/executors/tool-provider-adapters.cjs +3091 -0
  133. package/dist/executors/tool-provider-adapters.cjs.map +1 -0
  134. package/dist/executors/tool-provider-adapters.d.cts +174 -0
  135. package/dist/executors/tool-provider-adapters.d.ts +174 -0
  136. package/dist/executors/tool-provider-adapters.js +1336 -0
  137. package/dist/executors/tool-provider-adapters.js.map +1 -0
  138. package/dist/executors/tool-provider-runtime.cjs +5178 -0
  139. package/dist/executors/tool-provider-runtime.cjs.map +1 -0
  140. package/dist/executors/tool-provider-runtime.d.cts +17 -0
  141. package/dist/executors/tool-provider-runtime.d.ts +17 -0
  142. package/dist/executors/tool-provider-runtime.js +15 -0
  143. package/dist/executors/tool-provider-runtime.js.map +1 -0
  144. package/dist/executors/tool-provider.cjs +6392 -0
  145. package/dist/executors/tool-provider.cjs.map +1 -0
  146. package/dist/executors/tool-provider.d.cts +60 -0
  147. package/dist/executors/tool-provider.d.ts +60 -0
  148. package/dist/executors/tool-provider.js +89 -0
  149. package/dist/executors/tool-provider.js.map +1 -0
  150. package/dist/executors/work-queue.d.cts +6 -6
  151. package/dist/executors/work-queue.d.ts +6 -6
  152. package/dist/graph/index.cjs +1499 -1341
  153. package/dist/graph/index.cjs.map +1 -1
  154. package/dist/graph/index.d.cts +9 -8
  155. package/dist/graph/index.d.ts +9 -8
  156. package/dist/graph/index.js +23 -22
  157. package/dist/{graph-DCEWh4T2.d.cts → graph-CWK3HLPB.d.cts} +133 -131
  158. package/dist/{graph-D-1-SQeC.d.ts → graph-ho5sotHP.d.ts} +133 -131
  159. package/dist/{index-Bmxeu0nK.d.ts → index-CQWcE0Dw.d.ts} +18 -4
  160. package/dist/{index-72VZC0-E.d.cts → index-DHA1i67c.d.cts} +18 -4
  161. package/dist/index.cjs +3397 -3140
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.d.cts +12 -9
  164. package/dist/index.d.ts +12 -9
  165. package/dist/index.js +110 -109
  166. package/dist/inspection/boundary.d.cts +4 -4
  167. package/dist/inspection/boundary.d.ts +4 -4
  168. package/dist/measurements-C0mAvWU1.d.cts +164 -0
  169. package/dist/measurements-OMpCeBwh.d.ts +164 -0
  170. package/dist/messaging/index.cjs +57 -51
  171. package/dist/messaging/index.cjs.map +1 -1
  172. package/dist/messaging/index.d.cts +11 -276
  173. package/dist/messaging/index.d.ts +11 -276
  174. package/dist/messaging/index.js +1 -1
  175. package/dist/operators/index.cjs +1228 -1076
  176. package/dist/operators/index.cjs.map +1 -1
  177. package/dist/operators/index.d.cts +5 -5
  178. package/dist/operators/index.d.ts +5 -5
  179. package/dist/operators/index.js +5 -5
  180. package/dist/orchestration/index.cjs +8844 -6071
  181. package/dist/orchestration/index.cjs.map +1 -1
  182. package/dist/orchestration/index.d.cts +171 -224
  183. package/dist/orchestration/index.d.ts +171 -224
  184. package/dist/orchestration/index.js +42 -991
  185. package/dist/orchestration/index.js.map +1 -1
  186. package/dist/orchestration/messaging.d.cts +5 -8
  187. package/dist/orchestration/messaging.d.ts +5 -8
  188. package/dist/orchestration/work-queue.cjs +1243 -5
  189. package/dist/orchestration/work-queue.cjs.map +1 -1
  190. package/dist/orchestration/work-queue.d.cts +121 -10
  191. package/dist/orchestration/work-queue.d.ts +121 -10
  192. package/dist/orchestration/work-queue.js +1067 -4
  193. package/dist/orchestration/work-queue.js.map +1 -1
  194. package/dist/patterns/event-flow.cjs +6 -20
  195. package/dist/patterns/event-flow.cjs.map +1 -1
  196. package/dist/patterns/event-flow.d.cts +4 -4
  197. package/dist/patterns/event-flow.d.ts +4 -4
  198. package/dist/patterns/event-flow.js +2 -2
  199. package/dist/patterns/index.cjs +453 -465
  200. package/dist/patterns/index.cjs.map +1 -1
  201. package/dist/patterns/index.d.cts +6 -5
  202. package/dist/patterns/index.d.ts +6 -5
  203. package/dist/patterns/index.js +3 -3
  204. package/dist/process-types-C9uMYz3i.d.ts +200 -0
  205. package/dist/process-types-h3uRlzDc.d.cts +200 -0
  206. package/dist/{reactive-collection-DNV0-gFi.d.cts → reactive-collection-B9R0Bl1P.d.cts} +4 -34
  207. package/dist/{reactive-collection-BAmfrGjd.d.ts → reactive-collection-BXFrH0U2.d.ts} +4 -34
  208. package/dist/{reactive-collection-storage-BNEldDyi.d.cts → reactive-collection-storage-BLGv8Xp8.d.cts} +5 -5
  209. package/dist/{reactive-collection-storage-YZsAQsWK.d.ts → reactive-collection-storage-a4zD3665.d.ts} +5 -5
  210. package/dist/{reactive-map-DRD1LJ2H.d.cts → reactive-map-C_8sOfdS.d.cts} +3 -2
  211. package/dist/{reactive-map-EsDiCmJk.d.ts → reactive-map-jle5dnok.d.ts} +3 -2
  212. package/dist/render/index.d.cts +2 -2
  213. package/dist/render/index.d.ts +2 -2
  214. package/dist/scheduled-readiness-5rwQlyjV.d.ts +91 -0
  215. package/dist/scheduled-readiness-DpRY8jI0.d.cts +91 -0
  216. package/dist/semantic-memory-graph-C2ZUwIlq.d.ts +30 -0
  217. package/dist/semantic-memory-graph-DlZBD_Eu.d.cts +30 -0
  218. package/dist/{semantic-memory-graph-DKuNzuWw.d.cts → semantic-memory-graph-types-BvzdqmkY.d.cts} +2 -28
  219. package/dist/{semantic-memory-graph-uwbwJdhe.d.ts → semantic-memory-graph-types-Ci-OtahO.d.ts} +2 -28
  220. package/dist/solutions/index.cjs +6353 -6169
  221. package/dist/solutions/index.cjs.map +1 -1
  222. package/dist/solutions/index.d.cts +12 -10
  223. package/dist/solutions/index.d.ts +12 -10
  224. package/dist/solutions/index.js +5 -5
  225. package/dist/solutions/reactive-layout/browser/index.cjs +116 -108
  226. package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -1
  227. package/dist/solutions/reactive-layout/browser/index.d.cts +4 -4
  228. package/dist/solutions/reactive-layout/browser/index.d.ts +4 -4
  229. package/dist/solutions/reactive-layout/browser/index.js +3 -3
  230. package/dist/solutions/reactive-layout/index.cjs +3578 -3350
  231. package/dist/solutions/reactive-layout/index.cjs.map +1 -1
  232. package/dist/solutions/reactive-layout/index.d.cts +32 -576
  233. package/dist/solutions/reactive-layout/index.d.ts +32 -576
  234. package/dist/solutions/reactive-layout/index.js +65 -5
  235. package/dist/solutions/reactive-layout/node-canvas/index.cjs +127 -117
  236. package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -1
  237. package/dist/solutions/reactive-layout/node-canvas/index.d.cts +4 -4
  238. package/dist/solutions/reactive-layout/node-canvas/index.d.ts +4 -4
  239. package/dist/solutions/reactive-layout/node-canvas/index.js +3 -3
  240. package/dist/solutions/reactive-layout/react-native/index.cjs +127 -117
  241. package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -1
  242. package/dist/solutions/reactive-layout/react-native/index.d.cts +4 -4
  243. package/dist/solutions/reactive-layout/react-native/index.d.ts +4 -4
  244. package/dist/solutions/reactive-layout/react-native/index.js +3 -3
  245. package/dist/solutions/reactive-layout/skia/index.cjs +127 -117
  246. package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -1
  247. package/dist/solutions/reactive-layout/skia/index.d.cts +4 -4
  248. package/dist/solutions/reactive-layout/skia/index.d.ts +4 -4
  249. package/dist/solutions/reactive-layout/skia/index.js +3 -3
  250. package/dist/solutions/work-item/actions.cjs +1609 -1428
  251. package/dist/solutions/work-item/actions.cjs.map +1 -1
  252. package/dist/solutions/work-item/actions.d.cts +23 -184
  253. package/dist/solutions/work-item/actions.d.ts +23 -184
  254. package/dist/solutions/work-item/actions.js +1558 -934
  255. package/dist/solutions/work-item/actions.js.map +1 -1
  256. package/dist/solutions/work-item/scheduling.cjs +9181 -1838
  257. package/dist/solutions/work-item/scheduling.cjs.map +1 -1
  258. package/dist/solutions/work-item/scheduling.d.cts +1763 -328
  259. package/dist/solutions/work-item/scheduling.d.ts +1763 -328
  260. package/dist/solutions/work-item/scheduling.js +117 -3
  261. package/dist/solutions/work-item/work-queue.d.cts +7 -7
  262. package/dist/solutions/work-item/work-queue.d.ts +7 -7
  263. package/dist/sources/browser.cjs +1318 -1083
  264. package/dist/sources/browser.cjs.map +1 -1
  265. package/dist/sources/browser.d.cts +4 -4
  266. package/dist/sources/browser.d.ts +4 -4
  267. package/dist/sources/browser.js +4 -4
  268. package/dist/sources/index.cjs +1318 -1083
  269. package/dist/sources/index.cjs.map +1 -1
  270. package/dist/sources/index.d.cts +4 -4
  271. package/dist/sources/index.d.ts +4 -4
  272. package/dist/sources/index.js +4 -4
  273. package/dist/sources/node.d.cts +3 -3
  274. package/dist/sources/node.d.ts +3 -3
  275. package/dist/storage/browser.cjs +16 -0
  276. package/dist/storage/browser.cjs.map +1 -1
  277. package/dist/storage/browser.js +3 -3
  278. package/dist/storage/index.cjs +16 -0
  279. package/dist/storage/index.cjs.map +1 -1
  280. package/dist/storage/index.d.cts +5 -4
  281. package/dist/storage/index.d.ts +5 -4
  282. package/dist/storage/index.js +6 -6
  283. package/dist/storage/node.cjs +16 -0
  284. package/dist/storage/node.cjs.map +1 -1
  285. package/dist/storage/node.js +3 -3
  286. package/dist/{store-C-joM4gh.d.ts → store-BmtEs9mG.d.ts} +1 -1
  287. package/dist/{store-CNJwmT-h.d.cts → store-PAAsYvML.d.cts} +1 -1
  288. package/dist/types-BRNKoFHj.d.ts +357 -0
  289. package/dist/{types-CcPIn7sy.d.cts → types-BS6CyR-x.d.cts} +27 -108
  290. package/dist/types-BWK2ay3e.d.cts +457 -0
  291. package/dist/types-BXKSAoE1.d.cts +357 -0
  292. package/dist/types-BaPpZItj.d.ts +457 -0
  293. package/dist/types-BhveCMg5.d.cts +274 -0
  294. package/dist/{types-BsJvElYZ.d.ts → types-C9NOgNJw.d.ts} +27 -108
  295. package/dist/types-CTsQ8Ww4.d.ts +274 -0
  296. package/dist/types-DL_05n2M.d.ts +34 -0
  297. package/dist/types-XDoqxYO9.d.cts +34 -0
  298. package/dist/{work-item-runtime-C3M79vE9.d.ts → work-item-runtime-types-BqtWnSCS.d.ts} +3 -93
  299. package/dist/{work-item-runtime-qaVgsL0T.d.cts → work-item-runtime-types-CHO03AKh.d.cts} +3 -93
  300. package/dist/work-queue/index.cjs +957 -953
  301. package/dist/work-queue/index.cjs.map +1 -1
  302. package/dist/work-queue/index.d.cts +9 -357
  303. package/dist/work-queue/index.d.ts +9 -357
  304. package/dist/work-queue/index.js +957 -953
  305. package/dist/work-queue/index.js.map +1 -1
  306. package/package.json +603 -513
  307. package/dist/chunk-3JR3EDB2.js.map +0 -1
  308. package/dist/chunk-4VLAQHZI.js.map +0 -1
  309. package/dist/chunk-6XAIOL3X.js +0 -2407
  310. package/dist/chunk-6XAIOL3X.js.map +0 -1
  311. package/dist/chunk-FBUU43PM.js.map +0 -1
  312. package/dist/chunk-HKK2JD7Z.js.map +0 -1
  313. package/dist/chunk-PC3BTTBE.js +0 -3217
  314. package/dist/chunk-PC3BTTBE.js.map +0 -1
  315. package/dist/chunk-QFY4AFY4.js.map +0 -1
  316. package/dist/chunk-V7CIJE4B.js.map +0 -1
  317. package/dist/chunk-XKXWK2KP.js.map +0 -1
  318. package/dist/chunk-YDSIVHRR.js.map +0 -1
  319. package/dist/chunk-YXMZ2N6J.js.map +0 -1
  320. /package/dist/{chunk-Z2ANQ6JW.js.map → chunk-4Q77MMJY.js.map} +0 -0
  321. /package/dist/{chunk-IXZBUWSP.js.map → chunk-7HZRJMN6.js.map} +0 -0
  322. /package/dist/{chunk-SS2A464I.js.map → chunk-CJIFGJQG.js.map} +0 -0
  323. /package/dist/{chunk-K3FXTC3I.js.map → chunk-HJACH5PU.js.map} +0 -0
  324. /package/dist/{chunk-GTPCOEOZ.js.map → chunk-IDMLXLLG.js.map} +0 -0
  325. /package/dist/{chunk-DKP56CSW.js.map → chunk-JKAYLDQV.js.map} +0 -0
  326. /package/dist/{chunk-VTHLCFN4.js.map → chunk-RAHNUYA5.js.map} +0 -0
  327. /package/dist/{chunk-CZNV3VXM.js.map → chunk-SIDJO2T4.js.map} +0 -0
  328. /package/dist/{chunk-2747WN4Y.js.map → chunk-TPND5MJS.js.map} +0 -0
  329. /package/dist/{chunk-43BKLFZU.js.map → chunk-YDWBXXQZ.js.map} +0 -0
  330. /package/dist/{chunk-6PHB5CJS.js.map → chunk-ZLFRB6FI.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/solutions/work-item/scheduling.ts","../../../src/protocol/messages.ts","../../../src/ctx/types.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","/**\n * Wave-protocol message types and the tier const table.\n *\n * Canonical authority: ~/src/graphrefly/spec/rules.jsonl\n * R-msg-format, R-msg-closed-set, R-tier (D34), R-data-payload, R-sentinel.\n */\n\n/** Opaque pause-lock / pull identifier (R-pause-lockset, R-pull). */\nexport type LockId = string | symbol;\n\n/** Explicit pull demand payload (D269/D272). Params are holder-visible context, never DATA-up. */\nexport interface PullDemand {\n\treadonly pullId: LockId;\n\treadonly params?: unknown;\n}\n\n/**\n * The CLOSED set of 11 message types (R-msg-closed-set / D9 + D269 + START handshake).\n * No open set, no user-defined custom types. Adding a type is a spec change.\n */\nexport type Message =\n\t| readonly [\"START\"]\n\t| readonly [\"DIRTY\"]\n\t| readonly [\"DATA\", unknown]\n\t| readonly [\"RESOLVED\"]\n\t| readonly [\"INVALIDATE\"]\n\t| readonly [\"COMPLETE\"]\n\t| readonly [\"ERROR\", unknown]\n\t| readonly [\"TEARDOWN\"]\n\t| readonly [\"PAUSE\", LockId]\n\t| readonly [\"RESUME\", LockId]\n\t| readonly [\"PULL\", PullDemand];\n\n/** One array of messages delivered in one call = one Wave (R-wave-boundary). */\nexport type Wave = readonly Message[];\n\n/** The message-type tag (the first tuple element). */\nexport type MessageType = Message[0];\n\n/**\n * SENTINEL = absence-of-DATA (R-sentinel / D16). TS representation is `undefined`.\n * Never a valid DATA payload; `null` IS a valid DATA value (domain-level absence).\n */\nexport const SENTINEL = undefined;\n\n/** R-data-payload: ERROR payloads must not collide with terminal metadata shorthand. */\nexport function isInvalidErrorPayload(v: unknown): boolean {\n\treturn v === SENTINEL || typeof v === \"boolean\";\n}\n\n/** R-data-payload / D78: host-language failures that collide with ctx.terminal shorthand become diagnostics. */\nexport function errorPayload(reason: unknown, fallback = \"error without a valid payload\"): unknown {\n\treturn isInvalidErrorPayload(reason) ? new Error(fallback) : reason;\n}\n\nexport const TIER_START = 0;\nexport const TIER_CONTROL = 1;\nexport const TIER_NOTIFICATION = 2;\nexport const TIER_VALUE = 3;\nexport const TIER_SETTLE = 4;\nexport const TIER_TERMINAL = 5;\nexport const TIER_TEARDOWN = 6;\n\n/**\n * Tier const table (R-tier / D34). Tiers below value dispatch immediately; value\n * and above are batch-deferred. This is a compile-time const table (D18), not runtime config.\n */\nconst TIER: Record<MessageType, number> = {\n\tSTART: TIER_START,\n\tPAUSE: TIER_CONTROL,\n\tRESUME: TIER_CONTROL,\n\tPULL: TIER_CONTROL,\n\tDIRTY: TIER_NOTIFICATION,\n\tDATA: TIER_VALUE,\n\tRESOLVED: TIER_VALUE,\n\tINVALIDATE: TIER_SETTLE,\n\tCOMPLETE: TIER_TERMINAL,\n\tERROR: TIER_TERMINAL,\n\tTEARDOWN: TIER_TEARDOWN,\n};\n\nexport function messageTier(t: MessageType): number {\n\treturn TIER[t];\n}\n\n/** Value and above are deferred inside a batch (DATA/RESOLVED/INVALIDATE/terminal/teardown). */\nexport function isDeferredTier(t: MessageType): boolean {\n\treturn TIER[t] >= TIER_VALUE;\n}\n\n/** Value-tier messages (DATA/RESOLVED) occupy the tier-3 slot. */\nexport function isValueTier(t: MessageType): boolean {\n\treturn TIER[t] === TIER_VALUE;\n}\n\n/** The pause buffer holds the settle slice only: value-tier DATA/RESOLVED plus INVALIDATE. */\nexport function isPauseBufferedTier(t: MessageType): boolean {\n\tconst tier = TIER[t];\n\treturn tier === TIER_VALUE || tier === TIER_SETTLE;\n}\n\n/**\n * A TERMINAL message = tier 5 (COMPLETE | ERROR), R-tier / D34. Detected via the CENTRAL tier\n * table, NOT a per-variant `=== \"COMPLETE\" || === \"ERROR\"` check — so terminal routing stays\n * driven by the one const table (feedback_use_tier_for_signal_routing); discriminate COMPLETE vs\n * ERROR within the tier by the message type only where the handling actually differs.\n */\nexport function isTerminal(t: MessageType): boolean {\n\treturn TIER[t] === TIER_TERMINAL;\n}\n\n/**\n * ctx.up carries control/demand tiers only (R-ctx-up / D269): DIRTY, PAUSE, RESUME, PULL,\n * INVALIDATE, TEARDOWN. DATA/RESOLVED (tier 3) and COMPLETE/ERROR (tier 5) are\n * down-only.\n */\nexport function isUpAllowed(t: MessageType): boolean {\n\tconst tier = TIER[t];\n\treturn tier !== TIER_VALUE && tier !== TIER_TERMINAL;\n}\n","/**\n * The fn-invocation context and per-dep input shapes.\n *\n * Canonical authority: ~/src/graphrefly/spec/rules.jsonl\n * R-fn-contract (D8/D27), R-ctx-state (D23/D29), R-cleanup-hooks (D28), R-ctx-up.\n */\n\nimport type { Dispatcher } from \"../dispatcher/index.js\";\nimport type { EnvironmentDrivers } from \"../graph/environment.js\";\nimport type { Node } from \"../node/node.js\";\nimport { type Message, type PullDemand, SENTINEL, type Wave } from \"../protocol/messages.js\";\n\n/** A downstream sink callback (the only way to connect to a node's output). */\nexport type Sink = (msg: Message, delivery?: DeliveryMeta) => void;\n\n/** Internal delivery metadata used to preserve the upstream `ctx.down(msgs)` wave boundary. */\nexport interface DeliveryMeta {\n\treadonly wave: object;\n\treadonly last: boolean;\n}\n\n/**\n * Internal current-value reader. It is deliberately a symbol-backed implementation detail:\n * raw ctx exposes `waveData` + `terminal`; helpers below derive from that plus this dep cache.\n */\nexport const CTX_DEP_CACHE: unique symbol = Symbol(\"graphrefly.ctx.depCache\");\n\nexport interface CtxDepCache {\n\treadonly latest: readonly unknown[];\n}\n\n/** Internal node-construction binding for graph-local helper-created deps. */\nexport const CTX_NODE_BINDING: unique symbol = Symbol(\"graphrefly.ctx.nodeBinding\");\n\nexport interface CtxNodeBinding {\n\treadonly dispatcher: Dispatcher;\n\tcreate<T>(factory: () => Node<T>): Node<T>;\n}\n\n/** Per-dep wave projections: dep -> waves -> values/SENTINEL markers. */\nexport type WaveData = readonly (readonly (readonly unknown[])[])[];\n\n/** Terminal metadata parallel to `waveData`: false = none, true = COMPLETE, otherwise ERROR payload. */\nexport type TerminalData = readonly unknown[];\n\nexport function isTerminalNone(t: unknown): boolean {\n\treturn t === false || t === undefined;\n}\n\nexport function isTerminalComplete(t: unknown): t is true {\n\treturn t === true;\n}\n\nexport function isTerminalError(t: unknown): boolean {\n\treturn !isTerminalNone(t) && !isTerminalComplete(t);\n}\n\nexport function terminalErrorValue(t: unknown): unknown {\n\treturn isTerminalError(t) ? t : undefined;\n}\n\n/**\n * Per-node private cross-wave state (R-ctx-state / D23,D29). Default fresh-lifecycle\n * wipe; `persist(true)` keeps it across lifecycle transitions.\n */\nexport interface CtxState {\n\tget<S = unknown>(): S | undefined;\n\tset<S = unknown>(v: S): void;\n\tpersist(on?: boolean): void;\n}\n\n/**\n * Deferred SELF-rewire (R-rewire-deferred / D47). A node fn may, DURING its run, request a\n * mutation of its OWN dep set; the request is QUEUED and applied at the committed wave boundary\n * (after the current wave settles / batch commit / final-lock RESUME) as a fresh wave, reusing\n * R-rewire surgical/Option-C semantics (D42). This is the ONLY legal self-triggered rewire — an\n * IMMEDIATE in-fn `node.subscribeDep/unsubscribeDep/replaceDeps` is the D37 mid-fn feedback-cycle ERROR. An\n * added cached dep pushes `[DIRTY,DATA]` on the boundary wave (R-push-subscribe); a removed dep\n * is drained and, if it loses its last subscriber, `_deactivate`s + fires `onDeactivation`\n * (input-side teardown — the basis for higher-order operator cancellation / abortInFlight).\n */\nexport interface RewireNext {\n\t/** Defer subscribing to a dep (paired with the re-supplied fn — positional fn-deps lock, SD-1). */\n\tsubscribeDep(dep: Node<unknown>, fn: NodeFn): void;\n\t/** Defer unsubscribing from a dep (its source is torn down if it loses its last subscriber). */\n\tunsubscribeDep(dep: Node<unknown>, fn: NodeFn): void;\n\t/** Defer replacing the whole dep set (surgical: kept deps untouched, removed drained, added fresh-subscribe). */\n\treplaceDeps(deps: Node<unknown>[], fn: NodeFn): void;\n}\n\n/**\n * The single argument to a node fn: `(ctx) => void` (R-fn-contract / D8). All emission\n * is explicit via `ctx.down`; there is no return-value framing.\n */\nexport interface Ctx {\n\t/**\n\t * Emit upstream toward deps — control tiers only (R-ctx-up). IMMEDIATE. `towardDep` (a dep index)\n\t * routes the wave up ONE declared edge (R-up-routing directed-up); omitted = broadcast up all deps.\n\t * A pull DEMAND is `up([[PULL, { pullId, params }]])` — but for a SELF-demand (demanding a dep\n\t * this fn also reads) use {@link Ctx.upNext} instead, since an immediate demand whose delivery loops back\n\t * re-enters this fn mid-wave (D37 / R-reentrancy).\n\t */\n\tup(msgs: Wave, towardDep?: number): void;\n\t/** Emit downstream toward sinks. */\n\tdown(msgs: Wave): void;\n\t/**\n\t * The single raw dep-value input surface (R-ctx-wave-data / D77): dep -> upstream waves ->\n\t * per-wave DATA payloads and INVALIDATE/SENTINEL markers. `waveData[i] = []` means dep i\n\t * delivered no wave to this invocation; `waveData[i] = [[]]` means RESOLVED-only.\n\t */\n\twaveData: WaveData;\n\t/** Terminal metadata for the same invocation; terminal values never enter `waveData`. */\n\tterminal: TerminalData;\n\tstate: CtxState;\n\t/** Release external resources on deactivation (R-cleanup-hooks). */\n\tonDeactivation(fn: () => void): void;\n\t/** Flush on INVALIDATE (R-cleanup-hooks). */\n\tonInvalidate(fn: () => void): void;\n\t/** Graph-owned environment drivers for source/adapter boundaries (D130/D131). */\n\tenvironment(): EnvironmentDrivers;\n\t/** Holder-visible context for a PULL-caused invocation (D272); absent for ordinary waves. */\n\treadonly pull?: PullDemand;\n\t/**\n\t * Deferred SELF-rewire (R-rewire-deferred / D47) — the substrate affordance higher-order\n\t * operators (switchMap/mergeMap/concatMap/exhaustMap/flatMap) use to grow/shrink their own\n\t * inner-source dep set in response to their own data. Always present; see {@link RewireNext}.\n\t */\n\trewireNext: RewireNext;\n\t/**\n\t * Deferred up — the boundary-deferred form of {@link Ctx.up} (R-up-routing / R-pull / D59). Routes\n\t * `msgs` up from this node at the COMMITTED wave boundary (broadcast, or up the single `towardDep`\n\t * edge), riding the same R-rewire-deferred (D47) drain as {@link RewireNext}. This is the\n\t * SELF-DEMAND path: a consumer issues `ctx.upNext([[PULL, { pullId, params }]])` to demand a pull\n\t * dep it ALSO reads — the cone-routed PULL reaches the pullId-holder, whose delivery loops back as a\n\t * FRESH wave (not a mid-fn re-entry → no D37). The consumer accepts one-wave latency (the\n\t * HTTP-request model). No node reference needed: the author writes the pullId verbatim.\n\t */\n\tupNext(msgs: Wave, towardDep?: number): void;\n\t/**\n\t * Read a dep's latest value by index (dynamicNode only, R-dynamic-node / D35).\n\t * Present only on dynamicNode fns; all declared deps still participate in wave\n\t * tracking. Under D49/R-resolved-undirty an unread dep's change still fires the fn,\n\t * which re-emits its (unchanged) output as a DATA occurrence — there is NO equals-\n\t * absorption; pair with distinctUntilChanged to suppress unchanged re-emits (opt-in).\n\t */\n\ttrack?(depIndex: number): unknown;\n\t[CTX_DEP_CACHE]?: CtxDepCache;\n\t[CTX_NODE_BINDING]?: CtxNodeBinding;\n}\n\n/** A node fn (R-fn-contract). Registered in a dispatcher pool, indexed by Handle. */\nexport type NodeFn = (ctx: Ctx) => void;\n\n/** Number of declared dep slots visible in this invocation. */\nexport function depCount(ctx: Ctx): number {\n\treturn ctx.waveData.length;\n}\n\n/** DATA/SENTINEL projection batches delivered by one dep in this invocation. */\nexport function depWaves(ctx: Ctx, depIndex: number): readonly (readonly unknown[])[] {\n\treturn ctx.waveData[depIndex] ?? [];\n}\n\n/** Flattened DATA projection for old event-counting operator bodies; null = no wave. */\nexport function depBatch(ctx: Ctx, depIndex: number): readonly unknown[] | null {\n\tconst waves = depWaves(ctx, depIndex);\n\tif (waves.length === 0) return null;\n\tconst flattened = waves.flat().filter((v) => v !== SENTINEL);\n\treturn flattened.length === 0 ? [] : flattened;\n}\n\n/** Latest cached DATA for a dep, derived from implementation-owned dep cache. */\nexport function depLatest(ctx: Ctx, depIndex: number): unknown {\n\treturn ctx[CTX_DEP_CACHE]?.latest[depIndex];\n}\n\n/** Terminal metadata for one dep: false = none, true = COMPLETE, otherwise ERROR payload. */\nexport function depTerminal(ctx: Ctx, depIndex: number): unknown {\n\tconst t = ctx.terminal[depIndex];\n\treturn t === undefined ? false : t;\n}\n"],"mappings":"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","names":["issues","refs"]}
1
+ {"version":3,"sources":["../../../src/solutions/work-item/scheduling.ts","../../../src/protocol/messages.ts","../../../src/ctx/types.ts","../../../src/solutions/work-item/scheduling-shared.ts","../../../src/solutions/work-item/scheduling-types.ts","../../../src/solutions/work-item/scheduling-validation.ts","../../../src/solutions/work-item/scheduling-authoring.ts","../../../src/solutions/work-item/scheduling-constructors.ts","../../../src/solutions/work-item/scheduling-effect-plan-helpers.ts","../../../src/solutions/work-item/scheduling-effect-plan-validation.ts","../../../src/solutions/work-item/scheduling-effect-plan.ts","../../../src/solutions/work-item/scheduling-verification.ts","../../../src/solutions/work-item/workspace-proposals.ts","../../../src/solutions/work-item/workspace-family-applications.ts","../../../src/solutions/work-item/workspace-model.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\nexport * from \"./scheduling-authoring.js\";\nexport * from \"./scheduling-constructors.js\";\nexport * from \"./scheduling-effect-plan.js\";\nexport * from \"./scheduling-effect-plan-validation.js\";\nexport * from \"./scheduling-types.js\";\nexport * from \"./scheduling-validation.js\";\nexport * from \"./scheduling-verification.js\";\nexport * from \"./workspace-family-applications.js\";\nexport * from \"./workspace-model.js\";\nexport * from \"./workspace-proposals.js\";\n","/**\n * Wave-protocol message types and the tier const table.\n *\n * Canonical authority: ~/src/graphrefly/spec/rules.jsonl\n * R-msg-format, R-msg-closed-set, R-tier (D34), R-data-payload, R-sentinel.\n */\n\n/** Opaque pause-lock / pull identifier (R-pause-lockset, R-pull). */\nexport type LockId = string | symbol;\n\n/** Explicit pull demand payload (D269/D272). Params are holder-visible context, never DATA-up. */\nexport interface PullDemand {\n\treadonly pullId: LockId;\n\treadonly params?: unknown;\n}\n\n/**\n * The CLOSED set of 11 message types (R-msg-closed-set / D9 + D269 + START handshake).\n * No open set, no user-defined custom types. Adding a type is a spec change.\n */\nexport type Message =\n\t| readonly [\"START\"]\n\t| readonly [\"DIRTY\"]\n\t| readonly [\"DATA\", unknown]\n\t| readonly [\"RESOLVED\"]\n\t| readonly [\"INVALIDATE\"]\n\t| readonly [\"COMPLETE\"]\n\t| readonly [\"ERROR\", unknown]\n\t| readonly [\"TEARDOWN\"]\n\t| readonly [\"PAUSE\", LockId]\n\t| readonly [\"RESUME\", LockId]\n\t| readonly [\"PULL\", PullDemand];\n\n/** One array of messages delivered in one call = one Wave (R-wave-boundary). */\nexport type Wave = readonly Message[];\n\n/** The message-type tag (the first tuple element). */\nexport type MessageType = Message[0];\n\n/**\n * SENTINEL = absence-of-DATA (R-sentinel / D16). TS representation is `undefined`.\n * Never a valid DATA payload; `null` IS a valid DATA value (domain-level absence).\n */\nexport const SENTINEL = undefined;\n\n/** R-data-payload: ERROR payloads must not collide with terminal metadata shorthand. */\nexport function isInvalidErrorPayload(v: unknown): boolean {\n\treturn v === SENTINEL || typeof v === \"boolean\";\n}\n\n/** R-data-payload / D78: host-language failures that collide with ctx.terminal shorthand become diagnostics. */\nexport function errorPayload(reason: unknown, fallback = \"error without a valid payload\"): unknown {\n\treturn isInvalidErrorPayload(reason) ? new Error(fallback) : reason;\n}\n\nexport const TIER_START = 0;\nexport const TIER_CONTROL = 1;\nexport const TIER_NOTIFICATION = 2;\nexport const TIER_VALUE = 3;\nexport const TIER_SETTLE = 4;\nexport const TIER_TERMINAL = 5;\nexport const TIER_TEARDOWN = 6;\n\n/**\n * Tier const table (R-tier / D34). Tiers below value dispatch immediately; value\n * and above are batch-deferred. This is a compile-time const table (D18), not runtime config.\n */\nconst TIER: Record<MessageType, number> = {\n\tSTART: TIER_START,\n\tPAUSE: TIER_CONTROL,\n\tRESUME: TIER_CONTROL,\n\tPULL: TIER_CONTROL,\n\tDIRTY: TIER_NOTIFICATION,\n\tDATA: TIER_VALUE,\n\tRESOLVED: TIER_VALUE,\n\tINVALIDATE: TIER_SETTLE,\n\tCOMPLETE: TIER_TERMINAL,\n\tERROR: TIER_TERMINAL,\n\tTEARDOWN: TIER_TEARDOWN,\n};\n\nexport function messageTier(t: MessageType): number {\n\treturn TIER[t];\n}\n\n/** Value and above are deferred inside a batch (DATA/RESOLVED/INVALIDATE/terminal/teardown). */\nexport function isDeferredTier(t: MessageType): boolean {\n\treturn TIER[t] >= TIER_VALUE;\n}\n\n/** Value-tier messages (DATA/RESOLVED) occupy the tier-3 slot. */\nexport function isValueTier(t: MessageType): boolean {\n\treturn TIER[t] === TIER_VALUE;\n}\n\n/** The pause buffer holds the settle slice only: value-tier DATA/RESOLVED plus INVALIDATE. */\nexport function isPauseBufferedTier(t: MessageType): boolean {\n\tconst tier = TIER[t];\n\treturn tier === TIER_VALUE || tier === TIER_SETTLE;\n}\n\n/**\n * A TERMINAL message = tier 5 (COMPLETE | ERROR), R-tier / D34. Detected via the CENTRAL tier\n * table, NOT a per-variant `=== \"COMPLETE\" || === \"ERROR\"` check — so terminal routing stays\n * driven by the one const table (feedback_use_tier_for_signal_routing); discriminate COMPLETE vs\n * ERROR within the tier by the message type only where the handling actually differs.\n */\nexport function isTerminal(t: MessageType): boolean {\n\treturn TIER[t] === TIER_TERMINAL;\n}\n\n/**\n * ctx.up carries control/demand tiers only (R-ctx-up / D269): DIRTY, PAUSE, RESUME, PULL,\n * INVALIDATE, TEARDOWN. DATA/RESOLVED (tier 3) and COMPLETE/ERROR (tier 5) are\n * down-only.\n */\nexport function isUpAllowed(t: MessageType): boolean {\n\tconst tier = TIER[t];\n\treturn tier !== TIER_VALUE && tier !== TIER_TERMINAL;\n}\n","/**\n * The fn-invocation context and per-dep input shapes.\n *\n * Canonical authority: ~/src/graphrefly/spec/rules.jsonl\n * R-fn-contract (D8/D27), R-ctx-state (D23/D29), R-cleanup-hooks (D28), R-ctx-up.\n */\n\nimport type { Dispatcher } from \"../dispatcher/index.js\";\nimport type { EnvironmentDrivers } from \"../graph/environment.js\";\nimport type { Node } from \"../node/node.js\";\nimport { type Message, type PullDemand, SENTINEL, type Wave } from \"../protocol/messages.js\";\n\n/** A downstream sink callback (the only way to connect to a node's output). */\nexport type Sink = (msg: Message, delivery?: DeliveryMeta) => void;\n\n/** Internal delivery metadata used to preserve the upstream `ctx.down(msgs)` wave boundary. */\nexport interface DeliveryMeta {\n\treadonly wave: object;\n\treadonly last: boolean;\n}\n\n/**\n * Internal current-value reader. It is deliberately a symbol-backed implementation detail:\n * raw ctx exposes `waveData` + `terminal`; helpers below derive from that plus this dep cache.\n */\nexport const CTX_DEP_CACHE: unique symbol = Symbol(\"graphrefly.ctx.depCache\");\n\nexport interface CtxDepCache {\n\treadonly latest: readonly unknown[];\n}\n\n/** Internal node-construction binding for graph-local helper-created deps. */\nexport const CTX_NODE_BINDING: unique symbol = Symbol(\"graphrefly.ctx.nodeBinding\");\n\nexport interface CtxNodeBinding {\n\treadonly dispatcher: Dispatcher;\n\tcreate<T>(factory: () => Node<T>): Node<T>;\n}\n\n/** Per-dep wave projections: dep -> waves -> values/SENTINEL markers. */\nexport type WaveData = readonly (readonly (readonly unknown[])[])[];\n\n/** Terminal metadata parallel to `waveData`: false = none, true = COMPLETE, otherwise ERROR payload. */\nexport type TerminalData = readonly unknown[];\n\nexport function isTerminalNone(t: unknown): boolean {\n\treturn t === false || t === undefined;\n}\n\nexport function isTerminalComplete(t: unknown): t is true {\n\treturn t === true;\n}\n\nexport function isTerminalError(t: unknown): boolean {\n\treturn !isTerminalNone(t) && !isTerminalComplete(t);\n}\n\nexport function terminalErrorValue(t: unknown): unknown {\n\treturn isTerminalError(t) ? t : undefined;\n}\n\n/**\n * Per-node private cross-wave state (R-ctx-state / D23,D29). Default fresh-lifecycle\n * wipe; `persist(true)` keeps it across lifecycle transitions.\n */\nexport interface CtxState {\n\tget<S = unknown>(): S | undefined;\n\tset<S = unknown>(v: S): void;\n\tpersist(on?: boolean): void;\n}\n\n/**\n * Deferred SELF-rewire (R-rewire-deferred / D47). A node fn may, DURING its run, request a\n * mutation of its OWN dep set; the request is QUEUED and applied at the committed wave boundary\n * (after the current wave settles / batch commit / final-lock RESUME) as a fresh wave, reusing\n * R-rewire surgical/Option-C semantics (D42). This is the ONLY legal self-triggered rewire — an\n * IMMEDIATE in-fn `node.subscribeDep/unsubscribeDep/replaceDeps` is the D37 mid-fn feedback-cycle ERROR. An\n * added cached dep pushes `[DIRTY,DATA]` on the boundary wave (R-push-subscribe); a removed dep\n * is drained and, if it loses its last subscriber, `_deactivate`s + fires `onDeactivation`\n * (input-side teardown — the basis for higher-order operator cancellation / abortInFlight).\n */\nexport interface RewireNext {\n\t/** Defer subscribing to a dep (paired with the re-supplied fn — positional fn-deps lock, SD-1). */\n\tsubscribeDep(dep: Node<unknown>, fn: NodeFn): void;\n\t/** Defer unsubscribing from a dep (its source is torn down if it loses its last subscriber). */\n\tunsubscribeDep(dep: Node<unknown>, fn: NodeFn): void;\n\t/** Defer replacing the whole dep set (surgical: kept deps untouched, removed drained, added fresh-subscribe). */\n\treplaceDeps(deps: Node<unknown>[], fn: NodeFn): void;\n}\n\n/**\n * The single argument to a node fn: `(ctx) => void` (R-fn-contract / D8). All emission\n * is explicit via `ctx.down`; there is no return-value framing.\n */\nexport interface Ctx {\n\t/**\n\t * Emit upstream toward deps — control tiers only (R-ctx-up). IMMEDIATE. `towardDep` (a dep index)\n\t * routes the wave up ONE declared edge (R-up-routing directed-up); omitted = broadcast up all deps.\n\t * A pull DEMAND is `up([[PULL, { pullId, params }]])` — but for a SELF-demand (demanding a dep\n\t * this fn also reads) use {@link Ctx.upNext} instead, since an immediate demand whose delivery loops back\n\t * re-enters this fn mid-wave (D37 / R-reentrancy).\n\t */\n\tup(msgs: Wave, towardDep?: number): void;\n\t/** Emit downstream toward sinks. */\n\tdown(msgs: Wave): void;\n\t/**\n\t * The single raw dep-value input surface (R-ctx-wave-data / D77): dep -> upstream waves ->\n\t * per-wave DATA payloads and INVALIDATE/SENTINEL markers. `waveData[i] = []` means dep i\n\t * delivered no wave to this invocation; `waveData[i] = [[]]` means RESOLVED-only.\n\t */\n\twaveData: WaveData;\n\t/** Terminal metadata for the same invocation; terminal values never enter `waveData`. */\n\tterminal: TerminalData;\n\tstate: CtxState;\n\t/** Release external resources on deactivation (R-cleanup-hooks). */\n\tonDeactivation(fn: () => void): void;\n\t/** Flush on INVALIDATE (R-cleanup-hooks). */\n\tonInvalidate(fn: () => void): void;\n\t/** Graph-owned environment drivers for source/adapter boundaries (D130/D131). */\n\tenvironment(): EnvironmentDrivers;\n\t/** Holder-visible context for a PULL-caused invocation (D272); absent for ordinary waves. */\n\treadonly pull?: PullDemand;\n\t/**\n\t * Deferred SELF-rewire (R-rewire-deferred / D47) — the substrate affordance higher-order\n\t * operators (switchMap/mergeMap/concatMap/exhaustMap/flatMap) use to grow/shrink their own\n\t * inner-source dep set in response to their own data. Always present; see {@link RewireNext}.\n\t */\n\trewireNext: RewireNext;\n\t/**\n\t * Deferred up — the boundary-deferred form of {@link Ctx.up} (R-up-routing / R-pull / D59). Routes\n\t * `msgs` up from this node at the COMMITTED wave boundary (broadcast, or up the single `towardDep`\n\t * edge), riding the same R-rewire-deferred (D47) drain as {@link RewireNext}. This is the\n\t * SELF-DEMAND path: a consumer issues `ctx.upNext([[PULL, { pullId, params }]])` to demand a pull\n\t * dep it ALSO reads — the cone-routed PULL reaches the pullId-holder, whose delivery loops back as a\n\t * FRESH wave (not a mid-fn re-entry → no D37). The consumer accepts one-wave latency (the\n\t * HTTP-request model). No node reference needed: the author writes the pullId verbatim.\n\t */\n\tupNext(msgs: Wave, towardDep?: number): void;\n\t/**\n\t * Read a dep's latest value by index (dynamicNode only, R-dynamic-node / D35).\n\t * Present only on dynamicNode fns; all declared deps still participate in wave\n\t * tracking. Under D49/R-resolved-undirty an unread dep's change still fires the fn,\n\t * which re-emits its (unchanged) output as a DATA occurrence — there is NO equals-\n\t * absorption; pair with distinctUntilChanged to suppress unchanged re-emits (opt-in).\n\t */\n\ttrack?(depIndex: number): unknown;\n\t[CTX_DEP_CACHE]?: CtxDepCache;\n\t[CTX_NODE_BINDING]?: CtxNodeBinding;\n}\n\n/** A node fn (R-fn-contract). Registered in a dispatcher pool, indexed by Handle. */\nexport type NodeFn = (ctx: Ctx) => void;\n\n/** Number of declared dep slots visible in this invocation. */\nexport function depCount(ctx: Ctx): number {\n\treturn ctx.waveData.length;\n}\n\n/** DATA/SENTINEL projection batches delivered by one dep in this invocation. */\nexport function depWaves(ctx: Ctx, depIndex: number): readonly (readonly unknown[])[] {\n\treturn ctx.waveData[depIndex] ?? [];\n}\n\n/** Flattened DATA projection for old event-counting operator bodies; null = no wave. */\nexport function depBatch(ctx: Ctx, depIndex: number): readonly unknown[] | null {\n\tconst waves = depWaves(ctx, depIndex);\n\tif (waves.length === 0) return null;\n\tconst flattened = waves.flat().filter((v) => v !== SENTINEL);\n\treturn flattened.length === 0 ? [] : flattened;\n}\n\n/** Latest cached DATA for a dep, derived from implementation-owned dep cache. */\nexport function depLatest(ctx: Ctx, depIndex: number): unknown {\n\treturn ctx[CTX_DEP_CACHE]?.latest[depIndex];\n}\n\n/** Terminal metadata for one dep: false = none, true = COMPLETE, otherwise ERROR payload. */\nexport function depTerminal(ctx: Ctx, depIndex: number): unknown {\n\tconst t = ctx.terminal[depIndex];\n\treturn t === undefined ? false : t;\n}\n","import { type Ctx, depBatch } from \"../../ctx/types.js\";\nimport type { DataIssue } from \"../../data/index.js\";\nimport type { Graph } from \"../../graph/graph.js\";\nimport type { Node } from \"../../node/node.js\";\nimport type { EffectRunGoal, SourceRef } from \"../../orchestration/agent-runtime.js\";\nimport type {\n\tFact,\n\tVerificationPlan,\n\tVerificationStep,\n\tWorkItemDraft,\n\tWorkItemValidationIssueCode,\n\tWorkItemValidationStatus,\n} from \"./scheduling-types.js\";\n\nexport function 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\nexport function 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\nexport function 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\nexport function 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\nexport function 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\nexport function isVerificationPlanShape(value: unknown): value is VerificationPlan {\n\treturn isRecord(value) && typeof value.planId === \"string\" && Array.isArray(value.steps);\n}\n\nexport function 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\nexport function 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\nexport function 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\nexport function sourceRefId(\n\trefs: readonly SourceRef[] | undefined,\n\tkind: string,\n): string | undefined {\n\treturn refs?.find((sourceRef) => sourceRef.kind === kind)?.id;\n}\n\nexport function 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\nexport function 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\nexport function refs(kind: string, id: string, rest?: readonly SourceRef[]): readonly SourceRef[] {\n\treturn [ref(kind, id), ...(rest ?? [])];\n}\n\nexport function ref(kind: string, id: string): SourceRef {\n\treturn { kind, id };\n}\n\nexport function 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\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n\treturn value !== null && typeof value === \"object\";\n}\n","import type { DataIssue } from \"../../data/index.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 proposedWorkItemId?: string;\n\treadonly parentWorkItemId?: string;\n\treadonly draft: WorkItemDraft<TInput>;\n\treadonly proposedBy?: string;\n\treadonly idempotencyKey?: 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\nexport type 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\nexport type 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\nexport interface AuthoringState<T> {\n\treadonly workItems: Map<string, WorkItemProjection<T>>;\n\treadonly seenEvents: Set<string>;\n\tstatusSeq: number;\n\tauditSeq: number;\n}\n\nexport interface 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\nexport interface 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\nexport interface 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\nexport interface 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\nexport const executionRelevantDefaults = new Set([\n\t\"detail\",\n\t\"detailRefs\",\n\t\"acceptanceCriteria\",\n\t\"verificationPlan\",\n\t\"verificationSteps\",\n\t\"dependencies\",\n]);\n\nexport const 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","import type { DataIssue } from \"../../data/index.js\";\nimport {\n\tisRecord,\n\tissue,\n\tisVerificationPlanShape,\n\tnormalizePlanFromUnknown,\n} from \"./scheduling-shared.js\";\nimport type {\n\tAcceptanceCriterion,\n\tVerificationPlan,\n\tVerificationStep,\n\tVerificationStepMode,\n\tWorkItemDraft,\n} from \"./scheduling-types.js\";\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\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","import { type Ctx, depBatch } from \"../../ctx/types.js\";\nimport type { DataIssue } from \"../../data/index.js\";\nimport type { Graph } from \"../../graph/graph.js\";\nimport {\n\temit,\n\temitAudit,\n\tisRecord,\n\tissue,\n\tnormalizePlan,\n\tproject,\n\trefs,\n} from \"./scheduling-shared.js\";\nimport type {\n\tAuthoringState,\n\tFact,\n\tWorkItemAuthoringInput,\n\tWorkItemAuthoringPolicy,\n\tWorkItemAuthoringProjectorBundle,\n\tWorkItemAuthoringProjectorOptions,\n\tWorkItemDraft,\n\tWorkItemPatch,\n\tWorkItemProjection,\n\tWorkItemValidationIssueCode,\n\tWorkItemValidationStatus,\n} from \"./scheduling-types.js\";\nimport { draftPatchKeys, executionRelevantDefaults } from \"./scheduling-types.js\";\nimport {\n\tvalidateAcceptanceCriteria,\n\tvalidateVerificationPlan,\n\tvalidateWorkItemDraft,\n} from \"./scheduling-validation.js\";\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\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 statusWorkItemId = input.proposedWorkItemId ?? input.parentWorkItemId;\n\t\tconst issues = validateWorkItemDraft(input.draft, { workItemId: statusWorkItemId });\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: statusWorkItemId,\n\t\t\t\tmessage: issues[0]?.message,\n\t\t\t\tmetadata: {\n\t\t\t\t\tproposalId: input.proposalId,\n\t\t\t\t\tparentWorkItemId: input.parentWorkItemId,\n\t\t\t\t\tidempotencyKey: input.idempotencyKey,\n\t\t\t\t},\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: statusWorkItemId,\n\t\t\tmessage: `WorkItem spawn proposal '${input.proposalId}' carries draft data but is not applied`,\n\t\t\tmetadata: {\n\t\t\t\tproposalId: input.proposalId,\n\t\t\t\tparentWorkItemId: input.parentWorkItemId,\n\t\t\t\tidempotencyKey: input.idempotencyKey,\n\t\t\t},\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 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 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 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 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","import type {\n\tAcceptanceCriteriaChanged,\n\tAcceptanceCriterion,\n\tVerificationPlan,\n\tVerificationPlanChanged,\n\tWorkItemCreated,\n\tWorkItemDraft,\n\tWorkItemSpawnProposed,\n} from \"./scheduling-types.js\";\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\tproposedWorkItemId: opts.proposedWorkItemId,\n\t\tparentWorkItemId: opts.parentWorkItemId,\n\t\tproposedBy: opts.proposedBy,\n\t\tidempotencyKey: opts.idempotencyKey,\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","import type { WorkItemEffectRequested } from \"../../orchestration/work-item-runtime.js\";\nimport { immutableClone, ref } from \"./scheduling-shared.js\";\nimport type {\n\tPlanState,\n\tWorkItemEffectPlanAdmitted,\n\tWorkItemEffectPlanMember,\n\tWorkItemEffectPlanPolicy,\n\tWorkItemEffectPlanProposed,\n\tWorkItemEffectPlanSnapshot,\n} from \"./scheduling-types.js\";\n\nexport function 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\nexport function 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\nexport function 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\nexport function 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\nexport function memberCoord<T>(admitted: WorkItemEffectPlanAdmitted<T>, memberId: string): string {\n\treturn `${admitted.workItemId}:${admitted.executionInputRevision}:${admitted.planId}:${memberId}`;\n}\n\nexport function 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\nexport function requiredPlanKey(\n\tworkItemId: string,\n\tplanId: string,\n\texecutionInputRevision: number,\n): string {\n\treturn `${workItemId}:${executionInputRevision}:${planId}`;\n}\n","import type { DataIssue } from \"../../data/index.js\";\nimport { isRecord, issue } from \"./scheduling-shared.js\";\nimport type {\n\tWorkItemEffectPlanJoinPolicy,\n\tWorkItemEffectPlanMember,\n\tWorkItemEffectPlanPolicy,\n\tWorkItemEffectPlanProposed,\n\tWorkItemProjection,\n} from \"./scheduling-types.js\";\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\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","import { type Ctx, depBatch } from \"../../ctx/types.js\";\nimport type { DataIssue } from \"../../data/index.js\";\nimport type { Graph } from \"../../graph/graph.js\";\nimport type { Node } from \"../../node/node.js\";\nimport type { EffectRunResult } from \"../../orchestration/agent-runtime.js\";\nimport type {\n\tWorkItemEffectRequested,\n\tWorkItemEvidenceRecorded,\n} from \"../../orchestration/work-item-runtime.js\";\nimport {\n\tmemberBlockedByFailure,\n\tmemberCoord,\n\tmemberSucceeded,\n\tnormalizeEffectPlanSnapshot,\n\tplanKey,\n\trequestFromPlanMember,\n\trequiredPlanKey,\n} from \"./scheduling-effect-plan-helpers.js\";\nimport { validateWorkItemEffectPlan } from \"./scheduling-effect-plan-validation.js\";\nimport {\n\timmutableClone,\n\tisRecord,\n\tissue,\n\tnumberMetadata,\n\tproject,\n\tsourceRefId,\n\tstringMetadata,\n} from \"./scheduling-shared.js\";\nimport type {\n\tPlanFact,\n\tPlanMemberEvidence,\n\tPlanState,\n\tWorkItemEffectPlanAdmitted,\n\tWorkItemEffectPlanPolicy,\n\tWorkItemEffectPlanProjectorBundle,\n\tWorkItemEffectPlanProjectorOptions,\n\tWorkItemEffectPlanProposed,\n\tWorkItemEffectPlanRejected,\n\tWorkItemEffectPlanResult,\n\tWorkItemEffectPlanResultStatus,\n\tWorkItemEffectPlanStatus,\n\tWorkItemProjection,\n} from \"./scheduling-types.js\";\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 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","import { type Ctx, depBatch } from \"../../ctx/types.js\";\nimport type { DataIssue } from \"../../data/index.js\";\nimport type { Graph } from \"../../graph/graph.js\";\nimport type { Node } from \"../../node/node.js\";\nimport type { EffectRunResultStatus } from \"../../orchestration/agent-runtime.js\";\nimport type {\n\tWorkItemDomainActionProposalSpec,\n\tWorkItemEffectRequested,\n\tWorkItemEvidenceRecorded,\n} from \"../../orchestration/work-item-runtime.js\";\nimport {\n\temit,\n\temitAudit,\n\tgoalWithInlineInput,\n\tisRecord,\n\tissue,\n\tnormalizePlan,\n\tproject,\n\tref,\n\tstringArray,\n} from \"./scheduling-shared.js\";\nimport type {\n\tFact,\n\tRequestState,\n\tResultState,\n\tVerificationPlan,\n\tVerificationResultRecorded,\n\tVerificationResultStatus,\n\tVerificationStep,\n\tWorkItemDispatchIntent,\n\tWorkItemProjection,\n\tWorkItemValidationIssueCode,\n\tWorkItemValidationStatus,\n\tWorkItemVerificationLowererPolicy,\n\tWorkItemVerificationMappingPolicy,\n\tWorkItemVerificationRequestLowererBundle,\n\tWorkItemVerificationRequestLowererOptions,\n\tWorkItemVerificationResultMapperBundle,\n\tWorkItemVerificationResultMapperOptions,\n} from \"./scheduling-types.js\";\nimport { validateVerificationPlan } from \"./scheduling-validation.js\";\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\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 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 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 _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 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 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 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 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","import type { DataIssue } from \"../../data/index.js\";\nimport type { SourceRef } from \"../../orchestration/agent-runtime.js\";\nimport { immutableClone } from \"./scheduling-shared.js\";\n\nexport type WorkspaceProposalFamily =\n\t| \"required-input-response\"\n\t| \"work-item-spawn\"\n\t| \"work-item-link\"\n\t| \"work-item-domain-action\"\n\t| (string & {});\n\nexport type WorkspaceProposalAdmissionStatus = \"admitted\" | \"rejected\" | \"blocked\" | \"needs-review\";\n\nexport type WorkspaceProposalApplicationState =\n\t| \"applied\"\n\t| \"blocked\"\n\t| \"not-applied\"\n\t| \"pending\"\n\t| \"partial\"\n\t| \"repair-needed\"\n\t| \"idempotency-conflict\"\n\t| \"recorded\";\n\nexport interface WorkspaceProposalAuditMaterial {\n\treadonly auditId?: string;\n\treadonly actorId?: string;\n\treadonly recordedAtMs?: number;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalTargetRef {\n\treadonly kind: string;\n\treadonly id: string;\n\treadonly revision?: string | number;\n\treadonly freshnessToken?: string;\n\treadonly workspaceId?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalApplicationFamilyRef {\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly factKind: string;\n\treadonly factId: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n}\n\nexport type WorkspaceProposalEmittedFactRefSource =\n\t| {\n\t\t\treadonly kind: string;\n\t\t\treadonly eventId: string;\n\t\t\treadonly sourceRefs?: readonly SourceRef[];\n\t }\n\t| {\n\t\t\treadonly kind: string;\n\t\t\treadonly applicationId: string;\n\t\t\treadonly sourceRefs?: readonly SourceRef[];\n\t };\n\nexport interface WorkspaceProposalApplicationEnvelopeValidationOptions {\n\treadonly expectedFamily?: WorkspaceProposalFamily;\n\treadonly expectedLoweringKinds?: readonly string[];\n}\n\nexport interface WorkspaceProposalProjectionFreshnessEvidence {\n\treadonly kind: \"workspace-proposal-projection-freshness-evidence\";\n\treadonly projectionBundleRef: SourceRef;\n\treadonly state: \"fresh\" | \"stale\" | \"unknown\";\n\treadonly currentRevision?: string | number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalReadyRequest<TDraft = unknown> {\n\treadonly kind: \"workspace-proposal-ready-request\";\n\treadonly proposalId: string;\n\treadonly intakeRequestId: string;\n\treadonly idempotencyKey: string;\n\treadonly workspaceId: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly loweringKind: string;\n\treadonly draft?: TDraft;\n\treadonly draftRefs?: readonly SourceRef[];\n\treadonly targetRefs: readonly WorkspaceProposalTargetRef[];\n\treadonly actorRef: SourceRef;\n\treadonly capabilityRefs: readonly SourceRef[];\n\treadonly policyRefs: readonly SourceRef[];\n\treadonly projectionBundleRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRecorded<TDraft = unknown> {\n\treadonly kind: \"workspace-proposal-recorded\";\n\treadonly proposalId: string;\n\treadonly intakeRequestId: string;\n\treadonly idempotencyKey: string;\n\treadonly workspaceId: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly loweringKind: string;\n\treadonly draft?: TDraft;\n\treadonly draftRefs?: readonly SourceRef[];\n\treadonly draftIdentity: string;\n\treadonly targetRefs: readonly WorkspaceProposalTargetRef[];\n\treadonly actorRef: SourceRef;\n\treadonly capabilityRefs: readonly SourceRef[];\n\treadonly policyRefs: readonly SourceRef[];\n\treadonly projectionBundleRefs: readonly SourceRef[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRecordedIssue extends DataIssue {\n\treadonly source: \"workspace-proposal\";\n}\n\nexport interface WorkspaceProposalRecordStatus {\n\treadonly kind: \"workspace-proposal-record-status\";\n\treadonly statusId: string;\n\treadonly proposalId?: string;\n\treadonly intakeRequestId?: string;\n\treadonly workspaceId?: string;\n\treadonly state: \"recorded\" | \"blocked\";\n\treadonly code?: string;\n\treadonly issues?: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRecordResult<TDraft = unknown> {\n\treadonly record?: WorkspaceProposalRecorded<TDraft>;\n\treadonly status: WorkspaceProposalRecordStatus;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n}\n\nexport interface WorkspaceProposalAdmissionPolicy {\n\treadonly kind: \"workspace-proposal-admission-policy\";\n\treadonly policyId: string;\n\treadonly proposalFamilies?: readonly WorkspaceProposalFamily[];\n\treadonly loweringKinds?: readonly string[];\n\treadonly outcome?: WorkspaceProposalAdmissionStatus;\n\treadonly requiresHumanReview?: boolean;\n\treadonly requiredCapabilityRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalIdempotencyEvidence {\n\treadonly kind: \"workspace-proposal-idempotency-evidence\";\n\treadonly idempotencyKey: string;\n\treadonly state: \"unique\" | \"duplicate\" | \"conflict\";\n\treadonly existingProposalId?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalFreshnessEvidence {\n\treadonly kind: \"workspace-proposal-freshness-evidence\";\n\treadonly targetRef: WorkspaceProposalTargetRef;\n\treadonly state: \"fresh\" | \"stale\" | \"unknown\";\n\treadonly currentRevision?: string | number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalCapabilityEvidence {\n\treadonly kind: \"workspace-proposal-capability-evidence\";\n\treadonly capabilityRef: SourceRef;\n\treadonly state: \"present\" | \"missing\" | \"blocked\";\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalAdmissionMaterial {\n\treadonly decisionId: string;\n\treadonly policies?: readonly WorkspaceProposalAdmissionPolicy[];\n\treadonly idempotencyEvidence?: WorkspaceProposalIdempotencyEvidence;\n\treadonly freshnessEvidence?: readonly WorkspaceProposalFreshnessEvidence[];\n\treadonly projectionFreshnessEvidence?: readonly WorkspaceProposalProjectionFreshnessEvidence[];\n\treadonly capabilityEvidence?: readonly WorkspaceProposalCapabilityEvidence[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly decidedAtMs?: number;\n}\n\nexport interface WorkspaceProposalAdmissionDecision {\n\treadonly kind: \"workspace-proposal-admission-decision\";\n\treadonly decisionId: string;\n\treadonly proposalId: string;\n\treadonly intakeRequestId: string;\n\treadonly idempotencyKey: string;\n\treadonly workspaceId: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly loweringKind: string;\n\treadonly draftIdentity: string;\n\treadonly targetRefs: readonly WorkspaceProposalTargetRef[];\n\treadonly actorRef: SourceRef;\n\treadonly capabilityRefs: readonly SourceRef[];\n\treadonly policyRefs: readonly SourceRef[];\n\treadonly status: WorkspaceProposalAdmissionStatus;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly decidedAtMs?: number;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalAdmissionResult {\n\treadonly decision: WorkspaceProposalAdmissionDecision;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n}\n\nexport interface WorkspaceProposalApplicationStatus {\n\treadonly kind: \"workspace-proposal-application-status\";\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly intakeRequestId: string;\n\treadonly idempotencyKey: string;\n\treadonly workspaceId: string;\n\treadonly decisionId: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly loweringKind: string;\n\treadonly targetRefs: readonly WorkspaceProposalTargetRef[];\n\treadonly policyRefs: readonly SourceRef[];\n\treadonly state: WorkspaceProposalApplicationState;\n\treadonly code?: string;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly emittedFactRefs: readonly WorkspaceProposalApplicationFamilyRef[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalApplicationRecorded {\n\treadonly kind: \"workspace-proposal-application-recorded\";\n\treadonly applicationRecordId: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly emittedFactRefs: readonly WorkspaceProposalApplicationFamilyRef[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalApplicationResult {\n\treadonly status: WorkspaceProposalApplicationStatus;\n\treadonly recorded?: WorkspaceProposalApplicationRecorded;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n}\n\nexport interface WorkspaceProposalProjectorOptions {\n\treadonly supportedFamilies?: readonly WorkspaceProposalFamily[];\n\treadonly maxInlineDraftBytes?: number;\n}\n\nexport interface WorkspaceProposalApplicationOptions extends WorkspaceProposalProjectorOptions {\n\treadonly applicationId: string;\n\treadonly emittedFactRefs?: readonly WorkspaceProposalApplicationFamilyRef[];\n\treadonly familyIssues?: readonly WorkspaceProposalRecordedIssue[];\n\treadonly state?: WorkspaceProposalApplicationState;\n\treadonly code?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nconst DEFAULT_MAX_INLINE_DRAFT_BYTES = 16 * 1024;\nconst BUILT_IN_FAMILIES = new Set<WorkspaceProposalFamily>([\n\t\"required-input-response\",\n\t\"work-item-spawn\",\n\t\"work-item-link\",\n\t\"work-item-domain-action\",\n]);\n\nconst FORBIDDEN_KEY_NAMES = new Set([\n\t\"accesstoken\",\n\t\"apikey\",\n\t\"callback\",\n\t\"client\",\n\t\"clienthandle\",\n\t\"command\",\n\t\"commandline\",\n\t\"credential\",\n\t\"credentials\",\n\t\"fileedit\",\n\t\"fileeditcommand\",\n\t\"handler\",\n\t\"handlername\",\n\t\"mcp\",\n\t\"privatekey\",\n\t\"providerclient\",\n\t\"refreshtoken\",\n\t\"registry\",\n\t\"provider\",\n\t\"runtime\",\n\t\"runtimehandle\",\n\t\"secret\",\n\t\"secrets\",\n\t\"sql\",\n\t\"sqlquery\",\n\t\"cli\",\n\t\"bash\",\n]);\n\nconst FORBIDDEN_KEY_PARTS = [\n\t\"accesstoken\",\n\t\"apikey\",\n\t\"callback\",\n\t\"browser\",\n\t\"clienthandle\",\n\t\"command\",\n\t\"credential\",\n\t\"fileedit\",\n\t\"handlername\",\n\t\"mcp\",\n\t\"privatekey\",\n\t\"provider\",\n\t\"refreshtoken\",\n\t\"registry\",\n\t\"runtime\",\n\t\"secret\",\n\t\"session\",\n\t\"sql\",\n\t\"cli\",\n\t\"bash\",\n] as const;\n\nconst FAMILY_FACT_KINDS: Readonly<Record<string, readonly string[]>> = {\n\t\"required-input-response\": [\"required-input-response-applied\"],\n\t\"work-item-spawn\": [\"work-item-created\", \"work-item-linked\"],\n\t\"work-item-link\": [\"work-item-linked\", \"work-item-unlinked\"],\n\t\"work-item-domain-action\": [\n\t\t\"work-item-domain-action-application\",\n\t\t\"work-item-created\",\n\t\t\"work-item-patched\",\n\t\t\"acceptance-criteria-changed\",\n\t\t\"verification-plan-changed\",\n\t],\n};\nexport function recordWorkspaceProposal<TDraft = unknown>(\n\tinput: WorkspaceProposalReadyRequest<TDraft> | unknown,\n\toptions: WorkspaceProposalProjectorOptions = {},\n): WorkspaceProposalRecordResult<TDraft> {\n\tconst issues = readyRequestIssues(input, options);\n\tif (\n\t\tissues.some(\n\t\t\t(entry) =>\n\t\t\t\tentry.code === \"non-data-material\" ||\n\t\t\t\tentry.code === \"cyclic-data-material\" ||\n\t\t\t\tentry.code === \"forbidden-runtime-material\",\n\t\t)\n\t) {\n\t\treturn {\n\t\t\tstatus: recordStatus(\"blocked\", {}, issues),\n\t\t\tissues,\n\t\t};\n\t}\n\tconst request = immutableClone(input as WorkspaceProposalReadyRequest<TDraft>);\n\tif (issues.length > 0) {\n\t\treturn {\n\t\t\tstatus: recordStatus(\"blocked\", request, issues),\n\t\t\tissues,\n\t\t};\n\t}\n\tconst draftIdentity = draftIdentityFor(request);\n\tconst record: WorkspaceProposalRecorded<TDraft> = freezeRecord({\n\t\tkind: \"workspace-proposal-recorded\",\n\t\tproposalId: request.proposalId,\n\t\tintakeRequestId: request.intakeRequestId,\n\t\tidempotencyKey: request.idempotencyKey,\n\t\tworkspaceId: request.workspaceId,\n\t\tproposalFamily: request.proposalFamily,\n\t\tloweringKind: request.loweringKind,\n\t\t...(request.draft === undefined ? {} : { draft: request.draft }),\n\t\t...(request.draftRefs === undefined ? {} : { draftRefs: request.draftRefs }),\n\t\tdraftIdentity,\n\t\ttargetRefs: request.targetRefs,\n\t\tactorRef: request.actorRef,\n\t\tcapabilityRefs: request.capabilityRefs,\n\t\tpolicyRefs: request.policyRefs,\n\t\tprojectionBundleRefs: request.projectionBundleRefs ?? [],\n\t\tsourceRefs: request.sourceRefs ?? [],\n\t\taudit: request.audit,\n\t\tmetadata: request.metadata,\n\t});\n\treturn {\n\t\trecord,\n\t\tstatus: recordStatus(\"recorded\", request, []),\n\t\tissues: [],\n\t};\n}\n\nexport function decideWorkspaceProposalAdmission(\n\trecord: WorkspaceProposalRecorded,\n\tmaterial: WorkspaceProposalAdmissionMaterial,\n\toptions: WorkspaceProposalProjectorOptions = {},\n): WorkspaceProposalAdmissionResult {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tissues.push(...dataOnlyIssues(record, \"record\"));\n\tissues.push(...dataOnlyIssues(material, \"admissionMaterial\"));\n\tif (\n\t\tissues.some(\n\t\t\t(entry) =>\n\t\t\t\tentry.code === \"non-data-material\" ||\n\t\t\t\tentry.code === \"cyclic-data-material\" ||\n\t\t\t\tentry.code === \"forbidden-runtime-material\",\n\t\t)\n\t) {\n\t\tconst decision = blockedAdmissionDecision(record, material, issues);\n\t\treturn { decision, issues };\n\t}\n\tif (blank(material.decisionId))\n\t\tissues.push(issue(\"missing-decision-id\", \"Workspace proposal admission requires decisionId\"));\n\tif (!familySupported(record.proposalFamily, options))\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"unsupported-proposal-family\",\n\t\t\t\t`Unsupported proposal family '${record.proposalFamily}'`,\n\t\t\t\t{\n\t\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\tconst policies = material.policies ?? [];\n\tconst matchingPolicies = policies.filter((policy) => policyMatches(policy, record));\n\tif (policies.length === 0 || matchingPolicies.length === 0) {\n\t\tissues.push(\n\t\t\tissue(\"missing-policy\", \"Workspace proposal admission has no matching policy material\", {\n\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\trefs: recordRefs(record),\n\t\t\t}),\n\t\t);\n\t}\n\tconst policyOutcomes = uniqueStrings(\n\t\tmatchingPolicies.flatMap((policy) => (policy.outcome === undefined ? [] : [policy.outcome])),\n\t);\n\tif (matchingPolicies.length > 0 && policyOutcomes.length === 0) {\n\t\tissues.push(\n\t\t\tissue(\"missing-admission-outcome\", \"Matching admission policy has no explicit outcome\", {\n\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\trefs: recordRefs(record),\n\t\t\t}),\n\t\t);\n\t}\n\tif (policyOutcomes.length > 1) {\n\t\tissues.push(\n\t\t\tissue(\"conflicting-policy-outcome\", \"Workspace proposal admission policy outcomes conflict\", {\n\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\trefs: recordRefs(record),\n\t\t\t}),\n\t\t);\n\t}\n\tif (record.capabilityRefs.length === 0) {\n\t\tissues.push(\n\t\t\tissue(\"missing-capability\", \"Workspace proposal admission requires capability refs\", {\n\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\trefs: recordRefs(record),\n\t\t\t}),\n\t\t);\n\t}\n\tconst policyCapabilityRefs = uniqueRefs(\n\t\tmatchingPolicies.flatMap((policy) => policy.requiredCapabilityRefs ?? []),\n\t);\n\tfor (const capabilityRef of policyCapabilityRefs) {\n\t\tif (!record.capabilityRefs.some((entry) => refEquals(entry, capabilityRef))) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-policy-required-capability\",\n\t\t\t\t\t\"Workspace proposal record lacks a policy-required capability ref\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: [capabilityRef, ...recordRefs(record)] },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tconst requiredCapabilityRefs = uniqueRefs([...record.capabilityRefs, ...policyCapabilityRefs]);\n\tconst capabilityEvidence = material.capabilityEvidence ?? [];\n\tfor (const capabilityRef of requiredCapabilityRefs) {\n\t\tconst evidence = capabilityEvidence.filter((entry) =>\n\t\t\trefEquals(entry.capabilityRef, capabilityRef),\n\t\t);\n\t\tconst states = uniqueStrings(evidence.map((entry) => entry.state));\n\t\tif (evidence.length === 0) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-capability-evidence\",\n\t\t\t\t\t\"Workspace proposal admission requires capability evidence\",\n\t\t\t\t\t{\n\t\t\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\t\t\trefs: [capabilityRef, ...recordRefs(record)],\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (states.length > 1) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"conflicting-capability-evidence\",\n\t\t\t\t\t\"Workspace proposal capability evidence conflicts\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: [capabilityRef, ...recordRefs(record)] },\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (evidence.some((entry) => entry.state !== \"present\")) {\n\t\t\tconst state = evidence.find((entry) => entry.state !== \"present\")?.state;\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\tstate === \"blocked\" ? \"blocked-capability\" : \"missing-capability\",\n\t\t\t\t\t\"Workspace proposal capability evidence failed closed\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: [capabilityRef, ...recordRefs(record)] },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tconst idempotency = material.idempotencyEvidence;\n\tif (idempotency === undefined) {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"missing-idempotency-evidence\",\n\t\t\t\t\"Workspace proposal admission requires idempotency evidence\",\n\t\t\t\t{\n\t\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\t\trefs: recordRefs(record),\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t} else if (idempotency.idempotencyKey !== record.idempotencyKey) {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"idempotency-key-mismatch\",\n\t\t\t\t\"Workspace proposal idempotency evidence mismatches record\",\n\t\t\t\t{\n\t\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\t\trefs: recordRefs(record),\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t} else if (idempotency.state !== \"unique\") {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\tidempotency.state === \"conflict\" ? \"idempotency-conflict\" : \"duplicate-proposal\",\n\t\t\t\t\"Workspace proposal idempotency evidence failed closed\",\n\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t),\n\t\t);\n\t}\n\tconst freshness = material.freshnessEvidence ?? [];\n\tfor (const target of record.targetRefs) {\n\t\tconst evidence = freshness.filter((entry) => targetRefEquals(entry.targetRef, target));\n\t\tconst states = uniqueStrings(evidence.map((entry) => entry.state));\n\t\tif (evidence.length === 0) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-freshness-evidence\",\n\t\t\t\t\t\"Workspace proposal admission requires target freshness evidence\",\n\t\t\t\t\t{\n\t\t\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\t\t\trefs: recordRefs(record),\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (states.length > 1) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"conflicting-freshness-evidence\",\n\t\t\t\t\t\"Workspace proposal target freshness evidence conflicts\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (evidence.some((entry) => entry.state !== \"fresh\")) {\n\t\t\tconst state = evidence.find((entry) => entry.state !== \"fresh\")?.state;\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\tstate === \"stale\" ? \"stale-target-ref\" : \"unknown-target-ref\",\n\t\t\t\t\t\"Workspace proposal target freshness evidence failed closed\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tconst projectionFreshness = material.projectionFreshnessEvidence ?? [];\n\tfor (const projectionBundleRef of record.projectionBundleRefs) {\n\t\tconst evidence = projectionFreshness.filter((entry) =>\n\t\t\trefEquals(entry.projectionBundleRef, projectionBundleRef),\n\t\t);\n\t\tconst states = uniqueStrings(evidence.map((entry) => entry.state));\n\t\tif (evidence.length === 0) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"missing-projection-freshness-evidence\",\n\t\t\t\t\t\"Workspace proposal admission requires projection bundle freshness evidence\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: [projectionBundleRef, ...recordRefs(record)] },\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (states.length > 1) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"conflicting-projection-freshness-evidence\",\n\t\t\t\t\t\"Workspace proposal projection freshness evidence conflicts\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: [projectionBundleRef, ...recordRefs(record)] },\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (evidence.some((entry) => entry.state !== \"fresh\")) {\n\t\t\tconst state = evidence.find((entry) => entry.state !== \"fresh\")?.state;\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\tstate === \"stale\" ? \"stale-projection-ref\" : \"unknown-projection-ref\",\n\t\t\t\t\t\"Workspace proposal projection freshness evidence failed closed\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: [projectionBundleRef, ...recordRefs(record)] },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tconst humanReview = matchingPolicies.some((policy) => policy.requiresHumanReview);\n\tconst policyOutcome =\n\t\tpolicyOutcomes.length === 1\n\t\t\t? (policyOutcomes[0] as WorkspaceProposalAdmissionStatus)\n\t\t\t: undefined;\n\tconst status = admissionStatus(issues, humanReview, policyOutcome);\n\tconst decision: WorkspaceProposalAdmissionDecision = freezeRecord({\n\t\tkind: \"workspace-proposal-admission-decision\",\n\t\tdecisionId: material.decisionId,\n\t\tproposalId: record.proposalId,\n\t\tintakeRequestId: record.intakeRequestId,\n\t\tidempotencyKey: record.idempotencyKey,\n\t\tworkspaceId: record.workspaceId,\n\t\tproposalFamily: record.proposalFamily,\n\t\tloweringKind: record.loweringKind,\n\t\tdraftIdentity: record.draftIdentity,\n\t\ttargetRefs: immutableClone(record.targetRefs),\n\t\tactorRef: immutableClone(record.actorRef),\n\t\tcapabilityRefs: immutableClone(record.capabilityRefs),\n\t\tpolicyRefs: immutableClone(record.policyRefs),\n\t\tstatus,\n\t\tissues: immutableClone(issues),\n\t\tdecidedAtMs: material.decidedAtMs,\n\t\tsourceRefs: uniqueRefs([...recordRefs(record), ...immutableClone(material.sourceRefs ?? [])]),\n\t\taudit: immutableClone(material.audit ?? record.audit),\n\t\tmetadata: {\n\t\t\tpolicyIds: matchingPolicies.map((policy) => policy.policyId),\n\t\t\tidempotencyState: idempotency?.state,\n\t\t},\n\t});\n\treturn { decision, issues };\n}\n\nexport function projectWorkspaceProposalApplicationStatus(\n\trecord: WorkspaceProposalRecorded,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\toptions: WorkspaceProposalApplicationOptions,\n): WorkspaceProposalApplicationResult {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tissues.push(...dataOnlyIssues(record, \"record\"));\n\tissues.push(...dataOnlyIssues(decision, \"decision\"));\n\tissues.push(...dataOnlyIssues(options, \"applicationOptions\"));\n\tif (\n\t\tissues.some(\n\t\t\t(entry) =>\n\t\t\t\tentry.code === \"non-data-material\" ||\n\t\t\t\tentry.code === \"cyclic-data-material\" ||\n\t\t\t\tentry.code === \"forbidden-runtime-material\",\n\t\t)\n\t) {\n\t\treturn blockedApplicationStatus(record, decision, options, issues);\n\t}\n\tif (blank(options.applicationId))\n\t\tissues.push(\n\t\t\tissue(\"missing-application-id\", \"Workspace proposal application requires applicationId\"),\n\t\t);\n\tif (decision.kind !== \"workspace-proposal-admission-decision\") {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"malformed-admission-decision\",\n\t\t\t\t\"Workspace proposal application requires durable admission decision material\",\n\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t),\n\t\t);\n\t}\n\tif (!familySupported(record.proposalFamily, options)) {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"unsupported-proposal-family\",\n\t\t\t\t`Unsupported proposal family '${record.proposalFamily}'`,\n\t\t\t\t{\n\t\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t}\n\tconst mismatch = envelopeMismatch(record, decision);\n\tif (mismatch !== undefined) {\n\t\tissues.push(\n\t\t\tissue(\"proposal-envelope-mismatch\", mismatch, {\n\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\trefs: recordRefs(record),\n\t\t\t}),\n\t\t);\n\t}\n\tif (decision.status !== \"admitted\") {\n\t\tissues.push(\n\t\t\tissue(\"proposal-not-admitted\", \"Workspace proposal application requires admitted decision\", {\n\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\trefs: recordRefs(record),\n\t\t\t}),\n\t\t);\n\t}\n\tif (decision.issues.length > 0) {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"admission-decision-has-issues\",\n\t\t\t\t\"Workspace proposal application requires issue-free decision\",\n\t\t\t\t{\n\t\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\t\trefs: recordRefs(record),\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t}\n\tissues.push(...immutableClone(options.familyIssues ?? []));\n\tconst emittedFactRefs = immutableClone(options.emittedFactRefs ?? []);\n\tissues.push(...applicationFamilyRefIssues(emittedFactRefs, record));\n\tconst pendingFamilyRefs =\n\t\temittedFactRefs.length === 0 &&\n\t\tfamilySupported(record.proposalFamily, options) &&\n\t\tissues.length === 0;\n\tconst state = resolveApplicationState(issues, pendingFamilyRefs, options.state);\n\tconst terminalRecorded =\n\t\t(state === \"applied\" || state === \"recorded\") &&\n\t\tissues.length === 0 &&\n\t\temittedFactRefs.length > 0;\n\tconst status: WorkspaceProposalApplicationStatus = freezeRecord({\n\t\tkind: \"workspace-proposal-application-status\",\n\t\tapplicationId: options.applicationId,\n\t\tproposalId: record.proposalId,\n\t\tintakeRequestId: record.intakeRequestId,\n\t\tidempotencyKey: record.idempotencyKey,\n\t\tworkspaceId: record.workspaceId,\n\t\tdecisionId: decision.decisionId,\n\t\tproposalFamily: record.proposalFamily,\n\t\tloweringKind: record.loweringKind,\n\t\ttargetRefs: immutableClone(record.targetRefs),\n\t\tpolicyRefs: immutableClone(record.policyRefs),\n\t\tstate,\n\t\tcode:\n\t\t\toptions.code ?? (pendingFamilyRefs ? \"pending-family-emitted-fact-refs\" : issues[0]?.code),\n\t\tissues: immutableClone(issues),\n\t\temittedFactRefs: terminalRecorded ? emittedFactRefs : [],\n\t\tsourceRefs: uniqueRefs([\n\t\t\t...recordRefs(record),\n\t\t\t{ kind: \"workspace-proposal-admission-decision\", id: decision.decisionId },\n\t\t\t...immutableClone(decision.sourceRefs ?? []),\n\t\t\t...immutableClone(options.sourceRefs ?? []),\n\t\t\t...immutableClone(options.audit?.sourceRefs ?? []),\n\t\t]),\n\t\taudit: immutableClone(options.audit ?? record.audit),\n\t});\n\tconst recorded = terminalRecorded\n\t\t? freezeRecord({\n\t\t\t\tkind: \"workspace-proposal-application-recorded\",\n\t\t\t\tapplicationRecordId: `${options.applicationId}:recorded`,\n\t\t\t\tapplicationId: options.applicationId,\n\t\t\t\tproposalId: record.proposalId,\n\t\t\t\tdecisionId: decision.decisionId,\n\t\t\t\temittedFactRefs,\n\t\t\t\tsourceRefs: status.sourceRefs,\n\t\t\t\taudit: status.audit,\n\t\t\t} satisfies WorkspaceProposalApplicationRecorded)\n\t\t: undefined;\n\treturn { status, recorded, issues };\n}\n\nfunction resolveApplicationState(\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n\tpendingFamilyRefs: boolean,\n\trequestedState: WorkspaceProposalApplicationState | undefined,\n): WorkspaceProposalApplicationState {\n\tif (issues.length > 0) {\n\t\treturn requestedState === \"repair-needed\" ||\n\t\t\trequestedState === \"idempotency-conflict\" ||\n\t\t\trequestedState === \"not-applied\" ||\n\t\t\trequestedState === \"partial\"\n\t\t\t? requestedState\n\t\t\t: \"blocked\";\n\t}\n\tif (\n\t\tpendingFamilyRefs &&\n\t\t(requestedState === undefined || requestedState === \"applied\" || requestedState === \"recorded\")\n\t) {\n\t\treturn \"pending\";\n\t}\n\treturn requestedState ?? (pendingFamilyRefs ? \"pending\" : \"applied\");\n}\n\nexport function validateWorkspaceProposalApplicationEnvelope(\n\trecord: WorkspaceProposalRecorded,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\toptions: WorkspaceProposalApplicationEnvelopeValidationOptions = {},\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tissues.push(...dataOnlyIssues(record, \"record\"));\n\tissues.push(...dataOnlyIssues(decision, \"decision\"));\n\tif (decision.kind !== \"workspace-proposal-admission-decision\") {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"malformed-admission-decision\",\n\t\t\t\t\"Workspace proposal application requires durable admission decision material\",\n\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t),\n\t\t);\n\t}\n\tif (options.expectedFamily !== undefined && record.proposalFamily !== options.expectedFamily) {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"unexpected-proposal-family\",\n\t\t\t\t`Workspace proposal family '${record.proposalFamily}' does not match expected family '${options.expectedFamily}'`,\n\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\toptions.expectedLoweringKinds !== undefined &&\n\t\t!options.expectedLoweringKinds.includes(record.loweringKind)\n\t) {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"unsupported-lowering-kind\",\n\t\t\t\t`Workspace proposal loweringKind '${record.loweringKind}' is not supported by this family application`,\n\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t),\n\t\t);\n\t}\n\tconst mismatch = envelopeMismatch(record, decision);\n\tif (mismatch !== undefined) {\n\t\tissues.push(\n\t\t\tissue(\"proposal-envelope-mismatch\", mismatch, {\n\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\trefs: recordRefs(record),\n\t\t\t}),\n\t\t);\n\t}\n\tif (decision.status !== \"admitted\") {\n\t\tissues.push(\n\t\t\tissue(\"proposal-not-admitted\", \"Workspace proposal application requires admitted decision\", {\n\t\t\t\tsubjectId: record.proposalId,\n\t\t\t\trefs: recordRefs(record),\n\t\t\t}),\n\t\t);\n\t}\n\tif (decision.issues.length > 0) {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"admission-decision-has-issues\",\n\t\t\t\t\"Workspace proposal application requires issue-free decision\",\n\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t),\n\t\t);\n\t}\n\tif (!decision.sourceRefs.some((entry) => refEquals(entry, recordRefs(record)[0]))) {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"missing-admission-provenance\",\n\t\t\t\t\"Workspace proposal admission decision must reference the recorded proposal\",\n\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t),\n\t\t);\n\t}\n\treturn issues;\n}\n\nexport function workspaceProposalApplicationFamilyRef(\n\tproposalFamily: WorkspaceProposalFamily,\n\temitted: WorkspaceProposalEmittedFactRefSource,\n\toptions: { readonly sourceRefs?: readonly SourceRef[] } = {},\n): WorkspaceProposalApplicationFamilyRef {\n\tconst factId = \"eventId\" in emitted ? emitted.eventId : emitted.applicationId;\n\tif (blank(emitted.kind) || blank(factId)) {\n\t\tthrow new TypeError(\n\t\t\t\"Workspace proposal emitted fact refs require fact kind and append-only fact id\",\n\t\t);\n\t}\n\treturn freezeRecord({\n\t\tproposalFamily,\n\t\tfactKind: emitted.kind,\n\t\tfactId,\n\t\tsourceRefs: uniqueRefs([...(emitted.sourceRefs ?? []), ...(options.sourceRefs ?? [])]),\n\t});\n}\n\nexport function workspaceProposalDataOnlyIssues(\n\tvalue: unknown,\n\tlabel = \"value\",\n): readonly WorkspaceProposalRecordedIssue[] {\n\treturn dataOnlyIssues(value, label);\n}\n\nexport function assertWorkspaceProposalDataOnly(value: unknown, label = \"value\"): void {\n\tconst issues = dataOnlyIssues(value, label);\n\tif (issues.length > 0) throw new TypeError(issues[0]?.message ?? `${label} is not data-only`);\n}\n\nfunction readyRequestIssues(\n\tinput: unknown,\n\toptions: WorkspaceProposalProjectorOptions,\n): WorkspaceProposalRecordedIssue[] {\n\tconst issues = dataOnlyIssues(input, \"readyRequest\");\n\tif (!isRecord(input)) {\n\t\tissues.push(\n\t\t\tissue(\"malformed-proposal-envelope\", \"Workspace proposal ready request must be an object\"),\n\t\t);\n\t\treturn issues;\n\t}\n\tif (input.kind !== \"workspace-proposal-ready-request\")\n\t\tissues.push(\n\t\t\tissue(\"malformed-proposal-envelope\", \"Workspace proposal ready request kind is invalid\"),\n\t\t);\n\tfor (const key of [\n\t\t\"proposalId\",\n\t\t\"intakeRequestId\",\n\t\t\"idempotencyKey\",\n\t\t\"workspaceId\",\n\t\t\"proposalFamily\",\n\t\t\"loweringKind\",\n\t] as const) {\n\t\tif (blank(input[key])) issues.push(issue(`missing-${kebab(key)}`, `${key} is required`));\n\t}\n\tif (!isRef(input.actorRef)) issues.push(issue(\"missing-actor-ref\", \"actorRef is required\"));\n\tif (!nonEmptyRefs(input.capabilityRefs))\n\t\tissues.push(issue(\"missing-capability\", \"capabilityRefs are required\"));\n\tif (!nonEmptyRefs(input.policyRefs))\n\t\tissues.push(issue(\"missing-policy\", \"policyRefs are required\"));\n\tif (!Array.isArray(input.targetRefs) || input.targetRefs.length === 0) {\n\t\tissues.push(issue(\"missing-target-ref\", \"targetRefs are required\"));\n\t} else if (!isDenseArray(input.targetRefs) || !input.targetRefs.every(isTargetRef)) {\n\t\tissues.push(issue(\"malformed-target-ref\", \"targetRefs must be target ref data\"));\n\t}\n\tif (!nonEmptyRefs(input.projectionBundleRefs))\n\t\tissues.push(issue(\"missing-projection-bundle-ref\", \"projectionBundleRefs are required\"));\n\tif (!familySupported(input.proposalFamily as WorkspaceProposalFamily, options)) {\n\t\tissues.push(\n\t\t\tissue(\n\t\t\t\t\"unsupported-proposal-family\",\n\t\t\t\t`Unsupported proposal family '${String(input.proposalFamily)}'`,\n\t\t\t),\n\t\t);\n\t}\n\tif (input.draft === undefined && !nonEmptyRefs(input.draftRefs))\n\t\tissues.push(issue(\"missing-draft-material\", \"draft or draftRefs are required\"));\n\tif (input.draft !== undefined && inlineDraftBytes(input.draft) > maxInlineDraftBytes(options))\n\t\tissues.push(issue(\"oversized-inline-draft\", \"Workspace proposal inline draft exceeds bound\"));\n\treturn issues;\n}\n\nfunction admissionStatus(\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n\thumanReview: boolean,\n\tpolicyOutcome: WorkspaceProposalAdmissionStatus | undefined,\n): WorkspaceProposalAdmissionStatus {\n\tif (\n\t\tissues.some(\n\t\t\t(entry) => entry.code === \"missing-policy\" || entry.code === \"missing-admission-outcome\",\n\t\t)\n\t)\n\t\treturn \"needs-review\";\n\tif (humanReview || policyOutcome === \"needs-review\") return \"needs-review\";\n\tif (policyOutcome === \"rejected\" || issues.some((entry) => entry.code === \"duplicate-proposal\"))\n\t\treturn \"rejected\";\n\tif (policyOutcome === \"blocked\" || issues.length > 0) return \"blocked\";\n\treturn policyOutcome === \"admitted\" ? \"admitted\" : \"needs-review\";\n}\n\nfunction policyMatches(\n\tpolicy: WorkspaceProposalAdmissionPolicy,\n\trecord: WorkspaceProposalRecorded,\n) {\n\tif (\n\t\tpolicy.proposalFamilies !== undefined &&\n\t\t!policy.proposalFamilies.includes(record.proposalFamily)\n\t)\n\t\treturn false;\n\tif (policy.loweringKinds !== undefined && !policy.loweringKinds.includes(record.loweringKind))\n\t\treturn false;\n\treturn true;\n}\n\nfunction envelopeMismatch(\n\trecord: WorkspaceProposalRecorded,\n\tdecision: WorkspaceProposalAdmissionDecision,\n): string | undefined {\n\tconst fields = [\n\t\t\"proposalId\",\n\t\t\"intakeRequestId\",\n\t\t\"idempotencyKey\",\n\t\t\"workspaceId\",\n\t\t\"proposalFamily\",\n\t\t\"loweringKind\",\n\t\t\"draftIdentity\",\n\t] as const;\n\tfor (const field of fields) if (record[field] !== decision[field]) return `${field} mismatch`;\n\tif (!refEquals(record.actorRef, decision.actorRef)) return \"actorRef mismatch\";\n\tif (stableStringify(record.capabilityRefs) !== stableStringify(decision.capabilityRefs))\n\t\treturn \"capabilityRefs mismatch\";\n\tif (stableStringify(record.policyRefs) !== stableStringify(decision.policyRefs))\n\t\treturn \"policyRefs mismatch\";\n\tif (stableStringify(record.targetRefs) !== stableStringify(decision.targetRefs))\n\t\treturn \"targetRefs mismatch\";\n\tfor (const sourceRef of record.sourceRefs) {\n\t\tif (!decision.sourceRefs.some((entry) => refEquals(entry, sourceRef)))\n\t\t\treturn \"sourceRefs mismatch\";\n\t}\n\treturn undefined;\n}\n\nfunction recordStatus(\n\tstate: \"recorded\" | \"blocked\",\n\trequest: Partial<WorkspaceProposalReadyRequest>,\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n): WorkspaceProposalRecordStatus {\n\treturn freezeRecord({\n\t\tkind: \"workspace-proposal-record-status\",\n\t\tstatusId: `${request.proposalId ?? request.intakeRequestId ?? \"unknown\"}:${state}`,\n\t\tproposalId: stringOrUndefined(request.proposalId),\n\t\tintakeRequestId: stringOrUndefined(request.intakeRequestId),\n\t\tworkspaceId: stringOrUndefined(request.workspaceId),\n\t\tstate,\n\t\tcode: issues[0]?.code,\n\t\tissues: issues.length === 0 ? undefined : issues,\n\t\tsourceRefs: request.sourceRefs,\n\t\taudit: request.audit,\n\t});\n}\n\nfunction blockedAdmissionDecision(\n\trecord: WorkspaceProposalRecorded,\n\t_material: Partial<WorkspaceProposalAdmissionMaterial>,\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n): WorkspaceProposalAdmissionDecision {\n\treturn freezeRecord({\n\t\tkind: \"workspace-proposal-admission-decision\",\n\t\tdecisionId: `${record.proposalId}:admission-blocked`,\n\t\tproposalId: record.proposalId,\n\t\tintakeRequestId: record.intakeRequestId,\n\t\tidempotencyKey: record.idempotencyKey,\n\t\tworkspaceId: record.workspaceId,\n\t\tproposalFamily: record.proposalFamily,\n\t\tloweringKind: record.loweringKind,\n\t\tdraftIdentity: record.draftIdentity,\n\t\ttargetRefs: record.targetRefs,\n\t\tactorRef: record.actorRef,\n\t\tcapabilityRefs: record.capabilityRefs,\n\t\tpolicyRefs: record.policyRefs,\n\t\tstatus: \"blocked\",\n\t\tissues,\n\t\tsourceRefs: record.sourceRefs,\n\t\taudit: record.audit,\n\t});\n}\n\nfunction blockedApplicationStatus(\n\trecord: WorkspaceProposalRecorded,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\toptions: WorkspaceProposalApplicationOptions,\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n): WorkspaceProposalApplicationResult {\n\tconst status: WorkspaceProposalApplicationStatus = freezeRecord({\n\t\tkind: \"workspace-proposal-application-status\",\n\t\tapplicationId: options.applicationId,\n\t\tproposalId: record.proposalId,\n\t\tintakeRequestId: record.intakeRequestId,\n\t\tidempotencyKey: record.idempotencyKey,\n\t\tworkspaceId: record.workspaceId,\n\t\tdecisionId: decision.decisionId,\n\t\tproposalFamily: record.proposalFamily,\n\t\tloweringKind: record.loweringKind,\n\t\ttargetRefs: record.targetRefs,\n\t\tpolicyRefs: record.policyRefs,\n\t\tstate: \"blocked\",\n\t\tcode: issues[0]?.code,\n\t\tissues,\n\t\temittedFactRefs: [],\n\t\tsourceRefs: uniqueRefs([\n\t\t\t...recordRefs(record),\n\t\t\t{ kind: \"workspace-proposal-admission-decision\", id: decision.decisionId },\n\t\t\t...record.sourceRefs,\n\t\t\t...(options.audit?.sourceRefs ?? []),\n\t\t]),\n\t\taudit: options.audit ?? record.audit,\n\t});\n\treturn { status, issues };\n}\n\nfunction dataOnlyIssues(value: unknown, label: string): WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tconst active = new WeakSet<object>();\n\tconst visit = (entry: unknown, path: string): void => {\n\t\tif (\n\t\t\tentry === null ||\n\t\t\ttypeof entry === \"number\" ||\n\t\t\ttypeof entry === \"boolean\" ||\n\t\t\ttypeof entry === \"undefined\"\n\t\t)\n\t\t\treturn;\n\t\tif (typeof entry === \"string\") {\n\t\t\tif (forbiddenStringMaterial(entry))\n\t\t\t\tissues.push(issue(\"forbidden-runtime-material\", `${path} is not proposal data material`));\n\t\t\treturn;\n\t\t}\n\t\tif (typeof entry === \"function\" || typeof entry === \"symbol\" || typeof entry === \"bigint\") {\n\t\t\tissues.push(issue(\"non-data-material\", `${path} is not structured data`));\n\t\t\treturn;\n\t\t}\n\t\tif (typeof entry !== \"object\") return;\n\t\tif (active.has(entry)) {\n\t\t\tissues.push(issue(\"cyclic-data-material\", `${path} contains a cycle`));\n\t\t\treturn;\n\t\t}\n\t\tactive.add(entry);\n\t\tif (Array.isArray(entry)) {\n\t\t\tfor (let index = 0; index < entry.length; index += 1) {\n\t\t\t\tif (!Object.hasOwn(entry, index)) {\n\t\t\t\t\tissues.push(issue(\"non-data-material\", `${path}[${index}] is a sparse array hole`));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tvisit(entry[index], `${path}[${index}]`);\n\t\t\t}\n\t\t\tfor (const key of Reflect.ownKeys(entry))\n\t\t\t\tinspectOwnKey(entry, key, path, true, visit, issues);\n\t\t\tactive.delete(entry);\n\t\t\treturn;\n\t\t}\n\t\tconst proto = Object.getPrototypeOf(entry);\n\t\tif (proto !== Object.prototype && proto !== null) {\n\t\t\tissues.push(issue(\"non-data-material\", `${path} must be a plain object or array`));\n\t\t\tactive.delete(entry);\n\t\t\treturn;\n\t\t}\n\t\tfor (const key of Reflect.ownKeys(entry)) {\n\t\t\tinspectOwnKey(entry, key, path, false, visit, issues);\n\t\t}\n\t\tactive.delete(entry);\n\t};\n\tvisit(value, label);\n\treturn issues;\n}\n\nfunction inspectOwnKey(\n\tentry: object,\n\tkey: string | symbol,\n\tpath: string,\n\tarrayKey: boolean,\n\tvisit: (entry: unknown, path: string) => void,\n\tissues: WorkspaceProposalRecordedIssue[],\n): void {\n\tif (typeof key !== \"string\") {\n\t\tissues.push(issue(\"non-data-material\", `${path} contains a non-string key`));\n\t\treturn;\n\t}\n\tif (arrayKey && (key === \"length\" || arrayIndexKey(key))) return;\n\tconst childPath = arrayKey ? `${path}.${key}` : `${path}.${key}`;\n\tconst normalized = key.toLowerCase().replace(/[-_\\s]/g, \"\");\n\tif (forbiddenKeyName(normalized)) {\n\t\tissues.push(issue(\"forbidden-runtime-material\", `${childPath} is not proposal data material`));\n\t}\n\tconst descriptor = Object.getOwnPropertyDescriptor(entry, key);\n\tif (descriptor?.get !== undefined || descriptor?.set !== undefined) {\n\t\tissues.push(issue(\"non-data-material\", `${childPath} uses an accessor`));\n\t\treturn;\n\t}\n\tvisit((entry as Record<string, unknown>)[key], childPath);\n}\n\nfunction forbiddenKeyName(normalized: string): boolean {\n\treturn (\n\t\tFORBIDDEN_KEY_NAMES.has(normalized) ||\n\t\tFORBIDDEN_KEY_PARTS.some((part) => normalized.includes(part))\n\t);\n}\n\nfunction issue(\n\tcode: string,\n\tmessage: string,\n\topts: { readonly subjectId?: string; readonly refs?: readonly SourceRef[] } = {},\n): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tsource: \"workspace-proposal\",\n\t\tseverity: \"error\",\n\t\tcode,\n\t\tmessage,\n\t\tsubjectId: opts.subjectId,\n\t\trefs: opts.refs?.map((entry) => `${entry.kind}:${entry.id}`),\n\t};\n}\n\nfunction recordRefs(record: WorkspaceProposalRecorded): readonly SourceRef[] {\n\treturn [\n\t\t{ kind: \"workspace-proposal-recorded\", id: record.proposalId },\n\t\t{ kind: \"workspace-proposal-intake-request\", id: record.intakeRequestId },\n\t\t...record.sourceRefs,\n\t];\n}\n\nfunction draftIdentityFor(request: WorkspaceProposalReadyRequest): string {\n\tif (request.draftRefs !== undefined && request.draftRefs.length > 0)\n\t\treturn `refs:${stableStringify(request.draftRefs)}`;\n\treturn `inline:${stableStringify(request.draft)}`;\n}\n\nfunction familySupported(\n\tfamily: WorkspaceProposalFamily,\n\toptions: WorkspaceProposalProjectorOptions,\n): boolean {\n\tconst supported = options.supportedFamilies ?? Array.from(BUILT_IN_FAMILIES);\n\treturn supported.includes(family);\n}\n\nfunction inlineDraftBytes(value: unknown): number {\n\treturn new TextEncoder().encode(stableStringify(value)).byteLength;\n}\n\nfunction maxInlineDraftBytes(options: WorkspaceProposalProjectorOptions): number {\n\treturn options.maxInlineDraftBytes ?? DEFAULT_MAX_INLINE_DRAFT_BYTES;\n}\n\nfunction stableStringify(value: unknown): string {\n\tif (Array.isArray(value)) return `[${value.map(stableStringify).join(\",\")}]`;\n\tif (isRecord(value)) {\n\t\treturn `{${Object.keys(value)\n\t\t\t.sort()\n\t\t\t.map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`)\n\t\t\t.join(\",\")}}`;\n\t}\n\treturn JSON.stringify(value);\n}\n\nfunction targetRefEquals(\n\tleft: WorkspaceProposalTargetRef,\n\tright: WorkspaceProposalTargetRef,\n): boolean {\n\treturn stableStringify(left) === stableStringify(right);\n}\n\nfunction refEquals(left: SourceRef, right: SourceRef): boolean {\n\treturn left.kind === right.kind && left.id === right.id;\n}\n\nfunction uniqueRefs(refs: readonly SourceRef[]): readonly SourceRef[] {\n\tconst seen = new Set<string>();\n\tconst out: SourceRef[] = [];\n\tfor (const ref of refs) {\n\t\tconst key = `${ref.kind}:${ref.id}:${stableStringify(ref.metadata)}`;\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tout.push(ref);\n\t}\n\treturn out;\n}\n\nfunction uniqueStrings(values: readonly string[]): readonly string[] {\n\treturn [...new Set(values)];\n}\n\nfunction applicationFamilyRefIssues(\n\trefs: readonly WorkspaceProposalApplicationFamilyRef[],\n\trecord: WorkspaceProposalRecorded,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tfor (const [index, value] of refs.entries()) {\n\t\tif (!isRecord(value)) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"malformed-family-emitted-fact-ref\",\n\t\t\t\t\t\"Workspace proposal application emitted fact refs must be closed ref records\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t\t),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const key of Object.keys(value)) {\n\t\t\tif (![\"proposalFamily\", \"factKind\", \"factId\", \"sourceRefs\"].includes(key)) {\n\t\t\t\tissues.push(\n\t\t\t\t\tissue(\n\t\t\t\t\t\t\"malformed-family-emitted-fact-ref\",\n\t\t\t\t\t\t`Workspace proposal application emitted fact ref contains unsupported field '${key}'`,\n\t\t\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (value.proposalFamily !== record.proposalFamily) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"family-ref-mismatch\",\n\t\t\t\t\t\"Workspace proposal application emitted fact ref mismatches family\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (blank(value.factKind) || blank(value.factId)) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"malformed-family-emitted-fact-ref\",\n\t\t\t\t\t`Workspace proposal application emitted fact ref at index ${index} requires factKind and factId`,\n\t\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tconst allowedFactKinds = FAMILY_FACT_KINDS[record.proposalFamily];\n\t\tif (allowedFactKinds === undefined || !allowedFactKinds.includes(value.factKind as string)) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"unsupported-family-fact-kind\",\n\t\t\t\t\t`Workspace proposal family '${record.proposalFamily}' does not allow emitted fact kind '${String(value.factKind)}'`,\n\t\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (value.sourceRefs !== undefined && !refsShape(value.sourceRefs)) {\n\t\t\tissues.push(\n\t\t\t\tissue(\n\t\t\t\t\t\"malformed-family-emitted-fact-ref\",\n\t\t\t\t\t\"Workspace proposal application emitted fact ref sourceRefs must be refs\",\n\t\t\t\t\t{ subjectId: record.proposalId, refs: recordRefs(record) },\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\treturn issues;\n}\n\nfunction isTargetRef(value: unknown): value is WorkspaceProposalTargetRef {\n\treturn isRecord(value) && nonBlankString(value.kind) && nonBlankString(value.id);\n}\n\nfunction isRef(value: unknown): value is SourceRef {\n\treturn isRecord(value) && nonBlankString(value.kind) && nonBlankString(value.id);\n}\n\nfunction nonEmptyRefs(value: unknown): value is readonly SourceRef[] {\n\treturn refsShape(value) && value.length > 0;\n}\n\nfunction refsShape(value: unknown): value is readonly SourceRef[] {\n\treturn Array.isArray(value) && isDenseArray(value) && value.every(isRef);\n}\n\nfunction isDenseArray(value: readonly unknown[]): boolean {\n\tfor (let index = 0; index < value.length; index += 1) {\n\t\tif (!Object.hasOwn(value, index)) return false;\n\t}\n\treturn true;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction blank(value: unknown): boolean {\n\treturn !nonBlankString(value);\n}\n\nfunction nonBlankString(value: unknown): value is string {\n\treturn typeof value === \"string\" && value.trim() !== \"\";\n}\n\nfunction stringOrUndefined(value: unknown): string | undefined {\n\treturn typeof value === \"string\" ? value : undefined;\n}\n\nfunction kebab(value: string): string {\n\treturn value.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);\n}\n\nfunction arrayIndexKey(key: string): boolean {\n\tif (key === \"\") return false;\n\tconst index = Number(key);\n\treturn Number.isInteger(index) && index >= 0 && String(index) === key;\n}\n\nfunction forbiddenStringMaterial(value: string): boolean {\n\tconst trimmed = value.trim();\n\tif (trimmed === \"\") return false;\n\tif (/^(https?|file|ssh|sftp|postgres|postgresql|mysql|sqlite|mongodb|redis):\\/\\//i.test(trimmed))\n\t\treturn true;\n\tif (/^(bash|sh|zsh|fish|pwsh|powershell)\\s+-[a-z]*c\\b/i.test(trimmed)) return true;\n\tif (/\\b(rm\\s+-rf|curl\\s+https?:|wget\\s+https?:|psql\\s+|mysql\\s+|sqlite3\\s+)/i.test(trimmed))\n\t\treturn true;\n\tif (\n\t\t/\\b(bearer\\s+[a-z0-9._~+/=-]+|credential:|secret:|api[_-]?key\\s*=|access[_-]?token\\s*=)/i.test(\n\t\t\ttrimmed,\n\t\t)\n\t)\n\t\treturn true;\n\tif (\n\t\t/^\\s*(select|insert|update|delete|drop|alter|create)\\s+.+\\b(from|into|table|database|where)\\b/i.test(\n\t\t\ttrimmed,\n\t\t)\n\t)\n\t\treturn true;\n\treturn false;\n}\n\nfunction freezeRecord<T extends object>(value: T): T {\n\treturn immutableClone(value);\n}\n","import { type Ctx, depBatch } from \"../../ctx/types.js\";\nimport type { Graph } from \"../../graph/graph.js\";\nimport type { Node } from \"../../node/node.js\";\nimport type { SourceRef } from \"../../orchestration/agent-runtime.js\";\nimport type { WorkItemDomainActionApplication } from \"./actions-types.js\";\nimport { immutableClone, project } from \"./scheduling-shared.js\";\nimport type {\n\tWorkItemAuthoringFact,\n\tWorkItemCreated,\n\tWorkItemDraft,\n\tWorkItemProjection,\n} from \"./scheduling-types.js\";\nimport { validateWorkItemDraft } from \"./scheduling-validation.js\";\nimport type {\n\tRequiredInputGate,\n\tRequiredInputRequest,\n\tRequiredInputResponseApplied,\n\tRequiredInputResponseProposed,\n\tWorkItemLinked,\n\tWorkItemLinkProjection,\n\tWorkItemUnlinked,\n} from \"./workspace-model.js\";\nimport {\n\tprojectWorkspaceProposalApplicationStatus,\n\tvalidateWorkspaceProposalApplicationEnvelope,\n\ttype WorkspaceProposalAdmissionDecision,\n\ttype WorkspaceProposalApplicationFamilyRef,\n\ttype WorkspaceProposalApplicationRecorded,\n\ttype WorkspaceProposalApplicationResult,\n\ttype WorkspaceProposalApplicationState,\n\ttype WorkspaceProposalApplicationStatus,\n\ttype WorkspaceProposalAuditMaterial,\n\ttype WorkspaceProposalFamily,\n\ttype WorkspaceProposalReadyRequest,\n\ttype WorkspaceProposalRecorded,\n\ttype WorkspaceProposalRecordedIssue,\n\ttype WorkspaceProposalTargetRef,\n\tworkspaceProposalApplicationFamilyRef,\n\tworkspaceProposalDataOnlyIssues,\n} from \"./workspace-proposals.js\";\n\nexport interface WorkspaceProposalRequiredInputResponseApplicationOptions {\n\treadonly applicationId: string;\n\treadonly gate: RequiredInputGate;\n\treadonly request?: RequiredInputRequest;\n\treadonly appliedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport interface WorkspaceProposalRequiredInputResponseApplicationResult<TValue = unknown>\n\textends WorkspaceProposalApplicationResult {\n\treadonly applied?: RequiredInputResponseApplied<TValue>;\n}\n\nexport interface WorkspaceProposalRequiredInputResponseApplicationContext {\n\treadonly kind: \"workspace-proposal-required-input-response-application-context\";\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId?: string;\n\treadonly gateId?: string;\n\treadonly requestId?: string;\n\treadonly appliedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRequiredInputResponseApplicationProjectorOptions<\n\tTValue = unknown,\n> {\n\treadonly name?: string;\n\treadonly records: Node<WorkspaceProposalRecorded<RequiredInputResponseProposed<TValue>>>;\n\treadonly decisions: Node<WorkspaceProposalAdmissionDecision>;\n\treadonly contexts: Node<WorkspaceProposalRequiredInputResponseApplicationContext>;\n\treadonly gates: Node<RequiredInputGate>;\n\treadonly requests?: Node<RequiredInputRequest>;\n}\n\nexport interface WorkspaceProposalRequiredInputResponseApplicationProjectorBundle<\n\tTValue = unknown,\n> {\n\treadonly applied: Node<RequiredInputResponseApplied<TValue>>;\n\treadonly status: Node<WorkspaceProposalApplicationStatus>;\n\treadonly recorded: Node<WorkspaceProposalApplicationRecorded>;\n\treadonly issues: Node<WorkspaceProposalRecordedIssue>;\n\treadonly audit: Node<WorkspaceProposalFamilyApplicationAuditRecord>;\n}\n\nexport interface WorkspaceProposalWorkItemSpawnApplicationOptions<TInput = unknown> {\n\treadonly applicationId: string;\n\treadonly existingWorkItems?: readonly WorkItemProjection<TInput>[];\n\treadonly linkParent?: boolean;\n\treadonly createdAtMs?: number;\n\treadonly linkedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport interface WorkspaceProposalWorkItemSpawnApplicationResult<TInput = unknown>\n\textends WorkspaceProposalApplicationResult {\n\treadonly created?: WorkItemCreated<TInput>;\n\treadonly linked?: WorkItemLinked;\n}\n\nexport interface WorkspaceProposalWorkItemSpawnApplicationContext {\n\treadonly kind: \"workspace-proposal-work-item-spawn-application-context\";\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId?: string;\n\treadonly linkParent?: boolean;\n\treadonly createdAtMs?: number;\n\treadonly linkedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalWorkItemSpawnApplicationProjectorOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly records: Node<\n\t\tWorkspaceProposalRecorded<{\n\t\t\treadonly kind: \"work-item-spawn-proposed\";\n\t\t\treadonly proposedWorkItemId?: string;\n\t\t\treadonly parentWorkItemId?: string;\n\t\t\treadonly draft: WorkItemDraft<TInput>;\n\t\t\treadonly proposedBy?: string;\n\t\t\treadonly idempotencyKey?: string;\n\t\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\t\treadonly metadata?: Record<string, unknown>;\n\t\t}>\n\t>;\n\treadonly decisions: Node<WorkspaceProposalAdmissionDecision>;\n\treadonly contexts: Node<WorkspaceProposalWorkItemSpawnApplicationContext>;\n\treadonly workItems?: Node<WorkItemProjection<TInput>>;\n}\n\nexport interface WorkspaceProposalWorkItemSpawnApplicationProjectorBundle<TInput = unknown> {\n\treadonly created: Node<WorkItemCreated<TInput>>;\n\treadonly linked: Node<WorkItemLinked>;\n\treadonly status: Node<WorkspaceProposalApplicationStatus>;\n\treadonly recorded: Node<WorkspaceProposalApplicationRecorded>;\n\treadonly issues: Node<WorkspaceProposalRecordedIssue>;\n\treadonly audit: Node<WorkspaceProposalFamilyApplicationAuditRecord>;\n}\n\nexport interface WorkItemLinkProposalDraft {\n\treadonly kind: \"work-item-link-proposal\";\n\treadonly action?: \"link\" | \"unlink\";\n\treadonly eventId?: string;\n\treadonly linkId: string;\n\treadonly fromWorkItemId?: string;\n\treadonly toWorkItemId?: string;\n\treadonly linkKind?: string;\n\treadonly direction?: WorkItemLinked[\"direction\"];\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalWorkItemLinkApplicationOptions<TInput = unknown> {\n\treadonly applicationId: string;\n\treadonly workItems?: readonly WorkItemProjection<TInput>[];\n\treadonly links?: readonly WorkItemLinkProjection[];\n\treadonly linkedAtMs?: number;\n\treadonly unlinkedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport interface WorkspaceProposalWorkItemLinkApplicationResult\n\textends WorkspaceProposalApplicationResult {\n\treadonly linked?: WorkItemLinked;\n\treadonly unlinked?: WorkItemUnlinked;\n}\n\nexport interface WorkspaceProposalWorkItemLinkApplicationContext {\n\treadonly kind: \"workspace-proposal-work-item-link-application-context\";\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId?: string;\n\treadonly linkedAtMs?: number;\n\treadonly unlinkedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalWorkItemLinkApplicationProjectorOptions<TInput = unknown> {\n\treadonly name?: string;\n\treadonly records: Node<WorkspaceProposalRecorded<WorkItemLinkProposalDraft>>;\n\treadonly decisions: Node<WorkspaceProposalAdmissionDecision>;\n\treadonly contexts: Node<WorkspaceProposalWorkItemLinkApplicationContext>;\n\treadonly workItems?: Node<WorkItemProjection<TInput>>;\n\treadonly links?: Node<WorkItemLinkProjection>;\n}\n\nexport interface WorkspaceProposalWorkItemLinkApplicationProjectorBundle {\n\treadonly linked: Node<WorkItemLinked>;\n\treadonly unlinked: Node<WorkItemUnlinked>;\n\treadonly status: Node<WorkspaceProposalApplicationStatus>;\n\treadonly recorded: Node<WorkspaceProposalApplicationRecorded>;\n\treadonly issues: Node<WorkspaceProposalRecordedIssue>;\n\treadonly audit: Node<WorkspaceProposalFamilyApplicationAuditRecord>;\n}\n\nexport interface WorkspaceProposalDomainActionApplicationStatusOptions {\n\treadonly applicationId: string;\n\treadonly emittedFacts: readonly WorkItemAuthoringFact[];\n\treadonly domainApplication?: WorkItemDomainActionApplication;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport interface WorkspaceProposalDomainActionApplicationContext {\n\treadonly kind: \"workspace-proposal-domain-action-application-context\";\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId?: string;\n\treadonly domainApplicationId?: string;\n\treadonly emittedFactIds?: readonly string[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalDomainActionApplicationProjectorOptions {\n\treadonly name?: string;\n\treadonly records: Node<WorkspaceProposalRecorded>;\n\treadonly decisions: Node<WorkspaceProposalAdmissionDecision>;\n\treadonly contexts: Node<WorkspaceProposalDomainActionApplicationContext>;\n\treadonly emittedFacts: Node<WorkItemAuthoringFact>;\n\treadonly domainApplications?: Node<WorkItemDomainActionApplication>;\n}\n\nexport interface WorkspaceProposalDomainActionApplicationProjectorBundle {\n\treadonly status: Node<WorkspaceProposalApplicationStatus>;\n\treadonly recorded: Node<WorkspaceProposalApplicationRecorded>;\n\treadonly issues: Node<WorkspaceProposalRecordedIssue>;\n\treadonly audit: Node<WorkspaceProposalFamilyApplicationAuditRecord>;\n}\n\nexport interface WorkspaceProposalFamilyApplicationAuditRecord {\n\treadonly kind: \"workspace-proposal-family-application-audit\";\n\treadonly auditId: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId?: string;\n\treadonly proposalFamily: string;\n\treadonly state: WorkspaceProposalApplicationState;\n\treadonly emittedFactRefs: readonly WorkspaceProposalApplicationFamilyRef[];\n\treadonly code?: string;\n\treadonly issues?: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkspaceProposalFamilyOutcomeRecordState =\n\t| \"recorded\"\n\t| \"not-recorded\"\n\t| \"pending\"\n\t| \"partial\"\n\t| \"repair-needed\"\n\t| \"idempotency-conflict\";\n\nexport type WorkspaceProposalFamilyOutcomeRecord =\n\t| WorkspaceProposalRequiredInputResponseOutcomeRecorded\n\t| WorkspaceProposalWorkItemSpawnOutcomeRecorded\n\t| WorkspaceProposalWorkItemLinkOutcomeRecorded\n\t| WorkspaceProposalDomainActionOutcomeRecorded;\n\nexport interface WorkspaceProposalFamilyOutcomeRef {\n\treadonly kind: \"workspace-proposal-family-outcome-ref\";\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly outcomeKind: WorkspaceProposalFamilyOutcomeRecord[\"kind\"];\n\treadonly outcomeId: string;\n\treadonly sourceRefs: readonly SourceRef[];\n}\n\nexport interface WorkspaceProposalFamilyOutcomeRecordStatus {\n\treadonly kind: \"workspace-proposal-family-outcome-record-status\";\n\treadonly outcomeId: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly state: WorkspaceProposalFamilyOutcomeRecordState;\n\treadonly code?: string;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly outcomeRefs: readonly WorkspaceProposalFamilyOutcomeRef[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalFamilyOutcomeRecordResult<\n\tTOutcome extends WorkspaceProposalFamilyOutcomeRecord,\n> {\n\treadonly outcome?: TOutcome;\n\treadonly status: WorkspaceProposalFamilyOutcomeRecordStatus;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n}\n\nexport interface WorkspaceProposalFamilyEvidenceHorizon {\n\treadonly kind: \"workspace-proposal-family-evidence-horizon\";\n\treadonly horizonId: string;\n\treadonly applicationId: string;\n\treadonly state: \"open\" | \"closed\";\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalFamilyCompletionPolicy {\n\treadonly kind: \"workspace-proposal-family-completion-policy\";\n\treadonly policyId: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n\treadonly domainActionCompletion?: \"single-action\" | \"multi-step-partial\";\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRequiredInputResponseOutcomeOptions {\n\treadonly outcomeId: string;\n\treadonly requiredInputRequestId?: string;\n\treadonly responseRef?: SourceRef;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly horizon?: WorkspaceProposalFamilyEvidenceHorizon;\n\treadonly policy?: WorkspaceProposalFamilyCompletionPolicy;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalWorkItemSpawnOutcomeOptions {\n\treadonly outcomeId: string;\n\treadonly workItemRef?: SourceRef;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly horizon?: WorkspaceProposalFamilyEvidenceHorizon;\n\treadonly policy?: WorkspaceProposalFamilyCompletionPolicy;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalWorkItemLinkOutcomeOptions {\n\treadonly outcomeId: string;\n\treadonly linkRef?: SourceRef;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly horizon?: WorkspaceProposalFamilyEvidenceHorizon;\n\treadonly policy?: WorkspaceProposalFamilyCompletionPolicy;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalDomainActionOutcomeOptions {\n\treadonly outcomeId: string;\n\treadonly actionRef?: SourceRef;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly horizon?: WorkspaceProposalFamilyEvidenceHorizon;\n\treadonly policy?: WorkspaceProposalFamilyCompletionPolicy;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRequiredInputResponseOutcomeRecorded {\n\treadonly kind: \"workspace-proposal-required-input-response-outcome-recorded\";\n\treadonly outcomeId: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: \"required-input-response\";\n\treadonly requiredInputRequestId: string;\n\treadonly responseRef: SourceRef;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalWorkItemSpawnOutcomeRecorded {\n\treadonly kind: \"workspace-proposal-work-item-spawn-outcome-recorded\";\n\treadonly outcomeId: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: \"work-item-spawn\";\n\treadonly workItemRef: SourceRef;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalWorkItemLinkOutcomeRecorded {\n\treadonly kind: \"workspace-proposal-work-item-link-outcome-recorded\";\n\treadonly outcomeId: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: \"work-item-link\";\n\treadonly linkRef: SourceRef;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalDomainActionOutcomeRecorded {\n\treadonly kind: \"workspace-proposal-domain-action-outcome-recorded\";\n\treadonly outcomeId: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: \"work-item-domain-action\";\n\treadonly actionRef: SourceRef;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalFamilyOutcomeIndexEntry {\n\treadonly kind: \"workspace-proposal-family-outcome-index-entry\";\n\treadonly indexKey: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly state: \"recorded\" | \"idempotency-conflict\";\n\treadonly outcomeRefs: readonly WorkspaceProposalFamilyOutcomeRef[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n}\n\nexport interface WorkspaceProposalRepairReviewRequest {\n\treadonly kind: \"workspace-proposal-repair-review-request\";\n\treadonly repairRequestId: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly code: string;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly subjectRefs?: readonly SourceRef[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport type WorkspaceProposalRepairReviewDecisionIntent =\n\t| \"acknowledged\"\n\t| \"resolved\"\n\t| \"withdrawn\"\n\t| \"superseded\";\n\nexport type WorkspaceProposalRepairReviewLifecycleState =\n\t| \"open\"\n\t| \"acknowledged\"\n\t| \"resolved\"\n\t| \"withdrawn\"\n\t| \"superseded\"\n\t| \"conflict\";\n\nexport type WorkspaceProposalRepairReviewProofKind =\n\t| \"human-decision\"\n\t| \"family-outcome-status\"\n\t| \"family-outcome-index\"\n\t| \"application-status\"\n\t| \"application-recorded\";\n\nexport interface WorkspaceProposalRepairReviewDecision {\n\treadonly kind: \"workspace-proposal-repair-review-decision\";\n\treadonly reviewDecisionId: string;\n\treadonly repairRequestId: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly intent: WorkspaceProposalRepairReviewDecisionIntent;\n\treadonly reviewerRef?: SourceRef;\n\treadonly actorRef?: SourceRef;\n\treadonly capabilityRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly reason?: string;\n\treadonly code?: string;\n\treadonly resolvesRefs?: readonly SourceRef[];\n\treadonly supersedesRefs?: readonly SourceRef[];\n\treadonly decidedAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRepairReviewStatus {\n\treadonly kind: \"workspace-proposal-repair-review-status\";\n\treadonly repairRequestId: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly state: WorkspaceProposalRepairReviewLifecycleState;\n\treadonly code?: string;\n\treadonly proofKind?: WorkspaceProposalRepairReviewProofKind;\n\treadonly proofRefs: readonly SourceRef[];\n\treadonly decisions: readonly WorkspaceProposalRepairReviewDecision[];\n\treadonly conflicts: readonly WorkspaceProposalRepairReviewDecision[];\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/** D438/D434 diagnostic classes for Workspace family application view material. */\nexport type WorkspaceProposalFamilyApplicationDiagnosticClass =\n\t| \"missing-durable-handoff\"\n\t| \"missing-family-material\"\n\t| \"idempotency-conflict\"\n\t| \"malformed-family-material\";\n\n/**\n * Human-visible Workspace diagnostic view material.\n *\n * This is projection-only: it does not create proposal, admission, application,\n * family truth, outcome, or repair authority (D438/D434/D437).\n */\nexport interface WorkspaceProposalFamilyApplicationDiagnostic {\n\treadonly kind: \"workspace-proposal-family-application-diagnostic\";\n\treadonly diagnosticId: string;\n\treadonly classification: WorkspaceProposalFamilyApplicationDiagnosticClass;\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n\treadonly code: string;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/** Existing material consumed by the family application diagnostic projector. */\nexport interface WorkspaceProposalFamilyApplicationDiagnosticProjectionInput {\n\treadonly issues?: readonly WorkspaceProposalRecordedIssue[];\n\treadonly audit?: readonly WorkspaceProposalFamilyApplicationAuditRecord[];\n\treadonly applicationStatuses?: readonly WorkspaceProposalApplicationStatus[];\n\treadonly outcomeStatuses?: readonly WorkspaceProposalFamilyOutcomeRecordStatus[];\n\treadonly outcomeIndex?: readonly WorkspaceProposalFamilyOutcomeIndexEntry[];\n}\n\n/** Graph inputs for the family application diagnostic projector. */\nexport interface WorkspaceProposalFamilyApplicationDiagnosticProjectorOptions {\n\treadonly name?: string;\n\treadonly issues?: Node<WorkspaceProposalRecordedIssue>;\n\treadonly audit?: Node<WorkspaceProposalFamilyApplicationAuditRecord>;\n\treadonly applicationStatuses?: Node<WorkspaceProposalApplicationStatus>;\n\treadonly outcomeStatuses?: Node<WorkspaceProposalFamilyOutcomeRecordStatus>;\n\treadonly outcomeIndex?: Node<WorkspaceProposalFamilyOutcomeIndexEntry>;\n}\n\n/** Graph-visible diagnostic projection output. */\nexport interface WorkspaceProposalFamilyApplicationDiagnosticProjectorBundle {\n\treadonly diagnostics: Node<WorkspaceProposalFamilyApplicationDiagnostic>;\n}\n\n/** Existing durable status/outcome/index material eligible for repair review lowering. */\nexport interface WorkspaceProposalRepairReviewProjectionInput {\n\treadonly applicationStatuses?: readonly WorkspaceProposalApplicationStatus[];\n\treadonly outcomeStatuses?: readonly WorkspaceProposalFamilyOutcomeRecordStatus[];\n\treadonly outcomeIndex?: readonly WorkspaceProposalFamilyOutcomeIndexEntry[];\n}\n\n/** Graph inputs for human-visible repair review request projection. */\nexport interface WorkspaceProposalRepairReviewProjectorOptions {\n\treadonly name?: string;\n\treadonly applicationStatuses?: Node<WorkspaceProposalApplicationStatus>;\n\treadonly outcomeStatuses?: Node<WorkspaceProposalFamilyOutcomeRecordStatus>;\n\treadonly outcomeIndex?: Node<WorkspaceProposalFamilyOutcomeIndexEntry>;\n}\n\n/** Graph-visible human review requests; requests do not authorize remutation. */\nexport interface WorkspaceProposalRepairReviewProjectorBundle {\n\treadonly requests: Node<WorkspaceProposalRepairReviewRequest>;\n}\n\nexport interface WorkspaceProposalRepairReviewStatusProjectionInput {\n\treadonly requests?: readonly WorkspaceProposalRepairReviewRequest[];\n\treadonly decisions?: readonly WorkspaceProposalRepairReviewDecision[];\n\treadonly applicationStatuses?: readonly WorkspaceProposalApplicationStatus[];\n\treadonly applicationRecorded?: readonly WorkspaceProposalApplicationRecorded[];\n\treadonly outcomeStatuses?: readonly WorkspaceProposalFamilyOutcomeRecordStatus[];\n\treadonly outcomeIndex?: readonly WorkspaceProposalFamilyOutcomeIndexEntry[];\n}\n\nexport interface WorkspaceProposalRepairReviewStatusProjectorOptions {\n\treadonly name?: string;\n\treadonly requests: Node<WorkspaceProposalRepairReviewRequest>;\n\treadonly decisions?: Node<WorkspaceProposalRepairReviewDecision>;\n\treadonly applicationStatuses?: Node<WorkspaceProposalApplicationStatus>;\n\treadonly applicationRecorded?: Node<WorkspaceProposalApplicationRecorded>;\n\treadonly outcomeStatuses?: Node<WorkspaceProposalFamilyOutcomeRecordStatus>;\n\treadonly outcomeIndex?: Node<WorkspaceProposalFamilyOutcomeIndexEntry>;\n}\n\nexport interface WorkspaceProposalRepairReviewStatusProjectorBundle {\n\treadonly statuses: Node<WorkspaceProposalRepairReviewStatus>;\n}\n\nexport type WorkspaceProposalRepairReviewDecisionRecordingStatus = \"recorded\" | \"blocked\";\n\nexport interface WorkspaceProposalRepairReviewExpectedCurrentState {\n\treadonly state?: WorkspaceProposalRepairReviewLifecycleState;\n\treadonly code?: string;\n\treadonly proofKind?: WorkspaceProposalRepairReviewProofKind;\n\treadonly proofRefs?: readonly SourceRef[];\n}\n\nexport interface WorkspaceProposalRepairReviewDecisionRecordingOptions {\n\treadonly reviewDecisionId?: string;\n\treadonly intent?: WorkspaceProposalRepairReviewDecisionIntent;\n\treadonly reviewerRef?: SourceRef;\n\treadonly actorRef?: SourceRef;\n\treadonly capabilityRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly reason?: string;\n\treadonly code?: string;\n\treadonly resolvesRefs?: readonly SourceRef[];\n\treadonly supersedesRefs?: readonly SourceRef[];\n\treadonly decidedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n\treadonly currentStatus?: WorkspaceProposalRepairReviewStatus;\n\treadonly expectedCurrentState?: WorkspaceProposalRepairReviewExpectedCurrentState;\n}\n\nexport interface WorkspaceProposalRepairReviewDecisionRecordingInput {\n\treadonly kind: \"workspace-proposal-repair-review-decision-recording-input\";\n\treadonly repairRequestId: string;\n\treadonly reviewDecisionId: string;\n\treadonly intent: WorkspaceProposalRepairReviewDecisionIntent;\n\treadonly reviewerRef?: SourceRef;\n\treadonly actorRef?: SourceRef;\n\treadonly capabilityRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly reason?: string;\n\treadonly code?: string;\n\treadonly resolvesRefs?: readonly SourceRef[];\n\treadonly supersedesRefs?: readonly SourceRef[];\n\treadonly decidedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n\treadonly expectedCurrentState?: WorkspaceProposalRepairReviewExpectedCurrentState;\n}\n\nexport interface WorkspaceProposalRepairReviewDecisionRecordingResult {\n\treadonly kind: \"workspace-proposal-repair-review-decision-recording-result\";\n\treadonly status: WorkspaceProposalRepairReviewDecisionRecordingStatus;\n\treadonly decision?: WorkspaceProposalRepairReviewDecision;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly sourceRefs: readonly SourceRef[];\n}\n\nexport interface WorkspaceProposalRepairReviewDecisionRecordingProjectionInput {\n\treadonly requests?: readonly WorkspaceProposalRepairReviewRequest[];\n\treadonly recordingInputs?: readonly WorkspaceProposalRepairReviewDecisionRecordingInput[];\n\treadonly statuses?: readonly WorkspaceProposalRepairReviewStatus[];\n}\n\nexport interface WorkspaceProposalRepairReviewDecisionRecordingProjectorOptions {\n\treadonly name?: string;\n\treadonly requests: Node<WorkspaceProposalRepairReviewRequest>;\n\treadonly recordingInputs: Node<WorkspaceProposalRepairReviewDecisionRecordingInput>;\n\treadonly statuses?: Node<WorkspaceProposalRepairReviewStatus>;\n}\n\nexport interface WorkspaceProposalRepairReviewDecisionRecordingProjectorBundle {\n\treadonly results: Node<WorkspaceProposalRepairReviewDecisionRecordingResult>;\n\treadonly decisions: Node<WorkspaceProposalRepairReviewDecision>;\n\treadonly issues: Node<WorkspaceProposalRecordedIssue>;\n}\n\nexport interface WorkspaceProposalFamilyOutcomeDetail {\n\treadonly kind: \"workspace-proposal-family-outcome-detail\";\n\treadonly outcomeRef: WorkspaceProposalFamilyOutcomeRef;\n\treadonly outcome?: WorkspaceProposalFamilyOutcomeRecord;\n\treadonly status?: WorkspaceProposalFamilyOutcomeRecordStatus;\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic {\n\treadonly kind: \"workspace-proposal-family-application-read-model-display-diagnostic\";\n\treadonly diagnosticId: string;\n\treadonly code:\n\t\t| \"incomplete-read-model-query\"\n\t\t| \"malformed-read-model-query\"\n\t\t| \"malformed-read-model-presentation-options\"\n\t\t| \"malformed-outcome-detail-supply-request\"\n\t\t| \"malformed-supplied-outcome-detail\"\n\t\t| \"missing-supplied-outcome-detail\"\n\t\t| \"mismatched-supplied-outcome-detail\"\n\t\t| \"missing-outcome-detail\"\n\t\t| \"mismatched-outcome-detail\"\n\t\t| \"mismatched-outcome-status\";\n\treadonly message: string;\n\treadonly queryId?: string;\n\treadonly viewId?: string;\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n\treadonly outcomeRef?: WorkspaceProposalFamilyOutcomeRef;\n\treadonly sourceRefs: readonly SourceRef[];\n}\n\nexport type WorkspaceProposalFamilyApplicationReadModelSortField =\n\t| \"outcome-id\"\n\t| \"outcome-kind\"\n\t| \"diagnostic-code\"\n\t| \"repair-state\"\n\t| \"recorded-at-ms\";\n\nexport type WorkspaceProposalFamilyApplicationReadModelSortDirection = \"asc\" | \"desc\";\n\nexport interface WorkspaceProposalFamilyApplicationReadModelSortOption {\n\treadonly field: WorkspaceProposalFamilyApplicationReadModelSortField;\n\treadonly direction: WorkspaceProposalFamilyApplicationReadModelSortDirection;\n}\n\nexport type WorkspaceProposalFamilyApplicationReadModelGroupField =\n\t| \"outcome-kind\"\n\t| \"repair-state\"\n\t| \"diagnostic-code\";\n\nexport type WorkspaceProposalFamilyApplicationReadModelSearchField =\n\t| \"outcome-id\"\n\t| \"outcome-kind\"\n\t| \"diagnostic-code\"\n\t| \"diagnostic-message\"\n\t| \"repair-state\";\n\nexport interface WorkspaceProposalFamilyApplicationReadModelSearchOptions {\n\treadonly text?: string;\n\treadonly fields?: readonly WorkspaceProposalFamilyApplicationReadModelSearchField[];\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelNormalizedSearch {\n\treadonly text: string;\n\treadonly fields: readonly WorkspaceProposalFamilyApplicationReadModelSearchField[];\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelDisplayGroup {\n\treadonly kind: \"workspace-proposal-family-application-read-model-display-group\";\n\treadonly field: WorkspaceProposalFamilyApplicationReadModelGroupField;\n\treadonly value: string;\n\treadonly outcomeRefs: readonly WorkspaceProposalFamilyOutcomeRef[];\n\treadonly count: number;\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModel {\n\treadonly kind: \"workspace-proposal-family-application-read-model\";\n\treadonly readModelId: string;\n\treadonly queryId?: string;\n\treadonly viewId?: string;\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n\treadonly filters?: WorkspaceProposalFamilyApplicationReadModelNormalizedFilters;\n\treadonly sort?: readonly WorkspaceProposalFamilyApplicationReadModelSortOption[];\n\treadonly groupBy?: readonly WorkspaceProposalFamilyApplicationReadModelGroupField[];\n\treadonly search?: WorkspaceProposalFamilyApplicationReadModelNormalizedSearch;\n\treadonly diagnostics: readonly WorkspaceProposalFamilyApplicationDiagnostic[];\n\treadonly repairReviewStatuses: readonly WorkspaceProposalRepairReviewStatus[];\n\treadonly outcomeIndexes: readonly WorkspaceProposalFamilyOutcomeIndexEntry[];\n\treadonly outcomeDetails: readonly WorkspaceProposalFamilyOutcomeDetail[];\n\treadonly displayGroups: readonly WorkspaceProposalFamilyApplicationReadModelDisplayGroup[];\n\treadonly displayDiagnostics: readonly WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic[];\n\treadonly page: {\n\t\treadonly offset: number;\n\t\treadonly limit: number;\n\t\treadonly totalOutcomeRefs: number;\n\t\treadonly returnedOutcomeRefs: number;\n\t};\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelPage {\n\treadonly offset?: number;\n\treadonly limit?: number;\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelFilters {\n\treadonly outcomeIds?: readonly string[];\n\treadonly outcomeKinds?: readonly WorkspaceProposalFamilyOutcomeRecord[\"kind\"][];\n\treadonly diagnosticCodes?: readonly string[];\n\treadonly repairStates?: readonly WorkspaceProposalRepairReviewLifecycleState[];\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelNormalizedFilters {\n\treadonly outcomeIds: readonly string[];\n\treadonly outcomeKinds: readonly WorkspaceProposalFamilyOutcomeRecord[\"kind\"][];\n\treadonly diagnosticCodes: readonly string[];\n\treadonly repairStates: readonly WorkspaceProposalRepairReviewLifecycleState[];\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelQuery {\n\treadonly kind: \"workspace-proposal-family-application-read-model-query\";\n\treadonly queryId: string;\n\treadonly viewId?: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly page?: WorkspaceProposalFamilyApplicationReadModelPage;\n\treadonly filters?: WorkspaceProposalFamilyApplicationReadModelFilters;\n\treadonly sort?: readonly WorkspaceProposalFamilyApplicationReadModelSortOption[];\n\treadonly groupBy?: readonly WorkspaceProposalFamilyApplicationReadModelGroupField[];\n\treadonly search?: WorkspaceProposalFamilyApplicationReadModelSearchOptions;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * Closed D472 current-view scopes that Workspace projection release material may target.\n *\n * Release targets are projector-local display/read-model retention scopes only; they are\n * not proposal truth, permission proof, storage ownership, or history deletion handles.\n */\nexport type WorkspaceProposalProjectionReleaseTargetKind =\n\t| \"family-read-model-query\"\n\t| \"outcome-detail-supply-request\"\n\t| \"repair-action-advisory\"\n\t| \"repair-action-intent\"\n\t| \"repair-successor-preview\"\n\t| \"repair-successor-preparation\";\n\n/**\n * D472 graph-visible request to release projector-local current-view material.\n *\n * A release may let a projector prune retained request/input/signature state, but it\n * does not revoke DATA history, delete proposal/admission/application/family truth,\n * satisfy policy validation, or carry runtime/storage/provider handles.\n */\nexport interface WorkspaceProposalProjectionRelease {\n\treadonly kind: \"workspace-proposal-projection-release\";\n\treadonly releaseId: string;\n\treadonly targetKind: WorkspaceProposalProjectionReleaseTargetKind;\n\treadonly targetId: string;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly viewId?: string;\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n\treadonly queryId?: string;\n\treadonly supplyRequestId?: string;\n\treadonly descriptorId?: string;\n\treadonly repairRequestId?: string;\n\treadonly actionKind?: WorkspaceProposalRepairActionKind;\n\treadonly intentId?: string;\n\treadonly previewId?: string;\n\treadonly preparationId?: string;\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * D473 validation result for projection release material.\n *\n * Accepted results carry a frozen data-only release DTO; blocked results are\n * diagnostics input only and do not prove that any retained state existed.\n */\nexport interface WorkspaceProposalProjectionReleaseValidationResult {\n\treadonly kind: \"workspace-proposal-projection-release-validation-result\";\n\treadonly status: \"accepted\" | \"blocked\";\n\treadonly release?: WorkspaceProposalProjectionRelease;\n\treadonly releaseId?: string;\n\treadonly targetKind?: WorkspaceProposalProjectionReleaseTargetKind;\n\treadonly targetId?: string;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\n/**\n * D473 data-only diagnostic for malformed or unsafe release material.\n *\n * Diagnostics report why a release was ignored; they are not permission,\n * retention, deletion, revocation, or historical-truth evidence.\n */\nexport interface WorkspaceProposalProjectionReleaseDiagnostic {\n\treadonly kind: \"workspace-proposal-projection-release-diagnostic\";\n\treadonly diagnosticId: string;\n\treadonly releaseId?: string;\n\treadonly targetKind?: WorkspaceProposalProjectionReleaseTargetKind;\n\treadonly targetId?: string;\n\treadonly status: \"blocked\";\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelProjectionInput {\n\treadonly diagnostics?: readonly WorkspaceProposalFamilyApplicationDiagnostic[];\n\treadonly repairReviewStatuses?: readonly WorkspaceProposalRepairReviewStatus[];\n\treadonly outcomeIndex?: readonly WorkspaceProposalFamilyOutcomeIndexEntry[];\n\treadonly outcomeStatuses?: readonly WorkspaceProposalFamilyOutcomeRecordStatus[];\n\treadonly outcomes?: readonly WorkspaceProposalFamilyOutcomeRecord[];\n\treadonly queryId?: string;\n\treadonly viewId?: string;\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n\treadonly offset?: number;\n\treadonly limit?: number;\n\treadonly filters?: WorkspaceProposalFamilyApplicationReadModelFilters;\n\treadonly sort?: readonly WorkspaceProposalFamilyApplicationReadModelSortOption[];\n\treadonly groupBy?: readonly WorkspaceProposalFamilyApplicationReadModelGroupField[];\n\treadonly search?: WorkspaceProposalFamilyApplicationReadModelSearchOptions;\n\treadonly displayDiagnostics?: readonly WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic[];\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelProjectorOptions {\n\treadonly name?: string;\n\treadonly diagnostics?: Node<WorkspaceProposalFamilyApplicationDiagnostic>;\n\treadonly repairReviewStatuses?: Node<WorkspaceProposalRepairReviewStatus>;\n\treadonly outcomeIndex?: Node<WorkspaceProposalFamilyOutcomeIndexEntry>;\n\treadonly outcomeStatuses?: Node<WorkspaceProposalFamilyOutcomeRecordStatus>;\n\treadonly outcomes?: Node<WorkspaceProposalFamilyOutcomeRecord>;\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n\treadonly offset?: number;\n\treadonly limit?: number;\n\treadonly sort?: readonly WorkspaceProposalFamilyApplicationReadModelSortOption[];\n\treadonly groupBy?: readonly WorkspaceProposalFamilyApplicationReadModelGroupField[];\n\treadonly search?: WorkspaceProposalFamilyApplicationReadModelSearchOptions;\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelsProjectionInput {\n\treadonly queries?: readonly WorkspaceProposalFamilyApplicationReadModelQuery[];\n\treadonly diagnostics?: readonly WorkspaceProposalFamilyApplicationDiagnostic[];\n\treadonly repairReviewStatuses?: readonly WorkspaceProposalRepairReviewStatus[];\n\treadonly outcomeIndex?: readonly WorkspaceProposalFamilyOutcomeIndexEntry[];\n\treadonly outcomeStatuses?: readonly WorkspaceProposalFamilyOutcomeRecordStatus[];\n\treadonly outcomes?: readonly WorkspaceProposalFamilyOutcomeRecord[];\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelsProjectorOptions {\n\treadonly name?: string;\n\treadonly queries: Node<WorkspaceProposalFamilyApplicationReadModelQuery>;\n\treadonly releases?: Node<WorkspaceProposalProjectionRelease>;\n\treadonly diagnostics?: Node<WorkspaceProposalFamilyApplicationDiagnostic>;\n\treadonly repairReviewStatuses?: Node<WorkspaceProposalRepairReviewStatus>;\n\treadonly outcomeIndex?: Node<WorkspaceProposalFamilyOutcomeIndexEntry>;\n\treadonly outcomeStatuses?: Node<WorkspaceProposalFamilyOutcomeRecordStatus>;\n\treadonly outcomes?: Node<WorkspaceProposalFamilyOutcomeRecord>;\n}\n\n/**\n * Inputs for the D473 release diagnostic projector.\n *\n * The projector observes unknown release material and emits only blocked\n * diagnostics; it does not apply release/prune behavior itself.\n */\nexport interface WorkspaceProposalProjectionReleaseDiagnosticProjectorOptions {\n\treadonly name?: string;\n\treadonly releases: Node<unknown>;\n}\n\n/** Data-only diagnostic projection bundle for rejected D472 release material. */\nexport interface WorkspaceProposalProjectionReleaseDiagnosticProjectorBundle {\n\treadonly diagnostics: Node<WorkspaceProposalProjectionReleaseDiagnostic>;\n}\n\nexport interface WorkspaceProposalFamilyApplicationReadModelProjectorBundle {\n\treadonly readModels: Node<WorkspaceProposalFamilyApplicationReadModel>;\n}\n\nexport interface WorkspaceProposalFamilyOutcomeDetailSupplyRequest {\n\treadonly kind: \"workspace-proposal-family-outcome-detail-supply-request\";\n\treadonly supplyRequestId: string;\n\treadonly viewId?: string;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly requestedOutcomeRefs: readonly WorkspaceProposalFamilyOutcomeRef[];\n\treadonly page?: WorkspaceProposalFamilyApplicationReadModelPage;\n\treadonly filters?: WorkspaceProposalFamilyApplicationReadModelFilters;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalFamilyOutcomeDetailSupplyResult {\n\treadonly kind: \"workspace-proposal-family-outcome-detail-supply-result\";\n\treadonly supplyRequestId?: string;\n\treadonly viewId?: string;\n\treadonly currentViewId: string;\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n\treadonly suppliedOutcomeFacts: readonly WorkspaceProposalFamilyOutcomeRecord[];\n\treadonly missingRefs: readonly WorkspaceProposalFamilyOutcomeRef[];\n\treadonly mismatchedRefs: readonly WorkspaceProposalFamilyOutcomeRef[];\n\treadonly displayDiagnostics: readonly WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic[];\n\treadonly page: { readonly offset: number; readonly limit: number };\n\treadonly filters: WorkspaceProposalFamilyApplicationReadModelNormalizedFilters;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport interface WorkspaceProposalFamilyOutcomeDetailSupplyProjectionInput {\n\treadonly requests?: readonly WorkspaceProposalFamilyOutcomeDetailSupplyRequest[];\n\treadonly suppliedOutcomes?: readonly WorkspaceProposalFamilyOutcomeRecord[];\n}\n\nexport interface WorkspaceProposalFamilyOutcomeDetailSupplyProjectorOptions {\n\treadonly name?: string;\n\treadonly requests: Node<WorkspaceProposalFamilyOutcomeDetailSupplyRequest>;\n\treadonly suppliedOutcomes: Node<WorkspaceProposalFamilyOutcomeRecord>;\n\treadonly releases?: Node<WorkspaceProposalProjectionRelease>;\n}\n\nexport interface WorkspaceProposalFamilyOutcomeDetailSupplyProjectorBundle {\n\treadonly results: Node<WorkspaceProposalFamilyOutcomeDetailSupplyResult>;\n}\n\nexport type WorkspaceProposalRepairActionKind =\n\t| \"acknowledge-review\"\n\t| \"withdraw-review\"\n\t| \"mark-human-resolved\"\n\t| \"supersede-review\"\n\t| \"open-successor-proposal-flow\";\n\nexport type WorkspaceProposalRepairActionDescriptorDisabledCode =\n\t| \"repair-review-already-acknowledged\"\n\t| \"repair-review-conflict\"\n\t| \"repair-review-terminal\";\n\nexport interface WorkspaceProposalRepairActionDescriptor {\n\treadonly kind: \"workspace-proposal-repair-action-descriptor\";\n\treadonly descriptorId: string;\n\treadonly repairRequestId: string;\n\treadonly repairState: WorkspaceProposalRepairReviewLifecycleState;\n\treadonly repairStatusRef?: SourceRef;\n\treadonly actionKind: WorkspaceProposalRepairActionKind;\n\treadonly enabled: boolean;\n\treadonly disabledCode?: WorkspaceProposalRepairActionDescriptorDisabledCode;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRepairActionDescriptorProjectionInput {\n\treadonly requests?: readonly WorkspaceProposalRepairReviewRequest[];\n\treadonly statuses?: readonly WorkspaceProposalRepairReviewStatus[];\n}\n\nexport interface WorkspaceProposalRepairActionDescriptorProjectorOptions {\n\treadonly name?: string;\n\treadonly requests: Node<WorkspaceProposalRepairReviewRequest>;\n\treadonly statuses?: Node<WorkspaceProposalRepairReviewStatus>;\n}\n\nexport interface WorkspaceProposalRepairActionDescriptorProjectorBundle {\n\treadonly descriptors: Node<WorkspaceProposalRepairActionDescriptor>;\n}\n\nexport interface WorkspaceProposalRepairActionIntent {\n\treadonly kind: \"workspace-proposal-repair-action-intent\";\n\treadonly intentId: string;\n\treadonly descriptorId: string;\n\treadonly repairRequestId: string;\n\treadonly actionKind: WorkspaceProposalRepairActionKind;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly reviewerRef?: SourceRef;\n\treadonly actorRef?: SourceRef;\n\treadonly capabilityRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n\treadonly expectedCurrentState?: WorkspaceProposalRepairReviewExpectedCurrentState;\n}\n\nexport type WorkspaceProposalRepairActionIntentValidationStatus = \"accepted\" | \"blocked\";\n\nexport interface WorkspaceProposalRepairActionIntentValidationOptions {\n\treadonly descriptor?: WorkspaceProposalRepairActionDescriptor;\n\treadonly request?: WorkspaceProposalRepairReviewRequest;\n\treadonly currentStatus?: WorkspaceProposalRepairReviewStatus;\n\treadonly expectedCurrentState?: WorkspaceProposalRepairReviewExpectedCurrentState;\n\treadonly capabilityRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly policyStatus?: \"allowed\" | \"blocked\" | \"missing\" | \"unknown\";\n\treadonly policyIssues?: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport interface WorkspaceProposalRepairActionIntentValidationResult {\n\treadonly kind: \"workspace-proposal-repair-action-intent-validation-result\";\n\treadonly status: WorkspaceProposalRepairActionIntentValidationStatus;\n\treadonly intentId?: string;\n\treadonly descriptorId?: string;\n\treadonly repairRequestId?: string;\n\treadonly actionKind?: WorkspaceProposalRepairActionKind;\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly intent?: WorkspaceProposalRepairActionIntent;\n}\n\nexport type WorkspaceProposalRepairActionDisplayPolicyAssessment =\n\t| \"not-evaluated\"\n\t| \"no-known-blocker\"\n\t| \"known-blocker\"\n\t| \"needs-review\"\n\t| \"unknown\";\n\nexport interface WorkspaceProposalRepairActionDisplayPolicyAdvisoryIssue {\n\treadonly kind: string;\n\treadonly message: string;\n\treadonly severity?: \"info\" | \"warning\" | \"error\";\n\treadonly ref?: SourceRef;\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * D468 display-only policy advisory. This DTO is intentionally joinable by\n * repair action coordinates but is never permission proof for intake.\n */\nexport interface WorkspaceProposalRepairActionDisplayPolicyAdvisory {\n\treadonly kind: \"workspace-proposal-repair-action-display-policy-advisory\";\n\treadonly authority: \"display-only-advisory\";\n\treadonly descriptorId: string;\n\treadonly repairRequestId: string;\n\treadonly actionKind: WorkspaceProposalRepairActionKind;\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly displayAssessment: WorkspaceProposalRepairActionDisplayPolicyAssessment;\n\treadonly policyEvidenceRefs?: readonly SourceRef[];\n\treadonly capabilityEvidenceRefs?: readonly SourceRef[];\n\treadonly advisoryIssues?: readonly WorkspaceProposalRepairActionDisplayPolicyAdvisoryIssue[];\n\treadonly displayCode?: string;\n\treadonly displayMessage?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRepairActionDisplayPolicyAdvisoryValidationResult {\n\treadonly kind: \"workspace-proposal-repair-action-display-policy-advisory-validation-result\";\n\treadonly status: \"accepted\" | \"blocked\";\n\treadonly descriptorId?: string;\n\treadonly repairRequestId?: string;\n\treadonly actionKind?: WorkspaceProposalRepairActionKind;\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly advisory?: WorkspaceProposalRepairActionDisplayPolicyAdvisory;\n}\n\nexport interface WorkspaceProposalRepairActionDisplayPolicyAdvisoryValidationOptions {\n\treadonly descriptor?: WorkspaceProposalRepairActionDescriptor;\n\treadonly request?: WorkspaceProposalRepairReviewRequest;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport interface WorkspaceProposalRepairActionDisplayPolicyAdvisoryProjectorOptions {\n\treadonly name?: string;\n\treadonly descriptors: Node<WorkspaceProposalRepairActionDescriptor>;\n\treadonly requests: Node<WorkspaceProposalRepairReviewRequest>;\n\treadonly releases?: Node<WorkspaceProposalProjectionRelease>;\n\treadonly displayAssessment?: WorkspaceProposalRepairActionDisplayPolicyAssessment;\n\treadonly policyEvidenceRefs?: readonly SourceRef[];\n\treadonly capabilityEvidenceRefs?: readonly SourceRef[];\n\treadonly advisoryIssues?: readonly WorkspaceProposalRepairActionDisplayPolicyAdvisoryIssue[];\n\treadonly displayCode?: string;\n\treadonly displayMessage?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRepairActionDisplayPolicyAdvisoryProjectorBundle {\n\treadonly advisories: Node<WorkspaceProposalRepairActionDisplayPolicyAdvisory>;\n}\n\nexport interface WorkspaceProposalRepairReviewDecisionRecordingInputPreparationOptions {\n\treadonly reviewDecisionId?: string;\n\treadonly reviewerRef?: SourceRef;\n\treadonly actorRef?: SourceRef;\n\treadonly capabilityRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly reason?: string;\n\treadonly code?: string;\n\treadonly resolvesRefs?: readonly SourceRef[];\n\treadonly supersedesRefs?: readonly SourceRef[];\n\treadonly decidedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRepairReviewDecisionRecordingInputPreparationResult {\n\treadonly kind: \"workspace-proposal-repair-review-decision-recording-input-preparation-result\";\n\treadonly status: \"prepared\" | \"blocked\";\n\treadonly recordingInput?: WorkspaceProposalRepairReviewDecisionRecordingInput;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport interface WorkspaceProposalRepairActionIntentProjectorOptions {\n\treadonly name?: string;\n\treadonly intents: Node<WorkspaceProposalRepairActionIntent>;\n\treadonly descriptors: Node<WorkspaceProposalRepairActionDescriptor>;\n\treadonly requests: Node<WorkspaceProposalRepairReviewRequest>;\n\treadonly statuses?: Node<WorkspaceProposalRepairReviewStatus>;\n\treadonly releases?: Node<WorkspaceProposalProjectionRelease>;\n\treadonly capabilityRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly policyStatus?: \"allowed\" | \"blocked\" | \"missing\" | \"unknown\";\n}\n\nexport interface WorkspaceProposalRepairActionIntentProjectorBundle {\n\treadonly results: Node<WorkspaceProposalRepairActionIntentValidationResult>;\n}\n\nexport interface WorkspaceProposalRepairSuccessorProposalIntakePreviewOptions {\n\treadonly previewId?: string;\n\treadonly currentStatus?: WorkspaceProposalRepairReviewStatus;\n\treadonly expectedCurrentState?: WorkspaceProposalRepairReviewExpectedCurrentState;\n\treadonly capabilityRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly policyStatus?: \"allowed\" | \"blocked\" | \"missing\" | \"unknown\";\n\treadonly policyIssues?: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly contextRefs?: readonly SourceRef[];\n\treadonly suggestedFamily?: WorkspaceProposalFamily;\n\treadonly suggestedLoweringKind?: string;\n\treadonly reason?: string;\n\treadonly code?: string;\n\treadonly suggestedDraftPatch?: Record<string, unknown>;\n\treadonly maxSuggestedDraftPatchBytes?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRepairSuccessorProposalIntakePreview {\n\treadonly kind: \"workspace-proposal-repair-successor-proposal-intake-preview\";\n\treadonly previewId: string;\n\treadonly status: \"proposal-context-ready\" | \"blocked\";\n\treadonly intentId: string;\n\treadonly actionIntentId?: string;\n\treadonly descriptorId: string;\n\treadonly repairRequestId: string;\n\treadonly actionKind: \"open-successor-proposal-flow\";\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n\treadonly suggestedFamily?: WorkspaceProposalFamily;\n\treadonly suggestedLoweringKind?: string;\n\treadonly targetRefs: readonly SourceRef[];\n\treadonly contextRefs: readonly SourceRef[];\n\treadonly reason?: string;\n\treadonly code?: string;\n\treadonly suggestedDraftPatch?: Record<string, unknown>;\n\treadonly diagnostics: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationInput<\n\tTDraft = unknown,\n> {\n\treadonly kind: \"workspace-proposal-repair-successor-proposal-ready-request-preparation-input\";\n\treadonly preparationId: string;\n\treadonly previewId: string;\n\treadonly intent: WorkspaceProposalRepairActionIntent;\n\treadonly descriptor: WorkspaceProposalRepairActionDescriptor;\n\treadonly request: WorkspaceProposalRepairReviewRequest;\n\treadonly intentValidation: WorkspaceProposalRepairActionIntentValidationResult;\n\treadonly currentStatus?: WorkspaceProposalRepairReviewStatus;\n\treadonly expectedCurrentState?: WorkspaceProposalRepairReviewExpectedCurrentState;\n\treadonly successorProposalId: string;\n\treadonly intakeRequestId: string;\n\treadonly successorIdempotencyKey: string;\n\treadonly workspaceId: string;\n\treadonly actorRef: SourceRef;\n\treadonly capabilityRefs: readonly SourceRef[];\n\treadonly policyRefs: readonly SourceRef[];\n\treadonly projectionBundleRefs: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly audit: WorkspaceProposalAuditMaterial;\n\treadonly targetRefs: readonly WorkspaceProposalTargetRef[];\n\treadonly successorProposalFamily: WorkspaceProposalFamily;\n\treadonly successorLoweringKind: string;\n\treadonly draft?: TDraft;\n\treadonly draftRefs?: readonly SourceRef[];\n\treadonly finalDraftSourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationResult<\n\tTDraft = unknown,\n> {\n\treadonly kind: \"workspace-proposal-repair-successor-proposal-ready-request-preparation-result\";\n\treadonly status: \"prepared\" | \"blocked\";\n\treadonly preparationId?: string;\n\treadonly previewId?: string;\n\treadonly repairRequestId?: string;\n\treadonly descriptorId?: string;\n\treadonly intentId?: string;\n\treadonly readyRequest?: WorkspaceProposalReadyRequest<TDraft>;\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly sourceRefs: readonly SourceRef[];\n\treadonly audit?: WorkspaceProposalAuditMaterial;\n}\n\nexport interface WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationProjectorOptions<\n\tTDraft = unknown,\n> {\n\treadonly name?: string;\n\treadonly previews: Node<WorkspaceProposalRepairSuccessorProposalIntakePreview>;\n\treadonly preparationInputs: Node<\n\t\tWorkspaceProposalRepairSuccessorProposalReadyRequestPreparationInput<TDraft>\n\t>;\n\treadonly releases?: Node<WorkspaceProposalProjectionRelease>;\n}\n\nexport interface WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationProjectorBundle<\n\tTDraft = unknown,\n> {\n\treadonly results: Node<\n\t\tWorkspaceProposalRepairSuccessorProposalReadyRequestPreparationResult<TDraft>\n\t>;\n\treadonly readyRequests: Node<WorkspaceProposalReadyRequest<TDraft>>;\n\treadonly issues: Node<WorkspaceProposalRecordedIssue>;\n}\n\nexport interface WorkspaceProposalRepairSuccessorProposalIntakePreviewProjectorOptions {\n\treadonly name?: string;\n\treadonly intents: Node<WorkspaceProposalRepairActionIntent>;\n\treadonly descriptors: Node<WorkspaceProposalRepairActionDescriptor>;\n\treadonly requests: Node<WorkspaceProposalRepairReviewRequest>;\n\treadonly statuses?: Node<WorkspaceProposalRepairReviewStatus>;\n\treadonly releases?: Node<WorkspaceProposalProjectionRelease>;\n\treadonly capabilityRefs?: readonly SourceRef[];\n\treadonly policyRefs?: readonly SourceRef[];\n\treadonly policyStatus?: \"allowed\" | \"blocked\" | \"missing\" | \"unknown\";\n\treadonly maxSuggestedDraftPatchBytes?: number;\n}\n\nexport interface WorkspaceProposalRepairSuccessorProposalIntakePreviewProjectorBundle {\n\treadonly previews: Node<WorkspaceProposalRepairSuccessorProposalIntakePreview>;\n}\n\ntype WorkspaceProposalFamilyApplicationRuntimeFact<TInput = unknown, TValue = unknown> =\n\t| {\n\t\t\treadonly kind: \"required-input-response-applied\";\n\t\t\treadonly value: RequiredInputResponseApplied<TValue>;\n\t }\n\t| { readonly kind: \"work-item-created\"; readonly value: WorkItemCreated<TInput> }\n\t| { readonly kind: \"work-item-linked\"; readonly value: WorkItemLinked }\n\t| { readonly kind: \"work-item-unlinked\"; readonly value: WorkItemUnlinked }\n\t| { readonly kind: \"status\"; readonly value: WorkspaceProposalApplicationStatus }\n\t| { readonly kind: \"recorded\"; readonly value: WorkspaceProposalApplicationRecorded }\n\t| { readonly kind: \"issue\"; readonly value: WorkspaceProposalRecordedIssue }\n\t| { readonly kind: \"audit\"; readonly value: WorkspaceProposalFamilyApplicationAuditRecord };\n\ntype WorkspaceProposalFamilyApplicationDiagnosticInputFact =\n\t| { readonly kind: \"issue\"; readonly value: WorkspaceProposalRecordedIssue }\n\t| { readonly kind: \"audit\"; readonly value: WorkspaceProposalFamilyApplicationAuditRecord }\n\t| { readonly kind: \"application-status\"; readonly value: WorkspaceProposalApplicationStatus }\n\t| { readonly kind: \"application-recorded\"; readonly value: WorkspaceProposalApplicationRecorded }\n\t| {\n\t\t\treadonly kind: \"outcome-status\";\n\t\t\treadonly value: WorkspaceProposalFamilyOutcomeRecordStatus;\n\t }\n\t| { readonly kind: \"outcome-index\"; readonly value: WorkspaceProposalFamilyOutcomeIndexEntry }\n\t| { readonly kind: \"repair-request\"; readonly value: WorkspaceProposalRepairReviewRequest }\n\t| { readonly kind: \"repair-decision\"; readonly value: WorkspaceProposalRepairReviewDecision }\n\t| { readonly kind: \"repair-status\"; readonly value: WorkspaceProposalRepairReviewStatus }\n\t| {\n\t\t\treadonly kind: \"repair-decision-recording-input\";\n\t\t\treadonly value: WorkspaceProposalRepairReviewDecisionRecordingInput;\n\t }\n\t| { readonly kind: \"diagnostic\"; readonly value: WorkspaceProposalFamilyApplicationDiagnostic }\n\t| {\n\t\t\treadonly kind: \"read-model-query\";\n\t\t\treadonly value: WorkspaceProposalFamilyApplicationReadModelQuery;\n\t }\n\t| { readonly kind: \"outcome\"; readonly value: WorkspaceProposalFamilyOutcomeRecord }\n\t| { readonly kind: \"projection-release\"; readonly value: WorkspaceProposalProjectionRelease };\n\ninterface WorkspaceProposalFamilyApplicationProjectionState {\n\treadonly issues: Map<string, WorkspaceProposalRecordedIssue>;\n\treadonly audit: Map<string, WorkspaceProposalFamilyApplicationAuditRecord>;\n\treadonly applicationStatuses: Map<string, WorkspaceProposalApplicationStatus>;\n\treadonly applicationRecorded: Map<string, WorkspaceProposalApplicationRecorded>;\n\treadonly outcomeStatuses: Map<string, WorkspaceProposalFamilyOutcomeRecordStatus>;\n\treadonly outcomeIndex: Map<string, WorkspaceProposalFamilyOutcomeIndexEntry>;\n\treadonly repairRequests: Map<string, WorkspaceProposalRepairReviewRequest>;\n\treadonly repairDecisions: Map<string, WorkspaceProposalRepairReviewDecision>;\n\treadonly repairStatuses: Map<string, WorkspaceProposalRepairReviewStatus>;\n\treadonly repairDecisionRecordingInputs: Map<\n\t\tstring,\n\t\tWorkspaceProposalRepairReviewDecisionRecordingInput\n\t>;\n\treadonly diagnostics: Map<string, WorkspaceProposalFamilyApplicationDiagnostic>;\n\treadonly readModelQueries: Map<string, WorkspaceProposalFamilyApplicationReadModelQuery>;\n\treadonly outcomes: Map<string, WorkspaceProposalFamilyOutcomeRecord>;\n\treadonly emittedDiagnostics: Map<string, string>;\n\treadonly emittedRepairRequests: Map<string, string>;\n\treadonly emittedRepairStatuses: Map<string, string>;\n\treadonly emittedRepairDecisionRecordings: Map<string, string>;\n\treadonly emittedReadModels: Map<string, string>;\n\treadonly emittedRepairActionDescriptors: Map<string, string>;\n}\n\ninterface WorkspaceProposalFamilyProjectorState<TInput = unknown, TDraft = unknown> {\n\treadonly records: Map<string, WorkspaceProposalRecorded<TDraft>>;\n\treadonly decisionsByProposal: Map<string, WorkspaceProposalAdmissionDecision>;\n\treadonly decisionsById: Map<string, WorkspaceProposalAdmissionDecision>;\n\treadonly contexts: Map<\n\t\tstring,\n\t\t{\n\t\t\treadonly applicationId: string;\n\t\t\treadonly proposalId: string;\n\t\t\treadonly decisionId?: string;\n\t\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\t\treadonly audit?: WorkspaceProposalAuditMaterial;\n\t\t}\n\t>;\n\treadonly gates: Map<string, RequiredInputGate>;\n\treadonly requests: Map<string, RequiredInputRequest>;\n\treadonly workItems: Map<string, WorkItemProjection<TInput>>;\n\treadonly links: Map<string, WorkItemLinkProjection>;\n\treadonly emittedDomainFacts: Map<string, WorkItemAuthoringFact>;\n\treadonly domainApplications: Map<string, WorkItemDomainActionApplication>;\n\treadonly applicationRefs: Map<string, WorkspaceProposalApplicationReplayEntry>;\n\treadonly factOwners: Map<string, string>;\n\treadonly durableHandoffDiagnostics: Set<string>;\n}\n\ninterface WorkspaceProposalApplicationReplayEntry {\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly emittedFactRefs: readonly WorkspaceProposalApplicationFamilyRef[];\n}\n\nexport function workspaceProposalRequiredInputResponseApplicationProjector<TValue = unknown>(\n\tgraph: Graph,\n\topts: WorkspaceProposalRequiredInputResponseApplicationProjectorOptions<TValue>,\n): WorkspaceProposalRequiredInputResponseApplicationProjectorBundle<TValue> {\n\tconst name = opts.name ?? \"workspaceProposalRequiredInputResponseApplication\";\n\tconst deps =\n\t\topts.requests === undefined\n\t\t\t? [opts.records, opts.decisions, opts.contexts, opts.gates]\n\t\t\t: [opts.records, opts.decisions, opts.contexts, opts.gates, opts.requests];\n\tconst runtime = graph.node<WorkspaceProposalFamilyApplicationRuntimeFact<unknown, TValue>>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectorState<unknown, RequiredInputResponseProposed<TValue>>(ctx);\n\t\t\tingestRecords(ctx, state, 0);\n\t\t\tingestDecisions(ctx, state, 1);\n\t\t\tingestContexts(ctx, state, 2);\n\t\t\tfor (const raw of depBatch(ctx, 3) ?? []) {\n\t\t\t\tconst gate = raw as RequiredInputGate;\n\t\t\t\tstate.gates.set(gate.gateId, gate);\n\t\t\t\tstate.gates.set(`${gate.requestId}:${gate.workItemId}`, gate);\n\t\t\t}\n\t\t\tif (opts.requests !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, 4) ?? []) {\n\t\t\t\t\tconst request = raw as RequiredInputRequest;\n\t\t\t\t\tstate.requests.set(request.requestId, request);\n\t\t\t\t\tstate.requests.set(`${request.requestId}:${request.workItemId}`, request);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const context of state.contexts.values()) {\n\t\t\t\tconst record = state.records.get(context.proposalId);\n\t\t\t\tconst decision = decisionForContext(state, context);\n\t\t\t\tif (record === undefined || decision === undefined) {\n\t\t\t\t\temitMissingDurableHandoffDiagnostics(ctx, state, context, \"required-input-response\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst draft = record.draft;\n\t\t\t\tconst draftShapeIssues = requiredInputDraftShapeIssues(record, draft);\n\t\t\t\tif (draftShapeIssues.length > 0) {\n\t\t\t\t\temitApplicationResult(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tprojectWorkspaceProposalApplicationStatus(record, decision, {\n\t\t\t\t\t\t\tapplicationId: context.applicationId,\n\t\t\t\t\t\t\tfamilyIssues: draftShapeIssues,\n\t\t\t\t\t\t\tsourceRefs: context.sourceRefs,\n\t\t\t\t\t\t\taudit: context.audit,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t[],\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst gate =\n\t\t\t\t\trequiredInputContextGate(\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tcontext as WorkspaceProposalRequiredInputResponseApplicationContext,\n\t\t\t\t\t\tdraft,\n\t\t\t\t\t) ?? undefined;\n\t\t\t\tif (gate === undefined) {\n\t\t\t\t\temitApplicationResult(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tmissingFamilyMaterialResult(record, decision, context, \"missing-required-input-gate\"),\n\t\t\t\t\t\t[],\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst request =\n\t\t\t\t\trequiredInputContextRequest(\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tcontext as WorkspaceProposalRequiredInputResponseApplicationContext,\n\t\t\t\t\t\tdraft,\n\t\t\t\t\t) ?? undefined;\n\t\t\t\tconst result = projectWorkspaceProposalRequiredInputResponseApplication(record, decision, {\n\t\t\t\t\tapplicationId: context.applicationId,\n\t\t\t\t\tgate,\n\t\t\t\t\trequest,\n\t\t\t\t\tappliedAtMs: (context as WorkspaceProposalRequiredInputResponseApplicationContext)\n\t\t\t\t\t\t.appliedAtMs,\n\t\t\t\t\tsourceRefs: context.sourceRefs,\n\t\t\t\t\taudit: context.audit,\n\t\t\t\t});\n\t\t\t\temitApplicationResult(\n\t\t\t\t\tctx,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\tresult.applied === undefined ? [] : [result.applied],\n\t\t\t\t);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalRequiredInputResponseApplicationProjector\"),\n\t);\n\treturn familyBundle(graph, runtime, name, {\n\t\tapplied: \"required-input-response-applied\",\n\t}) as unknown as WorkspaceProposalRequiredInputResponseApplicationProjectorBundle<TValue>;\n}\n\nexport function workspaceProposalWorkItemSpawnApplicationProjector<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkspaceProposalWorkItemSpawnApplicationProjectorOptions<TInput>,\n): WorkspaceProposalWorkItemSpawnApplicationProjectorBundle<TInput> {\n\tconst name = opts.name ?? \"workspaceProposalWorkItemSpawnApplication\";\n\tconst deps =\n\t\topts.workItems === undefined\n\t\t\t? [opts.records, opts.decisions, opts.contexts]\n\t\t\t: [opts.records, opts.decisions, opts.contexts, opts.workItems];\n\tconst runtime = graph.node<WorkspaceProposalFamilyApplicationRuntimeFact<TInput>>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectorState<\n\t\t\t\tTInput,\n\t\t\t\t{\n\t\t\t\t\treadonly kind: \"work-item-spawn-proposed\";\n\t\t\t\t\treadonly proposedWorkItemId?: string;\n\t\t\t\t\treadonly parentWorkItemId?: string;\n\t\t\t\t\treadonly draft: WorkItemDraft<TInput>;\n\t\t\t\t\treadonly proposedBy?: string;\n\t\t\t\t\treadonly idempotencyKey?: string;\n\t\t\t\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\t\t\t\treadonly metadata?: Record<string, unknown>;\n\t\t\t\t}\n\t\t\t>(ctx);\n\t\t\tingestRecords(ctx, state, 0);\n\t\t\tingestDecisions(ctx, state, 1);\n\t\t\tingestContexts(ctx, state, 2);\n\t\t\tif (opts.workItems !== undefined) ingestWorkItems(ctx, state, 3);\n\t\t\tfor (const context of state.contexts.values()) {\n\t\t\t\tconst record = state.records.get(context.proposalId);\n\t\t\t\tconst decision = decisionForContext(state, context);\n\t\t\t\tif (record === undefined || decision === undefined) {\n\t\t\t\t\temitMissingDurableHandoffDiagnostics(ctx, state, context, \"work-item-spawn\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst spawnContext = context as WorkspaceProposalWorkItemSpawnApplicationContext;\n\t\t\t\tconst result = projectWorkspaceProposalWorkItemSpawnApplication(record, decision, {\n\t\t\t\t\tapplicationId: context.applicationId,\n\t\t\t\t\texistingWorkItems: [...state.workItems.values()],\n\t\t\t\t\tlinkParent: spawnContext.linkParent,\n\t\t\t\t\tcreatedAtMs: spawnContext.createdAtMs,\n\t\t\t\t\tlinkedAtMs: spawnContext.linkedAtMs,\n\t\t\t\t\tsourceRefs: context.sourceRefs,\n\t\t\t\t\taudit: context.audit,\n\t\t\t\t});\n\t\t\t\temitApplicationResult(\n\t\t\t\t\tctx,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\t[result.created, result.linked].filter((item) => item !== undefined),\n\t\t\t\t);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalWorkItemSpawnApplicationProjector\"),\n\t);\n\treturn familyBundle(graph, runtime, name, {\n\t\tcreated: \"work-item-created\",\n\t\tlinked: \"work-item-linked\",\n\t}) as unknown as WorkspaceProposalWorkItemSpawnApplicationProjectorBundle<TInput>;\n}\n\nexport function workspaceProposalWorkItemLinkApplicationProjector<TInput = unknown>(\n\tgraph: Graph,\n\topts: WorkspaceProposalWorkItemLinkApplicationProjectorOptions<TInput>,\n): WorkspaceProposalWorkItemLinkApplicationProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalWorkItemLinkApplication\";\n\tconst deps: Node<unknown>[] = [\n\t\topts.records as Node<unknown>,\n\t\topts.decisions as Node<unknown>,\n\t\topts.contexts as Node<unknown>,\n\t];\n\tif (opts.workItems !== undefined) deps.push(opts.workItems);\n\tif (opts.links !== undefined) deps.push(opts.links);\n\tconst workItemsDep = opts.workItems === undefined ? undefined : 3;\n\tconst linksDep = opts.links === undefined ? undefined : opts.workItems === undefined ? 3 : 4;\n\tconst runtime = graph.node<WorkspaceProposalFamilyApplicationRuntimeFact<TInput>>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectorState<TInput, WorkItemLinkProposalDraft>(ctx);\n\t\t\tingestRecords(ctx, state, 0);\n\t\t\tingestDecisions(ctx, state, 1);\n\t\t\tingestContexts(ctx, state, 2);\n\t\t\tif (workItemsDep !== undefined) ingestWorkItems(ctx, state, workItemsDep);\n\t\t\tif (linksDep !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, linksDep) ?? []) {\n\t\t\t\t\tconst link = raw as WorkItemLinkProjection;\n\t\t\t\t\tstate.links.set(link.linkId, link);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const context of state.contexts.values()) {\n\t\t\t\tconst record = state.records.get(context.proposalId);\n\t\t\t\tconst decision = decisionForContext(state, context);\n\t\t\t\tif (record === undefined || decision === undefined) {\n\t\t\t\t\temitMissingDurableHandoffDiagnostics(ctx, state, context, \"work-item-link\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst linkContext = context as WorkspaceProposalWorkItemLinkApplicationContext;\n\t\t\t\tconst result = projectWorkspaceProposalWorkItemLinkApplication(record, decision, {\n\t\t\t\t\tapplicationId: context.applicationId,\n\t\t\t\t\tworkItems: [...state.workItems.values()],\n\t\t\t\t\tlinks: [...state.links.values()],\n\t\t\t\t\tlinkedAtMs: linkContext.linkedAtMs,\n\t\t\t\t\tunlinkedAtMs: linkContext.unlinkedAtMs,\n\t\t\t\t\tsourceRefs: context.sourceRefs,\n\t\t\t\t\taudit: context.audit,\n\t\t\t\t});\n\t\t\t\temitApplicationResult(\n\t\t\t\t\tctx,\n\t\t\t\t\tstate,\n\t\t\t\t\tresult,\n\t\t\t\t\t[result.linked, result.unlinked].filter((item) => item !== undefined),\n\t\t\t\t);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalWorkItemLinkApplicationProjector\"),\n\t);\n\treturn familyBundle(graph, runtime, name, {\n\t\tlinked: \"work-item-linked\",\n\t\tunlinked: \"work-item-unlinked\",\n\t}) as unknown as WorkspaceProposalWorkItemLinkApplicationProjectorBundle;\n}\n\nexport function workspaceProposalDomainActionApplicationProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalDomainActionApplicationProjectorOptions,\n): WorkspaceProposalDomainActionApplicationProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalDomainActionApplication\";\n\tconst deps =\n\t\topts.domainApplications === undefined\n\t\t\t? [opts.records, opts.decisions, opts.contexts, opts.emittedFacts]\n\t\t\t: [opts.records, opts.decisions, opts.contexts, opts.emittedFacts, opts.domainApplications];\n\tconst runtime = graph.node<WorkspaceProposalFamilyApplicationRuntimeFact>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectorState(ctx);\n\t\t\tingestRecords(ctx, state, 0);\n\t\t\tingestDecisions(ctx, state, 1);\n\t\t\tingestContexts(ctx, state, 2);\n\t\t\tfor (const raw of depBatch(ctx, 3) ?? []) {\n\t\t\t\tconst fact = raw as WorkItemAuthoringFact;\n\t\t\t\tstate.emittedDomainFacts.set(fact.eventId, fact);\n\t\t\t}\n\t\t\tif (opts.domainApplications !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, 4) ?? []) {\n\t\t\t\t\tconst application = raw as WorkItemDomainActionApplication;\n\t\t\t\t\tstate.domainApplications.set(application.applicationId, application);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const context of state.contexts.values()) {\n\t\t\t\tconst record = state.records.get(context.proposalId);\n\t\t\t\tconst decision = decisionForContext(state, context);\n\t\t\t\tif (record === undefined || decision === undefined) {\n\t\t\t\t\temitMissingDurableHandoffDiagnostics(ctx, state, context, \"work-item-domain-action\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst domainContext = context as WorkspaceProposalDomainActionApplicationContext;\n\t\t\t\tconst selectedDomainFacts = selectDomainFacts(state, domainContext);\n\t\t\t\tconst domainApplication =\n\t\t\t\t\tdomainContext.domainApplicationId === undefined\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: state.domainApplications.get(domainContext.domainApplicationId);\n\t\t\t\tif (\n\t\t\t\t\tselectedDomainFacts.missingFactIds.length > 0 ||\n\t\t\t\t\t(selectedDomainFacts.facts.length === 0 && domainApplication === undefined)\n\t\t\t\t) {\n\t\t\t\t\temitApplicationResult(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tmissingFamilyMaterialResult(record, decision, context, \"missing-domain-action-facts\"),\n\t\t\t\t\t\t[],\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst result = projectWorkspaceProposalDomainActionApplicationStatus(record, decision, {\n\t\t\t\t\tapplicationId: context.applicationId,\n\t\t\t\t\temittedFacts: selectedDomainFacts.facts,\n\t\t\t\t\tdomainApplication,\n\t\t\t\t\tsourceRefs: context.sourceRefs,\n\t\t\t\t\taudit: context.audit,\n\t\t\t\t});\n\t\t\t\temitApplicationResult(ctx, state, result, []);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalDomainActionApplicationProjector\"),\n\t);\n\treturn familyBundle(\n\t\tgraph,\n\t\truntime,\n\t\tname,\n\t\t{},\n\t) as unknown as WorkspaceProposalDomainActionApplicationProjectorBundle;\n}\n\nexport function recordWorkspaceProposalRequiredInputResponseOutcome(\n\tstatus: WorkspaceProposalApplicationStatus,\n\toptions: WorkspaceProposalRequiredInputResponseOutcomeOptions,\n): WorkspaceProposalFamilyOutcomeRecordResult<WorkspaceProposalRequiredInputResponseOutcomeRecorded> {\n\treturn recordFamilyOutcome(status, \"required-input-response\", options, () => {\n\t\tconst requiredInputRequestId = options.requiredInputRequestId;\n\t\tconst responseRef = options.responseRef;\n\t\tconst issues = [\n\t\t\t...nonBlankFieldIssue(status, requiredInputRequestId, \"requiredInputRequestId\"),\n\t\t\t...sourceRefFieldIssue(status, responseRef, \"responseRef\"),\n\t\t];\n\t\tif (\n\t\t\tissues.length > 0 ||\n\t\t\ttypeof requiredInputRequestId !== \"string\" ||\n\t\t\t!isSourceRef(responseRef)\n\t\t) {\n\t\t\treturn { issues };\n\t\t}\n\t\treturn {\n\t\t\tissues,\n\t\t\toutcome: {\n\t\t\t\tkind: \"workspace-proposal-required-input-response-outcome-recorded\",\n\t\t\t\t...familyOutcomeCoordinates(status, options),\n\t\t\t\tproposalFamily: \"required-input-response\",\n\t\t\t\trequiredInputRequestId,\n\t\t\t\tresponseRef,\n\t\t\t},\n\t\t};\n\t});\n}\n\nexport function recordWorkspaceProposalWorkItemSpawnOutcome(\n\tstatus: WorkspaceProposalApplicationStatus,\n\toptions: WorkspaceProposalWorkItemSpawnOutcomeOptions,\n): WorkspaceProposalFamilyOutcomeRecordResult<WorkspaceProposalWorkItemSpawnOutcomeRecorded> {\n\treturn recordFamilyOutcome(status, \"work-item-spawn\", options, () => {\n\t\tconst workItemRef = options.workItemRef;\n\t\tconst issues = sourceRefFieldIssue(status, workItemRef, \"workItemRef\");\n\t\tif (issues.length > 0 || !isSourceRef(workItemRef)) return { issues };\n\t\treturn {\n\t\t\tissues,\n\t\t\toutcome: {\n\t\t\t\tkind: \"workspace-proposal-work-item-spawn-outcome-recorded\",\n\t\t\t\t...familyOutcomeCoordinates(status, options),\n\t\t\t\tproposalFamily: \"work-item-spawn\",\n\t\t\t\tworkItemRef,\n\t\t\t},\n\t\t};\n\t});\n}\n\nexport function recordWorkspaceProposalWorkItemLinkOutcome(\n\tstatus: WorkspaceProposalApplicationStatus,\n\toptions: WorkspaceProposalWorkItemLinkOutcomeOptions,\n): WorkspaceProposalFamilyOutcomeRecordResult<WorkspaceProposalWorkItemLinkOutcomeRecorded> {\n\treturn recordFamilyOutcome(status, \"work-item-link\", options, () => {\n\t\tconst linkRef = options.linkRef;\n\t\tconst issues = sourceRefFieldIssue(status, linkRef, \"linkRef\");\n\t\tif (issues.length > 0 || !isSourceRef(linkRef)) return { issues };\n\t\treturn {\n\t\t\tissues,\n\t\t\toutcome: {\n\t\t\t\tkind: \"workspace-proposal-work-item-link-outcome-recorded\",\n\t\t\t\t...familyOutcomeCoordinates(status, options),\n\t\t\t\tproposalFamily: \"work-item-link\",\n\t\t\t\tlinkRef,\n\t\t\t},\n\t\t};\n\t});\n}\n\nexport function recordWorkspaceProposalDomainActionOutcome(\n\tstatus: WorkspaceProposalApplicationStatus,\n\toptions: WorkspaceProposalDomainActionOutcomeOptions,\n): WorkspaceProposalFamilyOutcomeRecordResult<WorkspaceProposalDomainActionOutcomeRecorded> {\n\treturn recordFamilyOutcome(status, \"work-item-domain-action\", options, () => {\n\t\tconst multiStepPartial = options.policy?.domainActionCompletion === \"multi-step-partial\";\n\t\tif (options.actionRef === undefined) {\n\t\t\treturn {\n\t\t\t\tissues: multiStepPartial ? [] : sourceRefFieldIssue(status, options.actionRef, \"actionRef\"),\n\t\t\t\tpartial: true,\n\t\t\t};\n\t\t}\n\t\tconst issues = sourceRefFieldIssue(status, options.actionRef, \"actionRef\");\n\t\tif (issues.length > 0) return { issues, partial: true };\n\t\treturn {\n\t\t\tissues,\n\t\t\toutcome: {\n\t\t\t\tkind: \"workspace-proposal-domain-action-outcome-recorded\",\n\t\t\t\t...familyOutcomeCoordinates(status, options),\n\t\t\t\tproposalFamily: \"work-item-domain-action\",\n\t\t\t\tactionRef: options.actionRef,\n\t\t\t},\n\t\t};\n\t});\n}\n\nexport function workspaceProposalFamilyOutcomeRef(\n\toutcome: WorkspaceProposalFamilyOutcomeRecord,\n): WorkspaceProposalFamilyOutcomeRef {\n\treturn {\n\t\tkind: \"workspace-proposal-family-outcome-ref\",\n\t\tapplicationId: outcome.applicationId,\n\t\tproposalId: outcome.proposalId,\n\t\tdecisionId: outcome.decisionId,\n\t\tidempotencyKey: outcome.idempotencyKey,\n\t\tproposalFamily: outcome.proposalFamily,\n\t\toutcomeKind: outcome.kind,\n\t\toutcomeId: outcome.outcomeId,\n\t\tsourceRefs: immutableClone(outcome.sourceRefs),\n\t};\n}\n\nexport function projectWorkspaceProposalFamilyOutcomeIndex(\n\toutcomes: readonly WorkspaceProposalFamilyOutcomeRecord[],\n): readonly WorkspaceProposalFamilyOutcomeIndexEntry[] {\n\tconst groups = new Map<string, WorkspaceProposalFamilyOutcomeRecord[]>();\n\tfor (const outcome of outcomes) {\n\t\tconst key = familyOutcomeIndexKey(outcome);\n\t\tgroups.set(key, [...(groups.get(key) ?? []), outcome]);\n\t}\n\treturn [...groups.entries()].map(([indexKey, entries]) => {\n\t\tconst first = entries[0];\n\t\tconst refs = entries.map(workspaceProposalFamilyOutcomeRef);\n\t\tconst uniqueSignatures = new Set(entries.map(familyOutcomeSignature));\n\t\tconst conflict = uniqueSignatures.size > 1;\n\t\tconst issues = conflict\n\t\t\t? [\n\t\t\t\t\tfamilyOutcomeIssue(\n\t\t\t\t\t\tfirst,\n\t\t\t\t\t\t\"idempotency-conflict\",\n\t\t\t\t\t\t\"Workspace proposal family outcome replay conflicts with prior outcome refs\",\n\t\t\t\t\t),\n\t\t\t\t]\n\t\t\t: [];\n\t\treturn {\n\t\t\tkind: \"workspace-proposal-family-outcome-index-entry\",\n\t\t\tindexKey,\n\t\t\tapplicationId: first.applicationId,\n\t\t\tproposalId: first.proposalId,\n\t\t\tdecisionId: first.decisionId,\n\t\t\tidempotencyKey: first.idempotencyKey,\n\t\t\tproposalFamily: first.proposalFamily,\n\t\t\tstate: conflict ? \"idempotency-conflict\" : \"recorded\",\n\t\t\toutcomeRefs: conflict ? [] : [refs[0]],\n\t\t\tsourceRefs: uniqueRefs(entries.flatMap((entry) => entry.sourceRefs)),\n\t\t\taudit: first.audit,\n\t\t\tissues,\n\t\t} satisfies WorkspaceProposalFamilyOutcomeIndexEntry;\n\t});\n}\n\n/**\n * Projects D438/D434/D437 diagnostic view material from existing graph facts only.\n *\n * Missing durable handoff issues remain diagnostic-only and never synthesize\n * application status, family truth, outcome, or repair review authority.\n */\nexport function projectWorkspaceProposalFamilyApplicationDiagnostics(\n\tinput: WorkspaceProposalFamilyApplicationDiagnosticProjectionInput,\n): readonly WorkspaceProposalFamilyApplicationDiagnostic[] {\n\tconst diagnostics = new Map<string, WorkspaceProposalFamilyApplicationDiagnostic>();\n\tfor (const issue of input.issues ?? []) {\n\t\tconst classification = diagnosticClassForIssue(issue);\n\t\tif (classification === undefined) continue;\n\t\tupsertDiagnostic(diagnostics, diagnosticFromIssue(issue, classification));\n\t}\n\tfor (const audit of input.audit ?? []) {\n\t\tif (audit.code === \"missing-durable-handoff\") {\n\t\t\tupsertDiagnostic(diagnostics, diagnosticFromAudit(audit, \"missing-durable-handoff\"));\n\t\t}\n\t}\n\tfor (const status of input.applicationStatuses ?? []) {\n\t\tconst classification = diagnosticClassForApplicationStatus(status);\n\t\tif (classification === undefined) continue;\n\t\tupsertDiagnostic(diagnostics, diagnosticFromApplicationStatus(status, classification));\n\t}\n\tfor (const status of input.outcomeStatuses ?? []) {\n\t\tconst classification = diagnosticClassForOutcomeStatus(status);\n\t\tif (classification === undefined) continue;\n\t\tupsertDiagnostic(diagnostics, diagnosticFromOutcomeStatus(status, classification));\n\t}\n\tfor (const entry of input.outcomeIndex ?? []) {\n\t\tif (entry.state !== \"idempotency-conflict\") continue;\n\t\tupsertDiagnostic(diagnostics, diagnosticFromOutcomeIndex(entry));\n\t}\n\treturn [...diagnostics.values()];\n}\n\n/** Graph-visible variant of `projectWorkspaceProposalFamilyApplicationDiagnostics`. */\nexport function workspaceProposalFamilyApplicationDiagnosticProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalFamilyApplicationDiagnosticProjectorOptions,\n): WorkspaceProposalFamilyApplicationDiagnosticProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalFamilyApplicationDiagnostic\";\n\tconst { deps, depKinds } = diagnosticProjectionDeps(opts);\n\tconst runtime = graph.node<\n\t\t| { readonly kind: \"diagnostic\"; readonly value: WorkspaceProposalFamilyApplicationDiagnostic }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectionState(ctx);\n\t\t\tingestDiagnosticInputFacts(ctx, state, depKinds);\n\t\t\tfor (const diagnostic of projectWorkspaceProposalFamilyApplicationDiagnostics({\n\t\t\t\tissues: [...state.issues.values()],\n\t\t\t\taudit: [...state.audit.values()],\n\t\t\t\tapplicationStatuses: [...state.applicationStatuses.values()],\n\t\t\t\toutcomeStatuses: [...state.outcomeStatuses.values()],\n\t\t\t\toutcomeIndex: [...state.outcomeIndex.values()],\n\t\t\t})) {\n\t\t\t\tconst signature = diagnosticSignature(diagnostic);\n\t\t\t\tif (state.emittedDiagnostics.get(diagnostic.diagnosticId) === signature) continue;\n\t\t\t\tstate.emittedDiagnostics.set(diagnostic.diagnosticId, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"diagnostic\", value: diagnostic }]]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalFamilyApplicationDiagnosticProjector\"),\n\t);\n\treturn {\n\t\tdiagnostics: project(graph, runtime, `${name}/diagnostics`, `${name}Diagnostics`, (fact) =>\n\t\t\tfact?.kind === \"diagnostic\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\n/**\n * Lowers durable repair-needed or idempotency-conflict material to human review.\n *\n * The lowerer requires durable application coordinates and never emits retry,\n * remutation, family facts, or proposal/admission/application truth.\n */\nexport function projectWorkspaceProposalRepairReviewRequests(\n\tinput: WorkspaceProposalRepairReviewProjectionInput,\n): readonly WorkspaceProposalRepairReviewRequest[] {\n\tconst applicationStatuses = new Map(\n\t\t(input.applicationStatuses ?? []).map((status) => [status.applicationId, status]),\n\t);\n\tconst requests = new Map<string, WorkspaceProposalRepairReviewRequest>();\n\tfor (const status of applicationStatuses.values()) {\n\t\tif (!repairReviewState(status.state)) continue;\n\t\tif (!repairReviewClassification(diagnosticClassForApplicationStatus(status))) continue;\n\t\tupsertRepairRequest(requests, repairRequestFromApplicationStatus(status));\n\t}\n\tfor (const status of input.outcomeStatuses ?? []) {\n\t\tif (!repairReviewState(status.state)) continue;\n\t\tconst applicationStatus = applicationStatuses.get(status.applicationId);\n\t\tif (applicationStatus === undefined) continue;\n\t\tif (!sameApplicationCoordinates(applicationStatus, status)) continue;\n\t\tif (!repairReviewClassification(diagnosticClassForOutcomeStatus(status))) continue;\n\t\tupsertRepairRequest(requests, repairRequestFromOutcomeStatus(status, applicationStatus));\n\t}\n\tfor (const entry of input.outcomeIndex ?? []) {\n\t\tif (entry.state !== \"idempotency-conflict\") continue;\n\t\tconst applicationStatus = applicationStatuses.get(entry.applicationId);\n\t\tif (applicationStatus === undefined) continue;\n\t\tif (!sameApplicationCoordinates(applicationStatus, entry)) continue;\n\t\tupsertRepairRequest(requests, repairRequestFromOutcomeIndex(entry, applicationStatus));\n\t}\n\treturn [...requests.values()];\n}\n\n/** Graph-visible variant of `projectWorkspaceProposalRepairReviewRequests`. */\nexport function workspaceProposalRepairReviewProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalRepairReviewProjectorOptions,\n): WorkspaceProposalRepairReviewProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalRepairReview\";\n\tconst { deps, depKinds } = repairReviewProjectionDeps(opts);\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"repair-review-request\";\n\t\t\t\treadonly value: WorkspaceProposalRepairReviewRequest;\n\t\t }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectionState(ctx);\n\t\t\tingestDiagnosticInputFacts(ctx, state, depKinds);\n\t\t\tfor (const request of projectWorkspaceProposalRepairReviewRequests({\n\t\t\t\tapplicationStatuses: [...state.applicationStatuses.values()],\n\t\t\t\toutcomeStatuses: [...state.outcomeStatuses.values()],\n\t\t\t\toutcomeIndex: [...state.outcomeIndex.values()],\n\t\t\t})) {\n\t\t\t\tconst signature = repairRequestSignature(request);\n\t\t\t\tif (state.emittedRepairRequests.get(request.repairRequestId) === signature) continue;\n\t\t\t\tstate.emittedRepairRequests.set(request.repairRequestId, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"repair-review-request\", value: request }]]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalRepairReviewProjector\"),\n\t);\n\treturn {\n\t\trequests: project(graph, runtime, `${name}/requests`, `${name}Requests`, (fact) =>\n\t\t\tfact?.kind === \"repair-review-request\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function projectWorkspaceProposalRepairReviewStatuses(\n\tinput: WorkspaceProposalRepairReviewStatusProjectionInput,\n): readonly WorkspaceProposalRepairReviewStatus[] {\n\treturn (input.requests ?? []).map((request) =>\n\t\tprojectWorkspaceProposalRepairReviewStatus(request, {\n\t\t\tdecisions: input.decisions ?? [],\n\t\t\tapplicationStatuses: input.applicationStatuses ?? [],\n\t\t\tapplicationRecorded: input.applicationRecorded ?? [],\n\t\t\toutcomeStatuses: input.outcomeStatuses ?? [],\n\t\t\toutcomeIndex: input.outcomeIndex ?? [],\n\t\t}),\n\t);\n}\n\nexport function recordWorkspaceProposalRepairReviewDecision(\n\trequest: WorkspaceProposalRepairReviewRequest,\n\toptions: WorkspaceProposalRepairReviewDecisionRecordingOptions,\n): WorkspaceProposalRepairReviewDecisionRecordingResult {\n\tconst issues = repairReviewDecisionRecordingIssues(request, options);\n\tif (issues.length > 0) {\n\t\treturn {\n\t\t\tkind: \"workspace-proposal-repair-review-decision-recording-result\",\n\t\t\tstatus: \"blocked\",\n\t\t\tissues,\n\t\t\tsourceRefs: [],\n\t\t};\n\t}\n\tconst sourceRefs = immutableClone(\n\t\tuniqueRefs([\n\t\t\t...options.sourceRefs!.filter(repairReviewDecisionSourceRefIsValid),\n\t\t\t...(repairReviewDecisionSourceRefIsValid(options.reviewerRef) ? [options.reviewerRef] : []),\n\t\t\t...(repairReviewDecisionSourceRefIsValid(options.actorRef) ? [options.actorRef] : []),\n\t\t\t...(Array.isArray(options.capabilityRefs)\n\t\t\t\t? options.capabilityRefs.filter(repairReviewDecisionSourceRefIsValid)\n\t\t\t\t: []),\n\t\t\t...(Array.isArray(options.policyRefs)\n\t\t\t\t? options.policyRefs.filter(repairReviewDecisionSourceRefIsValid)\n\t\t\t\t: []),\n\t\t]),\n\t);\n\tconst decision: WorkspaceProposalRepairReviewDecision = {\n\t\tkind: \"workspace-proposal-repair-review-decision\",\n\t\treviewDecisionId: options.reviewDecisionId!,\n\t\trepairRequestId: request.repairRequestId,\n\t\tapplicationId: request.applicationId,\n\t\tproposalId: request.proposalId,\n\t\tdecisionId: request.decisionId,\n\t\tidempotencyKey: request.idempotencyKey,\n\t\tproposalFamily: request.proposalFamily,\n\t\tintent: options.intent!,\n\t\t...(options.reviewerRef === undefined\n\t\t\t? {}\n\t\t\t: { reviewerRef: immutableClone(options.reviewerRef) }),\n\t\t...(options.actorRef === undefined ? {} : { actorRef: immutableClone(options.actorRef) }),\n\t\t...(options.capabilityRefs === undefined\n\t\t\t? {}\n\t\t\t: { capabilityRefs: immutableClone(options.capabilityRefs) }),\n\t\t...(options.policyRefs === undefined ? {} : { policyRefs: immutableClone(options.policyRefs) }),\n\t\t...(options.reason === undefined ? {} : { reason: options.reason }),\n\t\t...(options.code === undefined ? {} : { code: options.code }),\n\t\t...(options.resolvesRefs === undefined\n\t\t\t? {}\n\t\t\t: { resolvesRefs: immutableClone(options.resolvesRefs) }),\n\t\t...(options.supersedesRefs === undefined\n\t\t\t? {}\n\t\t\t: { supersedesRefs: immutableClone(options.supersedesRefs) }),\n\t\t...(options.decidedAtMs === undefined ? {} : { decidedAtMs: options.decidedAtMs }),\n\t\t...(sourceRefs.length === 0 ? {} : { sourceRefs }),\n\t\t...(options.audit === undefined ? {} : { audit: immutableClone(options.audit) }),\n\t\t...(options.metadata === undefined ? {} : { metadata: immutableClone(options.metadata) }),\n\t};\n\treturn {\n\t\tkind: \"workspace-proposal-repair-review-decision-recording-result\",\n\t\tstatus: \"recorded\",\n\t\tdecision,\n\t\tissues: [],\n\t\taudit: decision.audit,\n\t\tsourceRefs: immutableClone(sourceRefs),\n\t};\n}\n\nexport function projectWorkspaceProposalRepairReviewDecisionRecordings(\n\tinput: WorkspaceProposalRepairReviewDecisionRecordingProjectionInput,\n): readonly WorkspaceProposalRepairReviewDecisionRecordingResult[] {\n\tconst requests = new Map<string, WorkspaceProposalRepairReviewRequest>();\n\tfor (const request of input.requests ?? []) requests.set(request.repairRequestId, request);\n\tconst statuses = new Map<string, WorkspaceProposalRepairReviewStatus>();\n\tfor (const status of input.statuses ?? [])\n\t\tstatuses.set(repairReviewStatusProjectionKey(status), status);\n\tconst groupedInputs = new Map<\n\t\tstring,\n\t\t{\n\t\t\treadonly input: WorkspaceProposalRepairReviewDecisionRecordingInput;\n\t\t\treadonly signature: string;\n\t\t\treadonly conflict: boolean;\n\t\t}\n\t>();\n\tfor (const recordingInput of input.recordingInputs ?? []) {\n\t\tconst key = recordingInput.reviewDecisionId;\n\t\tconst signature = repairReviewDecisionRecordingInputSignature(recordingInput);\n\t\tconst existing = groupedInputs.get(key);\n\t\tif (existing === undefined) {\n\t\t\tgroupedInputs.set(key, { input: recordingInput, signature, conflict: false });\n\t\t\tcontinue;\n\t\t}\n\t\tif (existing.signature !== signature) {\n\t\t\tgroupedInputs.set(key, { ...existing, conflict: true });\n\t\t}\n\t}\n\tconst results: WorkspaceProposalRepairReviewDecisionRecordingResult[] = [];\n\tfor (const entry of groupedInputs.values()) {\n\t\tconst request = requests.get(entry.input.repairRequestId);\n\t\tif (entry.conflict) {\n\t\t\tresults.push(\n\t\t\t\tblockedRepairReviewDecisionRecordingResult(entry.input, request, [\n\t\t\t\t\trepairReviewDecisionRecordingInputIssue(\n\t\t\t\t\t\t\"conflicting-repair-review-decision-recording-input\",\n\t\t\t\t\t\t\"Repair-review decision recording inputs conflict for the same reviewDecisionId.\",\n\t\t\t\t\t\tentry.input,\n\t\t\t\t\t\trequest,\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 (entry.input.kind !== \"workspace-proposal-repair-review-decision-recording-input\") {\n\t\t\tresults.push(\n\t\t\t\tblockedRepairReviewDecisionRecordingResult(entry.input, request, [\n\t\t\t\t\trepairReviewDecisionRecordingInputIssue(\n\t\t\t\t\t\t\"malformed-recording-options\",\n\t\t\t\t\t\t\"Repair-review decision recording projector requires typed recording input material.\",\n\t\t\t\t\t\tentry.input,\n\t\t\t\t\t\trequest,\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 (request === undefined) {\n\t\t\tresults.push(\n\t\t\t\tblockedRepairReviewDecisionRecordingResult(entry.input, undefined, [\n\t\t\t\t\trepairReviewDecisionRecordingInputIssue(\n\t\t\t\t\t\t\"missing-repair-review-request\",\n\t\t\t\t\t\t\"Repair-review decision recording input requires a matching repair-review request.\",\n\t\t\t\t\t\tentry.input,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t),\n\t\t\t\t]),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tconst currentStatus = statuses.get(repairReviewStatusProjectionKeyFromRequest(request));\n\t\tresults.push(\n\t\t\trecordWorkspaceProposalRepairReviewDecision(request, {\n\t\t\t\treviewDecisionId: entry.input.reviewDecisionId,\n\t\t\t\tintent: entry.input.intent,\n\t\t\t\treviewerRef: entry.input.reviewerRef,\n\t\t\t\tactorRef: entry.input.actorRef,\n\t\t\t\tcapabilityRefs: entry.input.capabilityRefs,\n\t\t\t\tpolicyRefs: entry.input.policyRefs,\n\t\t\t\tsourceRefs: entry.input.sourceRefs,\n\t\t\t\taudit: entry.input.audit,\n\t\t\t\treason: entry.input.reason,\n\t\t\t\tcode: entry.input.code,\n\t\t\t\tresolvesRefs: entry.input.resolvesRefs,\n\t\t\t\tsupersedesRefs: entry.input.supersedesRefs,\n\t\t\t\tdecidedAtMs: entry.input.decidedAtMs,\n\t\t\t\tmetadata: entry.input.metadata,\n\t\t\t\tcurrentStatus,\n\t\t\t\texpectedCurrentState: entry.input.expectedCurrentState,\n\t\t\t}),\n\t\t);\n\t}\n\treturn results;\n}\n\n/** Graph-visible variant of `projectWorkspaceProposalRepairReviewDecisionRecordings`. */\nexport function workspaceProposalRepairReviewDecisionRecordingProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalRepairReviewDecisionRecordingProjectorOptions,\n): WorkspaceProposalRepairReviewDecisionRecordingProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalRepairReviewDecisionRecording\";\n\tconst { deps, depKinds } = repairReviewDecisionRecordingProjectionDeps(opts);\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"repair-decision-recording-result\";\n\t\t\t\treadonly value: WorkspaceProposalRepairReviewDecisionRecordingResult;\n\t\t }\n\t\t| {\n\t\t\t\treadonly kind: \"repair-decision\";\n\t\t\t\treadonly value: WorkspaceProposalRepairReviewDecision;\n\t\t }\n\t\t| { readonly kind: \"issue\"; readonly value: WorkspaceProposalRecordedIssue }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectionState(ctx);\n\t\t\tingestDiagnosticInputFacts(ctx, state, depKinds);\n\t\t\tfor (const result of projectWorkspaceProposalRepairReviewDecisionRecordings({\n\t\t\t\trequests: [...state.repairRequests.values()],\n\t\t\t\trecordingInputs: [...state.repairDecisionRecordingInputs.values()],\n\t\t\t\tstatuses: [...state.repairStatuses.values()],\n\t\t\t})) {\n\t\t\t\tconst emissionKey = repairReviewDecisionRecordingResultKey(result);\n\t\t\t\tconst signature = stableStringify(result);\n\t\t\t\tif (state.emittedRepairDecisionRecordings.get(emissionKey) === signature) continue;\n\t\t\t\tstate.emittedRepairDecisionRecordings.set(emissionKey, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"repair-decision-recording-result\", value: result }]]);\n\t\t\t\tfor (const issue of result.issues) {\n\t\t\t\t\tctx.down([[\"DATA\", { kind: \"issue\", value: issue }]]);\n\t\t\t\t}\n\t\t\t\tif (result.decision !== undefined) {\n\t\t\t\t\tctx.down([[\"DATA\", { kind: \"repair-decision\", value: result.decision }]]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalRepairReviewDecisionRecordingProjector\"),\n\t);\n\treturn {\n\t\tresults: project(graph, runtime, `${name}/results`, `${name}Results`, (fact) =>\n\t\t\tfact?.kind === \"repair-decision-recording-result\" ? fact.value : undefined,\n\t\t),\n\t\tdecisions: project(graph, runtime, `${name}/decisions`, `${name}Decisions`, (fact) =>\n\t\t\tfact?.kind === \"repair-decision\" ? fact.value : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, `${name}Issues`, (fact) =>\n\t\t\tfact?.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\n/** Graph-visible variant of `projectWorkspaceProposalRepairReviewStatuses`. */\nexport function workspaceProposalRepairReviewStatusProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalRepairReviewStatusProjectorOptions,\n): WorkspaceProposalRepairReviewStatusProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalRepairReviewStatus\";\n\tconst { deps, depKinds } = repairReviewStatusProjectionDeps(opts);\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"repair-review-status\";\n\t\t\t\treadonly value: WorkspaceProposalRepairReviewStatus;\n\t\t }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectionState(ctx);\n\t\t\tingestDiagnosticInputFacts(ctx, state, depKinds);\n\t\t\tfor (const status of projectWorkspaceProposalRepairReviewStatuses({\n\t\t\t\trequests: [...state.repairRequests.values()],\n\t\t\t\tdecisions: [...state.repairDecisions.values()],\n\t\t\t\tapplicationStatuses: [...state.applicationStatuses.values()],\n\t\t\t\tapplicationRecorded: [...state.applicationRecorded.values()],\n\t\t\t\toutcomeStatuses: [...state.outcomeStatuses.values()],\n\t\t\t\toutcomeIndex: [...state.outcomeIndex.values()],\n\t\t\t})) {\n\t\t\t\tconst signature = repairReviewStatusSignature(status);\n\t\t\t\tif (state.emittedRepairStatuses.get(status.repairRequestId) === signature) continue;\n\t\t\t\tstate.emittedRepairStatuses.set(status.repairRequestId, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"repair-review-status\", value: status }]]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalRepairReviewStatusProjector\"),\n\t);\n\treturn {\n\t\tstatuses: project(graph, runtime, `${name}/statuses`, `${name}Statuses`, (fact) =>\n\t\t\tfact?.kind === \"repair-review-status\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function projectWorkspaceProposalFamilyApplicationReadModel(\n\tinput: WorkspaceProposalFamilyApplicationReadModelProjectionInput,\n): WorkspaceProposalFamilyApplicationReadModel {\n\tconst coordinates = readModelCoordinates(input);\n\tconst hasCompleteCoordinates = readModelCoordinatesComplete(coordinates);\n\tconst filters = normalizeReadModelFilters(input.filters).filters;\n\tconst presentation = normalizeReadModelPresentationOptions(\n\t\tinput.sort,\n\t\tinput.groupBy,\n\t\tinput.search,\n\t);\n\tconst diagnostics = (input.diagnostics ?? []).filter((diagnostic) =>\n\t\thasCompleteCoordinates\n\t\t\t? coordinatesMatchExact(coordinates, diagnostic) &&\n\t\t\t\tmatchesOptionalSet(filters.diagnosticCodes, diagnostic.code)\n\t\t\t: false,\n\t);\n\tconst repairReviewStatuses = (input.repairReviewStatuses ?? []).filter((status) =>\n\t\thasCompleteCoordinates\n\t\t\t? coordinatesMatchExact(coordinates, status) &&\n\t\t\t\tmatchesOptionalSet(filters.repairStates, status.state)\n\t\t\t: false,\n\t);\n\tconst outcomeIndexes = (input.outcomeIndex ?? [])\n\t\t.filter((entry) => (hasCompleteCoordinates ? coordinatesMatchExact(coordinates, entry) : false))\n\t\t.map((entry) => filterOutcomeIndexEntry(entry, filters))\n\t\t.filter((entry) => entry.outcomeRefs.length > 0 || entry.state === \"idempotency-conflict\");\n\tconst outcomes = groupByOutcomeId(input.outcomes ?? []);\n\tconst statuses = groupByOutcomeId(input.outcomeStatuses ?? []);\n\tconst allOutcomeRefs = sortReadModelOutcomeRefs(\n\t\toutcomeIndexes\n\t\t\t.flatMap((entry) => entry.outcomeRefs)\n\t\t\t.filter((ref) =>\n\t\t\t\treadModelSearchMatches(ref, presentation.search, diagnostics, repairReviewStatuses),\n\t\t\t),\n\t\tpresentation.sort,\n\t\tdiagnostics,\n\t\trepairReviewStatuses,\n\t\toutcomes,\n\t\tstatuses,\n\t);\n\tconst offset = normalizePageOffset(input.offset);\n\tconst limit = normalizePageLimit(input.limit);\n\tconst pagedRefs = allOutcomeRefs.slice(offset, offset + limit);\n\tconst outcomeDetails: WorkspaceProposalFamilyOutcomeDetail[] = [];\n\tconst displayDiagnostics: WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic[] = [\n\t\t...(input.displayDiagnostics ?? []),\n\t\t...presentation.diagnostics,\n\t];\n\tfor (const outcomeRef of pagedRefs) {\n\t\tconst outcomeCandidates = outcomes.get(outcomeRef.outcomeId) ?? [];\n\t\tconst statusCandidates = statuses.get(outcomeRef.outcomeId) ?? [];\n\t\tconst outcome = outcomeCandidates.find((candidate) =>\n\t\t\tsameOutcomeRefCoordinates(outcomeRef, candidate),\n\t\t);\n\t\tconst status = statusCandidates.find((candidate) =>\n\t\t\tsameOutcomeRefCoordinates(outcomeRef, candidate),\n\t\t);\n\t\tif (outcome === undefined && outcomeCandidates.length === 0) {\n\t\t\tdisplayDiagnostics.push(readModelDisplayDiagnostic(\"missing-outcome-detail\", outcomeRef));\n\t\t} else if (outcome === undefined) {\n\t\t\tdisplayDiagnostics.push(readModelDisplayDiagnostic(\"mismatched-outcome-detail\", outcomeRef));\n\t\t}\n\t\tif (status === undefined && statusCandidates.length > 0) {\n\t\t\tdisplayDiagnostics.push(readModelDisplayDiagnostic(\"mismatched-outcome-status\", outcomeRef));\n\t\t}\n\t\toutcomeDetails.push({\n\t\t\tkind: \"workspace-proposal-family-outcome-detail\",\n\t\t\toutcomeRef,\n\t\t\t...(outcome !== undefined ? { outcome } : {}),\n\t\t\t...(status !== undefined ? { status } : {}),\n\t\t});\n\t}\n\tconst displayGroups = readModelDisplayGroups(\n\t\tpagedRefs,\n\t\tpresentation.groupBy,\n\t\tdiagnostics,\n\t\trepairReviewStatuses,\n\t);\n\treturn {\n\t\tkind: \"workspace-proposal-family-application-read-model\",\n\t\treadModelId: `workspace-proposal-family-application-read-model:${stableStringify({\n\t\t\tqueryId: stringField(input.queryId),\n\t\t\tviewId: stringField(input.viewId),\n\t\t\t...coordinates,\n\t\t\toffset,\n\t\t\tlimit,\n\t\t\tfilters,\n\t\t\tsort: presentation.sort,\n\t\t\tgroupBy: presentation.groupBy,\n\t\t\tsearch: presentation.search,\n\t\t})}`,\n\t\t...(stringField(input.queryId) === undefined ? {} : { queryId: stringField(input.queryId) }),\n\t\t...(stringField(input.viewId) === undefined ? {} : { viewId: stringField(input.viewId) }),\n\t\t...coordinates,\n\t\tfilters,\n\t\tsort: presentation.sort,\n\t\tgroupBy: presentation.groupBy,\n\t\tsearch: presentation.search,\n\t\tdiagnostics,\n\t\trepairReviewStatuses,\n\t\toutcomeIndexes,\n\t\toutcomeDetails,\n\t\tdisplayGroups,\n\t\tdisplayDiagnostics,\n\t\tpage: {\n\t\t\toffset,\n\t\t\tlimit,\n\t\t\ttotalOutcomeRefs: allOutcomeRefs.length,\n\t\t\treturnedOutcomeRefs: pagedRefs.length,\n\t\t},\n\t};\n}\n\nexport function projectWorkspaceProposalFamilyApplicationReadModels(\n\tinput: WorkspaceProposalFamilyApplicationReadModelsProjectionInput,\n): readonly WorkspaceProposalFamilyApplicationReadModel[] {\n\tconst currentQueries = new Map<string, WorkspaceProposalFamilyApplicationReadModelQuery>();\n\tfor (const query of input.queries ?? []) {\n\t\tcurrentQueries.set(readModelQueryProjectionKey(query), query);\n\t}\n\treturn [...currentQueries.values()].map((query) => {\n\t\tconst normalized = normalizeReadModelQuery(query);\n\t\tif (!normalized.complete || normalized.malformed) {\n\t\t\treturn projectWorkspaceProposalFamilyApplicationReadModel({\n\t\t\t\tqueryId: normalized.queryId,\n\t\t\t\tviewId: normalized.viewId,\n\t\t\t\toffset: normalized.page.offset,\n\t\t\t\tlimit: normalized.page.limit,\n\t\t\t\tfilters: normalized.filters,\n\t\t\t\tsort: normalized.sort,\n\t\t\t\tgroupBy: normalized.groupBy,\n\t\t\t\tsearch: normalized.search,\n\t\t\t\tdisplayDiagnostics: [\n\t\t\t\t\treadModelQueryDisplayDiagnostic(\n\t\t\t\t\t\tnormalized.malformed ? \"malformed-read-model-query\" : \"incomplete-read-model-query\",\n\t\t\t\t\t\tnormalized,\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\t\treturn projectWorkspaceProposalFamilyApplicationReadModel({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\trepairReviewStatuses: input.repairReviewStatuses,\n\t\t\toutcomeIndex: input.outcomeIndex,\n\t\t\toutcomeStatuses: input.outcomeStatuses,\n\t\t\toutcomes: input.outcomes,\n\t\t\tqueryId: normalized.queryId,\n\t\t\tviewId: normalized.viewId,\n\t\t\tapplicationId: normalized.coordinates.applicationId,\n\t\t\tproposalId: normalized.coordinates.proposalId,\n\t\t\tdecisionId: normalized.coordinates.decisionId,\n\t\t\tidempotencyKey: normalized.coordinates.idempotencyKey,\n\t\t\tproposalFamily: normalized.coordinates.proposalFamily,\n\t\t\toffset: normalized.page.offset,\n\t\t\tlimit: normalized.page.limit,\n\t\t\tfilters: normalized.filters,\n\t\t\tsort: normalized.sort,\n\t\t\tgroupBy: normalized.groupBy,\n\t\t\tsearch: normalized.search,\n\t\t});\n\t});\n}\n\nexport function workspaceProposalProjectionReleaseDiagnosticProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalProjectionReleaseDiagnosticProjectorOptions,\n): WorkspaceProposalProjectionReleaseDiagnosticProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalProjectionReleaseDiagnostic\";\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"projection-release-diagnostic\";\n\t\t\t\treadonly value: WorkspaceProposalProjectionReleaseDiagnostic;\n\t\t }\n\t\t| undefined\n\t>(\n\t\t[opts.releases],\n\t\t(ctx) => {\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst validation = validateWorkspaceProposalProjectionReleaseMaterial(raw);\n\t\t\t\tif (validation.status !== \"blocked\") continue;\n\t\t\t\tconst diagnostic = workspaceProposalProjectionReleaseDiagnosticFromValidation(validation);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"projection-release-diagnostic\", value: diagnostic }]]);\n\t\t\t}\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalProjectionReleaseDiagnosticProjector\"),\n\t);\n\treturn {\n\t\tdiagnostics: project(graph, runtime, `${name}/diagnostics`, `${name}Diagnostics`, (fact) =>\n\t\t\tfact?.kind === \"projection-release-diagnostic\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\n/** Graph-visible variant of `projectWorkspaceProposalFamilyApplicationReadModel`. */\nexport function workspaceProposalFamilyApplicationReadModelProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalFamilyApplicationReadModelProjectorOptions,\n): WorkspaceProposalFamilyApplicationReadModelProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalFamilyApplicationReadModel\";\n\tconst { deps, depKinds } = readModelProjectionDeps(opts);\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"read-model\";\n\t\t\t\treadonly value: WorkspaceProposalFamilyApplicationReadModel;\n\t\t }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectionState(ctx);\n\t\t\tingestDiagnosticInputFacts(ctx, state, depKinds);\n\t\t\tconst readModel = projectWorkspaceProposalFamilyApplicationReadModel({\n\t\t\t\tdiagnostics: [...state.diagnostics.values()],\n\t\t\t\trepairReviewStatuses: [...state.repairStatuses.values()],\n\t\t\t\toutcomeIndex: [...state.outcomeIndex.values()],\n\t\t\t\toutcomeStatuses: [...state.outcomeStatuses.values()],\n\t\t\t\toutcomes: [...state.outcomes.values()],\n\t\t\t\tapplicationId: opts.applicationId,\n\t\t\t\tproposalId: opts.proposalId,\n\t\t\t\tdecisionId: opts.decisionId,\n\t\t\t\tidempotencyKey: opts.idempotencyKey,\n\t\t\t\tproposalFamily: opts.proposalFamily,\n\t\t\t\toffset: opts.offset,\n\t\t\t\tlimit: opts.limit,\n\t\t\t\tsort: opts.sort,\n\t\t\t\tgroupBy: opts.groupBy,\n\t\t\t\tsearch: opts.search,\n\t\t\t});\n\t\t\tconst signature = readModelSignature(readModel);\n\t\t\tif (state.emittedReadModels.get(readModel.readModelId) !== signature) {\n\t\t\t\tstate.emittedReadModels.set(readModel.readModelId, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"read-model\", value: readModel }]]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalFamilyApplicationReadModelProjector\"),\n\t);\n\treturn {\n\t\treadModels: project(graph, runtime, `${name}/readModels`, `${name}ReadModels`, (fact) =>\n\t\t\tfact?.kind === \"read-model\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\n/** Graph-visible query-driven variant of `projectWorkspaceProposalFamilyApplicationReadModels`. */\nexport function workspaceProposalFamilyApplicationReadModelsProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalFamilyApplicationReadModelsProjectorOptions,\n): WorkspaceProposalFamilyApplicationReadModelProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalFamilyApplicationReadModels\";\n\tconst { deps, depKinds } = readModelsProjectionDeps(opts);\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"read-model\";\n\t\t\t\treadonly value: WorkspaceProposalFamilyApplicationReadModel;\n\t\t }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectionState(ctx);\n\t\t\tingestDiagnosticInputFacts(ctx, state, depKinds);\n\t\t\tfor (const readModel of projectWorkspaceProposalFamilyApplicationReadModels({\n\t\t\t\tqueries: [...state.readModelQueries.values()],\n\t\t\t\tdiagnostics: [...state.diagnostics.values()],\n\t\t\t\trepairReviewStatuses: [...state.repairStatuses.values()],\n\t\t\t\toutcomeIndex: [...state.outcomeIndex.values()],\n\t\t\t\toutcomeStatuses: [...state.outcomeStatuses.values()],\n\t\t\t\toutcomes: [...state.outcomes.values()],\n\t\t\t})) {\n\t\t\t\tconst signature = readModelEmissionSignature(readModel);\n\t\t\t\tif (state.emittedReadModels.get(readModelCurrentViewKey(readModel)) === signature) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstate.emittedReadModels.set(readModelCurrentViewKey(readModel), signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"read-model\", value: readModel }]]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalFamilyApplicationReadModelsProjector\"),\n\t);\n\treturn {\n\t\treadModels: project(graph, runtime, `${name}/readModels`, `${name}ReadModels`, (fact) =>\n\t\t\tfact?.kind === \"read-model\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function projectWorkspaceProposalFamilyOutcomeDetailSupplyResults(\n\tinput: WorkspaceProposalFamilyOutcomeDetailSupplyProjectionInput,\n): readonly WorkspaceProposalFamilyOutcomeDetailSupplyResult[] {\n\tconst suppliedByOutcomeId = groupByOutcomeId(input.suppliedOutcomes ?? []);\n\treturn [...currentSupplyRequests(input.requests ?? []).values()].map((request) =>\n\t\tprojectWorkspaceProposalFamilyOutcomeDetailSupplyResult(request, suppliedByOutcomeId),\n\t);\n}\n\nexport function projectWorkspaceProposalFamilyOutcomeDetailSupplyResult(\n\trequest: WorkspaceProposalFamilyOutcomeDetailSupplyRequest | unknown,\n\tsuppliedOutcomes:\n\t\t| readonly WorkspaceProposalFamilyOutcomeRecord[]\n\t\t| ReadonlyMap<string, readonly WorkspaceProposalFamilyOutcomeRecord[]> = [],\n): WorkspaceProposalFamilyOutcomeDetailSupplyResult {\n\tconst issues = outcomeDetailSupplyRequestIssues(request);\n\tconst requestRecord = isRecord(request) ? request : {};\n\tconst requestAudit = safeWorkspaceProposalAudit(requestRecord.audit);\n\tconst boundarySafeRequestAudit =\n\t\trequestAudit === undefined ||\n\t\t!workspaceProposalBoundarySourceRefsAreSafe(requestAudit.sourceRefs)\n\t\t\t? undefined\n\t\t\t: requestAudit;\n\tconst sourceRefs = repairActionSourceRefs([\n\t\t...safeBoundarySourceRefs(requestRecord.sourceRefs),\n\t\t...(boundarySafeRequestAudit?.sourceRefs ?? []),\n\t]);\n\tconst pageRecord = isRecord(requestRecord.page) ? requestRecord.page : {};\n\tconst filters = normalizeReadModelFilters(\n\t\tisRecord(requestRecord.filters)\n\t\t\t? (requestRecord.filters as WorkspaceProposalFamilyApplicationReadModelFilters)\n\t\t\t: undefined,\n\t).filters;\n\tconst currentViewId =\n\t\tstringField(requestRecord.viewId) ?? stringField(requestRecord.supplyRequestId) ?? \"unknown\";\n\tconst coordinates = {\n\t\tapplicationId: stringField(requestRecord.applicationId),\n\t\tproposalId: stringField(requestRecord.proposalId),\n\t\tdecisionId: stringField(requestRecord.decisionId),\n\t\tidempotencyKey: stringField(requestRecord.idempotencyKey),\n\t\tproposalFamily: stringField(requestRecord.proposalFamily) as\n\t\t\t| WorkspaceProposalFamily\n\t\t\t| undefined,\n\t};\n\tif (issues.length > 0 || !isOutcomeDetailSupplyRequestMaterial(request)) {\n\t\treturn {\n\t\t\tkind: \"workspace-proposal-family-outcome-detail-supply-result\",\n\t\t\t...(stringField(requestRecord.supplyRequestId) === undefined\n\t\t\t\t? {}\n\t\t\t\t: { supplyRequestId: stringField(requestRecord.supplyRequestId) }),\n\t\t\t...(stringField(requestRecord.viewId) === undefined\n\t\t\t\t? {}\n\t\t\t\t: { viewId: stringField(requestRecord.viewId) }),\n\t\t\tcurrentViewId,\n\t\t\t...coordinates,\n\t\t\tsuppliedOutcomeFacts: [],\n\t\t\tmissingRefs: [],\n\t\t\tmismatchedRefs: [],\n\t\t\tdisplayDiagnostics: [\n\t\t\t\toutcomeDetailSupplyDiagnostic(\n\t\t\t\t\t\"malformed-outcome-detail-supply-request\",\n\t\t\t\t\t\"Workspace proposal family outcome detail supply request is malformed\",\n\t\t\t\t\tundefined,\n\t\t\t\t\tcoordinates,\n\t\t\t\t\tsourceRefs,\n\t\t\t\t),\n\t\t\t],\n\t\t\tpage: {\n\t\t\t\toffset: normalizePageOffset(pageRecord.offset),\n\t\t\t\tlimit: normalizePageLimit(pageRecord.limit),\n\t\t\t},\n\t\t\tfilters,\n\t\t\tsourceRefs,\n\t\t\t...(boundarySafeRequestAudit === undefined ? {} : { audit: boundarySafeRequestAudit }),\n\t\t};\n\t}\n\tconst suppliedMap: ReadonlyMap<string, readonly WorkspaceProposalFamilyOutcomeRecord[]> =\n\t\tArray.isArray(suppliedOutcomes)\n\t\t\t? groupByOutcomeId<WorkspaceProposalFamilyOutcomeRecord>(\n\t\t\t\t\tsuppliedOutcomes as readonly WorkspaceProposalFamilyOutcomeRecord[],\n\t\t\t\t)\n\t\t\t: (suppliedOutcomes as ReadonlyMap<string, readonly WorkspaceProposalFamilyOutcomeRecord[]>);\n\tconst offset = normalizePageOffset(request.page?.offset);\n\tconst limit = normalizePageLimit(request.page?.limit);\n\tconst pagedRequestRefs = request.requestedOutcomeRefs.slice(offset, offset + limit);\n\tconst pagedRefs = pagedRequestRefs.filter((ref) =>\n\t\tsupplyRequestRefMatches(request, ref, filters),\n\t);\n\tconst suppliedOutcomeFacts: WorkspaceProposalFamilyOutcomeRecord[] = [];\n\tconst missingRefs: WorkspaceProposalFamilyOutcomeRef[] = [];\n\tconst mismatchedRefs: WorkspaceProposalFamilyOutcomeRef[] = [];\n\tconst displayDiagnostics: WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic[] = [];\n\tfor (const ref of pagedRefs) {\n\t\tconst candidates = suppliedMap.get(ref.outcomeId) ?? [];\n\t\tconst match = candidates.find((candidate) => sameOutcomeRefCoordinates(ref, candidate));\n\t\tif (match !== undefined) {\n\t\t\tconst dataOnlyIssues = workspaceProposalDataOnlyIssues(match, \"suppliedOutcomeDetail\");\n\t\t\tif (dataOnlyIssues.length === 0 && outcomeDetailSupplyOutcomeBoundaryRefsAreSafe(match)) {\n\t\t\t\tsuppliedOutcomeFacts.push(match);\n\t\t\t} else {\n\t\t\t\tmismatchedRefs.push(ref);\n\t\t\t\tdisplayDiagnostics.push(\n\t\t\t\t\toutcomeDetailSupplyDiagnostic(\n\t\t\t\t\t\t\"malformed-supplied-outcome-detail\",\n\t\t\t\t\t\t\"Workspace proposal family supplied outcome detail is not data-only material\",\n\t\t\t\t\t\tref,\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\trequest.sourceRefs,\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 (candidates.length === 0) {\n\t\t\tmissingRefs.push(ref);\n\t\t\tdisplayDiagnostics.push(\n\t\t\t\toutcomeDetailSupplyDiagnostic(\n\t\t\t\t\t\"missing-supplied-outcome-detail\",\n\t\t\t\t\t\"Workspace proposal family outcome detail supply did not include a requested ref\",\n\t\t\t\t\tref,\n\t\t\t\t\trequest,\n\t\t\t\t\trequest.sourceRefs,\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\tmismatchedRefs.push(ref);\n\t\t\tdisplayDiagnostics.push(\n\t\t\t\toutcomeDetailSupplyDiagnostic(\n\t\t\t\t\t\"mismatched-supplied-outcome-detail\",\n\t\t\t\t\t\"Workspace proposal family outcome detail supply mismatches a requested ref\",\n\t\t\t\t\tref,\n\t\t\t\t\trequest,\n\t\t\t\t\trequest.sourceRefs,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tfor (const ref of pagedRequestRefs) {\n\t\tif (sameSupplyRequestCoordinates(request, ref)) continue;\n\t\tmismatchedRefs.push(ref);\n\t\tdisplayDiagnostics.push(\n\t\t\toutcomeDetailSupplyDiagnostic(\n\t\t\t\t\"mismatched-supplied-outcome-detail\",\n\t\t\t\t\"Workspace proposal family outcome detail request ref mismatches supply coordinates\",\n\t\t\t\tref,\n\t\t\t\trequest,\n\t\t\t\trequest.sourceRefs,\n\t\t\t),\n\t\t);\n\t}\n\treturn {\n\t\tkind: \"workspace-proposal-family-outcome-detail-supply-result\",\n\t\tsupplyRequestId: request.supplyRequestId,\n\t\t...(request.viewId === undefined ? {} : { viewId: request.viewId }),\n\t\tcurrentViewId: request.viewId ?? request.supplyRequestId,\n\t\tapplicationId: request.applicationId,\n\t\tproposalId: request.proposalId,\n\t\tdecisionId: request.decisionId,\n\t\tidempotencyKey: request.idempotencyKey,\n\t\tproposalFamily: request.proposalFamily,\n\t\tsuppliedOutcomeFacts: dedupeOutcomes(suppliedOutcomeFacts),\n\t\tmissingRefs,\n\t\tmismatchedRefs,\n\t\tdisplayDiagnostics,\n\t\tpage: {\n\t\t\toffset,\n\t\t\tlimit,\n\t\t},\n\t\tfilters,\n\t\tsourceRefs: repairActionSourceRefs([\n\t\t\t...request.sourceRefs,\n\t\t\t...(request.audit?.sourceRefs ?? []),\n\t\t]),\n\t\t...(request.audit === undefined ? {} : { audit: immutableClone(request.audit) }),\n\t};\n}\n\nexport function workspaceProposalFamilyOutcomeDetailSupplyProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalFamilyOutcomeDetailSupplyProjectorOptions,\n): WorkspaceProposalFamilyOutcomeDetailSupplyProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalFamilyOutcomeDetailSupply\";\n\tconst deps =\n\t\topts.releases === undefined\n\t\t\t? [opts.requests, opts.suppliedOutcomes]\n\t\t\t: [opts.requests, opts.suppliedOutcomes, opts.releases];\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"outcome-detail-supply-result\";\n\t\t\t\treadonly value: WorkspaceProposalFamilyOutcomeDetailSupplyResult;\n\t\t }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<{\n\t\t\t\treadonly requests: Map<string, WorkspaceProposalFamilyOutcomeDetailSupplyRequest>;\n\t\t\t\treadonly suppliedOutcomes: Map<string, WorkspaceProposalFamilyOutcomeRecord>;\n\t\t\t\treadonly emittedResults: Map<string, string>;\n\t\t\t}>() ?? {\n\t\t\t\trequests: new Map(),\n\t\t\t\tsuppliedOutcomes: new Map(),\n\t\t\t\temittedResults: new Map(),\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst request = raw as WorkspaceProposalFamilyOutcomeDetailSupplyRequest;\n\t\t\t\tstate.requests.set(outcomeDetailSupplyRequestProjectionKey(request), request);\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst outcome = raw as WorkspaceProposalFamilyOutcomeRecord;\n\t\t\t\tif (isOutcomeDetailSupplyOutcomeRecordShape(outcome)) {\n\t\t\t\t\tstate.suppliedOutcomes.set(outcomeProjectionKey(outcome), outcome);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (opts.releases !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\t\t\t\tpruneOutcomeDetailSupplyRelease(state, raw);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const result of projectWorkspaceProposalFamilyOutcomeDetailSupplyResults({\n\t\t\t\trequests: [...state.requests.values()],\n\t\t\t\tsuppliedOutcomes: [...state.suppliedOutcomes.values()],\n\t\t\t})) {\n\t\t\t\tconst signature = stableStringify(result);\n\t\t\t\tif (state.emittedResults.get(result.currentViewId) === signature) continue;\n\t\t\t\tstate.emittedResults.set(result.currentViewId, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"outcome-detail-supply-result\", value: result }]]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalFamilyOutcomeDetailSupplyProjector\"),\n\t);\n\treturn {\n\t\tresults: project(graph, runtime, `${name}/results`, `${name}Results`, (fact) =>\n\t\t\tfact?.kind === \"outcome-detail-supply-result\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function projectWorkspaceProposalRepairActionDescriptors(\n\tinput: WorkspaceProposalRepairActionDescriptorProjectionInput,\n): readonly WorkspaceProposalRepairActionDescriptor[] {\n\tconst descriptors: WorkspaceProposalRepairActionDescriptor[] = [];\n\tfor (const request of input.requests ?? []) {\n\t\tconst status = matchingRepairReviewStatus(request, input.statuses ?? []);\n\t\tconst state = status?.state ?? \"open\";\n\t\tfor (const actionKind of repairActionKinds) {\n\t\t\tdescriptors.push(repairActionDescriptor(request, status, actionKind, state));\n\t\t}\n\t}\n\treturn descriptors;\n}\n\nexport function workspaceProposalRepairActionDescriptorProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalRepairActionDescriptorProjectorOptions,\n): WorkspaceProposalRepairActionDescriptorProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalRepairActionDescriptor\";\n\tconst deps =\n\t\topts.statuses === undefined ? [opts.requests as Node<unknown>] : [opts.requests, opts.statuses];\n\tconst depKinds: readonly WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][] =\n\t\topts.statuses === undefined ? [\"repair-request\"] : [\"repair-request\", \"repair-status\"];\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"repair-action-descriptor\";\n\t\t\t\treadonly value: WorkspaceProposalRepairActionDescriptor;\n\t\t }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = familyProjectionState(ctx);\n\t\t\tingestDiagnosticInputFacts(ctx, state, depKinds);\n\t\t\tfor (const descriptor of projectWorkspaceProposalRepairActionDescriptors({\n\t\t\t\trequests: [...state.repairRequests.values()],\n\t\t\t\tstatuses: [...state.repairStatuses.values()],\n\t\t\t})) {\n\t\t\t\tconst signature = repairActionDescriptorSignature(descriptor);\n\t\t\t\tif (state.emittedRepairActionDescriptors.get(descriptor.descriptorId) === signature) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstate.emittedRepairActionDescriptors.set(descriptor.descriptorId, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"repair-action-descriptor\", value: descriptor }]]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalRepairActionDescriptorProjector\"),\n\t);\n\treturn {\n\t\tdescriptors: project(graph, runtime, `${name}/descriptors`, `${name}Descriptors`, (fact) =>\n\t\t\tfact?.kind === \"repair-action-descriptor\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function validateWorkspaceProposalRepairActionIntent(\n\tintent: WorkspaceProposalRepairActionIntent | unknown,\n\toptionsOrDescriptor:\n\t\t| WorkspaceProposalRepairActionIntentValidationOptions\n\t\t| WorkspaceProposalRepairActionDescriptor\n\t\t| undefined = {},\n\trequest?: WorkspaceProposalRepairReviewRequest,\n\tcurrentStatus?: WorkspaceProposalRepairReviewStatus,\n): WorkspaceProposalRepairActionIntentValidationResult {\n\tconst options = repairActionValidationOptions(optionsOrDescriptor, request, currentStatus);\n\tconst issues = repairActionIntentIssues(intent, options);\n\tconst accepted = issues.length === 0 && isRepairActionIntentMaterial(intent);\n\tconst normalized = accepted\n\t\t? immutableClone(intent as WorkspaceProposalRepairActionIntent)\n\t\t: undefined;\n\tconst record = isRecord(intent) ? intent : {};\n\tconst sourceRefs = repairActionSourceRefs([\n\t\t...(isRepairActionIntentMaterial(intent) ? (intent.sourceRefs ?? []) : []),\n\t\t...(options.sourceRefs ?? []),\n\t\t...(safeWorkspaceProposalAudit(options.audit)?.sourceRefs ?? []),\n\t]);\n\tconst audit =\n\t\tsafeWorkspaceProposalAudit(options.audit) ??\n\t\t(accepted ? safeWorkspaceProposalAudit(normalized?.audit) : undefined);\n\treturn {\n\t\tkind: \"workspace-proposal-repair-action-intent-validation-result\",\n\t\tstatus: accepted ? \"accepted\" : \"blocked\",\n\t\t...(normalized !== undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tintentId: stringField(record.intentId),\n\t\t\t\t\tdescriptorId: stringField(record.descriptorId),\n\t\t\t\t\trepairRequestId: stringField(record.repairRequestId),\n\t\t\t\t\tactionKind: repairActionKinds.includes(\n\t\t\t\t\t\trecord.actionKind as WorkspaceProposalRepairActionKind,\n\t\t\t\t\t)\n\t\t\t\t\t\t? (record.actionKind as WorkspaceProposalRepairActionKind)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tapplicationId: stringField(record.applicationId),\n\t\t\t\t\tproposalId: stringField(record.proposalId),\n\t\t\t\t\tdecisionId: stringField(record.decisionId),\n\t\t\t\t\tidempotencyKey: stringField(record.idempotencyKey),\n\t\t\t\t\tproposalFamily: stringField(record.proposalFamily) as WorkspaceProposalFamily | undefined,\n\t\t\t\t}),\n\t\t...(normalized === undefined\n\t\t\t? {}\n\t\t\t: {\n\t\t\t\t\tintentId: normalized.intentId,\n\t\t\t\t\tdescriptorId: normalized.descriptorId,\n\t\t\t\t\trepairRequestId: normalized.repairRequestId,\n\t\t\t\t\tactionKind: normalized.actionKind,\n\t\t\t\t\tapplicationId: normalized.applicationId,\n\t\t\t\t\tproposalId: normalized.proposalId,\n\t\t\t\t\tdecisionId: normalized.decisionId,\n\t\t\t\t\tidempotencyKey: normalized.idempotencyKey,\n\t\t\t\t\tproposalFamily: normalized.proposalFamily,\n\t\t\t\t\t...(accepted ? { intent: normalized } : {}),\n\t\t\t\t}),\n\t\tissues,\n\t\tsourceRefs,\n\t\t...(audit === undefined ? {} : { audit }),\n\t};\n}\n\nexport function prepareWorkspaceProposalRepairReviewDecisionRecordingInput(\n\tintent: WorkspaceProposalRepairActionIntent | unknown,\n\toptionsOrDescriptor:\n\t\t| (WorkspaceProposalRepairActionIntentValidationOptions &\n\t\t\t\tWorkspaceProposalRepairReviewDecisionRecordingInputPreparationOptions)\n\t\t| WorkspaceProposalRepairActionDescriptor\n\t\t| undefined,\n\trequest?: WorkspaceProposalRepairReviewRequest,\n\tcurrentStatus?: WorkspaceProposalRepairReviewStatus,\n\tpreparationOptions?: WorkspaceProposalRepairReviewDecisionRecordingInputPreparationOptions,\n): WorkspaceProposalRepairReviewDecisionRecordingInputPreparationResult {\n\tconst options =\n\t\tpreparationOptions === undefined\n\t\t\t? ((optionsOrDescriptor ?? {}) as WorkspaceProposalRepairActionIntentValidationOptions &\n\t\t\t\t\tWorkspaceProposalRepairReviewDecisionRecordingInputPreparationOptions)\n\t\t\t: {\n\t\t\t\t\t...preparationOptions,\n\t\t\t\t\t...repairActionValidationOptions(optionsOrDescriptor, request, currentStatus),\n\t\t\t\t};\n\tconst validation = validateWorkspaceProposalRepairActionIntent(intent, options);\n\tconst issues: WorkspaceProposalRecordedIssue[] = [...validation.issues];\n\tconst safeAudit = safeWorkspaceProposalAudit(options.audit);\n\tconst sourceRefs = repairActionSourceRefs([\n\t\t...(options.sourceRefs ?? []),\n\t\t...(safeAudit?.sourceRefs ?? []),\n\t]);\n\tif (validation.intent === undefined || options.request === undefined) {\n\t\treturn {\n\t\t\tkind: \"workspace-proposal-repair-review-decision-recording-input-preparation-result\",\n\t\t\tstatus: \"blocked\",\n\t\t\tissues: dedupeRepairActionIssues(issues),\n\t\t\tsourceRefs,\n\t\t\t...(safeAudit === undefined ? {} : { audit: safeAudit }),\n\t\t};\n\t}\n\tconst decisionIntent = repairActionDecisionIntent(validation.intent.actionKind);\n\tif (decisionIntent === undefined) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"unsupported-repair-action-intent\",\n\t\t\t\t\"Successor proposal actions do not lower to repair-review decision recording input.\",\n\t\t\t\tvalidation.intent,\n\t\t\t\toptions.request,\n\t\t\t),\n\t\t);\n\t}\n\tconst recordingOptions: WorkspaceProposalRepairReviewDecisionRecordingOptions = {\n\t\treviewDecisionId: options.reviewDecisionId,\n\t\tintent: decisionIntent,\n\t\treviewerRef: options.reviewerRef ?? validation.intent.reviewerRef,\n\t\tactorRef: options.actorRef ?? validation.intent.actorRef,\n\t\tcapabilityRefs: options.capabilityRefs,\n\t\tpolicyRefs: options.policyRefs,\n\t\tsourceRefs: options.sourceRefs,\n\t\taudit: options.audit,\n\t\treason: options.reason,\n\t\tcode: options.code,\n\t\tresolvesRefs: options.resolvesRefs,\n\t\tsupersedesRefs: options.supersedesRefs,\n\t\tdecidedAtMs: options.decidedAtMs,\n\t\tmetadata: {\n\t\t\t...(options.metadata ?? {}),\n\t\t\trepairActionIntentId: validation.intent.intentId,\n\t\t\trepairActionDescriptorId: validation.intent.descriptorId,\n\t\t\trepairActionKind: validation.intent.actionKind,\n\t\t},\n\t\tcurrentStatus: options.currentStatus,\n\t\texpectedCurrentState: options.expectedCurrentState ?? validation.intent.expectedCurrentState,\n\t};\n\tif (decisionIntent !== undefined) {\n\t\tissues.push(...repairReviewDecisionRecordingIssues(options.request, recordingOptions));\n\t}\n\tif (issues.length > 0 || decisionIntent === undefined) {\n\t\treturn {\n\t\t\tkind: \"workspace-proposal-repair-review-decision-recording-input-preparation-result\",\n\t\t\tstatus: \"blocked\",\n\t\t\tissues: dedupeRepairActionIssues(issues),\n\t\t\tsourceRefs,\n\t\t\t...(safeAudit === undefined ? {} : { audit: safeAudit }),\n\t\t};\n\t}\n\tconst metadata = recordingOptions.metadata ?? {};\n\tconst recordingInput: WorkspaceProposalRepairReviewDecisionRecordingInput = {\n\t\tkind: \"workspace-proposal-repair-review-decision-recording-input\",\n\t\trepairRequestId: options.request.repairRequestId,\n\t\treviewDecisionId: options.reviewDecisionId!,\n\t\tintent: decisionIntent,\n\t\t...(recordingOptions.reviewerRef === undefined\n\t\t\t? {}\n\t\t\t: { reviewerRef: immutableClone(recordingOptions.reviewerRef) }),\n\t\t...(recordingOptions.actorRef === undefined\n\t\t\t? {}\n\t\t\t: { actorRef: immutableClone(recordingOptions.actorRef) }),\n\t\t...(recordingOptions.capabilityRefs === undefined\n\t\t\t? {}\n\t\t\t: { capabilityRefs: immutableClone(recordingOptions.capabilityRefs) }),\n\t\t...(recordingOptions.policyRefs === undefined\n\t\t\t? {}\n\t\t\t: { policyRefs: immutableClone(recordingOptions.policyRefs) }),\n\t\t...(recordingOptions.sourceRefs === undefined\n\t\t\t? {}\n\t\t\t: { sourceRefs: immutableClone(recordingOptions.sourceRefs) }),\n\t\taudit: immutableClone(options.audit),\n\t\t...(options.reason === undefined ? {} : { reason: options.reason }),\n\t\t...(options.code === undefined ? {} : { code: options.code }),\n\t\t...(options.resolvesRefs === undefined\n\t\t\t? {}\n\t\t\t: { resolvesRefs: immutableClone(options.resolvesRefs) }),\n\t\t...(options.supersedesRefs === undefined\n\t\t\t? {}\n\t\t\t: { supersedesRefs: immutableClone(options.supersedesRefs) }),\n\t\t...(options.decidedAtMs === undefined ? {} : { decidedAtMs: options.decidedAtMs }),\n\t\t...(Object.keys(metadata).length === 0 ? {} : { metadata: immutableClone(metadata) }),\n\t\t...(recordingOptions.expectedCurrentState === undefined\n\t\t\t? {}\n\t\t\t: { expectedCurrentState: immutableClone(recordingOptions.expectedCurrentState) }),\n\t};\n\treturn {\n\t\tkind: \"workspace-proposal-repair-review-decision-recording-input-preparation-result\",\n\t\tstatus: \"prepared\",\n\t\trecordingInput,\n\t\tissues: [],\n\t\tsourceRefs: recordingInput.sourceRefs ?? [],\n\t\taudit: recordingInput.audit,\n\t};\n}\n\nexport function projectWorkspaceProposalRepairSuccessorProposalIntakePreview(\n\tintent: WorkspaceProposalRepairActionIntent | unknown,\n\toptions: WorkspaceProposalRepairActionIntentValidationOptions &\n\t\tWorkspaceProposalRepairSuccessorProposalIntakePreviewOptions = {},\n): WorkspaceProposalRepairSuccessorProposalIntakePreview {\n\tconst validation = validateWorkspaceProposalRepairActionIntent(intent, options);\n\tconst normalized = validation.intent;\n\tconst diagnostics: WorkspaceProposalRecordedIssue[] = [...validation.issues];\n\tif (normalized === undefined) {\n\t\treturn blockedRepairSuccessorPreview(intent, diagnostics, options);\n\t}\n\tif (normalized.actionKind !== \"open-successor-proposal-flow\") {\n\t\tdiagnostics.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"unsupported-repair-action-intent\",\n\t\t\t\t\"Only open-successor-proposal-flow lowers to successor proposal intake preview.\",\n\t\t\t\tnormalized,\n\t\t\t\toptions.request,\n\t\t\t),\n\t\t);\n\t}\n\tdiagnostics.push(...repairActionSuggestedDraftPatchIssues(normalized, options));\n\tdiagnostics.push(...repairActionPreviewMetadataIssues(normalized, options));\n\tconst targetRefs = repairActionSourceRefs([\n\t\t...(options.request === undefined\n\t\t\t? []\n\t\t\t: [\n\t\t\t\t\t{ kind: \"workspace-proposal-repair-review-request\", id: options.request.repairRequestId },\n\t\t\t\t]),\n\t\t...(options.request === undefined ? [] : repairReviewSubjectRefs(options.request)),\n\t]);\n\tconst contextRefs = repairActionSourceRefs([\n\t\t...targetRefs,\n\t\t...(options.currentStatus === undefined\n\t\t\t? []\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tkind: \"workspace-proposal-repair-review-status\",\n\t\t\t\t\t\tid: options.currentStatus.repairRequestId,\n\t\t\t\t\t},\n\t\t\t\t]),\n\t\t...(options.contextRefs ?? []),\n\t]);\n\tconst sourceRefs = repairActionSourceRefs([\n\t\t...(normalized.sourceRefs ?? []),\n\t\t...(options.descriptor?.sourceRefs ?? []),\n\t\t...(options.request?.sourceRefs ?? []),\n\t\t...(options.sourceRefs ?? []),\n\t\t...(safeWorkspaceProposalAudit(options.audit)?.sourceRefs ?? []),\n\t]);\n\tconst previewAudit =\n\t\tsafeWorkspaceProposalAudit(options.audit) ?? safeWorkspaceProposalAudit(normalized.audit);\n\tconst previewId =\n\t\toptions.previewId ??\n\t\t`workspace-proposal-repair-successor-preview:${stableStringify({\n\t\t\tintentId: normalized.intentId,\n\t\t\tdescriptorId: normalized.descriptorId,\n\t\t\trepairRequestId: normalized.repairRequestId,\n\t\t})}`;\n\treturn {\n\t\tkind: \"workspace-proposal-repair-successor-proposal-intake-preview\",\n\t\tpreviewId,\n\t\tstatus: diagnostics.length === 0 ? \"proposal-context-ready\" : \"blocked\",\n\t\tintentId: normalized.intentId,\n\t\tactionIntentId: normalized.intentId,\n\t\tdescriptorId: normalized.descriptorId,\n\t\trepairRequestId: normalized.repairRequestId,\n\t\tactionKind: \"open-successor-proposal-flow\",\n\t\tapplicationId: normalized.applicationId,\n\t\tproposalId: normalized.proposalId,\n\t\tdecisionId: normalized.decisionId,\n\t\tidempotencyKey: normalized.idempotencyKey,\n\t\tproposalFamily: normalized.proposalFamily,\n\t\tsuggestedFamily: options.suggestedFamily ?? normalized.proposalFamily,\n\t\t...(options.suggestedLoweringKind === undefined\n\t\t\t? {}\n\t\t\t: { suggestedLoweringKind: options.suggestedLoweringKind }),\n\t\ttargetRefs,\n\t\tcontextRefs,\n\t\t...(options.reason === undefined ? {} : { reason: options.reason }),\n\t\tcode: options.code ?? options.request?.code,\n\t\t...(options.suggestedDraftPatch === undefined\n\t\t\t? {}\n\t\t\t: diagnostics.length === 0\n\t\t\t\t? { suggestedDraftPatch: immutableClone(options.suggestedDraftPatch) }\n\t\t\t\t: {}),\n\t\tdiagnostics: dedupeRepairActionIssues(diagnostics),\n\t\tsourceRefs,\n\t\t...(previewAudit === undefined ? {} : { audit: previewAudit }),\n\t\t...(options.metadata === undefined || diagnostics.length > 0\n\t\t\t? {}\n\t\t\t: { metadata: immutableClone(options.metadata) }),\n\t};\n}\n\nexport function previewWorkspaceProposalRepairSuccessorProposalIntake(\n\tintentOrRequest:\n\t\t| WorkspaceProposalRepairActionIntent\n\t\t| WorkspaceProposalRepairReviewRequest\n\t\t| undefined,\n\toptionsOrStatus?:\n\t\t| (WorkspaceProposalRepairActionIntentValidationOptions &\n\t\t\t\tWorkspaceProposalRepairSuccessorProposalIntakePreviewOptions)\n\t\t| WorkspaceProposalRepairReviewStatus,\n\tintent?: WorkspaceProposalRepairActionIntent | unknown,\n\toptions: WorkspaceProposalRepairSuccessorProposalIntakePreviewOptions = {},\n): WorkspaceProposalRepairSuccessorProposalIntakePreview {\n\tif (isRepairActionIntentMaterial(intentOrRequest)) {\n\t\treturn projectWorkspaceProposalRepairSuccessorProposalIntakePreview(\n\t\t\tintentOrRequest,\n\t\t\t(optionsOrStatus ?? {}) as WorkspaceProposalRepairActionIntentValidationOptions &\n\t\t\t\tWorkspaceProposalRepairSuccessorProposalIntakePreviewOptions,\n\t\t);\n\t}\n\tconst inlineOptions = isRepairReviewStatusMaterial(optionsOrStatus)\n\t\t? {}\n\t\t: ((optionsOrStatus ?? {}) as WorkspaceProposalRepairActionIntentValidationOptions &\n\t\t\t\tWorkspaceProposalRepairSuccessorProposalIntakePreviewOptions);\n\treturn projectWorkspaceProposalRepairSuccessorProposalIntakePreview(intent, {\n\t\t...inlineOptions,\n\t\t...options,\n\t\trequest: intentOrRequest,\n\t\tcurrentStatus: isRepairReviewStatusMaterial(optionsOrStatus)\n\t\t\t? optionsOrStatus\n\t\t\t: (options.currentStatus ?? inlineOptions.currentStatus),\n\t\texpectedCurrentState:\n\t\t\toptions.expectedCurrentState ??\n\t\t\tinlineOptions.expectedCurrentState ??\n\t\t\t(isRepairActionIntentMaterial(intent) ? intent.expectedCurrentState : undefined),\n\t});\n}\n\nexport function validateWorkspaceProposalRepairActionDisplayPolicyAdvisory(\n\tadvisory: WorkspaceProposalRepairActionDisplayPolicyAdvisory | unknown,\n\toptions: WorkspaceProposalRepairActionDisplayPolicyAdvisoryValidationOptions = {},\n): WorkspaceProposalRepairActionDisplayPolicyAdvisoryValidationResult {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tconst record = isRecord(advisory) ? advisory : {};\n\tconst safeAudit = safeWorkspaceProposalAudit(record.audit ?? options.audit);\n\tconst boundarySafeAudit =\n\t\tsafeAudit === undefined || !workspaceProposalBoundarySourceRefsAreSafe(safeAudit.sourceRefs)\n\t\t\t? undefined\n\t\t\t: safeAudit;\n\tconst sourceRefs = repairActionSourceRefs([\n\t\t...(Array.isArray(record.sourceRefs) ? (record.sourceRefs as SourceRef[]) : []),\n\t\t...(options.sourceRefs ?? []),\n\t\t...(boundarySafeAudit?.sourceRefs ?? []),\n\t]);\n\tif (!isRepairActionDisplayPolicyAdvisoryMaterial(advisory)) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-repair-action-display-policy-advisory\",\n\t\t\t\t\"Repair action display policy advisory requires typed display-only data material.\",\n\t\t\t\trecord,\n\t\t\t\toptions.request,\n\t\t\t),\n\t\t);\n\t} else {\n\t\tfor (const [label, value] of [\n\t\t\t[\"repairActionDisplayPolicyAdvisory\", advisory],\n\t\t\t[\"repairActionDisplayPolicyAdvisoryOptions\", options],\n\t\t] as const) {\n\t\t\tfor (const entry of workspaceProposalDataOnlyIssues(value, label)) {\n\t\t\t\tissues.push(\n\t\t\t\t\trepairActionIssueFromDataOnly(\n\t\t\t\t\t\tentry,\n\t\t\t\t\t\trepairActionIssueIntentFallback(advisory),\n\t\t\t\t\t\toptions.request,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (repairActionAdvisoryHasPermissionProofMaterial(advisory)) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"forbidden-repair-action-permission-proof-vocabulary\",\n\t\t\t\t\t\"Repair action display policy advisory must not use permission-proof vocabulary.\",\n\t\t\t\t\tadvisory,\n\t\t\t\t\toptions.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\t!workspaceProposalBoundarySourceRefsAreSafe(advisory.policyEvidenceRefs) ||\n\t\t\t!workspaceProposalBoundarySourceRefsAreSafe(advisory.capabilityEvidenceRefs) ||\n\t\t\t!workspaceProposalBoundarySourceRefsAreSafe(advisory.sourceRefs) ||\n\t\t\t(advisory.audit !== undefined &&\n\t\t\t\t!workspaceProposalBoundarySourceRefsAreSafe(advisory.audit.sourceRefs))\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"forbidden-runtime-material\",\n\t\t\t\t\t\"Repair action display policy advisory refs must not carry runtime/provider/storage/query/client/file/network material.\",\n\t\t\t\t\tadvisory,\n\t\t\t\t\toptions.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tisRecord(advisory.metadata) &&\n\t\t\tworkspaceProposalBoundaryMetadataSize(advisory.metadata) >\n\t\t\t\tworkspaceProposalRepairAdvisoryMetadataMaxBytes\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"malformed-metadata\",\n\t\t\t\t\t\"Repair action display policy advisory metadata exceeds the bounded display limit.\",\n\t\t\t\t\tadvisory,\n\t\t\t\t\toptions.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\toptions.descriptor !== undefined &&\n\t\t\t(advisory.descriptorId !== options.descriptor.descriptorId ||\n\t\t\t\tadvisory.repairRequestId !== options.descriptor.repairRequestId ||\n\t\t\t\tadvisory.actionKind !== options.descriptor.actionKind ||\n\t\t\t\t!repairActionCoordinatesMatchDescriptor(advisory, options.descriptor))\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"repair-action-advisory-coordinate-mismatch\",\n\t\t\t\t\t\"Repair action display policy advisory must match descriptor coordinates.\",\n\t\t\t\t\tadvisory,\n\t\t\t\t\toptions.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\toptions.request !== undefined &&\n\t\t\t(advisory.repairRequestId !== options.request.repairRequestId ||\n\t\t\t\t!repairReviewCoordinatesMatch(options.request, advisory))\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"repair-action-advisory-coordinate-mismatch\",\n\t\t\t\t\t\"Repair action display policy advisory must match repair-review request coordinates.\",\n\t\t\t\t\tadvisory,\n\t\t\t\t\toptions.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tconst accepted = isRepairActionDisplayPolicyAdvisoryMaterial(advisory) && issues.length === 0;\n\treturn {\n\t\tkind: \"workspace-proposal-repair-action-display-policy-advisory-validation-result\",\n\t\tstatus: accepted ? \"accepted\" : \"blocked\",\n\t\t...(stringField(record.descriptorId) === undefined\n\t\t\t? {}\n\t\t\t: { descriptorId: stringField(record.descriptorId) }),\n\t\t...(stringField(record.repairRequestId) === undefined\n\t\t\t? {}\n\t\t\t: { repairRequestId: stringField(record.repairRequestId) }),\n\t\t...(repairActionKinds.includes(record.actionKind as WorkspaceProposalRepairActionKind)\n\t\t\t? { actionKind: record.actionKind as WorkspaceProposalRepairActionKind }\n\t\t\t: {}),\n\t\t...(stringField(record.applicationId) === undefined\n\t\t\t? {}\n\t\t\t: { applicationId: stringField(record.applicationId) }),\n\t\t...(stringField(record.proposalId) === undefined\n\t\t\t? {}\n\t\t\t: { proposalId: stringField(record.proposalId) }),\n\t\t...(stringField(record.decisionId) === undefined\n\t\t\t? {}\n\t\t\t: { decisionId: stringField(record.decisionId) }),\n\t\t...(stringField(record.idempotencyKey) === undefined\n\t\t\t? {}\n\t\t\t: { idempotencyKey: stringField(record.idempotencyKey) }),\n\t\t...(stringField(record.proposalFamily) === undefined\n\t\t\t? {}\n\t\t\t: { proposalFamily: stringField(record.proposalFamily) as WorkspaceProposalFamily }),\n\t\tissues: dedupeRepairActionIssues(issues),\n\t\tsourceRefs,\n\t\t...(boundarySafeAudit === undefined ? {} : { audit: boundarySafeAudit }),\n\t\t...(accepted ? { advisory: immutableClone(advisory) } : {}),\n\t};\n}\n\nexport function projectWorkspaceProposalRepairActionDisplayPolicyAdvisory(\n\tdescriptor: WorkspaceProposalRepairActionDescriptor,\n\trequest: WorkspaceProposalRepairReviewRequest,\n\toptions: Omit<\n\t\tWorkspaceProposalRepairActionDisplayPolicyAdvisoryProjectorOptions,\n\t\t\"name\" | \"descriptors\" | \"requests\"\n\t> = {},\n): WorkspaceProposalRepairActionDisplayPolicyAdvisory {\n\tconst policyEvidenceRefs = safeAdvisorySourceRefs(options.policyEvidenceRefs);\n\tconst capabilityEvidenceRefs = safeAdvisorySourceRefs(options.capabilityEvidenceRefs);\n\tconst advisoryIssues = safeAdvisoryIssues(options.advisoryIssues);\n\tconst displayCode = safeAdvisoryText(options.displayCode);\n\tconst displayMessage = safeAdvisoryText(options.displayMessage);\n\tconst sourceRefs = safeAdvisorySourceRefs(options.sourceRefs);\n\tconst audit = safeAdvisoryAudit(options.audit);\n\tconst metadata = safeAdvisoryMetadata(options.metadata);\n\treturn {\n\t\tkind: \"workspace-proposal-repair-action-display-policy-advisory\",\n\t\tauthority: \"display-only-advisory\",\n\t\tdescriptorId: descriptor.descriptorId,\n\t\trepairRequestId: request.repairRequestId,\n\t\tactionKind: descriptor.actionKind,\n\t\tapplicationId: request.applicationId,\n\t\tproposalId: request.proposalId,\n\t\tdecisionId: request.decisionId,\n\t\tidempotencyKey: request.idempotencyKey,\n\t\tproposalFamily: request.proposalFamily,\n\t\tdisplayAssessment: options.displayAssessment ?? \"not-evaluated\",\n\t\t...(policyEvidenceRefs.length === 0 ? {} : { policyEvidenceRefs }),\n\t\t...(capabilityEvidenceRefs.length === 0 ? {} : { capabilityEvidenceRefs }),\n\t\t...(advisoryIssues.length === 0 ? {} : { advisoryIssues }),\n\t\t...(displayCode === undefined ? {} : { displayCode }),\n\t\t...(displayMessage === undefined ? {} : { displayMessage }),\n\t\tsourceRefs: repairActionSourceRefs([\n\t\t\t...descriptor.sourceRefs,\n\t\t\t...request.sourceRefs,\n\t\t\t...sourceRefs,\n\t\t\t...(audit?.sourceRefs ?? []),\n\t\t]),\n\t\t...(audit === undefined ? {} : { audit }),\n\t\t...(metadata === undefined ? {} : { metadata }),\n\t};\n}\n\nexport function workspaceProposalRepairActionDisplayPolicyAdvisoryProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalRepairActionDisplayPolicyAdvisoryProjectorOptions,\n): WorkspaceProposalRepairActionDisplayPolicyAdvisoryProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalRepairActionDisplayPolicyAdvisory\";\n\tconst deps =\n\t\topts.releases === undefined\n\t\t\t? [opts.descriptors, opts.requests]\n\t\t\t: [opts.descriptors, opts.requests, opts.releases];\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"repair-action-display-policy-advisory\";\n\t\t\t\treadonly value: WorkspaceProposalRepairActionDisplayPolicyAdvisory;\n\t\t }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<{\n\t\t\t\treadonly descriptors: Map<string, WorkspaceProposalRepairActionDescriptor>;\n\t\t\t\treadonly requests: Map<string, WorkspaceProposalRepairReviewRequest>;\n\t\t\t\treadonly emittedAdvisories: Map<string, string>;\n\t\t\t}>() ?? {\n\t\t\t\tdescriptors: new Map(),\n\t\t\t\trequests: new Map(),\n\t\t\t\temittedAdvisories: new Map(),\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst descriptor = raw as WorkspaceProposalRepairActionDescriptor;\n\t\t\t\tstate.descriptors.set(descriptor.descriptorId, descriptor);\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst request = raw as WorkspaceProposalRepairReviewRequest;\n\t\t\t\tstate.requests.set(request.repairRequestId, request);\n\t\t\t}\n\t\t\tif (opts.releases !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\t\t\t\tpruneRepairActionAdvisoryRelease(state, raw);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const descriptor of state.descriptors.values()) {\n\t\t\t\tconst request = state.requests.get(descriptor.repairRequestId);\n\t\t\t\tif (request === undefined || !repairReviewCoordinatesMatch(request, descriptor)) continue;\n\t\t\t\tif (\n\t\t\t\t\trepairActionAdvisoryHasPermissionProofMaterial({\n\t\t\t\t\t\tpolicyEvidenceRefs: opts.policyEvidenceRefs,\n\t\t\t\t\t\tcapabilityEvidenceRefs: opts.capabilityEvidenceRefs,\n\t\t\t\t\t\tadvisoryIssues: opts.advisoryIssues,\n\t\t\t\t\t\tdisplayCode: opts.displayCode,\n\t\t\t\t\t\tdisplayMessage: opts.displayMessage,\n\t\t\t\t\t\tsourceRefs: opts.sourceRefs,\n\t\t\t\t\t\taudit: opts.audit,\n\t\t\t\t\t\tmetadata: opts.metadata,\n\t\t\t\t\t})\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst advisory = projectWorkspaceProposalRepairActionDisplayPolicyAdvisory(\n\t\t\t\t\tdescriptor,\n\t\t\t\t\trequest,\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayAssessment: opts.displayAssessment,\n\t\t\t\t\t\tpolicyEvidenceRefs: opts.policyEvidenceRefs,\n\t\t\t\t\t\tcapabilityEvidenceRefs: opts.capabilityEvidenceRefs,\n\t\t\t\t\t\tadvisoryIssues: opts.advisoryIssues,\n\t\t\t\t\t\tdisplayCode: opts.displayCode,\n\t\t\t\t\t\tdisplayMessage: opts.displayMessage,\n\t\t\t\t\t\tsourceRefs: opts.sourceRefs,\n\t\t\t\t\t\taudit: opts.audit,\n\t\t\t\t\t\tmetadata: opts.metadata,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tconst validation = validateWorkspaceProposalRepairActionDisplayPolicyAdvisory(advisory, {\n\t\t\t\t\tdescriptor,\n\t\t\t\t\trequest,\n\t\t\t\t});\n\t\t\t\tif (validation.status !== \"accepted\" || validation.advisory === undefined) continue;\n\t\t\t\tconst signature = stableStringify(advisory);\n\t\t\t\tconst key = stableStringify({\n\t\t\t\t\tdescriptorId: advisory.descriptorId,\n\t\t\t\t\trepairRequestId: advisory.repairRequestId,\n\t\t\t\t\tactionKind: advisory.actionKind,\n\t\t\t\t});\n\t\t\t\tif (state.emittedAdvisories.get(key) === signature) continue;\n\t\t\t\tstate.emittedAdvisories.set(key, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"repair-action-display-policy-advisory\", value: advisory }]]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalRepairActionDisplayPolicyAdvisoryProjector\"),\n\t);\n\treturn {\n\t\tadvisories: project(graph, runtime, `${name}/advisories`, `${name}Advisories`, (fact) =>\n\t\t\tfact?.kind === \"repair-action-display-policy-advisory\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function prepareWorkspaceProposalRepairSuccessorProposalReadyRequest<TDraft = unknown>(\n\tpreview: WorkspaceProposalRepairSuccessorProposalIntakePreview | unknown,\n\tinput: WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationInput<TDraft> | unknown,\n): WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationResult<TDraft> {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tconst previewRecord = isRecord(preview) ? preview : {};\n\tconst inputRecord = isRecord(input) ? input : {};\n\tconst validationRecord = isRecord(inputRecord.intentValidation)\n\t\t? inputRecord.intentValidation\n\t\t: {};\n\tconst validationAudit = safeWorkspaceProposalAudit(validationRecord.audit);\n\tconst boundarySafeValidationAudit =\n\t\tvalidationAudit === undefined ||\n\t\t!workspaceProposalBoundarySourceRefsAreSafe(validationAudit.sourceRefs)\n\t\t\t? undefined\n\t\t\t: validationAudit;\n\tconst safeAudit = safeWorkspaceProposalAudit(inputRecord.audit);\n\tconst boundarySafeAudit =\n\t\tsafeAudit === undefined || !workspaceProposalBoundarySourceRefsAreSafe(safeAudit.sourceRefs)\n\t\t\t? undefined\n\t\t\t: safeAudit;\n\tconst sourceRefs = repairActionSourceRefs([\n\t\t...(Array.isArray(previewRecord.sourceRefs) ? (previewRecord.sourceRefs as SourceRef[]) : []),\n\t\t...(Array.isArray(inputRecord.sourceRefs) ? (inputRecord.sourceRefs as SourceRef[]) : []),\n\t\t...(Array.isArray(inputRecord.finalDraftSourceRefs)\n\t\t\t? (inputRecord.finalDraftSourceRefs as SourceRef[])\n\t\t\t: []),\n\t\t...(Array.isArray(validationRecord.sourceRefs)\n\t\t\t? (validationRecord.sourceRefs as SourceRef[])\n\t\t\t: []),\n\t\t...(boundarySafeValidationAudit?.sourceRefs ?? []),\n\t\t...(boundarySafeAudit?.sourceRefs ?? []),\n\t]);\n\tif (!isRepairSuccessorPreviewMaterial(preview)) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-repair-successor-preview\",\n\t\t\t\t\"Repair successor ready-request preparation requires a typed successor preview.\",\n\t\t\t\tpreview,\n\t\t\t\tundefined,\n\t\t\t),\n\t\t);\n\t}\n\tif (!isRepairSuccessorReadyRequestPreparationInput(input)) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-repair-successor-preparation-input\",\n\t\t\t\t\"Repair successor ready-request preparation requires explicit typed preparation input.\",\n\t\t\t\tinput,\n\t\t\t\tundefined,\n\t\t\t),\n\t\t);\n\t}\n\tfor (const [label, value] of [\n\t\t[\"repairSuccessorPreview\", preview],\n\t\t[\"repairSuccessorReadyRequestPreparationInput\", input],\n\t] as const) {\n\t\tfor (const entry of workspaceProposalDataOnlyIssues(value, label)) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIssueFromDataOnly(\n\t\t\t\t\tentry,\n\t\t\t\t\trepairActionIssueIntentFallback(input),\n\t\t\t\t\tisRepairSuccessorReadyRequestPreparationInput(input) ? input.request : undefined,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (isRepairSuccessorPreviewMaterial(preview) && preview.status !== \"proposal-context-ready\") {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"repair-successor-preview-not-ready\",\n\t\t\t\t\"Repair successor preview must be proposal-context-ready before ready-request preparation.\",\n\t\t\t\tpreview,\n\t\t\t\tundefined,\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\tisRepairSuccessorPreviewMaterial(preview) &&\n\t\tisRepairSuccessorReadyRequestPreparationInput(input)\n\t) {\n\t\tif (\n\t\t\tinput.previewId !== preview.previewId ||\n\t\t\tinput.intent.intentId !== preview.intentId ||\n\t\t\tinput.descriptor.descriptorId !== preview.descriptorId ||\n\t\t\tinput.request.repairRequestId !== preview.repairRequestId ||\n\t\t\tinput.intent.actionKind !== \"open-successor-proposal-flow\" ||\n\t\t\tinput.descriptor.actionKind !== \"open-successor-proposal-flow\" ||\n\t\t\t!repairActionPreviewCoordinatesMatchInput(preview, input) ||\n\t\t\t!repairActionIntentValidationMatchesPreparationInput(input.intentValidation, input)\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"repair-successor-preparation-coordinate-mismatch\",\n\t\t\t\t\t\"Repair successor preparation input must match preview, intent, descriptor, and repair request coordinates.\",\n\t\t\t\t\tinput.intent,\n\t\t\t\t\tinput.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (input.intentValidation.status !== \"accepted\" || input.intentValidation.issues.length > 0) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"blocked-repair-action-intent-validation\",\n\t\t\t\t\t\"Repair successor preparation requires an accepted repair action intent validation result.\",\n\t\t\t\t\tinput.intent,\n\t\t\t\t\tinput.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (!workspaceProposalTargetRefsAreValid(input.targetRefs)) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"malformed-repair-successor-preparation-input\",\n\t\t\t\t\t\"Repair successor ready-request preparation requires bounded target refs.\",\n\t\t\t\t\tinput.intent,\n\t\t\t\t\tinput.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (input.draft === undefined && !nonEmptySourceRefs(input.draftRefs)) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"missing-draft-material\",\n\t\t\t\t\t\"Repair successor ready-request preparation requires final draft material or draft refs.\",\n\t\t\t\t\tinput.intent,\n\t\t\t\t\tinput.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\t(input.draft !== undefined || input.draftRefs !== undefined) &&\n\t\t\t!nonEmptySourceRefs(input.finalDraftSourceRefs)\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"missing-final-draft-source\",\n\t\t\t\t\t\"Repair successor final draft material requires explicit final draft source refs.\",\n\t\t\t\t\tinput.intent,\n\t\t\t\t\tinput.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (repairSuccessorPreparationMetadataHasTruthMaterial(input.metadata)) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"malformed-repair-successor-preparation-input\",\n\t\t\t\t\t\"Repair successor ready-request preparation metadata must not carry admission/application/recorded truth material.\",\n\t\t\t\t\tinput.intent,\n\t\t\t\t\tinput.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (boundarySafeAudit === undefined) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"missing-audit\",\n\t\t\t\t\t\"Repair successor ready-request preparation requires data-only audit material.\",\n\t\t\t\t\tinput.intent,\n\t\t\t\t\tinput.request,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tconst cleanIssues = dedupeRepairActionIssues(issues);\n\tconst blockedPreviewId =\n\t\tstringField(previewRecord.previewId) ?? stringField(inputRecord.previewId);\n\tconst blockedRepairRequestId =\n\t\tstringField(previewRecord.repairRequestId) ?? stringField(inputRecord.repairRequestId);\n\tif (\n\t\tcleanIssues.length > 0 ||\n\t\t!isRepairSuccessorPreviewMaterial(preview) ||\n\t\t!isRepairSuccessorReadyRequestPreparationInput(input) ||\n\t\tboundarySafeAudit === undefined\n\t) {\n\t\treturn {\n\t\t\tkind: \"workspace-proposal-repair-successor-proposal-ready-request-preparation-result\",\n\t\t\tstatus: \"blocked\",\n\t\t\t...(stringField(inputRecord.preparationId) === undefined\n\t\t\t\t? {}\n\t\t\t\t: { preparationId: stringField(inputRecord.preparationId) }),\n\t\t\t...(blockedPreviewId === undefined ? {} : { previewId: blockedPreviewId }),\n\t\t\t...(blockedRepairRequestId === undefined ? {} : { repairRequestId: blockedRepairRequestId }),\n\t\t\t...(stringField(previewRecord.descriptorId) === undefined\n\t\t\t\t? {}\n\t\t\t\t: { descriptorId: stringField(previewRecord.descriptorId) }),\n\t\t\t...(stringField(previewRecord.intentId) === undefined\n\t\t\t\t? {}\n\t\t\t\t: { intentId: stringField(previewRecord.intentId) }),\n\t\t\tissues: cleanIssues,\n\t\t\tsourceRefs,\n\t\t\t...(boundarySafeAudit === undefined ? {} : { audit: boundarySafeAudit }),\n\t\t};\n\t}\n\tconst readyRequest = immutableClone<WorkspaceProposalReadyRequest<TDraft>>({\n\t\tkind: \"workspace-proposal-ready-request\",\n\t\tproposalId: input.successorProposalId,\n\t\tintakeRequestId: input.intakeRequestId,\n\t\tidempotencyKey: input.successorIdempotencyKey,\n\t\tworkspaceId: input.workspaceId,\n\t\tproposalFamily: input.successorProposalFamily,\n\t\tloweringKind: input.successorLoweringKind,\n\t\t...(input.draft === undefined ? {} : { draft: immutableClone(input.draft) as TDraft }),\n\t\t...(input.draftRefs === undefined ? {} : { draftRefs: immutableClone(input.draftRefs) }),\n\t\ttargetRefs: immutableClone(input.targetRefs),\n\t\tactorRef: immutableClone(input.actorRef),\n\t\tcapabilityRefs: immutableClone(input.capabilityRefs),\n\t\tpolicyRefs: immutableClone(input.policyRefs),\n\t\tprojectionBundleRefs: immutableClone(input.projectionBundleRefs),\n\t\tsourceRefs,\n\t\taudit: boundarySafeAudit,\n\t\tmetadata: immutableClone({\n\t\t\t...(input.metadata ?? {}),\n\t\t\trepairSuccessorPreviewId: preview.previewId,\n\t\t\trepairActionIntentId: input.intent.intentId,\n\t\t\trepairActionDescriptorId: input.descriptor.descriptorId,\n\t\t\trepairRequestId: input.request.repairRequestId,\n\t\t\trepairActionKind: input.intent.actionKind,\n\t\t\tpredecessorProposalId: preview.proposalId,\n\t\t\tpredecessorDecisionId: preview.decisionId,\n\t\t\tpredecessorIdempotencyKey: preview.idempotencyKey,\n\t\t\tpredecessorProposalFamily: preview.proposalFamily,\n\t\t}),\n\t});\n\treturn {\n\t\tkind: \"workspace-proposal-repair-successor-proposal-ready-request-preparation-result\",\n\t\tstatus: \"prepared\",\n\t\tpreparationId: input.preparationId,\n\t\tpreviewId: preview.previewId,\n\t\trepairRequestId: preview.repairRequestId,\n\t\tdescriptorId: preview.descriptorId,\n\t\tintentId: preview.intentId,\n\t\treadyRequest,\n\t\tissues: [],\n\t\tsourceRefs,\n\t\taudit: boundarySafeAudit,\n\t};\n}\n\nexport function workspaceProposalRepairActionIntentProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalRepairActionIntentProjectorOptions,\n): WorkspaceProposalRepairActionIntentProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalRepairActionIntent\";\n\tconst deps = repairActionIntentProjectorDeps(opts);\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"repair-action-intent-validation-result\";\n\t\t\t\treadonly value: WorkspaceProposalRepairActionIntentValidationResult;\n\t\t }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = repairActionIntentGraphState(ctx);\n\t\t\tingestRepairActionIntentGraphFacts(ctx, state, opts.statuses !== undefined);\n\t\t\tif (opts.releases !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, repairActionReleaseDepIndex(opts.statuses !== undefined)) ??\n\t\t\t\t\t[]) {\n\t\t\t\t\tpruneRepairActionIntentRelease(state, raw);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const entry of state.intents.values()) {\n\t\t\t\tif (entry.conflict) {\n\t\t\t\t\tconst result = conflictingRepairActionIntentValidationResult(entry.intent);\n\t\t\t\t\tconst signature = stableStringify(result);\n\t\t\t\t\tif (state.emittedResults.get(entry.intent.intentId) === signature) continue;\n\t\t\t\t\tstate.emittedResults.set(entry.intent.intentId, signature);\n\t\t\t\t\tctx.down([[\"DATA\", { kind: \"repair-action-intent-validation-result\", value: result }]]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst intent = entry.intent;\n\t\t\t\tconst request = state.requests.get(intent.repairRequestId);\n\t\t\t\tconst result = validateWorkspaceProposalRepairActionIntent(intent, {\n\t\t\t\t\tdescriptor: state.descriptors.get(intent.descriptorId),\n\t\t\t\t\trequest,\n\t\t\t\t\tcurrentStatus:\n\t\t\t\t\t\trequest === undefined\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: state.statuses.get(repairReviewStatusProjectionKeyFromRequest(request)),\n\t\t\t\t\texpectedCurrentState: intent.expectedCurrentState,\n\t\t\t\t\tcapabilityRefs: opts.capabilityRefs,\n\t\t\t\t\tpolicyRefs: opts.policyRefs,\n\t\t\t\t\tpolicyStatus: opts.policyStatus,\n\t\t\t\t});\n\t\t\t\tconst signature = stableStringify(result);\n\t\t\t\tif (state.emittedResults.get(intent.intentId) === signature) continue;\n\t\t\t\tstate.emittedResults.set(intent.intentId, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"repair-action-intent-validation-result\", value: result }]]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalRepairActionIntentProjector\"),\n\t);\n\treturn {\n\t\tresults: project(graph, runtime, `${name}/results`, `${name}Results`, (fact) =>\n\t\t\tfact?.kind === \"repair-action-intent-validation-result\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function workspaceProposalRepairSuccessorProposalIntakePreviewProjector(\n\tgraph: Graph,\n\topts: WorkspaceProposalRepairSuccessorProposalIntakePreviewProjectorOptions,\n): WorkspaceProposalRepairSuccessorProposalIntakePreviewProjectorBundle {\n\tconst name = opts.name ?? \"workspaceProposalRepairSuccessorProposalIntakePreview\";\n\tconst deps = repairActionIntentProjectorDeps(opts);\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"successor-proposal-intake-preview\";\n\t\t\t\treadonly value: WorkspaceProposalRepairSuccessorProposalIntakePreview;\n\t\t }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = repairActionIntentGraphState(ctx);\n\t\t\tingestRepairActionIntentGraphFacts(ctx, state, opts.statuses !== undefined);\n\t\t\tif (opts.releases !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, repairActionReleaseDepIndex(opts.statuses !== undefined)) ??\n\t\t\t\t\t[]) {\n\t\t\t\t\tpruneRepairSuccessorPreviewRelease(state, raw);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const entry of state.intents.values()) {\n\t\t\t\tif (entry.intent.actionKind !== \"open-successor-proposal-flow\") continue;\n\t\t\t\tconst intent = entry.intent;\n\t\t\t\tif (entry.conflict) {\n\t\t\t\t\tconst preview = blockedRepairSuccessorPreview(\n\t\t\t\t\t\tintent,\n\t\t\t\t\t\t[conflictingRepairActionIntentIssue(intent)],\n\t\t\t\t\t\t{},\n\t\t\t\t\t);\n\t\t\t\t\tif (state.releasedPreviews.has(preview.previewId)) continue;\n\t\t\t\t\tconst signature = stableStringify(preview);\n\t\t\t\t\tif (state.emittedPreviews.get(preview.previewId) === signature) continue;\n\t\t\t\t\tstate.emittedPreviews.set(preview.previewId, signature);\n\t\t\t\t\tctx.down([[\"DATA\", { kind: \"successor-proposal-intake-preview\", value: preview }]]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst request = state.requests.get(intent.repairRequestId);\n\t\t\t\tconst preview = projectWorkspaceProposalRepairSuccessorProposalIntakePreview(intent, {\n\t\t\t\t\tdescriptor: state.descriptors.get(intent.descriptorId),\n\t\t\t\t\trequest,\n\t\t\t\t\tcurrentStatus:\n\t\t\t\t\t\trequest === undefined\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: state.statuses.get(repairReviewStatusProjectionKeyFromRequest(request)),\n\t\t\t\t\texpectedCurrentState: intent.expectedCurrentState,\n\t\t\t\t\tcapabilityRefs: opts.capabilityRefs,\n\t\t\t\t\tpolicyRefs: opts.policyRefs,\n\t\t\t\t\tpolicyStatus: opts.policyStatus,\n\t\t\t\t\tmaxSuggestedDraftPatchBytes: opts.maxSuggestedDraftPatchBytes,\n\t\t\t\t});\n\t\t\t\tif (state.releasedPreviews.has(preview.previewId)) continue;\n\t\t\t\tconst signature = stableStringify(preview);\n\t\t\t\tif (state.emittedPreviews.get(preview.previewId) === signature) continue;\n\t\t\t\tstate.emittedPreviews.set(preview.previewId, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"successor-proposal-intake-preview\", value: preview }]]);\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(name, \"workspaceProposalRepairSuccessorProposalIntakePreviewProjector\"),\n\t);\n\treturn {\n\t\tpreviews: project(graph, runtime, `${name}/previews`, `${name}Previews`, (fact) =>\n\t\t\tfact?.kind === \"successor-proposal-intake-preview\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\nexport function workspaceProposalRepairSuccessorProposalReadyRequestPreparationProjector<\n\tTDraft = unknown,\n>(\n\tgraph: Graph,\n\topts: WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationProjectorOptions<TDraft>,\n): WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationProjectorBundle<TDraft> {\n\tconst name = opts.name ?? \"workspaceProposalRepairSuccessorProposalReadyRequestPreparation\";\n\tconst deps =\n\t\topts.releases === undefined\n\t\t\t? [opts.previews, opts.preparationInputs]\n\t\t\t: [opts.previews, opts.preparationInputs, opts.releases];\n\tconst runtime = graph.node<\n\t\t| {\n\t\t\t\treadonly kind: \"successor-ready-request-preparation-result\";\n\t\t\t\treadonly value: WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationResult<TDraft>;\n\t\t }\n\t\t| {\n\t\t\t\treadonly kind: \"successor-ready-request\";\n\t\t\t\treadonly value: WorkspaceProposalReadyRequest<TDraft>;\n\t\t }\n\t\t| {\n\t\t\t\treadonly kind: \"issue\";\n\t\t\t\treadonly value: WorkspaceProposalRecordedIssue;\n\t\t }\n\t\t| undefined\n\t>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = repairSuccessorPreparationGraphState<TDraft>(ctx);\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst preview = raw as WorkspaceProposalRepairSuccessorProposalIntakePreview;\n\t\t\t\tstate.previews.set(preview.previewId, preview);\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst input =\n\t\t\t\t\traw as WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationInput<TDraft>;\n\t\t\t\tstate.inputs.set(input.preparationId, input);\n\t\t\t}\n\t\t\tif (opts.releases !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\t\t\t\tpruneRepairSuccessorPreparationRelease(state, raw);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const input of state.inputs.values()) {\n\t\t\t\tconst preview = state.previews.get(input.previewId);\n\t\t\t\tlet result: WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationResult<TDraft> =\n\t\t\t\t\tprepareWorkspaceProposalRepairSuccessorProposalReadyRequest<TDraft>(preview, input);\n\t\t\t\tconst preparedReadyRequest = state.preparedReadyRequests.get(input.preparationId);\n\t\t\t\tif (preparedReadyRequest !== undefined) {\n\t\t\t\t\tconst resultReadySignature =\n\t\t\t\t\t\tresult.readyRequest === undefined ? undefined : stableStringify(result.readyRequest);\n\t\t\t\t\tif (resultReadySignature !== preparedReadyRequest.signature) {\n\t\t\t\t\t\tconst issue = repairActionIntentIssue(\n\t\t\t\t\t\t\t\"repair-successor-preparation-already-prepared\",\n\t\t\t\t\t\t\t\"Repair successor ready-request preparation is immutable after its first prepared ready request.\",\n\t\t\t\t\t\t\tinput.intent,\n\t\t\t\t\t\t\tinput.request,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst { readyRequest: _readyRequest, ...blockedResult } = result;\n\t\t\t\t\t\tresult = {\n\t\t\t\t\t\t\t...blockedResult,\n\t\t\t\t\t\t\tstatus: \"blocked\",\n\t\t\t\t\t\t\tissues: dedupeRepairActionIssues([...result.issues, issue]),\n\t\t\t\t\t\t};\n\t\t\t\t\t} else if (preparedReadyRequest.compacted) {\n\t\t\t\t\t\tconst { readyRequest: _readyRequest, ...preparedResult } = result;\n\t\t\t\t\t\tresult = preparedResult;\n\t\t\t\t\t}\n\t\t\t\t} else if (result.readyRequest !== undefined) {\n\t\t\t\t\tstate.preparedReadyRequests.set(input.preparationId, {\n\t\t\t\t\t\tsignature: stableStringify(result.readyRequest),\n\t\t\t\t\t\tcompacted: false,\n\t\t\t\t\t\tvalue: immutableClone(result.readyRequest) as WorkspaceProposalReadyRequest<TDraft>,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst signature = stableStringify(result);\n\t\t\t\tif (state.emittedResults.get(input.preparationId) === signature) continue;\n\t\t\t\tstate.emittedResults.set(input.preparationId, signature);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"successor-ready-request-preparation-result\", value: result }]]);\n\t\t\t\tfor (const issue of result.issues) {\n\t\t\t\t\tctx.down([[\"DATA\", { kind: \"issue\", value: issue }]]);\n\t\t\t\t}\n\t\t\t\tif (result.readyRequest !== undefined) {\n\t\t\t\t\tctx.down([[\"DATA\", { kind: \"successor-ready-request\", value: result.readyRequest }]]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tctx.state.set(state);\n\t\t},\n\t\truntimeOptions(\n\t\t\tname,\n\t\t\t\"workspaceProposalRepairSuccessorProposalReadyRequestPreparationProjector\",\n\t\t),\n\t);\n\treturn {\n\t\tresults: project(graph, runtime, `${name}/results`, `${name}Results`, (fact) =>\n\t\t\tfact?.kind === \"successor-ready-request-preparation-result\" ? fact.value : undefined,\n\t\t),\n\t\treadyRequests: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/readyRequests`,\n\t\t\t`${name}ReadyRequests`,\n\t\t\t(fact) => (fact?.kind === \"successor-ready-request\" ? fact.value : undefined),\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, `${name}Issues`, (fact) =>\n\t\t\tfact?.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t};\n}\n\ninterface RepairReviewStatusProjectionContext {\n\treadonly decisions: readonly WorkspaceProposalRepairReviewDecision[];\n\treadonly applicationStatuses: readonly WorkspaceProposalApplicationStatus[];\n\treadonly applicationRecorded: readonly WorkspaceProposalApplicationRecorded[];\n\treadonly outcomeStatuses: readonly WorkspaceProposalFamilyOutcomeRecordStatus[];\n\treadonly outcomeIndex: readonly WorkspaceProposalFamilyOutcomeIndexEntry[];\n}\n\ninterface RepairReviewDurableProof {\n\treadonly state: \"resolved\" | \"superseded\";\n\treadonly code: string;\n\treadonly proofKind: Exclude<WorkspaceProposalRepairReviewProofKind, \"human-decision\">;\n\treadonly proofRefs: readonly SourceRef[];\n\treadonly sourceRefs: readonly SourceRef[];\n}\n\nfunction projectWorkspaceProposalRepairReviewStatus(\n\trequest: WorkspaceProposalRepairReviewRequest,\n\tcontext: RepairReviewStatusProjectionContext,\n): WorkspaceProposalRepairReviewStatus {\n\tconst decisions = dedupeRepairReviewDecisions(\n\t\tcontext.decisions.filter((decision) => repairReviewDecisionMatchesRequest(decision, request)),\n\t);\n\tconst terminalDecisions = decisions.filter((decision) => decision.intent !== \"acknowledged\");\n\tconst activeTerminalDecisions = terminalDecisions.filter(\n\t\t(decision) =>\n\t\t\t!terminalDecisions.some((candidate) => repairReviewDecisionSupersedes(candidate, decision)),\n\t);\n\tif (activeTerminalDecisions.length > 1) {\n\t\tconst issue = repairReviewStatusIssue(\n\t\t\trequest,\n\t\t\t\"conflicting-repair-review-decisions\",\n\t\t\t\"Workspace proposal repair review decisions conflict\",\n\t\t\tactiveTerminalDecisions,\n\t\t);\n\t\treturn repairReviewStatus(request, \"conflict\", {\n\t\t\tcode: issue.code,\n\t\t\tdecisions,\n\t\t\tconflicts: activeTerminalDecisions,\n\t\t\tissues: [issue],\n\t\t\tsourceRefs: uniqueRefs([\n\t\t\t\t...request.sourceRefs,\n\t\t\t\t...activeTerminalDecisions.flatMap((decision) => decision.sourceRefs ?? []),\n\t\t\t]),\n\t\t});\n\t}\n\tconst terminalDecision = activeTerminalDecisions[0];\n\tif (terminalDecision !== undefined) {\n\t\treturn repairReviewStatus(request, terminalDecision.intent, {\n\t\t\tcode: terminalDecision.code ?? terminalDecision.intent,\n\t\t\tproofKind: \"human-decision\",\n\t\t\tproofRefs: [repairReviewDecisionSourceRef(terminalDecision)],\n\t\t\tdecisions,\n\t\t\tsourceRefs: uniqueRefs([...request.sourceRefs, ...(terminalDecision.sourceRefs ?? [])]),\n\t\t\taudit: terminalDecision.audit ?? request.audit,\n\t\t\tmetadata: terminalDecision.metadata,\n\t\t});\n\t}\n\tconst durableProof = repairReviewDurableProof(request, context);\n\tif (durableProof !== undefined) {\n\t\treturn repairReviewStatus(request, durableProof.state, {\n\t\t\tcode: durableProof.code,\n\t\t\tproofKind: durableProof.proofKind,\n\t\t\tproofRefs: durableProof.proofRefs,\n\t\t\tdecisions,\n\t\t\tsourceRefs: uniqueRefs([...request.sourceRefs, ...durableProof.sourceRefs]),\n\t\t});\n\t}\n\tconst acknowledgedDecision = decisions.find((decision) => decision.intent === \"acknowledged\");\n\tif (acknowledgedDecision !== undefined) {\n\t\treturn repairReviewStatus(request, \"acknowledged\", {\n\t\t\tcode: acknowledgedDecision.code ?? \"acknowledged\",\n\t\t\tproofKind: \"human-decision\",\n\t\t\tproofRefs: [repairReviewDecisionSourceRef(acknowledgedDecision)],\n\t\t\tdecisions,\n\t\t\tsourceRefs: uniqueRefs([...request.sourceRefs, ...(acknowledgedDecision.sourceRefs ?? [])]),\n\t\t\taudit: acknowledgedDecision.audit ?? request.audit,\n\t\t\tmetadata: acknowledgedDecision.metadata,\n\t\t});\n\t}\n\treturn repairReviewStatus(request, \"open\", {\n\t\tcode: \"open\",\n\t\tdecisions,\n\t\tsourceRefs: request.sourceRefs,\n\t\taudit: request.audit,\n\t});\n}\n\nfunction repairReviewStatus(\n\trequest: WorkspaceProposalRepairReviewRequest,\n\tstate: WorkspaceProposalRepairReviewLifecycleState,\n\toptions: {\n\t\treadonly code?: string;\n\t\treadonly proofKind?: WorkspaceProposalRepairReviewProofKind;\n\t\treadonly proofRefs?: readonly SourceRef[];\n\t\treadonly decisions?: readonly WorkspaceProposalRepairReviewDecision[];\n\t\treadonly conflicts?: readonly WorkspaceProposalRepairReviewDecision[];\n\t\treadonly issues?: readonly WorkspaceProposalRecordedIssue[];\n\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\treadonly audit?: WorkspaceProposalAuditMaterial;\n\t\treadonly metadata?: Record<string, unknown>;\n\t} = {},\n): WorkspaceProposalRepairReviewStatus {\n\treturn {\n\t\tkind: \"workspace-proposal-repair-review-status\",\n\t\trepairRequestId: request.repairRequestId,\n\t\tapplicationId: request.applicationId,\n\t\tproposalId: request.proposalId,\n\t\tdecisionId: request.decisionId,\n\t\tidempotencyKey: request.idempotencyKey,\n\t\tproposalFamily: request.proposalFamily,\n\t\tstate,\n\t\tcode: options.code,\n\t\tproofKind: options.proofKind,\n\t\tproofRefs: options.proofRefs ?? [],\n\t\tdecisions: immutableClone(options.decisions ?? []),\n\t\tconflicts: immutableClone(options.conflicts ?? []),\n\t\tissues: options.issues ?? [],\n\t\tsourceRefs: uniqueRefs(options.sourceRefs ?? request.sourceRefs),\n\t\taudit: options.audit ?? request.audit,\n\t\tmetadata: options.metadata,\n\t};\n}\n\nfunction repairReviewDurableProof(\n\trequest: WorkspaceProposalRepairReviewRequest,\n\tcontext: RepairReviewStatusProjectionContext,\n): RepairReviewDurableProof | undefined {\n\tfor (const status of context.outcomeStatuses) {\n\t\tif (\n\t\t\tstatus.state === \"recorded\" &&\n\t\t\tstatus.outcomeRefs.length > 0 &&\n\t\t\trepairReviewCoordinatesMatch(request, status) &&\n\t\t\trepairRequestAllowsProof(\n\t\t\t\trequest,\n\t\t\t\t\"workspace-proposal-family-outcome-record-status\",\n\t\t\t\tstatus.outcomeId,\n\t\t\t) &&\n\t\t\tstatus.outcomeRefs.some((ref) => sameOutcomeRefCoordinates(ref, status))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tstate: \"resolved\",\n\t\t\t\tcode: status.code ?? \"family-outcome-recorded\",\n\t\t\t\tproofKind: \"family-outcome-status\",\n\t\t\t\tproofRefs: [\n\t\t\t\t\t{ kind: \"workspace-proposal-family-outcome-record-status\", id: status.outcomeId },\n\t\t\t\t],\n\t\t\t\tsourceRefs: status.sourceRefs,\n\t\t\t};\n\t\t}\n\t}\n\tfor (const entry of context.outcomeIndex) {\n\t\tif (\n\t\t\tentry.state === \"recorded\" &&\n\t\t\tentry.outcomeRefs.length > 0 &&\n\t\t\trepairReviewCoordinatesMatch(request, entry) &&\n\t\t\trepairRequestAllowsProof(\n\t\t\t\trequest,\n\t\t\t\t\"workspace-proposal-family-outcome-index-entry\",\n\t\t\t\tentry.indexKey,\n\t\t\t) &&\n\t\t\tentry.outcomeRefs.some((ref) => sameOutcomeRefCoordinates(ref, entry))\n\t\t) {\n\t\t\treturn {\n\t\t\t\tstate: \"resolved\",\n\t\t\t\tcode: \"family-outcome-index-recorded\",\n\t\t\t\tproofKind: \"family-outcome-index\",\n\t\t\t\tproofRefs: [{ kind: \"workspace-proposal-family-outcome-index-entry\", id: entry.indexKey }],\n\t\t\t\tsourceRefs: entry.sourceRefs,\n\t\t\t};\n\t\t}\n\t}\n\tconst applicationStatus = context.applicationStatuses.find((status) =>\n\t\trepairReviewCoordinatesMatch(request, status),\n\t);\n\tconst recorded = context.applicationRecorded.find(\n\t\t(record) =>\n\t\t\tapplicationStatus !== undefined &&\n\t\t\tapplicationRecordedMatchesStatus(record, applicationStatus),\n\t);\n\tif (\n\t\trecorded !== undefined &&\n\t\tapplicationStatus !== undefined &&\n\t\tapplicationRecordedMatchesStatus(recorded, applicationStatus) &&\n\t\trepairReviewCoordinatesMatch(request, applicationStatus) &&\n\t\trepairRequestAllowsProof(\n\t\t\trequest,\n\t\t\t\"workspace-proposal-application-status\",\n\t\t\tapplicationStatus.applicationId,\n\t\t) &&\n\t\tapplicationStatusResolvesRepairReview(applicationStatus)\n\t) {\n\t\treturn {\n\t\t\tstate: \"resolved\",\n\t\t\tcode: \"application-recorded\",\n\t\t\tproofKind: \"application-recorded\",\n\t\t\tproofRefs: [\n\t\t\t\t{ kind: \"workspace-proposal-application-recorded\", id: recorded.applicationRecordId },\n\t\t\t\t{ kind: \"workspace-proposal-application-status\", id: applicationStatus.applicationId },\n\t\t\t],\n\t\t\tsourceRefs: uniqueRefs([...recorded.sourceRefs, ...applicationStatus.sourceRefs]),\n\t\t};\n\t}\n\tif (\n\t\tapplicationStatus !== undefined &&\n\t\trepairReviewCoordinatesMatch(request, applicationStatus) &&\n\t\trepairRequestAllowsProof(\n\t\t\trequest,\n\t\t\t\"workspace-proposal-application-status\",\n\t\t\tapplicationStatus.applicationId,\n\t\t) &&\n\t\tapplicationStatusResolvesRepairReview(applicationStatus)\n\t) {\n\t\treturn {\n\t\t\tstate: \"resolved\",\n\t\t\tcode: applicationStatus.code ?? \"application-status-recorded\",\n\t\t\tproofKind: \"application-status\",\n\t\t\tproofRefs: [\n\t\t\t\t{ kind: \"workspace-proposal-application-status\", id: applicationStatus.applicationId },\n\t\t\t],\n\t\t\tsourceRefs: applicationStatus.sourceRefs,\n\t\t};\n\t}\n\treturn undefined;\n}\n\nfunction repairRequestAllowsProof(\n\trequest: WorkspaceProposalRepairReviewRequest,\n\tkind: string,\n\tid: string,\n): boolean {\n\tconst subjectRefs = request.subjectRefs ?? [];\n\tconst outcomeSubjectRefs = subjectRefs.filter(\n\t\t(ref) =>\n\t\t\tref.kind === \"workspace-proposal-family-outcome-record-status\" ||\n\t\t\tref.kind === \"workspace-proposal-family-outcome-index-entry\",\n\t);\n\treturn (\n\t\toutcomeSubjectRefs.length === 0 ||\n\t\toutcomeSubjectRefs.some((ref) => ref.kind === kind && ref.id === id)\n\t);\n}\n\nfunction applicationStatusResolvesRepairReview(\n\tstatus: WorkspaceProposalApplicationStatus,\n): boolean {\n\treturn (\n\t\t(status.state === \"applied\" || status.state === \"recorded\") &&\n\t\tstatus.emittedFactRefs.some((ref) => ref.proposalFamily === status.proposalFamily)\n\t);\n}\n\nfunction applicationRecordedMatchesStatus(\n\trecorded: WorkspaceProposalApplicationRecorded,\n\tstatus: WorkspaceProposalApplicationStatus,\n): boolean {\n\treturn (\n\t\trecorded.applicationId === status.applicationId &&\n\t\trecorded.proposalId === status.proposalId &&\n\t\trecorded.decisionId === status.decisionId &&\n\t\trecorded.emittedFactRefs.length > 0 &&\n\t\trecorded.emittedFactRefs.every((ref) =>\n\t\t\tstatus.emittedFactRefs.some(\n\t\t\t\t(statusRef) =>\n\t\t\t\t\tstatusRef.proposalFamily === ref.proposalFamily &&\n\t\t\t\t\tstatusRef.factKind === ref.factKind &&\n\t\t\t\t\tstatusRef.factId === ref.factId,\n\t\t\t),\n\t\t)\n\t);\n}\n\nfunction repairReviewDecisionMatchesRequest(\n\tdecision: WorkspaceProposalRepairReviewDecision,\n\trequest: WorkspaceProposalRepairReviewRequest,\n): boolean {\n\treturn (\n\t\tdecision.kind === \"workspace-proposal-repair-review-decision\" &&\n\t\t!blank(decision.reviewDecisionId) &&\n\t\tdecision.repairRequestId === request.repairRequestId &&\n\t\trepairReviewCoordinatesMatch(request, decision) &&\n\t\t(decision.intent === \"acknowledged\" ||\n\t\t\tdecision.intent === \"resolved\" ||\n\t\t\tdecision.intent === \"withdrawn\" ||\n\t\t\tdecision.intent === \"superseded\")\n\t);\n}\n\nfunction repairReviewCoordinatesMatch(\n\trequest: WorkspaceProposalRepairReviewRequest,\n\tmaterial: {\n\t\treadonly applicationId: string;\n\t\treadonly proposalId: string;\n\t\treadonly decisionId: string;\n\t\treadonly idempotencyKey: string;\n\t\treadonly proposalFamily: WorkspaceProposalFamily;\n\t},\n): boolean {\n\treturn (\n\t\trequest.applicationId === material.applicationId &&\n\t\trequest.proposalId === material.proposalId &&\n\t\trequest.decisionId === material.decisionId &&\n\t\trequest.idempotencyKey === material.idempotencyKey &&\n\t\trequest.proposalFamily === material.proposalFamily\n\t);\n}\n\nfunction repairReviewDecisionSupersedes(\n\tcandidate: WorkspaceProposalRepairReviewDecision,\n\tdecision: WorkspaceProposalRepairReviewDecision,\n): boolean {\n\treturn (candidate.supersedesRefs ?? []).some(\n\t\t(ref) =>\n\t\t\tref.kind === \"workspace-proposal-repair-review-decision\" &&\n\t\t\tref.id === decision.reviewDecisionId,\n\t);\n}\n\nfunction dedupeRepairReviewDecisions(\n\tdecisions: readonly WorkspaceProposalRepairReviewDecision[],\n): readonly WorkspaceProposalRepairReviewDecision[] {\n\tconst out = new Map<string, WorkspaceProposalRepairReviewDecision>();\n\tfor (const decision of decisions) out.set(decision.reviewDecisionId, decision);\n\treturn [...out.values()];\n}\n\nfunction repairReviewDecisionSourceRef(decision: WorkspaceProposalRepairReviewDecision): SourceRef {\n\treturn { kind: \"workspace-proposal-repair-review-decision\", id: decision.reviewDecisionId };\n}\n\nfunction repairReviewStatusIssue(\n\trequest: WorkspaceProposalRepairReviewRequest,\n\tcode: string,\n\tmessage: string,\n\tdecisions: readonly WorkspaceProposalRepairReviewDecision[],\n): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tsource: \"workspace-proposal\",\n\t\tseverity: \"error\",\n\t\tcode,\n\t\tmessage,\n\t\tsubjectId: request.proposalId,\n\t\trefs: [\n\t\t\t`workspace-proposal-repair-review-request:${request.repairRequestId}`,\n\t\t\t...decisions.map(\n\t\t\t\t(decision) => `workspace-proposal-repair-review-decision:${decision.reviewDecisionId}`,\n\t\t\t),\n\t\t],\n\t\tmetadata: {\n\t\t\tapplicationId: request.applicationId,\n\t\t\tproposalId: request.proposalId,\n\t\t\tdecisionId: request.decisionId,\n\t\t\tidempotencyKey: request.idempotencyKey,\n\t\t\tproposalFamily: request.proposalFamily,\n\t\t},\n\t};\n}\n\nfunction repairReviewStatusSignature(status: WorkspaceProposalRepairReviewStatus): string {\n\treturn stableStringify({\n\t\tstate: status.state,\n\t\tcode: status.code,\n\t\tproofKind: status.proofKind,\n\t\tproofRefs: status.proofRefs,\n\t\tdecisions: status.decisions,\n\t\tconflicts: status.conflicts,\n\t\tissues: status.issues,\n\t\tsourceRefs: status.sourceRefs,\n\t\taudit: status.audit,\n\t\tmetadata: status.metadata,\n\t});\n}\n\nconst repairActionKinds = [\n\t\"acknowledge-review\",\n\t\"withdraw-review\",\n\t\"mark-human-resolved\",\n\t\"supersede-review\",\n\t\"open-successor-proposal-flow\",\n] as const satisfies readonly WorkspaceProposalRepairActionKind[];\n\nfunction repairActionDescriptor(\n\trequest: WorkspaceProposalRepairReviewRequest,\n\tstatus: WorkspaceProposalRepairReviewStatus | undefined,\n\tactionKind: WorkspaceProposalRepairActionKind,\n\tstate: WorkspaceProposalRepairReviewLifecycleState,\n): WorkspaceProposalRepairActionDescriptor {\n\tconst disabledCode = repairActionDisabledCode(actionKind, state);\n\tconst repairStatusRef =\n\t\tstatus === undefined\n\t\t\t? undefined\n\t\t\t: { kind: \"workspace-proposal-repair-review-status\", id: status.repairRequestId };\n\tconst audit = repairActionDescriptorAudit(status?.audit ?? request.audit);\n\treturn {\n\t\tkind: \"workspace-proposal-repair-action-descriptor\",\n\t\tdescriptorId: `workspace-proposal-repair-action-descriptor:${stableStringify({\n\t\t\trepairRequestId: request.repairRequestId,\n\t\t\tactionKind,\n\t\t})}`,\n\t\trepairRequestId: request.repairRequestId,\n\t\trepairState: state,\n\t\t...(repairStatusRef === undefined ? {} : { repairStatusRef }),\n\t\tactionKind,\n\t\tenabled: disabledCode === undefined,\n\t\t...(disabledCode === undefined ? {} : { disabledCode }),\n\t\tapplicationId: request.applicationId,\n\t\tproposalId: request.proposalId,\n\t\tdecisionId: request.decisionId,\n\t\tidempotencyKey: request.idempotencyKey,\n\t\tproposalFamily: request.proposalFamily,\n\t\tsourceRefs: repairActionDescriptorSourceRefs([\n\t\t\t...request.sourceRefs,\n\t\t\t...(status?.sourceRefs ?? []),\n\t\t\t...(repairStatusRef === undefined ? [] : [repairStatusRef]),\n\t\t]),\n\t\t...(audit === undefined ? {} : { audit }),\n\t\tmetadata: {\n\t\t\trepairRequestId: request.repairRequestId,\n\t\t\trepairState: state,\n\t\t\troute: repairActionRoute(actionKind),\n\t\t},\n\t};\n}\n\nfunction matchingRepairReviewStatus(\n\trequest: WorkspaceProposalRepairReviewRequest,\n\tstatuses: readonly WorkspaceProposalRepairReviewStatus[],\n): WorkspaceProposalRepairReviewStatus | undefined {\n\tfor (let index = statuses.length - 1; index >= 0; index -= 1) {\n\t\tconst status = statuses[index];\n\t\tif (\n\t\t\tstatus !== undefined &&\n\t\t\tstatus.repairRequestId === request.repairRequestId &&\n\t\t\trepairReviewCoordinatesMatch(request, status)\n\t\t) {\n\t\t\treturn status;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction repairActionDescriptorSourceRefs(values: readonly SourceRef[]): readonly SourceRef[] {\n\treturn uniqueRefs(\n\t\tvalues.filter(\n\t\t\t(value) =>\n\t\t\t\tisSourceRef(value) &&\n\t\t\t\tworkspaceProposalDataOnlyIssues(value, \"repairActionDescriptorSourceRef\").length === 0,\n\t\t),\n\t);\n}\n\nfunction repairActionDescriptorAudit(\n\taudit: WorkspaceProposalAuditMaterial | undefined,\n): WorkspaceProposalAuditMaterial | undefined {\n\tif (!isWorkspaceProposalAuditMaterial(audit)) return undefined;\n\tconst sourceRefs = repairActionDescriptorSourceRefs(audit.sourceRefs ?? []);\n\tconst { sourceRefs: _sourceRefs, ...rest } = audit;\n\treturn sourceRefs.length === 0 ? rest : { ...rest, sourceRefs };\n}\n\nfunction repairActionDisabledCode(\n\tactionKind: WorkspaceProposalRepairActionKind,\n\tstate: WorkspaceProposalRepairReviewLifecycleState,\n): WorkspaceProposalRepairActionDescriptorDisabledCode | undefined {\n\tif (state === \"conflict\") return \"repair-review-conflict\";\n\tif (state === \"resolved\" || state === \"withdrawn\" || state === \"superseded\") {\n\t\treturn \"repair-review-terminal\";\n\t}\n\tif (state === \"acknowledged\" && actionKind === \"acknowledge-review\") {\n\t\treturn \"repair-review-already-acknowledged\";\n\t}\n\treturn undefined;\n}\n\nfunction repairActionRoute(\n\tactionKind: WorkspaceProposalRepairActionKind,\n): \"repair-review-decision-intake\" | \"successor-proposal-intake-preview\" {\n\treturn actionKind === \"open-successor-proposal-flow\"\n\t\t? \"successor-proposal-intake-preview\"\n\t\t: \"repair-review-decision-intake\";\n}\n\nfunction repairActionDecisionIntent(\n\tactionKind: WorkspaceProposalRepairActionKind,\n): WorkspaceProposalRepairReviewDecisionIntent | undefined {\n\tswitch (actionKind) {\n\t\tcase \"acknowledge-review\":\n\t\t\treturn \"acknowledged\";\n\t\tcase \"withdraw-review\":\n\t\t\treturn \"withdrawn\";\n\t\tcase \"mark-human-resolved\":\n\t\t\treturn \"resolved\";\n\t\tcase \"supersede-review\":\n\t\t\treturn \"superseded\";\n\t\tcase \"open-successor-proposal-flow\":\n\t\t\treturn undefined;\n\t}\n}\n\nfunction repairActionIntentIssues(\n\tintent: WorkspaceProposalRepairActionIntent | unknown,\n\toptions: WorkspaceProposalRepairActionIntentValidationOptions,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tconst request = options.request;\n\tconst descriptor = options.descriptor;\n\tconst currentStatus = options.currentStatus;\n\tif (!isRepairActionIntentMaterial(intent)) {\n\t\treturn [\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-repair-action-intent\",\n\t\t\t\t\"Repair action intent requires typed data-only material.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t];\n\t}\n\tconst actionIntent = intent;\n\tfor (const [label, value] of [\n\t\t[\"repairActionIntent\", actionIntent],\n\t\t[\"repairActionDescriptor\", descriptor],\n\t\t[\"repairReviewRequest\", request],\n\t\t[\"repairReviewStatus\", currentStatus],\n\t\t[\"repairActionIntentValidationOptions\", options],\n\t] as const) {\n\t\tif (value === undefined) continue;\n\t\tfor (const issue of workspaceProposalDataOnlyIssues(value, label)) {\n\t\t\tissues.push(repairActionIssueFromDataOnly(issue, actionIntent, request));\n\t\t}\n\t}\n\tfor (const [field, value] of [\n\t\t[\"intentId\", actionIntent.intentId],\n\t\t[\"descriptorId\", actionIntent.descriptorId],\n\t\t[\"repairRequestId\", actionIntent.repairRequestId],\n\t\t[\"applicationId\", actionIntent.applicationId],\n\t\t[\"proposalId\", actionIntent.proposalId],\n\t\t[\"decisionId\", actionIntent.decisionId],\n\t\t[\"idempotencyKey\", actionIntent.idempotencyKey],\n\t\t[\"proposalFamily\", actionIntent.proposalFamily],\n\t] as const) {\n\t\tif (blank(value)) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"malformed-repair-action-intent\",\n\t\t\t\t\t`Repair action intent requires ${field}.`,\n\t\t\t\t\tintent,\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (!repairActionKinds.includes(actionIntent.actionKind)) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"unsupported-repair-action-intent\",\n\t\t\t\t\"Repair action intent requires a supported actionKind.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (request === undefined) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"missing-repair-review-request\",\n\t\t\t\t\"Repair action intent requires a matching repair-review request.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t} else if (!isRepairReviewRequestMaterial(request)) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-repair-review-request\",\n\t\t\t\t\"Repair action intent requires typed repair-review request material.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t} else if (\n\t\tactionIntent.repairRequestId !== request.repairRequestId ||\n\t\t!repairReviewCoordinatesMatch(request, actionIntent)\n\t) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"repair-action-intent-coordinate-mismatch\",\n\t\t\t\t\"Repair action intent coordinates must match the repair-review request.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (descriptor === undefined) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"missing-repair-action-descriptor\",\n\t\t\t\t\"Repair action intent requires matching repair action descriptor material.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t} else if (!isRepairActionDescriptorMaterial(descriptor)) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-repair-action-descriptor\",\n\t\t\t\t\"Repair action intent requires typed repair action descriptor material.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t} else {\n\t\tif (\n\t\t\tactionIntent.descriptorId !== descriptor.descriptorId ||\n\t\t\tactionIntent.repairRequestId !== descriptor.repairRequestId ||\n\t\t\tactionIntent.actionKind !== descriptor.actionKind ||\n\t\t\t!coordinatesMatchExact(actionIntent, descriptor)\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"repair-action-intent-descriptor-mismatch\",\n\t\t\t\t\t\"Repair action intent must match descriptor id, request, action, and coordinates.\",\n\t\t\t\t\tintent,\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (!descriptor.enabled) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"repair-action-lifecycle-disabled\",\n\t\t\t\t\t\"Repair action descriptor is disabled by lifecycle state.\",\n\t\t\t\t\tintent,\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tconst expectedCurrentState: WorkspaceProposalRepairReviewExpectedCurrentState | undefined =\n\t\toptions.expectedCurrentState ?? actionIntent.expectedCurrentState;\n\tif (currentStatus !== undefined) {\n\t\tif (request === undefined || !repairReviewCoordinatesMatch(request, currentStatus)) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"current-status-coordinate-mismatch\",\n\t\t\t\t\t\"Repair action current status guard must match the repair-review request.\",\n\t\t\t\t\tintent,\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (\n\t\t\texpectedCurrentState !== undefined &&\n\t\t\t!repairReviewExpectedStateMatchesStatus(expectedCurrentState, currentStatus)\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"stale-repair-review-state\",\n\t\t\t\t\t\"Repair action current status no longer matches the expected guard state.\",\n\t\t\t\t\tintent,\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t} else if (expectedCurrentState !== undefined) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"stale-repair-review-state\",\n\t\t\t\t\"Repair action expected current state guard requires current status material.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (actionIntent.reviewerRef === undefined && actionIntent.actorRef === undefined) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"missing-repair-action-authority-material\",\n\t\t\t\t\"Repair action intent requires reviewer or actor ref material.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\t(options.capabilityRefs !== undefined &&\n\t\t\t(!Array.isArray(options.capabilityRefs) || options.capabilityRefs.length === 0)) ||\n\t\t(options.policyRefs !== undefined &&\n\t\t\t(!Array.isArray(options.policyRefs) || options.policyRefs.length === 0))\n\t) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"missing-repair-action-policy-material\",\n\t\t\t\t\"Repair action intent validation requires non-empty supplied capability or policy refs when present.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (options.capabilityRefs === undefined && options.policyRefs === undefined) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"missing-repair-action-policy-material\",\n\t\t\t\t\"Repair action intent validation requires explicit intake policy or capability material.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tfor (const [field, refs] of [\n\t\t[\"capabilityRefs\", actionIntent.capabilityRefs],\n\t\t[\"policyRefs\", actionIntent.policyRefs],\n\t\t[\"sourceRefs\", actionIntent.sourceRefs],\n\t\t[\"validationCapabilityRefs\", options.capabilityRefs],\n\t\t[\"validationPolicyRefs\", options.policyRefs],\n\t\t[\"validationSourceRefs\", options.sourceRefs],\n\t] as const) {\n\t\tif (refs !== undefined && !repairReviewDecisionSourceRefsAreValid(refs)) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"malformed-ref\",\n\t\t\t\t\t`Repair action intent ${field} must be a dense array of data-only refs.`,\n\t\t\t\t\tintent,\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tfor (const [field, value] of [\n\t\t[\"reviewerRef\", actionIntent.reviewerRef],\n\t\t[\"actorRef\", actionIntent.actorRef],\n\t] as const) {\n\t\tif (value !== undefined && !repairReviewDecisionSourceRefIsValid(value)) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"malformed-ref\",\n\t\t\t\t\t`Repair action intent ${field} must be a data-only ref.`,\n\t\t\t\t\tintent,\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (actionIntent.audit !== undefined && !isWorkspaceProposalAuditMaterial(actionIntent.audit)) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-audit\",\n\t\t\t\t\"Repair action intent audit material must be data-only audit material.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (actionIntent.metadata !== undefined && !isRecord(actionIntent.metadata)) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-metadata\",\n\t\t\t\t\"Repair action intent metadata must be bounded object material.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (options.policyStatus !== undefined && options.policyStatus !== \"allowed\") {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\toptions.policyStatus === \"blocked\"\n\t\t\t\t\t? \"blocked-repair-action-policy\"\n\t\t\t\t\t: \"missing-repair-action-policy\",\n\t\t\t\t\"Repair action policy/capability validation failed closed at intake.\",\n\t\t\t\tintent,\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tissues.push(\n\t\t...(options.policyIssues ?? []).map((issue) =>\n\t\t\trepairActionIssueFromDataOnly(issue, actionIntent, request),\n\t\t),\n\t);\n\treturn dedupeRepairActionIssues(issues);\n}\n\nfunction repairActionSourceRefs(values: readonly SourceRef[]): readonly SourceRef[] {\n\treturn immutableClone(\n\t\tuniqueRefs(\n\t\t\tvalues.filter(\n\t\t\t\t(ref) =>\n\t\t\t\t\trepairReviewDecisionSourceRefIsValid(ref) && workspaceProposalBoundaryRefIsSafe(ref),\n\t\t\t),\n\t\t),\n\t);\n}\n\nfunction repairActionValidationOptions(\n\toptionsOrDescriptor:\n\t\t| WorkspaceProposalRepairActionIntentValidationOptions\n\t\t| WorkspaceProposalRepairActionDescriptor\n\t\t| undefined,\n\trequest: WorkspaceProposalRepairReviewRequest | undefined,\n\tcurrentStatus: WorkspaceProposalRepairReviewStatus | undefined,\n): WorkspaceProposalRepairActionIntentValidationOptions {\n\tif (optionsOrDescriptor === undefined || isRepairActionDescriptorMaterial(optionsOrDescriptor)) {\n\t\treturn { descriptor: optionsOrDescriptor, request, currentStatus };\n\t}\n\treturn optionsOrDescriptor;\n}\n\nfunction isRepairActionIntentMaterial(\n\tvalue: unknown,\n): value is WorkspaceProposalRepairActionIntent {\n\treturn isRecord(value) && value.kind === \"workspace-proposal-repair-action-intent\";\n}\n\nfunction isRepairActionDescriptorMaterial(\n\tvalue: unknown,\n): value is WorkspaceProposalRepairActionDescriptor {\n\treturn (\n\t\tisRecord(value) &&\n\t\tvalue.kind === \"workspace-proposal-repair-action-descriptor\" &&\n\t\tnonBlankString(value.descriptorId) &&\n\t\tnonBlankString(value.repairRequestId) &&\n\t\trepairActionKinds.includes(value.actionKind as WorkspaceProposalRepairActionKind) &&\n\t\ttypeof value.enabled === \"boolean\" &&\n\t\tnonBlankString(value.applicationId) &&\n\t\tnonBlankString(value.proposalId) &&\n\t\tnonBlankString(value.decisionId) &&\n\t\tnonBlankString(value.idempotencyKey) &&\n\t\tnonBlankString(value.proposalFamily)\n\t);\n}\n\nfunction isRepairReviewRequestMaterial(\n\tvalue: unknown,\n): value is WorkspaceProposalRepairReviewRequest {\n\treturn (\n\t\tisRecord(value) &&\n\t\tvalue.kind === \"workspace-proposal-repair-review-request\" &&\n\t\tnonBlankString(value.repairRequestId) &&\n\t\tnonBlankString(value.applicationId) &&\n\t\tnonBlankString(value.proposalId) &&\n\t\tnonBlankString(value.decisionId) &&\n\t\tnonBlankString(value.idempotencyKey) &&\n\t\tnonBlankString(value.proposalFamily)\n\t);\n}\n\nfunction isRepairActionIntentValidationResultMaterial(\n\tvalue: unknown,\n): value is WorkspaceProposalRepairActionIntentValidationResult {\n\treturn (\n\t\tisRecord(value) &&\n\t\tvalue.kind === \"workspace-proposal-repair-action-intent-validation-result\" &&\n\t\t(value.status === \"accepted\" || value.status === \"blocked\") &&\n\t\t(value.intentId === undefined || nonBlankString(value.intentId)) &&\n\t\t(value.descriptorId === undefined || nonBlankString(value.descriptorId)) &&\n\t\t(value.repairRequestId === undefined || nonBlankString(value.repairRequestId)) &&\n\t\t(value.actionKind === undefined ||\n\t\t\trepairActionKinds.includes(value.actionKind as WorkspaceProposalRepairActionKind)) &&\n\t\t(value.applicationId === undefined || nonBlankString(value.applicationId)) &&\n\t\t(value.proposalId === undefined || nonBlankString(value.proposalId)) &&\n\t\t(value.decisionId === undefined || nonBlankString(value.decisionId)) &&\n\t\t(value.idempotencyKey === undefined || nonBlankString(value.idempotencyKey)) &&\n\t\t(value.proposalFamily === undefined || nonBlankString(value.proposalFamily)) &&\n\t\tArray.isArray(value.issues) &&\n\t\tnonEmptySourceRefs(value.sourceRefs) &&\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.sourceRefs) &&\n\t\t(value.audit === undefined ||\n\t\t\t(isWorkspaceProposalAuditMaterial(value.audit) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.audit.sourceRefs))) &&\n\t\t(value.intent === undefined || isRepairActionIntentMaterial(value.intent))\n\t);\n}\n\nconst repairActionDisplayPolicyAssessments = [\n\t\"not-evaluated\",\n\t\"no-known-blocker\",\n\t\"known-blocker\",\n\t\"needs-review\",\n\t\"unknown\",\n] as const satisfies readonly WorkspaceProposalRepairActionDisplayPolicyAssessment[];\n\nfunction isRepairActionDisplayPolicyAdvisoryMaterial(\n\tvalue: unknown,\n): value is WorkspaceProposalRepairActionDisplayPolicyAdvisory {\n\tif (!isRecord(value)) return false;\n\treturn (\n\t\tvalue.kind === \"workspace-proposal-repair-action-display-policy-advisory\" &&\n\t\tvalue.authority === \"display-only-advisory\" &&\n\t\tnonBlankString(value.descriptorId) &&\n\t\tnonBlankString(value.repairRequestId) &&\n\t\trepairActionKinds.includes(value.actionKind as WorkspaceProposalRepairActionKind) &&\n\t\tnonBlankString(value.applicationId) &&\n\t\tnonBlankString(value.proposalId) &&\n\t\tnonBlankString(value.decisionId) &&\n\t\tnonBlankString(value.idempotencyKey) &&\n\t\tnonBlankString(value.proposalFamily) &&\n\t\trepairActionDisplayPolicyAssessments.includes(\n\t\t\tvalue.displayAssessment as WorkspaceProposalRepairActionDisplayPolicyAssessment,\n\t\t) &&\n\t\t(value.policyEvidenceRefs === undefined ||\n\t\t\t(nonEmptySourceRefs(value.policyEvidenceRefs) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.policyEvidenceRefs))) &&\n\t\t(value.capabilityEvidenceRefs === undefined ||\n\t\t\t(nonEmptySourceRefs(value.capabilityEvidenceRefs) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.capabilityEvidenceRefs))) &&\n\t\t(value.sourceRefs === undefined ||\n\t\t\t(nonEmptySourceRefs(value.sourceRefs) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.sourceRefs))) &&\n\t\t(value.audit === undefined ||\n\t\t\t(isWorkspaceProposalAuditMaterial(value.audit) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.audit.sourceRefs))) &&\n\t\t(value.advisoryIssues === undefined ||\n\t\t\t(Array.isArray(value.advisoryIssues) &&\n\t\t\t\tvalue.advisoryIssues.length <= 25 &&\n\t\t\t\tvalue.advisoryIssues.every(isRepairActionDisplayAdvisoryIssue))) &&\n\t\t(value.displayCode === undefined || typeof value.displayCode === \"string\") &&\n\t\t(value.displayMessage === undefined || typeof value.displayMessage === \"string\")\n\t);\n}\n\nfunction isRepairActionDisplayAdvisoryIssue(\n\tvalue: unknown,\n): value is WorkspaceProposalRepairActionDisplayPolicyAdvisoryIssue {\n\treturn (\n\t\tisRecord(value) &&\n\t\tnonBlankString(value.kind) &&\n\t\ttypeof value.message === \"string\" &&\n\t\t(value.severity === undefined ||\n\t\t\tvalue.severity === \"info\" ||\n\t\t\tvalue.severity === \"warning\" ||\n\t\t\tvalue.severity === \"error\") &&\n\t\t(value.ref === undefined ||\n\t\t\t(isSourceRef(value.ref) && workspaceProposalBoundaryRefIsSafe(value.ref))) &&\n\t\t(value.metadata === undefined || isRecord(value.metadata))\n\t);\n}\n\nfunction repairActionAdvisoryHasPermissionProofMaterial(value: unknown): boolean {\n\tconst forbidden = new Set([\"allowed\", \"permitted\", \"authorized\", \"cansubmit\"]);\n\tconst seen = new WeakSet<object>();\n\tconst visit = (entry: unknown): boolean => {\n\t\tif (typeof entry === \"string\") {\n\t\t\tconst normalized = entry.toLowerCase().replace(/[-_\\s]/g, \"\");\n\t\t\treturn [...forbidden].some((token) => normalized.includes(token));\n\t\t}\n\t\tif (Array.isArray(entry)) return entry.some(visit);\n\t\tif (!isRecord(entry)) return false;\n\t\tif (seen.has(entry)) return false;\n\t\tseen.add(entry);\n\t\tfor (const [key, child] of Object.entries(entry)) {\n\t\t\tconst normalized = key.toLowerCase().replace(/[-_\\s]/g, \"\");\n\t\t\tif (forbidden.has(normalized)) return true;\n\t\t\tif (visit(child)) return true;\n\t\t}\n\t\treturn false;\n\t};\n\treturn visit(value);\n}\n\nconst workspaceProposalBoundaryRefForbiddenTokens = new Set([\n\t\"adapter\",\n\t\"callback\",\n\t\"client\",\n\t\"credential\",\n\t\"credentials\",\n\t\"cursor\",\n\t\"file\",\n\t\"handle\",\n\t\"network\",\n\t\"provider\",\n\t\"query\",\n\t\"runtime\",\n\t\"secret\",\n\t\"storage\",\n]);\n\nfunction workspaceProposalBoundaryTextHasForbiddenToken(text: string): boolean {\n\tconst tokens = text\n\t\t.replace(/([a-z0-9])([A-Z])/gu, \"$1 $2\")\n\t\t.toLowerCase()\n\t\t.split(/[^a-z0-9]+/u)\n\t\t.filter((token) => token.length > 0);\n\treturn tokens.some((token) => workspaceProposalBoundaryRefForbiddenTokens.has(token));\n}\n\nfunction workspaceProposalBoundaryRefIsSafe(ref: SourceRef | WorkspaceProposalTargetRef): boolean {\n\treturn (\n\t\t!workspaceProposalBoundaryTextHasForbiddenToken(ref.kind) &&\n\t\t!workspaceProposalBoundaryTextHasForbiddenToken(ref.id)\n\t);\n}\n\nfunction workspaceProposalBoundarySourceRefsAreSafe(\n\tvalue: readonly SourceRef[] | undefined,\n): boolean {\n\treturn value === undefined || value.every(workspaceProposalBoundaryRefIsSafe);\n}\n\nfunction safeBoundarySourceRefs(value: unknown): readonly SourceRef[] {\n\tif (!Array.isArray(value)) return [];\n\treturn repairActionSourceRefs(\n\t\tvalue.filter(\n\t\t\t(ref): ref is SourceRef => isSourceRef(ref) && workspaceProposalBoundaryRefIsSafe(ref),\n\t\t),\n\t);\n}\n\nfunction workspaceProposalBoundaryMetadataSize(value: Record<string, unknown>): number {\n\ttry {\n\t\treturn new TextEncoder().encode(stableStringify(value)).byteLength;\n\t} catch {\n\t\treturn Number.POSITIVE_INFINITY;\n\t}\n}\n\nconst workspaceProposalRepairAdvisoryMetadataMaxBytes = 4096;\n\nfunction safeAdvisoryText(value: string | undefined): string | undefined {\n\tif (value === undefined || repairActionAdvisoryHasPermissionProofMaterial(value))\n\t\treturn undefined;\n\treturn value;\n}\n\nfunction safeAdvisorySourceRefs(value: readonly SourceRef[] | undefined): readonly SourceRef[] {\n\tif (value === undefined) return [];\n\treturn repairActionSourceRefs(\n\t\tvalue.filter(\n\t\t\t(ref) =>\n\t\t\t\tisSourceRef(ref) &&\n\t\t\t\tworkspaceProposalBoundaryRefIsSafe(ref) &&\n\t\t\t\t!repairActionAdvisoryHasPermissionProofMaterial(ref),\n\t\t),\n\t);\n}\n\nfunction safeAdvisoryIssues(\n\tvalue: readonly WorkspaceProposalRepairActionDisplayPolicyAdvisoryIssue[] | undefined,\n): readonly WorkspaceProposalRepairActionDisplayPolicyAdvisoryIssue[] {\n\tif (value === undefined) return [];\n\treturn immutableClone(\n\t\tvalue.filter(\n\t\t\t(issue) =>\n\t\t\t\tisRepairActionDisplayAdvisoryIssue(issue) &&\n\t\t\t\tworkspaceProposalDataOnlyIssues(issue, \"repairActionDisplayPolicyAdvisoryIssue\").length ===\n\t\t\t\t\t0 &&\n\t\t\t\t!repairActionAdvisoryHasPermissionProofMaterial(issue),\n\t\t),\n\t);\n}\n\nfunction safeAdvisoryAudit(\n\tvalue: WorkspaceProposalAuditMaterial | undefined,\n): WorkspaceProposalAuditMaterial | undefined {\n\tconst audit = safeWorkspaceProposalAudit(value);\n\tif (\n\t\taudit === undefined ||\n\t\trepairActionAdvisoryHasPermissionProofMaterial(audit) ||\n\t\t!workspaceProposalBoundarySourceRefsAreSafe(audit.sourceRefs)\n\t) {\n\t\treturn undefined;\n\t}\n\treturn audit;\n}\n\nfunction safeAdvisoryMetadata(\n\tvalue: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n\tif (\n\t\tvalue === undefined ||\n\t\tworkspaceProposalDataOnlyIssues(value, \"repairActionDisplayPolicyAdvisoryMetadata\").length >\n\t\t\t0 ||\n\t\trepairActionAdvisoryHasPermissionProofMaterial(value) ||\n\t\tworkspaceProposalBoundaryMetadataSize(value) > workspaceProposalRepairAdvisoryMetadataMaxBytes\n\t) {\n\t\treturn undefined;\n\t}\n\treturn immutableClone(value);\n}\n\nfunction repairActionCoordinatesMatchDescriptor(\n\tmaterial: {\n\t\treadonly applicationId: string;\n\t\treadonly proposalId: string;\n\t\treadonly decisionId: string;\n\t\treadonly idempotencyKey: string;\n\t\treadonly proposalFamily: WorkspaceProposalFamily;\n\t},\n\tdescriptor: WorkspaceProposalRepairActionDescriptor,\n): boolean {\n\treturn (\n\t\tmaterial.applicationId === descriptor.applicationId &&\n\t\tmaterial.proposalId === descriptor.proposalId &&\n\t\tmaterial.decisionId === descriptor.decisionId &&\n\t\tmaterial.idempotencyKey === descriptor.idempotencyKey &&\n\t\tmaterial.proposalFamily === descriptor.proposalFamily\n\t);\n}\n\nfunction isRepairSuccessorPreviewMaterial(\n\tvalue: unknown,\n): value is WorkspaceProposalRepairSuccessorProposalIntakePreview {\n\treturn (\n\t\tisRecord(value) &&\n\t\tvalue.kind === \"workspace-proposal-repair-successor-proposal-intake-preview\" &&\n\t\tnonBlankString(value.previewId) &&\n\t\t(value.status === \"proposal-context-ready\" || value.status === \"blocked\") &&\n\t\tnonBlankString(value.intentId) &&\n\t\tnonBlankString(value.descriptorId) &&\n\t\tnonBlankString(value.repairRequestId) &&\n\t\tvalue.actionKind === \"open-successor-proposal-flow\" &&\n\t\tnonBlankString(value.applicationId) &&\n\t\tnonBlankString(value.proposalId) &&\n\t\tnonBlankString(value.decisionId) &&\n\t\tnonBlankString(value.idempotencyKey) &&\n\t\tnonBlankString(value.proposalFamily) &&\n\t\tnonEmptySourceRefs(value.targetRefs) &&\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.targetRefs) &&\n\t\tnonEmptySourceRefs(value.contextRefs) &&\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.contextRefs) &&\n\t\tArray.isArray(value.diagnostics) &&\n\t\tnonEmptySourceRefs(value.sourceRefs) &&\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.sourceRefs) &&\n\t\t(value.audit === undefined ||\n\t\t\t(isWorkspaceProposalAuditMaterial(value.audit) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.audit.sourceRefs)))\n\t);\n}\n\nfunction isRepairSuccessorReadyRequestPreparationInput<TDraft>(\n\tvalue: unknown,\n): value is WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationInput<TDraft> {\n\tif (!isRecord(value)) return false;\n\treturn (\n\t\tvalue.kind === \"workspace-proposal-repair-successor-proposal-ready-request-preparation-input\" &&\n\t\tnonBlankString(value.preparationId) &&\n\t\tnonBlankString(value.previewId) &&\n\t\tisRepairActionIntentMaterial(value.intent) &&\n\t\tisRepairActionDescriptorMaterial(value.descriptor) &&\n\t\tisRepairReviewRequestMaterial(value.request) &&\n\t\tisRepairActionIntentValidationResultMaterial(value.intentValidation) &&\n\t\t(value.currentStatus === undefined || isRepairReviewStatusMaterial(value.currentStatus)) &&\n\t\tnonBlankString(value.successorProposalId) &&\n\t\tnonBlankString(value.intakeRequestId) &&\n\t\tnonBlankString(value.successorIdempotencyKey) &&\n\t\tnonBlankString(value.workspaceId) &&\n\t\tisSourceRef(value.actorRef) &&\n\t\tworkspaceProposalBoundaryRefIsSafe(value.actorRef) &&\n\t\tnonEmptySourceRefs(value.capabilityRefs) &&\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.capabilityRefs) &&\n\t\tnonEmptySourceRefs(value.policyRefs) &&\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.policyRefs) &&\n\t\tnonEmptySourceRefs(value.projectionBundleRefs) &&\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.projectionBundleRefs) &&\n\t\t(value.sourceRefs === undefined ||\n\t\t\t(nonEmptySourceRefs(value.sourceRefs) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.sourceRefs))) &&\n\t\tisWorkspaceProposalAuditMaterial(value.audit) &&\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.audit.sourceRefs) &&\n\t\tworkspaceProposalTargetRefsAreValid(value.targetRefs) &&\n\t\tnonBlankString(value.successorProposalFamily) &&\n\t\tnonBlankString(value.successorLoweringKind) &&\n\t\t(value.draftRefs === undefined ||\n\t\t\t(nonEmptySourceRefs(value.draftRefs) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.draftRefs))) &&\n\t\t(value.finalDraftSourceRefs === undefined ||\n\t\t\t(nonEmptySourceRefs(value.finalDraftSourceRefs) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.finalDraftSourceRefs))) &&\n\t\t(value.metadata === undefined || isRecord(value.metadata))\n\t);\n}\n\nfunction repairSuccessorPreparationMetadataHasTruthMaterial(value: unknown): boolean {\n\tif (!isRecord(value)) return false;\n\tconst forbidden = new Set([\n\t\t\"admissionid\",\n\t\t\"applicationstate\",\n\t\t\"applicationstatus\",\n\t\t\"emittedfactrefs\",\n\t\t\"proposalrecorded\",\n\t\t\"recordedproposal\",\n\t\t\"successoradmissionid\",\n\t\t\"workspaceproposalrecorded\",\n\t]);\n\tconst seen = new WeakSet<object>();\n\tconst visit = (entry: unknown): boolean => {\n\t\tif (Array.isArray(entry)) return entry.some(visit);\n\t\tif (!isRecord(entry)) return false;\n\t\tif (seen.has(entry)) return false;\n\t\tseen.add(entry);\n\t\tfor (const [key, child] of Object.entries(entry)) {\n\t\t\tif (forbidden.has(key.toLowerCase().replace(/[-_\\s]/g, \"\"))) return true;\n\t\t\tif (visit(child)) return true;\n\t\t}\n\t\treturn false;\n\t};\n\treturn visit(value);\n}\n\nfunction repairActionPreviewCoordinatesMatchInput<TDraft>(\n\tpreview: WorkspaceProposalRepairSuccessorProposalIntakePreview,\n\tinput: WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationInput<TDraft>,\n): boolean {\n\treturn (\n\t\tpreview.applicationId === input.intent.applicationId &&\n\t\tpreview.proposalId === input.intent.proposalId &&\n\t\tpreview.decisionId === input.intent.decisionId &&\n\t\tpreview.idempotencyKey === input.intent.idempotencyKey &&\n\t\tpreview.proposalFamily === input.intent.proposalFamily &&\n\t\trepairReviewCoordinatesMatch(input.request, input.intent) &&\n\t\trepairActionCoordinatesMatchDescriptor(input.intent, input.descriptor)\n\t);\n}\n\nfunction repairActionIntentValidationMatchesPreparationInput<TDraft>(\n\tvalidation: WorkspaceProposalRepairActionIntentValidationResult,\n\tinput: WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationInput<TDraft>,\n): boolean {\n\treturn (\n\t\tvalidation.intentId === input.intent.intentId &&\n\t\tvalidation.descriptorId === input.descriptor.descriptorId &&\n\t\tvalidation.repairRequestId === input.request.repairRequestId &&\n\t\tvalidation.actionKind === input.intent.actionKind &&\n\t\tvalidation.applicationId === input.request.applicationId &&\n\t\tvalidation.proposalId === input.request.proposalId &&\n\t\tvalidation.decisionId === input.request.decisionId &&\n\t\tvalidation.idempotencyKey === input.request.idempotencyKey &&\n\t\tvalidation.proposalFamily === input.request.proposalFamily &&\n\t\t(validation.intent === undefined ||\n\t\t\tstableStringify(validation.intent) === stableStringify(input.intent))\n\t);\n}\n\nfunction nonEmptySourceRefs(value: unknown): value is readonly SourceRef[] {\n\treturn Array.isArray(value) && value.length > 0 && value.every(isSourceRef);\n}\n\nfunction workspaceProposalTargetRefsAreValid(\n\tvalue: unknown,\n): value is readonly WorkspaceProposalTargetRef[] {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tvalue.length > 0 &&\n\t\tvalue.every(\n\t\t\t(ref) =>\n\t\t\t\tisRecord(ref) &&\n\t\t\t\tnonBlankString(ref.kind) &&\n\t\t\t\tnonBlankString(ref.id) &&\n\t\t\t\tworkspaceProposalBoundaryRefIsSafe(ref as unknown as WorkspaceProposalTargetRef) &&\n\t\t\t\tworkspaceProposalDataOnlyIssues(ref, \"repairSuccessorTargetRef\").length === 0,\n\t\t)\n\t);\n}\n\nfunction repairActionIssueIntentFallback(value: unknown): WorkspaceProposalRepairActionIntent {\n\tif (isRepairSuccessorReadyRequestPreparationInput(value)) return value.intent;\n\tif (isRepairActionIntentMaterial(value)) return value;\n\treturn {\n\t\tkind: \"workspace-proposal-repair-action-intent\",\n\t\tintentId: stringField(isRecord(value) ? value.intentId : undefined) ?? \"unknown\",\n\t\tdescriptorId: stringField(isRecord(value) ? value.descriptorId : undefined) ?? \"unknown\",\n\t\trepairRequestId: stringField(isRecord(value) ? value.repairRequestId : undefined) ?? \"unknown\",\n\t\tactionKind: \"open-successor-proposal-flow\",\n\t\tapplicationId: stringField(isRecord(value) ? value.applicationId : undefined) ?? \"unknown\",\n\t\tproposalId: stringField(isRecord(value) ? value.proposalId : undefined) ?? \"unknown\",\n\t\tdecisionId: stringField(isRecord(value) ? value.decisionId : undefined) ?? \"unknown\",\n\t\tidempotencyKey: stringField(isRecord(value) ? value.idempotencyKey : undefined) ?? \"unknown\",\n\t\tproposalFamily:\n\t\t\t(stringField(\n\t\t\t\tisRecord(value) ? value.proposalFamily : undefined,\n\t\t\t) as WorkspaceProposalFamily) ?? \"unknown\",\n\t};\n}\n\nfunction isOutcomeDetailSupplyRequestMaterial(\n\tvalue: unknown,\n): value is WorkspaceProposalFamilyOutcomeDetailSupplyRequest {\n\treturn (\n\t\tisRecord(value) &&\n\t\tvalue.kind === \"workspace-proposal-family-outcome-detail-supply-request\" &&\n\t\tnonBlankString(value.supplyRequestId) &&\n\t\tnonBlankString(value.applicationId) &&\n\t\tnonBlankString(value.proposalId) &&\n\t\tnonBlankString(value.decisionId) &&\n\t\tnonBlankString(value.idempotencyKey) &&\n\t\tnonBlankString(value.proposalFamily) &&\n\t\tArray.isArray(value.requestedOutcomeRefs) &&\n\t\tvalue.requestedOutcomeRefs.length > 0 &&\n\t\tvalue.requestedOutcomeRefs.every(isOutcomeDetailSupplyRequestedRefMaterial) &&\n\t\trepairReviewDecisionSourceRefsAreValid(value.sourceRefs) &&\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.sourceRefs) &&\n\t\t(value.audit === undefined ||\n\t\t\t(isWorkspaceProposalAuditMaterial(value.audit) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.audit.sourceRefs))) &&\n\t\t(value.metadata === undefined || isRecord(value.metadata))\n\t);\n}\n\nfunction isOutcomeDetailSupplyRequestedRefMaterial(\n\tvalue: unknown,\n): value is WorkspaceProposalFamilyOutcomeRef {\n\treturn (\n\t\tisRecord(value) &&\n\t\tvalue.kind === \"workspace-proposal-family-outcome-ref\" &&\n\t\tnonBlankString(value.outcomeId) &&\n\t\tworkspaceProposalFamilyOutcomeKinds.includes(\n\t\t\tvalue.outcomeKind as WorkspaceProposalFamilyOutcomeRecord[\"kind\"],\n\t\t) &&\n\t\tnonBlankString(value.applicationId) &&\n\t\tnonBlankString(value.proposalId) &&\n\t\tnonBlankString(value.decisionId) &&\n\t\tnonBlankString(value.idempotencyKey) &&\n\t\tnonBlankString(value.proposalFamily) &&\n\t\t(value.sourceRefs === undefined ||\n\t\t\t(repairReviewDecisionSourceRefsAreValid(value.sourceRefs) &&\n\t\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(value.sourceRefs)))\n\t);\n}\n\nfunction outcomeDetailSupplyRequestIssues(\n\trequest: WorkspaceProposalFamilyOutcomeDetailSupplyRequest | unknown,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tconst record = isRecord(request) ? request : {};\n\tfor (const issue of workspaceProposalDataOnlyIssues(request, \"outcomeDetailSupplyRequest\")) {\n\t\tissues.push({ ...issue, subjectId: issue.subjectId ?? stringField(record.proposalId) });\n\t}\n\tif (!isRecord(request)) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-outcome-detail-supply-request\",\n\t\t\t\t\"Outcome detail supply request requires typed object material.\",\n\t\t\t\t{},\n\t\t\t\tundefined,\n\t\t\t),\n\t\t);\n\t\treturn issues;\n\t}\n\tfor (const field of [\n\t\t\"supplyRequestId\",\n\t\t\"applicationId\",\n\t\t\"proposalId\",\n\t\t\"decisionId\",\n\t\t\"idempotencyKey\",\n\t\t\"proposalFamily\",\n\t] as const) {\n\t\tif (blank(record[field])) {\n\t\t\tissues.push(\n\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\"malformed-outcome-detail-supply-request\",\n\t\t\t\t\t`Outcome detail supply request requires ${field}.`,\n\t\t\t\t\t{ proposalId: record.proposalId },\n\t\t\t\t\tundefined,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (!Array.isArray(record.requestedOutcomeRefs) || record.requestedOutcomeRefs.length === 0) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-outcome-detail-supply-request\",\n\t\t\t\t\"Outcome detail supply request requires requested outcome refs.\",\n\t\t\t\t{ proposalId: record.proposalId },\n\t\t\t\tundefined,\n\t\t\t),\n\t\t);\n\t} else if (!record.requestedOutcomeRefs.every(isOutcomeDetailSupplyRequestedRefMaterial)) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-outcome-detail-supply-request\",\n\t\t\t\t\"Outcome detail supply request refs must carry full thin outcome coordinates.\",\n\t\t\t\t{ proposalId: record.proposalId },\n\t\t\t\tundefined,\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\t!repairReviewDecisionSourceRefsAreValid(record.sourceRefs) ||\n\t\t!workspaceProposalBoundarySourceRefsAreSafe(\n\t\t\trecord.sourceRefs as readonly SourceRef[] | undefined,\n\t\t)\n\t) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-outcome-detail-supply-request\",\n\t\t\t\t\"Outcome detail supply request requires data-only boundary-safe source refs.\",\n\t\t\t\t{ proposalId: record.proposalId },\n\t\t\t\tundefined,\n\t\t\t),\n\t\t);\n\t}\n\tconst auditRecord = record.audit;\n\tif (\n\t\tisRecord(auditRecord) &&\n\t\t(!isWorkspaceProposalAuditMaterial(auditRecord) ||\n\t\t\t!workspaceProposalBoundarySourceRefsAreSafe(\n\t\t\t\t(auditRecord as { readonly sourceRefs?: readonly SourceRef[] }).sourceRefs,\n\t\t\t))\n\t) {\n\t\tissues.push(\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"malformed-outcome-detail-supply-request\",\n\t\t\t\t\"Outcome detail supply request audit must be data-only boundary-safe material.\",\n\t\t\t\t{ proposalId: record.proposalId },\n\t\t\t\tundefined,\n\t\t\t),\n\t\t);\n\t}\n\treturn dedupeRepairActionIssues(issues);\n}\n\nfunction isOutcomeDetailSupplyOutcomeRecordShape(\n\tvalue: unknown,\n): value is WorkspaceProposalFamilyOutcomeRecord {\n\treturn (\n\t\tisRecord(value) &&\n\t\tworkspaceProposalFamilyOutcomeKinds.includes(\n\t\t\tvalue.kind as WorkspaceProposalFamilyOutcomeRecord[\"kind\"],\n\t\t) &&\n\t\tnonBlankString(value.outcomeId) &&\n\t\tnonBlankString(value.applicationId) &&\n\t\tnonBlankString(value.proposalId) &&\n\t\tnonBlankString(value.decisionId) &&\n\t\tnonBlankString(value.idempotencyKey) &&\n\t\tnonBlankString(value.proposalFamily) &&\n\t\tArray.isArray(value.sourceRefs)\n\t);\n}\n\nfunction outcomeDetailSupplyOutcomeBoundaryRefsAreSafe(\n\toutcome: WorkspaceProposalFamilyOutcomeRecord,\n): boolean {\n\tconst familyRef =\n\t\toutcome.kind === \"workspace-proposal-required-input-response-outcome-recorded\"\n\t\t\t? outcome.responseRef\n\t\t\t: outcome.kind === \"workspace-proposal-work-item-spawn-outcome-recorded\"\n\t\t\t\t? outcome.workItemRef\n\t\t\t\t: outcome.kind === \"workspace-proposal-work-item-link-outcome-recorded\"\n\t\t\t\t\t? outcome.linkRef\n\t\t\t\t\t: outcome.actionRef;\n\treturn (\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(outcome.sourceRefs) &&\n\t\t(outcome.audit === undefined ||\n\t\t\tworkspaceProposalBoundarySourceRefsAreSafe(outcome.audit.sourceRefs)) &&\n\t\tworkspaceProposalBoundaryRefIsSafe(familyRef)\n\t);\n}\n\nfunction currentSupplyRequests(\n\trequests: readonly WorkspaceProposalFamilyOutcomeDetailSupplyRequest[],\n): ReadonlyMap<string, WorkspaceProposalFamilyOutcomeDetailSupplyRequest> {\n\tconst out = new Map<string, WorkspaceProposalFamilyOutcomeDetailSupplyRequest>();\n\tfor (const request of requests)\n\t\tout.set(outcomeDetailSupplyRequestProjectionKey(request), request);\n\treturn out;\n}\n\nfunction outcomeDetailSupplyRequestProjectionKey(\n\trequest: WorkspaceProposalFamilyOutcomeDetailSupplyRequest,\n): string {\n\treturn stableStringify({\n\t\tcurrentViewId:\n\t\t\tstringField((request as { readonly viewId?: unknown }).viewId) ??\n\t\t\tstringField((request as { readonly supplyRequestId?: unknown }).supplyRequestId),\n\t});\n}\n\nfunction sameSupplyRequestCoordinates(\n\trequest: WorkspaceProposalFamilyOutcomeDetailSupplyRequest,\n\tref: WorkspaceProposalFamilyOutcomeRef,\n): boolean {\n\treturn (\n\t\trequest.applicationId === ref.applicationId &&\n\t\trequest.proposalId === ref.proposalId &&\n\t\trequest.decisionId === ref.decisionId &&\n\t\trequest.idempotencyKey === ref.idempotencyKey &&\n\t\trequest.proposalFamily === ref.proposalFamily\n\t);\n}\n\nfunction supplyRequestRefMatches(\n\trequest: WorkspaceProposalFamilyOutcomeDetailSupplyRequest,\n\tref: WorkspaceProposalFamilyOutcomeRef,\n\tfilters: WorkspaceProposalFamilyApplicationReadModelNormalizedFilters,\n): boolean {\n\treturn (\n\t\tsameSupplyRequestCoordinates(request, ref) &&\n\t\tmatchesOptionalSet(filters.outcomeIds, ref.outcomeId) &&\n\t\tmatchesOptionalSet(filters.outcomeKinds, ref.outcomeKind)\n\t);\n}\n\nfunction outcomeDetailSupplyDiagnostic(\n\tcode:\n\t\t| \"malformed-outcome-detail-supply-request\"\n\t\t| \"malformed-supplied-outcome-detail\"\n\t\t| \"missing-supplied-outcome-detail\"\n\t\t| \"mismatched-supplied-outcome-detail\",\n\tmessage: string,\n\toutcomeRef: WorkspaceProposalFamilyOutcomeRef | undefined,\n\tcoordinates: {\n\t\treadonly applicationId?: string;\n\t\treadonly proposalId?: string;\n\t\treadonly decisionId?: string;\n\t\treadonly idempotencyKey?: string;\n\t\treadonly proposalFamily?: WorkspaceProposalFamily;\n\t},\n\tsourceRefs: readonly SourceRef[],\n): WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic {\n\treturn {\n\t\tkind: \"workspace-proposal-family-application-read-model-display-diagnostic\",\n\t\tdiagnosticId: `workspace-proposal-family-application-read-model-display-diagnostic:${stableStringify(\n\t\t\t{ code, outcomeRef, coordinates },\n\t\t)}`,\n\t\tcode,\n\t\tmessage,\n\t\t...coordinates,\n\t\t...(outcomeRef === undefined ? {} : { outcomeRef }),\n\t\tsourceRefs: repairActionSourceRefs(sourceRefs),\n\t};\n}\n\nfunction dedupeOutcomes(\n\toutcomes: readonly WorkspaceProposalFamilyOutcomeRecord[],\n): readonly WorkspaceProposalFamilyOutcomeRecord[] {\n\tconst out = new Map<string, WorkspaceProposalFamilyOutcomeRecord>();\n\tfor (const outcome of outcomes) out.set(outcomeProjectionKey(outcome), outcome);\n\treturn [...out.values()];\n}\n\nfunction dedupeRepairActionIssues(\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst out = new Map<string, WorkspaceProposalRecordedIssue>();\n\tfor (const issue of issues) out.set(stableStringify(issue), issue);\n\treturn [...out.values()];\n}\n\nfunction blockedRepairSuccessorPreview(\n\tintent: WorkspaceProposalRepairActionIntent | unknown,\n\tdiagnostics: readonly WorkspaceProposalRecordedIssue[],\n\toptions: WorkspaceProposalRepairSuccessorProposalIntakePreviewOptions,\n): WorkspaceProposalRepairSuccessorProposalIntakePreview {\n\tconst record = isRecord(intent) ? intent : {};\n\treturn {\n\t\tkind: \"workspace-proposal-repair-successor-proposal-intake-preview\",\n\t\tpreviewId:\n\t\t\toptions.previewId ??\n\t\t\t`workspace-proposal-repair-successor-preview:blocked:${stringField(record.intentId) ?? \"unknown\"}`,\n\t\tstatus: \"blocked\",\n\t\tintentId: stringField(record.intentId) ?? \"\",\n\t\tactionIntentId: stringField(record.intentId) ?? \"\",\n\t\tdescriptorId: stringField(record.descriptorId) ?? \"\",\n\t\trepairRequestId: stringField(record.repairRequestId) ?? \"\",\n\t\tactionKind: \"open-successor-proposal-flow\",\n\t\tapplicationId: stringField(record.applicationId) ?? \"\",\n\t\tproposalId: stringField(record.proposalId) ?? \"\",\n\t\tdecisionId: stringField(record.decisionId) ?? \"\",\n\t\tidempotencyKey: stringField(record.idempotencyKey) ?? \"\",\n\t\tproposalFamily: (stringField(record.proposalFamily) ?? \"\") as WorkspaceProposalFamily,\n\t\ttargetRefs: [],\n\t\tcontextRefs: [],\n\t\tdiagnostics: dedupeRepairActionIssues(diagnostics),\n\t\tsourceRefs: repairActionSourceRefs([\n\t\t\t...(options.sourceRefs ?? []),\n\t\t\t...(safeWorkspaceProposalAudit(options.audit)?.sourceRefs ?? []),\n\t\t]),\n\t\t...(safeWorkspaceProposalAudit(options.audit) === undefined\n\t\t\t? {}\n\t\t\t: { audit: safeWorkspaceProposalAudit(options.audit) }),\n\t};\n}\n\nfunction repairActionSuggestedDraftPatchIssues(\n\tintent: WorkspaceProposalRepairActionIntent,\n\toptions: WorkspaceProposalRepairSuccessorProposalIntakePreviewOptions,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tif (options.suggestedDraftPatch === undefined) return [];\n\tconst issues = workspaceProposalDataOnlyIssues(\n\t\toptions.suggestedDraftPatch,\n\t\t\"repairSuccessorProposalSuggestedDraftPatch\",\n\t).map((issue) => repairActionIssueFromDataOnly(issue, intent, undefined));\n\tif (issues.length > 0) return issues;\n\tconst maxBytes = options.maxSuggestedDraftPatchBytes ?? 16 * 1024;\n\tif (\n\t\tnew TextEncoder().encode(stableStringify(options.suggestedDraftPatch)).byteLength > maxBytes\n\t) {\n\t\treturn [\n\t\t\t...issues,\n\t\t\trepairActionIntentIssue(\n\t\t\t\t\"suggested-draft-patch-too-large\",\n\t\t\t\t\"Repair successor proposal suggested draft patch exceeds the bounded preview limit.\",\n\t\t\t\tintent,\n\t\t\t\tundefined,\n\t\t\t),\n\t\t];\n\t}\n\treturn [...issues, ...repairActionReservedPreviewKeyIssues(intent, options.suggestedDraftPatch)];\n}\n\nfunction repairActionPreviewMetadataIssues(\n\tintent: WorkspaceProposalRepairActionIntent,\n\toptions: WorkspaceProposalRepairSuccessorProposalIntakePreviewOptions,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tif (options.metadata === undefined) return [];\n\tconst issues = workspaceProposalDataOnlyIssues(\n\t\toptions.metadata,\n\t\t\"repairSuccessorProposalMetadata\",\n\t).map((issue) => repairActionIssueFromDataOnly(issue, intent, undefined));\n\tif (issues.length > 0) return issues;\n\treturn [...issues, ...repairActionReservedPreviewKeyIssues(intent, options.metadata)];\n}\n\nfunction repairActionReservedPreviewKeyIssues(\n\tintent: WorkspaceProposalRepairActionIntent,\n\tvalue: unknown,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst reserved = new Set([\n\t\t\"successorProposalId\",\n\t\t\"successorAdmissionId\",\n\t\t\"successorApplicationId\",\n\t\t\"admissionId\",\n\t\t\"applicationId\",\n\t\t\"proposalId\",\n\t\t\"proposalRecorded\",\n\t\t\"admissionDecision\",\n\t\t\"applicationStatus\",\n\t]);\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tconst visit = (entry: unknown): void => {\n\t\tif (Array.isArray(entry)) {\n\t\t\tfor (const item of entry) visit(item);\n\t\t\treturn;\n\t\t}\n\t\tif (!isRecord(entry)) return;\n\t\tfor (const [key, child] of Object.entries(entry)) {\n\t\t\tif (reserved.has(key) || repairActionPreviewKeyCarriesTruth(key)) {\n\t\t\t\tissues.push(\n\t\t\t\t\trepairActionIntentIssue(\n\t\t\t\t\t\t\"forbidden-successor-truth-material\",\n\t\t\t\t\t\t\"Repair successor proposal preview must not carry proposal/admission/application truth identifiers.\",\n\t\t\t\t\t\tintent,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tvisit(child);\n\t\t}\n\t};\n\tvisit(value);\n\treturn dedupeRepairActionIssues(issues);\n}\n\nfunction repairActionPreviewKeyCarriesTruth(key: string): boolean {\n\tconst normalized = key\n\t\t.replace(/([a-z0-9])([A-Z])/gu, \"$1-$2\")\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9]+/gu, \"-\");\n\tconst tokens = normalized.split(\"-\").filter((token) => token.length > 0);\n\tconst hasTruthDomain = tokens.some((token) =>\n\t\t[\"proposal\", \"admission\", \"application\", \"successor\"].includes(token),\n\t);\n\tconst hasTruthHandle = tokens.some((token) =>\n\t\t[\n\t\t\t\"id\",\n\t\t\t\"ids\",\n\t\t\t\"ref\",\n\t\t\t\"refs\",\n\t\t\t\"record\",\n\t\t\t\"recorded\",\n\t\t\t\"decision\",\n\t\t\t\"status\",\n\t\t\t\"truth\",\n\t\t\t\"fact\",\n\t\t].includes(token),\n\t);\n\treturn hasTruthDomain && hasTruthHandle;\n}\n\nfunction repairActionIntentIssue(\n\tcode: string,\n\tmessage: string,\n\tintent: Partial<WorkspaceProposalRepairActionIntent> | unknown,\n\trequest: WorkspaceProposalRepairReviewRequest | undefined,\n): WorkspaceProposalRecordedIssue {\n\tconst intentRecord = isRecord(intent) ? intent : {};\n\treturn {\n\t\tkind: \"issue\",\n\t\tsource: \"workspace-proposal\",\n\t\tseverity: \"error\",\n\t\tcode,\n\t\tmessage,\n\t\tsubjectId: request?.proposalId ?? stringField(intentRecord.proposalId),\n\t\trefs: [\n\t\t\t...(stringField(intentRecord.intentId) === undefined\n\t\t\t\t? []\n\t\t\t\t: [`workspace-proposal-repair-action-intent:${stringField(intentRecord.intentId)}`]),\n\t\t\t...(request === undefined\n\t\t\t\t? []\n\t\t\t\t: [`workspace-proposal-repair-review-request:${request.repairRequestId}`]),\n\t\t],\n\t};\n}\n\nfunction repairActionIssueFromDataOnly(\n\tissue: WorkspaceProposalRecordedIssue,\n\tintent: WorkspaceProposalRepairActionIntent,\n\trequest: WorkspaceProposalRepairReviewRequest | undefined,\n): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\t...issue,\n\t\tsubjectId: issue.subjectId ?? request?.proposalId ?? intent.proposalId,\n\t\trefs: issue.refs ?? [\n\t\t\t`workspace-proposal-repair-action-intent:${intent.intentId}`,\n\t\t\t...(request === undefined\n\t\t\t\t? []\n\t\t\t\t: [`workspace-proposal-repair-review-request:${request.repairRequestId}`]),\n\t\t],\n\t};\n}\n\nfunction repairReviewSubjectRefs(\n\trequest: WorkspaceProposalRepairReviewRequest,\n): readonly SourceRef[] {\n\treturn (request.subjectRefs ?? []).filter(repairReviewDecisionSourceRefIsValid);\n}\n\nfunction repairActionDescriptorSignature(\n\tdescriptor: WorkspaceProposalRepairActionDescriptor,\n): string {\n\treturn stableStringify(descriptor);\n}\n\nfunction repairActionIntentSignature(intent: WorkspaceProposalRepairActionIntent): string {\n\treturn stableStringify({\n\t\tkind: intent.kind,\n\t\tintentId: intent.intentId,\n\t\tdescriptorId: intent.descriptorId,\n\t\trepairRequestId: intent.repairRequestId,\n\t\tactionKind: intent.actionKind,\n\t\tapplicationId: intent.applicationId,\n\t\tproposalId: intent.proposalId,\n\t\tdecisionId: intent.decisionId,\n\t\tidempotencyKey: intent.idempotencyKey,\n\t\tproposalFamily: intent.proposalFamily,\n\t\treviewerRef: intent.reviewerRef,\n\t\tactorRef: intent.actorRef,\n\t\tcapabilityRefs: intent.capabilityRefs,\n\t\tpolicyRefs: intent.policyRefs,\n\t\tsourceRefs: intent.sourceRefs,\n\t\taudit: intent.audit,\n\t\tmetadata: intent.metadata,\n\t\texpectedCurrentState: intent.expectedCurrentState,\n\t});\n}\n\nfunction repairReviewDecisionRecordingInputSignature(\n\tinput: WorkspaceProposalRepairReviewDecisionRecordingInput,\n): string {\n\treturn stableStringify({\n\t\tkind: input.kind,\n\t\trepairRequestId: input.repairRequestId,\n\t\treviewDecisionId: input.reviewDecisionId,\n\t\tintent: input.intent,\n\t\treviewerRef: input.reviewerRef,\n\t\tactorRef: input.actorRef,\n\t\tcapabilityRefs: input.capabilityRefs,\n\t\tpolicyRefs: input.policyRefs,\n\t\tsourceRefs: input.sourceRefs,\n\t\taudit: input.audit,\n\t\treason: input.reason,\n\t\tcode: input.code,\n\t\tresolvesRefs: input.resolvesRefs,\n\t\tsupersedesRefs: input.supersedesRefs,\n\t\tdecidedAtMs: input.decidedAtMs,\n\t\tmetadata: input.metadata,\n\t\texpectedCurrentState: input.expectedCurrentState,\n\t});\n}\n\nfunction repairReviewDecisionRecordingResultKey(\n\tresult: WorkspaceProposalRepairReviewDecisionRecordingResult,\n): string {\n\treturn stableStringify(result);\n}\n\nfunction blockedRepairReviewDecisionRecordingResult(\n\tinput: WorkspaceProposalRepairReviewDecisionRecordingInput,\n\trequest: WorkspaceProposalRepairReviewRequest | undefined,\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n): WorkspaceProposalRepairReviewDecisionRecordingResult {\n\tconst audit =\n\t\tsafeWorkspaceProposalAudit(input.audit) ?? safeWorkspaceProposalAudit(request?.audit);\n\treturn {\n\t\tkind: \"workspace-proposal-repair-review-decision-recording-result\",\n\t\tstatus: \"blocked\",\n\t\tdecision: undefined,\n\t\tissues: [...dedupeRecordingIssues(issues)],\n\t\tsourceRefs: repairActionSourceRefs(input.sourceRefs ?? []),\n\t\t...(audit === undefined ? {} : { audit }),\n\t};\n}\n\nfunction conflictingRepairActionIntentValidationResult(\n\tintent: WorkspaceProposalRepairActionIntent,\n): WorkspaceProposalRepairActionIntentValidationResult {\n\tconst audit = safeWorkspaceProposalAudit(intent.audit);\n\treturn {\n\t\tkind: \"workspace-proposal-repair-action-intent-validation-result\",\n\t\tstatus: \"blocked\",\n\t\tintentId: intent.intentId,\n\t\tdescriptorId: intent.descriptorId,\n\t\trepairRequestId: intent.repairRequestId,\n\t\tactionKind: intent.actionKind,\n\t\tapplicationId: intent.applicationId,\n\t\tproposalId: intent.proposalId,\n\t\tdecisionId: intent.decisionId,\n\t\tidempotencyKey: intent.idempotencyKey,\n\t\tproposalFamily: intent.proposalFamily,\n\t\tissues: [conflictingRepairActionIntentIssue(intent)],\n\t\tsourceRefs: repairActionSourceRefs(intent.sourceRefs ?? []),\n\t\t...(audit === undefined ? {} : { audit }),\n\t};\n}\n\nfunction conflictingRepairActionIntentIssue(\n\tintent: WorkspaceProposalRepairActionIntent,\n): WorkspaceProposalRecordedIssue {\n\treturn repairActionIntentIssue(\n\t\t\"conflicting-repair-action-intent\",\n\t\t\"Repair action intent facts conflict for the same intentId.\",\n\t\tintent,\n\t\tundefined,\n\t);\n}\n\nfunction repairReviewDecisionRecordingInputIssue(\n\tcode: string,\n\tmessage: string,\n\tinput: WorkspaceProposalRepairReviewDecisionRecordingInput,\n\trequest: WorkspaceProposalRepairReviewRequest | undefined,\n): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tsource: \"workspace-proposal\",\n\t\tseverity: \"error\",\n\t\tcode,\n\t\tmessage,\n\t\tsubjectId: request?.proposalId,\n\t\trefs: [\n\t\t\t...(blank(input.reviewDecisionId)\n\t\t\t\t? []\n\t\t\t\t: [`workspace-proposal-repair-review-decision:${input.reviewDecisionId}`]),\n\t\t\t...(request === undefined\n\t\t\t\t? [`workspace-proposal-repair-review-request:${input.repairRequestId}`]\n\t\t\t\t: [`workspace-proposal-repair-review-request:${request.repairRequestId}`]),\n\t\t],\n\t};\n}\n\nfunction repairReviewDecisionRecordingIssues(\n\trequest: WorkspaceProposalRepairReviewRequest,\n\toptions: WorkspaceProposalRepairReviewDecisionRecordingOptions | undefined,\n): WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tif (!isRecord(request) || request.kind !== \"workspace-proposal-repair-review-request\") {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"malformed-repair-review-request\",\n\t\t\t\t\"Repair-review decision recording requires an existing repair-review request.\",\n\t\t\t\tundefined,\n\t\t\t),\n\t\t);\n\t\treturn issues;\n\t}\n\tif (!isRecord(options)) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"malformed-recording-options\",\n\t\t\t\t\"Repair-review decision recording requires data-only options material.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t\treturn issues;\n\t}\n\tconst requestDataOnlyIssues = workspaceProposalDataOnlyIssues(request, \"repairReviewRequest\");\n\tfor (const entry of requestDataOnlyIssues) {\n\t\tissues.push(repairReviewDecisionIssueFromDataOnly(entry, request));\n\t}\n\tconst optionDataOnlyIssues = workspaceProposalDataOnlyIssues(\n\t\toptions,\n\t\t\"repairReviewDecisionOptions\",\n\t);\n\tfor (const entry of optionDataOnlyIssues) {\n\t\tissues.push(repairReviewDecisionIssueFromDataOnly(entry, request));\n\t}\n\tif (requestDataOnlyIssues.length > 0 || optionDataOnlyIssues.length > 0) {\n\t\treturn [...dedupeRecordingIssues(issues)];\n\t}\n\tfor (const [field, value] of [\n\t\t[\"repairRequestId\", request.repairRequestId],\n\t\t[\"applicationId\", request.applicationId],\n\t\t[\"proposalId\", request.proposalId],\n\t\t[\"decisionId\", request.decisionId],\n\t\t[\"idempotencyKey\", request.idempotencyKey],\n\t\t[\"proposalFamily\", request.proposalFamily],\n\t] as const) {\n\t\tif (blank(value)) {\n\t\t\tissues.push(\n\t\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\t\"malformed-repair-review-request\",\n\t\t\t\t\t`Repair-review request requires ${field}.`,\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (blank(options.reviewDecisionId)) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"missing-review-decision-id\",\n\t\t\t\t\"Repair-review decision recording requires a Workspace-supplied reviewDecisionId.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (!repairReviewDecisionIntentIsKnown(options.intent)) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"unsupported-repair-review-intent\",\n\t\t\t\t\"Repair-review decision recording requires a supported lifecycle intent.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (options.reviewerRef === undefined && options.actorRef === undefined) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"missing-review-authority-material\",\n\t\t\t\t\"Repair-review decision recording requires reviewer or actor ref material.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\t(!Array.isArray(options.capabilityRefs) || options.capabilityRefs.length === 0) &&\n\t\t(!Array.isArray(options.policyRefs) || options.policyRefs.length === 0)\n\t) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"missing-review-authority-material\",\n\t\t\t\t\"Repair-review decision recording requires explicit capability or policy material.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (!Array.isArray(options.sourceRefs) || options.sourceRefs.length === 0) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"missing-review-audit-material\",\n\t\t\t\t\"Repair-review decision recording requires explicit source refs.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (options.audit === undefined) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"missing-review-audit-material\",\n\t\t\t\t\"Repair-review decision recording requires explicit audit material.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (blank(options.reason) && blank(options.code)) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"missing-review-audit-material\",\n\t\t\t\t\"Repair-review decision recording requires reason or code material.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tfor (const field of [\n\t\t\"repairRequestId\",\n\t\t\"applicationId\",\n\t\t\"proposalId\",\n\t\t\"decisionId\",\n\t\t\"idempotencyKey\",\n\t\t\"proposalFamily\",\n\t] as const) {\n\t\tif (Object.hasOwn(options, field)) {\n\t\t\tissues.push(\n\t\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\t\"coordinate-override-forbidden\",\n\t\t\t\t\t\"Repair-review decision recording copies coordinates from the request.\",\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor (const [field, value] of [\n\t\t[\"reviewerRef\", options.reviewerRef],\n\t\t[\"actorRef\", options.actorRef],\n\t] as const) {\n\t\tif (value !== undefined && !repairReviewDecisionSourceRefIsValid(value)) {\n\t\t\tissues.push(\n\t\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\t\"malformed-ref\",\n\t\t\t\t\t`Repair-review decision ${field} must be a data-only source ref.`,\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tfor (const [field, refs] of [\n\t\t[\"capabilityRefs\", options.capabilityRefs],\n\t\t[\"policyRefs\", options.policyRefs],\n\t\t[\"sourceRefs\", options.sourceRefs],\n\t\t[\"resolvesRefs\", options.resolvesRefs],\n\t\t[\"supersedesRefs\", options.supersedesRefs],\n\t] as const) {\n\t\tif (refs !== undefined && !repairReviewDecisionSourceRefsAreValid(refs)) {\n\t\t\tissues.push(\n\t\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\t\"malformed-ref\",\n\t\t\t\t\t`Repair-review decision ${field} must be a dense array of data-only refs.`,\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (options.audit !== undefined && !isWorkspaceProposalAuditMaterial(options.audit)) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"malformed-audit\",\n\t\t\t\t\"Repair-review decision audit material must be data-only audit material.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (options.metadata !== undefined && !isRecord(options.metadata)) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"malformed-metadata\",\n\t\t\t\t\"Repair-review decision metadata must be data-only object material.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\toptions.decidedAtMs !== undefined &&\n\t\t(typeof options.decidedAtMs !== \"number\" || !Number.isFinite(options.decidedAtMs))\n\t) {\n\t\tissues.push(\n\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\"malformed-decision-time\",\n\t\t\t\t\"Repair-review decision time must be a finite number when supplied.\",\n\t\t\t\trequest,\n\t\t\t),\n\t\t);\n\t}\n\tif (options.currentStatus !== undefined) {\n\t\tif (\n\t\t\t!isRepairReviewStatusMaterial(options.currentStatus) ||\n\t\t\t!repairReviewCoordinatesMatch(request, options.currentStatus)\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\t\"current-status-coordinate-mismatch\",\n\t\t\t\t\t\"Repair-review current status guard must match the request coordinates.\",\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (options.expectedCurrentState !== undefined) {\n\t\tif (!isRecord(options.expectedCurrentState)) {\n\t\t\tissues.push(\n\t\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\t\"stale-repair-review-state\",\n\t\t\t\t\t\"Repair-review expected current state guard must be data-only state material.\",\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (options.currentStatus === undefined) {\n\t\t\tissues.push(\n\t\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\t\"stale-repair-review-state\",\n\t\t\t\t\t\"Repair-review expected current state guard requires current status material.\",\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (\n\t\t\tisRepairReviewStatusMaterial(options.currentStatus) &&\n\t\t\trepairReviewCoordinatesMatch(request, options.currentStatus) &&\n\t\t\t!repairReviewExpectedStateMatchesStatus(options.expectedCurrentState, options.currentStatus)\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\trepairReviewDecisionRecordingIssue(\n\t\t\t\t\t\"stale-repair-review-state\",\n\t\t\t\t\t\"Repair-review current status no longer matches the expected guard state.\",\n\t\t\t\t\trequest,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\treturn [...dedupeRecordingIssues(issues)];\n}\n\nfunction repairReviewDecisionIntentIsKnown(\n\tintent: unknown,\n): intent is WorkspaceProposalRepairReviewDecisionIntent {\n\treturn (\n\t\tintent === \"acknowledged\" ||\n\t\tintent === \"resolved\" ||\n\t\tintent === \"withdrawn\" ||\n\t\tintent === \"superseded\"\n\t);\n}\n\nfunction repairReviewDecisionSourceRefIsValid(value: unknown): value is SourceRef {\n\treturn (\n\t\tisSourceRef(value) &&\n\t\tworkspaceProposalDataOnlyIssues(value, \"repairReviewDecisionRef\").length === 0\n\t);\n}\n\nfunction repairReviewDecisionSourceRefsAreValid(value: unknown): value is readonly SourceRef[] {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tisDenseArray(value) &&\n\t\tvalue.every((entry) => repairReviewDecisionSourceRefIsValid(entry))\n\t);\n}\n\nfunction isRepairReviewStatusMaterial(\n\tvalue: unknown,\n): value is WorkspaceProposalRepairReviewStatus {\n\treturn (\n\t\tisRecord(value) &&\n\t\tvalue.kind === \"workspace-proposal-repair-review-status\" &&\n\t\tnonBlankString(value.repairRequestId) &&\n\t\tnonBlankString(value.applicationId) &&\n\t\tnonBlankString(value.proposalId) &&\n\t\tnonBlankString(value.decisionId) &&\n\t\tnonBlankString(value.idempotencyKey) &&\n\t\tnonBlankString(value.proposalFamily) &&\n\t\t(value.state === \"open\" ||\n\t\t\tvalue.state === \"acknowledged\" ||\n\t\t\tvalue.state === \"resolved\" ||\n\t\t\tvalue.state === \"withdrawn\" ||\n\t\t\tvalue.state === \"superseded\" ||\n\t\t\tvalue.state === \"conflict\") &&\n\t\tArray.isArray(value.proofRefs) &&\n\t\tArray.isArray(value.decisions) &&\n\t\tArray.isArray(value.conflicts) &&\n\t\tArray.isArray(value.issues) &&\n\t\tArray.isArray(value.sourceRefs)\n\t);\n}\n\nfunction isWorkspaceProposalAuditMaterial(value: unknown): value is WorkspaceProposalAuditMaterial {\n\tif (!isRecord(value)) return false;\n\treturn (\n\t\t(value.auditId === undefined || typeof value.auditId === \"string\") &&\n\t\t(value.actorId === undefined || typeof value.actorId === \"string\") &&\n\t\t(value.recordedAtMs === undefined ||\n\t\t\t(typeof value.recordedAtMs === \"number\" && Number.isFinite(value.recordedAtMs))) &&\n\t\t(value.reason === undefined || typeof value.reason === \"string\") &&\n\t\t(value.sourceRefs === undefined || repairReviewDecisionSourceRefsAreValid(value.sourceRefs)) &&\n\t\t(value.metadata === undefined || isRecord(value.metadata)) &&\n\t\tworkspaceProposalDataOnlyIssues(value, \"repairReviewDecisionAudit\").length === 0\n\t);\n}\n\nfunction safeWorkspaceProposalAudit(value: unknown): WorkspaceProposalAuditMaterial | undefined {\n\ttry {\n\t\treturn isWorkspaceProposalAuditMaterial(value)\n\t\t\t? immutableClone(value as WorkspaceProposalAuditMaterial)\n\t\t\t: undefined;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction repairReviewExpectedStateMatchesStatus(\n\texpected: WorkspaceProposalRepairReviewExpectedCurrentState,\n\tstatus: WorkspaceProposalRepairReviewStatus,\n): boolean {\n\tif (expected.state !== undefined && expected.state !== status.state) return false;\n\tif (expected.code !== undefined && expected.code !== status.code) return false;\n\tif (expected.proofKind !== undefined && expected.proofKind !== status.proofKind) return false;\n\tif (\n\t\texpected.proofRefs !== undefined &&\n\t\t(!repairReviewDecisionSourceRefsAreValid(expected.proofRefs) ||\n\t\t\tstableStringify(expected.proofRefs) !== stableStringify(status.proofRefs))\n\t) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction repairReviewDecisionIssueFromDataOnly(\n\tissue: WorkspaceProposalRecordedIssue,\n\trequest: WorkspaceProposalRepairReviewRequest,\n): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\t...issue,\n\t\tsubjectId: issue.subjectId ?? request.proposalId,\n\t\trefs: issue.refs ?? [`workspace-proposal-repair-review-request:${request.repairRequestId}`],\n\t};\n}\n\nfunction repairReviewDecisionRecordingIssue(\n\tcode: string,\n\tmessage: string,\n\trequest: WorkspaceProposalRepairReviewRequest | undefined,\n): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tsource: \"workspace-proposal\",\n\t\tseverity: \"error\",\n\t\tcode,\n\t\tmessage,\n\t\t...(request === undefined ? {} : { subjectId: request.proposalId }),\n\t\trefs:\n\t\t\trequest === undefined\n\t\t\t\t? []\n\t\t\t\t: [`workspace-proposal-repair-review-request:${request.repairRequestId}`],\n\t};\n}\n\nfunction dedupeRecordingIssues(\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst out = new Map<string, WorkspaceProposalRecordedIssue>();\n\tfor (const issue of issues) out.set(stableStringify(issue), issue);\n\treturn [...out.values()];\n}\n\nfunction readModelCoordinates(input: WorkspaceProposalFamilyApplicationReadModelProjectionInput): {\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n} {\n\treturn {\n\t\tapplicationId: stringField(input.applicationId),\n\t\tproposalId: stringField(input.proposalId),\n\t\tdecisionId: stringField(input.decisionId),\n\t\tidempotencyKey: stringField(input.idempotencyKey),\n\t\tproposalFamily: stringField(input.proposalFamily) as WorkspaceProposalFamily | undefined,\n\t};\n}\n\nfunction readModelCoordinatesComplete(coordinates: {\n\treadonly applicationId?: string;\n\treadonly proposalId?: string;\n\treadonly decisionId?: string;\n\treadonly idempotencyKey?: string;\n\treadonly proposalFamily?: WorkspaceProposalFamily;\n}): coordinates is {\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId: string;\n\treadonly idempotencyKey: string;\n\treadonly proposalFamily: WorkspaceProposalFamily;\n} {\n\treturn (\n\t\tcoordinates.applicationId !== undefined &&\n\t\tcoordinates.proposalId !== undefined &&\n\t\tcoordinates.decisionId !== undefined &&\n\t\tcoordinates.idempotencyKey !== undefined &&\n\t\tcoordinates.proposalFamily !== undefined\n\t);\n}\n\nfunction coordinatesMatchExact(\n\texpected: {\n\t\treadonly applicationId: string;\n\t\treadonly proposalId: string;\n\t\treadonly decisionId: string;\n\t\treadonly idempotencyKey: string;\n\t\treadonly proposalFamily: WorkspaceProposalFamily;\n\t},\n\tmaterial: {\n\t\treadonly applicationId?: string;\n\t\treadonly proposalId?: string;\n\t\treadonly decisionId?: string;\n\t\treadonly idempotencyKey?: string;\n\t\treadonly proposalFamily?: WorkspaceProposalFamily;\n\t},\n): boolean {\n\treturn (\n\t\tmaterial.applicationId === expected.applicationId &&\n\t\tmaterial.proposalId === expected.proposalId &&\n\t\tmaterial.decisionId === expected.decisionId &&\n\t\tmaterial.idempotencyKey === expected.idempotencyKey &&\n\t\tmaterial.proposalFamily === expected.proposalFamily\n\t);\n}\n\nfunction sameOutcomeRefCoordinates(\n\tref: WorkspaceProposalFamilyOutcomeRef,\n\tmaterial:\n\t\t| WorkspaceProposalFamilyOutcomeRecord\n\t\t| WorkspaceProposalFamilyOutcomeRecordStatus\n\t\t| WorkspaceProposalFamilyOutcomeIndexEntry,\n): boolean {\n\tconst coordinatesMatch =\n\t\tref.applicationId === material.applicationId &&\n\t\tref.proposalId === material.proposalId &&\n\t\tref.decisionId === material.decisionId &&\n\t\tref.idempotencyKey === material.idempotencyKey &&\n\t\tref.proposalFamily === material.proposalFamily;\n\tif (!coordinatesMatch) return false;\n\tif (material.kind === \"workspace-proposal-family-outcome-index-entry\") {\n\t\treturn material.outcomeRefs.some(\n\t\t\t(entry) => entry.outcomeId === ref.outcomeId && entry.outcomeKind === ref.outcomeKind,\n\t\t);\n\t}\n\tif (material.kind === \"workspace-proposal-family-outcome-record-status\") {\n\t\treturn (\n\t\t\tmaterial.outcomeId === ref.outcomeId &&\n\t\t\tmaterial.outcomeRefs.some(\n\t\t\t\t(entry) => entry.outcomeId === ref.outcomeId && entry.outcomeKind === ref.outcomeKind,\n\t\t\t)\n\t\t);\n\t}\n\treturn material.outcomeId === ref.outcomeId && material.kind === ref.outcomeKind;\n}\n\nfunction groupByOutcomeId<T extends { readonly outcomeId: string }>(\n\titems: readonly T[],\n): ReadonlyMap<string, readonly T[]> {\n\tconst groups = new Map<string, T[]>();\n\tfor (const item of items)\n\t\tgroups.set(item.outcomeId, [...(groups.get(item.outcomeId) ?? []), item]);\n\treturn groups;\n}\n\nfunction readModelDisplayDiagnostic(\n\tcode: WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic[\"code\"],\n\toutcomeRef: WorkspaceProposalFamilyOutcomeRef,\n): WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic {\n\tconst message =\n\t\tcode === \"missing-outcome-detail\"\n\t\t\t? \"Workspace proposal family outcome detail was not supplied\"\n\t\t\t: code === \"mismatched-outcome-detail\"\n\t\t\t\t? \"Workspace proposal family outcome detail mismatches its thin ref\"\n\t\t\t\t: \"Workspace proposal family outcome status mismatches its thin ref\";\n\treturn {\n\t\tkind: \"workspace-proposal-family-application-read-model-display-diagnostic\",\n\t\tdiagnosticId: `workspace-proposal-family-application-read-model-display-diagnostic:${stableStringify(\n\t\t\t{\n\t\t\t\tcode,\n\t\t\t\toutcomeRef,\n\t\t\t},\n\t\t)}`,\n\t\tcode,\n\t\tmessage,\n\t\tapplicationId: outcomeRef.applicationId,\n\t\tproposalId: outcomeRef.proposalId,\n\t\tdecisionId: outcomeRef.decisionId,\n\t\tidempotencyKey: outcomeRef.idempotencyKey,\n\t\tproposalFamily: outcomeRef.proposalFamily,\n\t\toutcomeRef,\n\t\tsourceRefs: outcomeRef.sourceRefs,\n\t};\n}\n\ninterface NormalizedReadModelQuery {\n\treadonly complete: boolean;\n\treadonly malformed: boolean;\n\treadonly queryId?: string;\n\treadonly viewId?: string;\n\treadonly coordinates: {\n\t\treadonly applicationId?: string;\n\t\treadonly proposalId?: string;\n\t\treadonly decisionId?: string;\n\t\treadonly idempotencyKey?: string;\n\t\treadonly proposalFamily?: WorkspaceProposalFamily;\n\t};\n\treadonly page: {\n\t\treadonly offset: number;\n\t\treadonly limit: number;\n\t};\n\treadonly filters: WorkspaceProposalFamilyApplicationReadModelNormalizedFilters;\n\treadonly sort: readonly WorkspaceProposalFamilyApplicationReadModelSortOption[];\n\treadonly groupBy: readonly WorkspaceProposalFamilyApplicationReadModelGroupField[];\n\treadonly search: WorkspaceProposalFamilyApplicationReadModelNormalizedSearch;\n\treadonly sourceRefs: readonly SourceRef[];\n}\n\ninterface NormalizedReadModelFilterResult {\n\treadonly filters: WorkspaceProposalFamilyApplicationReadModelNormalizedFilters;\n\treadonly malformed: boolean;\n}\n\nfunction normalizeReadModelQuery(\n\tquery: WorkspaceProposalFamilyApplicationReadModelQuery,\n): NormalizedReadModelQuery {\n\tconst queryRecord: Record<string, unknown> = isRecord(query) ? query : {};\n\tconst sourceRefResult = readModelQuerySourceRefs(queryRecord.sourceRefs);\n\tconst auditSourceRefResult = readModelQuerySourceRefs(\n\t\tisRecord(queryRecord.audit) ? queryRecord.audit.sourceRefs : undefined,\n\t);\n\tconst dataOnlyIssues = workspaceProposalDataOnlyIssues(query, \"readModelQuery\");\n\tconst coordinates = {\n\t\tapplicationId: stringField(queryRecord.applicationId),\n\t\tproposalId: stringField(queryRecord.proposalId),\n\t\tdecisionId: stringField(queryRecord.decisionId),\n\t\tidempotencyKey: stringField(queryRecord.idempotencyKey),\n\t\tproposalFamily: stringField(queryRecord.proposalFamily) as WorkspaceProposalFamily | undefined,\n\t};\n\tconst page = isRecord(queryRecord.page) ? queryRecord.page : {};\n\tconst kind = stringField(queryRecord.kind);\n\tconst queryId = stringField(queryRecord.queryId);\n\tconst filterResult = normalizeReadModelFilters(\n\t\tisRecord(queryRecord.filters) ? queryRecord.filters : undefined,\n\t);\n\tconst presentation = normalizeReadModelPresentationOptions(\n\t\tqueryRecord.sort,\n\t\tqueryRecord.groupBy,\n\t\tisRecord(queryRecord.search) ? queryRecord.search : queryRecord.search,\n\t);\n\tconst complete =\n\t\tqueryId !== undefined &&\n\t\treadModelCoordinatesComplete(coordinates) &&\n\t\tkind === \"workspace-proposal-family-application-read-model-query\";\n\tconst malformed =\n\t\tkind !== \"workspace-proposal-family-application-read-model-query\" ||\n\t\tqueryId === undefined ||\n\t\t(queryRecord.sourceRefs !== undefined && !Array.isArray(queryRecord.sourceRefs)) ||\n\t\tsourceRefResult.malformed ||\n\t\tauditSourceRefResult.malformed ||\n\t\tfilterResult.malformed ||\n\t\tpresentation.malformed ||\n\t\tdataOnlyIssues.length > 0;\n\treturn {\n\t\tcomplete,\n\t\tmalformed,\n\t\tqueryId,\n\t\tviewId: stringField(queryRecord.viewId),\n\t\tcoordinates,\n\t\tpage: {\n\t\t\toffset: normalizePageOffset(page.offset),\n\t\t\tlimit: normalizePageLimit(page.limit),\n\t\t},\n\t\tfilters: filterResult.filters,\n\t\tsort: presentation.sort,\n\t\tgroupBy: presentation.groupBy,\n\t\tsearch: presentation.search,\n\t\tsourceRefs: uniqueRefs([...sourceRefResult.refs, ...auditSourceRefResult.refs]),\n\t};\n}\n\nfunction readModelQueryDisplayDiagnostic(\n\tcode: \"incomplete-read-model-query\" | \"malformed-read-model-query\",\n\tnormalized: NormalizedReadModelQuery,\n): WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic {\n\treturn {\n\t\tkind: \"workspace-proposal-family-application-read-model-display-diagnostic\",\n\t\tdiagnosticId: `workspace-proposal-family-application-read-model-display-diagnostic:${stableStringify(\n\t\t\t{\n\t\t\t\tcode,\n\t\t\t\tqueryId: normalized.queryId,\n\t\t\t\tviewId: normalized.viewId,\n\t\t\t\tcoordinates: normalized.coordinates,\n\t\t\t\tpage: normalized.page,\n\t\t\t\tfilters: normalized.filters,\n\t\t\t\tsort: normalized.sort,\n\t\t\t\tgroupBy: normalized.groupBy,\n\t\t\t\tsearch: normalized.search,\n\t\t\t},\n\t\t)}`,\n\t\tcode,\n\t\tmessage:\n\t\t\tcode === \"malformed-read-model-query\"\n\t\t\t\t? \"Workspace proposal family read-model query is malformed\"\n\t\t\t\t: \"Workspace proposal family read-model query is incomplete\",\n\t\t...(normalized.queryId === undefined ? {} : { queryId: normalized.queryId }),\n\t\t...(normalized.viewId === undefined ? {} : { viewId: normalized.viewId }),\n\t\t...normalized.coordinates,\n\t\tsourceRefs: normalized.sourceRefs,\n\t};\n}\n\nfunction readModelQuerySourceRefs(value: unknown): {\n\treadonly refs: readonly SourceRef[];\n\treadonly malformed: boolean;\n} {\n\tif (value === undefined) return { refs: [], malformed: false };\n\tif (!Array.isArray(value)) return { refs: [], malformed: true };\n\tconst refs: SourceRef[] = [];\n\tlet malformed = false;\n\tfor (const entry of value) {\n\t\tif (!isSourceRef(entry) || workspaceProposalDataOnlyIssues(entry, \"sourceRef\").length > 0) {\n\t\t\tmalformed = true;\n\t\t\tcontinue;\n\t\t}\n\t\trefs.push(entry);\n\t}\n\treturn { refs: uniqueRefs(refs), malformed };\n}\n\nfunction normalizeReadModelFilters(\n\tfilters: WorkspaceProposalFamilyApplicationReadModelFilters | undefined,\n): NormalizedReadModelFilterResult {\n\tconst outcomeKinds = normalizeClosedStringFilter(\n\t\tfilters?.outcomeKinds,\n\t\tworkspaceProposalFamilyOutcomeKinds,\n\t);\n\tconst repairStates = normalizeClosedStringFilter(\n\t\tfilters?.repairStates,\n\t\tworkspaceProposalRepairReviewLifecycleStates,\n\t);\n\treturn {\n\t\tfilters: {\n\t\t\toutcomeIds: normalizeStringFilter(filters?.outcomeIds),\n\t\t\toutcomeKinds: outcomeKinds.values,\n\t\t\tdiagnosticCodes: normalizeStringFilter(filters?.diagnosticCodes),\n\t\t\trepairStates: repairStates.values,\n\t\t},\n\t\tmalformed: outcomeKinds.malformed || repairStates.malformed,\n\t};\n}\n\ninterface NormalizedReadModelPresentationResult {\n\treadonly sort: readonly WorkspaceProposalFamilyApplicationReadModelSortOption[];\n\treadonly groupBy: readonly WorkspaceProposalFamilyApplicationReadModelGroupField[];\n\treadonly search: WorkspaceProposalFamilyApplicationReadModelNormalizedSearch;\n\treadonly diagnostics: readonly WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic[];\n\treadonly malformed: boolean;\n}\n\nfunction normalizeReadModelPresentationOptions(\n\tsort: unknown,\n\tgroupBy: unknown,\n\tsearch: unknown,\n): NormalizedReadModelPresentationResult {\n\tconst sortResult = normalizeReadModelSort(sort);\n\tconst groupResult = normalizeClosedStringFilter(\n\t\tArray.isArray(groupBy) ? groupBy : groupBy === undefined ? undefined : [groupBy],\n\t\treadModelGroupFields,\n\t);\n\tconst searchResult = normalizeReadModelSearch(search);\n\tconst malformed =\n\t\tsortResult.malformed ||\n\t\tgroupResult.malformed ||\n\t\tsearchResult.malformed ||\n\t\t(sort !== undefined && !Array.isArray(sort)) ||\n\t\t(groupBy !== undefined && !Array.isArray(groupBy));\n\tconst diagnostics = malformed\n\t\t? [readModelPresentationDiagnostic(sortResult.sort, groupResult.values, searchResult.search)]\n\t\t: [];\n\treturn {\n\t\tsort: sortResult.sort,\n\t\tgroupBy: groupResult.values,\n\t\tsearch: searchResult.search,\n\t\tdiagnostics,\n\t\tmalformed,\n\t};\n}\n\nfunction normalizeReadModelSort(sort: unknown): {\n\treadonly sort: readonly WorkspaceProposalFamilyApplicationReadModelSortOption[];\n\treadonly malformed: boolean;\n} {\n\tif (sort === undefined) return { sort: [], malformed: false };\n\tif (!Array.isArray(sort)) return { sort: [], malformed: true };\n\tconst allowedFields = new Set<string>(readModelSortFields);\n\tconst allowedDirections = new Set<string>([\"asc\", \"desc\"]);\n\tconst byField = new Map<\n\t\tWorkspaceProposalFamilyApplicationReadModelSortField,\n\t\tWorkspaceProposalFamilyApplicationReadModelSortDirection\n\t>();\n\tlet malformed = false;\n\tfor (const entry of sort) {\n\t\tif (!isRecord(entry)) {\n\t\t\tmalformed = true;\n\t\t\tcontinue;\n\t\t}\n\t\tconst field = stringField(entry.field);\n\t\tconst direction = stringField(entry.direction);\n\t\tif (\n\t\t\tfield === undefined ||\n\t\t\tdirection === undefined ||\n\t\t\t!allowedFields.has(field) ||\n\t\t\t!allowedDirections.has(direction)\n\t\t) {\n\t\t\tmalformed = true;\n\t\t\tcontinue;\n\t\t}\n\t\tbyField.set(\n\t\t\tfield as WorkspaceProposalFamilyApplicationReadModelSortField,\n\t\t\tdirection as WorkspaceProposalFamilyApplicationReadModelSortDirection,\n\t\t);\n\t}\n\treturn {\n\t\tsort: [...byField.entries()].map(([field, direction]) => ({ field, direction })),\n\t\tmalformed,\n\t};\n}\n\nfunction normalizeReadModelSearch(search: unknown): {\n\treadonly search: WorkspaceProposalFamilyApplicationReadModelNormalizedSearch;\n\treadonly malformed: boolean;\n} {\n\tif (search === undefined) return { search: { text: \"\", fields: [] }, malformed: false };\n\tif (!isRecord(search)) return { search: { text: \"\", fields: [] }, malformed: true };\n\tconst fieldResult = normalizeClosedStringFilter(\n\t\tArray.isArray(search.fields) ? search.fields : undefined,\n\t\treadModelSearchFields,\n\t);\n\treturn {\n\t\tsearch: {\n\t\t\ttext: boundedSearchText(search.text),\n\t\t\tfields: fieldResult.values.length === 0 ? [...readModelSearchFields] : fieldResult.values,\n\t\t},\n\t\tmalformed:\n\t\t\tfieldResult.malformed ||\n\t\t\t(search.fields !== undefined && !Array.isArray(search.fields)) ||\n\t\t\t(search.text !== undefined && typeof search.text !== \"string\"),\n\t};\n}\n\nfunction boundedSearchText(value: unknown): string {\n\treturn typeof value === \"string\" ? value.trim().slice(0, 128) : \"\";\n}\n\nfunction readModelPresentationDiagnostic(\n\tsort: readonly WorkspaceProposalFamilyApplicationReadModelSortOption[],\n\tgroupBy: readonly WorkspaceProposalFamilyApplicationReadModelGroupField[],\n\tsearch: WorkspaceProposalFamilyApplicationReadModelNormalizedSearch,\n): WorkspaceProposalFamilyApplicationReadModelDisplayDiagnostic {\n\treturn {\n\t\tkind: \"workspace-proposal-family-application-read-model-display-diagnostic\",\n\t\tdiagnosticId: `workspace-proposal-family-application-read-model-display-diagnostic:${stableStringify(\n\t\t\t{\n\t\t\t\tcode: \"malformed-read-model-presentation-options\",\n\t\t\t\tsort,\n\t\t\t\tgroupBy,\n\t\t\t\tsearch,\n\t\t\t},\n\t\t)}`,\n\t\tcode: \"malformed-read-model-presentation-options\",\n\t\tmessage: \"Workspace proposal family read-model presentation options are malformed\",\n\t\tsourceRefs: [],\n\t};\n}\n\nfunction normalizeStringFilter(values: readonly unknown[] | undefined): readonly string[] {\n\tif (!Array.isArray(values)) return [];\n\treturn [...new Set(values.map(stringField).filter((value) => value !== undefined))].sort();\n}\n\nfunction normalizeClosedStringFilter<T extends string>(\n\tvalues: readonly unknown[] | undefined,\n\tallowedValues: readonly T[],\n): { readonly values: readonly T[]; readonly malformed: boolean } {\n\tif (!Array.isArray(values)) return { values: [], malformed: false };\n\tconst allowed = new Set<string>(allowedValues);\n\tconst normalized = normalizeStringFilter(values);\n\treturn {\n\t\tvalues: normalized.filter((value): value is T => allowed.has(value)),\n\t\tmalformed: normalized.some((value) => !allowed.has(value)),\n\t};\n}\n\nconst workspaceProposalFamilyOutcomeKinds = [\n\t\"workspace-proposal-required-input-response-outcome-recorded\",\n\t\"workspace-proposal-work-item-spawn-outcome-recorded\",\n\t\"workspace-proposal-work-item-link-outcome-recorded\",\n\t\"workspace-proposal-domain-action-outcome-recorded\",\n] as const satisfies readonly WorkspaceProposalFamilyOutcomeRecord[\"kind\"][];\n\nconst workspaceProposalRepairReviewLifecycleStates = [\n\t\"open\",\n\t\"acknowledged\",\n\t\"resolved\",\n\t\"withdrawn\",\n\t\"superseded\",\n\t\"conflict\",\n] as const satisfies readonly WorkspaceProposalRepairReviewLifecycleState[];\n\nconst readModelSortFields = [\n\t\"diagnostic-code\",\n\t\"outcome-id\",\n\t\"outcome-kind\",\n\t\"recorded-at-ms\",\n\t\"repair-state\",\n] as const satisfies readonly WorkspaceProposalFamilyApplicationReadModelSortField[];\n\nconst readModelGroupFields = [\n\t\"diagnostic-code\",\n\t\"outcome-kind\",\n\t\"repair-state\",\n] as const satisfies readonly WorkspaceProposalFamilyApplicationReadModelGroupField[];\n\nconst readModelSearchFields = [\n\t\"diagnostic-code\",\n\t\"diagnostic-message\",\n\t\"outcome-id\",\n\t\"outcome-kind\",\n\t\"repair-state\",\n] as const satisfies readonly WorkspaceProposalFamilyApplicationReadModelSearchField[];\n\nfunction matchesOptionalSet<T extends string>(values: readonly T[], value: T): boolean {\n\treturn values.length === 0 || values.includes(value);\n}\n\nfunction filterOutcomeIndexEntry(\n\tentry: WorkspaceProposalFamilyOutcomeIndexEntry,\n\tfilters: WorkspaceProposalFamilyApplicationReadModelNormalizedFilters,\n): WorkspaceProposalFamilyOutcomeIndexEntry {\n\tif (filters.outcomeIds.length === 0 && filters.outcomeKinds.length === 0) return entry;\n\tconst outcomeRefs = entry.outcomeRefs.filter(\n\t\t(ref) =>\n\t\t\tmatchesOptionalSet(filters.outcomeIds, ref.outcomeId) &&\n\t\t\tmatchesOptionalSet(filters.outcomeKinds, ref.outcomeKind),\n\t);\n\treturn {\n\t\t...entry,\n\t\toutcomeRefs,\n\t};\n}\n\nfunction readModelSearchMatches(\n\tref: WorkspaceProposalFamilyOutcomeRef,\n\tsearch: WorkspaceProposalFamilyApplicationReadModelNormalizedSearch,\n\tdiagnostics: readonly WorkspaceProposalFamilyApplicationDiagnostic[],\n\trepairReviewStatuses: readonly WorkspaceProposalRepairReviewStatus[],\n): boolean {\n\tif (search.text === \"\") return true;\n\tconst text = search.text.toLowerCase();\n\tconst haystack: string[] = [];\n\tconst fields = new Set(search.fields);\n\tif (fields.has(\"outcome-id\")) haystack.push(ref.outcomeId);\n\tif (fields.has(\"outcome-kind\")) haystack.push(ref.outcomeKind);\n\tif (fields.has(\"diagnostic-code\") || fields.has(\"diagnostic-message\")) {\n\t\tfor (const diagnostic of diagnostics) {\n\t\t\tif (!coordinatesMatchExact(ref, diagnostic)) continue;\n\t\t\tif (fields.has(\"diagnostic-code\")) haystack.push(diagnostic.code);\n\t\t\tif (fields.has(\"diagnostic-message\")) {\n\t\t\t\tfor (const issue of diagnostic.issues) haystack.push(issue.message);\n\t\t\t}\n\t\t}\n\t}\n\tif (fields.has(\"repair-state\")) {\n\t\tfor (const status of repairReviewStatuses) {\n\t\t\tif (coordinatesMatchExact(ref, status)) haystack.push(status.state);\n\t\t}\n\t}\n\treturn haystack.some((value) => value.toLowerCase().includes(text));\n}\n\nfunction sortReadModelOutcomeRefs(\n\trefs: readonly WorkspaceProposalFamilyOutcomeRef[],\n\tsort: readonly WorkspaceProposalFamilyApplicationReadModelSortOption[],\n\tdiagnostics: readonly WorkspaceProposalFamilyApplicationDiagnostic[],\n\trepairReviewStatuses: readonly WorkspaceProposalRepairReviewStatus[],\n\toutcomes: ReadonlyMap<string, readonly WorkspaceProposalFamilyOutcomeRecord[]>,\n\tstatuses: ReadonlyMap<string, readonly WorkspaceProposalFamilyOutcomeRecordStatus[]>,\n): readonly WorkspaceProposalFamilyOutcomeRef[] {\n\tif (sort.length === 0) return refs;\n\treturn [...refs].sort((left, right) => {\n\t\tfor (const option of sort) {\n\t\t\tconst compared = compareReadModelSortValue(\n\t\t\t\treadModelSortValue(\n\t\t\t\t\tleft,\n\t\t\t\t\toption.field,\n\t\t\t\t\tdiagnostics,\n\t\t\t\t\trepairReviewStatuses,\n\t\t\t\t\toutcomes,\n\t\t\t\t\tstatuses,\n\t\t\t\t),\n\t\t\t\treadModelSortValue(\n\t\t\t\t\tright,\n\t\t\t\t\toption.field,\n\t\t\t\t\tdiagnostics,\n\t\t\t\t\trepairReviewStatuses,\n\t\t\t\t\toutcomes,\n\t\t\t\t\tstatuses,\n\t\t\t\t),\n\t\t\t);\n\t\t\tif (compared !== 0) return option.direction === \"asc\" ? compared : -compared;\n\t\t}\n\t\treturn compareReadModelSortValue(left.outcomeId, right.outcomeId);\n\t});\n}\n\nfunction readModelSortValue(\n\tref: WorkspaceProposalFamilyOutcomeRef,\n\tfield: WorkspaceProposalFamilyApplicationReadModelSortField,\n\tdiagnostics: readonly WorkspaceProposalFamilyApplicationDiagnostic[],\n\trepairReviewStatuses: readonly WorkspaceProposalRepairReviewStatus[],\n\toutcomes: ReadonlyMap<string, readonly WorkspaceProposalFamilyOutcomeRecord[]>,\n\tstatuses: ReadonlyMap<string, readonly WorkspaceProposalFamilyOutcomeRecordStatus[]>,\n): string | number {\n\tswitch (field) {\n\t\tcase \"outcome-id\":\n\t\t\treturn ref.outcomeId;\n\t\tcase \"outcome-kind\":\n\t\t\treturn ref.outcomeKind;\n\t\tcase \"diagnostic-code\":\n\t\t\treturn diagnostics.find((diagnostic) => coordinatesMatchExact(ref, diagnostic))?.code ?? \"\";\n\t\tcase \"repair-state\":\n\t\t\treturn repairReviewStatuses.find((status) => coordinatesMatchExact(ref, status))?.state ?? \"\";\n\t\tcase \"recorded-at-ms\": {\n\t\t\tconst outcome = (outcomes.get(ref.outcomeId) ?? []).find((entry) =>\n\t\t\t\tsameOutcomeRefCoordinates(ref, entry),\n\t\t\t);\n\t\t\tconst status = (statuses.get(ref.outcomeId) ?? []).find((entry) =>\n\t\t\t\tsameOutcomeRefCoordinates(ref, entry),\n\t\t\t);\n\t\t\treturn outcome?.audit?.recordedAtMs ?? status?.audit?.recordedAtMs ?? 0;\n\t\t}\n\t}\n}\n\nfunction compareReadModelSortValue(left: string | number, right: string | number): number {\n\tif (typeof left === \"number\" && typeof right === \"number\") return left - right;\n\tconst leftString = String(left);\n\tconst rightString = String(right);\n\tif (leftString < rightString) return -1;\n\tif (leftString > rightString) return 1;\n\treturn 0;\n}\n\nfunction readModelDisplayGroups(\n\trefs: readonly WorkspaceProposalFamilyOutcomeRef[],\n\tgroupBy: readonly WorkspaceProposalFamilyApplicationReadModelGroupField[],\n\tdiagnostics: readonly WorkspaceProposalFamilyApplicationDiagnostic[],\n\trepairReviewStatuses: readonly WorkspaceProposalRepairReviewStatus[],\n): readonly WorkspaceProposalFamilyApplicationReadModelDisplayGroup[] {\n\tconst groups: WorkspaceProposalFamilyApplicationReadModelDisplayGroup[] = [];\n\tfor (const field of groupBy) {\n\t\tconst byValue = new Map<string, WorkspaceProposalFamilyOutcomeRef[]>();\n\t\tfor (const ref of refs) {\n\t\t\tfor (const value of readModelGroupValues(ref, field, diagnostics, repairReviewStatuses)) {\n\t\t\t\tbyValue.set(value, [...(byValue.get(value) ?? []), ref]);\n\t\t\t}\n\t\t}\n\t\tfor (const [value, outcomeRefs] of [...byValue.entries()].sort(([left], [right]) =>\n\t\t\tcompareReadModelSortValue(left, right),\n\t\t)) {\n\t\t\tgroups.push({\n\t\t\t\tkind: \"workspace-proposal-family-application-read-model-display-group\",\n\t\t\t\tfield,\n\t\t\t\tvalue,\n\t\t\t\toutcomeRefs,\n\t\t\t\tcount: outcomeRefs.length,\n\t\t\t});\n\t\t}\n\t}\n\treturn groups;\n}\n\nfunction readModelGroupValues(\n\tref: WorkspaceProposalFamilyOutcomeRef,\n\tfield: WorkspaceProposalFamilyApplicationReadModelGroupField,\n\tdiagnostics: readonly WorkspaceProposalFamilyApplicationDiagnostic[],\n\trepairReviewStatuses: readonly WorkspaceProposalRepairReviewStatus[],\n): readonly string[] {\n\tswitch (field) {\n\t\tcase \"outcome-kind\":\n\t\t\treturn [ref.outcomeKind];\n\t\tcase \"repair-state\":\n\t\t\treturn uniqueStrings(\n\t\t\t\trepairReviewStatuses\n\t\t\t\t\t.filter((status) => coordinatesMatchExact(ref, status))\n\t\t\t\t\t.map((status) => status.state),\n\t\t\t);\n\t\tcase \"diagnostic-code\":\n\t\t\treturn uniqueStrings(\n\t\t\t\tdiagnostics\n\t\t\t\t\t.filter((diagnostic) => coordinatesMatchExact(ref, diagnostic))\n\t\t\t\t\t.map((diagnostic) => diagnostic.code),\n\t\t\t);\n\t}\n}\n\nfunction normalizePageOffset(value: unknown): number {\n\treturn typeof value === \"number\" && Number.isFinite(value) && value > 0 ? Math.floor(value) : 0;\n}\n\nfunction normalizePageLimit(value: unknown): number {\n\tif (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0) return 50;\n\treturn Math.min(100, Math.floor(value));\n}\n\nfunction readModelSignature(readModel: WorkspaceProposalFamilyApplicationReadModel): string {\n\treturn stableStringify({\n\t\tqueryId: readModel.queryId,\n\t\tviewId: readModel.viewId,\n\t\tfilters: readModel.filters,\n\t\tdiagnostics: readModel.diagnostics,\n\t\trepairReviewStatuses: readModel.repairReviewStatuses,\n\t\toutcomeIndexes: readModel.outcomeIndexes,\n\t\toutcomeDetails: readModel.outcomeDetails,\n\t\tdisplayDiagnostics: readModel.displayDiagnostics,\n\t\tpage: readModel.page,\n\t});\n}\n\nfunction readModelCurrentViewKey(readModel: WorkspaceProposalFamilyApplicationReadModel): string {\n\treturn stableStringify({\n\t\tcurrentViewId: readModel.viewId ?? readModel.queryId ?? readModel.readModelId,\n\t});\n}\n\nfunction readModelEmissionSignature(\n\treadModel: WorkspaceProposalFamilyApplicationReadModel,\n): string {\n\treturn stableStringify({\n\t\treadModelId: readModel.readModelId,\n\t\tsignature: readModelSignature(readModel),\n\t});\n}\n\nfunction diagnosticClassForIssue(\n\tissue: WorkspaceProposalRecordedIssue,\n): WorkspaceProposalFamilyApplicationDiagnosticClass | undefined {\n\tswitch (issue.code) {\n\t\tcase \"missing-workspace-proposal-recorded\":\n\t\tcase \"missing-workspace-proposal-admission-decision\":\n\t\t\treturn \"missing-durable-handoff\";\n\t\tcase \"idempotency-conflict\":\n\t\t\treturn \"idempotency-conflict\";\n\t\tcase \"missing-required-input-gate\":\n\t\tcase \"missing-domain-action-facts\":\n\t\tcase \"missing-family-application-ref\":\n\t\tcase \"application-not-recordable\":\n\t\tcase \"application-status-has-issues\":\n\t\tcase \"missing-required-field\":\n\t\t\treturn \"missing-family-material\";\n\t\tcase \"malformed-family-draft\":\n\t\tcase \"malformed-family-context\":\n\t\tcase \"malformed-family-evidence-horizon\":\n\t\tcase \"malformed-family-completion-policy\":\n\t\tcase \"malformed-application-status\":\n\t\tcase \"forbidden-runtime-material\":\n\t\t\treturn \"malformed-family-material\";\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nfunction diagnosticClassForApplicationStatus(\n\tstatus: WorkspaceProposalApplicationStatus,\n): WorkspaceProposalFamilyApplicationDiagnosticClass | undefined {\n\tif (status.state === \"idempotency-conflict\") return \"idempotency-conflict\";\n\tconst issueClass = firstDiagnosticClass(status.issues);\n\tif (status.state === \"repair-needed\") return issueClass ?? \"missing-family-material\";\n\treturn issueClass === \"missing-durable-handoff\" ? undefined : issueClass;\n}\n\nfunction diagnosticClassForOutcomeStatus(\n\tstatus: WorkspaceProposalFamilyOutcomeRecordStatus,\n): WorkspaceProposalFamilyApplicationDiagnosticClass | undefined {\n\tif (status.state === \"idempotency-conflict\") return \"idempotency-conflict\";\n\tif (status.state === \"repair-needed\" || status.state === \"pending\") {\n\t\tconst issueClass = firstDiagnosticClass(status.issues);\n\t\treturn issueClass ?? \"missing-family-material\";\n\t}\n\treturn firstDiagnosticClass(status.issues);\n}\n\nfunction firstDiagnosticClass(\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n): WorkspaceProposalFamilyApplicationDiagnosticClass | undefined {\n\tfor (const issue of issues) {\n\t\tconst classification = diagnosticClassForIssue(issue);\n\t\tif (classification !== undefined) return classification;\n\t}\n\treturn undefined;\n}\n\nfunction diagnosticFromIssue(\n\tissue: WorkspaceProposalRecordedIssue,\n\tclassification: WorkspaceProposalFamilyApplicationDiagnosticClass,\n): WorkspaceProposalFamilyApplicationDiagnostic {\n\tconst metadata = isRecord(issue.metadata) ? issue.metadata : {};\n\tconst applicationId = stringField(metadata.applicationId);\n\tconst proposalId = stringField(metadata.proposalId) ?? issue.subjectId;\n\tconst decisionId = stringField(metadata.decisionId);\n\treturn {\n\t\tkind: \"workspace-proposal-family-application-diagnostic\",\n\t\tdiagnosticId: diagnosticId({\n\t\t\tclassification,\n\t\t\tcode: issue.code,\n\t\t\tapplicationId,\n\t\t\tproposalId,\n\t\t\tdecisionId,\n\t\t\trefs: issue.refs,\n\t\t}),\n\t\tclassification,\n\t\tapplicationId,\n\t\tproposalId,\n\t\tdecisionId,\n\t\tcode: issue.code,\n\t\tissues: [issue],\n\t\tsourceRefs: [],\n\t\tmetadata: { refs: issue.refs },\n\t};\n}\n\nfunction diagnosticFromAudit(\n\taudit: WorkspaceProposalFamilyApplicationAuditRecord,\n\tclassification: WorkspaceProposalFamilyApplicationDiagnosticClass,\n): WorkspaceProposalFamilyApplicationDiagnostic {\n\tconst code = audit.code ?? classification;\n\treturn {\n\t\tkind: \"workspace-proposal-family-application-diagnostic\",\n\t\tdiagnosticId: diagnosticId({\n\t\t\tclassification,\n\t\t\tcode,\n\t\t\tapplicationId: audit.applicationId,\n\t\t\tproposalId: audit.proposalId,\n\t\t\tdecisionId: audit.decisionId,\n\t\t\tproposalFamily: audit.proposalFamily,\n\t\t}),\n\t\tclassification,\n\t\tapplicationId: audit.applicationId,\n\t\tproposalId: audit.proposalId,\n\t\tdecisionId: audit.decisionId,\n\t\tproposalFamily: audit.proposalFamily,\n\t\tcode,\n\t\tissues: audit.issues ?? [],\n\t\tsourceRefs: audit.sourceRefs ?? [],\n\t\taudit: audit.audit,\n\t\tmetadata: audit.metadata,\n\t};\n}\n\nfunction diagnosticFromApplicationStatus(\n\tstatus: WorkspaceProposalApplicationStatus,\n\tclassification: WorkspaceProposalFamilyApplicationDiagnosticClass,\n): WorkspaceProposalFamilyApplicationDiagnostic {\n\tconst code = status.code ?? status.issues[0]?.code ?? status.state;\n\treturn {\n\t\tkind: \"workspace-proposal-family-application-diagnostic\",\n\t\tdiagnosticId: diagnosticId({\n\t\t\tclassification,\n\t\t\tcode,\n\t\t\tapplicationId: status.applicationId,\n\t\t\tproposalId: status.proposalId,\n\t\t\tdecisionId: status.decisionId,\n\t\t\tidempotencyKey: status.idempotencyKey,\n\t\t\tproposalFamily: status.proposalFamily,\n\t\t}),\n\t\tclassification,\n\t\tapplicationId: status.applicationId,\n\t\tproposalId: status.proposalId,\n\t\tdecisionId: status.decisionId,\n\t\tidempotencyKey: status.idempotencyKey,\n\t\tproposalFamily: status.proposalFamily,\n\t\tcode,\n\t\tissues: status.issues,\n\t\tsourceRefs: status.sourceRefs,\n\t\taudit: status.audit,\n\t\tmetadata: status.metadata,\n\t};\n}\n\nfunction diagnosticFromOutcomeStatus(\n\tstatus: WorkspaceProposalFamilyOutcomeRecordStatus,\n\tclassification: WorkspaceProposalFamilyApplicationDiagnosticClass,\n): WorkspaceProposalFamilyApplicationDiagnostic {\n\tconst code = status.code ?? status.issues[0]?.code ?? status.state;\n\treturn {\n\t\tkind: \"workspace-proposal-family-application-diagnostic\",\n\t\tdiagnosticId: diagnosticId({\n\t\t\tclassification,\n\t\t\tcode,\n\t\t\tapplicationId: status.applicationId,\n\t\t\tproposalId: status.proposalId,\n\t\t\tdecisionId: status.decisionId,\n\t\t\tidempotencyKey: status.idempotencyKey,\n\t\t\tproposalFamily: status.proposalFamily,\n\t\t\toutcomeId: status.outcomeId,\n\t\t}),\n\t\tclassification,\n\t\tapplicationId: status.applicationId,\n\t\tproposalId: status.proposalId,\n\t\tdecisionId: status.decisionId,\n\t\tidempotencyKey: status.idempotencyKey,\n\t\tproposalFamily: status.proposalFamily,\n\t\tcode,\n\t\tissues: status.issues,\n\t\tsourceRefs: status.sourceRefs,\n\t\taudit: status.audit,\n\t\tmetadata: status.metadata,\n\t};\n}\n\nfunction diagnosticFromOutcomeIndex(\n\tentry: WorkspaceProposalFamilyOutcomeIndexEntry,\n): WorkspaceProposalFamilyApplicationDiagnostic {\n\tconst code = entry.issues[0]?.code ?? \"idempotency-conflict\";\n\treturn {\n\t\tkind: \"workspace-proposal-family-application-diagnostic\",\n\t\tdiagnosticId: diagnosticId({\n\t\t\tclassification: \"idempotency-conflict\",\n\t\t\tcode,\n\t\t\tapplicationId: entry.applicationId,\n\t\t\tproposalId: entry.proposalId,\n\t\t\tdecisionId: entry.decisionId,\n\t\t\tidempotencyKey: entry.idempotencyKey,\n\t\t\tproposalFamily: entry.proposalFamily,\n\t\t\tindexKey: entry.indexKey,\n\t\t}),\n\t\tclassification: \"idempotency-conflict\",\n\t\tapplicationId: entry.applicationId,\n\t\tproposalId: entry.proposalId,\n\t\tdecisionId: entry.decisionId,\n\t\tidempotencyKey: entry.idempotencyKey,\n\t\tproposalFamily: entry.proposalFamily,\n\t\tcode,\n\t\tissues: entry.issues,\n\t\tsourceRefs: entry.sourceRefs,\n\t\taudit: entry.audit,\n\t\tmetadata: { indexKey: entry.indexKey },\n\t};\n}\n\nfunction upsertDiagnostic(\n\tdiagnostics: Map<string, WorkspaceProposalFamilyApplicationDiagnostic>,\n\tdiagnostic: WorkspaceProposalFamilyApplicationDiagnostic,\n): void {\n\tconst existing = diagnostics.get(diagnostic.diagnosticId);\n\tif (existing === undefined) {\n\t\tdiagnostics.set(diagnostic.diagnosticId, diagnostic);\n\t\treturn;\n\t}\n\tdiagnostics.set(diagnostic.diagnosticId, {\n\t\t...existing,\n\t\tissues: uniqueIssues([...existing.issues, ...diagnostic.issues]),\n\t\tsourceRefs: uniqueRefs([...existing.sourceRefs, ...diagnostic.sourceRefs]),\n\t\taudit: existing.audit ?? diagnostic.audit,\n\t\tmetadata: { ...(diagnostic.metadata ?? {}), ...(existing.metadata ?? {}) },\n\t});\n}\n\nfunction diagnosticId(parts: Record<string, unknown>): string {\n\treturn `workspace-proposal-family-application-diagnostic:${stableStringify(parts)}`;\n}\n\nfunction repairReviewState(\n\tstate: WorkspaceProposalApplicationState | WorkspaceProposalFamilyOutcomeRecordState,\n): boolean {\n\treturn state === \"repair-needed\" || state === \"idempotency-conflict\";\n}\n\nfunction repairReviewClassification(\n\tclassification: WorkspaceProposalFamilyApplicationDiagnosticClass | undefined,\n): boolean {\n\treturn classification === \"missing-family-material\" || classification === \"idempotency-conflict\";\n}\n\nfunction diagnosticSignature(diagnostic: WorkspaceProposalFamilyApplicationDiagnostic): string {\n\treturn stableStringify({\n\t\tcode: diagnostic.code,\n\t\tissues: diagnostic.issues,\n\t\tsourceRefs: diagnostic.sourceRefs,\n\t\taudit: diagnostic.audit,\n\t\tmetadata: diagnostic.metadata,\n\t});\n}\n\nfunction repairRequestSignature(request: WorkspaceProposalRepairReviewRequest): string {\n\treturn stableStringify({\n\t\tcode: request.code,\n\t\tissues: request.issues,\n\t\tsubjectRefs: request.subjectRefs ?? [],\n\t\tsourceRefs: request.sourceRefs,\n\t\taudit: request.audit,\n\t});\n}\n\nfunction sameApplicationCoordinates(\n\tstatus: WorkspaceProposalApplicationStatus,\n\tmaterial: WorkspaceProposalFamilyOutcomeRecordStatus | WorkspaceProposalFamilyOutcomeIndexEntry,\n): boolean {\n\treturn (\n\t\tstatus.applicationId === material.applicationId &&\n\t\tstatus.proposalId === material.proposalId &&\n\t\tstatus.decisionId === material.decisionId &&\n\t\tstatus.idempotencyKey === material.idempotencyKey &&\n\t\tstatus.proposalFamily === material.proposalFamily\n\t);\n}\n\nfunction repairRequestFromApplicationStatus(\n\tstatus: WorkspaceProposalApplicationStatus,\n): WorkspaceProposalRepairReviewRequest {\n\tconst code = status.code ?? status.issues[0]?.code ?? status.state;\n\treturn {\n\t\tkind: \"workspace-proposal-repair-review-request\",\n\t\trepairRequestId: repairRequestId(status, code),\n\t\tapplicationId: status.applicationId,\n\t\tproposalId: status.proposalId,\n\t\tdecisionId: status.decisionId,\n\t\tidempotencyKey: status.idempotencyKey,\n\t\tproposalFamily: status.proposalFamily,\n\t\tcode,\n\t\tissues: status.issues,\n\t\tsubjectRefs: [{ kind: \"workspace-proposal-application-status\", id: status.applicationId }],\n\t\tsourceRefs: status.sourceRefs,\n\t\taudit: status.audit,\n\t};\n}\n\nfunction repairRequestFromOutcomeStatus(\n\tstatus: WorkspaceProposalFamilyOutcomeRecordStatus,\n\tapplicationStatus: WorkspaceProposalApplicationStatus,\n): WorkspaceProposalRepairReviewRequest {\n\tconst code = status.code ?? status.issues[0]?.code ?? status.state;\n\treturn {\n\t\tkind: \"workspace-proposal-repair-review-request\",\n\t\trepairRequestId: repairRequestId(status, code, status.outcomeId),\n\t\tapplicationId: status.applicationId,\n\t\tproposalId: status.proposalId,\n\t\tdecisionId: status.decisionId,\n\t\tidempotencyKey: status.idempotencyKey,\n\t\tproposalFamily: status.proposalFamily,\n\t\tcode,\n\t\tissues: status.issues,\n\t\tsubjectRefs: [\n\t\t\t{ kind: \"workspace-proposal-family-outcome-record-status\", id: status.outcomeId },\n\t\t],\n\t\tsourceRefs: uniqueRefs([\n\t\t\t{ kind: \"workspace-proposal-application-status\", id: applicationStatus.applicationId },\n\t\t\t...status.sourceRefs,\n\t\t]),\n\t\taudit: status.audit ?? applicationStatus.audit,\n\t};\n}\n\nfunction repairRequestFromOutcomeIndex(\n\tentry: WorkspaceProposalFamilyOutcomeIndexEntry,\n\tapplicationStatus: WorkspaceProposalApplicationStatus,\n): WorkspaceProposalRepairReviewRequest {\n\tconst code = entry.issues[0]?.code ?? \"idempotency-conflict\";\n\treturn {\n\t\tkind: \"workspace-proposal-repair-review-request\",\n\t\trepairRequestId: repairRequestId(entry, code, entry.indexKey),\n\t\tapplicationId: entry.applicationId,\n\t\tproposalId: entry.proposalId,\n\t\tdecisionId: entry.decisionId,\n\t\tidempotencyKey: entry.idempotencyKey,\n\t\tproposalFamily: entry.proposalFamily,\n\t\tcode,\n\t\tissues: entry.issues,\n\t\tsubjectRefs: [{ kind: \"workspace-proposal-family-outcome-index-entry\", id: entry.indexKey }],\n\t\tsourceRefs: uniqueRefs([\n\t\t\t{ kind: \"workspace-proposal-application-status\", id: applicationStatus.applicationId },\n\t\t\t...entry.sourceRefs,\n\t\t]),\n\t\taudit: entry.audit ?? applicationStatus.audit,\n\t};\n}\n\nfunction upsertRepairRequest(\n\trequests: Map<string, WorkspaceProposalRepairReviewRequest>,\n\trequest: WorkspaceProposalRepairReviewRequest,\n): void {\n\tconst existing = requests.get(request.repairRequestId);\n\tif (existing === undefined) {\n\t\trequests.set(request.repairRequestId, request);\n\t\treturn;\n\t}\n\trequests.set(request.repairRequestId, {\n\t\t...existing,\n\t\tissues: uniqueIssues([...existing.issues, ...request.issues]),\n\t\tsourceRefs: uniqueRefs([...existing.sourceRefs, ...request.sourceRefs]),\n\t\taudit: existing.audit ?? request.audit,\n\t});\n}\n\nfunction repairRequestId(\n\tcoordinates: Pick<\n\t\tWorkspaceProposalRepairReviewRequest,\n\t\t\"applicationId\" | \"proposalId\" | \"decisionId\" | \"idempotencyKey\" | \"proposalFamily\"\n\t>,\n\tcode: string,\n\textra?: string,\n): string {\n\treturn `workspace-proposal-repair-review:${stableStringify({\n\t\tapplicationId: coordinates.applicationId,\n\t\tproposalId: coordinates.proposalId,\n\t\tdecisionId: coordinates.decisionId,\n\t\tidempotencyKey: coordinates.idempotencyKey,\n\t\tproposalFamily: coordinates.proposalFamily,\n\t\tcode,\n\t\textra,\n\t})}`;\n}\n\nfunction diagnosticProjectionDeps(\n\topts: WorkspaceProposalFamilyApplicationDiagnosticProjectorOptions,\n): {\n\treadonly deps: readonly Node<unknown>[];\n\treadonly depKinds: readonly WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][];\n} {\n\tconst deps: Node<unknown>[] = [];\n\tconst depKinds: WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][] = [];\n\tpushProjectionDep(deps, depKinds, opts.issues, \"issue\");\n\tpushProjectionDep(deps, depKinds, opts.audit, \"audit\");\n\tpushProjectionDep(deps, depKinds, opts.applicationStatuses, \"application-status\");\n\tpushProjectionDep(deps, depKinds, opts.outcomeStatuses, \"outcome-status\");\n\tpushProjectionDep(deps, depKinds, opts.outcomeIndex, \"outcome-index\");\n\treturn { deps, depKinds };\n}\n\nfunction repairReviewProjectionDeps(opts: WorkspaceProposalRepairReviewProjectorOptions): {\n\treadonly deps: readonly Node<unknown>[];\n\treadonly depKinds: readonly WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][];\n} {\n\tconst deps: Node<unknown>[] = [];\n\tconst depKinds: WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][] = [];\n\tpushProjectionDep(deps, depKinds, opts.applicationStatuses, \"application-status\");\n\tpushProjectionDep(deps, depKinds, opts.outcomeStatuses, \"outcome-status\");\n\tpushProjectionDep(deps, depKinds, opts.outcomeIndex, \"outcome-index\");\n\treturn { deps, depKinds };\n}\n\nfunction repairReviewStatusProjectionDeps(\n\topts: WorkspaceProposalRepairReviewStatusProjectorOptions,\n): {\n\treadonly deps: readonly Node<unknown>[];\n\treadonly depKinds: readonly WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][];\n} {\n\tconst deps: Node<unknown>[] = [];\n\tconst depKinds: WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][] = [];\n\tpushProjectionDep(deps, depKinds, opts.requests, \"repair-request\");\n\tpushProjectionDep(deps, depKinds, opts.decisions, \"repair-decision\");\n\tpushProjectionDep(deps, depKinds, opts.applicationStatuses, \"application-status\");\n\tpushProjectionDep(deps, depKinds, opts.applicationRecorded, \"application-recorded\");\n\tpushProjectionDep(deps, depKinds, opts.outcomeStatuses, \"outcome-status\");\n\tpushProjectionDep(deps, depKinds, opts.outcomeIndex, \"outcome-index\");\n\treturn { deps, depKinds };\n}\n\nfunction repairReviewDecisionRecordingProjectionDeps(\n\topts: WorkspaceProposalRepairReviewDecisionRecordingProjectorOptions,\n): {\n\treadonly deps: readonly Node<unknown>[];\n\treadonly depKinds: readonly WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][];\n} {\n\tconst deps: Node<unknown>[] = [];\n\tconst depKinds: WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][] = [];\n\tpushProjectionDep(deps, depKinds, opts.requests, \"repair-request\");\n\tpushProjectionDep(deps, depKinds, opts.recordingInputs, \"repair-decision-recording-input\");\n\tpushProjectionDep(deps, depKinds, opts.statuses, \"repair-status\");\n\treturn { deps, depKinds };\n}\n\nfunction readModelProjectionDeps(\n\topts: WorkspaceProposalFamilyApplicationReadModelProjectorOptions,\n): {\n\treadonly deps: readonly Node<unknown>[];\n\treadonly depKinds: readonly WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][];\n} {\n\tconst deps: Node<unknown>[] = [];\n\tconst depKinds: WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][] = [];\n\tpushProjectionDep(deps, depKinds, opts.diagnostics, \"diagnostic\");\n\tpushProjectionDep(deps, depKinds, opts.repairReviewStatuses, \"repair-status\");\n\tpushProjectionDep(deps, depKinds, opts.outcomeIndex, \"outcome-index\");\n\tpushProjectionDep(deps, depKinds, opts.outcomeStatuses, \"outcome-status\");\n\tpushProjectionDep(deps, depKinds, opts.outcomes, \"outcome\");\n\treturn { deps, depKinds };\n}\n\nfunction readModelsProjectionDeps(\n\topts: WorkspaceProposalFamilyApplicationReadModelsProjectorOptions,\n): {\n\treadonly deps: readonly Node<unknown>[];\n\treadonly depKinds: readonly WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][];\n} {\n\tconst deps: Node<unknown>[] = [];\n\tconst depKinds: WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][] = [];\n\tpushProjectionDep(deps, depKinds, opts.queries, \"read-model-query\");\n\tpushProjectionDep(deps, depKinds, opts.diagnostics, \"diagnostic\");\n\tpushProjectionDep(deps, depKinds, opts.repairReviewStatuses, \"repair-status\");\n\tpushProjectionDep(deps, depKinds, opts.outcomeIndex, \"outcome-index\");\n\tpushProjectionDep(deps, depKinds, opts.outcomeStatuses, \"outcome-status\");\n\tpushProjectionDep(deps, depKinds, opts.outcomes, \"outcome\");\n\tpushProjectionDep(deps, depKinds, opts.releases, \"projection-release\");\n\treturn { deps, depKinds };\n}\n\nfunction pushProjectionDep(\n\tdeps: Node<unknown>[],\n\tdepKinds: WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][],\n\tnode: Node<unknown> | undefined,\n\tkind: WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"],\n): void {\n\tif (node === undefined) return;\n\tdeps.push(node);\n\tdepKinds.push(kind);\n}\n\nfunction ingestDiagnosticInputFacts(\n\tctx: Ctx,\n\tstate: WorkspaceProposalFamilyApplicationProjectionState,\n\tdepKinds: readonly WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"][],\n): void {\n\tfor (let index = 0; index < depKinds.length; index += 1) {\n\t\tfor (const raw of depBatch(ctx, index) ?? []) {\n\t\t\tingestDiagnosticInputFact(state, depKinds[index], raw);\n\t\t}\n\t}\n}\n\nfunction ingestDiagnosticInputFact(\n\tstate: WorkspaceProposalFamilyApplicationProjectionState,\n\tkind: WorkspaceProposalFamilyApplicationDiagnosticInputFact[\"kind\"],\n\traw: unknown,\n): void {\n\tswitch (kind) {\n\t\tcase \"issue\": {\n\t\t\tconst issue = raw as WorkspaceProposalRecordedIssue;\n\t\t\tstate.issues.set(issueKey(issue), issue);\n\t\t\treturn;\n\t\t}\n\t\tcase \"audit\": {\n\t\t\tconst audit = raw as WorkspaceProposalFamilyApplicationAuditRecord;\n\t\t\tstate.audit.set(audit.auditId, audit);\n\t\t\treturn;\n\t\t}\n\t\tcase \"application-status\": {\n\t\t\tconst status = raw as WorkspaceProposalApplicationStatus;\n\t\t\tstate.applicationStatuses.set(applicationStatusProjectionKey(status), status);\n\t\t\treturn;\n\t\t}\n\t\tcase \"application-recorded\": {\n\t\t\tconst record = raw as WorkspaceProposalApplicationRecorded;\n\t\t\tstate.applicationRecorded.set(applicationRecordedProjectionKey(record), record);\n\t\t\treturn;\n\t\t}\n\t\tcase \"outcome-status\": {\n\t\t\tconst status = raw as WorkspaceProposalFamilyOutcomeRecordStatus;\n\t\t\tstate.outcomeStatuses.set(outcomeStatusProjectionKey(status), status);\n\t\t\treturn;\n\t\t}\n\t\tcase \"outcome-index\": {\n\t\t\tconst entry = raw as WorkspaceProposalFamilyOutcomeIndexEntry;\n\t\t\tstate.outcomeIndex.set(outcomeIndexProjectionKey(entry), entry);\n\t\t\treturn;\n\t\t}\n\t\tcase \"repair-request\": {\n\t\t\tconst request = raw as WorkspaceProposalRepairReviewRequest;\n\t\t\tstate.repairRequests.set(request.repairRequestId, request);\n\t\t\treturn;\n\t\t}\n\t\tcase \"repair-decision\": {\n\t\t\tconst decision = raw as WorkspaceProposalRepairReviewDecision;\n\t\t\tstate.repairDecisions.set(decision.reviewDecisionId, decision);\n\t\t\treturn;\n\t\t}\n\t\tcase \"repair-status\": {\n\t\t\tconst status = raw as WorkspaceProposalRepairReviewStatus;\n\t\t\tstate.repairStatuses.set(repairReviewStatusProjectionKey(status), status);\n\t\t\treturn;\n\t\t}\n\t\tcase \"repair-decision-recording-input\": {\n\t\t\tconst input = raw as WorkspaceProposalRepairReviewDecisionRecordingInput;\n\t\t\tstate.repairDecisionRecordingInputs.set(repairReviewDecisionRecordingInputKey(input), input);\n\t\t\treturn;\n\t\t}\n\t\tcase \"diagnostic\": {\n\t\t\tconst diagnostic = raw as WorkspaceProposalFamilyApplicationDiagnostic;\n\t\t\tstate.diagnostics.set(diagnostic.diagnosticId, diagnostic);\n\t\t\treturn;\n\t\t}\n\t\tcase \"read-model-query\": {\n\t\t\tconst query = raw as WorkspaceProposalFamilyApplicationReadModelQuery;\n\t\t\tstate.readModelQueries.set(readModelQueryProjectionKey(query), query);\n\t\t\treturn;\n\t\t}\n\t\tcase \"outcome\": {\n\t\t\tconst outcome = raw as WorkspaceProposalFamilyOutcomeRecord;\n\t\t\tstate.outcomes.set(outcomeProjectionKey(outcome), outcome);\n\t\t\treturn;\n\t\t}\n\t\tcase \"projection-release\": {\n\t\t\tpruneReadModelQueryRelease(state, raw);\n\t\t}\n\t}\n}\n\nfunction familyProjectionState(ctx: Ctx): WorkspaceProposalFamilyApplicationProjectionState {\n\treturn (\n\t\tctx.state.get<WorkspaceProposalFamilyApplicationProjectionState>() ?? {\n\t\t\tissues: new Map(),\n\t\t\taudit: new Map(),\n\t\t\tapplicationStatuses: new Map(),\n\t\t\tapplicationRecorded: new Map(),\n\t\t\toutcomeStatuses: new Map(),\n\t\t\toutcomeIndex: new Map(),\n\t\t\trepairRequests: new Map(),\n\t\t\trepairDecisions: new Map(),\n\t\t\trepairStatuses: new Map(),\n\t\t\trepairDecisionRecordingInputs: new Map(),\n\t\t\tdiagnostics: new Map(),\n\t\t\treadModelQueries: new Map(),\n\t\t\toutcomes: new Map(),\n\t\t\temittedDiagnostics: new Map(),\n\t\t\temittedRepairRequests: new Map(),\n\t\t\temittedRepairStatuses: new Map(),\n\t\t\temittedRepairDecisionRecordings: new Map(),\n\t\t\temittedReadModels: new Map(),\n\t\t\temittedRepairActionDescriptors: new Map(),\n\t\t}\n\t);\n}\n\ninterface WorkspaceProposalRepairActionIntentGraphState {\n\treadonly intents: Map<\n\t\tstring,\n\t\t{\n\t\t\treadonly intent: WorkspaceProposalRepairActionIntent;\n\t\t\treadonly signature: string;\n\t\t\treadonly conflict: boolean;\n\t\t}\n\t>;\n\treadonly descriptors: Map<string, WorkspaceProposalRepairActionDescriptor>;\n\treadonly requests: Map<string, WorkspaceProposalRepairReviewRequest>;\n\treadonly statuses: Map<string, WorkspaceProposalRepairReviewStatus>;\n\treadonly emittedResults: Map<string, string>;\n\treadonly emittedPreviews: Map<string, string>;\n\treadonly releasedPreviews: Set<string>;\n}\n\ninterface WorkspaceProposalRepairSuccessorReadyRequestPreparationGraphState<TDraft = unknown> {\n\treadonly previews: Map<string, WorkspaceProposalRepairSuccessorProposalIntakePreview>;\n\treadonly inputs: Map<\n\t\tstring,\n\t\tWorkspaceProposalRepairSuccessorProposalReadyRequestPreparationInput<TDraft>\n\t>;\n\treadonly emittedResults: Map<string, string>;\n\treadonly preparedReadyRequests: Map<\n\t\tstring,\n\t\t{\n\t\t\treadonly signature: string;\n\t\t\treadonly compacted: boolean;\n\t\t\treadonly value?: WorkspaceProposalReadyRequest<TDraft>;\n\t\t}\n\t>;\n}\n\nconst workspaceProposalProjectionReleaseTargetKinds = [\n\t\"family-read-model-query\",\n\t\"outcome-detail-supply-request\",\n\t\"repair-action-advisory\",\n\t\"repair-action-intent\",\n\t\"repair-successor-preview\",\n\t\"repair-successor-preparation\",\n] as const satisfies readonly WorkspaceProposalProjectionReleaseTargetKind[];\n\nconst workspaceProposalProjectionReleaseKeys = new Set([\n\t\"kind\",\n\t\"releaseId\",\n\t\"targetKind\",\n\t\"targetId\",\n\t\"sourceRefs\",\n\t\"viewId\",\n\t\"applicationId\",\n\t\"proposalId\",\n\t\"decisionId\",\n\t\"idempotencyKey\",\n\t\"proposalFamily\",\n\t\"queryId\",\n\t\"supplyRequestId\",\n\t\"descriptorId\",\n\t\"repairRequestId\",\n\t\"actionKind\",\n\t\"intentId\",\n\t\"previewId\",\n\t\"preparationId\",\n\t\"audit\",\n\t\"metadata\",\n]);\n\nfunction workspaceProjectionReleaseTargetIdIsWildcard(targetId: string | undefined): boolean {\n\treturn (\n\t\ttargetId === \"*\" ||\n\t\ttargetId === \"all\" ||\n\t\ttargetId === \"workspace\" ||\n\t\ttargetId === \"workspace-wide\" ||\n\t\ttargetId === \"workspace:*\"\n\t);\n}\n\n/**\n * Validate D472 projection release material before a projector treats it as a\n * bounded current-view retention hint.\n */\nexport function isWorkspaceProposalProjectionReleaseMaterial(\n\tvalue: unknown,\n): value is WorkspaceProposalProjectionRelease {\n\treturn workspaceProposalProjectionReleaseIssues(value).length === 0;\n}\n\n/**\n * Validate D472 release material and clone accepted DTOs before projection use.\n *\n * Validation is fail-closed: malformed material is reportable through D473\n * diagnostics but cannot prune current-view state or satisfy policy checks.\n */\nexport function validateWorkspaceProposalProjectionReleaseMaterial(\n\tvalue: unknown,\n): WorkspaceProposalProjectionReleaseValidationResult {\n\tconst issues = workspaceProposalProjectionReleaseIssues(value);\n\tconst record = isRecord(value) ? value : {};\n\tconst targetKind = workspaceProposalProjectionReleaseTargetKinds.includes(\n\t\trecord.targetKind as WorkspaceProposalProjectionReleaseTargetKind,\n\t)\n\t\t? (record.targetKind as WorkspaceProposalProjectionReleaseTargetKind)\n\t\t: undefined;\n\tconst base = {\n\t\tkind: \"workspace-proposal-projection-release-validation-result\" as const,\n\t\treleaseId: stringField(record.releaseId),\n\t\ttargetKind,\n\t\ttargetId: stringField(record.targetId),\n\t\tissues,\n\t\tsourceRefs: safeWorkspaceProposalProjectionReleaseSourceRefs(record),\n\t\taudit: safeWorkspaceProposalProjectionReleaseAudit(record.audit),\n\t};\n\tif (issues.length === 0) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tstatus: \"accepted\",\n\t\t\trelease: immutableClone(value as WorkspaceProposalProjectionRelease),\n\t\t};\n\t}\n\treturn { ...base, status: \"blocked\" };\n}\n\nfunction workspaceProposalProjectionReleaseIssues(\n\tvalue: unknown,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tconst record = isRecord(value) ? value : {};\n\tif (!isRecord(value)) {\n\t\tissues.push(\n\t\t\tprojectionReleaseIssue(\n\t\t\t\t\"malformed-projection-release\",\n\t\t\t\t\"Projection release must be object material.\",\n\t\t\t),\n\t\t);\n\t\treturn issues;\n\t}\n\tfor (const key of Object.keys(record)) {\n\t\tif (workspaceProposalProjectionReleaseKeys.has(key)) continue;\n\t\tissues.push(\n\t\t\tprojectionReleaseIssue(\n\t\t\t\t\"forbidden-projection-release-material\",\n\t\t\t\t\"Projection release must not carry truth, runtime, storage, proof, or private top-level material.\",\n\t\t\t),\n\t\t);\n\t}\n\tconst dataOnlyIssues = workspaceProposalDataOnlyIssues(value, \"projectionRelease\").map(\n\t\tprojectionReleaseDataOnlyIssue,\n\t);\n\tif (dataOnlyIssues.length > 0) {\n\t\treturn dedupeRepairActionIssues([...issues, ...dataOnlyIssues]);\n\t}\n\tif (record.kind !== \"workspace-proposal-projection-release\") {\n\t\tissues.push(\n\t\t\tprojectionReleaseIssue(\"malformed-projection-release\", \"Projection release kind is invalid.\"),\n\t\t);\n\t}\n\tif (stringField(record.releaseId) === undefined) {\n\t\tissues.push(\n\t\t\tprojectionReleaseIssue(\n\t\t\t\t\"malformed-projection-release\",\n\t\t\t\t\"Projection release requires releaseId.\",\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\t!workspaceProposalProjectionReleaseTargetKinds.includes(\n\t\t\trecord.targetKind as WorkspaceProposalProjectionReleaseTargetKind,\n\t\t)\n\t) {\n\t\tissues.push(\n\t\t\tprojectionReleaseIssue(\n\t\t\t\t\"unsupported-projection-release-target\",\n\t\t\t\t\"Projection release targetKind is not a closed Workspace proposal projection target.\",\n\t\t\t),\n\t\t);\n\t}\n\tif (stringField(record.targetId) === undefined) {\n\t\tissues.push(\n\t\t\tprojectionReleaseIssue(\n\t\t\t\t\"malformed-projection-release\",\n\t\t\t\t\"Projection release requires targetId.\",\n\t\t\t),\n\t\t);\n\t} else if (\n\t\tworkspaceProjectionReleaseTargetIdIsWildcard(stringField(record.targetId)?.toLowerCase())\n\t) {\n\t\tissues.push(\n\t\t\tprojectionReleaseIssue(\n\t\t\t\t\"malformed-projection-release\",\n\t\t\t\t\"Projection release target must be concrete, not wildcard or workspace-wide.\",\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\t!repairReviewDecisionSourceRefsAreValid(record.sourceRefs) ||\n\t\t!workspaceProposalBoundarySourceRefsAreSafe(\n\t\t\trecord.sourceRefs as readonly SourceRef[] | undefined,\n\t\t)\n\t) {\n\t\tissues.push(\n\t\t\tprojectionReleaseIssue(\n\t\t\t\t\"malformed-projection-release\",\n\t\t\t\t\"Projection release requires boundary-safe sourceRefs.\",\n\t\t\t),\n\t\t);\n\t}\n\tif (record.audit !== undefined) {\n\t\tconst audit = safeWorkspaceProposalAudit(record.audit);\n\t\tif (audit === undefined || !workspaceProposalBoundarySourceRefsAreSafe(audit.sourceRefs)) {\n\t\t\tissues.push(\n\t\t\t\tprojectionReleaseIssue(\n\t\t\t\t\t\"malformed-projection-release\",\n\t\t\t\t\t\"Projection release audit must be boundary-safe data material.\",\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tfor (const issue of workspaceProposalDataOnlyIssues(record.audit, \"projectionReleaseAudit\")) {\n\t\t\tissues.push(projectionReleaseDataOnlyIssue(issue));\n\t\t}\n\t\tif (\n\t\t\tisRecord((record.audit as { readonly metadata?: unknown }).metadata) &&\n\t\t\tprojectionReleaseMetadataHasRevocationVocabulary(\n\t\t\t\t(record.audit as { readonly metadata: Record<string, unknown> }).metadata,\n\t\t\t)\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\tprojectionReleaseIssue(\n\t\t\t\t\t\"forbidden-projection-release-vocabulary\",\n\t\t\t\t\t\"Projection release audit metadata must not carry revocation, eviction, cache, storage, or proof vocabulary.\",\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tfor (const issue of workspaceProposalDataOnlyIssues(\n\t\trecord.sourceRefs,\n\t\t\"projectionReleaseSourceRefs\",\n\t)) {\n\t\tissues.push(projectionReleaseDataOnlyIssue(issue));\n\t}\n\tif (record.metadata !== undefined) {\n\t\tif (!isRecord(record.metadata)) {\n\t\t\tissues.push(\n\t\t\t\tprojectionReleaseIssue(\n\t\t\t\t\t\"malformed-metadata\",\n\t\t\t\t\t\"Projection release metadata must be bounded object material.\",\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\tfor (const issue of workspaceProposalDataOnlyIssues(\n\t\t\t\trecord.metadata,\n\t\t\t\t\"projectionReleaseMetadata\",\n\t\t\t)) {\n\t\t\t\tissues.push(projectionReleaseDataOnlyIssue(issue));\n\t\t\t}\n\t\t\tif (workspaceProposalBoundaryMetadataSize(record.metadata) > 4096) {\n\t\t\t\tissues.push(\n\t\t\t\t\tprojectionReleaseIssue(\n\t\t\t\t\t\t\"malformed-metadata\",\n\t\t\t\t\t\t\"Projection release metadata exceeds the bounded display limit.\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (projectionReleaseMetadataHasRevocationVocabulary(record.metadata)) {\n\t\t\t\tissues.push(\n\t\t\t\t\tprojectionReleaseIssue(\n\t\t\t\t\t\t\"forbidden-projection-release-vocabulary\",\n\t\t\t\t\t\t\"Projection release metadata must not carry revocation, eviction, cache, storage, or truth-mutation vocabulary.\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tfor (const field of [\n\t\t\"viewId\",\n\t\t\"applicationId\",\n\t\t\"proposalId\",\n\t\t\"decisionId\",\n\t\t\"idempotencyKey\",\n\t\t\"proposalFamily\",\n\t\t\"queryId\",\n\t\t\"supplyRequestId\",\n\t\t\"descriptorId\",\n\t\t\"repairRequestId\",\n\t\t\"intentId\",\n\t\t\"previewId\",\n\t\t\"preparationId\",\n\t] as const) {\n\t\tif (record[field] !== undefined && stringField(record[field]) === undefined) {\n\t\t\tissues.push(\n\t\t\t\tprojectionReleaseIssue(\n\t\t\t\t\t\"malformed-projection-release\",\n\t\t\t\t\t`Projection release optional ${field} must be a nonblank string when present.`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (\n\t\trecord.actionKind !== undefined &&\n\t\t!repairActionKinds.includes(record.actionKind as WorkspaceProposalRepairActionKind)\n\t) {\n\t\tissues.push(\n\t\t\tprojectionReleaseIssue(\n\t\t\t\t\"malformed-projection-release\",\n\t\t\t\t\"Projection release actionKind is not a closed repair action kind.\",\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\trecord.targetKind === \"repair-successor-preview\" &&\n\t\tstringField(record.intentId) === undefined\n\t) {\n\t\tissues.push(\n\t\t\tprojectionReleaseIssue(\n\t\t\t\t\"malformed-projection-release\",\n\t\t\t\t\"Repair successor preview release requires intentId to avoid immediate re-preview.\",\n\t\t\t),\n\t\t);\n\t}\n\tfor (const issue of workspaceProposalProjectionReleaseTargetIdentityIssues(record)) {\n\t\tissues.push(issue);\n\t}\n\treturn dedupeRepairActionIssues(issues);\n}\n\nfunction workspaceProposalProjectionReleaseDiagnosticFromValidation(\n\tvalidation: WorkspaceProposalProjectionReleaseValidationResult,\n): WorkspaceProposalProjectionReleaseDiagnostic {\n\treturn {\n\t\tkind: \"workspace-proposal-projection-release-diagnostic\",\n\t\tdiagnosticId: workspaceProposalProjectionReleaseDiagnosticId(validation),\n\t\treleaseId: validation.releaseId,\n\t\ttargetKind: validation.targetKind,\n\t\ttargetId: validation.targetId,\n\t\tstatus: \"blocked\",\n\t\tissues: validation.issues,\n\t\tsourceRefs: validation.sourceRefs,\n\t\taudit: validation.audit,\n\t};\n}\n\nfunction workspaceProposalProjectionReleaseDiagnosticId(\n\tvalidation: WorkspaceProposalProjectionReleaseValidationResult,\n): string {\n\tconst anchor =\n\t\tvalidation.releaseId ??\n\t\tvalidation.targetId ??\n\t\tvalidation.targetKind ??\n\t\t\"malformed-projection-release\";\n\treturn `workspace-proposal-projection-release-diagnostic:${anchor}:${stableStringify(\n\t\tvalidation.issues.map((issue) => issue.code),\n\t)}`;\n}\n\nfunction safeWorkspaceProposalProjectionReleaseSourceRefs(\n\trecord: Record<string, unknown>,\n): readonly SourceRef[] {\n\treturn repairReviewDecisionSourceRefsAreValid(record.sourceRefs) &&\n\t\tworkspaceProposalBoundarySourceRefsAreSafe(record.sourceRefs as readonly SourceRef[])\n\t\t? (record.sourceRefs as readonly SourceRef[])\n\t\t: [];\n}\n\nfunction safeWorkspaceProposalProjectionReleaseAudit(\n\tvalue: unknown,\n): WorkspaceProposalAuditMaterial | undefined {\n\tconst audit = safeWorkspaceProposalAudit(value);\n\tif (audit === undefined) return undefined;\n\tif (!workspaceProposalBoundarySourceRefsAreSafe(audit.sourceRefs)) return undefined;\n\tif (workspaceProposalDataOnlyIssues(value, \"projectionReleaseAudit\").length > 0) {\n\t\treturn undefined;\n\t}\n\tif (\n\t\tisRecord((value as { readonly metadata?: unknown }).metadata) &&\n\t\tprojectionReleaseMetadataHasRevocationVocabulary(\n\t\t\t(value as { readonly metadata: Record<string, unknown> }).metadata,\n\t\t)\n\t) {\n\t\treturn undefined;\n\t}\n\treturn audit;\n}\n\nfunction workspaceProposalProjectionReleaseTargetIdentityIssues(\n\trecord: Record<string, unknown>,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst targetId = stringField(record.targetId);\n\tif (targetId === undefined) return [];\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tconst mismatch = (message: string): void => {\n\t\tissues.push(projectionReleaseIssue(\"projection-release-coordinate-mismatch\", message));\n\t};\n\tconst conflictsWithAll = (...values: readonly unknown[]): boolean => {\n\t\tconst ids = values\n\t\t\t.map((value) => stringField(value))\n\t\t\t.filter((value): value is string => value !== undefined);\n\t\treturn ids.length > 0 && !ids.includes(targetId);\n\t};\n\tswitch (record.targetKind) {\n\t\tcase \"family-read-model-query\": {\n\t\t\tif (conflictsWithAll(record.viewId, record.queryId)) {\n\t\t\t\tmismatch(\"Read-model release targetId must match viewId or queryId when provided.\");\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"outcome-detail-supply-request\": {\n\t\t\tif (conflictsWithAll(record.viewId, record.supplyRequestId)) {\n\t\t\t\tmismatch(\n\t\t\t\t\t\"Outcome detail supply release targetId must match viewId or supplyRequestId when provided.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"repair-action-intent\": {\n\t\t\tif (conflictsWithAll(record.intentId)) {\n\t\t\t\tmismatch(\"Repair action intent release targetId must match intentId when provided.\");\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"repair-successor-preview\": {\n\t\t\tif (conflictsWithAll(record.previewId)) {\n\t\t\t\tmismatch(\"Repair successor preview release targetId must match previewId when provided.\");\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"repair-successor-preparation\": {\n\t\t\tif (conflictsWithAll(record.preparationId)) {\n\t\t\t\tmismatch(\n\t\t\t\t\t\"Repair successor preparation release targetId must match preparationId when provided.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"repair-action-advisory\": {\n\t\t\tconst descriptorId = stringField(record.descriptorId);\n\t\t\tif (descriptorId === undefined) {\n\t\t\t\tissues.push(\n\t\t\t\t\tprojectionReleaseIssue(\n\t\t\t\t\t\t\"malformed-projection-release\",\n\t\t\t\t\t\t\"Repair advisory release requires descriptorId; request-wide or actionKind-only release is too broad.\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t} else if (!projectionReleaseAdvisoryTargetMatches(record, targetId, descriptorId)) {\n\t\t\t\tmismatch(\n\t\t\t\t\t\"Repair advisory release targetId must match descriptorId or the full advisory key.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn issues;\n}\n\nfunction projectionReleaseAdvisoryTargetMatches(\n\trecord: Record<string, unknown>,\n\ttargetId: string,\n\tdescriptorId: string,\n): boolean {\n\tif (targetId === descriptorId) return true;\n\tconst repairRequestId = stringField(record.repairRequestId);\n\tconst actionKind = repairActionKinds.includes(\n\t\trecord.actionKind as WorkspaceProposalRepairActionKind,\n\t)\n\t\t? (record.actionKind as WorkspaceProposalRepairActionKind)\n\t\t: undefined;\n\treturn (\n\t\trepairRequestId !== undefined &&\n\t\tactionKind !== undefined &&\n\t\ttargetId === repairActionAdvisoryKey({ descriptorId, repairRequestId, actionKind })\n\t);\n}\n\nfunction projectionReleaseIssue(code: string, message: string): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tsource: \"workspace-proposal\",\n\t\tseverity: \"error\",\n\t\tcode,\n\t\tmessage,\n\t};\n}\n\nfunction projectionReleaseDataOnlyIssue(\n\tissue: WorkspaceProposalRecordedIssue,\n): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\t...issue,\n\t\tcode:\n\t\t\tissue.code === \"forbidden-runtime-material\"\n\t\t\t\t? \"forbidden-projection-release-runtime-material\"\n\t\t\t\t: issue.code,\n\t};\n}\n\nfunction projectionReleaseMetadataHasRevocationVocabulary(value: Record<string, unknown>): boolean {\n\tconst forbidden = new Set([\n\t\t\"delete\",\n\t\t\"deleted\",\n\t\t\"deletion\",\n\t\t\"cache\",\n\t\t\"evict\",\n\t\t\"evicted\",\n\t\t\"eviction\",\n\t\t\"lru\",\n\t\t\"proof\",\n\t\t\"revoke\",\n\t\t\"revoked\",\n\t\t\"revocation\",\n\t\t\"storage\",\n\t\t\"storageowner\",\n\t\t\"cacheowner\",\n\t\t\"truthmutation\",\n\t\t\"permissionproof\",\n\t\t\"policyproof\",\n\t]);\n\tconst seen = new WeakSet<object>();\n\tconst visit = (entry: unknown): boolean => {\n\t\tif (typeof entry === \"string\") {\n\t\t\tconst normalized = entry.toLowerCase().replace(/[-_\\s]/g, \"\");\n\t\t\treturn [...forbidden].some((token) => normalized.includes(token));\n\t\t}\n\t\tif (Array.isArray(entry)) return entry.some(visit);\n\t\tif (!isRecord(entry) || seen.has(entry)) return false;\n\t\tseen.add(entry);\n\t\tfor (const [key, child] of Object.entries(entry)) {\n\t\t\tconst normalized = key.toLowerCase().replace(/[-_\\s]/g, \"\");\n\t\t\tif ([...forbidden].some((token) => normalized.includes(token)) || visit(child)) return true;\n\t\t}\n\t\treturn false;\n\t};\n\treturn visit(value);\n}\n\nfunction pruneReadModelQueryRelease(\n\tstate: WorkspaceProposalFamilyApplicationProjectionState,\n\traw: unknown,\n): void {\n\tif (\n\t\t!isWorkspaceProposalProjectionReleaseMaterial(raw) ||\n\t\traw.targetKind !== \"family-read-model-query\"\n\t) {\n\t\treturn;\n\t}\n\tconst currentViewId = raw.viewId ?? raw.queryId ?? raw.targetId;\n\tconst key = stableStringify({ currentViewId });\n\tconst query = state.readModelQueries.get(key);\n\tif (query !== undefined && !projectionReleaseMatchesReadModelQuery(raw, query)) return;\n\tif (query === undefined && projectionReleaseHasWorkspaceCoordinates(raw)) return;\n\tstate.readModelQueries.delete(key);\n\tstate.emittedReadModels.delete(key);\n}\n\nfunction pruneOutcomeDetailSupplyRelease(\n\tstate: {\n\t\treadonly requests: Map<string, WorkspaceProposalFamilyOutcomeDetailSupplyRequest>;\n\t\treadonly emittedResults: Map<string, string>;\n\t},\n\traw: unknown,\n): void {\n\tif (\n\t\t!isWorkspaceProposalProjectionReleaseMaterial(raw) ||\n\t\traw.targetKind !== \"outcome-detail-supply-request\"\n\t) {\n\t\treturn;\n\t}\n\tconst currentViewId = raw.viewId ?? raw.supplyRequestId ?? raw.targetId;\n\tconst key = stableStringify({ currentViewId });\n\tconst request = state.requests.get(key);\n\tif (request !== undefined && !projectionReleaseMatchesSupplyRequest(raw, request)) return;\n\tif (request === undefined && projectionReleaseHasWorkspaceCoordinates(raw)) return;\n\tstate.requests.delete(key);\n\tstate.emittedResults.delete(currentViewId);\n}\n\nfunction pruneRepairActionAdvisoryRelease(\n\tstate: {\n\t\treadonly descriptors: Map<string, WorkspaceProposalRepairActionDescriptor>;\n\t\treadonly emittedAdvisories: Map<string, string>;\n\t},\n\traw: unknown,\n): void {\n\tif (\n\t\t!isWorkspaceProposalProjectionReleaseMaterial(raw) ||\n\t\traw.targetKind !== \"repair-action-advisory\"\n\t) {\n\t\treturn;\n\t}\n\tlet matchedAdvisory = false;\n\tfor (const [descriptorId, descriptor] of state.descriptors) {\n\t\tif (!projectionReleaseMatchesAdvisory(raw, descriptor)) continue;\n\t\tstate.descriptors.delete(descriptorId);\n\t\tstate.emittedAdvisories.delete(repairActionAdvisoryKey(descriptor));\n\t\tmatchedAdvisory = true;\n\t}\n\tif (!matchedAdvisory && projectionReleaseHasWorkspaceCoordinates(raw)) return;\n\tif (\n\t\traw.descriptorId !== undefined &&\n\t\traw.repairRequestId !== undefined &&\n\t\traw.actionKind !== undefined\n\t) {\n\t\tstate.emittedAdvisories.delete(\n\t\t\trepairActionAdvisoryKey({\n\t\t\t\tdescriptorId: raw.descriptorId,\n\t\t\t\trepairRequestId: raw.repairRequestId,\n\t\t\t\tactionKind: raw.actionKind,\n\t\t\t}),\n\t\t);\n\t}\n\tstate.emittedAdvisories.delete(raw.targetId);\n}\n\nfunction pruneRepairActionIntentRelease(\n\tstate: WorkspaceProposalRepairActionIntentGraphState,\n\traw: unknown,\n): void {\n\tif (\n\t\t!isWorkspaceProposalProjectionReleaseMaterial(raw) ||\n\t\traw.targetKind !== \"repair-action-intent\"\n\t) {\n\t\treturn;\n\t}\n\tconst intentId = raw.intentId ?? raw.targetId;\n\tconst entry = state.intents.get(intentId);\n\tif (entry !== undefined && !projectionReleaseMatchesIntent(raw, entry.intent)) return;\n\tif (entry === undefined && projectionReleaseHasWorkspaceCoordinates(raw)) return;\n\tstate.intents.delete(intentId);\n\tstate.emittedResults.delete(intentId);\n}\n\nfunction pruneRepairSuccessorPreviewRelease(\n\tstate: WorkspaceProposalRepairActionIntentGraphState,\n\traw: unknown,\n): void {\n\tif (!isWorkspaceProposalProjectionReleaseMaterial(raw)) return;\n\tif (raw.targetKind === \"repair-action-intent\") {\n\t\tconst intentId = raw.intentId ?? raw.targetId;\n\t\tconst entry = state.intents.get(intentId);\n\t\tif (entry !== undefined && !projectionReleaseMatchesIntent(raw, entry.intent)) return;\n\t\tif (entry === undefined && projectionReleaseHasWorkspaceCoordinates(raw)) return;\n\t\tconst previewId =\n\t\t\tentry === undefined\n\t\t\t\t? (raw.previewId ?? raw.targetId)\n\t\t\t\t: repairSuccessorPreviewIdFromIntent(entry.intent);\n\t\tif (entry !== undefined) state.emittedPreviews.delete(previewId);\n\t\tstate.intents.delete(intentId);\n\t\tstate.emittedResults.delete(intentId);\n\t\tstate.releasedPreviews.delete(previewId);\n\t\treturn;\n\t}\n\tif (raw.targetKind !== \"repair-successor-preview\" || raw.intentId === undefined) return;\n\tconst entry = state.intents.get(raw.intentId);\n\tif (entry !== undefined && !projectionReleaseMatchesIntent(raw, entry.intent)) return;\n\tif (entry === undefined && projectionReleaseHasWorkspaceCoordinates(raw)) return;\n\tif (\n\t\tentry !== undefined &&\n\t\traw.previewId !== undefined &&\n\t\traw.previewId !== repairSuccessorPreviewIdFromIntent(entry.intent)\n\t) {\n\t\treturn;\n\t}\n\tif (entry !== undefined) {\n\t\tstate.emittedPreviews.delete(repairSuccessorPreviewIdFromIntent(entry.intent));\n\t}\n\tconst previewId =\n\t\tentry === undefined\n\t\t\t? (raw.previewId ?? raw.targetId)\n\t\t\t: repairSuccessorPreviewIdFromIntent(entry.intent);\n\tstate.releasedPreviews.add(previewId);\n\tstate.emittedPreviews.delete(previewId);\n}\n\nfunction pruneRepairSuccessorPreparationRelease<TDraft>(\n\tstate: WorkspaceProposalRepairSuccessorReadyRequestPreparationGraphState<TDraft>,\n\traw: unknown,\n): void {\n\tif (\n\t\t!isWorkspaceProposalProjectionReleaseMaterial(raw) ||\n\t\traw.targetKind !== \"repair-successor-preparation\"\n\t) {\n\t\treturn;\n\t}\n\tconst preparationId = raw.preparationId ?? raw.targetId;\n\tconst input = state.inputs.get(preparationId);\n\tif (input !== undefined && !projectionReleaseMatchesPreparationInput(raw, input)) return;\n\tif (input === undefined && projectionReleaseHasWorkspaceCoordinates(raw)) return;\n\tstate.inputs.delete(preparationId);\n\tstate.emittedResults.delete(preparationId);\n\tconst prepared = state.preparedReadyRequests.get(preparationId);\n\tif (prepared !== undefined) {\n\t\tstate.preparedReadyRequests.set(preparationId, {\n\t\t\tsignature: prepared.signature,\n\t\t\tcompacted: true,\n\t\t});\n\t}\n}\n\nfunction projectionReleaseMatchesAdvisory(\n\trelease: WorkspaceProposalProjectionRelease,\n\tdescriptor: WorkspaceProposalRepairActionDescriptor,\n): boolean {\n\tif (!projectionReleaseWorkspaceCoordinatesMatch(release, descriptor)) return false;\n\tif (release.descriptorId === undefined || release.descriptorId !== descriptor.descriptorId) {\n\t\treturn false;\n\t}\n\tif (\n\t\trelease.repairRequestId !== undefined &&\n\t\trelease.repairRequestId !== descriptor.repairRequestId\n\t) {\n\t\treturn false;\n\t}\n\tif (release.actionKind !== undefined && release.actionKind !== descriptor.actionKind) {\n\t\treturn false;\n\t}\n\treturn (\n\t\trelease.targetId === descriptor.descriptorId ||\n\t\trelease.targetId === repairActionAdvisoryKey(descriptor)\n\t);\n}\n\nfunction projectionReleaseMatchesReadModelQuery(\n\trelease: WorkspaceProposalProjectionRelease,\n\tquery: WorkspaceProposalFamilyApplicationReadModelQuery,\n): boolean {\n\tconst currentViewId = query.viewId ?? query.queryId;\n\treturn (\n\t\trelease.targetId === currentViewId &&\n\t\t(release.viewId === undefined || release.viewId === currentViewId) &&\n\t\t(release.queryId === undefined || release.queryId === query.queryId) &&\n\t\tprojectionReleaseWorkspaceCoordinatesMatch(release, query)\n\t);\n}\n\nfunction projectionReleaseMatchesSupplyRequest(\n\trelease: WorkspaceProposalProjectionRelease,\n\trequest: WorkspaceProposalFamilyOutcomeDetailSupplyRequest,\n): boolean {\n\tconst currentViewId = request.viewId ?? request.supplyRequestId;\n\treturn (\n\t\trelease.targetId === currentViewId &&\n\t\t(release.viewId === undefined || release.viewId === currentViewId) &&\n\t\t(release.supplyRequestId === undefined ||\n\t\t\trelease.supplyRequestId === request.supplyRequestId) &&\n\t\tprojectionReleaseWorkspaceCoordinatesMatch(release, request)\n\t);\n}\n\nfunction projectionReleaseMatchesIntent(\n\trelease: WorkspaceProposalProjectionRelease,\n\tintent: WorkspaceProposalRepairActionIntent,\n): boolean {\n\treturn (\n\t\t(release.intentId === undefined || release.intentId === intent.intentId) &&\n\t\t(release.descriptorId === undefined || release.descriptorId === intent.descriptorId) &&\n\t\t(release.repairRequestId === undefined || release.repairRequestId === intent.repairRequestId) &&\n\t\t(release.actionKind === undefined || release.actionKind === intent.actionKind) &&\n\t\tprojectionReleaseWorkspaceCoordinatesMatch(release, intent)\n\t);\n}\n\nfunction projectionReleaseMatchesPreparationInput<TDraft>(\n\trelease: WorkspaceProposalProjectionRelease,\n\tinput: WorkspaceProposalRepairSuccessorProposalReadyRequestPreparationInput<TDraft>,\n): boolean {\n\treturn (\n\t\trelease.targetId === input.preparationId &&\n\t\t(release.preparationId === undefined || release.preparationId === input.preparationId) &&\n\t\t(release.previewId === undefined || release.previewId === input.previewId) &&\n\t\t(release.intentId === undefined || release.intentId === input.intent.intentId) &&\n\t\t(release.descriptorId === undefined ||\n\t\t\trelease.descriptorId === input.descriptor.descriptorId) &&\n\t\t(release.repairRequestId === undefined ||\n\t\t\trelease.repairRequestId === input.request.repairRequestId) &&\n\t\t(release.actionKind === undefined || release.actionKind === input.intent.actionKind) &&\n\t\tprojectionReleaseWorkspaceCoordinatesMatch(release, input.request)\n\t);\n}\n\nfunction projectionReleaseWorkspaceCoordinatesMatch(\n\trelease: WorkspaceProposalProjectionRelease,\n\tvalue: {\n\t\treadonly applicationId?: string;\n\t\treadonly proposalId?: string;\n\t\treadonly decisionId?: string;\n\t\treadonly idempotencyKey?: string;\n\t\treadonly proposalFamily?: WorkspaceProposalFamily;\n\t},\n): boolean {\n\treturn (\n\t\t(release.applicationId === undefined || release.applicationId === value.applicationId) &&\n\t\t(release.proposalId === undefined || release.proposalId === value.proposalId) &&\n\t\t(release.decisionId === undefined || release.decisionId === value.decisionId) &&\n\t\t(release.idempotencyKey === undefined || release.idempotencyKey === value.idempotencyKey) &&\n\t\t(release.proposalFamily === undefined || release.proposalFamily === value.proposalFamily)\n\t);\n}\n\nfunction projectionReleaseHasWorkspaceCoordinates(\n\trelease: WorkspaceProposalProjectionRelease,\n): boolean {\n\treturn (\n\t\trelease.applicationId !== undefined ||\n\t\trelease.proposalId !== undefined ||\n\t\trelease.decisionId !== undefined ||\n\t\trelease.idempotencyKey !== undefined ||\n\t\trelease.proposalFamily !== undefined\n\t);\n}\n\nfunction repairActionAdvisoryKey(\n\tvalue: Pick<\n\t\tWorkspaceProposalRepairActionDescriptor,\n\t\t\"descriptorId\" | \"repairRequestId\" | \"actionKind\"\n\t>,\n): string {\n\treturn stableStringify({\n\t\tdescriptorId: value.descriptorId,\n\t\trepairRequestId: value.repairRequestId,\n\t\tactionKind: value.actionKind,\n\t});\n}\n\nfunction repairSuccessorPreviewIdFromIntent(intent: WorkspaceProposalRepairActionIntent): string {\n\treturn `workspace-proposal-repair-successor-preview:${stableStringify({\n\t\tintentId: intent.intentId,\n\t\tdescriptorId: intent.descriptorId,\n\t\trepairRequestId: intent.repairRequestId,\n\t})}`;\n}\n\nfunction repairActionIntentProjectorDeps(\n\topts:\n\t\t| WorkspaceProposalRepairActionIntentProjectorOptions\n\t\t| WorkspaceProposalRepairSuccessorProposalIntakePreviewProjectorOptions,\n): readonly Node<unknown>[] {\n\tconst deps: Node<unknown>[] = [opts.intents, opts.descriptors, opts.requests];\n\tif (opts.statuses !== undefined) deps.push(opts.statuses);\n\tif (opts.releases !== undefined) deps.push(opts.releases);\n\treturn deps;\n}\n\nfunction repairActionReleaseDepIndex(hasStatuses: boolean): number {\n\treturn hasStatuses ? 4 : 3;\n}\n\nfunction repairActionIntentGraphState(ctx: Ctx): WorkspaceProposalRepairActionIntentGraphState {\n\treturn (\n\t\tctx.state.get<WorkspaceProposalRepairActionIntentGraphState>() ?? {\n\t\t\tintents: new Map(),\n\t\t\tdescriptors: new Map(),\n\t\t\trequests: new Map(),\n\t\t\tstatuses: new Map(),\n\t\t\temittedResults: new Map(),\n\t\t\temittedPreviews: new Map(),\n\t\t\treleasedPreviews: new Set(),\n\t\t}\n\t);\n}\n\nfunction repairSuccessorPreparationGraphState<TDraft>(\n\tctx: Ctx,\n): WorkspaceProposalRepairSuccessorReadyRequestPreparationGraphState<TDraft> {\n\treturn (\n\t\tctx.state.get<WorkspaceProposalRepairSuccessorReadyRequestPreparationGraphState<TDraft>>() ?? {\n\t\t\tpreviews: new Map(),\n\t\t\tinputs: new Map(),\n\t\t\temittedResults: new Map(),\n\t\t\tpreparedReadyRequests: new Map(),\n\t\t}\n\t);\n}\n\nfunction ingestRepairActionIntentGraphFacts(\n\tctx: Ctx,\n\tstate: WorkspaceProposalRepairActionIntentGraphState,\n\thasStatuses: boolean,\n): void {\n\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\tconst intent = raw as WorkspaceProposalRepairActionIntent;\n\t\tconst signature = repairActionIntentSignature(intent);\n\t\tstate.releasedPreviews.delete(repairSuccessorPreviewIdFromIntent(intent));\n\t\tconst existing = state.intents.get(intent.intentId);\n\t\tif (existing === undefined) {\n\t\t\tstate.intents.set(intent.intentId, { intent, signature, conflict: false });\n\t\t} else if (existing.signature !== signature) {\n\t\t\tstate.intents.set(intent.intentId, { ...existing, conflict: true });\n\t\t}\n\t}\n\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\tconst descriptor = raw as WorkspaceProposalRepairActionDescriptor;\n\t\tstate.descriptors.set(descriptor.descriptorId, descriptor);\n\t}\n\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\tconst request = raw as WorkspaceProposalRepairReviewRequest;\n\t\tstate.requests.set(request.repairRequestId, request);\n\t}\n\tif (!hasStatuses) return;\n\tfor (const raw of depBatch(ctx, 3) ?? []) {\n\t\tconst status = raw as WorkspaceProposalRepairReviewStatus;\n\t\tstate.statuses.set(repairReviewStatusProjectionKey(status), status);\n\t}\n}\n\nfunction uniqueIssues(\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst seen = new Set<string>();\n\tconst out: WorkspaceProposalRecordedIssue[] = [];\n\tfor (const issue of issues) {\n\t\tconst key = issueKey(issue);\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tout.push(issue);\n\t}\n\treturn out;\n}\n\nfunction issueKey(issue: WorkspaceProposalRecordedIssue): string {\n\treturn stableStringify({\n\t\tcode: issue.code,\n\t\tsubjectId: issue.subjectId,\n\t\trefs: issue.refs,\n\t\tmetadata: issue.metadata,\n\t\tmessage: issue.message,\n\t});\n}\n\nfunction applicationStatusProjectionKey(status: WorkspaceProposalApplicationStatus): string {\n\treturn stableStringify({\n\t\tkind: status.kind,\n\t\tapplicationId: status.applicationId,\n\t\tproposalId: status.proposalId,\n\t\tdecisionId: status.decisionId,\n\t\tidempotencyKey: status.idempotencyKey,\n\t\tproposalFamily: status.proposalFamily,\n\t});\n}\n\nfunction applicationRecordedProjectionKey(record: WorkspaceProposalApplicationRecorded): string {\n\treturn stableStringify({\n\t\tkind: record.kind,\n\t\tapplicationRecordId: record.applicationRecordId,\n\t\tapplicationId: record.applicationId,\n\t\tproposalId: record.proposalId,\n\t\tdecisionId: record.decisionId,\n\t});\n}\n\nfunction outcomeStatusProjectionKey(status: WorkspaceProposalFamilyOutcomeRecordStatus): string {\n\treturn stableStringify({\n\t\tkind: status.kind,\n\t\toutcomeId: status.outcomeId,\n\t\tapplicationId: status.applicationId,\n\t\tproposalId: status.proposalId,\n\t\tdecisionId: status.decisionId,\n\t\tidempotencyKey: status.idempotencyKey,\n\t\tproposalFamily: status.proposalFamily,\n\t});\n}\n\nfunction outcomeIndexProjectionKey(entry: WorkspaceProposalFamilyOutcomeIndexEntry): string {\n\treturn stableStringify({\n\t\tkind: entry.kind,\n\t\tindexKey: entry.indexKey,\n\t\tapplicationId: entry.applicationId,\n\t\tproposalId: entry.proposalId,\n\t\tdecisionId: entry.decisionId,\n\t\tidempotencyKey: entry.idempotencyKey,\n\t\tproposalFamily: entry.proposalFamily,\n\t});\n}\n\nfunction outcomeProjectionKey(outcome: WorkspaceProposalFamilyOutcomeRecord): string {\n\treturn stableStringify({\n\t\tref: workspaceProposalFamilyOutcomeRef(outcome),\n\t});\n}\n\nfunction repairReviewStatusProjectionKey(status: WorkspaceProposalRepairReviewStatus): string {\n\treturn stableStringify({\n\t\trepairRequestId: status.repairRequestId,\n\t\tapplicationId: status.applicationId,\n\t\tproposalId: status.proposalId,\n\t\tdecisionId: status.decisionId,\n\t\tidempotencyKey: status.idempotencyKey,\n\t\tproposalFamily: status.proposalFamily,\n\t});\n}\n\nfunction repairReviewStatusProjectionKeyFromRequest(\n\trequest: WorkspaceProposalRepairReviewRequest,\n): string {\n\treturn stableStringify({\n\t\trepairRequestId: request.repairRequestId,\n\t\tapplicationId: request.applicationId,\n\t\tproposalId: request.proposalId,\n\t\tdecisionId: request.decisionId,\n\t\tidempotencyKey: request.idempotencyKey,\n\t\tproposalFamily: request.proposalFamily,\n\t});\n}\n\nfunction repairReviewDecisionRecordingInputKey(\n\tinput: WorkspaceProposalRepairReviewDecisionRecordingInput,\n): string {\n\treturn stableStringify({\n\t\treviewDecisionId: stringField(\n\t\t\t(input as { readonly reviewDecisionId?: unknown }).reviewDecisionId,\n\t\t),\n\t\tsignature: repairReviewDecisionRecordingInputSignature(input),\n\t});\n}\n\nfunction readModelQueryProjectionKey(\n\tquery: WorkspaceProposalFamilyApplicationReadModelQuery,\n): string {\n\tconst queryId = stringField((query as { readonly queryId?: unknown }).queryId);\n\tconst viewId = stringField((query as { readonly viewId?: unknown }).viewId);\n\treturn stableStringify({\n\t\tcurrentViewId: viewId ?? queryId,\n\t});\n}\n\nfunction stringField(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim() !== \"\" ? value : undefined;\n}\n\nexport function projectWorkspaceProposalRequiredInputResponseApplication<TValue = unknown>(\n\trecord: WorkspaceProposalRecorded<RequiredInputResponseProposed<TValue>>,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\toptions: WorkspaceProposalRequiredInputResponseApplicationOptions,\n): WorkspaceProposalRequiredInputResponseApplicationResult<TValue> {\n\tconst envelopeIssues = validateWorkspaceProposalApplicationEnvelope(record, decision, {\n\t\texpectedFamily: \"required-input-response\",\n\t});\n\tconst familyIssues = familySpecificEnvelopeIssues(envelopeIssues);\n\tconst draft = record.draft;\n\tconst sourceRefs = applicationSourceRefs(\n\t\trecord,\n\t\tdecision,\n\t\toptions.applicationId,\n\t\toptions.sourceRefs,\n\t\toptions.audit,\n\t);\n\tconst contextIssues = dataOnlyFamilyIssues(record, \"requiredInputApplicationOptions\", options);\n\tconst draftIssues = requiredInputDraftIssues(record, draft, options.gate, options.request);\n\tconst idIssues = applicationIdIssues(record, options.applicationId);\n\tconst issues = [...familyIssues, ...contextIssues, ...idIssues, ...draftIssues];\n\tconst applied =\n\t\tenvelopeIssues.length === 0 &&\n\t\tcontextIssues.length === 0 &&\n\t\tidIssues.length === 0 &&\n\t\tdraftIssues.length === 0 &&\n\t\tdraft !== undefined\n\t\t\t? ({\n\t\t\t\t\tkind: \"required-input-response-applied\",\n\t\t\t\t\tapplicationId: options.applicationId,\n\t\t\t\t\tadmissionId: decision.decisionId,\n\t\t\t\t\tproposalId: record.proposalId,\n\t\t\t\t\trequestId: draft.requestId,\n\t\t\t\t\tworkItemId: draft.workItemId,\n\t\t\t\t\tvalue: draft.value,\n\t\t\t\t\tsummary: draft.summary,\n\t\t\t\t\tsourceRefs,\n\t\t\t\t\tevidenceRefs: draft.evidenceRefs,\n\t\t\t\t\tartifactRefs: draft.artifactRefs,\n\t\t\t\t\tappliedAtMs: options.appliedAtMs,\n\t\t\t\t\tmetadata: familyMetadata(record, decision, options.audit, draft.metadata),\n\t\t\t\t} satisfies RequiredInputResponseApplied<TValue>)\n\t\t\t: undefined;\n\tconst emittedFactRefs =\n\t\tapplied === undefined\n\t\t\t? []\n\t\t\t: [workspaceProposalApplicationFamilyRef(record.proposalFamily, applied, { sourceRefs })];\n\tconst result = projectWorkspaceProposalApplicationStatus(record, decision, {\n\t\tapplicationId: options.applicationId,\n\t\temittedFactRefs,\n\t\tfamilyIssues: issues,\n\t\tsourceRefs,\n\t\taudit: options.audit,\n\t});\n\treturn { ...result, applied };\n}\n\nexport function projectWorkspaceProposalWorkItemSpawnApplication<TInput = unknown>(\n\trecord: WorkspaceProposalRecorded<{\n\t\treadonly kind: \"work-item-spawn-proposed\";\n\t\treadonly proposedWorkItemId?: string;\n\t\treadonly parentWorkItemId?: string;\n\t\treadonly draft: WorkItemDraft<TInput>;\n\t\treadonly proposedBy?: string;\n\t\treadonly idempotencyKey?: string;\n\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\treadonly metadata?: Record<string, unknown>;\n\t}>,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\toptions: WorkspaceProposalWorkItemSpawnApplicationOptions<TInput>,\n): WorkspaceProposalWorkItemSpawnApplicationResult<TInput> {\n\tconst envelopeIssues = validateWorkspaceProposalApplicationEnvelope(record, decision, {\n\t\texpectedFamily: \"work-item-spawn\",\n\t});\n\tconst familyIssues = familySpecificEnvelopeIssues(envelopeIssues);\n\tconst draft = record.draft;\n\tconst sourceRefs = applicationSourceRefs(\n\t\trecord,\n\t\tdecision,\n\t\toptions.applicationId,\n\t\toptions.sourceRefs,\n\t\toptions.audit,\n\t);\n\tconst contextIssues = dataOnlyFamilyIssues(record, \"workItemSpawnApplicationOptions\", options);\n\tconst childWorkItemId =\n\t\ttypeof draft?.proposedWorkItemId === \"string\" ? draft.proposedWorkItemId : \"\";\n\tconst draftIssues = spawnDraftIssues(record, draft, childWorkItemId, options.existingWorkItems);\n\tconst idIssues = applicationIdIssues(record, options.applicationId);\n\tconst issues = [...familyIssues, ...contextIssues, ...idIssues, ...draftIssues];\n\tconst created =\n\t\tenvelopeIssues.length === 0 &&\n\t\tcontextIssues.length === 0 &&\n\t\tidIssues.length === 0 &&\n\t\tdraftIssues.length === 0 &&\n\t\tdraft !== undefined\n\t\t\t? ({\n\t\t\t\t\tkind: \"work-item-created\",\n\t\t\t\t\teventId: `${options.applicationId}:work-item-created:${childWorkItemId}`,\n\t\t\t\t\tworkItemId: childWorkItemId,\n\t\t\t\t\tdraft: draft.draft,\n\t\t\t\t\tauthorId: draft.proposedBy,\n\t\t\t\t\tcreatedAtMs: options.createdAtMs,\n\t\t\t\t\tsourceRefs,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...(draft.metadata ?? {}),\n\t\t\t\t\t\t...familyMetadata(record, decision, options.audit, {\n\t\t\t\t\t\t\tidempotencyKey: draft.idempotencyKey ?? record.idempotencyKey,\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t} satisfies WorkItemCreated<TInput>)\n\t\t\t: undefined;\n\tconst linked =\n\t\tcreated !== undefined &&\n\t\tdraft !== undefined &&\n\t\toptions.linkParent === true &&\n\t\ttypeof draft.parentWorkItemId === \"string\" &&\n\t\tdraft.parentWorkItemId.trim() !== \"\"\n\t\t\t? ({\n\t\t\t\t\tkind: \"work-item-linked\",\n\t\t\t\t\teventId: `${options.applicationId}:work-item-linked:${draft.parentWorkItemId}:${childWorkItemId}`,\n\t\t\t\t\tlinkId: `${draft.parentWorkItemId}:spawned-from:${childWorkItemId}`,\n\t\t\t\t\tfromWorkItemId: childWorkItemId,\n\t\t\t\t\ttoWorkItemId: draft.parentWorkItemId,\n\t\t\t\t\tlinkKind: \"spawned-from\",\n\t\t\t\t\tdirection: \"directed\",\n\t\t\t\t\tsourceRefs,\n\t\t\t\t\tlinkedAtMs: options.linkedAtMs,\n\t\t\t\t\tidempotencyKey: `${record.idempotencyKey}:spawned-from`,\n\t\t\t\t\tmetadata: familyMetadata(record, decision, options.audit),\n\t\t\t\t} satisfies WorkItemLinked)\n\t\t\t: undefined;\n\tconst emittedFactRefs: WorkspaceProposalApplicationFamilyRef[] = [];\n\tif (created !== undefined) {\n\t\temittedFactRefs.push(\n\t\t\tworkspaceProposalApplicationFamilyRef(record.proposalFamily, created, { sourceRefs }),\n\t\t);\n\t}\n\tif (linked !== undefined) {\n\t\temittedFactRefs.push(\n\t\t\tworkspaceProposalApplicationFamilyRef(record.proposalFamily, linked, { sourceRefs }),\n\t\t);\n\t}\n\tconst result = projectWorkspaceProposalApplicationStatus(record, decision, {\n\t\tapplicationId: options.applicationId,\n\t\temittedFactRefs,\n\t\tfamilyIssues: issues,\n\t\tsourceRefs,\n\t\taudit: options.audit,\n\t});\n\treturn { ...result, created, linked };\n}\n\nexport function projectWorkspaceProposalWorkItemLinkApplication<TInput = unknown>(\n\trecord: WorkspaceProposalRecorded<WorkItemLinkProposalDraft>,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\toptions: WorkspaceProposalWorkItemLinkApplicationOptions<TInput>,\n): WorkspaceProposalWorkItemLinkApplicationResult {\n\tconst envelopeIssues = validateWorkspaceProposalApplicationEnvelope(record, decision, {\n\t\texpectedFamily: \"work-item-link\",\n\t});\n\tconst familyIssues = familySpecificEnvelopeIssues(envelopeIssues);\n\tconst draft = record.draft;\n\tconst sourceRefs = applicationSourceRefs(\n\t\trecord,\n\t\tdecision,\n\t\toptions.applicationId,\n\t\toptions.sourceRefs,\n\t\toptions.audit,\n\t);\n\tconst contextIssues = dataOnlyFamilyIssues(record, \"workItemLinkApplicationOptions\", options);\n\tconst draftIssues = linkDraftIssues(record, draft, options.workItems, options.links);\n\tconst idIssues = applicationIdIssues(record, options.applicationId);\n\tconst issues = [...familyIssues, ...contextIssues, ...idIssues, ...draftIssues];\n\tconst action = draft?.action ?? \"link\";\n\tconst linked =\n\t\tenvelopeIssues.length === 0 &&\n\t\tcontextIssues.length === 0 &&\n\t\tidIssues.length === 0 &&\n\t\tdraftIssues.length === 0 &&\n\t\tdraft !== undefined &&\n\t\taction === \"link\"\n\t\t\t? ({\n\t\t\t\t\tkind: \"work-item-linked\",\n\t\t\t\t\teventId: draft.eventId ?? `${options.applicationId}:work-item-linked:${draft.linkId}`,\n\t\t\t\t\tlinkId: draft.linkId,\n\t\t\t\t\tfromWorkItemId: draft.fromWorkItemId ?? \"\",\n\t\t\t\t\ttoWorkItemId: draft.toWorkItemId ?? \"\",\n\t\t\t\t\tlinkKind: draft.linkKind ?? \"\",\n\t\t\t\t\tdirection: draft.direction ?? \"directed\",\n\t\t\t\t\tsourceRefs,\n\t\t\t\t\tlinkedAtMs: options.linkedAtMs,\n\t\t\t\t\tidempotencyKey: record.idempotencyKey,\n\t\t\t\t\tmetadata: familyMetadata(record, decision, options.audit, draft.metadata),\n\t\t\t\t} satisfies WorkItemLinked)\n\t\t\t: undefined;\n\tconst unlinked =\n\t\tenvelopeIssues.length === 0 &&\n\t\tcontextIssues.length === 0 &&\n\t\tidIssues.length === 0 &&\n\t\tdraftIssues.length === 0 &&\n\t\tdraft !== undefined &&\n\t\taction === \"unlink\"\n\t\t\t? ({\n\t\t\t\t\tkind: \"work-item-unlinked\",\n\t\t\t\t\teventId: draft.eventId ?? `${options.applicationId}:work-item-unlinked:${draft.linkId}`,\n\t\t\t\t\tlinkId: draft.linkId,\n\t\t\t\t\treason: draft.reason,\n\t\t\t\t\tsourceRefs,\n\t\t\t\t\tunlinkedAtMs: options.unlinkedAtMs,\n\t\t\t\t\tmetadata: familyMetadata(record, decision, options.audit, draft.metadata),\n\t\t\t\t} satisfies WorkItemUnlinked)\n\t\t\t: undefined;\n\tconst emittedFactRefs: WorkspaceProposalApplicationFamilyRef[] = [];\n\tif (linked !== undefined) {\n\t\temittedFactRefs.push(\n\t\t\tworkspaceProposalApplicationFamilyRef(record.proposalFamily, linked, { sourceRefs }),\n\t\t);\n\t}\n\tif (unlinked !== undefined) {\n\t\temittedFactRefs.push(\n\t\t\tworkspaceProposalApplicationFamilyRef(record.proposalFamily, unlinked, { sourceRefs }),\n\t\t);\n\t}\n\tconst result = projectWorkspaceProposalApplicationStatus(record, decision, {\n\t\tapplicationId: options.applicationId,\n\t\temittedFactRefs,\n\t\tfamilyIssues: issues,\n\t\tsourceRefs,\n\t\taudit: options.audit,\n\t});\n\treturn { ...result, linked, unlinked };\n}\n\nexport function projectWorkspaceProposalDomainActionApplicationStatus(\n\trecord: WorkspaceProposalRecorded,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\toptions: WorkspaceProposalDomainActionApplicationStatusOptions,\n): WorkspaceProposalApplicationResult {\n\tconst envelopeIssues = validateWorkspaceProposalApplicationEnvelope(record, decision, {\n\t\texpectedFamily: \"work-item-domain-action\",\n\t});\n\tconst familyIssues = familySpecificEnvelopeIssues(envelopeIssues);\n\tconst sourceRefs = applicationSourceRefs(\n\t\trecord,\n\t\tdecision,\n\t\toptions.applicationId,\n\t\toptions.sourceRefs,\n\t\toptions.audit,\n\t);\n\tconst contextIssues = dataOnlyFamilyIssues(record, \"domainActionApplicationOptions\", options);\n\tconst idIssues = applicationIdIssues(record, options.applicationId);\n\tconst provenanceIssues =\n\t\tenvelopeIssues.length === 0 && contextIssues.length === 0 && idIssues.length === 0\n\t\t\t? domainActionProvenanceIssues(record, decision, options)\n\t\t\t: [];\n\tconst emittedFactRefs =\n\t\tenvelopeIssues.length === 0 &&\n\t\tcontextIssues.length === 0 &&\n\t\tidIssues.length === 0 &&\n\t\tprovenanceIssues.length === 0\n\t\t\t? options.emittedFacts.map((fact) =>\n\t\t\t\t\tworkspaceProposalApplicationFamilyRef(record.proposalFamily, fact, { sourceRefs }),\n\t\t\t\t)\n\t\t\t: [];\n\tconst applicationRef =\n\t\tenvelopeIssues.length === 0 &&\n\t\tcontextIssues.length === 0 &&\n\t\tidIssues.length === 0 &&\n\t\tprovenanceIssues.length === 0 &&\n\t\toptions.domainApplication !== undefined\n\t\t\t? workspaceProposalApplicationFamilyRef(record.proposalFamily, options.domainApplication, {\n\t\t\t\t\tsourceRefs,\n\t\t\t\t})\n\t\t\t: undefined;\n\treturn projectWorkspaceProposalApplicationStatus(record, decision, {\n\t\tapplicationId: options.applicationId,\n\t\temittedFactRefs:\n\t\t\tapplicationRef === undefined ? emittedFactRefs : [...emittedFactRefs, applicationRef],\n\t\tfamilyIssues: [...familyIssues, ...contextIssues, ...idIssues, ...provenanceIssues],\n\t\tsourceRefs,\n\t\taudit: options.audit,\n\t});\n}\n\nfunction applicationIdIssues(\n\trecord: WorkspaceProposalRecorded,\n\tapplicationId: string,\n): readonly WorkspaceProposalRecordedIssue[] {\n\treturn blank(applicationId)\n\t\t? [\n\t\t\t\tfamilyIssue(\n\t\t\t\t\t\"missing-application-id\",\n\t\t\t\t\t\"Workspace proposal application requires applicationId\",\n\t\t\t\t\trecord,\n\t\t\t\t),\n\t\t\t]\n\t\t: [];\n}\n\nfunction domainActionProvenanceIssues(\n\trecord: WorkspaceProposalRecorded,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\toptions: WorkspaceProposalDomainActionApplicationStatusOptions,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst requiredRefs = [\n\t\t{ kind: \"workspace-proposal-recorded\", id: record.proposalId },\n\t\t{ kind: \"workspace-proposal-admission-decision\", id: decision.decisionId },\n\t\t{ kind: \"workspace-proposal-application-status\", id: options.applicationId },\n\t] as const;\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tconst checkRefs = (\n\t\tlabel: string,\n\t\tid: string,\n\t\tsourceRefs: readonly SourceRef[] | undefined,\n\t\tmetadata: Record<string, unknown> | undefined,\n\t): void => {\n\t\tfor (const required of requiredRefs) {\n\t\t\tif (\n\t\t\t\tsourceRefs?.some(\n\t\t\t\t\t(sourceRef) => sourceRef.kind === required.kind && sourceRef.id === required.id,\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tissues.push(\n\t\t\t\tfamilyIssue(\n\t\t\t\t\t\"missing-family-application-provenance\",\n\t\t\t\t\t`${label} '${id}' must carry D430 Workspace proposal application provenance`,\n\t\t\t\t\trecord,\n\t\t\t\t),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tif (metadata?.applicationIdempotencyKey !== record.idempotencyKey) {\n\t\t\tissues.push(\n\t\t\t\tfamilyIssue(\n\t\t\t\t\t\"missing-family-application-provenance\",\n\t\t\t\t\t`${label} '${id}' must carry D430 idempotency provenance`,\n\t\t\t\t\trecord,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t};\n\tfor (const fact of options.emittedFacts) {\n\t\tcheckRefs(\"WorkItem domain action fact\", fact.eventId, fact.sourceRefs, fact.metadata);\n\t}\n\tif (options.domainApplication !== undefined) {\n\t\tcheckRefs(\n\t\t\t\"WorkItem domain action application\",\n\t\t\toptions.domainApplication.applicationId,\n\t\t\toptions.domainApplication.sourceRefs,\n\t\t\toptions.domainApplication.metadata,\n\t\t);\n\t}\n\treturn issues;\n}\n\ntype WorkspaceProposalFamilyOutcomeOptions =\n\t| WorkspaceProposalRequiredInputResponseOutcomeOptions\n\t| WorkspaceProposalWorkItemSpawnOutcomeOptions\n\t| WorkspaceProposalWorkItemLinkOutcomeOptions\n\t| WorkspaceProposalDomainActionOutcomeOptions;\n\ninterface FamilyOutcomeBuilderResult<TOutcome extends WorkspaceProposalFamilyOutcomeRecord> {\n\treadonly issues: readonly WorkspaceProposalRecordedIssue[];\n\treadonly outcome?: Omit<TOutcome, \"sourceRefs\" | \"audit\" | \"metadata\">;\n\treadonly partial?: boolean;\n}\n\nfunction recordFamilyOutcome<TOutcome extends WorkspaceProposalFamilyOutcomeRecord>(\n\tstatus: WorkspaceProposalApplicationStatus,\n\texpectedFamily: WorkspaceProposalFamily,\n\toptions: WorkspaceProposalFamilyOutcomeOptions,\n\tbuild: () => FamilyOutcomeBuilderResult<TOutcome>,\n): WorkspaceProposalFamilyOutcomeRecordResult<TOutcome> {\n\tconst baseIssues = familyOutcomeBaseIssues(status, expectedFamily, options);\n\tconst built = baseIssues.length === 0 ? build() : { issues: [] };\n\tconst issues = [...baseIssues, ...built.issues];\n\tconst sourceRefs = familyOutcomeSourceRefs(status, options);\n\tconst outcome =\n\t\tissues.length === 0 && built.outcome !== undefined\n\t\t\t? ({\n\t\t\t\t\t...built.outcome,\n\t\t\t\t\tsourceRefs,\n\t\t\t\t\taudit: options.audit ?? status.audit,\n\t\t\t\t\tmetadata: options.metadata,\n\t\t\t\t} as TOutcome)\n\t\t\t: undefined;\n\tconst outcomeRefs = outcome === undefined ? [] : [workspaceProposalFamilyOutcomeRef(outcome)];\n\treturn {\n\t\toutcome,\n\t\tstatus: {\n\t\t\tkind: \"workspace-proposal-family-outcome-record-status\",\n\t\t\toutcomeId: options.outcomeId,\n\t\t\tapplicationId: status.applicationId,\n\t\t\tproposalId: status.proposalId,\n\t\t\tdecisionId: status.decisionId,\n\t\t\tidempotencyKey: status.idempotencyKey,\n\t\t\tproposalFamily: status.proposalFamily,\n\t\t\tstate:\n\t\t\t\tbaseIssues.length > 0\n\t\t\t\t\t? \"not-recorded\"\n\t\t\t\t\t: familyOutcomeRecordState(issues, built.partial === true, outcome, options.horizon),\n\t\t\tcode: issues[0]?.code,\n\t\t\tissues,\n\t\t\toutcomeRefs,\n\t\t\tsourceRefs,\n\t\t\taudit: options.audit ?? status.audit,\n\t\t\tmetadata: options.metadata,\n\t\t},\n\t\tissues,\n\t};\n}\n\nfunction familyOutcomeBaseIssues(\n\tstatus: WorkspaceProposalApplicationStatus,\n\texpectedFamily: WorkspaceProposalFamily,\n\toptions: WorkspaceProposalFamilyOutcomeOptions,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tissues.push(...familyOutcomeDataOnlyIssues(status, \"familyOutcomeApplicationStatus\", status));\n\tissues.push(...familyOutcomeDataOnlyIssues(status, \"familyOutcomeOptions\", options));\n\tif (status.kind !== \"workspace-proposal-application-status\") {\n\t\tissues.push(\n\t\t\tfamilyOutcomeIssue(\n\t\t\t\tstatus,\n\t\t\t\t\"malformed-application-status\",\n\t\t\t\t\"Workspace family outcome requires application status material\",\n\t\t\t),\n\t\t);\n\t}\n\tif (status.state !== \"applied\" && status.state !== \"recorded\") {\n\t\tissues.push(\n\t\t\tfamilyOutcomeIssue(\n\t\t\t\tstatus,\n\t\t\t\t\"application-not-recordable\",\n\t\t\t\t\"Workspace family outcome requires applied application status\",\n\t\t\t),\n\t\t);\n\t}\n\tif (status.issues.length > 0) {\n\t\tissues.push(\n\t\t\tfamilyOutcomeIssue(\n\t\t\t\tstatus,\n\t\t\t\t\"application-status-has-issues\",\n\t\t\t\t\"Workspace family outcome requires issue-free application status\",\n\t\t\t),\n\t\t);\n\t}\n\tif (status.proposalFamily !== expectedFamily) {\n\t\tissues.push(\n\t\t\tfamilyOutcomeIssue(\n\t\t\t\tstatus,\n\t\t\t\t\"unexpected-proposal-family\",\n\t\t\t\t`Workspace family outcome expected '${expectedFamily}' application status`,\n\t\t\t),\n\t\t);\n\t}\n\tif (blank(options.outcomeId)) {\n\t\tissues.push(\n\t\t\tfamilyOutcomeIssue(status, \"missing-required-field\", \"Family outcome requires outcomeId\"),\n\t\t);\n\t}\n\tif (!status.emittedFactRefs.some((ref) => ref.proposalFamily === expectedFamily)) {\n\t\tissues.push(\n\t\t\tfamilyOutcomeIssue(\n\t\t\t\tstatus,\n\t\t\t\t\"missing-family-application-ref\",\n\t\t\t\t\"Family outcome requires matching family application refs\",\n\t\t\t),\n\t\t);\n\t}\n\tif (options.horizon !== undefined) {\n\t\tif (options.horizon.kind !== \"workspace-proposal-family-evidence-horizon\") {\n\t\t\tissues.push(\n\t\t\t\tfamilyOutcomeIssue(\n\t\t\t\t\tstatus,\n\t\t\t\t\t\"malformed-family-evidence-horizon\",\n\t\t\t\t\t\"Evidence horizon is malformed\",\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (options.horizon.applicationId !== status.applicationId) {\n\t\t\tissues.push(\n\t\t\t\tfamilyOutcomeIssue(\n\t\t\t\t\tstatus,\n\t\t\t\t\t\"proposal-target-mismatch\",\n\t\t\t\t\t\"Evidence horizon applicationId does not match application status\",\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (options.policy !== undefined) {\n\t\tif (options.policy.kind !== \"workspace-proposal-family-completion-policy\") {\n\t\t\tissues.push(\n\t\t\t\tfamilyOutcomeIssue(\n\t\t\t\t\tstatus,\n\t\t\t\t\t\"malformed-family-completion-policy\",\n\t\t\t\t\t\"Completion policy is malformed\",\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\toptions.policy.proposalFamily !== undefined &&\n\t\t\toptions.policy.proposalFamily !== expectedFamily\n\t\t) {\n\t\t\tissues.push(\n\t\t\t\tfamilyOutcomeIssue(\n\t\t\t\t\tstatus,\n\t\t\t\t\t\"unexpected-proposal-family\",\n\t\t\t\t\t\"Completion policy proposalFamily does not match family outcome\",\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\treturn issues;\n}\n\nfunction familyOutcomeRecordState(\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n\tpartial: boolean,\n\toutcome: WorkspaceProposalFamilyOutcomeRecord | undefined,\n\thorizon: WorkspaceProposalFamilyEvidenceHorizon | undefined,\n): WorkspaceProposalFamilyOutcomeRecordState {\n\tif (outcome !== undefined) return \"recorded\";\n\tif (partial && issues.length === 0) return \"partial\";\n\tif (issues.length === 0) return \"not-recorded\";\n\treturn horizon?.state === \"closed\" ? \"repair-needed\" : \"pending\";\n}\n\nfunction familyOutcomeCoordinates(\n\tstatus: WorkspaceProposalApplicationStatus,\n\toptions: WorkspaceProposalFamilyOutcomeOptions,\n) {\n\treturn {\n\t\toutcomeId: options.outcomeId,\n\t\tapplicationId: status.applicationId,\n\t\tproposalId: status.proposalId,\n\t\tdecisionId: status.decisionId,\n\t\tidempotencyKey: status.idempotencyKey,\n\t};\n}\n\nfunction familyOutcomeSourceRefs(\n\tstatus: WorkspaceProposalApplicationStatus,\n\toptions: WorkspaceProposalFamilyOutcomeOptions,\n): readonly SourceRef[] {\n\treturn uniqueRefs([\n\t\t{ kind: \"workspace-proposal-application-status\", id: status.applicationId },\n\t\t...status.sourceRefs,\n\t\t...(options.sourceRefs ?? []),\n\t\t...(options.horizon?.sourceRefs ?? []),\n\t\t...(options.policy?.sourceRefs ?? []),\n\t\t...(options.audit?.sourceRefs ?? []),\n\t]);\n}\n\nfunction nonBlankFieldIssue(\n\tstatus: WorkspaceProposalApplicationStatus,\n\tvalue: unknown,\n\tfield: string,\n): readonly WorkspaceProposalRecordedIssue[] {\n\treturn blank(value)\n\t\t? [familyOutcomeIssue(status, \"missing-required-field\", `Family outcome requires ${field}`)]\n\t\t: [];\n}\n\nfunction sourceRefFieldIssue(\n\tstatus: WorkspaceProposalApplicationStatus,\n\tvalue: unknown,\n\tfield: string,\n): readonly WorkspaceProposalRecordedIssue[] {\n\treturn isSourceRef(value)\n\t\t? []\n\t\t: [familyOutcomeIssue(status, \"missing-required-field\", `Family outcome requires ${field}`)];\n}\n\nfunction isSourceRef(value: unknown): value is SourceRef {\n\treturn isRecord(value) && nonBlankString(value.kind) && nonBlankString(value.id);\n}\n\nfunction familyOutcomeDataOnlyIssues(\n\tstatus: WorkspaceProposalApplicationStatus,\n\tlabel: string,\n\tvalue: unknown,\n): readonly WorkspaceProposalRecordedIssue[] {\n\treturn workspaceProposalDataOnlyIssues(value, label).map((entry) => ({\n\t\t...entry,\n\t\tsubjectId: entry.subjectId ?? status.proposalId,\n\t\trefs: entry.refs ?? familyOutcomeIssueRefs(status),\n\t}));\n}\n\nfunction familyOutcomeIssue(\n\tsubject:\n\t\t| WorkspaceProposalApplicationStatus\n\t\t| WorkspaceProposalFamilyOutcomeRecord\n\t\t| Pick<\n\t\t\t\tWorkspaceProposalFamilyOutcomeRecord,\n\t\t\t\t\"applicationId\" | \"proposalId\" | \"decisionId\" | \"idempotencyKey\" | \"sourceRefs\"\n\t\t >,\n\tcode: string,\n\tmessage: string,\n): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tsource: \"workspace-proposal\",\n\t\tseverity: \"error\",\n\t\tcode,\n\t\tmessage,\n\t\tsubjectId: subject.proposalId,\n\t\trefs: familyOutcomeIssueRefs(subject),\n\t};\n}\n\nfunction familyOutcomeIssueRefs(\n\tsubject:\n\t\t| WorkspaceProposalApplicationStatus\n\t\t| WorkspaceProposalFamilyOutcomeRecord\n\t\t| Pick<\n\t\t\t\tWorkspaceProposalFamilyOutcomeRecord,\n\t\t\t\t\"applicationId\" | \"proposalId\" | \"decisionId\" | \"idempotencyKey\" | \"sourceRefs\"\n\t\t >,\n): readonly string[] {\n\treturn [\n\t\t`workspace-proposal-application-status:${subject.applicationId}`,\n\t\t`workspace-proposal-recorded:${subject.proposalId}`,\n\t\t`workspace-proposal-admission-decision:${subject.decisionId}`,\n\t\t...subject.sourceRefs.map((sourceRef) => `${sourceRef.kind}:${sourceRef.id}`),\n\t];\n}\n\nfunction familyOutcomeIndexKey(outcome: WorkspaceProposalFamilyOutcomeRecord): string {\n\treturn `${outcome.applicationId}:${outcome.idempotencyKey}`;\n}\n\nfunction familyOutcomeSignature(outcome: WorkspaceProposalFamilyOutcomeRecord): string {\n\treturn stableStringify({\n\t\tref: workspaceProposalFamilyOutcomeRef(outcome),\n\t\tresult: familyOutcomeResultSignatureMaterial(outcome),\n\t});\n}\n\nfunction familyOutcomeResultSignatureMaterial(\n\toutcome: WorkspaceProposalFamilyOutcomeRecord,\n): unknown {\n\tswitch (outcome.kind) {\n\t\tcase \"workspace-proposal-required-input-response-outcome-recorded\":\n\t\t\treturn {\n\t\t\t\trequiredInputRequestId: outcome.requiredInputRequestId,\n\t\t\t\tresponseRef: outcome.responseRef,\n\t\t\t};\n\t\tcase \"workspace-proposal-work-item-spawn-outcome-recorded\":\n\t\t\treturn { workItemRef: outcome.workItemRef };\n\t\tcase \"workspace-proposal-work-item-link-outcome-recorded\":\n\t\t\treturn { linkRef: outcome.linkRef };\n\t\tcase \"workspace-proposal-domain-action-outcome-recorded\":\n\t\t\treturn { actionRef: outcome.actionRef };\n\t}\n}\n\nfunction dataOnlyFamilyIssues(\n\trecord: WorkspaceProposalRecorded,\n\tlabel: string,\n\tvalue: unknown,\n): readonly WorkspaceProposalRecordedIssue[] {\n\treturn workspaceProposalDataOnlyIssues(value, label).map((entry) => ({\n\t\t...entry,\n\t\tsubjectId: entry.subjectId ?? record.proposalId,\n\t\trefs: entry.refs ?? recordRefs(record),\n\t}));\n}\n\nfunction familySpecificEnvelopeIssues(\n\tissues: readonly WorkspaceProposalRecordedIssue[],\n): readonly WorkspaceProposalRecordedIssue[] {\n\treturn issues.filter((entry) => entry.code === \"unexpected-proposal-family\");\n}\n\nfunction requiredInputDraftIssues<TValue>(\n\trecord: WorkspaceProposalRecorded,\n\tdraft: RequiredInputResponseProposed<TValue> | undefined,\n\tgate: RequiredInputGate,\n\trequest: RequiredInputRequest | undefined,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [\n\t\t...requiredInputDraftShapeIssues(record, draft),\n\t];\n\tif (issues.length > 0) return issues;\n\tconst responseDraft = draft as RequiredInputResponseProposed<TValue>;\n\tif (gate.kind !== \"required-input-gate\") {\n\t\tissues.push(\n\t\t\tfamilyIssue(\"malformed-family-context\", \"Required Input gate is malformed\", record),\n\t\t);\n\t\treturn issues;\n\t}\n\tif (gate.status !== \"requested\" && gate.status !== \"response-proposed\") {\n\t\tissues.push(familyIssue(\"stale-target-ref\", \"Required Input gate is not open\", record));\n\t}\n\tif (gate.requestId !== responseDraft.requestId || gate.workItemId !== responseDraft.workItemId) {\n\t\tissues.push(\n\t\t\tfamilyIssue(\n\t\t\t\t\"proposal-target-mismatch\",\n\t\t\t\t\"Required Input response does not match gate target\",\n\t\t\t\trecord,\n\t\t\t),\n\t\t);\n\t}\n\tif (\n\t\trequest !== undefined &&\n\t\t(request.requestId !== responseDraft.requestId ||\n\t\t\trequest.workItemId !== responseDraft.workItemId)\n\t) {\n\t\tissues.push(\n\t\t\tfamilyIssue(\n\t\t\t\t\"proposal-target-mismatch\",\n\t\t\t\t\"Required Input response does not match request target\",\n\t\t\t\trecord,\n\t\t\t),\n\t\t);\n\t}\n\treturn issues;\n}\n\nfunction requiredInputDraftShapeIssues<TValue>(\n\trecord: WorkspaceProposalRecorded,\n\tdraft: RequiredInputResponseProposed<TValue> | undefined,\n): readonly WorkspaceProposalRecordedIssue[] {\n\treturn !isRecord(draft) || draft.kind !== \"required-input-response-proposed\"\n\t\t? [familyIssue(\"malformed-family-draft\", \"Required Input response draft is malformed\", record)]\n\t\t: [];\n}\n\nfunction spawnDraftIssues<TInput>(\n\trecord: WorkspaceProposalRecorded,\n\tdraft:\n\t\t| {\n\t\t\t\treadonly kind: \"work-item-spawn-proposed\";\n\t\t\t\treadonly proposedWorkItemId?: string;\n\t\t\t\treadonly draft: WorkItemDraft<TInput>;\n\t\t }\n\t\t| undefined,\n\tchildWorkItemId: string,\n\texistingWorkItems: readonly WorkItemProjection<TInput>[] | undefined,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tif (!isRecord(draft) || draft.kind !== \"work-item-spawn-proposed\") {\n\t\tissues.push(familyIssue(\"malformed-family-draft\", \"WorkItem spawn draft is malformed\", record));\n\t\treturn issues;\n\t}\n\tif (childWorkItemId.trim() === \"\") {\n\t\tissues.push(\n\t\t\tfamilyIssue(\"missing-required-field\", \"WorkItem spawn requires proposedWorkItemId\", record),\n\t\t);\n\t\treturn issues;\n\t}\n\tif (existingWorkItems?.some((item) => item.workItemId === childWorkItemId) === true) {\n\t\tissues.push(\n\t\t\tfamilyIssue(\"duplicate-id\", `WorkItem '${childWorkItemId}' already exists`, record),\n\t\t);\n\t}\n\tfor (const issue of validateWorkItemDraft(draft.draft, { workItemId: childWorkItemId })) {\n\t\tissues.push({\n\t\t\tkind: \"issue\",\n\t\t\tsource: \"workspace-proposal\",\n\t\t\tseverity: \"error\",\n\t\t\tcode: issue.code,\n\t\t\tmessage: issue.message,\n\t\t\tsubjectId: record.proposalId,\n\t\t\trefs: recordRefs(record),\n\t\t});\n\t}\n\treturn issues;\n}\n\nfunction linkDraftIssues<TInput>(\n\trecord: WorkspaceProposalRecorded,\n\tdraft: WorkItemLinkProposalDraft | undefined,\n\tworkItems: readonly WorkItemProjection<TInput>[] | undefined,\n\tlinks: readonly WorkItemLinkProjection[] | undefined,\n): readonly WorkspaceProposalRecordedIssue[] {\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tif (!isRecord(draft) || draft.kind !== \"work-item-link-proposal\") {\n\t\tissues.push(familyIssue(\"malformed-family-draft\", \"WorkItem link draft is malformed\", record));\n\t\treturn issues;\n\t}\n\tif (!nonBlankString(draft.linkId)) {\n\t\tissues.push(\n\t\t\tfamilyIssue(\"missing-required-field\", \"WorkItem link proposal requires linkId\", record),\n\t\t);\n\t\treturn issues;\n\t}\n\tif (draft.action !== undefined && draft.action !== \"link\" && draft.action !== \"unlink\") {\n\t\tissues.push(\n\t\t\tfamilyIssue(\n\t\t\t\t\"unsupported-family-action\",\n\t\t\t\t\"WorkItem link proposal action must be link or unlink\",\n\t\t\t\trecord,\n\t\t\t),\n\t\t);\n\t\treturn issues;\n\t}\n\tif ((draft.action ?? \"link\") === \"unlink\") {\n\t\tconst existing = links?.find((link) => link.linkId === draft.linkId);\n\t\tif (existing === undefined || !existing.active) {\n\t\t\tissues.push(\n\t\t\t\tfamilyIssue(\"unknown-target-ref\", \"WorkItem unlink references no active link\", record),\n\t\t\t);\n\t\t}\n\t\treturn issues;\n\t}\n\tif (blank(draft.fromWorkItemId) || blank(draft.toWorkItemId) || blank(draft.linkKind)) {\n\t\tissues.push(\n\t\t\tfamilyIssue(\n\t\t\t\t\"missing-required-field\",\n\t\t\t\t\"WorkItem link proposal requires fromWorkItemId, toWorkItemId, and linkKind\",\n\t\t\t\trecord,\n\t\t\t),\n\t\t);\n\t\treturn issues;\n\t}\n\tif (\n\t\tworkItems !== undefined &&\n\t\t(!workItems.some((item) => item.workItemId === draft.fromWorkItemId) ||\n\t\t\t!workItems.some((item) => item.workItemId === draft.toWorkItemId))\n\t) {\n\t\tissues.push(\n\t\t\tfamilyIssue(\n\t\t\t\t\"unknown-target-ref\",\n\t\t\t\t\"WorkItem link proposal references unknown WorkItem\",\n\t\t\t\trecord,\n\t\t\t),\n\t\t);\n\t}\n\treturn issues;\n}\n\nfunction familyIssue(\n\tcode: string,\n\tmessage: string,\n\trecord: WorkspaceProposalRecorded,\n): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tsource: \"workspace-proposal\",\n\t\tseverity: \"error\",\n\t\tcode,\n\t\tmessage,\n\t\tsubjectId: record.proposalId,\n\t\trefs: recordRefs(record),\n\t};\n}\n\nfunction familyMetadata(\n\trecord: WorkspaceProposalRecorded,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\taudit: WorkspaceProposalAuditMaterial | undefined,\n\tmetadata: Record<string, unknown> = {},\n): Record<string, unknown> {\n\treturn {\n\t\t...metadata,\n\t\tapplicationProposalId: record.proposalId,\n\t\tapplicationDecisionId: decision.decisionId,\n\t\tapplicationIntakeRequestId: record.intakeRequestId,\n\t\tapplicationIdempotencyKey: record.idempotencyKey,\n\t\tapplicationPolicyRefs: record.policyRefs,\n\t\tapplicationAudit: audit ?? record.audit ?? decision.audit,\n\t};\n}\n\nfunction applicationSourceRefs(\n\trecord: WorkspaceProposalRecorded,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\tapplicationId: string,\n\tsourceRefs: readonly SourceRef[] | undefined,\n\taudit: WorkspaceProposalAuditMaterial | undefined,\n): readonly SourceRef[] {\n\treturn uniqueRefs([\n\t\t{ kind: \"workspace-proposal-recorded\", id: record.proposalId },\n\t\t{ kind: \"workspace-proposal-admission-decision\", id: decision.decisionId },\n\t\t{ kind: \"workspace-proposal-application-status\", id: applicationId },\n\t\t...record.sourceRefs,\n\t\t...decision.sourceRefs,\n\t\t...(record.audit?.sourceRefs ?? []),\n\t\t...(decision.audit?.sourceRefs ?? []),\n\t\t...(audit?.sourceRefs ?? []),\n\t\t...(sourceRefs ?? []),\n\t]);\n}\n\nfunction uniqueRefs(sourceRefs: readonly SourceRef[]): readonly SourceRef[] {\n\tconst seen = new Set<string>();\n\tconst out: SourceRef[] = [];\n\tfor (const sourceRef of sourceRefs) {\n\t\tconst key = `${sourceRef.kind}:${sourceRef.id}:${JSON.stringify(sourceRef.metadata ?? {})}`;\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tout.push(sourceRef);\n\t}\n\treturn out;\n}\n\nfunction uniqueStrings(values: readonly string[]): readonly string[] {\n\treturn [...new Set(values)].sort();\n}\n\nfunction recordRefs(record: WorkspaceProposalRecorded): readonly string[] {\n\treturn [\n\t\t`workspace-proposal-recorded:${record.proposalId}`,\n\t\t`workspace-proposal-intake-request:${record.intakeRequestId}`,\n\t\t...record.sourceRefs.map((sourceRef) => `${sourceRef.kind}:${sourceRef.id}`),\n\t];\n}\n\nfunction blank(value: unknown): value is undefined | null | \"\" {\n\treturn typeof value !== \"string\" || value.trim() === \"\";\n}\n\nfunction nonBlankString(value: unknown): value is string {\n\treturn typeof value === \"string\" && value.trim() !== \"\";\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn value !== null && typeof value === \"object\";\n}\n\nfunction isDenseArray(value: readonly unknown[]): boolean {\n\tfor (let index = 0; index < value.length; index += 1) {\n\t\tif (!Object.hasOwn(value, index)) return false;\n\t}\n\treturn true;\n}\n\nfunction familyProjectorState<TInput, TDraft>(\n\tctx: Ctx,\n): WorkspaceProposalFamilyProjectorState<TInput, TDraft> {\n\treturn (\n\t\tctx.state.get<WorkspaceProposalFamilyProjectorState<TInput, TDraft>>() ?? {\n\t\t\trecords: new Map(),\n\t\t\tdecisionsByProposal: new Map(),\n\t\t\tdecisionsById: new Map(),\n\t\t\tcontexts: new Map(),\n\t\t\tgates: new Map(),\n\t\t\trequests: new Map(),\n\t\t\tworkItems: new Map(),\n\t\t\tlinks: new Map(),\n\t\t\temittedDomainFacts: new Map(),\n\t\t\tdomainApplications: new Map(),\n\t\t\tapplicationRefs: new Map(),\n\t\t\tfactOwners: new Map(),\n\t\t\tdurableHandoffDiagnostics: new Set(),\n\t\t}\n\t);\n}\n\nfunction runtimeOptions(name: string, factory: string) {\n\treturn {\n\t\tname: `${name}/runtime`,\n\t\tfactory,\n\t\tpartial: true,\n\t\tcompleteWhenDepsComplete: false,\n\t\terrorWhenDepsError: false,\n\t};\n}\n\nfunction familyBundle(\n\tgraph: Graph,\n\truntime: Node<WorkspaceProposalFamilyApplicationRuntimeFact>,\n\tname: string,\n\tfamilyOutputs: Partial<Record<\"applied\" | \"created\" | \"linked\" | \"unlinked\", string>>,\n): Record<string, Node<unknown>> {\n\tconst out: Record<string, Node<unknown>> = {\n\t\tstatus: project(graph, runtime, `${name}/status`, `${name}Status`, (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.value : undefined,\n\t\t),\n\t\trecorded: project(graph, runtime, `${name}/recorded`, `${name}Recorded`, (fact) =>\n\t\t\tfact.kind === \"recorded\" ? fact.value : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, `${name}Issues`, (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.value : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, `${name}Audit`, (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.value : undefined,\n\t\t),\n\t};\n\tfor (const [key, kind] of Object.entries(familyOutputs)) {\n\t\tout[key] = project(graph, runtime, `${name}/${key}`, `${name}${capitalize(key)}`, (fact) =>\n\t\t\tfact.kind === kind ? fact.value : undefined,\n\t\t);\n\t}\n\treturn out;\n}\n\nfunction ingestRecords<TInput, TDraft>(\n\tctx: Ctx,\n\tstate: WorkspaceProposalFamilyProjectorState<TInput, TDraft>,\n\tdepIndex: number,\n): void {\n\tfor (const raw of depBatch(ctx, depIndex) ?? []) {\n\t\tconst record = raw as WorkspaceProposalRecorded<TDraft>;\n\t\tstate.records.set(record.proposalId, record);\n\t}\n}\n\nfunction ingestDecisions<TInput, TDraft>(\n\tctx: Ctx,\n\tstate: WorkspaceProposalFamilyProjectorState<TInput, TDraft>,\n\tdepIndex: number,\n): void {\n\tfor (const raw of depBatch(ctx, depIndex) ?? []) {\n\t\tconst decision = raw as WorkspaceProposalAdmissionDecision;\n\t\tstate.decisionsByProposal.set(decision.proposalId, decision);\n\t\tstate.decisionsById.set(decision.decisionId, decision);\n\t}\n}\n\nfunction ingestContexts<TInput, TDraft>(\n\tctx: Ctx,\n\tstate: WorkspaceProposalFamilyProjectorState<TInput, TDraft>,\n\tdepIndex: number,\n): void {\n\tfor (const raw of depBatch(ctx, depIndex) ?? []) {\n\t\tconst context = raw as WorkspaceProposalFamilyProjectorState<\n\t\t\tTInput,\n\t\t\tTDraft\n\t\t>[\"contexts\"] extends Map<string, infer TContext>\n\t\t\t? TContext\n\t\t\t: never;\n\t\tstate.contexts.set(context.applicationId, context);\n\t}\n}\n\nfunction ingestWorkItems<TInput, TDraft>(\n\tctx: Ctx,\n\tstate: WorkspaceProposalFamilyProjectorState<TInput, TDraft>,\n\tdepIndex: number,\n): void {\n\tfor (const raw of depBatch(ctx, depIndex) ?? []) {\n\t\tconst workItem = raw as WorkItemProjection<TInput>;\n\t\tstate.workItems.set(workItem.workItemId, workItem);\n\t}\n}\n\nfunction decisionForContext<TInput, TDraft>(\n\tstate: WorkspaceProposalFamilyProjectorState<TInput, TDraft>,\n\tcontext: { readonly proposalId: string; readonly decisionId?: string },\n): WorkspaceProposalAdmissionDecision | undefined {\n\treturn context.decisionId === undefined\n\t\t? state.decisionsByProposal.get(context.proposalId)\n\t\t: state.decisionsById.get(context.decisionId);\n}\n\nfunction requiredInputContextGate<TValue>(\n\tstate: WorkspaceProposalFamilyProjectorState<unknown, RequiredInputResponseProposed<TValue>>,\n\tcontext: WorkspaceProposalRequiredInputResponseApplicationContext,\n\tdraft: RequiredInputResponseProposed<TValue> | undefined,\n): RequiredInputGate | undefined {\n\tif (context.gateId !== undefined) return state.gates.get(context.gateId);\n\tconst requestId = context.requestId ?? draft?.requestId;\n\tconst workItemId = draft?.workItemId;\n\treturn requestId === undefined || workItemId === undefined\n\t\t? undefined\n\t\t: state.gates.get(`${requestId}:${workItemId}`);\n}\n\nfunction requiredInputContextRequest<TValue>(\n\tstate: WorkspaceProposalFamilyProjectorState<unknown, RequiredInputResponseProposed<TValue>>,\n\tcontext: WorkspaceProposalRequiredInputResponseApplicationContext,\n\tdraft: RequiredInputResponseProposed<TValue> | undefined,\n): RequiredInputRequest | undefined {\n\tconst requestId = context.requestId ?? draft?.requestId;\n\tconst workItemId = draft?.workItemId;\n\tif (requestId === undefined) return undefined;\n\treturn workItemId === undefined\n\t\t? state.requests.get(requestId)\n\t\t: (state.requests.get(`${requestId}:${workItemId}`) ?? state.requests.get(requestId));\n}\n\nfunction selectDomainFacts(\n\tstate: WorkspaceProposalFamilyProjectorState,\n\tcontext: WorkspaceProposalDomainActionApplicationContext,\n): {\n\treadonly facts: readonly WorkItemAuthoringFact[];\n\treadonly missingFactIds: readonly string[];\n} {\n\tif (context.emittedFactIds !== undefined) {\n\t\tconst facts: WorkItemAuthoringFact[] = [];\n\t\tconst missingFactIds: string[] = [];\n\t\tfor (const factId of context.emittedFactIds) {\n\t\t\tconst fact = state.emittedDomainFacts.get(factId);\n\t\t\tif (fact === undefined) missingFactIds.push(factId);\n\t\t\telse facts.push(fact);\n\t\t}\n\t\treturn { facts, missingFactIds };\n\t}\n\treturn {\n\t\tfacts: [...state.emittedDomainFacts.values()].filter((fact) =>\n\t\t\tfact.sourceRefs?.some(\n\t\t\t\t(sourceRef) =>\n\t\t\t\t\tsourceRef.kind === \"workspace-proposal-application-status\" &&\n\t\t\t\t\tsourceRef.id === context.applicationId,\n\t\t\t),\n\t\t),\n\t\tmissingFactIds: [],\n\t};\n}\n\nfunction emitApplicationResult<TInput, TDraft>(\n\tctx: Ctx,\n\tstate: WorkspaceProposalFamilyProjectorState<TInput, TDraft>,\n\tresult: WorkspaceProposalApplicationResult,\n\tfamilyFacts: readonly WorkspaceProposalEmittableFamilyFact[],\n): void {\n\tif (result.status.state === \"applied\") {\n\t\tconst priorRefs = state.applicationRefs.get(result.status.applicationId);\n\t\tif (priorRefs !== undefined) {\n\t\t\tif (!sameReplayEntry(priorRefs, result)) {\n\t\t\t\temitApplicationStatusFacts(\n\t\t\t\t\tctx,\n\t\t\t\t\tidempotencyConflictResult(result, \"application-replay-provenance-conflict\"),\n\t\t\t\t\t\"conflict\",\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (\n\t\t\t\trefsSignature(priorRefs.emittedFactRefs) === refsSignature(result.status.emittedFactRefs)\n\t\t\t) {\n\t\t\t\temitApplicationStatusFacts(ctx, result, \"re-referenced\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\temitApplicationStatusFacts(\n\t\t\t\tctx,\n\t\t\t\tidempotencyConflictResult(result, \"application-replay-conflict\"),\n\t\t\t\t\"conflict\",\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tconst duplicateOwner = firstConflictingFactOwner(state, result);\n\t\tif (duplicateOwner !== undefined) {\n\t\t\temitApplicationStatusFacts(\n\t\t\t\tctx,\n\t\t\t\tidempotencyConflictResult(result, `family-fact-owned-by:${duplicateOwner}`),\n\t\t\t\t\"conflict\",\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tfor (const ref of result.status.emittedFactRefs) {\n\t\t\tstate.factOwners.set(factKey(ref), result.status.applicationId);\n\t\t}\n\t\tstate.applicationRefs.set(result.status.applicationId, replayEntry(result));\n\t\tfor (const fact of familyFacts) emitFamilyFact(ctx, fact);\n\t}\n\temitApplicationStatusFacts(ctx, result);\n}\n\nfunction emitApplicationStatusFacts(\n\tctx: Ctx,\n\tresult: WorkspaceProposalApplicationResult,\n\treplayState?: \"re-referenced\" | \"conflict\",\n): void {\n\temitRuntime(ctx, \"status\", result.status);\n\tif (result.recorded !== undefined) emitRuntime(ctx, \"recorded\", result.recorded);\n\tfor (const issue of result.issues) emitRuntime(ctx, \"issue\", issue);\n\temitRuntime(ctx, \"audit\", {\n\t\tkind: \"workspace-proposal-family-application-audit\",\n\t\tauditId: `${result.status.applicationId}:${result.status.state}:audit`,\n\t\tapplicationId: result.status.applicationId,\n\t\tproposalId: result.status.proposalId,\n\t\tdecisionId: result.status.decisionId,\n\t\tproposalFamily: result.status.proposalFamily,\n\t\tstate: result.status.state,\n\t\temittedFactRefs: result.status.emittedFactRefs,\n\t\tsourceRefs: result.status.sourceRefs,\n\t\taudit: result.status.audit,\n\t\tmetadata: replayState === undefined ? undefined : { replayState },\n\t});\n}\n\nfunction emitMissingDurableHandoffDiagnostics<TInput, TDraft>(\n\tctx: Ctx,\n\tstate: WorkspaceProposalFamilyProjectorState<TInput, TDraft>,\n\tcontext: {\n\t\treadonly applicationId: string;\n\t\treadonly proposalId: string;\n\t\treadonly decisionId?: string;\n\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\treadonly audit?: WorkspaceProposalAuditMaterial;\n\t},\n\tproposalFamily: WorkspaceProposalFamily,\n): void {\n\tconst record = state.records.get(context.proposalId);\n\tconst decision = decisionForContext(state, context);\n\tconst issues: WorkspaceProposalRecordedIssue[] = [];\n\tif (record === undefined) {\n\t\tissues.push(\n\t\t\tmissingDurableHandoffIssue(\n\t\t\t\tcontext,\n\t\t\t\t\"missing-workspace-proposal-recorded\",\n\t\t\t\t\"Workspace family application context references a missing durable proposal record\",\n\t\t\t),\n\t\t);\n\t}\n\tif (decision === undefined) {\n\t\tissues.push(\n\t\t\tmissingDurableHandoffIssue(\n\t\t\t\tcontext,\n\t\t\t\t\"missing-workspace-proposal-admission-decision\",\n\t\t\t\t\"Workspace family application context references a missing durable admission decision\",\n\t\t\t),\n\t\t);\n\t}\n\tconst newIssues = issues.filter((issue) => {\n\t\tconst key = durableHandoffDiagnosticKey(context, issue.code);\n\t\tif (state.durableHandoffDiagnostics.has(key)) return false;\n\t\tstate.durableHandoffDiagnostics.add(key);\n\t\treturn true;\n\t});\n\tif (newIssues.length === 0) return;\n\tfor (const issue of newIssues) emitRuntime(ctx, \"issue\", issue);\n\temitRuntime(ctx, \"audit\", {\n\t\tkind: \"workspace-proposal-family-application-audit\",\n\t\tauditId: `${context.applicationId}:missing-durable-handoff:audit`,\n\t\tapplicationId: context.applicationId,\n\t\tproposalId: context.proposalId,\n\t\tdecisionId: context.decisionId,\n\t\tproposalFamily,\n\t\tstate: \"pending\",\n\t\tcode: \"missing-durable-handoff\",\n\t\tissues: newIssues,\n\t\temittedFactRefs: [],\n\t\tsourceRefs: missingDurableHandoffSourceRefs(context),\n\t\taudit: context.audit,\n\t\tmetadata: {\n\t\t\tdiagnostic: \"missing-durable-handoff\",\n\t\t\tmissingRecord: record === undefined,\n\t\t\tmissingDecision: decision === undefined,\n\t\t},\n\t});\n}\n\nfunction missingDurableHandoffIssue(\n\tcontext: {\n\t\treadonly applicationId: string;\n\t\treadonly proposalId: string;\n\t\treadonly decisionId?: string;\n\t\treadonly sourceRefs?: readonly SourceRef[];\n\t},\n\tcode: string,\n\tmessage: string,\n): WorkspaceProposalRecordedIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tsource: \"workspace-proposal\",\n\t\tseverity: \"error\",\n\t\tcode,\n\t\tmessage,\n\t\tsubjectId: context.proposalId,\n\t\trefs: missingDurableHandoffRefs(context),\n\t\tmetadata: {\n\t\t\tapplicationId: context.applicationId,\n\t\t\tproposalId: context.proposalId,\n\t\t\t...(context.decisionId === undefined ? {} : { decisionId: context.decisionId }),\n\t\t},\n\t};\n}\n\nfunction durableHandoffDiagnosticKey(\n\tcontext: {\n\t\treadonly applicationId: string;\n\t\treadonly proposalId: string;\n\t\treadonly decisionId?: string;\n\t},\n\tcode: string,\n): string {\n\treturn `${context.applicationId}:${context.proposalId}:${context.decisionId ?? \"<by-proposal>\"}:${code}`;\n}\n\nfunction missingDurableHandoffRefs(context: {\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n}): readonly string[] {\n\treturn [\n\t\t`workspace-proposal-application-context:${context.applicationId}`,\n\t\t`workspace-proposal-recorded:${context.proposalId}`,\n\t\t...(context.decisionId === undefined\n\t\t\t? []\n\t\t\t: [`workspace-proposal-admission-decision:${context.decisionId}`]),\n\t\t...(context.sourceRefs ?? []).map((sourceRef) => `${sourceRef.kind}:${sourceRef.id}`),\n\t];\n}\n\nfunction missingDurableHandoffSourceRefs(context: {\n\treadonly applicationId: string;\n\treadonly proposalId: string;\n\treadonly decisionId?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n}): readonly SourceRef[] {\n\treturn uniqueRefs([\n\t\t{ kind: \"workspace-proposal-application-context\", id: context.applicationId },\n\t\t{ kind: \"workspace-proposal-recorded\", id: context.proposalId },\n\t\t...(context.decisionId === undefined\n\t\t\t? []\n\t\t\t: [{ kind: \"workspace-proposal-admission-decision\", id: context.decisionId }]),\n\t\t...(context.sourceRefs ?? []),\n\t]);\n}\n\nfunction emitFamilyFact(ctx: Ctx, fact: WorkspaceProposalEmittableFamilyFact): void {\n\temitRuntime(ctx, fact.kind, fact);\n}\n\nfunction emitRuntime<K extends WorkspaceProposalFamilyApplicationRuntimeFact[\"kind\"]>(\n\tctx: Ctx,\n\tkind: K,\n\tvalue: Extract<WorkspaceProposalFamilyApplicationRuntimeFact, { readonly kind: K }>[\"value\"],\n): void {\n\tctx.down([[\"DATA\", { kind, value }]]);\n}\n\ntype WorkspaceProposalEmittableFamilyFact =\n\t| RequiredInputResponseApplied\n\t| WorkItemCreated\n\t| WorkItemLinked\n\t| WorkItemUnlinked;\n\nfunction missingFamilyMaterialResult(\n\trecord: WorkspaceProposalRecorded,\n\tdecision: WorkspaceProposalAdmissionDecision,\n\tcontext: {\n\t\treadonly applicationId: string;\n\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\treadonly audit?: WorkspaceProposalAuditMaterial;\n\t},\n\tcode: string,\n): WorkspaceProposalApplicationResult {\n\tconst generic = projectWorkspaceProposalApplicationStatus(record, decision, {\n\t\tapplicationId: context.applicationId,\n\t\tsourceRefs: context.sourceRefs,\n\t\taudit: context.audit,\n\t});\n\tif (generic.status.state === \"blocked\") return generic;\n\treturn projectWorkspaceProposalApplicationStatus(record, decision, {\n\t\tapplicationId: context.applicationId,\n\t\tfamilyIssues: [\n\t\t\tfamilyIssue(code, \"Workspace proposal family application material is missing\", record),\n\t\t],\n\t\tstate: \"repair-needed\",\n\t\tcode,\n\t\tsourceRefs: context.sourceRefs,\n\t\taudit: context.audit,\n\t});\n}\n\nfunction idempotencyConflictResult(\n\tresult: WorkspaceProposalApplicationResult,\n\treason: string,\n): WorkspaceProposalApplicationResult {\n\tconst issue: WorkspaceProposalRecordedIssue = {\n\t\tkind: \"issue\",\n\t\tsource: \"workspace-proposal\",\n\t\tseverity: \"error\",\n\t\tcode: \"idempotency-conflict\",\n\t\tmessage: \"Workspace proposal family application replay conflicts with prior emitted facts\",\n\t\tsubjectId: result.status.proposalId,\n\t\trefs: result.status.sourceRefs.map((sourceRef) => `${sourceRef.kind}:${sourceRef.id}`),\n\t\tmetadata: { reason },\n\t};\n\treturn {\n\t\tstatus: {\n\t\t\t...result.status,\n\t\t\tstate: \"idempotency-conflict\",\n\t\t\tcode: \"idempotency-conflict\",\n\t\t\tissues: [issue],\n\t\t\temittedFactRefs: [],\n\t\t},\n\t\tissues: [issue],\n\t};\n}\n\nfunction replayEntry(\n\tresult: WorkspaceProposalApplicationResult,\n): WorkspaceProposalApplicationReplayEntry {\n\treturn {\n\t\tproposalId: result.status.proposalId,\n\t\tdecisionId: result.status.decisionId,\n\t\tidempotencyKey: result.status.idempotencyKey,\n\t\temittedFactRefs: immutableClone(result.status.emittedFactRefs),\n\t};\n}\n\nfunction sameReplayEntry(\n\tentry: WorkspaceProposalApplicationReplayEntry,\n\tresult: WorkspaceProposalApplicationResult,\n): boolean {\n\treturn (\n\t\tentry.proposalId === result.status.proposalId &&\n\t\tentry.decisionId === result.status.decisionId &&\n\t\tentry.idempotencyKey === result.status.idempotencyKey\n\t);\n}\n\nfunction firstConflictingFactOwner<TInput, TDraft>(\n\tstate: WorkspaceProposalFamilyProjectorState<TInput, TDraft>,\n\tresult: WorkspaceProposalApplicationResult,\n): string | undefined {\n\tfor (const ref of result.status.emittedFactRefs) {\n\t\tconst owner = state.factOwners.get(factKey(ref));\n\t\tif (owner !== undefined && owner !== result.status.applicationId) return owner;\n\t}\n\treturn undefined;\n}\n\nfunction refsSignature(refs: readonly WorkspaceProposalApplicationFamilyRef[]): string {\n\treturn stableStringify(\n\t\trefs.map((ref) => ({\n\t\t\tproposalFamily: ref.proposalFamily,\n\t\t\tfactKind: ref.factKind,\n\t\t\tfactId: ref.factId,\n\t\t\tsourceRefs: ref.sourceRefs ?? [],\n\t\t})),\n\t);\n}\n\nfunction factKey(ref: WorkspaceProposalApplicationFamilyRef): string {\n\treturn `${ref.proposalFamily}:${ref.factKind}:${ref.factId}`;\n}\n\nfunction capitalize(value: string): string {\n\treturn `${value.slice(0, 1).toUpperCase()}${value.slice(1)}`;\n}\n\nfunction stableStringify(value: unknown, stack: WeakSet<object> = new WeakSet()): string {\n\tif (typeof value === \"object\" && value !== null) {\n\t\tif (stack.has(value)) return JSON.stringify(\"[Circular]\");\n\t\tstack.add(value);\n\t}\n\ttry {\n\t\tif (Array.isArray(value))\n\t\t\treturn `[${value.map((entry) => stableStringify(entry, stack)).join(\",\")}]`;\n\t\tif (!isRecord(value)) return JSON.stringify(value);\n\t\treturn `{${Object.keys(value)\n\t\t\t.sort()\n\t\t\t.map((key) => `${JSON.stringify(key)}:${stableStringify(value[key], stack)}`)\n\t\t\t.join(\",\")}}`;\n\t} finally {\n\t\tif (typeof value === \"object\" && value !== null) stack.delete(value);\n\t}\n}\n","import type { DataIssue } from \"../../data/index.js\";\nimport type { SourceRef } from \"../../orchestration/agent-runtime.js\";\nimport type {\n\tWorkItemCreated,\n\tWorkItemDraft,\n\tWorkItemProjection,\n\tWorkItemSpawnProposed,\n} from \"./scheduling-types.js\";\n\n/**\n * Workspace-facing WorkItem policy effects (D398/D403/D407).\n * These are projection hints, not commands, runtime bindings, or closed enums.\n */\nexport type WorkItemPolicyEffect =\n\t| \"attention-needs-me\"\n\t| \"attention-review\"\n\t| \"attention-waiting\"\n\t| \"attention-recent\"\n\t| \"side-panel-required-input\"\n\t| \"side-panel-context\"\n\t| \"side-panel-debug\"\n\t| \"topology-edge\"\n\t| \"duplicate-suppression\"\n\t| \"navigation-rollup\"\n\t| \"provenance-only\"\n\t| (string & {});\n\n/**\n * Open WorkItem type catalog entry over WorkItemDraft.kind (D398).\n * Default seeds are Task/Spike/Review, but callers may add or rename kinds.\n */\nexport interface WorkItemTypeCatalogEntry {\n\treadonly kind: string;\n\treadonly label: string;\n\treadonly description?: string;\n\treadonly hidden?: boolean;\n\treadonly order?: number;\n\treadonly requiredDraftFields?: readonly string[];\n\treadonly defaultDraft?: Partial<WorkItemDraft>;\n\treadonly projectionEffects?: readonly WorkItemPolicyEffect[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemTypeCatalog {\n\treadonly kind: \"work-item-type-catalog\";\n\treadonly catalogId: string;\n\treadonly entries: readonly WorkItemTypeCatalogEntry[];\n\treadonly defaultKind?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemActionPolicySeed {\n\treadonly kind: \"work-item-action-policy-seed\";\n\treadonly policyId: string;\n\treadonly typeCatalogId?: string;\n\treadonly allowedActionKinds?: readonly string[];\n\treadonly requiresConfirmation?: readonly string[];\n\treadonly requiresActorCapabilities?: readonly string[];\n\treadonly projectionEffects?: readonly WorkItemPolicyEffect[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport const DEFAULT_WORK_ITEM_TYPE_CATALOG_SEED = [\n\t{ kind: \"task\", label: \"Task\", order: 10 },\n\t{ kind: \"spike\", label: \"Spike\", order: 20 },\n\t{ kind: \"review\", label: \"Review\", order: 30 },\n] as const satisfies readonly WorkItemTypeCatalogEntry[];\n\nexport type WorkItemLinkDirection = \"directed\" | \"bidirectional\";\n\n/**\n * Open WorkItem link type catalog entry over WorkItemLinked.linkKind (D402/D403).\n * Projection effects describe display/attention behavior without owning link truth.\n */\nexport interface WorkItemLinkTypeCatalogEntry {\n\treadonly linkKind: string;\n\treadonly label: string;\n\treadonly inverseLabel?: string;\n\treadonly direction?: WorkItemLinkDirection;\n\treadonly hidden?: boolean;\n\treadonly order?: number;\n\treadonly defaultCollapsed?: boolean;\n\treadonly allowedFromKinds?: readonly string[];\n\treadonly allowedToKinds?: readonly string[];\n\treadonly cyclePolicy?: \"allow\" | \"deny\" | \"review\";\n\treadonly projectionEffects?: readonly WorkItemPolicyEffect[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemLinkTypeCatalog {\n\treadonly kind: \"work-item-link-type-catalog\";\n\treadonly catalogId: string;\n\treadonly entries: readonly WorkItemLinkTypeCatalogEntry[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport const DEFAULT_WORK_ITEM_LINK_TYPE_CATALOG_SEED = [\n\t{\n\t\tlinkKind: \"parent-child\",\n\t\tlabel: \"Parent\",\n\t\tinverseLabel: \"Child\",\n\t\tdirection: \"directed\",\n\t\tprojectionEffects: [\"navigation-rollup\", \"side-panel-context\", \"topology-edge\"],\n\t},\n\t{\n\t\tlinkKind: \"blocks\",\n\t\tlabel: \"Blocks\",\n\t\tinverseLabel: \"Blocked by\",\n\t\tdirection: \"directed\",\n\t\tprojectionEffects: [\"attention-waiting\", \"side-panel-context\", \"topology-edge\"],\n\t},\n\t{\n\t\tlinkKind: \"related\",\n\t\tlabel: \"Related\",\n\t\tdirection: \"bidirectional\",\n\t\tprojectionEffects: [\"side-panel-context\"],\n\t},\n\t{\n\t\tlinkKind: \"duplicate\",\n\t\tlabel: \"Duplicate\",\n\t\tinverseLabel: \"Duplicate of\",\n\t\tdirection: \"directed\",\n\t\tprojectionEffects: [\"attention-review\", \"duplicate-suppression\", \"side-panel-context\"],\n\t},\n\t{\n\t\tlinkKind: \"spawned-from\",\n\t\tlabel: \"Spawned from\",\n\t\tdirection: \"directed\",\n\t\tprojectionEffects: [\"provenance-only\", \"side-panel-context\"],\n\t},\n] as const satisfies readonly WorkItemLinkTypeCatalogEntry[];\n\n/**\n * Append-only durable WorkItem relationship fact (D402).\n * Canvas may project this fact but must not directly mutate link truth.\n */\nexport interface WorkItemLinked {\n\treadonly kind: \"work-item-linked\";\n\treadonly eventId: string;\n\treadonly linkId: string;\n\treadonly fromWorkItemId: string;\n\treadonly toWorkItemId: string;\n\treadonly linkKind: string;\n\treadonly direction?: WorkItemLinkDirection;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly linkedAtMs?: number;\n\treadonly idempotencyKey?: string;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemUnlinked {\n\treadonly kind: \"work-item-unlinked\";\n\treadonly eventId: string;\n\treadonly linkId: string;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly unlinkedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemLinkProjection {\n\treadonly linkId: string;\n\treadonly fromWorkItemId: string;\n\treadonly toWorkItemId: string;\n\treadonly linkKind: string;\n\treadonly direction: WorkItemLinkDirection;\n\treadonly active: boolean;\n\treadonly lastEventId: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly issues?: readonly DataIssue[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkItemSpawnAdmissionOutcome = \"admit\" | \"reject\" | \"defer\" | \"merge\" | \"duplicate\";\nexport type WorkItemSpawnAdmissionState =\n\t| \"admitted\"\n\t| \"rejected\"\n\t| \"deferred\"\n\t| \"merged\"\n\t| \"duplicate\";\n\nexport interface WorkItemSpawnAdmissionDecision {\n\treadonly kind: \"work-item-spawn-admission-decision\";\n\treadonly decisionId: string;\n\treadonly admissionId: string;\n\treadonly proposalId: string;\n\treadonly outcome: WorkItemSpawnAdmissionOutcome;\n\treadonly policyId?: string;\n\treadonly targetProposalId?: string;\n\treadonly targetWorkItemId?: string;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly decidedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * Admission result for WorkItemSpawnProposed (D397/D401).\n * This is visible domain material, not direct WorkItem mutation.\n */\nexport interface WorkItemSpawnAdmission {\n\treadonly kind: \"work-item-spawn-admission\";\n\treadonly admissionId: string;\n\treadonly proposalId: string;\n\treadonly state: WorkItemSpawnAdmissionState;\n\treadonly decisionId: string;\n\treadonly proposedWorkItemId?: string;\n\treadonly policyId?: string;\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly admittedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkItemSpawnApplication<TInput = unknown> {\n\treadonly kind: \"work-item-spawn-application\";\n\treadonly applicationId: string;\n\treadonly admissionId: string;\n\treadonly proposalId: string;\n\treadonly state: Exclude<WorkItemSpawnAdmissionState, \"admitted\"> | \"applied\";\n\treadonly created?: WorkItemCreated<TInput>;\n\treadonly linkFacts?: readonly WorkItemLinked[];\n\treadonly issues?: readonly DataIssue[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly appliedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type RequiredInputGateStatus =\n\t| \"requested\"\n\t| \"response-proposed\"\n\t| \"satisfied\"\n\t| \"rejected\"\n\t| \"stale\"\n\t| \"retention-gap\"\n\t| \"mismatched\";\n\nexport interface RequiredInputRequest {\n\treadonly kind: \"required-input-request\";\n\treadonly requestId: string;\n\treadonly workItemId: string;\n\treadonly fieldId?: string;\n\treadonly prompt: string;\n\treadonly schema?: Record<string, unknown>;\n\treadonly reason?: string;\n\treadonly required?: boolean;\n\treadonly authoringRevision?: number;\n\treadonly executionInputRevision?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly evidenceRefs?: readonly SourceRef[];\n\treadonly requestedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\n/**\n * Graph-visible Required Input gate projection (D406).\n * User responses require proposal/admission/application before satisfaction.\n */\nexport interface RequiredInputGate {\n\treadonly kind: \"required-input-gate\";\n\treadonly gateId: string;\n\treadonly requestId: string;\n\treadonly workItemId: string;\n\treadonly status: RequiredInputGateStatus;\n\treadonly fieldId?: string;\n\treadonly prompt: string;\n\treadonly schema?: Record<string, unknown>;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly evidenceRefs?: readonly SourceRef[];\n\treadonly issues?: readonly DataIssue[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface RequiredInputResponseProposed<TValue = unknown> {\n\treadonly kind: \"required-input-response-proposed\";\n\treadonly proposalId: string;\n\treadonly requestId: string;\n\treadonly workItemId: string;\n\treadonly value?: TValue;\n\treadonly summary?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly evidenceRefs?: readonly SourceRef[];\n\treadonly artifactRefs?: readonly SourceRef[];\n\treadonly proposedBy?: string;\n\treadonly proposedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface RequiredInputResponseAdmission {\n\treadonly kind: \"required-input-response-admission\";\n\treadonly admissionId: string;\n\treadonly proposalId: string;\n\treadonly requestId: string;\n\treadonly workItemId: string;\n\treadonly state: \"admitted\" | \"rejected\" | \"deferred\" | \"merged\";\n\treadonly reason?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly admittedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface RequiredInputResponseApplied<TValue = unknown> {\n\treadonly kind: \"required-input-response-applied\";\n\treadonly applicationId: string;\n\treadonly admissionId: string;\n\treadonly proposalId: string;\n\treadonly requestId: string;\n\treadonly workItemId: string;\n\treadonly value?: TValue;\n\treadonly summary?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly evidenceRefs?: readonly SourceRef[];\n\treadonly artifactRefs?: readonly SourceRef[];\n\treadonly appliedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type RecommendedActionTone = \"neutral\" | \"attention\" | \"success\" | \"warning\" | \"danger\";\n\nexport type RecommendedActionLoweringKind =\n\t| \"work-item-spawn-proposed\"\n\t| \"work-item-domain-action-proposal-intake\"\n\t| \"required-input-response-proposed\"\n\t| \"work-item-link-proposal\"\n\t| \"admission-decision-proposal\"\n\t| \"ui-navigation\"\n\t| (string & {});\n\n/**\n * Side Panel recommended action view material (D407).\n * Button handlers lower to intents/proposals; this view is never a command.\n */\nexport interface RecommendedActionView {\n\treadonly kind: \"recommended-action-view\";\n\treadonly actionId: string;\n\treadonly label: string;\n\treadonly description?: string;\n\treadonly tone?: RecommendedActionTone;\n\treadonly priority?: number;\n\treadonly rank?: number;\n\treadonly disabledReason?: string;\n\treadonly confirmationRequired?: boolean;\n\treadonly formSchema?: Record<string, unknown>;\n\treadonly draftSeed?: WorkItemDraft | WorkItemSpawnProposed | RequiredInputResponseProposed;\n\treadonly targetRefs?: readonly SourceRef[];\n\treadonly loweringKind?: RecommendedActionLoweringKind;\n\treadonly loweringHints?: Record<string, unknown>;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface SidePanelActionIntent<TDraft = unknown> {\n\treadonly kind: \"side-panel-action-intent\";\n\treadonly intentId: string;\n\treadonly actionId: string;\n\treadonly loweringKind: RecommendedActionLoweringKind;\n\treadonly workItemId?: string;\n\treadonly draft?: TDraft;\n\treadonly targetRefs?: readonly SourceRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly submittedBy?: string;\n\treadonly submittedAtMs?: number;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkspaceMaterialSectionKind = \"why-evidence\" | \"debug\";\n\nexport interface WorkspaceMaterialSectionRef {\n\treadonly sectionKind: WorkspaceMaterialSectionKind;\n\treadonly label: string;\n\treadonly summary?: string;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly evidenceRefs?: readonly SourceRef[];\n\treadonly artifactRefs?: readonly SourceRef[];\n\treadonly issues?: readonly DataIssue[];\n\treadonly collapsedByDefault?: boolean;\n\treadonly deliberateOpenOnly?: boolean;\n\treadonly dryRunOrFixture?: boolean;\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkspaceFixtureBoundaryKind = \"fixture\" | \"demo\" | \"story\" | \"dev-harness\" | \"test\";\n\n/**\n * Explicit marker for demo/test fixture entrypoints (D408).\n * Production fallback is intentionally impossible in this shape.\n */\nexport interface WorkspaceFixtureBoundary {\n\treadonly kind: \"workspace-fixture-boundary\";\n\treadonly boundaryId: string;\n\treadonly boundaryKind: WorkspaceFixtureBoundaryKind;\n\treadonly label: string;\n\treadonly visibleLabelRequired: true;\n\treadonly productionFallbackAllowed: false;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkspaceWorkItemProjection<TInput = unknown> {\n\treadonly workItem: WorkItemProjection<TInput>;\n\treadonly typeCatalog?: WorkItemTypeCatalog;\n\treadonly links?: readonly WorkItemLinkProjection[];\n\treadonly requiredInput?: readonly RequiredInputGate[];\n\treadonly recommendedActions?: readonly RecommendedActionView[];\n\treadonly materialSections?: readonly WorkspaceMaterialSectionRef[];\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n"],"mappings":"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","names":["refs","issues","issues","decision","issue","isRecord","refs","ref","refs","uniqueRefs","issue","stableStringify","ref","isRecord","dataOnlyIssues","result","signature","preview","blank","nonBlankString","isDenseArray","uniqueStrings","repairRequestId","entry","previewId","recordRefs"]}