@openrig/cli 0.4.4 → 0.4.6

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 (431) hide show
  1. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +6 -8
  2. package/daemon/assets/plugins/openrig-core/skills/openrig-cmux/SKILL.md +86 -0
  3. package/daemon/assets/plugins/openrig-core/skills/openrig-herdr/SKILL.md +158 -0
  4. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +744 -96
  5. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  6. package/daemon/dist/adapters/codex-runtime-adapter.js +12 -8
  7. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  8. package/daemon/dist/adapters/pi-resume.d.ts +32 -0
  9. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -0
  10. package/daemon/dist/adapters/pi-resume.js +125 -0
  11. package/daemon/dist/adapters/pi-resume.js.map +1 -0
  12. package/daemon/dist/adapters/pi-runner-protocol.d.ts +88 -0
  13. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -0
  14. package/daemon/dist/adapters/pi-runner-protocol.js +153 -0
  15. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -0
  16. package/daemon/dist/adapters/pi-runner.d.ts +99 -0
  17. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -0
  18. package/daemon/dist/adapters/pi-runner.js +519 -0
  19. package/daemon/dist/adapters/pi-runner.js.map +1 -0
  20. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +61 -0
  21. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -0
  22. package/daemon/dist/adapters/pi-runtime-adapter.js +356 -0
  23. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -0
  24. package/daemon/dist/adapters/tmux.d.ts +22 -1
  25. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  26. package/daemon/dist/adapters/tmux.js +40 -1
  27. package/daemon/dist/adapters/tmux.js.map +1 -1
  28. package/daemon/dist/build-info.js +3 -3
  29. package/daemon/dist/builtins/workflow-specs/branched-remediation.yaml +31 -0
  30. package/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +152 -0
  31. package/daemon/dist/builtins/workflow-specs/gated-release.yaml +26 -0
  32. package/daemon/dist/builtins/workflow-specs/linear-build.yaml +21 -0
  33. package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts +20 -0
  34. package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts.map +1 -0
  35. package/daemon/dist/db/migrations/049_workflow_instance_version.js +24 -0
  36. package/daemon/dist/db/migrations/049_workflow_instance_version.js.map +1 -0
  37. package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts +22 -0
  38. package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts.map +1 -0
  39. package/daemon/dist/db/migrations/050_workflow_spec_json.js +26 -0
  40. package/daemon/dist/db/migrations/050_workflow_spec_json.js.map +1 -0
  41. package/daemon/dist/db/migrations/051_workflow_resume.d.ts +22 -0
  42. package/daemon/dist/db/migrations/051_workflow_resume.d.ts.map +1 -0
  43. package/daemon/dist/db/migrations/051_workflow_resume.js +27 -0
  44. package/daemon/dist/db/migrations/051_workflow_resume.js.map +1 -0
  45. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts +26 -0
  46. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts.map +1 -0
  47. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js +30 -0
  48. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js.map +1 -0
  49. package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts +48 -0
  50. package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts.map +1 -0
  51. package/daemon/dist/db/migrations/053_sessions_node_id_index.js +53 -0
  52. package/daemon/dist/db/migrations/053_sessions_node_id_index.js.map +1 -0
  53. package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts +34 -0
  54. package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts.map +1 -0
  55. package/daemon/dist/db/migrations/054_queue_transitions_archive.js +49 -0
  56. package/daemon/dist/db/migrations/054_queue_transitions_archive.js.map +1 -0
  57. package/daemon/dist/domain/claim-service.d.ts +11 -0
  58. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  59. package/daemon/dist/domain/claim-service.js +3 -1
  60. package/daemon/dist/domain/claim-service.js.map +1 -1
  61. package/daemon/dist/domain/discovery-types.d.ts +1 -1
  62. package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
  63. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +1 -0
  64. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  65. package/daemon/dist/domain/hosts/hosts-registry-reader.js +19 -0
  66. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  67. package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts +11 -0
  68. package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -0
  69. package/daemon/dist/domain/hosts/hosts-registry-writer.js +54 -0
  70. package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -0
  71. package/daemon/dist/domain/hosts/read-through.d.ts +28 -0
  72. package/daemon/dist/domain/hosts/read-through.d.ts.map +1 -0
  73. package/daemon/dist/domain/hosts/read-through.js +139 -0
  74. package/daemon/dist/domain/hosts/read-through.js.map +1 -0
  75. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +21 -0
  76. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  77. package/daemon/dist/domain/hosts/remote-daemon-http.js +49 -0
  78. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  79. package/daemon/dist/domain/node-inventory.d.ts +18 -0
  80. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  81. package/daemon/dist/domain/node-inventory.js +206 -95
  82. package/daemon/dist/domain/node-inventory.js.map +1 -1
  83. package/daemon/dist/domain/node-launcher.d.ts +11 -0
  84. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  85. package/daemon/dist/domain/node-launcher.js +10 -0
  86. package/daemon/dist/domain/node-launcher.js.map +1 -1
  87. package/daemon/dist/domain/policies/workflow-keepalive.d.ts +7 -0
  88. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  89. package/daemon/dist/domain/policies/workflow-keepalive.js +93 -13
  90. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  91. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  92. package/daemon/dist/domain/ps-projection.js +37 -26
  93. package/daemon/dist/domain/ps-projection.js.map +1 -1
  94. package/daemon/dist/domain/queue-repository.d.ts +105 -0
  95. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  96. package/daemon/dist/domain/queue-repository.js +193 -4
  97. package/daemon/dist/domain/queue-repository.js.map +1 -1
  98. package/daemon/dist/domain/queue-retention.d.ts +130 -0
  99. package/daemon/dist/domain/queue-retention.d.ts.map +1 -0
  100. package/daemon/dist/domain/queue-retention.js +224 -0
  101. package/daemon/dist/domain/queue-retention.js.map +1 -0
  102. package/daemon/dist/domain/restore-orchestrator.d.ts +5 -0
  103. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  104. package/daemon/dist/domain/restore-orchestrator.js +29 -2
  105. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  106. package/daemon/dist/domain/resume-token-capture.d.ts +13 -0
  107. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  108. package/daemon/dist/domain/resume-token-capture.js +14 -1
  109. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  110. package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
  111. package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
  112. package/daemon/dist/domain/resume-token-validation.js +58 -10
  113. package/daemon/dist/domain/resume-token-validation.js.map +1 -1
  114. package/daemon/dist/domain/review/compose.d.ts +50 -1
  115. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  116. package/daemon/dist/domain/review/compose.js +92 -3
  117. package/daemon/dist/domain/review/compose.js.map +1 -1
  118. package/daemon/dist/domain/review/fleet-compose.d.ts +52 -0
  119. package/daemon/dist/domain/review/fleet-compose.d.ts.map +1 -0
  120. package/daemon/dist/domain/review/fleet-compose.js +294 -0
  121. package/daemon/dist/domain/review/fleet-compose.js.map +1 -0
  122. package/daemon/dist/domain/review/gather.d.ts +16 -1
  123. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  124. package/daemon/dist/domain/review/gather.js +177 -41
  125. package/daemon/dist/domain/review/gather.js.map +1 -1
  126. package/daemon/dist/domain/review/types.d.ts +104 -1
  127. package/daemon/dist/domain/review/types.d.ts.map +1 -1
  128. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  129. package/daemon/dist/domain/rig-expansion-service.js +3 -0
  130. package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  131. package/daemon/dist/domain/rig-repository.d.ts +7 -6
  132. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  133. package/daemon/dist/domain/rig-repository.js +33 -11
  134. package/daemon/dist/domain/rig-repository.js.map +1 -1
  135. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  136. package/daemon/dist/domain/rigspec-codec.js +3 -0
  137. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  138. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  139. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  140. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  141. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  142. package/daemon/dist/domain/rigspec-instantiator.js +11 -0
  143. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  144. package/daemon/dist/domain/rigspec-preflight.d.ts +6 -0
  145. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  146. package/daemon/dist/domain/rigspec-preflight.js +26 -1
  147. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  148. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  149. package/daemon/dist/domain/rigspec-schema.js +20 -1
  150. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  151. package/daemon/dist/domain/runtime-verifier.d.ts +7 -1
  152. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  153. package/daemon/dist/domain/runtime-verifier.js +39 -1
  154. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  155. package/daemon/dist/domain/seat-handover-service.d.ts +9 -0
  156. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  157. package/daemon/dist/domain/seat-handover-service.js +2 -0
  158. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  159. package/daemon/dist/domain/seat-identity-store.d.ts +7 -0
  160. package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
  161. package/daemon/dist/domain/seat-identity-store.js +27 -0
  162. package/daemon/dist/domain/seat-identity-store.js.map +1 -1
  163. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  164. package/daemon/dist/domain/seat-status-service.js +6 -4
  165. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  166. package/daemon/dist/domain/session-name.d.ts +22 -0
  167. package/daemon/dist/domain/session-name.d.ts.map +1 -1
  168. package/daemon/dist/domain/session-name.js +29 -0
  169. package/daemon/dist/domain/session-name.js.map +1 -1
  170. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  171. package/daemon/dist/domain/slices/slice-detail-projector.js +4 -5
  172. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  173. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +18 -2
  174. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  175. package/daemon/dist/domain/spec-library-workflow-scanner.js +23 -1
  176. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  177. package/daemon/dist/domain/startup-proof.d.ts +10 -6
  178. package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  179. package/daemon/dist/domain/startup-proof.js +35 -7
  180. package/daemon/dist/domain/startup-proof.js.map +1 -1
  181. package/daemon/dist/domain/successor-session-launcher.d.ts +16 -0
  182. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  183. package/daemon/dist/domain/successor-session-launcher.js +13 -0
  184. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  185. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +27 -0
  186. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -0
  187. package/daemon/dist/domain/terminal/cmux-provider-adapter.js +67 -0
  188. package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -0
  189. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +77 -0
  190. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -0
  191. package/daemon/dist/domain/terminal/herdr-adapter.js +266 -0
  192. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -0
  193. package/daemon/dist/domain/terminal/herdr-transport.d.ts +50 -0
  194. package/daemon/dist/domain/terminal/herdr-transport.d.ts.map +1 -0
  195. package/daemon/dist/domain/terminal/herdr-transport.js +145 -0
  196. package/daemon/dist/domain/terminal/herdr-transport.js.map +1 -0
  197. package/daemon/dist/domain/terminal/terminal-provider.d.ts +88 -0
  198. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -0
  199. package/daemon/dist/domain/terminal/terminal-provider.js +17 -0
  200. package/daemon/dist/domain/terminal/terminal-provider.js.map +1 -0
  201. package/daemon/dist/domain/terminal/terminal-service.d.ts +60 -0
  202. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -0
  203. package/daemon/dist/domain/terminal/terminal-service.js +174 -0
  204. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -0
  205. package/daemon/dist/domain/terminal/terminal-views-store.d.ts +77 -0
  206. package/daemon/dist/domain/terminal/terminal-views-store.d.ts.map +1 -0
  207. package/daemon/dist/domain/terminal/terminal-views-store.js +146 -0
  208. package/daemon/dist/domain/terminal/terminal-views-store.js.map +1 -0
  209. package/daemon/dist/domain/terminal/view-composer.d.ts +42 -0
  210. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -0
  211. package/daemon/dist/domain/terminal/view-composer.js +137 -0
  212. package/daemon/dist/domain/terminal/view-composer.js.map +1 -0
  213. package/daemon/dist/domain/tmux-option-defaults.d.ts +89 -0
  214. package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -0
  215. package/daemon/dist/domain/tmux-option-defaults.js +132 -0
  216. package/daemon/dist/domain/tmux-option-defaults.js.map +1 -0
  217. package/daemon/dist/domain/types.d.ts +34 -1
  218. package/daemon/dist/domain/types.d.ts.map +1 -1
  219. package/daemon/dist/domain/types.js.map +1 -1
  220. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  221. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  222. package/daemon/dist/domain/user-settings/settings-store.js +92 -0
  223. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  224. package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +1 -1
  225. package/daemon/dist/domain/workflow/slice-workflow-projection.js +6 -2
  226. package/daemon/dist/domain/workflow/slice-workflow-projection.js.map +1 -1
  227. package/daemon/dist/domain/workflow-boot-sweep.d.ts +28 -0
  228. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -0
  229. package/daemon/dist/domain/workflow-boot-sweep.js +102 -0
  230. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -0
  231. package/daemon/dist/domain/workflow-deadline.d.ts +74 -0
  232. package/daemon/dist/domain/workflow-deadline.d.ts.map +1 -0
  233. package/daemon/dist/domain/workflow-deadline.js +165 -0
  234. package/daemon/dist/domain/workflow-deadline.js.map +1 -0
  235. package/daemon/dist/domain/workflow-exception-escalation.d.ts +33 -0
  236. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -0
  237. package/daemon/dist/domain/workflow-exception-escalation.js +104 -0
  238. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -0
  239. package/daemon/dist/domain/workflow-exception-router.d.ts +33 -0
  240. package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -0
  241. package/daemon/dist/domain/workflow-exception-router.js +96 -0
  242. package/daemon/dist/domain/workflow-exception-router.js.map +1 -0
  243. package/daemon/dist/domain/workflow-exception.d.ts +90 -0
  244. package/daemon/dist/domain/workflow-exception.d.ts.map +1 -0
  245. package/daemon/dist/domain/workflow-exception.js +122 -0
  246. package/daemon/dist/domain/workflow-exception.js.map +1 -0
  247. package/daemon/dist/domain/workflow-frontier-guard.d.ts +24 -0
  248. package/daemon/dist/domain/workflow-frontier-guard.d.ts.map +1 -0
  249. package/daemon/dist/domain/workflow-frontier-guard.js +30 -0
  250. package/daemon/dist/domain/workflow-frontier-guard.js.map +1 -0
  251. package/daemon/dist/domain/workflow-instance-store.d.ts +28 -0
  252. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  253. package/daemon/dist/domain/workflow-instance-store.js +66 -10
  254. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  255. package/daemon/dist/domain/workflow-keepalive-arming.d.ts +35 -0
  256. package/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -0
  257. package/daemon/dist/domain/workflow-keepalive-arming.js +87 -0
  258. package/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -0
  259. package/daemon/dist/domain/workflow-projector.d.ts +117 -2
  260. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  261. package/daemon/dist/domain/workflow-projector.js +672 -41
  262. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  263. package/daemon/dist/domain/workflow-role-context.d.ts +57 -0
  264. package/daemon/dist/domain/workflow-role-context.d.ts.map +1 -0
  265. package/daemon/dist/domain/workflow-role-context.js +120 -0
  266. package/daemon/dist/domain/workflow-role-context.js.map +1 -0
  267. package/daemon/dist/domain/workflow-role-resolver.d.ts +65 -0
  268. package/daemon/dist/domain/workflow-role-resolver.d.ts.map +1 -0
  269. package/daemon/dist/domain/workflow-role-resolver.js +108 -0
  270. package/daemon/dist/domain/workflow-role-resolver.js.map +1 -0
  271. package/daemon/dist/domain/workflow-runtime.d.ts +157 -1
  272. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  273. package/daemon/dist/domain/workflow-runtime.js +718 -11
  274. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  275. package/daemon/dist/domain/workflow-spec-cache.d.ts +26 -1
  276. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  277. package/daemon/dist/domain/workflow-spec-cache.js +327 -13
  278. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  279. package/daemon/dist/domain/workflow-types.d.ts +143 -8
  280. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  281. package/daemon/dist/domain/workflow-types.js +14 -1
  282. package/daemon/dist/domain/workflow-types.js.map +1 -1
  283. package/daemon/dist/domain/workflow-validator.d.ts +11 -1
  284. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  285. package/daemon/dist/domain/workflow-validator.js +246 -1
  286. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  287. package/daemon/dist/index.d.ts +17 -0
  288. package/daemon/dist/index.d.ts.map +1 -1
  289. package/daemon/dist/index.js +44 -0
  290. package/daemon/dist/index.js.map +1 -1
  291. package/daemon/dist/routes/activity.js +22 -0
  292. package/daemon/dist/routes/activity.js.map +1 -1
  293. package/daemon/dist/routes/hosts.d.ts +5 -0
  294. package/daemon/dist/routes/hosts.d.ts.map +1 -0
  295. package/daemon/dist/routes/hosts.js +346 -0
  296. package/daemon/dist/routes/hosts.js.map +1 -0
  297. package/daemon/dist/routes/queue.d.ts +2 -7
  298. package/daemon/dist/routes/queue.d.ts.map +1 -1
  299. package/daemon/dist/routes/queue.js +264 -9
  300. package/daemon/dist/routes/queue.js.map +1 -1
  301. package/daemon/dist/routes/review.d.ts.map +1 -1
  302. package/daemon/dist/routes/review.js +26 -0
  303. package/daemon/dist/routes/review.js.map +1 -1
  304. package/daemon/dist/routes/seat.js +13 -0
  305. package/daemon/dist/routes/seat.js.map +1 -1
  306. package/daemon/dist/routes/terminal.d.ts +11 -0
  307. package/daemon/dist/routes/terminal.d.ts.map +1 -0
  308. package/daemon/dist/routes/terminal.js +104 -0
  309. package/daemon/dist/routes/terminal.js.map +1 -0
  310. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  311. package/daemon/dist/routes/workflow.js +102 -10
  312. package/daemon/dist/routes/workflow.js.map +1 -1
  313. package/daemon/dist/server.d.ts +5 -0
  314. package/daemon/dist/server.d.ts.map +1 -1
  315. package/daemon/dist/server.js +22 -0
  316. package/daemon/dist/server.js.map +1 -1
  317. package/daemon/dist/startup.d.ts.map +1 -1
  318. package/daemon/dist/startup.js +221 -12
  319. package/daemon/dist/startup.js.map +1 -1
  320. package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +29 -0
  321. package/daemon/specs/agents/factory-rsi/dogfood/guidance/role.md +37 -0
  322. package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +29 -0
  323. package/daemon/specs/agents/factory-rsi/release-manager/guidance/role.md +40 -0
  324. package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +6 -8
  325. package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +86 -0
  326. package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +158 -0
  327. package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +6 -6
  328. package/daemon/specs/rigs/launch/factory-rsi/CULTURE.md +47 -0
  329. package/daemon/specs/rigs/launch/factory-rsi/rig.yaml +115 -0
  330. package/dist/build-info.js +3 -3
  331. package/dist/commands/broadcast.d.ts +6 -1
  332. package/dist/commands/broadcast.d.ts.map +1 -1
  333. package/dist/commands/broadcast.js +101 -15
  334. package/dist/commands/broadcast.js.map +1 -1
  335. package/dist/commands/capture.d.ts.map +1 -1
  336. package/dist/commands/capture.js +99 -8
  337. package/dist/commands/capture.js.map +1 -1
  338. package/dist/commands/config.d.ts.map +1 -1
  339. package/dist/commands/config.js +4 -0
  340. package/dist/commands/config.js.map +1 -1
  341. package/dist/commands/down.d.ts.map +1 -1
  342. package/dist/commands/down.js +5 -0
  343. package/dist/commands/down.js.map +1 -1
  344. package/dist/commands/host.d.ts +14 -0
  345. package/dist/commands/host.d.ts.map +1 -1
  346. package/dist/commands/host.js +338 -14
  347. package/dist/commands/host.js.map +1 -1
  348. package/dist/commands/launch.d.ts.map +1 -1
  349. package/dist/commands/launch.js +5 -0
  350. package/dist/commands/launch.js.map +1 -1
  351. package/dist/commands/ps.d.ts.map +1 -1
  352. package/dist/commands/ps.js +10 -4
  353. package/dist/commands/ps.js.map +1 -1
  354. package/dist/commands/queue.d.ts +36 -0
  355. package/dist/commands/queue.d.ts.map +1 -1
  356. package/dist/commands/queue.js +73 -7
  357. package/dist/commands/queue.js.map +1 -1
  358. package/dist/commands/restore-packet.d.ts.map +1 -1
  359. package/dist/commands/restore-packet.js +13 -2
  360. package/dist/commands/restore-packet.js.map +1 -1
  361. package/dist/commands/send.d.ts.map +1 -1
  362. package/dist/commands/send.js +114 -9
  363. package/dist/commands/send.js.map +1 -1
  364. package/dist/commands/terminal.d.ts +6 -0
  365. package/dist/commands/terminal.d.ts.map +1 -0
  366. package/dist/commands/terminal.js +116 -0
  367. package/dist/commands/terminal.js.map +1 -0
  368. package/dist/commands/transcript.d.ts +6 -1
  369. package/dist/commands/transcript.d.ts.map +1 -1
  370. package/dist/commands/transcript.js +113 -30
  371. package/dist/commands/transcript.js.map +1 -1
  372. package/dist/commands/up.d.ts.map +1 -1
  373. package/dist/commands/up.js +9 -0
  374. package/dist/commands/up.js.map +1 -1
  375. package/dist/commands/whoami.d.ts.map +1 -1
  376. package/dist/commands/whoami.js +11 -0
  377. package/dist/commands/whoami.js.map +1 -1
  378. package/dist/commands/workflow-errors.d.ts +23 -0
  379. package/dist/commands/workflow-errors.d.ts.map +1 -0
  380. package/dist/commands/workflow-errors.js +100 -0
  381. package/dist/commands/workflow-errors.js.map +1 -0
  382. package/dist/commands/workflow-follow.d.ts +71 -0
  383. package/dist/commands/workflow-follow.d.ts.map +1 -0
  384. package/dist/commands/workflow-follow.js +259 -0
  385. package/dist/commands/workflow-follow.js.map +1 -0
  386. package/dist/commands/workflow-render.d.ts +114 -0
  387. package/dist/commands/workflow-render.d.ts.map +1 -0
  388. package/dist/commands/workflow-render.js +223 -0
  389. package/dist/commands/workflow-render.js.map +1 -0
  390. package/dist/commands/workflow.d.ts +1 -0
  391. package/dist/commands/workflow.d.ts.map +1 -1
  392. package/dist/commands/workflow.js +278 -14
  393. package/dist/commands/workflow.js.map +1 -1
  394. package/dist/config-store.d.ts +15 -1
  395. package/dist/config-store.d.ts.map +1 -1
  396. package/dist/config-store.js +103 -0
  397. package/dist/config-store.js.map +1 -1
  398. package/dist/cross-host-cli-helpers.d.ts +13 -0
  399. package/dist/cross-host-cli-helpers.d.ts.map +1 -1
  400. package/dist/cross-host-cli-helpers.js +27 -0
  401. package/dist/cross-host-cli-helpers.js.map +1 -1
  402. package/dist/cross-host-target.d.ts +49 -0
  403. package/dist/cross-host-target.d.ts.map +1 -0
  404. package/dist/cross-host-target.js +35 -0
  405. package/dist/cross-host-target.js.map +1 -0
  406. package/dist/host-registry.d.ts +8 -0
  407. package/dist/host-registry.d.ts.map +1 -1
  408. package/dist/host-registry.js +32 -0
  409. package/dist/host-registry.js.map +1 -1
  410. package/dist/host-selection.d.ts +13 -0
  411. package/dist/host-selection.d.ts.map +1 -0
  412. package/dist/host-selection.js +54 -0
  413. package/dist/host-selection.js.map +1 -0
  414. package/dist/index.d.ts +2 -0
  415. package/dist/index.d.ts.map +1 -1
  416. package/dist/index.js +2 -0
  417. package/dist/index.js.map +1 -1
  418. package/dist/remote-host-ops.d.ts +1 -0
  419. package/dist/remote-host-ops.d.ts.map +1 -1
  420. package/dist/remote-host-ops.js +11 -4
  421. package/dist/remote-host-ops.js.map +1 -1
  422. package/dist/session-name.d.ts +23 -0
  423. package/dist/session-name.d.ts.map +1 -0
  424. package/dist/session-name.js +61 -0
  425. package/dist/session-name.js.map +1 -0
  426. package/package.json +1 -1
  427. package/ui/dist/assets/index-CFqxa0zW.css +32 -0
  428. package/ui/dist/assets/index-zrFqS7gL.js +623 -0
  429. package/ui/dist/index.html +2 -2
  430. package/ui/dist/assets/index-D69ZhNIr.js +0 -598
  431. package/ui/dist/assets/index-DJYun-8d.css +0 -32
@@ -1 +1 @@
1
- {"version":3,"file":"node-launcher.d.ts","sourceRoot":"","sources":["../../src/domain/node-launcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQ7D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,YAAY,GACpB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC1F;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD;;yCAEqC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,qBAAa,YAAY;IACvB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,2BAA2B,CAAS;gBAEhC,IAAI,EAAE,gBAAgB;IAuB5B,UAAU,CACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,YAAY,CAAC;CA6GzB"}
1
+ {"version":3,"file":"node-launcher.d.ts","sourceRoot":"","sources":["../../src/domain/node-launcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAO7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,YAAY,GACpB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC1F;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD;;yCAEqC;IACrC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED,qBAAa,YAAY;IACvB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,2BAA2B,CAAS;IAC5C,OAAO,CAAC,kBAAkB,CAAmC;gBAEjD,IAAI,EAAE,gBAAgB;IAwB5B,UAAU,CACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,YAAY,CAAC;CAsHzB"}
@@ -9,6 +9,7 @@ export class NodeLauncher {
9
9
  transcriptStore;
10
10
  sessionEnv;
11
11
  defaultSilenceWindowSeconds;
12
+ tmuxOptionDefaults;
12
13
  constructor(deps) {
13
14
  // Hard runtime invariant: all domain services must share the same db handle.
14
15
  // Without this, db.transaction() in launchNode cannot span all writes atomically.
@@ -29,6 +30,7 @@ export class NodeLauncher {
29
30
  this.transcriptStore = deps.transcriptStore ?? null;
30
31
  this.sessionEnv = compactEnv(deps.sessionEnv ?? {});
31
32
  this.defaultSilenceWindowSeconds = deps.defaultSilenceWindowSeconds ?? 3;
33
+ this.tmuxOptionDefaults = deps.tmuxOptionDefaults ?? null;
32
34
  }
33
35
  async launchNode(rigId, logicalId, opts) {
34
36
  // 1. Validate node exists and is unbound
@@ -69,6 +71,14 @@ export class NodeLauncher {
69
71
  return { ok: false, code: tmuxResult.code, message: tmuxResult.message };
70
72
  }
71
73
  const launchWarnings = [];
74
+ // 3a2. OPR.0.4.6.02 S1 — apply the daemon's tmux option defaults to the
75
+ // JUST-CREATED session via the shared applier (mouse/status session-scope
76
+ // + set-clipboard/copy-command server-scope). Touches only this new
77
+ // session, never an existing one (BR-1 never-retro). Option-set failures
78
+ // come back as non-fatal launch warnings.
79
+ if (this.tmuxOptionDefaults) {
80
+ launchWarnings.push(...(await this.tmuxOptionDefaults.applyToFreshSession(sessionName)));
81
+ }
72
82
  // 3b. Start transcript rotation (V1 pre-release CLI/daemon Item 1:
73
83
  // bounded capture-pane overwrite replaces the unbounded pipe-pane
74
84
  // mechanism). Failures inside individual rotation ticks are silent
@@ -1 +1 @@
1
- {"version":3,"file":"node-launcher.js","sourceRoot":"","sources":["../../src/domain/node-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-launcher.js","sourceRoot":"","sources":["../../src/domain/node-launcher.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,13 @@ import type Database from "better-sqlite3";
2
2
  import type { Policy } from "./types.js";
3
3
  export interface WorkflowKeepaliveDeps {
4
4
  db: Database.Database;
5
+ /** OPR.0.4.6.WF5 FR-2 class (b): when supplied, a non-healthy deadline
6
+ * verdict ENSURES the durable exception item at detection time as a
7
+ * side effect of this evaluation. The PolicyEvaluation SHAPE is
8
+ * untouched (send|skip|terminal stands — X5); the item is the
9
+ * injected helper's concern, dedup by occurrence. Failures are
10
+ * non-fatal to the evaluation. */
11
+ ensureStuckExceptionItem?: import("../workflow-exception-escalation.js").EnsureStuckExceptionItem;
5
12
  }
6
13
  export declare function makeWorkflowKeepalivePolicy(deps: WorkflowKeepaliveDeps): Policy;
7
14
  //# sourceMappingURL=workflow-keepalive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-keepalive.d.ts","sourceRoot":"","sources":["../../../src/domain/policies/workflow-keepalive.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAA+B,MAAM,YAAY,CAAC;AAuBtE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACvB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAoG/E"}
1
+ {"version":3,"file":"workflow-keepalive.d.ts","sourceRoot":"","sources":["../../../src/domain/policies/workflow-keepalive.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAA+B,MAAM,YAAY,CAAC;AAyCtE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB;;;;;uCAKmC;IACnC,wBAAwB,CAAC,EAAE,OAAO,qCAAqC,EAAE,wBAAwB,CAAC;CACnG;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAwK/E"}
@@ -23,6 +23,7 @@
23
23
  // additional resolved owners listed in the message for routing.
24
24
  // POC's send_many is deferred (Phase C engine's PolicyEvaluation
25
25
  // contract is single-target).
26
+ import { evaluateStepDeadline, } from "../workflow-deadline.js";
26
27
  export function makeWorkflowKeepalivePolicy(deps) {
27
28
  const { db } = deps;
28
29
  return {
@@ -40,7 +41,7 @@ export function makeWorkflowKeepalivePolicy(deps) {
40
41
  // Audit-row-18 critical assertion: read from SQLite only.
41
42
  const instance = db
42
43
  .prepare(`SELECT instance_id, workflow_name, workflow_version, created_by_session,
43
- status, current_frontier_json
44
+ status, current_frontier_json, current_step_id
44
45
  FROM workflow_instances WHERE instance_id = ?`)
45
46
  .get(instanceId);
46
47
  if (!instance) {
@@ -59,16 +60,40 @@ export function makeWorkflowKeepalivePolicy(deps) {
59
60
  };
60
61
  }
61
62
  const frontier = JSON.parse(instance.current_frontier_json) ?? [];
62
- // Resolve frontier qitem owners from queue_items.
63
+ // Resolve frontier qitem owners (+ FR-2 anchor fields) from queue_items.
63
64
  const resolvedFrontierOwners = [];
65
+ let frontierRows = [];
64
66
  if (frontier.length > 0) {
65
67
  const placeholders = frontier.map(() => "?").join(",");
66
- const rows = db
67
- .prepare(`SELECT qitem_id, destination_session FROM queue_items WHERE qitem_id IN (${placeholders})`)
68
+ frontierRows = db
69
+ .prepare(`SELECT qitem_id, destination_session, state, ts_created, claimed_at, closure_required_at
70
+ FROM queue_items WHERE qitem_id IN (${placeholders})`)
68
71
  .all(...frontier);
69
- for (const r of rows)
72
+ for (const r of frontierRows)
70
73
  resolvedFrontierOwners.push(r.destination_session);
71
74
  }
75
+ // OPR.0.4.6.WF1 FR-2+FR-3: evaluate the step deadline (derived,
76
+ // never stored). Deadline-gated (auto-armed) jobs stay quiet
77
+ // while healthy; ANY job's send message carries the stuck
78
+ // evidence + re-project steering when overdue.
79
+ const verdict = evaluateStepDeadline({
80
+ instanceId: instance.instance_id,
81
+ status: instance.status,
82
+ currentFrontier: frontier,
83
+ currentStepId: instance.current_step_id,
84
+ }, frontierRows.map((r) => ({
85
+ qitemId: r.qitem_id,
86
+ state: r.state,
87
+ destinationSession: r.destination_session,
88
+ tsCreated: r.ts_created,
89
+ claimedAt: r.claimed_at,
90
+ closureRequiredAt: r.closure_required_at,
91
+ })), new Date());
92
+ if (context.deadline_gated === true && verdict.state === "healthy") {
93
+ // Quiet skip — not recorded in watchdog history (POC parity for
94
+ // quiet reasons); zero noise on the happy path.
95
+ return { action: "skip", reason: "workflow_healthy_deadline_gated" };
96
+ }
72
97
  // Combine with explicit additional targets.
73
98
  const additionalTargets = [
74
99
  instance.created_by_session,
@@ -81,16 +106,55 @@ export function makeWorkflowKeepalivePolicy(deps) {
81
106
  // POC line 113-118: skip with empty_frontier when nothing resolves.
82
107
  return { action: "skip", reason: "empty_frontier" };
83
108
  }
84
- const primary = allSessions[0];
85
- const others = allSessions.slice(1);
86
- const message = job.message ??
87
- buildKeepaliveMessage({
109
+ // Deadline-gated (auto-armed) jobs past the deadline steer the
110
+ // nudge at the OVERDUE packet's owner with the stuck evidence —
111
+ // a restored or replacement agent reads the steering and
112
+ // re-projects; the stuck marker self-clears on recomposition
113
+ // (FR-2 AC). Operator-registered jobs (no flag) keep the shipped
114
+ // POC message + first-resolved-target parity EXACTLY, even when
115
+ // a packet is overdue — their contract predates the deadline
116
+ // model and is pinned by the shipped policy tests.
117
+ const stuck = context.deadline_gated === true && verdict.state !== "healthy" && verdict.evidence
118
+ ? verdict.evidence
119
+ : null;
120
+ // OPR.0.4.6.WF5 FR-2 class (b): detection-time exception item —
121
+ // fires on ANY non-healthy verdict (gated or operator-registered
122
+ // jobs; the operator-job MESSAGE contract below stays pinned and
123
+ // untouched). Dedup by occurrence keeps this idempotent across
124
+ // every keepalive cadence tick.
125
+ if (deps.ensureStuckExceptionItem && verdict.state !== "healthy" && verdict.evidence) {
126
+ try {
127
+ await deps.ensureStuckExceptionItem({
128
+ workflowName: instance.workflow_name,
129
+ workflowVersion: instance.workflow_version,
130
+ createdBySession: instance.created_by_session,
131
+ verdict,
132
+ });
133
+ }
134
+ catch {
135
+ // Non-fatal: the nudge below still fires; the sweep/next tick
136
+ // re-detects (the crash-surviving guarantee).
137
+ }
138
+ }
139
+ const primary = stuck ? stuck.ownerSession : allSessions[0];
140
+ const others = stuck
141
+ ? allSessions.filter((s) => s !== primary)
142
+ : allSessions.slice(1);
143
+ const message = stuck
144
+ ? buildStuckNudgeMessage({
88
145
  workflowName: instance.workflow_name,
89
146
  workflowVersion: instance.workflow_version,
90
- instanceId: instance.instance_id,
91
- status: instance.status,
92
- allSessions,
93
- });
147
+ verdictState: verdict.state,
148
+ evidence: stuck,
149
+ })
150
+ : (job.message ??
151
+ buildKeepaliveMessage({
152
+ workflowName: instance.workflow_name,
153
+ workflowVersion: instance.workflow_version,
154
+ instanceId: instance.instance_id,
155
+ status: instance.status,
156
+ allSessions,
157
+ }));
94
158
  return {
95
159
  action: "send",
96
160
  target: { session: primary },
@@ -101,6 +165,7 @@ export function makeWorkflowKeepalivePolicy(deps) {
101
165
  workflowStatus: instance.status,
102
166
  frontierLength: frontier.length,
103
167
  additionalRoutingTargets: others,
168
+ ...(stuck ? { deadline: { state: verdict.state, ...stuck } } : {}),
104
169
  },
105
170
  };
106
171
  },
@@ -110,6 +175,21 @@ const POC_KEEPALIVE_TRAILER = "Continue the current step. If the run has ended,
110
175
  "If you think you need approval, first ask whether there is real product ambiguity or only approval theater. " +
111
176
  "Keep communications bridged, name exact blockers, and self-scout deterministic bias: " +
112
177
  "add only the minimum deterministic code required for reliable agent operation, then rely on agent judgment for routing, adaptation, and edge handling.";
178
+ /**
179
+ * OPR.0.4.6.WF1 FR-2: the overdue re-nudge. Written for a RESTORED or
180
+ * REPLACEMENT agent with no conversational memory of the step: it names
181
+ * the instance, the step, the packet, the anchor evidence, and the
182
+ * exact re-project move.
183
+ */
184
+ function buildStuckNudgeMessage(input) {
185
+ const e = input.evidence;
186
+ return [
187
+ `Workflow STUCK (${input.verdictState}): ${input.workflowName}@${input.workflowVersion} instance ${e.instanceId} step ${e.stepId ?? "(unknown)"} is overdue by ${Math.floor(e.overdueBySeconds / 60)}m (anchor: ${e.anchor} @ ${e.anchorAt}; packet age ${Math.floor(e.ageSeconds / 60)}m).`,
188
+ `You own frontier packet ${e.packetId}. If you lost context: run 'rig whoami --json', read the packet with 'rig queue show ${e.packetId}', do (or verify) the step's work, then close it truthfully via 'rig workflow project --instance ${e.instanceId} --current-packet ${e.packetId} --exit <handoff|waiting|done|failed> --actor-session ${e.ownerSession}'.`,
189
+ "Projecting normally clears the stuck state automatically - do not hand-edit any workflow state.",
190
+ POC_KEEPALIVE_TRAILER,
191
+ ].join("\n");
192
+ }
113
193
  function buildKeepaliveMessage(input) {
114
194
  const lines = [
115
195
  `Workflow keepalive: ${input.workflowName}@${input.workflowVersion} / ${input.instanceId} is still live (status: ${input.status}).`,
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-keepalive.js","sourceRoot":"","sources":["../../../src/domain/policies/workflow-keepalive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-keepalive.js","sourceRoot":"","sources":["../../../src/domain/policies/workflow-keepalive.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ps-projection.d.ts","sourceRoot":"","sources":["../../src/domain/ps-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE3G,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C;+DAC2D;IAC3D,cAAc,EAAE,iBAAiB,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iFAAiF;IACjF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uEAAuE;IACvE,UAAU,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,sBAAsB,EAAE,OAAO,CAAC;IAChC,2EAA2E;IAC3E,+BAA+B,EAAE,MAAM,CAAC;IACxC,mEAAmE;IACnE,yBAAyB,EAAE,MAAM,CAAC;IAClC;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAOrG;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,iBAAiB,CAa3F;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D;;6DAEyD;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,+BAA+B,CAAK;gBAEhC,IAAI,EAAE;QAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;QAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;QAAC,aAAa,CAAC,EAAE,kBAAkB,CAAA;KAAE;IAMnH,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAKxE,UAAU,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,EAAE;CAuGjD;AAwBD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAMtG"}
1
+ {"version":3,"file":"ps-projection.d.ts","sourceRoot":"","sources":["../../src/domain/ps-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE3G,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C;+DAC2D;IAC3D,cAAc,EAAE,iBAAiB,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iFAAiF;IACjF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uEAAuE;IACvE,UAAU,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,sBAAsB,EAAE,OAAO,CAAC;IAChC,2EAA2E;IAC3E,+BAA+B,EAAE,MAAM,CAAC;IACxC,mEAAmE;IACnE,yBAAyB,EAAE,MAAM,CAAC;IAClC;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAOrG;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,iBAAiB,CAa3F;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D;;6DAEyD;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,+BAA+B,CAAK;gBAEhC,IAAI,EAAE;QAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;QAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;QAAC,aAAa,CAAC,EAAE,kBAAkB,CAAA;KAAE;IAMnH,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAKxE,UAAU,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,EAAE;CAuIjD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAMtG"}
@@ -1,4 +1,4 @@
1
- import { getNodeInventory } from "./node-inventory.js";
1
+ import { getNodeInventoryForAllRigs, readPendingWorkBySession } from "./node-inventory.js";
2
2
  import { archiveWhereClause } from "./rig-repository.js";
3
3
  /**
4
4
  * OPR.0.4.4.21 — THE rig-rollup attention predicate (one predicate, one
@@ -99,14 +99,23 @@ export class PsProjectionService {
99
99
  ORDER BY r.name
100
100
  `).all();
101
101
  const now = Date.now();
102
+ // FS-1 W1.2 (rig-level N+1 collapse): the pending-work map is host-global and
103
+ // bounded by distinct destination sessions (seat count), so read it ONCE here
104
+ // instead of one countNodesWithPendingWork query per rig. Per-rig hasWorkCount
105
+ // is then a pure JS derivation over the already-fetched inventory below.
106
+ const pendingByDest = readPendingWorkBySession(this.db);
107
+ // FS-1 W1.2: node inventory for ALL rigs built in ONE batched pass (was one
108
+ // getNodeInventory query-set PER RIG — the rig-level N+1); indexed per rig below.
109
+ const inventoryByRig = getNodeInventoryForAllRigs(this.db);
102
110
  return rows.map((r) => {
103
111
  const status = r.node_count === 0 ? "stopped"
104
112
  : r.running_count === r.node_count ? "running"
105
113
  : r.running_count > 0 ? "partial"
106
114
  : "stopped";
107
- // Derive rig-level lifecycleState by folding per-node states. The cost is one
108
- // node-inventory pass per rig; this matches the v0 "derive, no migration" decision.
109
- const inventory = getNodeInventory(this.db, r.rig_id);
115
+ // Derive rig-level lifecycleState by folding per-node states. FS-1 W1.2:
116
+ // inventory for ALL rigs was built in ONE batched pass above (previously one
117
+ // getNodeInventory query-set per rig — the rig-level N+1); index it here.
118
+ const inventory = inventoryByRig.get(r.rig_id) ?? [];
110
119
  const lifecycleState = deriveRigLifecycleState(inventory.map((e) => e.lifecycleState));
111
120
  // Slice 15 — `terminal-active` count. Subset of running tmux-bound
112
121
  // seats whose latest SeatActivity observation says
@@ -128,7 +137,30 @@ export class PsProjectionService {
128
137
  // least one pending qitem whose `destination_session` matches the
129
138
  // node's `canonicalSessionName`. Sourced ONLY from the queue
130
139
  // projection; never from tmux output.
131
- const hasWorkCount = countNodesWithPendingWork(this.db, r.rig_id);
140
+ // FS-1 W1.2: derived in JS from the single global `pendingByDest` map,
141
+ // byte-identical to the deleted per-rig `countNodesWithPendingWork` query.
142
+ // That query matched `q.destination_session = s.session_name` (SINGLE-KEY)
143
+ // where `s` is the node's latest session; `canonicalSessionName` IS that
144
+ // latest `session_name` (node-inventory.ts return), and the map is
145
+ // `destination_session -> pending count`, so `> 0` reproduces its `EXISTS`.
146
+ // NAMED DIVERGENCE (arch pin, FS-1): this derivation DELIBERATELY keeps the
147
+ // legacy rollup's SINGLE-KEY match (canonicalSessionName == the latest
148
+ // session_name) and does NOT use the per-node DUAL-KEY sibling
149
+ // `countPendingForEntry` (node-inventory.ts) — the canonical + derived
150
+ // `{pod}-{member}@{rig}` match that is the BLOCKING-A2 adopted-seat fix.
151
+ // The rollup and the per-node enrichment already diverged here BEFORE FS-1;
152
+ // FS-1 is a perf slice whose proof spine is byte-identity, so it preserves
153
+ // the rollup's exact prior semantics on purpose — this is preserved, not a
154
+ // bug. KNOWN CONSEQUENCE: the rollup undercounts pending work for adopted
155
+ // seats. The future correctness fix now sits ONE LINE away — swap this loop
156
+ // for the shared dual-key `countPendingForEntry` derivation + update the
157
+ // byte-identity harness. Arch-routed to pm as a named small correctness
158
+ // candidate (a glance-layer undercount).
159
+ let hasWorkCount = 0;
160
+ for (const node of inventory) {
161
+ if (node.canonicalSessionName && (pendingByDest.get(node.canonicalSessionName) ?? 0) > 0)
162
+ hasWorkCount++;
163
+ }
132
164
  // OPR.0.4.4.21 — attention fold, same inventory pass. Hook activity
133
165
  // is a synchronous events lookup by session name (NodeInventoryEntry
134
166
  // carries canonicalSessionName, not nodeId); `now` makes staleness
@@ -164,27 +196,6 @@ export class PsProjectionService {
164
196
  });
165
197
  }
166
198
  }
167
- /**
168
- * Slice 15 — count nodes in this rig that have at least one pending
169
- * qitem assigned to them (queue.destination_session matches a node's
170
- * latest session_name). Pure SQL query — does NOT consult tmux output
171
- * or SeatActivity (non-inference contract).
172
- */
173
- function countNodesWithPendingWork(db, rigId) {
174
- const row = db.prepare(`
175
- SELECT COUNT(DISTINCT n.id) as c
176
- FROM nodes n
177
- JOIN sessions s ON s.node_id = n.id
178
- AND s.id = (SELECT s2.id FROM sessions s2 WHERE s2.node_id = n.id ORDER BY s2.id DESC LIMIT 1)
179
- WHERE n.rig_id = ?
180
- AND EXISTS (
181
- SELECT 1 FROM queue_items q
182
- WHERE q.destination_session = s.session_name
183
- AND q.state = 'pending'
184
- )
185
- `).get(rigId);
186
- return row?.c ?? 0;
187
- }
188
199
  /**
189
200
  * Slice 15 — count of pending qitems assigned to a specific canonical
190
201
  * session name. Exposed for per-node enrichment in node-inventory.
@@ -1 +1 @@
1
- {"version":3,"file":"ps-projection.js","sourceRoot":"","sources":["../../src/domain/ps-projection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAyB,MAAM,qBAAqB,CAAC;AA2DhF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAyB,EAAE,QAA8B;IAC1F,OAAO,KAAK,CAAC,cAAc,KAAK,oBAAoB;WAC/C,KAAK,CAAC,aAAa,KAAK,oBAAoB;WAC5C,KAAK,CAAC,aAAa,KAAK,QAAQ;WAChC,QAAQ,EAAE,KAAK,KAAK,aAAa;WACjC,KAAK,CAAC,UAAU,IAAI,IAAI;WACxB,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAgC;IACtE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,oBAAoB,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAEpF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IACtE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;IAErC,IAAI,YAAY,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC;QACnE,OAAO,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACrB,EAAE,CAAoB;IACd,YAAY,CAA6B;IAC1D;;6DAEyD;IACxC,aAAa,CAA4B;IAClD,sBAAsB,GAAG,KAAK,CAAC;IAC/B,+BAA+B,GAAG,CAAC,CAAC;IAE5C,YAAY,IAAuG;QACjH,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;IAClD,CAAC;IAED,wBAAwB,CAAC,MAAe,EAAE,eAAuB;QAC/D,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;QACrC,IAAI,CAAC,+BAA+B,GAAG,eAAe,CAAC;IACzD,CAAC;IAED,UAAU,CAAC,MAAyB;QAClC,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,IAAI,GAAG,kBAAkB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;QAiBzB,KAAK;;KAER,CAAC,CAAC,GAAG,EASJ,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,MAAM,MAAM,GACV,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC9B,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;oBAC9C,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;wBACjC,CAAC,CAAC,SAAS,CAAC;YAEd,8EAA8E;YAC9E,oFAAoF;YACpF,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,cAAc,GAAG,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YAEvF,mEAAmE;YACnE,mDAAmD;YACnD,kEAAkE;YAClE,2CAA2C;YAC3C,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC7B,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;wBAAE,SAAS;oBAC/C,IAAI,CAAC,IAAI,CAAC,oBAAoB;wBAAE,SAAS;oBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBACzE,IAAI,GAAG,EAAE,oBAAoB,KAAK,IAAI;wBAAE,WAAW,EAAE,CAAC;gBACxD,CAAC;YACH,CAAC;YAED,6DAA6D;YAC7D,kEAAkE;YAClE,6DAA6D;YAC7D,sCAAsC;YACtC,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAElE,oEAAoE;YACpE,qEAAqE;YACrE,mEAAmE;YACnE,mEAAmE;YACnE,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB;oBAC9D,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;oBAC/F,CAAC,CAAC,IAAI,CAAC;gBACT,IAAI,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC;oBAAE,cAAc,EAAE,CAAC;YAC3D,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,CAAC,CAAC,MAAM;gBACf,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,SAAS,EAAE,CAAC,CAAC,UAAU;gBACvB,YAAY,EAAE,CAAC,CAAC,aAAa;gBAC7B,WAAW;gBACX,YAAY;gBACZ,MAAM;gBACN,cAAc;gBACd,MAAM,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,mBAAmB,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC5G,cAAc,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC7G,UAAU,EAAE,CAAC,CAAC,WAAW;gBACzB,UAAU,EAAE,CAAC,CAAC,WAAW,KAAK,IAAI;gBAClC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;gBACnD,+BAA+B,EAAE,IAAI,CAAC,+BAA+B;gBACrE,yBAAyB,EAAE,CAAC,CAAC,mBAAmB;gBAChD,cAAc;aACf,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,yBAAyB,CAAC,EAAqB,EAAE,KAAa;IACrE,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;GAWtB,CAAC,CAAC,GAAG,CAAC,KAAK,CAA8B,CAAC;IAC3C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,EAAqB,EAAE,oBAA4B;IAC5F,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGtB,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAA8B,CAAC;IAC1D,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,OAAO,GAAG,EAAE,CAAC;IACnC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,GAAG,KAAK,KAAK,aAAa,GAAG,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,KAAK,GAAG,EAAE,CAAC;IAC/B,OAAO,GAAG,IAAI,KAAK,WAAW,GAAG,CAAC;AACpC,CAAC;AAED,SAAS,SAAS,CAAC,EAAU;IAC3B,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAC/B,OAAO,GAAG,GAAG,MAAM,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"ps-projection.js","sourceRoot":"","sources":["../../src/domain/ps-projection.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,15 @@ import { QueueTransitionLog } from "./queue-transition-log.js";
5
5
  import { type ClosureReason } from "./hot-potato-enforcer.js";
6
6
  export declare const QUEUE_STATES: readonly ["pending", "in-progress", "done", "blocked", "failed", "denied", "canceled", "handed-off"];
7
7
  export type QueueState = (typeof QUEUE_STATES)[number];
8
+ /** OPR.0.4.6.FS-1 (W2 P1): the queue's terminal state set, named ONCE. The
9
+ * archiver (queue-retention.ts) AND the inline closure guards below all consume
10
+ * THIS predicate, so a future terminal-state addition can never silently
11
+ * diverge the archiver from the queue (arch D3-REFINEMENT P1; widen-never-sibling).
12
+ * `['done','handed-off']` is the full terminal set — workflow step closures exit
13
+ * `handoff -> state=handed-off`, the highest-volume terminal class. The `satisfies`
14
+ * clause is the compile guard: removing a state from QUEUE_STATES fails here. */
15
+ export declare const TERMINAL_QUEUE_STATES: readonly ["done", "handed-off"];
16
+ export declare function isTerminalState(state: string): boolean;
8
17
  export declare const QUEUE_PRIORITIES: readonly ["routine", "urgent", "critical"];
9
18
  export type QueuePriority = (typeof QUEUE_PRIORITIES)[number];
10
19
  export interface QueueItem {
@@ -95,6 +104,13 @@ export interface QueueUpdateInput {
95
104
  qitemId: string;
96
105
  actorSession: string;
97
106
  state: QueueState;
107
+ /**
108
+ * OPR.0.4.6.WF3 FR-6 — set ONLY by the workflow domain's own write
109
+ * paths (projector close, route close): they hold the frontier
110
+ * invariant, so the close-path guard exempts them. Not a security
111
+ * boundary — a correctness foot-gun guard (pm ruling: prevention).
112
+ */
113
+ viaWorkflowVerb?: boolean;
98
114
  transitionNote?: string;
99
115
  closureReason?: string;
100
116
  closureTarget?: string;
@@ -174,6 +190,42 @@ export declare class QueueRepositoryError extends Error {
174
190
  readonly meta: Record<string, unknown> | undefined;
175
191
  constructor(code: string, message: string, meta?: Record<string, unknown>);
176
192
  }
193
+ /** OPR.0.4.6.WF5 (guard-named fix shape): exported so the workflow
194
+ * domain can PREALLOCATE a gate packet's id — the class-(c) exception
195
+ * identity tags need occurrence:<gatePacketId> ON the packet at create
196
+ * (one item, tagged in its own create — never a second item, never a
197
+ * post-create tag rewrite). The queue still mints ids for every caller
198
+ * that does not preallocate. */
199
+ export declare function newQitemId(): string;
200
+ /**
201
+ * OPR.0.4.6.MH3 Q-a: is this the SQLite PRIMARY KEY conflict on
202
+ * queue_items.qitem_id? better-sqlite3 sets `.code` on its SqliteError; the
203
+ * message check is a defensive twin so a driver-name change never silently
204
+ * turns an idempotent absorb into a 500.
205
+ */
206
+ export declare function isQitemPrimaryKeyConflict(err: unknown): boolean;
207
+ /**
208
+ * OPR.0.4.6.MH3 D-1 (FR-4/FR-5): the deterministic cross-host SUCCESSOR id.
209
+ *
210
+ * A cross-host handoff exposes no caller `--id`, so the successor's dedup
211
+ * identity must come from the operation itself: the id is a PURE, STATELESS
212
+ * function of (source qitemId, destination session, destination host). Same
213
+ * arguments → same id on every re-drive, across daemon restarts, with zero
214
+ * local state — so the origin-side PRIMARY KEY absorb (Q-a) converges every
215
+ * interrupted-close re-drive. Source→successor is 1:1 by construction (a
216
+ * closed source is terminal; nothing re-opens it). The `qitem-xh-` namespace
217
+ * makes collision with organic `qitem-<ts>-<hex>` ids structurally impossible
218
+ * (plan R-2). The compound key is JSON-encoded — no hand-rolled separators.
219
+ *
220
+ * n1 residual (arch-named, inherent to the ratified at-least-once/no-2PC
221
+ * fence — NOT a dedup bug): a re-drive naming a DIFFERENT destination before
222
+ * the source close lands is a NEW handoff decision and derives a DIFFERENT
223
+ * id, so it cannot absorb the earlier successor — that earlier successor can
224
+ * remain live on the target host. The chain_of_record + cross-host provenance
225
+ * tags keep such an orphan visible/traceable; the source-close conflict check
226
+ * surfaces the disagreement rather than overwriting it.
227
+ */
228
+ export declare function deriveCrossHostSuccessorId(sourceQitemId: string, destinationSession: string, hostId: string): string;
177
229
  /**
178
230
  * L3 — Queue repository. Owns CRUD over `queue_items` plus the wired-in
179
231
  * append-only transition log and hot-potato strict-rejection contract.
@@ -197,6 +249,9 @@ export declare class QueueRepository {
197
249
  private readonly hasTargetRepoColumn;
198
250
  private readonly hasSummaryColumn;
199
251
  private readonly hasEvidenceRefColumn;
252
+ /** OPR.0.4.6.WF3 FR-6 — injected by startup (never imported): the
253
+ * workflow domain's is-live-frontier-packet predicate. */
254
+ private readonly workflowFrontierPredicate;
200
255
  constructor(db: Database.Database, eventBus: EventBus, opts?: {
201
256
  validateRig?: (sessionRef: string) => boolean;
202
257
  /**
@@ -208,6 +263,18 @@ export declare class QueueRepository {
208
263
  * a test or daemon-bootstrap path where transport is not yet wired).
209
264
  */
210
265
  transport?: QueueNudgeTransport;
266
+ /**
267
+ * OPR.0.4.6.WF3 FR-6 — the frontier close-path guard's INJECTED
268
+ * predicate (the validateRig injection precedent: the queue is
269
+ * the lower primitive and NEVER imports the workflow domain;
270
+ * startup wires the workflow domain's exported predicate in).
271
+ * Absent (tests, bootstrap, pre-workflow schemas) = zero new
272
+ * behavior.
273
+ */
274
+ workflowFrontierPredicate?: (qitemId: string) => {
275
+ instanceId: string;
276
+ workflowName: string;
277
+ } | null;
211
278
  });
212
279
  /**
213
280
  * Attach the wake-path transport AFTER construction. Used by daemon
@@ -292,6 +359,44 @@ export declare class QueueRepository {
292
359
  closed: QueueItem;
293
360
  created: QueueItem;
294
361
  }>;
362
+ /**
363
+ * OPR.0.4.6.MH3 FR-4 (C2, arch Q-c): the LOCAL half of a cross-host
364
+ * handoff — close the source row AFTER the successor-create was forwarded
365
+ * to (and accepted by) the target host. The two sides live in two DBs, so
366
+ * this is deliberately NOT the atomic close+create of {@link handoff}: the
367
+ * boundary is bridged by message-passing (successor-create FIRST on the
368
+ * origin host, this source-close SECOND — never the reverse, so a crash
369
+ * between the two leaves a live duplicate the idempotent re-drive
370
+ * converges, never a dropped potato).
371
+ *
372
+ * Re-drive semantics (FR-4/FR-5, the interrupted-close case):
373
+ * - source already terminal WITH a MATCHING closureTarget → idempotent
374
+ * absorb: return the stored row unchanged (`absorbed: true`) — no
375
+ * second close, no second event.
376
+ * - source already terminal with a MISMATCHED closureTarget → structured
377
+ * `cross_host_close_conflict` (someone else closed it meanwhile —
378
+ * surface, never overwrite).
379
+ * - otherwise → close exactly like the local handoff's close leg:
380
+ * `closure_reason=handed_off_to`; `closure_target` carries the OPAQUE
381
+ * three-part `<member@rig>@<host>` form (arch R1 — presence-checked
382
+ * display/audit metadata, NEVER parsed for routing); `handed_off_to`
383
+ * stays the two-part `member@rig` (BR-1 — session-string carriers
384
+ * never gain `@host`).
385
+ */
386
+ closeCrossHostHandoffSource(input: {
387
+ qitemId: string;
388
+ fromSession: string;
389
+ /** Two-part `member@rig` destination — the session-string carrier (BR-1). */
390
+ toSession: string;
391
+ /** Opaque three-part `<member@rig>@<host>` closure target (arch R1). */
392
+ closureTarget: string;
393
+ /** `handed-off` for /handoff; `done` for /handoff-and-complete. */
394
+ terminalState: "handed-off" | "done";
395
+ transitionNote?: string;
396
+ }): {
397
+ item: QueueItem;
398
+ absorbed: boolean;
399
+ };
295
400
  /**
296
401
  * `whoami` — return the seat's queue position from the daemon's perspective.
297
402
  * Counts active qitems (pending + in-progress + blocked) destined for the
@@ -1 +1 @@
1
- {"version":3,"file":"queue-repository.d.ts","sourceRoot":"","sources":["../../src/domain/queue-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,YAAY,sGASf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,gBAAgB,4CAA6C,CAAC;AAC3E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb;;+EAE2E;IAC3E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;uEAEmE;IACnE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;kFAG8E;IAC9E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AA+BD;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CACF,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1B,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;2EACuE;IACvE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;wDACoD;IACpD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;6EACyE;IACzE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;kDAC8C;IAC9C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;kCAE8B;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;gFAC4E;IAC5E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,4BAA6B,SAAQ,iBAAiB;CAAG;AAE1E,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAClC,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBACvC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAK1E;AAsBD;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,SAAS,CAAkC;IACnD;;;;kFAI8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAU;gBAG7C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;QAC9C;;;;;;;WAOG;QACH,SAAS,CAAC,EAAE,mBAAmB,CAAC;KACjC;IA2BH;;;;;;OAMG;IACH,eAAe,CAAC,SAAS,EAAE,mBAAmB,GAAG,IAAI;IAIrD;;;;;;;;;;;;;;;;OAgBG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,OAAO,GAAG,SAAS,EAC7B,aAAa,CAAC,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IA0BV,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAezD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG;QAChD,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,cAAc,CAAC;QAC/B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;KAC5B;IAgBD;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAkEpC;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,CAAC;IAsI3F;;;;;;OAMG;IACG,kBAAkB,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,CAAC;IAoIjH;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG;QACxD,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,SAAS,EAAE,CAAA;SAAE,CAAC;QAC7F,QAAQ,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7B;IAkCD;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS;IA0DxC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IA8C/E;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS;IAO1C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG;QAChD,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,cAAc,CAAC;KAChC;IAKD;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IA2GpC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAO1C,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,SAAS,EAAE;IAsD1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,aAAa,CAAC,IAAI,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;QAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,SAAS,EAAE;IAwDf;;;OAGG;IACH,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAatC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAWzD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAStC;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IA0CxF,OAAO,CAAC,cAAc;IAQtB;;;;iEAI6D;IAC7D,OAAO,CAAC,cAAc;IAMtB;+EAC2E;IAC3E,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,SAAS;CAoClB"}
1
+ {"version":3,"file":"queue-repository.d.ts","sourceRoot":"","sources":["../../src/domain/queue-repository.ts"],"names":[],"mappings":"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"}