@graphrefly/ts 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/README.md +197 -117
  2. package/dist/actions-types-CH-XCU9O.d.cts +657 -0
  3. package/dist/actions-types-w2iPQTkv.d.ts +657 -0
  4. package/dist/adapters/index.cjs +5157 -2951
  5. package/dist/adapters/index.cjs.map +1 -1
  6. package/dist/adapters/index.d.cts +207 -70
  7. package/dist/adapters/index.d.ts +207 -70
  8. package/dist/adapters/index.js +3738 -1688
  9. package/dist/adapters/index.js.map +1 -1
  10. package/dist/adapters/nestjs/microservices.cjs +841 -0
  11. package/dist/adapters/nestjs/microservices.cjs.map +1 -0
  12. package/dist/adapters/nestjs/microservices.d.cts +45 -0
  13. package/dist/adapters/nestjs/microservices.d.ts +45 -0
  14. package/dist/adapters/nestjs/microservices.js +206 -0
  15. package/dist/adapters/nestjs/microservices.js.map +1 -0
  16. package/dist/adapters/nestjs/native.cjs +1391 -0
  17. package/dist/adapters/nestjs/native.cjs.map +1 -0
  18. package/dist/adapters/nestjs/native.d.cts +111 -0
  19. package/dist/adapters/nestjs/native.d.ts +111 -0
  20. package/dist/adapters/nestjs/native.js +577 -0
  21. package/dist/adapters/nestjs/native.js.map +1 -0
  22. package/dist/adapters/nestjs/websockets.cjs +924 -0
  23. package/dist/adapters/nestjs/websockets.cjs.map +1 -0
  24. package/dist/adapters/nestjs/websockets.d.cts +47 -0
  25. package/dist/adapters/nestjs/websockets.d.ts +47 -0
  26. package/dist/adapters/nestjs/websockets.js +286 -0
  27. package/dist/adapters/nestjs/websockets.js.map +1 -0
  28. package/dist/adapters/nestjs.cjs +1085 -0
  29. package/dist/adapters/nestjs.cjs.map +1 -0
  30. package/dist/adapters/nestjs.d.cts +385 -0
  31. package/dist/adapters/nestjs.d.ts +385 -0
  32. package/dist/adapters/nestjs.js +112 -0
  33. package/dist/adapters/nestjs.js.map +1 -0
  34. package/dist/adapters/observe-storage.d.cts +3 -3
  35. package/dist/adapters/observe-storage.d.ts +3 -3
  36. package/dist/adapters/observe-storage.js +4 -4
  37. package/dist/adapters/react.cjs.map +1 -1
  38. package/dist/adapters/react.d.cts +2 -2
  39. package/dist/adapters/react.d.ts +2 -2
  40. package/dist/adapters/react.js +1 -1
  41. package/dist/adapters/solid.cjs.map +1 -1
  42. package/dist/adapters/solid.d.cts +2 -2
  43. package/dist/adapters/solid.d.ts +2 -2
  44. package/dist/adapters/solid.js +1 -1
  45. package/dist/adapters/svelte.cjs.map +1 -1
  46. package/dist/adapters/svelte.d.cts +2 -2
  47. package/dist/adapters/svelte.d.ts +2 -2
  48. package/dist/adapters/svelte.js +1 -1
  49. package/dist/adapters/vue.cjs.map +1 -1
  50. package/dist/adapters/vue.d.cts +2 -2
  51. package/dist/adapters/vue.d.ts +2 -2
  52. package/dist/adapters/vue.js +1 -1
  53. package/dist/{agent-runtime-BesGDZcB.d.ts → agent-runtime-types-core-CKwrBDyi.d.ts} +171 -320
  54. package/dist/{agent-runtime-DZTJ3C-p.d.cts → agent-runtime-types-core-bfl4m0vM.d.cts} +171 -320
  55. package/dist/agent-runtime-types-tool-BLPV3azj.d.cts +695 -0
  56. package/dist/agent-runtime-types-tool-hwqvVqNt.d.ts +695 -0
  57. package/dist/agentic-memory-retention-CLwI76JK.d.ts +14 -0
  58. package/dist/agentic-memory-retention-Cz8GR6ie.d.cts +14 -0
  59. package/dist/{agentic-memory-DfuVZ-lY.d.cts → agentic-memory-types-JDr7MPhh.d.cts} +13 -57
  60. package/dist/{agentic-memory-BmRCvh0d.d.ts → agentic-memory-types-khYJgzKL.d.ts} +13 -57
  61. package/dist/{capability-admission-B0BzqAm5.d.cts → capability-admission-B8RNFyaZ.d.cts} +3 -3
  62. package/dist/{capability-admission-g0mn9hpq.d.ts → capability-admission-Dkw1Xz3r.d.ts} +3 -3
  63. package/dist/chunk-2KUAG2GZ.js +9693 -0
  64. package/dist/chunk-2KUAG2GZ.js.map +1 -0
  65. package/dist/{chunk-CZNV3VXM.js → chunk-3J7UPZL5.js} +11 -11
  66. package/dist/{chunk-HKK2JD7Z.js → chunk-3LYI6ADX.js} +12 -125
  67. package/dist/chunk-3LYI6ADX.js.map +1 -0
  68. package/dist/{chunk-YXMZ2N6J.js → chunk-4M37FH2I.js} +1071 -1025
  69. package/dist/chunk-4M37FH2I.js.map +1 -0
  70. package/dist/{chunk-YDSIVHRR.js → chunk-4NWSNI4K.js} +1598 -1584
  71. package/dist/chunk-4NWSNI4K.js.map +1 -0
  72. package/dist/{chunk-Z2ANQ6JW.js → chunk-4Q77MMJY.js} +2 -2
  73. package/dist/{chunk-SS2A464I.js → chunk-54WPEODM.js} +3 -3
  74. package/dist/chunk-54WPEODM.js.map +1 -0
  75. package/dist/chunk-6E76H4OU.js +132 -0
  76. package/dist/chunk-6E76H4OU.js.map +1 -0
  77. package/dist/chunk-7GOTIIQ7.js +819 -0
  78. package/dist/chunk-7GOTIIQ7.js.map +1 -0
  79. package/dist/{chunk-V7CIJE4B.js → chunk-DKFWDTVY.js} +92 -9
  80. package/dist/chunk-DKFWDTVY.js.map +1 -0
  81. package/dist/{chunk-FBUU43PM.js → chunk-E4QCH32M.js} +448 -446
  82. package/dist/chunk-E4QCH32M.js.map +1 -0
  83. package/dist/{chunk-XKXWK2KP.js → chunk-GXU6WFEJ.js} +1157 -1021
  84. package/dist/chunk-GXU6WFEJ.js.map +1 -0
  85. package/dist/{chunk-K3FXTC3I.js → chunk-HJACH5PU.js} +3 -3
  86. package/dist/{chunk-GTPCOEOZ.js → chunk-IDMLXLLG.js} +3 -3
  87. package/dist/{chunk-DKP56CSW.js → chunk-JKAYLDQV.js} +2 -2
  88. package/dist/{chunk-4VLAQHZI.js → chunk-K7FB3JTD.js} +17 -1
  89. package/dist/chunk-K7FB3JTD.js.map +1 -0
  90. package/dist/{chunk-43BKLFZU.js → chunk-KFURM6FM.js} +10 -10
  91. package/dist/{chunk-H75VXTGT.js → chunk-L6LDXRWE.js} +3 -3
  92. package/dist/{chunk-H75VXTGT.js.map → chunk-L6LDXRWE.js.map} +1 -1
  93. package/dist/chunk-MCOFHMUU.js +4131 -0
  94. package/dist/chunk-MCOFHMUU.js.map +1 -0
  95. package/dist/chunk-MQEQMS7B.js +1009 -0
  96. package/dist/chunk-MQEQMS7B.js.map +1 -0
  97. package/dist/chunk-MTELVIYR.js +1421 -0
  98. package/dist/chunk-MTELVIYR.js.map +1 -0
  99. package/dist/{chunk-3JR3EDB2.js → chunk-NNDIFUKX.js} +121 -115
  100. package/dist/chunk-NNDIFUKX.js.map +1 -0
  101. package/dist/{chunk-2747WN4Y.js → chunk-PUSRRALM.js} +3 -3
  102. package/dist/{chunk-QFY4AFY4.js → chunk-PVC7WDKI.js} +58 -52
  103. package/dist/chunk-PVC7WDKI.js.map +1 -0
  104. package/dist/{chunk-VTHLCFN4.js → chunk-RAHNUYA5.js} +2 -2
  105. package/dist/chunk-TQPCAIQI.js +612 -0
  106. package/dist/chunk-TQPCAIQI.js.map +1 -0
  107. package/dist/{chunk-IXZBUWSP.js → chunk-UEMN5URK.js} +2 -2
  108. package/dist/chunk-WOS7RJYZ.js +1320 -0
  109. package/dist/chunk-WOS7RJYZ.js.map +1 -0
  110. package/dist/{chunk-6PHB5CJS.js → chunk-ZLFRB6FI.js} +2 -2
  111. package/dist/composition/index.cjs +1228 -1076
  112. package/dist/composition/index.cjs.map +1 -1
  113. package/dist/composition/index.d.cts +3 -3
  114. package/dist/composition/index.d.ts +3 -3
  115. package/dist/composition/index.js +4 -4
  116. package/dist/core/index.cjs +1198 -1046
  117. package/dist/core/index.cjs.map +1 -1
  118. package/dist/core/index.d.cts +23 -2
  119. package/dist/core/index.d.ts +23 -2
  120. package/dist/core/index.js +2 -2
  121. package/dist/cqrs/index.d.cts +3 -3
  122. package/dist/cqrs/index.d.ts +3 -3
  123. package/dist/cqrs/messaging.d.cts +4 -4
  124. package/dist/cqrs/messaging.d.ts +4 -4
  125. package/dist/cqrs/work-queue.d.cts +5 -5
  126. package/dist/cqrs/work-queue.d.ts +5 -5
  127. package/dist/data-structures/index.cjs +1226 -1074
  128. package/dist/data-structures/index.cjs.map +1 -1
  129. package/dist/data-structures/index.d.cts +8 -7
  130. package/dist/data-structures/index.d.ts +8 -7
  131. package/dist/data-structures/index.js +6 -5
  132. package/dist/{describe-DYMw_l1C.d.cts → describe-BumQ-3_0.d.cts} +1 -1
  133. package/dist/{describe-BpyJuWkw.d.ts → describe-cYr_Z5zm.d.ts} +1 -1
  134. package/dist/executors/tool-provider-adapters.cjs +3091 -0
  135. package/dist/executors/tool-provider-adapters.cjs.map +1 -0
  136. package/dist/executors/tool-provider-adapters.d.cts +174 -0
  137. package/dist/executors/tool-provider-adapters.d.ts +174 -0
  138. package/dist/executors/tool-provider-adapters.js +1336 -0
  139. package/dist/executors/tool-provider-adapters.js.map +1 -0
  140. package/dist/executors/tool-provider-runtime.cjs +5178 -0
  141. package/dist/executors/tool-provider-runtime.cjs.map +1 -0
  142. package/dist/executors/tool-provider-runtime.d.cts +17 -0
  143. package/dist/executors/tool-provider-runtime.d.ts +17 -0
  144. package/dist/executors/tool-provider-runtime.js +15 -0
  145. package/dist/executors/tool-provider-runtime.js.map +1 -0
  146. package/dist/executors/tool-provider.cjs +6392 -0
  147. package/dist/executors/tool-provider.cjs.map +1 -0
  148. package/dist/executors/tool-provider.d.cts +60 -0
  149. package/dist/executors/tool-provider.d.ts +60 -0
  150. package/dist/executors/tool-provider.js +89 -0
  151. package/dist/executors/tool-provider.js.map +1 -0
  152. package/dist/executors/work-queue.d.cts +6 -6
  153. package/dist/executors/work-queue.d.ts +6 -6
  154. package/dist/graph/index.cjs +1499 -1341
  155. package/dist/graph/index.cjs.map +1 -1
  156. package/dist/graph/index.d.cts +9 -8
  157. package/dist/graph/index.d.ts +9 -8
  158. package/dist/graph/index.js +23 -22
  159. package/dist/{graph-DCEWh4T2.d.cts → graph-C1C-wb0L.d.cts} +266 -137
  160. package/dist/{graph-D-1-SQeC.d.ts → graph-CS0b4V9B.d.ts} +266 -137
  161. package/dist/{index-72VZC0-E.d.cts → index-DLrNopda.d.cts} +151 -10
  162. package/dist/{index-Bmxeu0nK.d.ts → index-DzJni3_6.d.ts} +151 -10
  163. package/dist/index.cjs +3397 -3140
  164. package/dist/index.cjs.map +1 -1
  165. package/dist/index.d.cts +12 -9
  166. package/dist/index.d.ts +12 -9
  167. package/dist/index.js +110 -109
  168. package/dist/inspection/boundary.d.cts +4 -4
  169. package/dist/inspection/boundary.d.ts +4 -4
  170. package/dist/measurements-BWAnochv.d.ts +294 -0
  171. package/dist/measurements-B_gJfD8h.d.cts +294 -0
  172. package/dist/messaging/index.cjs +57 -51
  173. package/dist/messaging/index.cjs.map +1 -1
  174. package/dist/messaging/index.d.cts +11 -276
  175. package/dist/messaging/index.d.ts +11 -276
  176. package/dist/messaging/index.js +1 -1
  177. package/dist/operators/index.cjs +1228 -1076
  178. package/dist/operators/index.cjs.map +1 -1
  179. package/dist/operators/index.d.cts +5 -5
  180. package/dist/operators/index.d.ts +5 -5
  181. package/dist/operators/index.js +5 -5
  182. package/dist/orchestration/index.cjs +8844 -6071
  183. package/dist/orchestration/index.cjs.map +1 -1
  184. package/dist/orchestration/index.d.cts +171 -224
  185. package/dist/orchestration/index.d.ts +171 -224
  186. package/dist/orchestration/index.js +42 -991
  187. package/dist/orchestration/index.js.map +1 -1
  188. package/dist/orchestration/messaging.d.cts +5 -8
  189. package/dist/orchestration/messaging.d.ts +5 -8
  190. package/dist/orchestration/work-queue.cjs +1243 -5
  191. package/dist/orchestration/work-queue.cjs.map +1 -1
  192. package/dist/orchestration/work-queue.d.cts +121 -10
  193. package/dist/orchestration/work-queue.d.ts +121 -10
  194. package/dist/orchestration/work-queue.js +1067 -4
  195. package/dist/orchestration/work-queue.js.map +1 -1
  196. package/dist/patterns/event-flow.cjs +6 -20
  197. package/dist/patterns/event-flow.cjs.map +1 -1
  198. package/dist/patterns/event-flow.d.cts +4 -4
  199. package/dist/patterns/event-flow.d.ts +4 -4
  200. package/dist/patterns/event-flow.js +2 -2
  201. package/dist/patterns/index.cjs +453 -465
  202. package/dist/patterns/index.cjs.map +1 -1
  203. package/dist/patterns/index.d.cts +6 -5
  204. package/dist/patterns/index.d.ts +6 -5
  205. package/dist/patterns/index.js +3 -3
  206. package/dist/process-types-BB7oRhX3.d.cts +200 -0
  207. package/dist/process-types-QNhyoYJ8.d.ts +200 -0
  208. package/dist/{reactive-collection-DNV0-gFi.d.cts → reactive-collection-BYlWvtnp.d.cts} +4 -34
  209. package/dist/{reactive-collection-BAmfrGjd.d.ts → reactive-collection-efOEdGFN.d.ts} +4 -34
  210. package/dist/{reactive-collection-storage-BNEldDyi.d.cts → reactive-collection-storage-BjoLsoiC.d.cts} +5 -5
  211. package/dist/{reactive-collection-storage-YZsAQsWK.d.ts → reactive-collection-storage-DwW6UuK_.d.ts} +5 -5
  212. package/dist/{reactive-map-DRD1LJ2H.d.cts → reactive-map-BHacbIqz.d.cts} +7 -2
  213. package/dist/{reactive-map-EsDiCmJk.d.ts → reactive-map-DN4Jyqnf.d.ts} +7 -2
  214. package/dist/render/index.d.cts +2 -2
  215. package/dist/render/index.d.ts +2 -2
  216. package/dist/scheduled-readiness-BmqXxnzX.d.ts +91 -0
  217. package/dist/scheduled-readiness-CYSw7KDE.d.cts +91 -0
  218. package/dist/semantic-memory-graph-B_LwbM-E.d.cts +30 -0
  219. package/dist/semantic-memory-graph-rsFNNhwn.d.ts +30 -0
  220. package/dist/{semantic-memory-graph-DKuNzuWw.d.cts → semantic-memory-graph-types-Y73bbwVI.d.cts} +2 -28
  221. package/dist/{semantic-memory-graph-uwbwJdhe.d.ts → semantic-memory-graph-types-safmPkuX.d.ts} +2 -28
  222. package/dist/solutions/index.cjs +6353 -6169
  223. package/dist/solutions/index.cjs.map +1 -1
  224. package/dist/solutions/index.d.cts +12 -10
  225. package/dist/solutions/index.d.ts +12 -10
  226. package/dist/solutions/index.js +5 -5
  227. package/dist/solutions/reactive-layout/browser/index.cjs +116 -108
  228. package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -1
  229. package/dist/solutions/reactive-layout/browser/index.d.cts +4 -4
  230. package/dist/solutions/reactive-layout/browser/index.d.ts +4 -4
  231. package/dist/solutions/reactive-layout/browser/index.js +3 -3
  232. package/dist/solutions/reactive-layout/index.cjs +3578 -3350
  233. package/dist/solutions/reactive-layout/index.cjs.map +1 -1
  234. package/dist/solutions/reactive-layout/index.d.cts +32 -576
  235. package/dist/solutions/reactive-layout/index.d.ts +32 -576
  236. package/dist/solutions/reactive-layout/index.js +65 -5
  237. package/dist/solutions/reactive-layout/node-canvas/index.cjs +127 -117
  238. package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -1
  239. package/dist/solutions/reactive-layout/node-canvas/index.d.cts +4 -4
  240. package/dist/solutions/reactive-layout/node-canvas/index.d.ts +4 -4
  241. package/dist/solutions/reactive-layout/node-canvas/index.js +3 -3
  242. package/dist/solutions/reactive-layout/react-native/index.cjs +127 -117
  243. package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -1
  244. package/dist/solutions/reactive-layout/react-native/index.d.cts +4 -4
  245. package/dist/solutions/reactive-layout/react-native/index.d.ts +4 -4
  246. package/dist/solutions/reactive-layout/react-native/index.js +3 -3
  247. package/dist/solutions/reactive-layout/skia/index.cjs +127 -117
  248. package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -1
  249. package/dist/solutions/reactive-layout/skia/index.d.cts +4 -4
  250. package/dist/solutions/reactive-layout/skia/index.d.ts +4 -4
  251. package/dist/solutions/reactive-layout/skia/index.js +3 -3
  252. package/dist/solutions/work-item/actions.cjs +1609 -1428
  253. package/dist/solutions/work-item/actions.cjs.map +1 -1
  254. package/dist/solutions/work-item/actions.d.cts +23 -184
  255. package/dist/solutions/work-item/actions.d.ts +23 -184
  256. package/dist/solutions/work-item/actions.js +1558 -934
  257. package/dist/solutions/work-item/actions.js.map +1 -1
  258. package/dist/solutions/work-item/scheduling.cjs +9181 -1838
  259. package/dist/solutions/work-item/scheduling.cjs.map +1 -1
  260. package/dist/solutions/work-item/scheduling.d.cts +1763 -328
  261. package/dist/solutions/work-item/scheduling.d.ts +1763 -328
  262. package/dist/solutions/work-item/scheduling.js +117 -3
  263. package/dist/solutions/work-item/work-queue.d.cts +7 -7
  264. package/dist/solutions/work-item/work-queue.d.ts +7 -7
  265. package/dist/sources/browser.cjs +1318 -1083
  266. package/dist/sources/browser.cjs.map +1 -1
  267. package/dist/sources/browser.d.cts +22 -6
  268. package/dist/sources/browser.d.ts +22 -6
  269. package/dist/sources/browser.js +4 -4
  270. package/dist/sources/browser.js.map +1 -1
  271. package/dist/sources/index.cjs +1318 -1083
  272. package/dist/sources/index.cjs.map +1 -1
  273. package/dist/sources/index.d.cts +4 -4
  274. package/dist/sources/index.d.ts +4 -4
  275. package/dist/sources/index.js +4 -4
  276. package/dist/sources/node.d.cts +3 -3
  277. package/dist/sources/node.d.ts +3 -3
  278. package/dist/storage/browser.cjs +16 -0
  279. package/dist/storage/browser.cjs.map +1 -1
  280. package/dist/storage/browser.js +3 -3
  281. package/dist/storage/index.cjs +16 -0
  282. package/dist/storage/index.cjs.map +1 -1
  283. package/dist/storage/index.d.cts +5 -4
  284. package/dist/storage/index.d.ts +5 -4
  285. package/dist/storage/index.js +6 -6
  286. package/dist/storage/node.cjs +16 -0
  287. package/dist/storage/node.cjs.map +1 -1
  288. package/dist/storage/node.js +3 -3
  289. package/dist/{store-C-joM4gh.d.ts → store-6_CHF6Ge.d.ts} +1 -1
  290. package/dist/{store-CNJwmT-h.d.cts → store-BljX8RkQ.d.cts} +1 -1
  291. package/dist/types-BAw2QVVE.d.cts +274 -0
  292. package/dist/types-BUbbbh4f.d.cts +34 -0
  293. package/dist/types-CMnzoL54.d.cts +457 -0
  294. package/dist/{types-CcPIn7sy.d.cts → types-CTN3XoMl.d.cts} +57 -108
  295. package/dist/types-CV_ohy5T.d.cts +357 -0
  296. package/dist/{types-BsJvElYZ.d.ts → types-DChxk1vK.d.ts} +57 -108
  297. package/dist/types-DRu7SnLV.d.ts +274 -0
  298. package/dist/types-DeID_FRl.d.ts +34 -0
  299. package/dist/types-IhKH0hGW.d.ts +357 -0
  300. package/dist/types-ePlD2uyT.d.ts +457 -0
  301. package/dist/{work-item-runtime-qaVgsL0T.d.cts → work-item-runtime-types-BTxLskN5.d.cts} +3 -93
  302. package/dist/{work-item-runtime-C3M79vE9.d.ts → work-item-runtime-types-DAsZbb2y.d.ts} +3 -93
  303. package/dist/work-queue/index.cjs +957 -953
  304. package/dist/work-queue/index.cjs.map +1 -1
  305. package/dist/work-queue/index.d.cts +9 -357
  306. package/dist/work-queue/index.d.ts +9 -357
  307. package/dist/work-queue/index.js +957 -953
  308. package/dist/work-queue/index.js.map +1 -1
  309. package/package.json +611 -513
  310. package/dist/chunk-3JR3EDB2.js.map +0 -1
  311. package/dist/chunk-4VLAQHZI.js.map +0 -1
  312. package/dist/chunk-6XAIOL3X.js +0 -2407
  313. package/dist/chunk-6XAIOL3X.js.map +0 -1
  314. package/dist/chunk-FBUU43PM.js.map +0 -1
  315. package/dist/chunk-HKK2JD7Z.js.map +0 -1
  316. package/dist/chunk-PC3BTTBE.js +0 -3217
  317. package/dist/chunk-PC3BTTBE.js.map +0 -1
  318. package/dist/chunk-QFY4AFY4.js.map +0 -1
  319. package/dist/chunk-SS2A464I.js.map +0 -1
  320. package/dist/chunk-V7CIJE4B.js.map +0 -1
  321. package/dist/chunk-XKXWK2KP.js.map +0 -1
  322. package/dist/chunk-YDSIVHRR.js.map +0 -1
  323. package/dist/chunk-YXMZ2N6J.js.map +0 -1
  324. /package/dist/{chunk-CZNV3VXM.js.map → chunk-3J7UPZL5.js.map} +0 -0
  325. /package/dist/{chunk-Z2ANQ6JW.js.map → chunk-4Q77MMJY.js.map} +0 -0
  326. /package/dist/{chunk-K3FXTC3I.js.map → chunk-HJACH5PU.js.map} +0 -0
  327. /package/dist/{chunk-GTPCOEOZ.js.map → chunk-IDMLXLLG.js.map} +0 -0
  328. /package/dist/{chunk-DKP56CSW.js.map → chunk-JKAYLDQV.js.map} +0 -0
  329. /package/dist/{chunk-43BKLFZU.js.map → chunk-KFURM6FM.js.map} +0 -0
  330. /package/dist/{chunk-2747WN4Y.js.map → chunk-PUSRRALM.js.map} +0 -0
  331. /package/dist/{chunk-VTHLCFN4.js.map → chunk-RAHNUYA5.js.map} +0 -0
  332. /package/dist/{chunk-IXZBUWSP.js.map → chunk-UEMN5URK.js.map} +0 -0
  333. /package/dist/{chunk-6PHB5CJS.js.map → chunk-ZLFRB6FI.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orchestration/work-queue.ts"],"sourcesContent":["/**\n * Optional orchestration-over-workQueue recipe (D349/D353).\n *\n * Queue lifecycle remains disposition evidence. This module maps visible\n * ProcessEffectRequest facts to queue commands and maps terminal queue records\n * back to graph-visible orchestration evidence/status/issue facts.\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 { ProcessEffectRequest } from \"../orchestration/index.js\";\nimport type { WorkQueueCommand, WorkQueueRecord } from \"../work-queue/index.js\";\n\nexport interface OrchestrationQueuedEffectPayload<TEffect = unknown> {\n\treadonly kind: \"orchestration-queued-effect\";\n\treadonly effect: ProcessEffectRequest<TEffect>;\n\treadonly idempotencyKey?: string;\n\treadonly sourceRefs?: readonly string[];\n\treadonly policyRefs?: readonly string[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface OrchestrationQueueEvidence {\n\treadonly kind: \"orchestration-queue-evidence\";\n\treadonly evidenceId: string;\n\treadonly effectId: string;\n\treadonly effectType: string;\n\treadonly workId: string;\n\treadonly queueRecordKind: WorkQueueRecord[\"kind\"];\n\treadonly result?: unknown;\n\treadonly error?: unknown;\n\treadonly recordedAtMs: number;\n}\n\nexport interface OrchestrationQueueStatus {\n\treadonly kind: \"orchestration-queue-status\";\n\treadonly state: \"evidence-recorded\" | \"mapping-issue\";\n\treadonly effectId?: string;\n\treadonly effectType?: string;\n\treadonly workId?: string;\n\treadonly queueRecordKind?: WorkQueueRecord[\"kind\"];\n\treadonly evidenceId?: string;\n\treadonly issues?: readonly DataIssue[];\n}\n\nexport interface OrchestrationQueueAuditRecord {\n\treadonly kind: \"orchestration-queue-audit\";\n\treadonly seq: number;\n\treadonly outcome: \"mapped\" | \"issue\";\n\treadonly effectId?: string;\n\treadonly effectType?: string;\n\treadonly workId?: string;\n\treadonly queueRecordKind?: WorkQueueRecord[\"kind\"];\n\treadonly evidenceId?: string;\n}\n\nexport interface OrchestrationWorkQueueRecipeOptions<TEffect = unknown> {\n\treadonly name?: string;\n\treadonly effectRequests?: Node<ProcessEffectRequest<TEffect>>;\n\treadonly records: Node<WorkQueueRecord<OrchestrationQueuedEffectPayload<TEffect>>>;\n}\n\nexport interface OrchestrationWorkQueueRecipeBundle<TEffect = unknown> {\n\treadonly submitCommands?: Node<WorkQueueCommand<OrchestrationQueuedEffectPayload<TEffect>>>;\n\treadonly evidence: Node<OrchestrationQueueEvidence>;\n\treadonly status: Node<OrchestrationQueueStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<OrchestrationQueueAuditRecord>;\n}\n\ntype OrchestrationQueueFact =\n\t| { readonly kind: \"evidence\"; readonly evidence: OrchestrationQueueEvidence }\n\t| { readonly kind: \"status\"; readonly status: OrchestrationQueueStatus }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: OrchestrationQueueAuditRecord };\n\ninterface QueueState<TEffect> {\n\treadonly payloads: Map<string, OrchestrationQueuedEffectPayload<TEffect>>;\n\treadonly terminalRecords: Set<string>;\n\tauditSeq: number;\n}\n\n/** Build the optional D349 orchestration workQueue recipe. */\nexport function orchestrationWorkQueueRecipe<TEffect = unknown>(\n\tgraph: Graph,\n\topts: OrchestrationWorkQueueRecipeOptions<TEffect>,\n): OrchestrationWorkQueueRecipeBundle<TEffect> {\n\tconst name = opts.name ?? \"orchestrationWorkQueue\";\n\tconst submitCommands =\n\t\topts.effectRequests === undefined\n\t\t\t? undefined\n\t\t\t: graph.node<WorkQueueCommand<OrchestrationQueuedEffectPayload<TEffect>>>(\n\t\t\t\t\t[opts.effectRequests],\n\t\t\t\t\t(ctx) => {\n\t\t\t\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\t\t\t\tctx.down([\n\t\t\t\t\t\t\t\t[\"DATA\", processEffectSubmitCommand(raw as ProcessEffectRequest<TEffect>)],\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: `${name}/submitCommands`,\n\t\t\t\t\t\tfactory: \"orchestrationWorkQueueSubmitCommands\",\n\t\t\t\t\t\tcompleteWhenDepsComplete: false,\n\t\t\t\t\t\terrorWhenDepsError: false,\n\t\t\t\t\t},\n\t\t\t\t);\n\tconst runtime = graph.node<OrchestrationQueueFact>(\n\t\t[opts.records],\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<QueueState<TEffect>>() ?? {\n\t\t\t\tpayloads: new Map(),\n\t\t\t\tterminalRecords: new Set(),\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\treduceRecord(ctx, state, raw as WorkQueueRecord<OrchestrationQueuedEffectPayload<TEffect>>);\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: \"orchestrationWorkQueueRuntime\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\t...(submitCommands === undefined ? {} : { submitCommands }),\n\t\tevidence: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/evidence`,\n\t\t\t\"orchestrationWorkQueueEvidence\",\n\t\t\t(fact) => (fact.kind === \"evidence\" ? fact.evidence : undefined),\n\t\t),\n\t\tstatus: project(graph, runtime, `${name}/status`, \"orchestrationWorkQueueStatus\", (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.status : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, \"orchestrationWorkQueueIssues\", (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.issue : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"orchestrationWorkQueueAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.audit : undefined,\n\t\t),\n\t};\n}\n\nexport function processEffectSubmitCommand<TEffect>(\n\teffect: ProcessEffectRequest<TEffect>,\n\topts: {\n\t\treadonly workId?: string;\n\t\treadonly commandId?: string;\n\t\treadonly idempotencyKey?: string;\n\t\treadonly sourceRefs?: readonly string[];\n\t\treadonly policyRefs?: readonly string[];\n\t\treadonly metadata?: Record<string, unknown>;\n\t} = {},\n): WorkQueueCommand<OrchestrationQueuedEffectPayload<TEffect>> {\n\tconst payload: OrchestrationQueuedEffectPayload<TEffect> = {\n\t\tkind: \"orchestration-queued-effect\",\n\t\teffect,\n\t\tidempotencyKey: opts.idempotencyKey ?? effect.id,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tpolicyRefs: opts.policyRefs,\n\t\tmetadata: opts.metadata,\n\t};\n\treturn {\n\t\tkind: \"submit\",\n\t\tcommandId: opts.commandId ?? `${effect.id}:orchestration-work-queue-submit`,\n\t\tworkId: opts.workId ?? `process-effect:${effect.id}`,\n\t\tpayload,\n\t\tidempotencyKey: opts.idempotencyKey ?? effect.id,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tpolicyRefs: opts.policyRefs,\n\t};\n}\n\nfunction reduceRecord<TEffect>(\n\tctx: Ctx,\n\tstate: QueueState<TEffect>,\n\trecord: WorkQueueRecord<OrchestrationQueuedEffectPayload<TEffect>>,\n): void {\n\tif (record.kind === \"work-admitted\") {\n\t\tif (isQueuedEffectPayload(record.payload)) {\n\t\t\tstate.payloads.set(record.workId, record.payload);\n\t\t} else {\n\t\t\temitIssue(ctx, state, record, \"orchestration-queue-malformed-payload\");\n\t\t}\n\t\treturn;\n\t}\n\tif (!isTerminalEvidenceRecord(record)) return;\n\tconst key = `${record.kind}:${record.recordSeq}`;\n\tif (state.terminalRecords.has(key)) return;\n\tstate.terminalRecords.add(key);\n\tconst payload = record.workId === undefined ? undefined : state.payloads.get(record.workId);\n\tif (payload === undefined) {\n\t\temitIssue(ctx, state, record, \"orchestration-queue-record-without-payload\");\n\t\treturn;\n\t}\n\tconst evidence = evidenceFromRecord(record, payload);\n\temit(ctx, { kind: \"evidence\", evidence });\n\temit(ctx, { kind: \"status\", status: statusFromEvidence(evidence, payload) });\n\tstate.auditSeq += 1;\n\temit(ctx, { kind: \"audit\", audit: auditFromEvidence(state.auditSeq, evidence, payload) });\n}\n\nfunction isTerminalEvidenceRecord(record: WorkQueueRecord): boolean {\n\treturn (\n\t\trecord.kind === \"work-completed\" ||\n\t\trecord.kind === \"attempt-completed\" ||\n\t\trecord.kind === \"work-canceled\" ||\n\t\trecord.kind === \"work-dead-lettered\" ||\n\t\trecord.kind === \"attempt-failed\"\n\t);\n}\n\nfunction evidenceFromRecord<TEffect>(\n\trecord: WorkQueueRecord<OrchestrationQueuedEffectPayload<TEffect>>,\n\tpayload: OrchestrationQueuedEffectPayload<TEffect>,\n): OrchestrationQueueEvidence {\n\treturn {\n\t\tkind: \"orchestration-queue-evidence\",\n\t\tevidenceId: `work-queue:${record.recordSeq}`,\n\t\teffectId: payload.effect.id,\n\t\teffectType: payload.effect.type,\n\t\tworkId: record.workId ?? `unknown:${record.recordSeq}`,\n\t\tqueueRecordKind: record.kind,\n\t\tresult: \"result\" in record ? record.result : undefined,\n\t\terror: \"error\" in record ? record.error : undefined,\n\t\trecordedAtMs: record.recordedAtMs,\n\t};\n}\n\nfunction statusFromEvidence<TEffect>(\n\tevidence: OrchestrationQueueEvidence,\n\tpayload: OrchestrationQueuedEffectPayload<TEffect>,\n): OrchestrationQueueStatus {\n\treturn {\n\t\tkind: \"orchestration-queue-status\",\n\t\tstate: \"evidence-recorded\",\n\t\teffectId: payload.effect.id,\n\t\teffectType: payload.effect.type,\n\t\tworkId: evidence.workId,\n\t\tqueueRecordKind: evidence.queueRecordKind,\n\t\tevidenceId: evidence.evidenceId,\n\t};\n}\n\nfunction auditFromEvidence<TEffect>(\n\tseq: number,\n\tevidence: OrchestrationQueueEvidence,\n\tpayload: OrchestrationQueuedEffectPayload<TEffect>,\n): OrchestrationQueueAuditRecord {\n\treturn {\n\t\tkind: \"orchestration-queue-audit\",\n\t\tseq,\n\t\toutcome: \"mapped\",\n\t\teffectId: payload.effect.id,\n\t\teffectType: payload.effect.type,\n\t\tworkId: evidence.workId,\n\t\tqueueRecordKind: evidence.queueRecordKind,\n\t\tevidenceId: evidence.evidenceId,\n\t};\n}\n\nfunction auditFromIssue(\n\tseq: number,\n\trecord: WorkQueueRecord<unknown>,\n): OrchestrationQueueAuditRecord {\n\treturn {\n\t\tkind: \"orchestration-queue-audit\",\n\t\tseq,\n\t\toutcome: \"issue\",\n\t\tworkId: record.workId,\n\t\tqueueRecordKind: record.kind,\n\t};\n}\n\nfunction project<T>(\n\tgraph: Graph,\n\truntime: Node<OrchestrationQueueFact>,\n\tname: string,\n\tfactory: string,\n\tpick: (fact: OrchestrationQueueFact) => T | undefined,\n): Node<T> {\n\treturn graph.node<T>(\n\t\t[runtime],\n\t\t(ctx) => {\n\t\t\tfor (const fact of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst value = pick(fact as OrchestrationQueueFact);\n\t\t\t\tif (value !== undefined) ctx.down([[\"DATA\", value]]);\n\t\t\t}\n\t\t},\n\t\t{ name, factory, partial: true, completeWhenDepsComplete: false, errorWhenDepsError: false },\n\t);\n}\n\nfunction emit(ctx: Ctx, fact: OrchestrationQueueFact): void {\n\tctx.down([[\"DATA\", fact]]);\n}\n\nfunction emitIssue(\n\tctx: Ctx,\n\tstate: QueueState<unknown>,\n\trecord: WorkQueueRecord<unknown>,\n\tcode: string,\n): void {\n\tconst issue = queueIssue(record, code);\n\temit(ctx, { kind: \"issue\", issue });\n\tstate.auditSeq += 1;\n\temit(ctx, {\n\t\tkind: \"status\",\n\t\tstatus: {\n\t\t\tkind: \"orchestration-queue-status\",\n\t\t\tstate: \"mapping-issue\",\n\t\t\tworkId: record.workId,\n\t\t\tqueueRecordKind: record.kind,\n\t\t\tissues: [issue],\n\t\t},\n\t});\n\temit(ctx, {\n\t\tkind: \"audit\",\n\t\taudit: auditFromIssue(state.auditSeq, record),\n\t});\n}\n\nfunction queueIssue(record: WorkQueueRecord<unknown>, code: string): DataIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tcode,\n\t\tmessage: `Orchestration workQueue recipe could not map record '${record.kind}'`,\n\t\tseverity: \"error\",\n\t\tsource: \"orchestration.workQueue\",\n\t\tdetails: record,\n\t};\n}\n\nfunction isQueuedEffectPayload<TEffect>(\n\tvalue: unknown,\n): value is OrchestrationQueuedEffectPayload<TEffect> {\n\tif (!isObjectRecord(value) || value.kind !== \"orchestration-queued-effect\") return false;\n\tconst effect = value.effect;\n\treturn isObjectRecord(effect) && typeof effect.id === \"string\" && typeof effect.type === \"string\";\n}\n\nfunction isObjectRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/orchestration/work-queue-scheduled-readiness.ts","../../src/orchestration/work-queue.ts"],"sourcesContent":["import { 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\tWorkQueueCommand,\n\tWorkQueueDerivedState,\n\tWorkQueueRecord,\n} from \"../work-queue/index.js\";\nimport {\n\tcanonicalPublicSourceRefs,\n\tdataIssue,\n\tisRecord,\n\tprojectRuntimeFact,\n\tref,\n\tsanitizeGraphVisibleRecord,\n\tstableJsonStringify,\n\tstableStringHash,\n\tuniqueSourceRefs,\n} from \"./agent-runtime-common.js\";\nimport type { AgentRuntimeAuditRecord } from \"./agent-runtime-types-agent.js\";\nimport type { SourceRef } from \"./agent-runtime-types-core.js\";\nimport type {\n\tScheduledReadinessOverdue,\n\tScheduledReadinessReady,\n\tScheduledReadinessRequested,\n} from \"./scheduled-readiness.js\";\n\nexport type WorkQueueScheduledReadinessScheduleKind =\n\t| \"work-admitted\"\n\t| \"work-scheduled\"\n\t| \"retry-scheduled\"\n\t| \"lease-expiration\";\n\nexport type WorkQueueScheduledReadinessStatusState = \"translated\" | \"issue\";\n\nexport interface WorkQueueScheduledReadinessStatus {\n\treadonly kind: \"work-queue-scheduled-readiness-status\";\n\treadonly statusId: string;\n\treadonly queueId?: string;\n\treadonly workId?: string;\n\treadonly recordSeq?: number;\n\treadonly state: WorkQueueScheduledReadinessStatusState;\n\treadonly scheduleKind?: WorkQueueScheduledReadinessScheduleKind;\n\treadonly scheduleId?: string;\n\treadonly readyAtMs?: number;\n\treadonly deadlineMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly issueCodes?: readonly string[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkQueueScheduledReadinessViews {\n\treadonly schedulesById: ReadonlyMap<string, ScheduledReadinessRequested>;\n\treadonly statusById: ReadonlyMap<string, WorkQueueScheduledReadinessStatus>;\n}\n\nexport interface WorkQueueScheduledReadinessBundle {\n\treadonly readinessSchedules: Node<ScheduledReadinessRequested>;\n\treadonly status: Node<WorkQueueScheduledReadinessStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n\treadonly views: Node<WorkQueueScheduledReadinessViews>;\n}\n\nexport type WorkQueueReadinessCandidateKind = \"claim-eligible\" | \"lease-expiration-eligible\";\n\nexport interface WorkQueueReadinessCandidate {\n\treadonly kind: \"work-queue-readiness-candidate\";\n\treadonly candidateId: string;\n\treadonly candidateKind: WorkQueueReadinessCandidateKind;\n\treadonly queueId: string;\n\treadonly workId: string;\n\treadonly scheduleId: string;\n\treadonly readyAtMs: number;\n\treadonly nowMs: number;\n\treadonly originRecordSeq?: number;\n\treadonly originRecordKind?: string;\n\treadonly leaseId?: string;\n\treadonly attempt?: number;\n\treadonly workerId?: string;\n\treadonly leaseExpiresAtMs?: number;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport type WorkQueueReadinessHandoffStatusState =\n\t| \"candidate\"\n\t| \"ignored-stale\"\n\t| \"ignored-superseded\"\n\t| \"ignored-terminal\"\n\t| \"overdue\"\n\t| \"pending-origin\"\n\t| \"issue\";\n\nexport interface WorkQueueReadinessHandoffStatus {\n\treadonly kind: \"work-queue-readiness-handoff-status\";\n\treadonly statusId: string;\n\treadonly state: WorkQueueReadinessHandoffStatusState;\n\treadonly queueId?: string;\n\treadonly workId?: string;\n\treadonly scheduleId?: string;\n\treadonly candidateId?: string;\n\treadonly candidateKind?: WorkQueueReadinessCandidateKind;\n\treadonly readyAtMs?: number;\n\treadonly nowMs?: number;\n\treadonly currentState?: WorkQueueDerivedState;\n\treadonly sourceRefs?: readonly SourceRef[];\n\treadonly issueCodes?: readonly string[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface WorkQueueReadinessHandoffViews {\n\treadonly candidatesById: ReadonlyMap<string, WorkQueueReadinessCandidate>;\n\treadonly statusById: ReadonlyMap<string, WorkQueueReadinessHandoffStatus>;\n}\n\nexport interface WorkQueueReadinessHandoffBundle {\n\treadonly candidates: Node<WorkQueueReadinessCandidate>;\n\treadonly status: Node<WorkQueueReadinessHandoffStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<AgentRuntimeAuditRecord>;\n\treadonly views: Node<WorkQueueReadinessHandoffViews>;\n}\n\nexport interface WorkQueueLeaseExpirationCommandBundle<T = unknown> {\n\treadonly commands: Node<WorkQueueCommand<T>>;\n\treadonly status: Node<WorkQueueReadinessHandoffStatus>;\n\treadonly views: Node<WorkQueueReadinessHandoffViews>;\n}\n\nconst MAX_PUBLIC_COORDINATE_ID_CHARS = 160;\nconst MAX_COPIED_PUBLIC_REFS = 16;\nconst PRIVATE_COORDINATE_PATTERN =\n\t/(api[_-]?key|authorization|bearer|credential|oauth|password|private[_-]?key|secret|session[_-]?cookie|token)/i;\n\n/**\n * Translate workQueue-local delayed eligibility records into D432 shared readiness schedules.\n *\n * The projector is intentionally visibility-only: it never claims work, expires leases, cancels,\n * completes, fails, mutates queue records, or starts timers. D433 consumption/materialization stays\n * owned by later workQueue domain projectors.\n */\nexport function workQueueScheduledReadinessProjector<T = unknown>(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly records: Node<WorkQueueRecord<T>>;\n\t},\n): WorkQueueScheduledReadinessBundle {\n\tconst name = opts.name ?? \"workQueueScheduledReadiness\";\n\tconst runtime = graph.node<WorkQueueScheduledReadinessFact>(\n\t\t[opts.records],\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<WorkQueueScheduledReadinessProjectorState>() ?? initialState();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst translated = translateRecord(raw);\n\t\t\t\tif (translated.kind === \"none\") continue;\n\t\t\t\tif (translated.kind === \"issue\") {\n\t\t\t\t\temitIssue(ctx, state, translated.issue);\n\t\t\t\t\temitStatus(ctx, state, translated.status);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst identity = scheduleIdentity(translated.schedule);\n\t\t\t\tconst recordKey = `${translated.record.queueId}:${translated.record.recordSeq}`;\n\t\t\t\tconst existingRecordIdentity = state.recordScheduleIdentityByKey.get(recordKey);\n\t\t\t\tif (existingRecordIdentity !== undefined) {\n\t\t\t\t\tif (existingRecordIdentity !== identity) emitScheduleConflict(ctx, state, translated);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstate.recordScheduleIdentityByKey.set(recordKey, identity);\n\t\t\t\tconst existing = state.schedulesById.get(translated.schedule.scheduleId);\n\t\t\t\tif (existing !== undefined) {\n\t\t\t\t\tif (scheduleIdentity(existing) !== identity) {\n\t\t\t\t\t\temitScheduleConflict(ctx, state, translated, existing);\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstate.schedulesById.set(translated.schedule.scheduleId, translated.schedule);\n\t\t\t\temitSchedule(ctx, state, translated.schedule);\n\t\t\t\temitStatus(ctx, state, translated.status);\n\t\t\t\temitAudit(ctx, state, \"work-queue-scheduled-readiness-translated\", {\n\t\t\t\t\tsubjectId: translated.schedule.scheduleId,\n\t\t\t\t\tsourceRefs: translated.schedule.sourceRefs,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tqueueId: publicCoordinateId(translated.record.queueId),\n\t\t\t\t\t\tworkId: publicCoordinateId(translated.record.workId),\n\t\t\t\t\t\trecordSeq: translated.record.recordSeq,\n\t\t\t\t\t\trecordKind: translated.record.kind,\n\t\t\t\t\t\treadyAtMs: translated.schedule.readyAtMs,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\tctx.down([[\"DATA\", { kind: \"views\", views: buildViews(state) }]]);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workQueueScheduledReadinessProjector\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\treadinessSchedules: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/readinessSchedules`,\n\t\t\t\"workQueueScheduledReadinessSchedules\",\n\t\t\t(fact) => (fact.kind === \"readiness-schedule\" ? fact.schedule : undefined),\n\t\t),\n\t\tstatus: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/status`,\n\t\t\t\"workQueueScheduledReadinessStatus\",\n\t\t\t(fact) => (fact.kind === \"status\" ? fact.status : undefined),\n\t\t),\n\t\tissues: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/issues`,\n\t\t\t\"workQueueScheduledReadinessIssues\",\n\t\t\t(fact) => (fact.kind === \"issue\" ? fact.issue : undefined),\n\t\t),\n\t\taudit: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/audit`,\n\t\t\t\"workQueueScheduledReadinessAudit\",\n\t\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t\t),\n\t\tviews: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/views`,\n\t\t\t\"workQueueScheduledReadinessViews\",\n\t\t\t(fact) => (fact.kind === \"views\" ? fact.views : undefined),\n\t\t),\n\t};\n}\n\n/**\n * Consume D433 shared readiness through workQueue-owned handoff material.\n *\n * Ready facts only produce queue-domain candidates/status. They do not claim work, expire leases,\n * cancel, complete, fail, or append workQueue records. Lease expiration candidates can be lowered\n * separately into the existing mutation-bearing expire-leases command path.\n */\nexport function workQueueReadinessHandoffProjector<T = unknown>(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly records: Node<WorkQueueRecord<T>>;\n\t\treadonly ready: Node<ScheduledReadinessReady>;\n\t\treadonly overdue?: Node<ScheduledReadinessOverdue>;\n\t},\n): WorkQueueReadinessHandoffBundle {\n\tconst name = opts.name ?? \"workQueueReadinessHandoff\";\n\tconst deps =\n\t\topts.overdue === undefined\n\t\t\t? ([opts.records, opts.ready] as const)\n\t\t\t: ([opts.records, opts.ready, opts.overdue] as const);\n\tconst runtime = graph.node<WorkQueueReadinessHandoffFact>(\n\t\tdeps,\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<WorkQueueReadinessHandoffProjectorState>() ?? handoffState();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst record = raw as WorkQueueRecord<T>;\n\t\t\t\tingestWorkQueueRecord(state, record);\n\t\t\t}\n\t\t\tfor (const raw of depBatch(ctx, 1) ?? []) {\n\t\t\t\tconst ready = raw as ScheduledReadinessReady;\n\t\t\t\tstate.readyByScheduleId.set(ready.scheduleId, ready);\n\t\t\t}\n\t\t\tif (opts.overdue !== undefined) {\n\t\t\t\tfor (const raw of depBatch(ctx, 2) ?? []) {\n\t\t\t\t\temitOverdueHandoffStatus(ctx, state, raw as ScheduledReadinessOverdue);\n\t\t\t\t}\n\t\t\t}\n\t\t\tevaluateReadyHandoffs(ctx, state);\n\t\t\tctx.down([[\"DATA\", { kind: \"views\", views: buildHandoffViews(state) }]]);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workQueueReadinessHandoffProjector\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tcandidates: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/candidates`,\n\t\t\t\"workQueueReadinessHandoffCandidates\",\n\t\t\t(fact) => (fact.kind === \"candidate\" ? fact.candidate : undefined),\n\t\t),\n\t\tstatus: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/status`,\n\t\t\t\"workQueueReadinessHandoffStatus\",\n\t\t\t(fact) => (fact.kind === \"status\" ? fact.status : undefined),\n\t\t),\n\t\tissues: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/issues`,\n\t\t\t\"workQueueReadinessHandoffIssues\",\n\t\t\t(fact) => (fact.kind === \"issue\" ? fact.issue : undefined),\n\t\t),\n\t\taudit: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/audit`,\n\t\t\t\"workQueueReadinessHandoffAudit\",\n\t\t\t(fact) => (fact.kind === \"audit\" ? fact.audit : undefined),\n\t\t),\n\t\tviews: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/views`,\n\t\t\t\"workQueueReadinessHandoffViews\",\n\t\t\t(fact) => (fact.kind === \"views\" ? fact.views : undefined),\n\t\t),\n\t};\n}\n\n/**\n * Lower only lease-expiration readiness candidates into existing workQueue expire-leases commands.\n */\nexport function workQueueLeaseExpirationCommandProjector<T = unknown>(\n\tgraph: Graph,\n\topts: {\n\t\treadonly name?: string;\n\t\treadonly candidates: Node<WorkQueueReadinessCandidate>;\n\t},\n): WorkQueueLeaseExpirationCommandBundle<T> {\n\tconst name = opts.name ?? \"workQueueLeaseExpirationCommands\";\n\tconst runtime = graph.node<WorkQueueLeaseExpirationCommandFact<T>>(\n\t\t[opts.candidates],\n\t\t(ctx) => {\n\t\t\tconst state =\n\t\t\t\tctx.state.get<WorkQueueLeaseExpirationCommandProjectorState<T>>() ??\n\t\t\t\tleaseExpirationCommandState<T>();\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst candidate = raw as WorkQueueReadinessCandidate;\n\t\t\t\tif (candidate.candidateKind !== \"lease-expiration-eligible\") continue;\n\t\t\t\tif (state.commandByCandidateId.has(candidate.candidateId)) continue;\n\t\t\t\tconst command = Object.freeze({\n\t\t\t\t\tkind: \"expire-leases\",\n\t\t\t\t\tcommandId: `${candidate.candidateId}:expire-leases`,\n\t\t\t\t\tqueueId: candidate.queueId,\n\t\t\t\t\tworkIds: [candidate.workId],\n\t\t\t\t\tlimit: 1,\n\t\t\t\t\tnowMs: candidate.nowMs,\n\t\t\t\t\tcausationId: candidate.scheduleId,\n\t\t\t\t\t...(sourceRefStrings(candidate.sourceRefs) === undefined\n\t\t\t\t\t\t? {}\n\t\t\t\t\t\t: { sourceRefs: sourceRefStrings(candidate.sourceRefs) }),\n\t\t\t\t} satisfies WorkQueueCommand<T>);\n\t\t\t\tstate.commandByCandidateId.set(candidate.candidateId, command);\n\t\t\t\tctx.down([[\"DATA\", { kind: \"command\", command }]]);\n\t\t\t\temitLeaseCommandStatus(ctx, state, command, candidate);\n\t\t\t}\n\t\t\tctx.down([[\"DATA\", { kind: \"views\", views: buildLeaseCommandViews(state) }]]);\n\t\t\tctx.state.set(state);\n\t\t},\n\t\t{\n\t\t\tname: `${name}/runtime`,\n\t\t\tfactory: \"workQueueLeaseExpirationCommandProjector\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\tcommands: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/commands`,\n\t\t\t\"workQueueLeaseExpirationCommands\",\n\t\t\t(fact) => (fact.kind === \"command\" ? fact.command : undefined),\n\t\t),\n\t\tstatus: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/status`,\n\t\t\t\"workQueueLeaseExpirationCommandStatus\",\n\t\t\t(fact) => (fact.kind === \"status\" ? fact.status : undefined),\n\t\t),\n\t\tviews: projectRuntimeFact(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/views`,\n\t\t\t\"workQueueLeaseExpirationCommandViews\",\n\t\t\t(fact) => (fact.kind === \"views\" ? fact.views : undefined),\n\t\t),\n\t};\n}\n\ntype WorkQueueScheduledReadinessFact =\n\t| { readonly kind: \"readiness-schedule\"; readonly schedule: ScheduledReadinessRequested }\n\t| { readonly kind: \"status\"; readonly status: WorkQueueScheduledReadinessStatus }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord }\n\t| { readonly kind: \"views\"; readonly views: WorkQueueScheduledReadinessViews };\n\ninterface WorkQueueScheduledReadinessProjectorState {\n\trecordScheduleIdentityByKey: Map<string, string>;\n\tschedulesById: Map<string, ScheduledReadinessRequested>;\n\tstatusById: Map<string, WorkQueueScheduledReadinessStatus>;\n\temittedKeys: Set<string>;\n\tissueKeys: Set<string>;\n\tauditSeq: number;\n}\n\ntype WorkQueueRecordWithWorkId = WorkQueueRecord<unknown> & { readonly workId: string };\n\ntype TranslatedRecord =\n\t| { readonly kind: \"none\" }\n\t| {\n\t\t\treadonly kind: \"translated\";\n\t\t\treadonly record: WorkQueueRecordWithWorkId;\n\t\t\treadonly schedule: ScheduledReadinessRequested;\n\t\t\treadonly status: WorkQueueScheduledReadinessStatus;\n\t }\n\t| {\n\t\t\treadonly kind: \"issue\";\n\t\t\treadonly issue: DataIssue;\n\t\t\treadonly status: WorkQueueScheduledReadinessStatus;\n\t };\n\ntype WorkQueueReadinessHandoffFact =\n\t| { readonly kind: \"candidate\"; readonly candidate: WorkQueueReadinessCandidate }\n\t| { readonly kind: \"status\"; readonly status: WorkQueueReadinessHandoffStatus }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: AgentRuntimeAuditRecord }\n\t| { readonly kind: \"views\"; readonly views: WorkQueueReadinessHandoffViews };\n\ninterface WorkQueueReadinessOrigin {\n\treadonly record: WorkQueueRecordWithWorkId;\n\treadonly schedule: ScheduledReadinessRequested;\n\treadonly scheduleKind: WorkQueueScheduledReadinessScheduleKind;\n}\n\ninterface WorkQueueReadinessWorkState {\n\treadonly queueId: string;\n\treadonly workId: string;\n\tstate: WorkQueueDerivedState;\n\tnotBeforeMs?: number;\n\tretryAtMs?: number;\n\tdeadlineMs?: number;\n\tleaseId?: string;\n\tattempt?: number;\n\tworkerId?: string;\n\tleaseExpiresAtMs?: number;\n\tlatestRecordSeq: number;\n}\n\ninterface WorkQueueReadinessHandoffProjectorState {\n\toriginsByScheduleId: Map<string, WorkQueueReadinessOrigin>;\n\tworksById: Map<string, WorkQueueReadinessWorkState>;\n\treadyByScheduleId: Map<string, ScheduledReadinessReady>;\n\tcandidatesById: Map<string, WorkQueueReadinessCandidate>;\n\tstatusById: Map<string, WorkQueueReadinessHandoffStatus>;\n\temittedKeys: Set<string>;\n\tissueKeys: Set<string>;\n\tauditSeq: number;\n}\n\ntype WorkQueueLeaseExpirationCommandFact<T> =\n\t| { readonly kind: \"command\"; readonly command: WorkQueueCommand<T> }\n\t| { readonly kind: \"status\"; readonly status: WorkQueueReadinessHandoffStatus }\n\t| { readonly kind: \"views\"; readonly views: WorkQueueReadinessHandoffViews };\n\ninterface WorkQueueLeaseExpirationCommandProjectorState<T> {\n\tcommandByCandidateId: Map<string, WorkQueueCommand<T>>;\n\tstatusById: Map<string, WorkQueueReadinessHandoffStatus>;\n\temittedKeys: Set<string>;\n}\n\nfunction initialState(): WorkQueueScheduledReadinessProjectorState {\n\treturn {\n\t\trecordScheduleIdentityByKey: new Map(),\n\t\tschedulesById: new Map(),\n\t\tstatusById: new Map(),\n\t\temittedKeys: new Set(),\n\t\tissueKeys: new Set(),\n\t\tauditSeq: 0,\n\t};\n}\n\nfunction handoffState(): WorkQueueReadinessHandoffProjectorState {\n\treturn {\n\t\toriginsByScheduleId: new Map(),\n\t\tworksById: new Map(),\n\t\treadyByScheduleId: new Map(),\n\t\tcandidatesById: new Map(),\n\t\tstatusById: new Map(),\n\t\temittedKeys: new Set(),\n\t\tissueKeys: new Set(),\n\t\tauditSeq: 0,\n\t};\n}\n\nfunction leaseExpirationCommandState<T>(): WorkQueueLeaseExpirationCommandProjectorState<T> {\n\treturn {\n\t\tcommandByCandidateId: new Map(),\n\t\tstatusById: new Map(),\n\t\temittedKeys: new Set(),\n\t};\n}\n\nfunction ingestWorkQueueRecord<T>(\n\tstate: WorkQueueReadinessHandoffProjectorState,\n\trecord: WorkQueueRecord<T>,\n): void {\n\tconst translated = translateRecord(record);\n\tif (translated.kind === \"translated\") {\n\t\tstate.originsByScheduleId.set(translated.schedule.scheduleId, {\n\t\t\trecord: translated.record,\n\t\t\tschedule: translated.schedule,\n\t\t\tscheduleKind: translated.status.scheduleKind as WorkQueueScheduledReadinessScheduleKind,\n\t\t});\n\t}\n\tif (record.workId === undefined) return;\n\tconst recordWithWorkId = record as WorkQueueRecordWithWorkId;\n\tconst existing = state.worksById.get(\n\t\thandoffWorkKey(recordWithWorkId.queueId, recordWithWorkId.workId),\n\t);\n\tif (existing !== undefined && recordWithWorkId.recordSeq < existing.latestRecordSeq) return;\n\tconst work = ensureHandoffWorkState(state, recordWithWorkId);\n\twork.latestRecordSeq = Math.max(work.latestRecordSeq, recordWithWorkId.recordSeq);\n\tswitch (recordWithWorkId.kind) {\n\t\tcase \"work-admitted\":\n\t\t\twork.state = recordWithWorkId.notBeforeMs === undefined ? \"ready\" : \"scheduled\";\n\t\t\twork.notBeforeMs = recordWithWorkId.notBeforeMs;\n\t\t\twork.retryAtMs = undefined;\n\t\t\twork.deadlineMs = recordWithWorkId.deadlineMs;\n\t\t\tclearHandoffLease(work);\n\t\t\tbreak;\n\t\tcase \"work-scheduled\":\n\t\t\twork.state = \"scheduled\";\n\t\t\twork.notBeforeMs = recordWithWorkId.notBeforeMs;\n\t\t\twork.deadlineMs = recordWithWorkId.deadlineMs;\n\t\t\tbreak;\n\t\tcase \"retry-scheduled\":\n\t\t\twork.state =\n\t\t\t\trecordWithWorkId.retryAtMs <= recordWithWorkId.recordedAtMs ? \"ready\" : \"retry-wait\";\n\t\t\twork.retryAtMs = recordWithWorkId.retryAtMs;\n\t\t\twork.notBeforeMs = undefined;\n\t\t\tbreak;\n\t\tcase \"work-claimed\":\n\t\t\twork.state = \"leased\";\n\t\t\twork.leaseId = recordWithWorkId.leaseId;\n\t\t\twork.attempt = recordWithWorkId.attempt;\n\t\t\twork.workerId = recordWithWorkId.workerId;\n\t\t\twork.leaseExpiresAtMs = recordWithWorkId.leaseExpiresAtMs;\n\t\t\tbreak;\n\t\tcase \"lease-renewed\":\n\t\t\twork.state = \"leased\";\n\t\t\twork.leaseId = recordWithWorkId.leaseId;\n\t\t\twork.attempt = recordWithWorkId.attempt;\n\t\t\twork.workerId = recordWithWorkId.workerId;\n\t\t\twork.leaseExpiresAtMs = recordWithWorkId.leaseExpiresAtMs;\n\t\t\tbreak;\n\t\tcase \"work-released\":\n\t\tcase \"lease-expired\":\n\t\t\twork.state = \"ready\";\n\t\t\tclearHandoffLease(work);\n\t\t\tbreak;\n\t\tcase \"work-completed\":\n\t\t\twork.state = \"completed\";\n\t\t\tclearHandoffLease(work);\n\t\t\tbreak;\n\t\tcase \"work-canceled\":\n\t\t\twork.state = \"canceled\";\n\t\t\tclearHandoffLease(work);\n\t\t\tbreak;\n\t\tcase \"work-dead-lettered\":\n\t\t\twork.state = \"dead-lettered\";\n\t\t\tclearHandoffLease(work);\n\t\t\tbreak;\n\t}\n}\n\nfunction ensureHandoffWorkState(\n\tstate: WorkQueueReadinessHandoffProjectorState,\n\trecord: WorkQueueRecordWithWorkId,\n): WorkQueueReadinessWorkState {\n\tconst key = handoffWorkKey(record.queueId, record.workId);\n\tconst existing = state.worksById.get(key);\n\tif (existing !== undefined) return existing;\n\tconst next: WorkQueueReadinessWorkState = {\n\t\tqueueId: record.queueId,\n\t\tworkId: record.workId,\n\t\tstate: \"ready\",\n\t\tlatestRecordSeq: record.recordSeq,\n\t};\n\tstate.worksById.set(key, next);\n\treturn next;\n}\n\nfunction handoffWorkKey(queueId: string, workId: string): string {\n\treturn stableJsonStringify([queueId, workId]);\n}\n\nfunction clearHandoffLease(work: WorkQueueReadinessWorkState): void {\n\twork.leaseId = undefined;\n\twork.attempt = undefined;\n\twork.workerId = undefined;\n\twork.leaseExpiresAtMs = undefined;\n}\n\nfunction evaluateReadyHandoffs(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueReadinessHandoffFact][]) => void },\n\tstate: WorkQueueReadinessHandoffProjectorState,\n): void {\n\tfor (const ready of state.readyByScheduleId.values()) {\n\t\tconst origin = state.originsByScheduleId.get(ready.scheduleId);\n\t\tif (origin === undefined) {\n\t\t\temitHandoffStatus(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\thandoffStatus(\"pending-origin\", {\n\t\t\t\t\tscheduleId: ready.scheduleId,\n\t\t\t\t\treadyAtMs: ready.readyAtMs,\n\t\t\t\t\tnowMs: ready.nowMs,\n\t\t\t\t\tsourceRefs: ready.sourceRefs,\n\t\t\t\t}),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tconst work = state.worksById.get(handoffWorkKey(origin.record.queueId, origin.record.workId));\n\t\tif (work === undefined) {\n\t\t\temitHandoffStatus(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\thandoffStatus(\"pending-origin\", {\n\t\t\t\t\tqueueId: origin.record.queueId,\n\t\t\t\t\tworkId: origin.record.workId,\n\t\t\t\t\tscheduleId: ready.scheduleId,\n\t\t\t\t\treadyAtMs: ready.readyAtMs,\n\t\t\t\t\tnowMs: ready.nowMs,\n\t\t\t\t\tsourceRefs: ready.sourceRefs,\n\t\t\t\t}),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (origin.record.recordSeq < work.latestRecordSeq) {\n\t\t\temitSuperseded(ctx, state, origin, work, ready, {\n\t\t\t\tlatestRecordSeq: work.latestRecordSeq,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst terminal = terminalHandoffState(work.state);\n\t\tif (terminal) {\n\t\t\temitHandoffStatus(\n\t\t\t\tctx,\n\t\t\t\tstate,\n\t\t\t\thandoffStatus(\"ignored-terminal\", {\n\t\t\t\t\tqueueId: work.queueId,\n\t\t\t\t\tworkId: work.workId,\n\t\t\t\t\tscheduleId: ready.scheduleId,\n\t\t\t\t\treadyAtMs: ready.readyAtMs,\n\t\t\t\t\tnowMs: ready.nowMs,\n\t\t\t\t\tcurrentState: work.state,\n\t\t\t\t\tsourceRefs: ready.sourceRefs,\n\t\t\t\t}),\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\t\tif (origin.scheduleKind === \"lease-expiration\") {\n\t\t\tevaluateLeaseExpirationReady(ctx, state, origin, work, ready);\n\t\t\tcontinue;\n\t\t}\n\t\tevaluateClaimEligibilityReady(ctx, state, origin, work, ready);\n\t}\n}\n\nfunction evaluateClaimEligibilityReady(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueReadinessHandoffFact][]) => void },\n\tstate: WorkQueueReadinessHandoffProjectorState,\n\torigin: WorkQueueReadinessOrigin,\n\twork: WorkQueueReadinessWorkState,\n\tready: ScheduledReadinessReady,\n): void {\n\tif (work.state === \"leased\") {\n\t\temitHandoffStatus(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\thandoffStatus(\"ignored-stale\", {\n\t\t\t\tqueueId: work.queueId,\n\t\t\t\tworkId: work.workId,\n\t\t\t\tscheduleId: ready.scheduleId,\n\t\t\t\treadyAtMs: ready.readyAtMs,\n\t\t\t\tnowMs: ready.nowMs,\n\t\t\t\tcurrentState: work.state,\n\t\t\t\tsourceRefs: ready.sourceRefs,\n\t\t\t}),\n\t\t);\n\t\treturn;\n\t}\n\tif (work.notBeforeMs !== undefined && work.notBeforeMs > ready.nowMs) {\n\t\temitSuperseded(ctx, state, origin, work, ready, { notBeforeMs: work.notBeforeMs });\n\t\treturn;\n\t}\n\tif (work.retryAtMs !== undefined && work.retryAtMs > ready.nowMs) {\n\t\temitSuperseded(ctx, state, origin, work, ready, { retryAtMs: work.retryAtMs });\n\t\treturn;\n\t}\n\temitCandidate(ctx, state, candidateFor(origin, ready, \"claim-eligible\"));\n}\n\nfunction evaluateLeaseExpirationReady(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueReadinessHandoffFact][]) => void },\n\tstate: WorkQueueReadinessHandoffProjectorState,\n\torigin: WorkQueueReadinessOrigin,\n\twork: WorkQueueReadinessWorkState,\n\tready: ScheduledReadinessReady,\n): void {\n\tif (origin.record.kind !== \"work-claimed\" && origin.record.kind !== \"lease-renewed\") {\n\t\temitHandoffIssue(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\tdataIssue(\n\t\t\t\t\"work-queue-readiness-handoff-malformed-origin\",\n\t\t\t\t\"Lease-expiration readiness must originate from a lease-bearing workQueue record.\",\n\t\t\t\t{ subjectId: ready.scheduleId, refs: ready.sourceRefs },\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tif (\n\t\twork.state !== \"leased\" ||\n\t\twork.leaseId !== origin.record.leaseId ||\n\t\twork.attempt !== origin.record.attempt ||\n\t\twork.workerId !== origin.record.workerId\n\t) {\n\t\temitHandoffStatus(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\thandoffStatus(\"ignored-stale\", {\n\t\t\t\tqueueId: work.queueId,\n\t\t\t\tworkId: work.workId,\n\t\t\t\tscheduleId: ready.scheduleId,\n\t\t\t\treadyAtMs: ready.readyAtMs,\n\t\t\t\tnowMs: ready.nowMs,\n\t\t\t\tcurrentState: work.state,\n\t\t\t\tsourceRefs: ready.sourceRefs,\n\t\t\t}),\n\t\t);\n\t\treturn;\n\t}\n\tif (work.leaseExpiresAtMs !== origin.record.leaseExpiresAtMs) {\n\t\temitSuperseded(ctx, state, origin, work, ready, {\n\t\t\tleaseExpiresAtMs: work.leaseExpiresAtMs,\n\t\t});\n\t\treturn;\n\t}\n\tif (work.leaseExpiresAtMs !== undefined && work.leaseExpiresAtMs > ready.nowMs) {\n\t\temitSuperseded(ctx, state, origin, work, ready, {\n\t\t\tleaseExpiresAtMs: work.leaseExpiresAtMs,\n\t\t});\n\t\treturn;\n\t}\n\temitCandidate(ctx, state, candidateFor(origin, ready, \"lease-expiration-eligible\"));\n}\n\nfunction emitSuperseded(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueReadinessHandoffFact][]) => void },\n\tstate: WorkQueueReadinessHandoffProjectorState,\n\torigin: WorkQueueReadinessOrigin,\n\twork: WorkQueueReadinessWorkState,\n\tready: ScheduledReadinessReady,\n\tmetadata: Record<string, unknown>,\n): void {\n\temitHandoffStatus(\n\t\tctx,\n\t\tstate,\n\t\thandoffStatus(\"ignored-superseded\", {\n\t\t\tqueueId: work.queueId,\n\t\t\tworkId: work.workId,\n\t\t\tscheduleId: ready.scheduleId,\n\t\t\treadyAtMs: ready.readyAtMs,\n\t\t\tnowMs: ready.nowMs,\n\t\t\tcurrentState: work.state,\n\t\t\tsourceRefs: ready.sourceRefs,\n\t\t\tmetadata: {\n\t\t\t\toriginRecordSeq: origin.record.recordSeq,\n\t\t\t\toriginRecordKind: origin.record.kind,\n\t\t\t\t...metadata,\n\t\t\t},\n\t\t}),\n\t);\n}\n\nfunction candidateFor(\n\torigin: WorkQueueReadinessOrigin,\n\tready: ScheduledReadinessReady,\n\tcandidateKind: WorkQueueReadinessCandidateKind,\n): WorkQueueReadinessCandidate {\n\tconst lease =\n\t\torigin.record.kind === \"work-claimed\" || origin.record.kind === \"lease-renewed\"\n\t\t\t? {\n\t\t\t\t\tleaseId: origin.record.leaseId,\n\t\t\t\t\tattempt: origin.record.attempt,\n\t\t\t\t\tworkerId: origin.record.workerId,\n\t\t\t\t\tleaseExpiresAtMs: origin.record.leaseExpiresAtMs,\n\t\t\t\t}\n\t\t\t: {};\n\tconst metadata = sanitizeGraphVisibleRecord({\n\t\toriginRecordSeq: origin.record.recordSeq,\n\t\toriginRecordKind: origin.record.kind,\n\t\tscheduleKind: origin.scheduleKind,\n\t});\n\treturn Object.freeze({\n\t\tkind: \"work-queue-readiness-candidate\",\n\t\tcandidateId: `${ready.scheduleId}:work-queue:${candidateKind}`,\n\t\tcandidateKind,\n\t\tqueueId: origin.record.queueId,\n\t\tworkId: origin.record.workId,\n\t\tscheduleId: ready.scheduleId,\n\t\treadyAtMs: ready.readyAtMs,\n\t\tnowMs: ready.nowMs,\n\t\toriginRecordSeq: origin.record.recordSeq,\n\t\toriginRecordKind: origin.record.kind,\n\t\t...lease,\n\t\tsourceRefs: canonicalPublicSourceRefs(\n\t\t\tuniqueSourceRefs([\n\t\t\t\t...(ready.sourceRefs ?? []),\n\t\t\t\tref(\"work-queue-record\", String(origin.record.recordSeq)),\n\t\t\t\tref(\"scheduled-readiness-ready\", ready.scheduleId),\n\t\t\t]),\n\t\t),\n\t\t...(metadata === undefined ? {} : { metadata }),\n\t} satisfies WorkQueueReadinessCandidate);\n}\n\nfunction emitCandidate(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueReadinessHandoffFact][]) => void },\n\tstate: WorkQueueReadinessHandoffProjectorState,\n\tcandidate: WorkQueueReadinessCandidate,\n): void {\n\tconst key = `candidate:${candidate.candidateId}`;\n\tif (!state.emittedKeys.has(key)) {\n\t\tstate.emittedKeys.add(key);\n\t\tstate.candidatesById.set(candidate.candidateId, candidate);\n\t\tctx.down([[\"DATA\", { kind: \"candidate\", candidate }]]);\n\t\temitHandoffAudit(ctx, state, \"work-queue-readiness-candidate\", {\n\t\t\tsubjectId: candidate.candidateId,\n\t\t\tsourceRefs: candidate.sourceRefs,\n\t\t\tmetadata: {\n\t\t\t\tcandidateKind: candidate.candidateKind,\n\t\t\t\tqueueId: candidate.queueId,\n\t\t\t\tworkId: candidate.workId,\n\t\t\t\treadyAtMs: candidate.readyAtMs,\n\t\t\t\tnowMs: candidate.nowMs,\n\t\t\t},\n\t\t});\n\t} else {\n\t\tstate.candidatesById.set(candidate.candidateId, candidate);\n\t}\n\temitHandoffStatus(\n\t\tctx,\n\t\tstate,\n\t\thandoffStatus(\"candidate\", {\n\t\t\tqueueId: candidate.queueId,\n\t\t\tworkId: candidate.workId,\n\t\t\tscheduleId: candidate.scheduleId,\n\t\t\tcandidateId: candidate.candidateId,\n\t\t\tcandidateKind: candidate.candidateKind,\n\t\t\treadyAtMs: candidate.readyAtMs,\n\t\t\tnowMs: candidate.nowMs,\n\t\t\tsourceRefs: candidate.sourceRefs,\n\t\t}),\n\t);\n}\n\nfunction emitOverdueHandoffStatus(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueReadinessHandoffFact][]) => void },\n\tstate: WorkQueueReadinessHandoffProjectorState,\n\toverdue: ScheduledReadinessOverdue,\n): void {\n\tconst origin = state.originsByScheduleId.get(overdue.scheduleId);\n\temitHandoffStatus(\n\t\tctx,\n\t\tstate,\n\t\thandoffStatus(\"overdue\", {\n\t\t\tqueueId: origin?.record.queueId,\n\t\t\tworkId: origin?.record.workId,\n\t\t\tscheduleId: overdue.scheduleId,\n\t\t\treadyAtMs: overdue.readyAtMs,\n\t\t\tnowMs: overdue.nowMs,\n\t\t\tsourceRefs: overdue.sourceRefs,\n\t\t\tmetadata: {\n\t\t\t\tdeadlineMs: overdue.deadlineMs,\n\t\t\t\t...(origin === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: { originRecordSeq: origin.record.recordSeq, originRecordKind: origin.record.kind }),\n\t\t\t},\n\t\t}),\n\t);\n}\n\nfunction handoffStatus(\n\tstate: WorkQueueReadinessHandoffStatusState,\n\topts: {\n\t\treadonly queueId?: string;\n\t\treadonly workId?: string;\n\t\treadonly scheduleId?: string;\n\t\treadonly candidateId?: string;\n\t\treadonly candidateKind?: WorkQueueReadinessCandidateKind;\n\t\treadonly readyAtMs?: number;\n\t\treadonly nowMs?: number;\n\t\treadonly currentState?: WorkQueueDerivedState;\n\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\treadonly issueCodes?: readonly string[];\n\t\treadonly metadata?: Record<string, unknown>;\n\t},\n): WorkQueueReadinessHandoffStatus {\n\tconst subject = opts.candidateId ?? opts.scheduleId ?? \"unknown-work-queue-readiness\";\n\tconst metadata = sanitizeGraphVisibleRecord(opts.metadata);\n\treturn Object.freeze({\n\t\tkind: \"work-queue-readiness-handoff-status\",\n\t\tstatusId: `${subject}:work-queue-readiness-handoff-status:${state}`,\n\t\tstate,\n\t\t...(opts.queueId === undefined ? {} : { queueId: opts.queueId }),\n\t\t...(opts.workId === undefined ? {} : { workId: opts.workId }),\n\t\t...(opts.scheduleId === undefined ? {} : { scheduleId: opts.scheduleId }),\n\t\t...(opts.candidateId === undefined ? {} : { candidateId: opts.candidateId }),\n\t\t...(opts.candidateKind === undefined ? {} : { candidateKind: opts.candidateKind }),\n\t\t...(opts.readyAtMs === undefined ? {} : { readyAtMs: opts.readyAtMs }),\n\t\t...(opts.nowMs === undefined ? {} : { nowMs: opts.nowMs }),\n\t\t...(opts.currentState === undefined ? {} : { currentState: opts.currentState }),\n\t\t...(opts.sourceRefs === undefined\n\t\t\t? {}\n\t\t\t: { sourceRefs: canonicalPublicSourceRefs(opts.sourceRefs) }),\n\t\t...(opts.issueCodes === undefined ? {} : { issueCodes: opts.issueCodes }),\n\t\t...(metadata === undefined ? {} : { metadata }),\n\t} satisfies WorkQueueReadinessHandoffStatus);\n}\n\nfunction emitHandoffStatus(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueReadinessHandoffFact][]) => void },\n\tstate: WorkQueueReadinessHandoffProjectorState,\n\tstatus: WorkQueueReadinessHandoffStatus,\n): void {\n\tstate.statusById.set(status.statusId, status);\n\tconst key = `handoff-status:${status.statusId}:${stableJsonStringify(status)}`;\n\tif (state.emittedKeys.has(key)) return;\n\tstate.emittedKeys.add(key);\n\tctx.down([[\"DATA\", { kind: \"status\", status }]]);\n}\n\nfunction emitHandoffIssue(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueReadinessHandoffFact][]) => void },\n\tstate: WorkQueueReadinessHandoffProjectorState,\n\tissue: DataIssue,\n): void {\n\tconst key = `${issue.code}:${issue.subjectId ?? \"\"}:${JSON.stringify(issue.details ?? {})}`;\n\tif (state.issueKeys.has(key)) return;\n\tstate.issueKeys.add(key);\n\tctx.down([[\"DATA\", { kind: \"issue\", issue }]]);\n\temitHandoffStatus(\n\t\tctx,\n\t\tstate,\n\t\thandoffStatus(\"issue\", {\n\t\t\tscheduleId: issue.subjectId,\n\t\t\tsourceRefs: issue.refs?.map(sourceRefFromIssueRef),\n\t\t\tissueCodes: [issue.code],\n\t\t}),\n\t);\n}\n\nfunction emitHandoffAudit(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueReadinessHandoffFact][]) => void },\n\tstate: WorkQueueReadinessHandoffProjectorState,\n\tkind: string,\n\topts: {\n\t\treadonly subjectId: string;\n\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\treadonly metadata?: Record<string, unknown>;\n\t},\n): void {\n\tstate.auditSeq += 1;\n\tconst metadata = sanitizeGraphVisibleRecord(opts.metadata);\n\tctx.down([\n\t\t[\n\t\t\t\"DATA\",\n\t\t\t{\n\t\t\t\tkind: \"audit\",\n\t\t\t\taudit: Object.freeze({\n\t\t\t\t\tid: `work-queue-readiness-handoff-audit-${state.auditSeq}`,\n\t\t\t\t\tkind,\n\t\t\t\t\tsubjectId: opts.subjectId,\n\t\t\t\t\t...(opts.sourceRefs === undefined\n\t\t\t\t\t\t? {}\n\t\t\t\t\t\t: { sourceRefs: canonicalPublicSourceRefs(opts.sourceRefs) }),\n\t\t\t\t\t...(metadata === undefined ? {} : { metadata }),\n\t\t\t\t} satisfies AgentRuntimeAuditRecord),\n\t\t\t},\n\t\t],\n\t]);\n}\n\nfunction buildHandoffViews(\n\tstate: WorkQueueReadinessHandoffProjectorState,\n): WorkQueueReadinessHandoffViews {\n\treturn Object.freeze({\n\t\tcandidatesById: new Map(state.candidatesById),\n\t\tstatusById: new Map(state.statusById),\n\t});\n}\n\nfunction emitLeaseCommandStatus<T>(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueLeaseExpirationCommandFact<T>][]) => void },\n\tstate: WorkQueueLeaseExpirationCommandProjectorState<T>,\n\tcommand: WorkQueueCommand<T>,\n\tcandidate: WorkQueueReadinessCandidate,\n): void {\n\tconst status = handoffStatus(\"candidate\", {\n\t\tqueueId: candidate.queueId,\n\t\tworkId: candidate.workId,\n\t\tscheduleId: candidate.scheduleId,\n\t\tcandidateId: candidate.candidateId,\n\t\tcandidateKind: candidate.candidateKind,\n\t\treadyAtMs: candidate.readyAtMs,\n\t\tnowMs: candidate.nowMs,\n\t\tsourceRefs: candidate.sourceRefs,\n\t\tmetadata: {\n\t\t\tcommandId: command.commandId,\n\t\t\tcommandKind: command.kind,\n\t\t},\n\t});\n\tstate.statusById.set(status.statusId, status);\n\tconst key = `lease-command-status:${status.statusId}`;\n\tif (state.emittedKeys.has(key)) return;\n\tstate.emittedKeys.add(key);\n\tctx.down([[\"DATA\", { kind: \"status\", status }]]);\n}\n\nfunction buildLeaseCommandViews<T>(\n\tstate: WorkQueueLeaseExpirationCommandProjectorState<T>,\n): WorkQueueReadinessHandoffViews {\n\treturn Object.freeze({\n\t\tcandidatesById: new Map(),\n\t\tstatusById: new Map(state.statusById),\n\t});\n}\n\nfunction sourceRefStrings(\n\tsourceRefs: readonly SourceRef[] | undefined,\n): readonly string[] | undefined {\n\tif (sourceRefs === undefined || sourceRefs.length === 0) return undefined;\n\treturn sourceRefs.map((sourceRef) => `${sourceRef.kind}:${sourceRef.id}`);\n}\n\nfunction sourceRefFromIssueRef(issueRef: string): SourceRef {\n\tconst [kind, ...rest] = issueRef.split(\":\");\n\treturn ref(kind || \"issue-ref\", rest.join(\":\") || issueRef);\n}\n\nfunction terminalHandoffState(state: WorkQueueDerivedState): boolean {\n\treturn state === \"completed\" || state === \"canceled\" || state === \"dead-lettered\";\n}\n\nfunction hasWorkRecordCoordinates(record: Record<string, unknown>): boolean {\n\treturn (\n\t\ttypeof record.queueId === \"string\" &&\n\t\ttypeof record.workId === \"string\" &&\n\t\ttypeof record.recordSeq === \"number\" &&\n\t\tNumber.isFinite(record.recordSeq)\n\t);\n}\n\nfunction hasLeaseRecordCoordinates(record: Record<string, unknown>): boolean {\n\treturn (\n\t\thasWorkRecordCoordinates(record) &&\n\t\ttypeof record.leaseId === \"string\" &&\n\t\ttypeof record.attempt === \"number\" &&\n\t\tNumber.isFinite(record.attempt) &&\n\t\ttypeof record.workerId === \"string\"\n\t);\n}\n\nfunction malformedRecord(record: Record<string, unknown>, message: string): TranslatedRecord {\n\tconst subjectId =\n\t\ttypeof record.kind === \"string\"\n\t\t\t? `work-queue-record:${publicCoordinateId(record.kind)}`\n\t\t\t: \"unknown-work-queue-record\";\n\tconst issue = dataIssue(\"work-queue-scheduled-readiness-malformed-record\", message, {\n\t\tsubjectId,\n\t\trefs: [],\n\t\tdetails: sanitizeGraphVisibleRecord({\n\t\t\trecordKind: typeof record.kind === \"string\" ? record.kind : undefined,\n\t\t\tqueueId: typeof record.queueId === \"string\" ? publicCoordinateId(record.queueId) : undefined,\n\t\t\tworkId: typeof record.workId === \"string\" ? publicCoordinateId(record.workId) : undefined,\n\t\t\trecordSeq:\n\t\t\t\ttypeof record.recordSeq === \"number\" && Number.isFinite(record.recordSeq)\n\t\t\t\t\t? record.recordSeq\n\t\t\t\t\t: undefined,\n\t\t}),\n\t});\n\treturn {\n\t\tkind: \"issue\",\n\t\tissue,\n\t\tstatus: issueStatus(subjectId, [issue]),\n\t};\n}\n\nfunction translateRecord(raw: unknown): TranslatedRecord {\n\tif (!isRecord(raw)) {\n\t\tconst issue = dataIssue(\n\t\t\t\"work-queue-scheduled-readiness-malformed-record\",\n\t\t\t\"WorkQueue scheduled readiness requires a graph-visible workQueue record.\",\n\t\t\t{ subjectId: \"unknown-work-queue-record\", refs: [] },\n\t\t);\n\t\treturn {\n\t\t\tkind: \"issue\",\n\t\t\tissue,\n\t\t\tstatus: issueStatus(\"unknown-work-queue-record\", [issue]),\n\t\t};\n\t}\n\tconst unknownRecord: unknown = raw;\n\tconst rawRecord = unknownRecord as Record<string, unknown>;\n\tswitch (rawRecord.kind) {\n\t\tcase \"work-admitted\": {\n\t\t\tconst notBeforeMs = rawRecord.notBeforeMs;\n\t\t\tif (notBeforeMs === undefined) return { kind: \"none\" };\n\t\t\tif (typeof notBeforeMs !== \"number\") {\n\t\t\t\treturn malformedRecord(rawRecord, \"Delayed work-admitted notBeforeMs must be a number.\");\n\t\t\t}\n\t\t\tif (!hasWorkRecordCoordinates(rawRecord)) {\n\t\t\t\treturn malformedRecord(\n\t\t\t\t\trawRecord,\n\t\t\t\t\t\"Delayed work-admitted records require queueId, workId, and recordSeq.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst admitted = rawRecord as unknown as Extract<\n\t\t\t\tWorkQueueRecord<unknown>,\n\t\t\t\t{ readonly kind: \"work-admitted\" }\n\t\t\t>;\n\t\t\treturn scheduleFromRecord(admitted, {\n\t\t\t\tscheduleKind: \"work-admitted\",\n\t\t\t\tscheduleId: workQueueScheduleId(admitted, \"admission\", admitted.recordSeq),\n\t\t\t\treadyAtMs: notBeforeMs,\n\t\t\t\tdeadlineMs: admitted.deadlineMs,\n\t\t\t\treason: \"work-queue-delayed-admission\",\n\t\t\t});\n\t\t}\n\t\tcase \"work-scheduled\": {\n\t\t\tif (!hasWorkRecordCoordinates(rawRecord)) {\n\t\t\t\treturn malformedRecord(\n\t\t\t\t\trawRecord,\n\t\t\t\t\t\"work-scheduled records require queueId, workId, and recordSeq.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst scheduled = rawRecord as unknown as Extract<\n\t\t\t\tWorkQueueRecord<unknown>,\n\t\t\t\t{ readonly kind: \"work-scheduled\" }\n\t\t\t>;\n\t\t\treturn scheduleFromRecord(scheduled, {\n\t\t\t\tscheduleKind: \"work-scheduled\",\n\t\t\t\tscheduleId: workQueueScheduleId(\n\t\t\t\t\tscheduled,\n\t\t\t\t\t\"schedule\",\n\t\t\t\t\tscheduled.scheduleId ?? scheduled.commandId ?? scheduled.recordSeq,\n\t\t\t\t),\n\t\t\t\treadyAtMs: scheduled.notBeforeMs,\n\t\t\t\tdeadlineMs: scheduled.deadlineMs,\n\t\t\t\treason: scheduled.reason ?? \"work-queue-schedule\",\n\t\t\t});\n\t\t}\n\t\tcase \"retry-scheduled\": {\n\t\t\tif (!hasWorkRecordCoordinates(rawRecord)) {\n\t\t\t\treturn malformedRecord(\n\t\t\t\t\trawRecord,\n\t\t\t\t\t\"retry-scheduled records require queueId, workId, and recordSeq.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst retry = rawRecord as unknown as Extract<\n\t\t\t\tWorkQueueRecord<unknown>,\n\t\t\t\t{ readonly kind: \"retry-scheduled\" }\n\t\t\t>;\n\t\t\treturn scheduleFromRecord(retry, {\n\t\t\t\tscheduleKind: \"retry-scheduled\",\n\t\t\t\tscheduleId: workQueueScheduleId(retry, \"retry\", retry.commandId ?? retry.recordSeq),\n\t\t\t\treadyAtMs: retry.retryAtMs,\n\t\t\t\treason: retry.reason ?? \"work-queue-retry\",\n\t\t\t\tmetadata: { delayMs: retry.delayMs },\n\t\t\t});\n\t\t}\n\t\tcase \"work-claimed\": {\n\t\t\tif (!hasLeaseRecordCoordinates(rawRecord)) {\n\t\t\t\treturn malformedRecord(\n\t\t\t\t\trawRecord,\n\t\t\t\t\t\"work-claimed records require queueId, workId, recordSeq, leaseId, attempt, and workerId.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst claimed = rawRecord as unknown as Extract<\n\t\t\t\tWorkQueueRecord<unknown>,\n\t\t\t\t{ readonly kind: \"work-claimed\" }\n\t\t\t>;\n\t\t\treturn scheduleFromRecord(claimed, {\n\t\t\t\tscheduleKind: \"lease-expiration\",\n\t\t\t\tscheduleId: workQueueLeaseScheduleId(claimed),\n\t\t\t\treadyAtMs: claimed.leaseExpiresAtMs,\n\t\t\t\treason: \"work-queue-lease-expiration\",\n\t\t\t\tleaseId: claimed.leaseId,\n\t\t\t\tmetadata: { attempt: claimed.attempt },\n\t\t\t});\n\t\t}\n\t\tcase \"lease-renewed\": {\n\t\t\tif (!hasLeaseRecordCoordinates(rawRecord)) {\n\t\t\t\treturn malformedRecord(\n\t\t\t\t\trawRecord,\n\t\t\t\t\t\"lease-renewed records require queueId, workId, recordSeq, leaseId, attempt, and workerId.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst renewed = rawRecord as unknown as Extract<\n\t\t\t\tWorkQueueRecord<unknown>,\n\t\t\t\t{ readonly kind: \"lease-renewed\" }\n\t\t\t>;\n\t\t\treturn scheduleFromRecord(renewed, {\n\t\t\t\tscheduleKind: \"lease-expiration\",\n\t\t\t\tscheduleId: workQueueLeaseScheduleId(renewed),\n\t\t\t\treadyAtMs: renewed.leaseExpiresAtMs,\n\t\t\t\treason: \"work-queue-lease-expiration\",\n\t\t\t\tleaseId: renewed.leaseId,\n\t\t\t\tmetadata: {\n\t\t\t\t\tattempt: renewed.attempt,\n\t\t\t\t\tpreviousLeaseExpiresAtMs: renewed.previousLeaseExpiresAtMs,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tdefault:\n\t\t\treturn { kind: \"none\" };\n\t}\n}\n\nfunction scheduleFromRecord(\n\trecord: WorkQueueRecordWithWorkId,\n\topts: {\n\t\treadonly scheduleKind: WorkQueueScheduledReadinessScheduleKind;\n\t\treadonly scheduleId: string;\n\t\treadonly readyAtMs: number;\n\t\treadonly deadlineMs?: number;\n\t\treadonly reason: string;\n\t\treadonly leaseId?: string;\n\t\treadonly metadata?: Record<string, unknown>;\n\t},\n): TranslatedRecord {\n\tif (!Number.isFinite(opts.readyAtMs) || !finiteOrUndefined(opts.deadlineMs)) {\n\t\tconst refs = recordSourceRefs(record, opts.leaseId);\n\t\tconst issue = dataIssue(\n\t\t\t\"work-queue-scheduled-readiness-malformed-record\",\n\t\t\t\"WorkQueue delayed eligibility record must carry finite readiness and deadline coordinates.\",\n\t\t\t{\n\t\t\t\tsubjectId: workQueueRecordSubjectId(record),\n\t\t\t\trefs,\n\t\t\t\tdetails: {\n\t\t\t\t\trecordKind: record.kind,\n\t\t\t\t\treadyAtMs: opts.readyAtMs,\n\t\t\t\t\tdeadlineMs: opts.deadlineMs,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\treturn {\n\t\t\tkind: \"issue\",\n\t\t\tissue,\n\t\t\tstatus: issueStatus(opts.scheduleId, [issue], record, refs),\n\t\t};\n\t}\n\tconst subjectRefs = recordSubjectRefs(record, opts.leaseId);\n\tconst sourceRefs = recordSourceRefs(record, opts.leaseId);\n\tconst recordPolicyRefs = policyRefs(record);\n\tconst metadata = sanitizeGraphVisibleRecord({\n\t\tqueueId: publicCoordinateId(record.queueId),\n\t\tworkId: publicCoordinateId(record.workId),\n\t\trecordSeq: record.recordSeq,\n\t\trecordKind: record.kind,\n\t\tscheduleKind: opts.scheduleKind,\n\t\t...(record.commandId === undefined ? {} : { commandId: publicCoordinateId(record.commandId) }),\n\t\t...(opts.leaseId === undefined ? {} : { leaseId: publicCoordinateId(opts.leaseId) }),\n\t\t...(opts.metadata ?? {}),\n\t});\n\tconst schedule = Object.freeze({\n\t\tkind: \"scheduled-readiness-requested\",\n\t\tscheduleId: opts.scheduleId,\n\t\tsubjectRefs,\n\t\treadyAtMs: opts.readyAtMs,\n\t\t...(opts.deadlineMs === undefined ? {} : { deadlineMs: opts.deadlineMs }),\n\t\treason: opts.reason,\n\t\t...(recordPolicyRefs === undefined ? {} : { policyRefs: recordPolicyRefs }),\n\t\tsourceRefs,\n\t\t...(metadata === undefined ? {} : { metadata }),\n\t} satisfies ScheduledReadinessRequested);\n\treturn {\n\t\tkind: \"translated\",\n\t\trecord,\n\t\tschedule,\n\t\tstatus: Object.freeze({\n\t\t\tkind: \"work-queue-scheduled-readiness-status\",\n\t\t\tstatusId: `${opts.scheduleId}:work-queue-scheduled-readiness-status:translated`,\n\t\t\tqueueId: publicCoordinateId(record.queueId),\n\t\t\tworkId: publicCoordinateId(record.workId),\n\t\t\trecordSeq: record.recordSeq,\n\t\t\tstate: \"translated\",\n\t\t\tscheduleKind: opts.scheduleKind,\n\t\t\tscheduleId: opts.scheduleId,\n\t\t\treadyAtMs: opts.readyAtMs,\n\t\t\t...(opts.deadlineMs === undefined ? {} : { deadlineMs: opts.deadlineMs }),\n\t\t\tsourceRefs,\n\t\t\t...(metadata === undefined ? {} : { metadata }),\n\t\t} satisfies WorkQueueScheduledReadinessStatus),\n\t};\n}\n\nfunction recordSubjectRefs<T>(\n\trecord: WorkQueueRecord<T> & { readonly workId: string },\n\tleaseId?: string,\n): readonly SourceRef[] {\n\treturn canonicalPublicSourceRefs(\n\t\tuniqueSourceRefs([\n\t\t\tref(\"work-queue\", publicCoordinateId(record.queueId)),\n\t\t\tref(\"work-queue-work\", publicCoordinateId(record.workId)),\n\t\t\tref(\"work-queue-record\", String(record.recordSeq)),\n\t\t\t...(record.commandId === undefined\n\t\t\t\t? []\n\t\t\t\t: [ref(\"work-queue-command\", publicCoordinateId(record.commandId))]),\n\t\t\t...(leaseId === undefined ? [] : [ref(\"work-queue-lease\", publicCoordinateId(leaseId))]),\n\t\t]),\n\t);\n}\n\nfunction recordSourceRefs<T>(\n\trecord: WorkQueueRecord<T> & { readonly workId?: string },\n\tleaseId?: string,\n): readonly SourceRef[] {\n\treturn canonicalPublicSourceRefs(\n\t\tuniqueSourceRefs([\n\t\t\tref(\"work-queue\", publicCoordinateId(record.queueId)),\n\t\t\tref(\"work-queue-record\", String(record.recordSeq)),\n\t\t\t...(record.workId === undefined\n\t\t\t\t? []\n\t\t\t\t: [ref(\"work-queue-work\", publicCoordinateId(record.workId))]),\n\t\t\t...(record.commandId === undefined\n\t\t\t\t? []\n\t\t\t\t: [ref(\"work-queue-command\", publicCoordinateId(record.commandId))]),\n\t\t\t...(leaseId === undefined ? [] : [ref(\"work-queue-lease\", publicCoordinateId(leaseId))]),\n\t\t\t...copiedPublicRefs(record.sourceRefs, \"work-queue-source-ref\"),\n\t\t]),\n\t);\n}\n\nfunction policyRefs<T>(record: WorkQueueRecord<T>): readonly SourceRef[] | undefined {\n\tif (record.policyRefs === undefined || record.policyRefs.length === 0) return undefined;\n\treturn canonicalPublicSourceRefs(copiedPublicRefs(record.policyRefs, \"work-queue-policy-ref\"));\n}\n\nfunction workQueueScheduleId<T>(\n\trecord: WorkQueueRecord<T> & { readonly workId: string },\n\tpart: \"admission\" | \"retry\" | \"schedule\",\n\tid: string | number,\n): string {\n\treturn `workQueue:${publicCoordinateId(record.queueId)}:${publicCoordinateId(record.workId)}:${part}:${publicCoordinateId(String(id))}`;\n}\n\nfunction workQueueLeaseScheduleId<T>(\n\trecord: WorkQueueRecord<T> & {\n\t\treadonly workId: string;\n\t\treadonly leaseId: string;\n\t\treadonly recordSeq: number;\n\t},\n): string {\n\treturn `workQueue:${publicCoordinateId(record.queueId)}:${publicCoordinateId(record.workId)}:lease:${publicCoordinateId(record.leaseId)}:expires:${record.recordSeq}`;\n}\n\nfunction workQueueRecordSubjectId<T>(\n\trecord: WorkQueueRecord<T> & { readonly workId: string },\n): string {\n\treturn `${publicCoordinateId(record.queueId)}:${publicCoordinateId(record.workId)}:${record.recordSeq}`;\n}\n\nfunction copiedPublicRefs(ids: readonly string[] | undefined, kind: string): readonly SourceRef[] {\n\tif (ids === undefined || ids.length === 0) return [];\n\tconst copied = ids\n\t\t.slice(0, MAX_COPIED_PUBLIC_REFS)\n\t\t.map((id) => ref(kind, publicCoordinateId(id)));\n\tif (ids.length <= MAX_COPIED_PUBLIC_REFS) return copied;\n\treturn [\n\t\t...copied,\n\t\tref(\n\t\t\t`${kind}-overflow`,\n\t\t\t`count:${ids.length}:hash:${stableStringHash(stableJsonStringify(ids))}`,\n\t\t),\n\t];\n}\n\nfunction publicCoordinateId(id: string): string {\n\tif (id.length <= MAX_PUBLIC_COORDINATE_ID_CHARS && !PRIVATE_COORDINATE_PATTERN.test(id)) {\n\t\treturn id;\n\t}\n\treturn `bounded:${stableStringHash(id)}:${id.length}`;\n}\n\nfunction issueStatus<T>(\n\tstatusId: string,\n\tissues: readonly DataIssue[],\n\trecord?: WorkQueueRecord<T>,\n\tsourceRefs?: readonly SourceRef[],\n): WorkQueueScheduledReadinessStatus {\n\treturn Object.freeze({\n\t\tkind: \"work-queue-scheduled-readiness-status\",\n\t\tstatusId: `${statusId}:work-queue-scheduled-readiness-status:issue`,\n\t\t...(record?.queueId === undefined ? {} : { queueId: publicCoordinateId(record.queueId) }),\n\t\t...(record?.workId === undefined ? {} : { workId: publicCoordinateId(record.workId) }),\n\t\t...(record?.recordSeq === undefined ? {} : { recordSeq: record.recordSeq }),\n\t\tstate: \"issue\",\n\t\t...(sourceRefs === undefined ? {} : { sourceRefs }),\n\t\tissueCodes: issues.map((issue) => issue.code),\n\t} satisfies WorkQueueScheduledReadinessStatus);\n}\n\nfunction finiteOrUndefined(value: number | undefined): boolean {\n\treturn value === undefined || Number.isFinite(value);\n}\n\nfunction scheduleIdentity(schedule: ScheduledReadinessRequested): string {\n\treturn stableJsonStringify({\n\t\tscheduleId: schedule.scheduleId,\n\t\tsubjectRefs: schedule.subjectRefs,\n\t\treadyAtMs: schedule.readyAtMs,\n\t\tdeadlineMs: schedule.deadlineMs,\n\t\treason: schedule.reason,\n\t\tpolicyRefs: schedule.policyRefs,\n\t\tsourceRefs: schedule.sourceRefs,\n\t\tmetadata: schedule.metadata,\n\t});\n}\n\nfunction emitScheduleConflict(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueScheduledReadinessFact][]) => void },\n\tstate: WorkQueueScheduledReadinessProjectorState,\n\ttranslated: Extract<TranslatedRecord, { readonly kind: \"translated\" }>,\n\texisting?: ScheduledReadinessRequested,\n): void {\n\tconst issue = dataIssue(\n\t\t\"work-queue-scheduled-readiness-schedule-conflict\",\n\t\t\"WorkQueue delayed eligibility replayed with conflicting scheduled-readiness material; the first schedule was retained.\",\n\t\t{\n\t\t\tsubjectId: translated.schedule.scheduleId,\n\t\t\trefs: translated.schedule.sourceRefs,\n\t\t\tdetails: {\n\t\t\t\texistingReadyAtMs: existing?.readyAtMs,\n\t\t\t\tincomingReadyAtMs: translated.schedule.readyAtMs,\n\t\t\t\texistingDeadlineMs: existing?.deadlineMs,\n\t\t\t\tincomingDeadlineMs: translated.schedule.deadlineMs,\n\t\t\t\trecordSeq: translated.record.recordSeq,\n\t\t\t\trecordKind: translated.record.kind,\n\t\t\t},\n\t\t},\n\t);\n\temitIssue(ctx, state, issue);\n\temitStatus(\n\t\tctx,\n\t\tstate,\n\t\tissueStatus(\n\t\t\t`${translated.schedule.scheduleId}:conflict:${translated.record.recordSeq}`,\n\t\t\t[issue],\n\t\t\ttranslated.record,\n\t\t\ttranslated.schedule.sourceRefs,\n\t\t),\n\t);\n}\n\nfunction emitSchedule(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueScheduledReadinessFact][]) => void },\n\tstate: WorkQueueScheduledReadinessProjectorState,\n\tschedule: ScheduledReadinessRequested,\n): void {\n\tconst key = `schedule:${schedule.scheduleId}`;\n\tif (state.emittedKeys.has(key)) return;\n\tstate.emittedKeys.add(key);\n\tctx.down([[\"DATA\", { kind: \"readiness-schedule\", schedule }]]);\n}\n\nfunction emitStatus(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueScheduledReadinessFact][]) => void },\n\tstate: WorkQueueScheduledReadinessProjectorState,\n\tstatus: WorkQueueScheduledReadinessStatus,\n): void {\n\tstate.statusById.set(status.statusId, status);\n\tconst key = `status:${status.statusId}:${(status.issueCodes ?? []).join(\",\")}`;\n\tif (state.emittedKeys.has(key)) return;\n\tstate.emittedKeys.add(key);\n\tctx.down([[\"DATA\", { kind: \"status\", status }]]);\n}\n\nfunction emitIssue(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueScheduledReadinessFact][]) => void },\n\tstate: WorkQueueScheduledReadinessProjectorState,\n\tissue: DataIssue,\n): void {\n\tconst key = `${issue.code}:${issue.subjectId ?? \"\"}:${JSON.stringify(issue.details ?? {})}`;\n\tif (state.issueKeys.has(key)) return;\n\tstate.issueKeys.add(key);\n\tctx.down([[\"DATA\", { kind: \"issue\", issue }]]);\n}\n\nfunction emitAudit(\n\tctx: { down: (msgs: readonly [\"DATA\", WorkQueueScheduledReadinessFact][]) => void },\n\tstate: WorkQueueScheduledReadinessProjectorState,\n\tkind: string,\n\topts: {\n\t\treadonly subjectId: string;\n\t\treadonly sourceRefs?: readonly SourceRef[];\n\t\treadonly metadata?: Record<string, unknown>;\n\t},\n): void {\n\tstate.auditSeq += 1;\n\tconst metadata = sanitizeGraphVisibleRecord(opts.metadata);\n\tctx.down([\n\t\t[\n\t\t\t\"DATA\",\n\t\t\t{\n\t\t\t\tkind: \"audit\",\n\t\t\t\taudit: Object.freeze({\n\t\t\t\t\tid: `work-queue-scheduled-readiness-audit-${state.auditSeq}`,\n\t\t\t\t\tkind,\n\t\t\t\t\tsubjectId: opts.subjectId,\n\t\t\t\t\t...(opts.sourceRefs === undefined\n\t\t\t\t\t\t? {}\n\t\t\t\t\t\t: { sourceRefs: canonicalPublicSourceRefs(opts.sourceRefs) }),\n\t\t\t\t\t...(metadata === undefined ? {} : { metadata }),\n\t\t\t\t} satisfies AgentRuntimeAuditRecord),\n\t\t\t},\n\t\t],\n\t]);\n}\n\nfunction buildViews(\n\tstate: WorkQueueScheduledReadinessProjectorState,\n): WorkQueueScheduledReadinessViews {\n\treturn Object.freeze({\n\t\tschedulesById: new Map(state.schedulesById),\n\t\tstatusById: new Map(state.statusById),\n\t});\n}\n","/**\n * Optional orchestration-over-workQueue recipe (D349/D353).\n *\n * Queue lifecycle remains disposition evidence. This module maps visible\n * ProcessEffectRequest facts to queue commands and maps terminal queue records\n * back to graph-visible orchestration evidence/status/issue facts.\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 { ProcessEffectRequest } from \"../orchestration/index.js\";\nimport type { WorkQueueCommand, WorkQueueRecord } from \"../work-queue/index.js\";\n\nexport type {\n\tWorkQueueLeaseExpirationCommandBundle,\n\tWorkQueueReadinessCandidate,\n\tWorkQueueReadinessCandidateKind,\n\tWorkQueueReadinessHandoffBundle,\n\tWorkQueueReadinessHandoffStatus,\n\tWorkQueueReadinessHandoffStatusState,\n\tWorkQueueReadinessHandoffViews,\n\tWorkQueueScheduledReadinessBundle,\n\tWorkQueueScheduledReadinessScheduleKind,\n\tWorkQueueScheduledReadinessStatus,\n\tWorkQueueScheduledReadinessStatusState,\n\tWorkQueueScheduledReadinessViews,\n} from \"./work-queue-scheduled-readiness.js\";\nexport {\n\tworkQueueLeaseExpirationCommandProjector,\n\tworkQueueReadinessHandoffProjector,\n\tworkQueueScheduledReadinessProjector,\n} from \"./work-queue-scheduled-readiness.js\";\n\nexport interface OrchestrationQueuedEffectPayload<TEffect = unknown> {\n\treadonly kind: \"orchestration-queued-effect\";\n\treadonly effect: ProcessEffectRequest<TEffect>;\n\treadonly idempotencyKey?: string;\n\treadonly sourceRefs?: readonly string[];\n\treadonly policyRefs?: readonly string[];\n\treadonly metadata?: Record<string, unknown>;\n}\n\nexport interface OrchestrationQueueEvidence {\n\treadonly kind: \"orchestration-queue-evidence\";\n\treadonly evidenceId: string;\n\treadonly effectId: string;\n\treadonly effectType: string;\n\treadonly workId: string;\n\treadonly queueRecordKind: WorkQueueRecord[\"kind\"];\n\treadonly result?: unknown;\n\treadonly error?: unknown;\n\treadonly recordedAtMs: number;\n}\n\nexport interface OrchestrationQueueStatus {\n\treadonly kind: \"orchestration-queue-status\";\n\treadonly state: \"evidence-recorded\" | \"mapping-issue\";\n\treadonly effectId?: string;\n\treadonly effectType?: string;\n\treadonly workId?: string;\n\treadonly queueRecordKind?: WorkQueueRecord[\"kind\"];\n\treadonly evidenceId?: string;\n\treadonly issues?: readonly DataIssue[];\n}\n\nexport interface OrchestrationQueueAuditRecord {\n\treadonly kind: \"orchestration-queue-audit\";\n\treadonly seq: number;\n\treadonly outcome: \"mapped\" | \"issue\";\n\treadonly effectId?: string;\n\treadonly effectType?: string;\n\treadonly workId?: string;\n\treadonly queueRecordKind?: WorkQueueRecord[\"kind\"];\n\treadonly evidenceId?: string;\n}\n\nexport interface OrchestrationWorkQueueRecipeOptions<TEffect = unknown> {\n\treadonly name?: string;\n\treadonly effectRequests?: Node<ProcessEffectRequest<TEffect>>;\n\treadonly records: Node<WorkQueueRecord<OrchestrationQueuedEffectPayload<TEffect>>>;\n}\n\nexport interface OrchestrationWorkQueueRecipeBundle<TEffect = unknown> {\n\treadonly submitCommands?: Node<WorkQueueCommand<OrchestrationQueuedEffectPayload<TEffect>>>;\n\treadonly evidence: Node<OrchestrationQueueEvidence>;\n\treadonly status: Node<OrchestrationQueueStatus>;\n\treadonly issues: Node<DataIssue>;\n\treadonly audit: Node<OrchestrationQueueAuditRecord>;\n}\n\ntype OrchestrationQueueFact =\n\t| { readonly kind: \"evidence\"; readonly evidence: OrchestrationQueueEvidence }\n\t| { readonly kind: \"status\"; readonly status: OrchestrationQueueStatus }\n\t| { readonly kind: \"issue\"; readonly issue: DataIssue }\n\t| { readonly kind: \"audit\"; readonly audit: OrchestrationQueueAuditRecord };\n\ninterface QueueState<TEffect> {\n\treadonly payloads: Map<string, OrchestrationQueuedEffectPayload<TEffect>>;\n\treadonly terminalRecords: Set<string>;\n\tauditSeq: number;\n}\n\n/** Build the optional D349 orchestration workQueue recipe. */\nexport function orchestrationWorkQueueRecipe<TEffect = unknown>(\n\tgraph: Graph,\n\topts: OrchestrationWorkQueueRecipeOptions<TEffect>,\n): OrchestrationWorkQueueRecipeBundle<TEffect> {\n\tconst name = opts.name ?? \"orchestrationWorkQueue\";\n\tconst submitCommands =\n\t\topts.effectRequests === undefined\n\t\t\t? undefined\n\t\t\t: graph.node<WorkQueueCommand<OrchestrationQueuedEffectPayload<TEffect>>>(\n\t\t\t\t\t[opts.effectRequests],\n\t\t\t\t\t(ctx) => {\n\t\t\t\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\t\t\t\tctx.down([\n\t\t\t\t\t\t\t\t[\"DATA\", processEffectSubmitCommand(raw as ProcessEffectRequest<TEffect>)],\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: `${name}/submitCommands`,\n\t\t\t\t\t\tfactory: \"orchestrationWorkQueueSubmitCommands\",\n\t\t\t\t\t\tcompleteWhenDepsComplete: false,\n\t\t\t\t\t\terrorWhenDepsError: false,\n\t\t\t\t\t},\n\t\t\t\t);\n\tconst runtime = graph.node<OrchestrationQueueFact>(\n\t\t[opts.records],\n\t\t(ctx) => {\n\t\t\tconst state = ctx.state.get<QueueState<TEffect>>() ?? {\n\t\t\t\tpayloads: new Map(),\n\t\t\t\tterminalRecords: new Set(),\n\t\t\t\tauditSeq: 0,\n\t\t\t};\n\t\t\tfor (const raw of depBatch(ctx, 0) ?? []) {\n\t\t\t\treduceRecord(ctx, state, raw as WorkQueueRecord<OrchestrationQueuedEffectPayload<TEffect>>);\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: \"orchestrationWorkQueueRuntime\",\n\t\t\tpartial: true,\n\t\t\tcompleteWhenDepsComplete: false,\n\t\t\terrorWhenDepsError: false,\n\t\t},\n\t);\n\treturn {\n\t\t...(submitCommands === undefined ? {} : { submitCommands }),\n\t\tevidence: project(\n\t\t\tgraph,\n\t\t\truntime,\n\t\t\t`${name}/evidence`,\n\t\t\t\"orchestrationWorkQueueEvidence\",\n\t\t\t(fact) => (fact.kind === \"evidence\" ? fact.evidence : undefined),\n\t\t),\n\t\tstatus: project(graph, runtime, `${name}/status`, \"orchestrationWorkQueueStatus\", (fact) =>\n\t\t\tfact.kind === \"status\" ? fact.status : undefined,\n\t\t),\n\t\tissues: project(graph, runtime, `${name}/issues`, \"orchestrationWorkQueueIssues\", (fact) =>\n\t\t\tfact.kind === \"issue\" ? fact.issue : undefined,\n\t\t),\n\t\taudit: project(graph, runtime, `${name}/audit`, \"orchestrationWorkQueueAudit\", (fact) =>\n\t\t\tfact.kind === \"audit\" ? fact.audit : undefined,\n\t\t),\n\t};\n}\n\nexport function processEffectSubmitCommand<TEffect>(\n\teffect: ProcessEffectRequest<TEffect>,\n\topts: {\n\t\treadonly workId?: string;\n\t\treadonly commandId?: string;\n\t\treadonly idempotencyKey?: string;\n\t\treadonly sourceRefs?: readonly string[];\n\t\treadonly policyRefs?: readonly string[];\n\t\treadonly metadata?: Record<string, unknown>;\n\t} = {},\n): WorkQueueCommand<OrchestrationQueuedEffectPayload<TEffect>> {\n\tconst payload: OrchestrationQueuedEffectPayload<TEffect> = {\n\t\tkind: \"orchestration-queued-effect\",\n\t\teffect,\n\t\tidempotencyKey: opts.idempotencyKey ?? effect.id,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tpolicyRefs: opts.policyRefs,\n\t\tmetadata: opts.metadata,\n\t};\n\treturn {\n\t\tkind: \"submit\",\n\t\tcommandId: opts.commandId ?? `${effect.id}:orchestration-work-queue-submit`,\n\t\tworkId: opts.workId ?? `process-effect:${effect.id}`,\n\t\tpayload,\n\t\tidempotencyKey: opts.idempotencyKey ?? effect.id,\n\t\tsourceRefs: opts.sourceRefs,\n\t\tpolicyRefs: opts.policyRefs,\n\t};\n}\n\nfunction reduceRecord<TEffect>(\n\tctx: Ctx,\n\tstate: QueueState<TEffect>,\n\trecord: WorkQueueRecord<OrchestrationQueuedEffectPayload<TEffect>>,\n): void {\n\tif (record.kind === \"work-admitted\") {\n\t\tif (isQueuedEffectPayload(record.payload)) {\n\t\t\tstate.payloads.set(record.workId, record.payload);\n\t\t} else {\n\t\t\temitIssue(ctx, state, record, \"orchestration-queue-malformed-payload\");\n\t\t}\n\t\treturn;\n\t}\n\tif (!isTerminalEvidenceRecord(record)) return;\n\tconst key = `${record.kind}:${record.recordSeq}`;\n\tif (state.terminalRecords.has(key)) return;\n\tstate.terminalRecords.add(key);\n\tconst payload = record.workId === undefined ? undefined : state.payloads.get(record.workId);\n\tif (payload === undefined) {\n\t\temitIssue(ctx, state, record, \"orchestration-queue-record-without-payload\");\n\t\treturn;\n\t}\n\tconst evidence = evidenceFromRecord(record, payload);\n\temit(ctx, { kind: \"evidence\", evidence });\n\temit(ctx, { kind: \"status\", status: statusFromEvidence(evidence, payload) });\n\tstate.auditSeq += 1;\n\temit(ctx, { kind: \"audit\", audit: auditFromEvidence(state.auditSeq, evidence, payload) });\n}\n\nfunction isTerminalEvidenceRecord(record: WorkQueueRecord): boolean {\n\treturn (\n\t\trecord.kind === \"work-completed\" ||\n\t\trecord.kind === \"attempt-completed\" ||\n\t\trecord.kind === \"work-canceled\" ||\n\t\trecord.kind === \"work-dead-lettered\" ||\n\t\trecord.kind === \"attempt-failed\"\n\t);\n}\n\nfunction evidenceFromRecord<TEffect>(\n\trecord: WorkQueueRecord<OrchestrationQueuedEffectPayload<TEffect>>,\n\tpayload: OrchestrationQueuedEffectPayload<TEffect>,\n): OrchestrationQueueEvidence {\n\treturn {\n\t\tkind: \"orchestration-queue-evidence\",\n\t\tevidenceId: `work-queue:${record.recordSeq}`,\n\t\teffectId: payload.effect.id,\n\t\teffectType: payload.effect.type,\n\t\tworkId: record.workId ?? `unknown:${record.recordSeq}`,\n\t\tqueueRecordKind: record.kind,\n\t\tresult: \"result\" in record ? record.result : undefined,\n\t\terror: \"error\" in record ? record.error : undefined,\n\t\trecordedAtMs: record.recordedAtMs,\n\t};\n}\n\nfunction statusFromEvidence<TEffect>(\n\tevidence: OrchestrationQueueEvidence,\n\tpayload: OrchestrationQueuedEffectPayload<TEffect>,\n): OrchestrationQueueStatus {\n\treturn {\n\t\tkind: \"orchestration-queue-status\",\n\t\tstate: \"evidence-recorded\",\n\t\teffectId: payload.effect.id,\n\t\teffectType: payload.effect.type,\n\t\tworkId: evidence.workId,\n\t\tqueueRecordKind: evidence.queueRecordKind,\n\t\tevidenceId: evidence.evidenceId,\n\t};\n}\n\nfunction auditFromEvidence<TEffect>(\n\tseq: number,\n\tevidence: OrchestrationQueueEvidence,\n\tpayload: OrchestrationQueuedEffectPayload<TEffect>,\n): OrchestrationQueueAuditRecord {\n\treturn {\n\t\tkind: \"orchestration-queue-audit\",\n\t\tseq,\n\t\toutcome: \"mapped\",\n\t\teffectId: payload.effect.id,\n\t\teffectType: payload.effect.type,\n\t\tworkId: evidence.workId,\n\t\tqueueRecordKind: evidence.queueRecordKind,\n\t\tevidenceId: evidence.evidenceId,\n\t};\n}\n\nfunction auditFromIssue(\n\tseq: number,\n\trecord: WorkQueueRecord<unknown>,\n): OrchestrationQueueAuditRecord {\n\treturn {\n\t\tkind: \"orchestration-queue-audit\",\n\t\tseq,\n\t\toutcome: \"issue\",\n\t\tworkId: record.workId,\n\t\tqueueRecordKind: record.kind,\n\t};\n}\n\nfunction project<T>(\n\tgraph: Graph,\n\truntime: Node<OrchestrationQueueFact>,\n\tname: string,\n\tfactory: string,\n\tpick: (fact: OrchestrationQueueFact) => T | undefined,\n): Node<T> {\n\treturn graph.node<T>(\n\t\t[runtime],\n\t\t(ctx) => {\n\t\t\tfor (const fact of depBatch(ctx, 0) ?? []) {\n\t\t\t\tconst value = pick(fact as OrchestrationQueueFact);\n\t\t\t\tif (value !== undefined) ctx.down([[\"DATA\", value]]);\n\t\t\t}\n\t\t},\n\t\t{ name, factory, partial: true, completeWhenDepsComplete: false, errorWhenDepsError: false },\n\t);\n}\n\nfunction emit(ctx: Ctx, fact: OrchestrationQueueFact): void {\n\tctx.down([[\"DATA\", fact]]);\n}\n\nfunction emitIssue(\n\tctx: Ctx,\n\tstate: QueueState<unknown>,\n\trecord: WorkQueueRecord<unknown>,\n\tcode: string,\n): void {\n\tconst issue = queueIssue(record, code);\n\temit(ctx, { kind: \"issue\", issue });\n\tstate.auditSeq += 1;\n\temit(ctx, {\n\t\tkind: \"status\",\n\t\tstatus: {\n\t\t\tkind: \"orchestration-queue-status\",\n\t\t\tstate: \"mapping-issue\",\n\t\t\tworkId: record.workId,\n\t\t\tqueueRecordKind: record.kind,\n\t\t\tissues: [issue],\n\t\t},\n\t});\n\temit(ctx, {\n\t\tkind: \"audit\",\n\t\taudit: auditFromIssue(state.auditSeq, record),\n\t});\n}\n\nfunction queueIssue(record: WorkQueueRecord<unknown>, code: string): DataIssue {\n\treturn {\n\t\tkind: \"issue\",\n\t\tcode,\n\t\tmessage: `Orchestration workQueue recipe could not map record '${record.kind}'`,\n\t\tseverity: \"error\",\n\t\tsource: \"orchestration.workQueue\",\n\t\tdetails: record,\n\t};\n}\n\nfunction isQueuedEffectPayload<TEffect>(\n\tvalue: unknown,\n): value is OrchestrationQueuedEffectPayload<TEffect> {\n\tif (!isObjectRecord(value) || value.kind !== \"orchestration-queued-effect\") return false;\n\tconst effect = value.effect;\n\treturn isObjectRecord(effect) && typeof effect.id === \"string\" && typeof effect.type === \"string\";\n}\n\nfunction isObjectRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null;\n}\n"],"mappings":"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","names":["emitIssue"]}
@@ -39,7 +39,12 @@ function depBatch(ctx, depIndex) {
39
39
  return flattened.length === 0 ? [] : flattened;
40
40
  }
41
41
 
42
- // src/messaging/index.ts
42
+ // src/messaging/utils.ts
43
+ function isObjectRecord(value) {
44
+ return typeof value === "object" && value !== null && !Array.isArray(value);
45
+ }
46
+
47
+ // src/messaging/event-message.ts
43
48
  function eventMessageIssue(value) {
44
49
  if (!isObjectRecord(value)) {
45
50
  return eventIssue("event message must be an object");
@@ -64,25 +69,6 @@ function eventIssue(message) {
64
69
  source: "messageBus.eventMessage"
65
70
  };
66
71
  }
67
- var PROMPTS_TOPIC = "prompts";
68
- var RESPONSES_TOPIC = "responses";
69
- var INJECTIONS_TOPIC = "injections";
70
- var DEFERRED_TOPIC = "deferred";
71
- var SPAWNS_TOPIC = "spawns";
72
- var CONTEXT_TOPIC = "context";
73
- var TODOS_TOPIC = "todos";
74
- var STANDARD_TOPICS = Object.freeze([
75
- PROMPTS_TOPIC,
76
- RESPONSES_TOPIC,
77
- INJECTIONS_TOPIC,
78
- DEFERRED_TOPIC,
79
- SPAWNS_TOPIC,
80
- CONTEXT_TOPIC,
81
- TODOS_TOPIC
82
- ]);
83
- function isObjectRecord(value) {
84
- return typeof value === "object" && value !== null && !Array.isArray(value);
85
- }
86
72
 
87
73
  // src/patterns/event-flow.ts
88
74
  function eventFlow(graph, opts) {