@overdeck/desktop 0.45.12 → 0.45.15

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 (355) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +33 -0
  2. package/package.json +7 -2
  3. package/server/{acceptance-criteria-1LHgD9vg.js → acceptance-criteria-DHZk2ceV.js} +2 -2
  4. package/server/{advancing-selfheal-BqsLWqEM.js → advancing-selfheal-CSuZ31bB.js} +5 -5
  5. package/server/{agent-gc-CUb52n7s.js → agent-gc-D_DxfBHR.js} +3 -3
  6. package/server/{agent-state-D-moNwhA.js → agent-state-EP2QFV9n.js} +1 -1
  7. package/server/{agent-state-service-BzESvLOf.js → agent-state-service-BZkvgQf4.js} +5 -5
  8. package/server/{agent-state-service-BaZH7sXJ.js → agent-state-service-C_2ZAQRP.js} +1 -1
  9. package/server/{agents-B5LfpLPv.js → agents-CsOzAmRg.js} +145 -78
  10. package/server/{agents-C4kZ8a2r.js → agents-DCvyTXNU.js} +1 -1
  11. package/server/{archive-planning-BbZe-8IK.js → archive-planning-CTILQRnV.js} +1 -1
  12. package/server/{archive-planning-oX1pj6nY.js → archive-planning-DkivCk1A.js} +4 -4
  13. package/server/{artifact-index-jobs-DGr6bxev.js → artifact-index-jobs-CmsvQ1ey.js} +2 -2
  14. package/server/auto-commit-QAfsu3Sb.js +3 -0
  15. package/server/{backlog-auto-trigger-BlJHikOm.js → backlog-auto-trigger-ueRaT8Dy.js} +2 -2
  16. package/server/{bd-process-lock-i3CYMS-B.js → bd-process-lock-D3S4T4o-.js} +32 -11
  17. package/server/{beads-DD7fYCl5.js → beads-BGGxrkZ5.js} +96 -196
  18. package/server/{beads-BNU-fb48.js → beads-CYsLiyIM.js} +1 -1
  19. package/server/{beads-query-e6oku4P5.js → beads-query-B1DlJVp9.js} +24 -99
  20. package/server/beads-restore-CyygSmmn.js +23 -0
  21. package/server/{behavior-CPf0pbOt.js → behavior-Cpj03N4v.js} +3 -3
  22. package/server/{briefing-freshness-B2FdLwIv.js → briefing-freshness-Kh5V8RTh.js} +4 -4
  23. package/server/{checkpoint-manager-eFgaMMu4.js → checkpoint-manager-CAFos8e1.js} +1 -1
  24. package/server/{checkpoint-manager-JryW6MpM.js → checkpoint-manager-fu9oVsR-.js} +2 -2
  25. package/server/checkpoint-worker.js +1 -1
  26. package/server/{checkpoints-qvOqvMuC.js → checkpoints-1BqOlS4q.js} +2 -2
  27. package/server/{checkpoints-BK17oicz.js → checkpoints-DvhGi8P_.js} +1 -1
  28. package/server/claude-hooks-provision-s_wdpeVj.js +360 -0
  29. package/server/{claude-permissions-B6bWGh9d.js → claude-permissions-CaWqysff.js} +2 -2
  30. package/server/{claude-settings-overlay-BPdhTPjo.js → claude-settings-overlay-BbA4FbVI.js} +1 -1
  31. package/server/{claude-settings-overlay-CRyyKKXQ.js → claude-settings-overlay-CcTf0xzG.js} +2 -2
  32. package/server/{cli-B75AieAM.js → cli-BwCvCUBK.js} +9 -9
  33. package/server/cli-ClIQwgMI.js +3 -0
  34. package/server/{cliproxy-CCzwuSNe.js → cliproxy-BsoNNDAj.js} +2 -2
  35. package/server/{cliproxy-DOQf66G9.js → cliproxy-C2xC-3vH.js} +1 -1
  36. package/server/{close-issue-_X3MXJyG.js → close-issue-BleIwP3f.js} +5 -5
  37. package/server/{closed-issue-reaper-CLR7ClsO.js → closed-issue-reaper-BwUUvjEW.js} +1 -1
  38. package/server/{closed-issue-reaper-BsUfBSjM.js → closed-issue-reaper-mC5pujeb.js} +102 -30
  39. package/server/{codex-CY-QRuU9.js → codex-B7DTpwEw.js} +1 -1
  40. package/server/{codex-B4KEpX5V.js → codex-DW60_5j2.js} +5 -5
  41. package/server/{compact-beads-cZds2MTr.js → compact-beads-CK_hHEnB.js} +1 -1
  42. package/server/{compact-beads-uEDccC76.js → compact-beads-DKL54y6j.js} +15 -8
  43. package/server/{config-DARrpYWA.js → config-BRNQJXhA.js} +1 -1
  44. package/server/{config-8sjaU6jZ.js → config-ZNnMpIlh.js} +2 -2
  45. package/server/{config-yaml-ClpGgrf6.js → config-yaml-Dcz-8uit.js} +29 -3
  46. package/server/{conflict-gate-Ds9_2yjd.js → conflict-gate-DGT8jCLp.js} +1 -1
  47. package/server/{conflict-gate-BtB_o-Vi.js → conflict-gate-DTje2Ll7.js} +3 -3
  48. package/server/{context-layers-r2ywnQYA.js → context-layers-BdUCQ-cl.js} +3 -3
  49. package/server/{context-layers-CRCk1QG7.js → context-layers-ByOWUjUg.js} +2 -2
  50. package/server/{control-settings-D1B3u6HP.js → control-settings-DwkAeooY.js} +4 -4
  51. package/server/{conversation-compaction-D86Zo2Ci.js → conversation-compaction-OTYgd6eg.js} +8 -8
  52. package/server/{conversation-compaction-CZRVk4hg.js → conversation-compaction-WYQZUVDm.js} +1 -1
  53. package/server/{conversation-service-CuTVU8dV.js → conversation-service-BR1OgvxO.js} +5 -5
  54. package/server/{conversation-service-CkL-6MuG.js → conversation-service-C_kNZPLx.js} +1 -1
  55. package/server/{conversations-DfJKBDwB.js → conversations-DG2M8WnT.js} +4 -4
  56. package/server/{conversations-BmWEluPL.js → conversations-izHvSoAR.js} +1 -1
  57. package/server/{cost-DAPYN6iA.js → cost-B2mj17iG.js} +3 -3
  58. package/server/{cost-CCnqa5xK.js → cost-DQ2ajr_m.js} +2 -2
  59. package/server/{cost-sync-BDL10Nwu.js → cost-sync-gTayEuWP.js} +3 -3
  60. package/server/{dag-Dv2r5bVD.js → dag-CqTehWpY.js} +3 -3
  61. package/server/{dangerous-git-ops-Dcw7PbYo.js → dangerous-git-ops-DDWQlPC3.js} +1 -1
  62. package/server/dashboard-db-worker.js +6 -6
  63. package/server/{deacon-DYnZH7kC.js → deacon-BqW9HMew.js} +3 -3
  64. package/server/{deacon-CM0MxbS8.js → deacon-DrKDBeJL.js} +161 -1594
  65. package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-D1wEK6zF.js} +1 -1
  66. package/server/deacon-swarm-BY5hKNaU.js +2 -0
  67. package/server/{deacon-swarm-BstYoz8Q.js → deacon-swarm-CO_A7xyd.js} +12 -105
  68. package/server/deacon.js +7 -7
  69. package/server/{devcontainer-renderer-CaYOG9JN.js → devcontainer-renderer-BQolp_qZ.js} +3 -3
  70. package/server/{dist-BIC8spJ0.js → dist-Bc32rWJB.js} +1 -1
  71. package/server/dist-DGTwcZhI.js +3 -0
  72. package/server/{docker-DDI1shu3.js → docker-s-esqZ__.js} +67 -28
  73. package/server/{ensure-devcontainer-DCAg3ksz.js → ensure-devcontainer-DA4-jF6R.js} +4 -4
  74. package/server/{ensure-devcontainer-CbSXvN9W.js → ensure-devcontainer-pUVaT0h3.js} +1 -1
  75. package/server/{esm-shims-DiV9jHa_.js → esm-shims-CJHy8CZY.js} +1 -1
  76. package/server/{event-store-DU3HkZlN.js → event-store-CcJAhKCl.js} +1 -1
  77. package/server/{event-store-DCMqyI07.js → event-store-DRte2Rwt.js} +3 -3
  78. package/server/{events-BfiosVAn.js → events-Bej1w_k8.js} +3 -3
  79. package/server/{events-DLRxpSuV.js → events-CtsLScn8.js} +1 -1
  80. package/server/export-Dx_qJ3h8.js +87 -0
  81. package/server/{factory-BMtWV9iv.js → factory-FN727tWr.js} +4 -4
  82. package/server/{feature-registry-population-DA7bO6Zn.js → feature-registry-population-ie-yBcQC.js} +4 -4
  83. package/server/{feature-registry-storage-nAY1fbBt.js → feature-registry-storage-CkZTFSsn.js} +2 -2
  84. package/server/{features-DMu7eGmU.js → features-Dtm9ABuz.js} +2 -2
  85. package/server/{feedback-target-DHqcw3cN.js → feedback-target-BYtpyt1i.js} +6 -6
  86. package/server/{feedback-target-B2SEai8-.js → feedback-target-DVJQDiE4.js} +1 -1
  87. package/server/{feedback-writer-DMBdS_jL.js → feedback-writer-DOUhyIW2.js} +1 -1
  88. package/server/{feedback-writer-qvm7UON7.js → feedback-writer-fdE1BzeL.js} +4 -4
  89. package/server/{flywheel-k4FPtCQ_.js → flywheel-Bi82iiNl.js} +1 -1
  90. package/server/{flywheel-Dfpx4bIV.js → flywheel-Bv3wv2S6.js} +23 -15
  91. package/server/{flywheel-D2LdPSic.js → flywheel-CUErLAyN.js} +13 -13
  92. package/server/{flywheel-merge-order-CB4lbXeJ.js → flywheel-merge-order-BaEN3iyN.js} +7 -7
  93. package/server/{flywheel-merge-order-CttTazRY.js → flywheel-merge-order-DXjeBnJ1.js} +1 -1
  94. package/server/{forge-CoPFXFyl.js → forge-ButEdJ31.js} +2 -2
  95. package/server/forge-XlDgPQWs.js +2 -0
  96. package/server/{from-B0YoJl9-.js → from-CbtTxftl.js} +1 -1
  97. package/server/{fts-db-DAHW1yA_.js → fts-db-CBgBLZcL.js} +2 -2
  98. package/server/{fts-operations-DDXDBi0d.js → fts-operations-CI9Xuo_1.js} +2 -2
  99. package/server/{git-utils-DbfC0zls.js → git-utils-BCLRWQ-y.js} +1 -1
  100. package/server/{git-utils-B90Zjzfl.js → git-utils-ClfpP47N.js} +2 -2
  101. package/server/{github-app-C7lftMNj.js → github-app-DRD2woO0.js} +1 -1
  102. package/server/{github-app-BecAnXRX.js → github-app-DscZ0_B6.js} +2 -2
  103. package/server/{github-client-D21rCIXk.js → github-client-DpiZnxGH.js} +2 -2
  104. package/server/{github-client-BwtKZtM0.js → github-client-iFRw8f7e.js} +1 -1
  105. package/server/{github-pr-lookup-CzVWuysl.js → github-pr-lookup-D-EBexxC.js} +2 -2
  106. package/server/{harness-resolve-SkRJm4a7.js → harness-resolve-iMjyNUJ2.js} +3 -3
  107. package/server/{health-events-DA_JLpgZ.js → health-events-B_WsQyYm.js} +1 -1
  108. package/server/{health-events-BT0aAfeA.js → health-events-CRdxDFN2.js} +2 -2
  109. package/server/{hooks-BQxRXtRb.js → hooks-C1ScyVxP.js} +1 -1
  110. package/server/{hooks-DxEn2BoY.js → hooks-C9b7Vqpw.js} +2 -2
  111. package/server/hume-K1pi8jC4.js +3 -0
  112. package/server/{hume-DkVOs1Qi.js → hume-TQ5pvOZ_.js} +2 -2
  113. package/server/{idle-stack-reaper-DGy7tvC9.js → idle-stack-reaper-B1kG7B_X.js} +2 -2
  114. package/server/{idle-stack-reaper-C7fJL8jH.js → idle-stack-reaper-iFVOAoJy.js} +1 -1
  115. package/server/{infra-DE3C4PMr.js → infra-bpq1MHKU.js} +50 -3
  116. package/server/{injection-Dt22tGvS.js → injection-BLWfwTVZ.js} +1 -1
  117. package/server/{injection-Cc4Qt8LZ.js → injection-DJqWld1v.js} +7 -7
  118. package/server/inspect-agent-477VxQim.js +2 -0
  119. package/server/{inspect-agent-DOaCDkCF.js → inspect-agent-DytCsltn.js} +9 -9
  120. package/server/{internal-token-nobT6FhA.js → internal-token-CCaWaTwE.js} +1 -1
  121. package/server/{internal-token-B_1YLWLI.js → internal-token-CjlhdufS.js} +2 -2
  122. package/server/{io-A7ZuOBkz.js → io-BiQ2Cs3k.js} +2 -2
  123. package/server/{issue-closed-Da3DeomA.js → issue-closed-FApNiOOs.js} +4 -4
  124. package/server/{issue-lifecycle-Bd9XBJAQ.js → issue-lifecycle-BkFWNjlD.js} +1 -1
  125. package/server/{issue-lifecycle-543pQX9D.js → issue-lifecycle-C-K53ASY.js} +21 -21
  126. package/server/{issue-service-singleton-Brc3t0SV.js → issue-service-singleton-CuHGpJJP.js} +8 -8
  127. package/server/{issue-service-singleton-BC2JLZi7.js → issue-service-singleton-bG1WdSdQ.js} +1 -1
  128. package/server/{issues-D3kt9UWE.js → issues-CwQMphDH.js} +2 -2
  129. package/server/jsonl-parser-dNIjHgym.js +245 -0
  130. package/server/{label-cleanup-w9X_T3AQ.js → label-cleanup-DYvAZknd.js} +3 -3
  131. package/server/{layers-Cwe1J-9o.js → layers-CD6FysRU.js} +2 -2
  132. package/server/{lifecycle-f1GbDK33.js → lifecycle-C_73gi-C.js} +7 -7
  133. package/server/{lifecycle-io-D56q8zlO.js → lifecycle-io-C_Wu0_i-.js} +1 -1
  134. package/server/{lifecycle-io-Bqvj0m3i.js → lifecycle-io-CeYxP3cE.js} +4 -4
  135. package/server/{linear-client-Bh4T4S-c.js → linear-client-4qoKnuQu.js} +1 -1
  136. package/server/{linear-client-CfJMTAYd.js → linear-client-EtVyblVz.js} +2 -2
  137. package/server/memory-fts-worker.js +1 -1
  138. package/server/{merge-ZrXFM3jv.js → merge-7rqkTUm2.js} +3 -3
  139. package/server/merge-agent-36wfYm2u.js +3 -0
  140. package/server/{merge-agent-CHHs5S_0.js → merge-agent-4Zhlgvqp.js} +62 -27
  141. package/server/{merge-batch-BwhGdlh4.js → merge-batch-itfnwdsT.js} +1 -1
  142. package/server/{merge-blockers-BMhDpMl_.js → merge-blockers-Bto_Oe_o.js} +2 -2
  143. package/server/{merge-DRMPa8CQ.js → merge-brm721Es.js} +1 -1
  144. package/server/merge-ops-PzqsW69V.js +2 -0
  145. package/server/{merge-rebase-R7MfqpiE.js → merge-rebase-Czfqfe4q.js} +2 -2
  146. package/server/{merge-set-B3Breacq.js → merge-set-BIkGQL9j.js} +9 -5
  147. package/server/{merge-set-D-iXNP0I.js → merge-set-G1RHcu3D.js} +1 -1
  148. package/server/{merge-sync-DHWbGtjR.js → merge-sync-B43Dybea.js} +2 -2
  149. package/server/{merge-sync-bOOtfeXR.js → merge-sync-DIrmlZUr.js} +1 -1
  150. package/server/{merge-train-98ptZrPT.js → merge-train-DGqVuNZV.js} +3 -3
  151. package/server/{merge-train-deps-B5FWJTE2.js → merge-train-deps-q15XLnAS.js} +4 -4
  152. package/server/{merge-verification-BGiuiXAK.js → merge-verification-Cqfxx6bE.js} +4 -4
  153. package/server/{multipart-parser-D7mzNNDm.js → multipart-parser-CiPxxfUH.js} +2 -2
  154. package/server/node_modules/.package-lock.json +1 -1
  155. package/server/{orphan-proposed-reconciler-BSGCNJ6X.js → orphan-proposed-reconciler-BWWHn4Lr.js} +15 -39
  156. package/server/{orphan-proposed-reconciler-CSuxivr9.js → orphan-proposed-reconciler-DAD9FJtQ.js} +1 -1
  157. package/server/package-lock.json +2 -2
  158. package/server/package.json +1 -1
  159. package/server/{pan-dir-DoPtdHrp.js → pan-dir-Bj7Hy8iu.js} +3 -3
  160. package/server/{paths-CVDLPxXp.js → paths-C9DkhIOT.js} +2 -2
  161. package/server/{pickup-KLRUhThD.js → pickup-CKRuGDsB.js} +1 -1
  162. package/server/{pipeline-notifier-BtYHbBPl.js → pipeline-notifier-BkKbQ8ji.js} +1 -1
  163. package/server/{pipeline-notifier-WD2dnOsR.js → pipeline-notifier-CAurUste.js} +2 -2
  164. package/server/project-pipelines-BRWaGmI4.js +162 -0
  165. package/server/projects-KJ94e50I.js +3 -0
  166. package/server/{prompts-Cg7e9FPb.js → prompts-DfI5qbTW.js} +2 -2
  167. package/server/{providers-fLduChnX.js → providers-CWDXoaMA.js} +7 -7
  168. package/server/providers-D-5txBRc.js +3 -0
  169. package/server/public/assets/{chunk-BO2N2NFS-aNlsGDCu.js → chunk-BO2N2NFS-ClukPsZQ.js} +4 -4
  170. package/server/public/assets/{diagram-OG6HWLK6-CnjkrvT8.js → diagram-OG6HWLK6-Avtvq2qI.js} +1 -1
  171. package/server/public/assets/{dist-Bg3Sbsx4.js → dist-BEHQuasD.js} +3 -3
  172. package/server/public/assets/{dist-CGKBCieA.js → dist-BvmY-qb1.js} +1 -1
  173. package/server/public/assets/{ganttDiagram-6RSMTGT7-C8LLKj23.js → ganttDiagram-6RSMTGT7-7KhCd0fH.js} +1 -1
  174. package/server/public/assets/{highlighted-body-OFNGDK62-BSDEUvhW.js → highlighted-body-OFNGDK62-iQoBMTf0.js} +1 -1
  175. package/server/public/assets/index-DUFDmvmH.css +1 -0
  176. package/server/public/assets/index-DnTZ2QeN.js +796 -0
  177. package/server/public/assets/{linear-DEbYZoxg.js → linear-CiJHW9g5.js} +1 -1
  178. package/server/public/assets/mermaid-GHXKKRXX-DZJOwgBG.js +1 -0
  179. package/server/public/assets/{pieDiagram-4H26LBE5-BtZL5pXE.js → pieDiagram-4H26LBE5-BOhmvUhW.js} +1 -1
  180. package/server/public/assets/{prod-DYVvIyuh.js → prod-DmLBBqat.js} +4 -4
  181. package/server/public/assets/{quadrantDiagram-W4KKPZXB-a7vS8Jc8.js → quadrantDiagram-W4KKPZXB-Cjku660G.js} +1 -1
  182. package/server/public/assets/{sankeyDiagram-5OEKKPKP-Ckbq2SWH.js → sankeyDiagram-5OEKKPKP-D52w5oPh.js} +1 -1
  183. package/server/public/assets/{xychartDiagram-2RQKCTM6-DJyeNa99.js → xychartDiagram-2RQKCTM6-BTO07_Iv.js} +1 -1
  184. package/server/public/index.html +2 -2
  185. package/server/{pull-requests-1WXmTBlo.js → pull-requests-Bmre-Xlz.js} +3 -3
  186. package/server/{pull-requests-D2SjJIwY.js → pull-requests-CKZPWhjD.js} +1 -1
  187. package/server/{rally-8aQlLLVj.js → rally-BBd9tQ__.js} +3 -3
  188. package/server/rally-Dc2Wnxw2.js +3 -0
  189. package/server/{rally-api-BtvwdX6d.js → rally-api-DDc85HIz.js} +1 -1
  190. package/server/{rally-api-H5I2CBO0.js → rally-api-DxZFObI_.js} +2 -2
  191. package/server/{rally-client-Bt-qHiOh.js → rally-client-BADHn0m_.js} +1 -1
  192. package/server/{rally-client-33CYZYYu.js → rally-client-DvvLiAQP.js} +4 -4
  193. package/server/{reap-terminal-sessions-CAmURC2h.js → reap-terminal-sessions-D6JDJsqF.js} +1 -1
  194. package/server/{reap-terminal-sessions-BwJb2DLJ.js → reap-terminal-sessions-D_xvy-Mk.js} +1 -1
  195. package/server/{rebuild-stack-KHkkrGjx.js → rebuild-stack-D19i080j.js} +6 -6
  196. package/server/{rebuild-stack-CXSgAGPR.js → rebuild-stack-GOsWqXi3.js} +1 -1
  197. package/server/{reconstruct-cache-D_Ml65_6.js → reconstruct-cache-lQrG4xGg.js} +6 -6
  198. package/server/record-pyB6VA32.js +3 -0
  199. package/server/recovery-trip-Dfh1tNHn.js +98 -0
  200. package/server/release-engine-DxcMWRuK.js +306 -0
  201. package/server/release-set-BYsgX7o6.js +125 -0
  202. package/server/{remote-CGuognN3.js → remote-8W2Yhygw.js} +3 -3
  203. package/server/{remote-D0Old0Cv.js → remote-DmeL21dF.js} +3 -3
  204. package/server/{remote-agents-DfhMq6kQ.js → remote-agents-BfQBE6MN.js} +5 -5
  205. package/server/{remote-agents-UHoi4oGr.js → remote-agents-DlvbzO7m.js} +1 -1
  206. package/server/{remote-completion-RZYePR_0.js → remote-completion-BgkiSQmx.js} +12 -12
  207. package/server/resolver-dTpSSzaH.js +158 -0
  208. package/server/resume-DhcIqsTm.js +3 -0
  209. package/server/{review-agent-sZBCpEVv.js → review-agent-D025Wt7w.js} +22 -22
  210. package/server/{review-agent-uwVftH98.js → review-agent-Rub0OpZc.js} +1 -1
  211. package/server/{review-artifacts-C7a45b1_.js → review-artifacts-CX951jTU.js} +6 -6
  212. package/server/{review-context-CErbQpKL.js → review-context-DGGGR_w5.js} +7 -7
  213. package/server/{review-monitor-DHD9m_kh.js → review-monitor-0_qqMcnS.js} +2 -2
  214. package/server/{review-status-gPndPUBc.js → review-status-4qqLkRMu.js} +24 -17
  215. package/server/{review-status-JhQ3qlDS.js → review-status-Br6lAFGO.js} +1 -1
  216. package/server/{review-status-enrichment-qWvWckYN.js → review-status-enrichment-Cr8m3uVL.js} +3 -3
  217. package/server/{review-status-sync-B_GrEke8.js → review-status-sync-D3KUhsdA.js} +1 -1
  218. package/server/{review-status-sync-D3A9KX95.js → review-status-sync-OC-l1lNt.js} +9 -5
  219. package/server/{review-verdict-feedback-4WZ5ZdbC.js → review-verdict-feedback-DrWMuRaj.js} +6 -6
  220. package/server/{review-verdict-feedback-Zo0r_z4m.js → review-verdict-feedback-YOzmsq9G.js} +1 -1
  221. package/server/{rollup-BrUIKMv_.js → rollup-CnxbwaLH.js} +8 -8
  222. package/server/{rollup-Bmhn80tB.js → rollup-DmazRY0j.js} +1 -1
  223. package/server/{scanner-BIGumel_.js → scanner-DE1MqAaF.js} +7 -7
  224. package/server/{sequence-io-DA0akEQN.js → sequence-io-C0uoqfGx.js} +4 -4
  225. package/server/{sequencer-agent-DeflKafB.js → sequencer-agent-i-b2u4SJ.js} +10 -6
  226. package/server/server.js +1115 -297
  227. package/server/{service-V0sUK-OR.js → service-D0_gh2tl.js} +1668 -1408
  228. package/server/{session-fork-Yx3UcAQf.js → session-fork-DZ12vipL.js} +2 -2
  229. package/server/{settings-CFEeQRj2.js → settings-ByqjPtFO.js} +2 -2
  230. package/server/{settings-CxVate0h.js → settings-DCC4BAqj.js} +3 -3
  231. package/server/settings-yydgaqhv.js +2 -0
  232. package/server/{shadow-engineering-BRxnVSDk.js → shadow-engineering-BhnmtW5m.js} +2 -2
  233. package/server/{shadow-state-1aS8FijU.js → shadow-state-ByXZehsy.js} +1 -1
  234. package/server/{shadow-state-BiMwdyl1.js → shadow-state-CKm8xWX9.js} +2 -2
  235. package/server/{ship-log-CMWH3H5-.js → ship-log-DE_0Cv_i.js} +1 -1
  236. package/server/{smart-compaction-Bw1K_Sbl.js → smart-compaction-D5Zen3AA.js} +7 -7
  237. package/server/{smart-compaction-xblMyVpT.js → smart-compaction-h4_ca6Uk.js} +1 -1
  238. package/server/{spawn-planning-session-CzDFSKAQ.js → spawn-planning-session-Bgi7Ub02.js} +1 -1
  239. package/server/{spawn-planning-session-DxLxcM7m.js → spawn-planning-session-Dueit4WX.js} +15 -15
  240. package/server/{specialist-completion-BiEXUHfD.js → specialist-completion-BZ8M-WZ0.js} +1 -1
  241. package/server/{specialist-context-BfkTA81h.js → specialist-context-BMq83C58.js} +5 -5
  242. package/server/{specialist-handoff-logger-BiKuLtNm.js → specialist-handoff-logger-BxX1YefH.js} +2 -2
  243. package/server/{specialist-logs-CFJjGsLC.js → specialist-logs-BWZYcJ6P.js} +3 -3
  244. package/server/{specialists-DdvpFNt1.js → specialists-8ZAguXef.js} +1 -1
  245. package/server/{specialists-B4byf18k.js → specialists-BudKrjOu.js} +76 -76
  246. package/server/{specialists-DjHbwQ_p.js → specialists-DrPrC9Y9.js} +20 -256
  247. package/server/{specialists-BLIreoE7.js → specialists-ZkW4Mb7U.js} +1 -1
  248. package/server/specs-DwoAEGrW.js +3 -0
  249. package/server/{src-fgbU-jJ-.js → src-DHn4Rd2F.js} +25 -3
  250. package/server/{src-mK_M_ZIj.js → src-DNUUqkec.js} +6 -6
  251. package/server/{src-CALBEUMX.js → src-Dv6L03vW.js} +3 -3
  252. package/server/{stack-health-BFM8YlHw.js → stack-health-Dclm7_tu.js} +1 -1
  253. package/server/{stack-health-Qd7rPiVe.js → stack-health-DxsTx7II.js} +2 -2
  254. package/server/{state-home-C2Bicw9N.js → state-home-CRowbXqU.js} +6 -6
  255. package/server/stuck-remediation-CFWUP8_I.js +1491 -0
  256. package/server/stuck-remediation-CLHd-lrF.js +2 -0
  257. package/server/{summary-fork-EWWBvzgE.js → summary-fork-CKc01Our.js} +2 -2
  258. package/server/{summary-fork-DezPkJSm.js → summary-fork-CtCwBJ2Z.js} +8 -8
  259. package/server/{supervisor-D5GC5jUM.js → supervisor-BA5D72Qa.js} +2 -2
  260. package/server/supervisor-DHjumXlL.js +2 -0
  261. package/server/{swarm-readiness-Cf9mommA.js → swarm-readiness-CL5sM9B1.js} +3 -3
  262. package/server/{system-prerequisites-BsI9hxh9.js → system-prerequisites-DmFSXIE5.js} +13 -1
  263. package/server/{teardown-workspace-CWz1pbEK.js → teardown-workspace-DWmFJzTw.js} +37 -68
  264. package/server/{test-agent-queue-TiVXe3ZT.js → test-agent-queue-DjsQoV5X.js} +6 -6
  265. package/server/{test-verdict-CCDd25uN.js → test-verdict-BSqsQp3G.js} +1 -1
  266. package/server/{test-verdict-Bm4uv_AA.js → test-verdict-D1AmZ2c0.js} +1 -1
  267. package/server/{tldr-daemon-C_1frSDj.js → tldr-daemon-C-MGomL8.js} +2 -2
  268. package/server/{tldr-daemon-Big5IZ_M.js → tldr-daemon-DD9rI5gA.js} +1 -1
  269. package/server/{tmux-D57f-XNv.js → tmux-C_d-lSIq.js} +2 -2
  270. package/server/{tmux-DClqWwb8.js → tmux-x291Gjjb.js} +1 -1
  271. package/server/{token-_qujO3JZ.js → token-DfBf1bsd.js} +1 -1
  272. package/server/{tracker-config-BmdJU_w6.js → tracker-config-CNODpd11.js} +2 -2
  273. package/server/{tracker-config-B_Ubts1Z.js → tracker-config-DItsdelv.js} +1 -1
  274. package/server/{tracker-utils-Bg-Sevcv.js → tracker-utils-B9ZoVA9b.js} +1 -1
  275. package/server/{tracker-utils-CWFt6jjV.js → tracker-utils-Ch2_5GGf.js} +2 -2
  276. package/server/{traefik-connect-5EP1WS_Z.js → traefik-connect-BF4x_LUQ.js} +1 -1
  277. package/server/{tunnel-hOBNQbmF.js → tunnel-YD80_IHr.js} +1 -1
  278. package/server/{tunnel-UBf2vyAL.js → tunnel-r_5nHAI6.js} +3 -3
  279. package/server/{types-B5u3NxMl.js → types-33JEP4LZ.js} +1 -1
  280. package/server/{uat-train-DGkIkLxu.js → uat-train-DDI00aqD.js} +1 -1
  281. package/server/{uat-train-qNanv5hN.js → uat-train-DjkFWXge.js} +25 -25
  282. package/server/{validation-C4wegCvH.js → validation-DUTiJnyz.js} +4 -4
  283. package/server/{validation-B0QaLIHP.js → validation-ict8hnXk.js} +1 -1
  284. package/server/{verification-runner-DdleMNLq.js → verification-runner-ATaLbpr5.js} +1 -1
  285. package/server/{verification-runner-CntudBes.js → verification-runner-inLgeQux.js} +12 -12
  286. package/server/{vtt-parser-CKc-smWM.js → vtt-parser-QnRfcjiU.js} +1 -1
  287. package/server/{work-agent-prompt-CG5jFV9A.js → work-agent-prompt-fZljjA1_.js} +12 -12
  288. package/server/{workflows-BK2xs_a8.js → workflows-oBnJ7Tm0.js} +14 -14
  289. package/server/workflows-tU7KKxQi.js +2 -0
  290. package/server/{workspace-C9lC5o3E.js → workspace-B2WOW9Hw.js} +1 -1
  291. package/server/{workspace-CLrSIRCx.js → workspace-CNuW2j41.js} +3 -3
  292. package/server/{workspace-config-DA8U97k9.js → workspace-config-CBgMGhWs.js} +1 -1
  293. package/server/{workspace-manager-BJhW2sky.js → workspace-manager-CB-R07R3.js} +12 -12
  294. package/server/{workspace-manager-Cb2a7bg9.js → workspace-manager-DjUAJCSs.js} +1 -1
  295. package/server/{workspace-metadata-QQmo_Z0l.js → workspace-metadata-9Nn5kgRl.js} +2 -2
  296. package/server/{workspace-metadata-CTRnr323.js → workspace-metadata-Fd58uUQG.js} +1 -1
  297. package/server/{workspaces-Ca4zZs12.js → workspaces-BjWXntty.js} +106 -120
  298. package/server/writer-CQMGzEkw.js +3 -0
  299. package/server/writer-fe1-8iGc.js +251 -0
  300. package/sync-sources/hooks/ask-user-question-hook +87 -0
  301. package/sync-sources/hooks/auto-approve-hook +96 -0
  302. package/sync-sources/hooks/codex-notify-hook +62 -0
  303. package/sync-sources/hooks/gh-issue-trailer-hook +4 -0
  304. package/sync-sources/hooks/gh-issue-trailer-hook.d.ts +7 -0
  305. package/sync-sources/hooks/gh-issue-trailer-hook.d.ts.map +1 -0
  306. package/sync-sources/hooks/gh-issue-trailer-hook.js +239 -0
  307. package/sync-sources/hooks/gh-issue-trailer-hook.js.map +1 -0
  308. package/sync-sources/hooks/gh-issue-trailer-hook.ts +296 -0
  309. package/sync-sources/hooks/git-hooks/post-checkout +109 -0
  310. package/sync-sources/hooks/heartbeat-hook +113 -0
  311. package/sync-sources/hooks/notification-hook +70 -0
  312. package/sync-sources/hooks/notify-complete +79 -0
  313. package/sync-sources/hooks/pan-hook-lib.sh +153 -0
  314. package/sync-sources/hooks/permission-event-hook +24 -0
  315. package/sync-sources/hooks/post-compact-hook +25 -0
  316. package/sync-sources/hooks/pre-compact-hook +26 -0
  317. package/sync-sources/hooks/pre-tool-hook +35 -0
  318. package/sync-sources/hooks/record-cost-event.d.ts +1 -0
  319. package/sync-sources/hooks/record-cost-event.js +31859 -0
  320. package/sync-sources/hooks/record-cost-event.js.map +1 -0
  321. package/sync-sources/hooks/record-cost-event.ts +267 -0
  322. package/sync-sources/hooks/rtk-bash-filter +152 -0
  323. package/sync-sources/hooks/session-start-hook +80 -0
  324. package/sync-sources/hooks/specialist-stop-hook +106 -0
  325. package/sync-sources/hooks/statusline.sh +169 -0
  326. package/sync-sources/hooks/stop-hook +217 -0
  327. package/sync-sources/hooks/tldr-post-edit +72 -0
  328. package/sync-sources/hooks/tldr-read-enforcer +340 -0
  329. package/sync-sources/hooks/tmux-send-keys-guard +87 -0
  330. package/sync-sources/hooks/tsdown.config.ts +14 -0
  331. package/sync-sources/hooks/user-prompt-submit-hook +57 -0
  332. package/sync-sources/hooks/work-agent-stop-hook +424 -0
  333. package/server/auto-commit-CGQlb4rV.js +0 -3
  334. package/server/bd-mutex-BItGvLQ8.js +0 -35
  335. package/server/beads-restore-CMbDSB5R.js +0 -60
  336. package/server/cli-Ch_BWJB2.js +0 -3
  337. package/server/deacon-swarm-CSWGRfzr.js +0 -2
  338. package/server/dist-BUplB3Od.js +0 -3
  339. package/server/forge-IgLR0Ist.js +0 -2
  340. package/server/hume-x9voULey.js +0 -3
  341. package/server/inspect-agent-CYoWAeeB.js +0 -2
  342. package/server/merge-agent-CfohxFWM.js +0 -3
  343. package/server/merge-ops-Czke6UAp.js +0 -2
  344. package/server/projects-Bqfwuqet.js +0 -3
  345. package/server/providers-JjK6izqX.js +0 -3
  346. package/server/public/assets/index-CZiADHcL.css +0 -1
  347. package/server/public/assets/index-LQIfhmgI.js +0 -796
  348. package/server/public/assets/mermaid-GHXKKRXX-CZOsRYoT.js +0 -1
  349. package/server/rally-Ba9QoNYc.js +0 -3
  350. package/server/record-De2syxNB.js +0 -3
  351. package/server/resume-CmxF3Kjz.js +0 -3
  352. package/server/settings-DEhYpW0k.js +0 -2
  353. package/server/specs-CVH1kvz3.js +0 -3
  354. package/server/supervisor-DQMK2e3I.js +0 -2
  355. package/server/workflows-pKw9yRSV.js +0 -2
@@ -0,0 +1,2 @@
1
+ import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-CFWUP8_I.js";
2
+ export { shouldSkipIdlePokeForAgent };
@@ -1,4 +1,4 @@
1
- import "./smart-compaction-Bw1K_Sbl.js";
2
- import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-DezPkJSm.js";
1
+ import "./smart-compaction-D5Zen3AA.js";
2
+ import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-CtCwBJ2Z.js";
3
3
  init_summary_fork();
4
4
  export { generateFallbackSummary };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Gr as sessionFilePath, Rr as getHandoffsDir, Ur as packageRoot, Vr as init_paths, cr as FsError, f as loadConfigSync, t as init_config_yaml, vr as init_errors } from "./config-yaml-ClpGgrf6.js";
3
- import { St as deliverAgentMessage, t as init_agents } from "./agents-B5LfpLPv.js";
4
- import { k as init_conversations } from "./conversations-DfJKBDwB.js";
5
- import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-Qd7rPiVe.js";
6
- import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-Bw1K_Sbl.js";
2
+ import { Wr as getHandoffsDir, Yr as packageRoot, Zr as sessionFilePath, br as init_errors, f as loadConfigSync, qr as init_paths, t as init_config_yaml, ur as FsError } from "./config-yaml-Dcz-8uit.js";
3
+ import { St as deliverAgentMessage, t as init_agents } from "./agents-CsOzAmRg.js";
4
+ import { k as init_conversations } from "./conversations-DG2M8WnT.js";
5
+ import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-DxsTx7II.js";
6
+ import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-D5Zen3AA.js";
7
7
  import { join } from "node:path";
8
8
  import { Effect } from "effect";
9
9
  import { join as join$1 } from "path";
@@ -442,11 +442,11 @@ async function generateSummaryForFork(jsonlPath, summaryModel, includeThinkingIn
442
442
  }
443
443
  }
444
444
  async function reserveSummaryForkSessionPromise(cwd) {
445
- const { reserveForkSession } = await import("./session-fork-Yx3UcAQf.js");
445
+ const { reserveForkSession } = await import("./session-fork-DZ12vipL.js");
446
446
  return reserveForkSession(cwd);
447
447
  }
448
448
  async function copySessionFromCompactBoundaryPromise(sourcePath, destPath) {
449
- const { copySessionForFork } = await import("./session-fork-Yx3UcAQf.js");
449
+ const { copySessionForFork } = await import("./session-fork-DZ12vipL.js");
450
450
  return copySessionForFork(sourcePath, destPath, { fullHistory: false });
451
451
  }
452
452
  /** Effect variant of generateFallbackSummary. */
@@ -521,4 +521,4 @@ var init_summary_fork = __esmMin((() => {
521
521
  //#endregion
522
522
  export { init_transcript_adapter as _, generateFallbackSummary as a, handoffPreconditionFallbackReason as c, prependFallbackFocus as d, requestHandoffFromAgent as f, getTranscriptAdapter as g, validateHandoffDoc as h, copySessionFromCompactBoundary as i, init_summary_fork as l, sanitizeHandoffDoc as m, HandoffValidationError as n, generateSummaryForFork as o, reserveSummaryForkSession as p, authorHandoffExternal as r, handoffFailureReason as s, HandoffStallError as t, logHandoffFallback as u };
523
523
 
524
- //# sourceMappingURL=summary-fork-DezPkJSm.js.map
524
+ //# sourceMappingURL=summary-fork-CtCwBJ2Z.js.map
@@ -1,4 +1,4 @@
1
- import { Dr as LOGS_DIR, Ir as TRAEFIK_DIR, Or as OVERDECK_HOME, Tr as CONFIG_FILE, Vr as init_paths, vr as init_errors } from "./config-yaml-ClpGgrf6.js";
1
+ import { Ar as OVERDECK_HOME, Dr as CONFIG_FILE, Rr as TRAEFIK_DIR, br as init_errors, kr as LOGS_DIR, qr as init_paths } from "./config-yaml-Dcz-8uit.js";
2
2
  import { t as require_toml } from "./toml-CeLDATih.js";
3
3
  import { join } from "node:path";
4
4
  import "effect";
@@ -73,4 +73,4 @@ function getSupervisorUrlSync() {
73
73
  //#endregion
74
74
  export { getSupervisorUrlSync as n, getSupervisorPortSync as t };
75
75
 
76
- //# sourceMappingURL=supervisor-D5GC5jUM.js.map
76
+ //# sourceMappingURL=supervisor-BA5D72Qa.js.map
@@ -0,0 +1,2 @@
1
+ import { n as getSupervisorUrlSync } from "./supervisor-BA5D72Qa.js";
2
+ export { getSupervisorUrlSync };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { T as init_specs } from "./io-A7ZuOBkz.js";
3
- import { c as groupItemsByWave, i as compileGlob, l as hasFileOverlap, s as getDispatchableItems, u as init_dag } from "./dag-Dv2r5bVD.js";
2
+ import { T as init_specs } from "./io-BiQ2Cs3k.js";
3
+ import { c as groupItemsByWave, i as compileGlob, l as hasFileOverlap, s as getDispatchableItems, u as init_dag } from "./dag-CqTehWpY.js";
4
4
  import "effect";
5
5
  //#region ../../lib/vbrief/swarm-readiness.ts
6
6
  function computeIssueFootprint(doc) {
@@ -112,4 +112,4 @@ var init_swarm_readiness = __esmMin((() => {
112
112
  //#endregion
113
113
  export { computeIssueFootprint as n, init_swarm_readiness as r, analyzeSwarmReadiness as t };
114
114
 
115
- //# sourceMappingURL=swarm-readiness-Cf9mommA.js.map
115
+ //# sourceMappingURL=swarm-readiness-CL5sM9B1.js.map
@@ -66,6 +66,18 @@ const PREREQUISITES = [
66
66
  win: "npm install -g @anthropic-ai/claude-code"
67
67
  }
68
68
  },
69
+ {
70
+ id: "jq",
71
+ name: "jq",
72
+ required: false,
73
+ purpose: "Powers Overdeck's Claude Code hooks (auto-approve, live status, cost tracking)",
74
+ versionArgs: ["--version"],
75
+ install: {
76
+ linux: "sudo apt install jq",
77
+ mac: "brew install jq",
78
+ win: "winget install jqlang.jq"
79
+ }
80
+ },
69
81
  {
70
82
  id: "gh",
71
83
  name: "GitHub CLI",
@@ -163,4 +175,4 @@ async function checkSystemPrerequisites(probe = defaultProbe) {
163
175
  //#endregion
164
176
  export { checkSystemPrerequisites };
165
177
 
166
- //# sourceMappingURL=system-prerequisites-BsI9hxh9.js.map
178
+ //# sourceMappingURL=system-prerequisites-DmFSXIE5.js.map
@@ -1,13 +1,16 @@
1
- import { Vr as init_paths, yr as AGENTS_DIR } from "./config-yaml-ClpGgrf6.js";
2
- import { L as sessionExists, O as listSessionNames, w as killSession, x as init_tmux } from "./tmux-D57f-XNv.js";
3
- import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-BJhW2sky.js";
4
- import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-CaYOG9JN.js";
5
- import { i as findWorkspacePath, o as init_archive_planning, r as findAllWorkspacePaths } from "./archive-planning-oX1pj6nY.js";
6
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-B5u3NxMl.js";
1
+ import { qr as init_paths, xr as AGENTS_DIR } from "./config-yaml-Dcz-8uit.js";
2
+ import { L as sessionExists, O as listSessionNames, w as killSession, x as init_tmux } from "./tmux-C_d-lSIq.js";
3
+ import { n as init_resolver, t as createBeadsResolver } from "./resolver-dTpSSzaH.js";
4
+ import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-CB-R07R3.js";
5
+ import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-BQolp_qZ.js";
6
+ import { i as findWorkspacePath, o as init_archive_planning, r as findAllWorkspacePaths } from "./archive-planning-DkivCk1A.js";
7
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-33JEP4LZ.js";
8
+ import { n as init_export, t as exportBeadsJsonl } from "./export-Dx_qJ3h8.js";
9
+ import { n as init_writer, r as runMutationBatch } from "./writer-fe1-8iGc.js";
7
10
  import { Effect } from "effect";
8
11
  import { existsSync } from "fs";
9
12
  import { basename, join } from "path";
10
- import { appendFile, readFile, rm, writeFile } from "fs/promises";
13
+ import { readFile, rm } from "fs/promises";
11
14
  import { exec } from "child_process";
12
15
  import { promisify } from "util";
13
16
  //#region ../../lib/lifecycle/teardown-workspace.ts
@@ -28,6 +31,9 @@ init_types();
28
31
  init_archive_planning();
29
32
  init_workspace_manager();
30
33
  init_devcontainer_renderer();
34
+ init_export();
35
+ init_resolver();
36
+ init_writer();
31
37
  const execAsync = promisify(exec);
32
38
  /**
33
39
  * Kill tmux sessions associated with an issue.
@@ -83,7 +89,7 @@ async function stopTldrDaemonImpl(workspacePath) {
83
89
  const venvPath = join(workspacePath, ".venv");
84
90
  if (!existsSync(venvPath)) return stepSkipped(step, ["No .venv found"]);
85
91
  try {
86
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-Big5IZ_M.js");
92
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-DD9rI5gA.js");
87
93
  await getTldrDaemonServiceSync(workspacePath, venvPath).stop();
88
94
  return stepOk(step, ["Stopped TLDR daemon"]);
89
95
  } catch {
@@ -102,7 +108,7 @@ function stopDocker(workspacePath, issueLower) {
102
108
  async function stopDockerImpl(workspacePath, issueLower) {
103
109
  const step = "teardown:docker";
104
110
  try {
105
- const { stopWorkspaceDocker } = await import("./workspace-manager-Cb2a7bg9.js");
111
+ const { stopWorkspaceDocker } = await import("./workspace-manager-DjUAJCSs.js");
106
112
  await Effect.runPromise(stopWorkspaceDocker(workspacePath, issueLower));
107
113
  return stepOk(step, ["Stopped Docker containers"]);
108
114
  } catch {
@@ -163,41 +169,11 @@ function syncWorkspaceBeads(projectPath, workspacePath, issueLower) {
163
169
  catch: (err) => err
164
170
  }).pipe(Effect.catch((err) => Effect.succeed(stepFailed("teardown:sync-beads", `Failed to sync workspace beads: ${err.message}`))));
165
171
  }
166
- async function syncWorkspaceBeadsImpl(projectPath, workspacePath, issueLower) {
172
+ async function syncWorkspaceBeadsImpl(_projectPath, workspacePath, issueLower) {
167
173
  const step = "teardown:sync-beads";
168
174
  if (!existsSync(join(workspacePath, ".beads"))) return stepSkipped(step, ["No .beads directory in workspace"]);
169
175
  try {
170
- await execAsync("bd export --output .beads/issues-export.jsonl 2>&1 || true", {
171
- cwd: workspacePath,
172
- encoding: "utf-8",
173
- timeout: 12e4
174
- });
175
- if (!existsSync(join(workspacePath, ".beads", "issues-export.jsonl"))) await execAsync("bd export --output .beads/issues.jsonl 2>&1 || true", {
176
- cwd: workspacePath,
177
- encoding: "utf-8",
178
- timeout: 12e4
179
- });
180
- try {
181
- await execAsync(`bd import "${join(workspacePath, ".beads", "issues.jsonl")}" 2>&1 || true`, {
182
- cwd: projectPath,
183
- encoding: "utf-8",
184
- timeout: 12e4
185
- });
186
- return stepOk(step, [`Synced workspace beads to project root for ${issueLower}`]);
187
- } catch {
188
- const wsJsonl = join(workspacePath, ".beads", "issues.jsonl");
189
- const projJsonl = join(projectPath, ".beads", "issues.jsonl");
190
- if (existsSync(wsJsonl) && existsSync(projJsonl)) {
191
- const wsContent = await readFile(wsJsonl, "utf-8");
192
- const issuePattern = issueLower.replace("-", "[-_]");
193
- const relevantLines = wsContent.split("\n").filter((line) => line.trim() && new RegExp(issuePattern, "i").test(line));
194
- if (relevantLines.length > 0) {
195
- await appendFile(projJsonl, "\n" + relevantLines.join("\n"));
196
- return stepOk(step, [`Appended ${relevantLines.length} beads entries for ${issueLower} to project JSONL`]);
197
- }
198
- }
199
- return stepSkipped(step, ["No beads to sync or import not available"]);
200
- }
176
+ return stepOk(step, [`Validated ${(await exportBeadsJsonl(workspacePath)).state.recordCount} canonical beads records for ${issueLower}`]);
201
177
  } catch (err) {
202
178
  return stepFailed(step, `Failed to sync workspace beads: ${err.message}`);
203
179
  }
@@ -213,29 +189,22 @@ function clearProjectBeads(projectPath, issueLower) {
213
189
  }
214
190
  async function clearProjectBeadsImpl(projectPath, issueLower) {
215
191
  const step = "teardown:clear-beads";
216
- const projJsonl = join(projectPath, ".beads", "issues.jsonl");
217
- if (!existsSync(projJsonl)) return stepSkipped(step, ["No .beads/issues.jsonl in project root"]);
218
192
  try {
219
- const lines = (await readFile(projJsonl, "utf-8")).split("\n");
220
- const issueUpper = issueLower.toUpperCase();
221
- const before = lines.length;
222
- const filtered = lines.filter((line) => {
223
- if (!line.trim()) return true;
224
- try {
225
- const entry = JSON.parse(line);
226
- const title = (entry.title || "").toUpperCase();
227
- const issue = (entry.issue || "").toUpperCase();
228
- return !title.includes(issueUpper) && issue !== issueUpper;
229
- } catch {
230
- return true;
231
- }
193
+ const read = await createBeadsResolver(projectPath).getBeadsForIssue(issueLower);
194
+ if (!read.ok) return stepFailed(step, read.reason);
195
+ if (read.value.length === 0) return stepSkipped(step, [`No canonical beads found for ${issueLower}`]);
196
+ const result = await runMutationBatch({
197
+ project: { workspacePath: projectPath },
198
+ reason: `clear beads for ${issueLower}`
199
+ }, async (bd) => {
200
+ for (const bead of read.value) await bd.mutate([
201
+ "delete",
202
+ bead.id,
203
+ "--yes"
204
+ ]);
205
+ return read.value.length;
232
206
  });
233
- const removed = before - filtered.length;
234
- if (removed > 0) {
235
- await writeFile(projJsonl, filtered.join("\n"));
236
- return stepOk(step, [`Removed ${removed} beads entries for ${issueLower} from project JSONL`]);
237
- }
238
- return stepSkipped(step, [`No beads entries found for ${issueLower}`]);
207
+ return result.ok ? stepOk(step, [`Deleted ${result.value} canonical beads for ${issueLower}`]) : stepFailed(step, result.message);
239
208
  } catch (err) {
240
209
  return stepFailed(step, `Failed to clear beads: ${err.message}`);
241
210
  }
@@ -496,7 +465,7 @@ function clearShadowState(issueId) {
496
465
  async function clearShadowStateImpl(issueId) {
497
466
  const step = "teardown:shadow-state";
498
467
  try {
499
- const { removeShadowState } = await import("./shadow-state-1aS8FijU.js");
468
+ const { removeShadowState } = await import("./shadow-state-ByXZehsy.js");
500
469
  if (removeShadowState(issueId).success) return stepOk(step, [`Cleared shadow state for ${issueId}`]);
501
470
  return stepSkipped(step, ["No shadow state found"]);
502
471
  } catch {
@@ -546,7 +515,7 @@ function buildPlaceholders(ctx, opts, workspacePath) {
546
515
  function removeTunnelConfig(tunnelConfig, placeholders) {
547
516
  return Effect.tryPromise({
548
517
  try: async () => {
549
- const { removeTunnelIngress } = await import("./tunnel-hOBNQbmF.js");
518
+ const { removeTunnelIngress } = await import("./tunnel-YD80_IHr.js");
550
519
  return stepOk("teardown:tunnel", (await Effect.runPromise(removeTunnelIngress(tunnelConfig, placeholders))).steps || ["Removed tunnel ingress"]);
551
520
  },
552
521
  catch: (err) => err
@@ -558,7 +527,7 @@ function removeTunnelConfig(tunnelConfig, placeholders) {
558
527
  function removeHumeEviConfig(humeConfig, placeholders) {
559
528
  return Effect.tryPromise({
560
529
  try: async () => {
561
- const { deleteHumeConfig } = await import("./hume-x9voULey.js");
530
+ const { deleteHumeConfig } = await import("./hume-K1pi8jC4.js");
562
531
  return stepOk("teardown:hume", (await Effect.runPromise(deleteHumeConfig(humeConfig, placeholders))).steps || ["Removed Hume EVI config"]);
563
532
  },
564
533
  catch: (err) => err
@@ -605,7 +574,7 @@ function pruneSpecialistRegistry(issueId) {
605
574
  return Effect.tryPromise({
606
575
  try: async () => {
607
576
  const step = "teardown:specialist-registry";
608
- const { pruneSpecialistRegistryEntriesForIssue } = await import("./specialists-DdvpFNt1.js");
577
+ const { pruneSpecialistRegistryEntriesForIssue } = await import("./specialists-8ZAguXef.js");
609
578
  const removed = pruneSpecialistRegistryEntriesForIssue(issueId);
610
579
  return removed > 0 ? stepOk(step, [`Pruned ${removed} specialist registry entr${removed === 1 ? "y" : "ies"} for ${issueId}`]) : stepSkipped(step, [`No specialist registry entries for ${issueId}`]);
611
580
  },
@@ -616,7 +585,7 @@ function pruneCheckpointRefs(projectPath, issueLower) {
616
585
  return Effect.tryPromise({
617
586
  try: async () => {
618
587
  const step = "teardown:checkpoint-refs";
619
- const { pruneCheckpointRefsForAgents } = await import("./checkpoint-manager-eFgaMMu4.js");
588
+ const { pruneCheckpointRefsForAgents } = await import("./checkpoint-manager-CAFos8e1.js");
620
589
  const agentIds = [
621
590
  `agent-${issueLower}`,
622
591
  `planning-${issueLower}`,
@@ -630,4 +599,4 @@ function pruneCheckpointRefs(projectPath, issueLower) {
630
599
  //#endregion
631
600
  export { teardownWorkspace as t };
632
601
 
633
- //# sourceMappingURL=teardown-workspace-CWz1pbEK.js.map
602
+ //# sourceMappingURL=teardown-workspace-DWmFJzTw.js.map
@@ -1,8 +1,8 @@
1
- import { Gn as resolveProjectFromIssueSync, Nn as init_projects } from "./config-yaml-ClpGgrf6.js";
2
- import { c as init_review_status, y as setReviewStatusSync } from "./review-status-gPndPUBc.js";
3
- import { W as spawnRun, t as init_agents } from "./agents-B5LfpLPv.js";
4
- import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-BGiuiXAK.js";
5
- import { r as init_test_verdict, t as clearTestVerdictArtifact } from "./test-verdict-Bm4uv_AA.js";
1
+ import { Kn as resolveProjectFromIssueSync, Pn as init_projects } from "./config-yaml-Dcz-8uit.js";
2
+ import { c as init_review_status, y as setReviewStatusSync } from "./review-status-4qqLkRMu.js";
3
+ import { W as spawnRun, t as init_agents } from "./agents-CsOzAmRg.js";
4
+ import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-Cqfxx6bE.js";
5
+ import { r as init_test_verdict, t as clearTestVerdictArtifact } from "./test-verdict-D1AmZ2c0.js";
6
6
  import { Data, Effect } from "effect";
7
7
  //#region ../../lib/cloister/test-agent-queue.ts
8
8
  /**
@@ -163,4 +163,4 @@ const dispatchTestAgentAndNotify = (issueId, workspace, branch, notifyAgent) =>
163
163
  //#endregion
164
164
  export { buildTestRolePrompt, dispatchTestAgentAndNotify };
165
165
 
166
- //# sourceMappingURL=test-agent-queue-TiVXe3ZT.js.map
166
+ //# sourceMappingURL=test-agent-queue-DjsQoV5X.js.map
@@ -1,3 +1,3 @@
1
- import { i as readTestVerdictArtifact, r as init_test_verdict } from "./test-verdict-Bm4uv_AA.js";
1
+ import { i as readTestVerdictArtifact, r as init_test_verdict } from "./test-verdict-D1AmZ2c0.js";
2
2
  init_test_verdict();
3
3
  export { readTestVerdictArtifact };
@@ -102,4 +102,4 @@ var init_test_verdict = __esmMin((() => {}));
102
102
  //#endregion
103
103
  export { testVerdictArtifactPath as a, readTestVerdictArtifact as i, decideUnsignaledTestAction as n, init_test_verdict as r, clearTestVerdictArtifact as t };
104
104
 
105
- //# sourceMappingURL=test-verdict-Bm4uv_AA.js.map
105
+ //# sourceMappingURL=test-verdict-D1AmZ2c0.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { vr as init_errors } from "./config-yaml-ClpGgrf6.js";
2
+ import { br as init_errors } from "./config-yaml-Dcz-8uit.js";
3
3
  import "effect";
4
4
  import { existsSync, readFileSync, statSync } from "fs";
5
5
  import { join } from "path";
@@ -221,4 +221,4 @@ var init_tldr_daemon = __esmMin((() => {
221
221
  //#endregion
222
222
  export { getTldrDaemonServiceSync as n, init_tldr_daemon as r, TldrDaemonService as t };
223
223
 
224
- //# sourceMappingURL=tldr-daemon-C_1frSDj.js.map
224
+ //# sourceMappingURL=tldr-daemon-C-MGomL8.js.map
@@ -1,3 +1,3 @@
1
- import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-C_1frSDj.js";
1
+ import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-C-MGomL8.js";
2
2
  init_tldr_daemon();
3
3
  export { getTldrDaemonServiceSync };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as getOverdeckHome, Vr as init_paths, f as loadConfigSync, hr as TmuxError, t as init_config_yaml, vr as init_errors } from "./config-yaml-ClpGgrf6.js";
2
+ import { Kr as getOverdeckHome, _r as TmuxError, br as init_errors, f as loadConfigSync, qr as init_paths, t as init_config_yaml } from "./config-yaml-Dcz-8uit.js";
3
3
  import { Effect } from "effect";
4
4
  import { appendFileSync, chmodSync, existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -1098,4 +1098,4 @@ var init_tmux = __esmMin((() => {
1098
1098
  //#endregion
1099
1099
  export { listSessionsSync as A, colorFgBgForTheme as B, isPaneDead as C, listPaneValuesSync as D, listPaneValues as E, sendKeysAsync as F, buildChildEnvSync as G, init_ui_theme as H, sendRawKeystroke as I, buildChildEnvWithoutTmuxSync as K, sessionExists as L, resizeWindow as M, sendEscapeKeyAsync as N, listSessionNames as O, sendKeys as P, sessionExistsSync as R, isHarnessProcessAlive as S, killSessionSync as T, setUiTheme as U, getUiThemeSync as V, BLANKED_PROVIDER_ENV as W, getTmuxBaseArgs as _, capturePaneSync as a, getWindowDimensions as b, ensureManagedTmuxContextOnce as c, exactPaneTarget as d, exactSession as f, getManagedTmuxSocketName as g, getManagedTmuxConfigPath as h, capturePane as i, paneTreeHasHarnessProcess as j, listSessions as k, ensureOverdeckTmuxServerAsync as l, getAgentSessions as m, buildTmuxArgs as n, createSession as o, findManagedServerPidSync as p, init_child_env as q, buildTmuxCommandString as r, createSessionSync as s, MessageDeliveryFailed as t, ensureOverdeckTmuxServerSync as u, getTmuxCommand as v, killSession as w, init_tmux as x, getTmuxConfigMode as y, setOption as z };
1100
1100
 
1101
- //# sourceMappingURL=tmux-D57f-XNv.js.map
1101
+ //# sourceMappingURL=tmux-C_d-lSIq.js.map
@@ -1,3 +1,3 @@
1
- import { C as isPaneDead, L as sessionExists, O as listSessionNames, w as killSession, x as init_tmux } from "./tmux-D57f-XNv.js";
1
+ import { C as isPaneDead, L as sessionExists, O as listSessionNames, w as killSession, x as init_tmux } from "./tmux-C_d-lSIq.js";
2
2
  init_tmux();
3
3
  export { isPaneDead, killSession, listSessionNames, sessionExists };
@@ -54,4 +54,4 @@ var require_token = /* @__PURE__ */ __commonJSMin(((exports, module) => {
54
54
  export default require_token();
55
55
  export {};
56
56
 
57
- //# sourceMappingURL=token-_qujO3JZ.js.map
57
+ //# sourceMappingURL=token-DfBf1bsd.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Nn as init_projects, f as loadConfigSync, t as init_config_yaml, wn as getIssuePrefix, zn as loadProjectsConfigSync } from "./config-yaml-ClpGgrf6.js";
2
+ import { Bn as loadProjectsConfigSync, Pn as init_projects, Tn as getIssuePrefix, f as loadConfigSync, t as init_config_yaml } from "./config-yaml-Dcz-8uit.js";
3
3
  import { existsSync } from "fs";
4
4
  import { join } from "path";
5
5
  import { homedir } from "os";
@@ -142,4 +142,4 @@ var init_tracker_config = __esmMin((() => {
142
142
  //#endregion
143
143
  export { init_tracker_config as a, initTrackerConfigCache as i, getLinearApiKey as n, validateRallyConfig as o, getRallyConfig as r, getGitHubConfig as t };
144
144
 
145
- //# sourceMappingURL=tracker-config-BmdJU_w6.js.map
145
+ //# sourceMappingURL=tracker-config-CNODpd11.js.map
@@ -1,3 +1,3 @@
1
- import { a as init_tracker_config, i as initTrackerConfigCache, n as getLinearApiKey, o as validateRallyConfig, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-BmdJU_w6.js";
1
+ import { a as init_tracker_config, i as initTrackerConfigCache, n as getLinearApiKey, o as validateRallyConfig, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-CNODpd11.js";
2
2
  init_tracker_config();
3
3
  export { getGitHubConfig, getLinearApiKey, getRallyConfig, initTrackerConfigCache, validateRallyConfig };
@@ -1,3 +1,3 @@
1
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CWFt6jjV.js";
1
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-Ch2_5GGf.js";
2
2
  init_tracker_utils();
3
3
  export { resolveGitHubIssueSync };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $n as extractPrefixSync, Nn as init_projects, Qn as extractNumberSync, er as init_issue_id, nr as parseIssueIdSync, vr as init_errors, wn as getIssuePrefix, zn as loadProjectsConfigSync } from "./config-yaml-ClpGgrf6.js";
2
+ import { $n as extractNumberSync, Bn as loadProjectsConfigSync, Pn as init_projects, Tn as getIssuePrefix, br as init_errors, er as extractPrefixSync, rr as parseIssueIdSync, tr as init_issue_id } from "./config-yaml-Dcz-8uit.js";
3
3
  import "effect";
4
4
  import { existsSync, readFileSync } from "fs";
5
5
  import { join } from "path";
@@ -120,4 +120,4 @@ var init_tracker_utils = __esmMin((() => {
120
120
  //#endregion
121
121
  export { resolveTrackerTypeSync as a, resolveGitHubIssueSync as i, init_tracker_utils as n, parseGitHubReposSync as r, extractIssuePrefix as t };
122
122
 
123
- //# sourceMappingURL=tracker-utils-CWFt6jjV.js.map
123
+ //# sourceMappingURL=tracker-utils-Ch2_5GGf.js.map
@@ -69,4 +69,4 @@ var init_traefik_connect = __esmMin((() => {
69
69
  //#endregion
70
70
  export { reconcileTraefikNetworks as n, init_traefik_connect as t };
71
71
 
72
- //# sourceMappingURL=traefik-connect-5EP1WS_Z.js.map
72
+ //# sourceMappingURL=traefik-connect-BF4x_LUQ.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_tunnel, r as removeTunnelIngress } from "./tunnel-UBf2vyAL.js";
1
+ import { n as init_tunnel, r as removeTunnelIngress } from "./tunnel-r_5nHAI6.js";
2
2
  init_tunnel();
3
3
  export { removeTunnelIngress };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { gr as TrackerError, vr as init_errors } from "./config-yaml-ClpGgrf6.js";
3
- import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-DA8U97k9.js";
2
+ import { br as init_errors, vr as TrackerError } from "./config-yaml-Dcz-8uit.js";
3
+ import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-CBgMGhWs.js";
4
4
  import { Effect } from "effect";
5
5
  import { readFileSync } from "fs";
6
6
  import { resolve } from "path";
@@ -217,4 +217,4 @@ var init_tunnel = __esmMin((() => {
217
217
  //#endregion
218
218
  export { init_tunnel as n, removeTunnelIngress as r, addTunnelIngress as t };
219
219
 
220
- //# sourceMappingURL=tunnel-UBf2vyAL.js.map
220
+ //# sourceMappingURL=tunnel-r_5nHAI6.js.map
@@ -59,4 +59,4 @@ var init_types = __esmMin((() => {}));
59
59
  //#endregion
60
60
  export { stepSkipped as a, stepOk as i, init_types as n, stepFailed as r, getLinearApiKey as t };
61
61
 
62
- //# sourceMappingURL=types-B5u3NxMl.js.map
62
+ //# sourceMappingURL=types-33JEP4LZ.js.map
@@ -1,2 +1,2 @@
1
- import { a as postUatGenerationStackPayload, c as startUatTrainReconciler, i as postUatGenerationPromotePayload, l as stopUatTrainReconciler, n as getUatCandidatePayload, o as resolveUatProjectRoot, r as getUatGenerationsPayload, s as runUatTrainReconcile, t as canStartUatTrainReconciler } from "./uat-train-qNanv5hN.js";
1
+ import { a as postUatGenerationStackPayload, c as startUatTrainReconciler, i as postUatGenerationPromotePayload, l as stopUatTrainReconciler, n as getUatCandidatePayload, o as resolveUatProjectRoot, r as getUatGenerationsPayload, s as runUatTrainReconcile, t as canStartUatTrainReconciler } from "./uat-train-DjkFWXge.js";
2
2
  export { canStartUatTrainReconciler, getUatCandidatePayload, getUatGenerationsPayload, postUatGenerationPromotePayload, postUatGenerationStackPayload, resolveUatProjectRoot, runUatTrainReconcile, startUatTrainReconciler, stopUatTrainReconciler };
@@ -1,17 +1,17 @@
1
- import { Nn as init_projects, Tr as CONFIG_FILE, Vr as init_paths, X as resolveModel, bn as findProjectByPathSync, d as loadConfigNoMigration, t as init_config_yaml } from "./config-yaml-ClpGgrf6.js";
1
+ import { Dr as CONFIG_FILE, Pn as init_projects, Z as resolveModel, d as loadConfigNoMigration, qr as init_paths, t as init_config_yaml, xn as findProjectByPathSync } from "./config-yaml-Dcz-8uit.js";
2
2
  import { t as require_toml } from "./toml-CeLDATih.js";
3
- import { C as isPaneDead, L as sessionExists, w as killSession, x as init_tmux } from "./tmux-D57f-XNv.js";
4
- import { j as messageAgent, t as init_agents } from "./agents-B5LfpLPv.js";
5
- import { S as setUatGenerationStackStartedAtSync, a as getUatGenerationSync, h as listUatGenerationsWithStacksSync, l as isMergeTrainEnabled, m as listUatGenerationsSync, o as init_merge_sync, p as listUatGenerationNamesSync, s as insertUatGenerationSync, w as updateUatGenerationSync } from "./merge-sync-DHWbGtjR.js";
6
- import { A as findVBriefByIssue, N as readVBriefDocument, j as init_vbrief_index } from "./io-A7ZuOBkz.js";
7
- import { S as getConversationByName, _t as getDiscoveredStats, at as aggregateDiscoveredSessionCost, ct as countDiscoveredSessions, ft as findDiscoveredSessions, k as init_conversations, mt as getDiscoveredSessionById, ot as aggregateDiscoveredSessionCostBy, yt as init_discovered_sessions } from "./conversations-DfJKBDwB.js";
8
- import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, n as FLYWHEEL_GLOBAL_PAUSE_KEY, o as getSetting, s as init_control_settings, t as FLYWHEEL_ACTIVE_RUN_ID_KEY, w as setSetting } from "./control-settings-D1B3u6HP.js";
9
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-SkRJm4a7.js";
10
- import { a as enrichSessions, c as searchSessions, i as CostThresholdError, n as getSessionsFeedFacets, o as embedSessions, r as listSessionsFeed, t as scan } from "./scanner-BIGumel_.js";
11
- import { S as writeLatestFlywheelStatus, c as spawnFlywheelAgent, f as getFlywheelRunDetail, g as nextFlywheelRunId, h as listFlywheelRuns, i as loadResumeSessionId, r as isFlywheelDevcontainerRuntime, s as saveResumeSessionId, t as FLYWHEEL_ORCHESTRATOR_AGENT_ID, u as abortFlywheelRun, v as readFlywheelLaunchMetadata, x as writeFlywheelLaunchMetadata, y as resolveLiveFlywheelRunId } from "./flywheel-Dfpx4bIV.js";
12
- import { t as recordDeaconNudge } from "./deacon-nudge-log-B-naf89q.js";
13
- import { n as init_acceptance_criteria, t as extractACFromDocument } from "./acceptance-criteria-1LHgD9vg.js";
14
- import { n as ensureDevcontainerSync, r as init_ensure_devcontainer } from "./ensure-devcontainer-DCAg3ksz.js";
3
+ import { C as isPaneDead, L as sessionExists, w as killSession, x as init_tmux } from "./tmux-C_d-lSIq.js";
4
+ import { j as messageAgent, t as init_agents } from "./agents-CsOzAmRg.js";
5
+ import { S as setUatGenerationStackStartedAtSync, a as getUatGenerationSync, h as listUatGenerationsWithStacksSync, l as isMergeTrainEnabled, m as listUatGenerationsSync, o as init_merge_sync, p as listUatGenerationNamesSync, s as insertUatGenerationSync, w as updateUatGenerationSync } from "./merge-sync-B43Dybea.js";
6
+ import { A as findVBriefByIssue, N as readVBriefDocument, j as init_vbrief_index } from "./io-BiQ2Cs3k.js";
7
+ import { S as getConversationByName, _t as getDiscoveredStats, at as aggregateDiscoveredSessionCost, ct as countDiscoveredSessions, ft as findDiscoveredSessions, k as init_conversations, mt as getDiscoveredSessionById, ot as aggregateDiscoveredSessionCostBy, yt as init_discovered_sessions } from "./conversations-DG2M8WnT.js";
8
+ import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, n as FLYWHEEL_GLOBAL_PAUSE_KEY, o as getSetting, s as init_control_settings, t as FLYWHEEL_ACTIVE_RUN_ID_KEY, w as setSetting } from "./control-settings-DwkAeooY.js";
9
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-iMjyNUJ2.js";
10
+ import { a as enrichSessions, c as searchSessions, i as CostThresholdError, n as getSessionsFeedFacets, o as embedSessions, r as listSessionsFeed, t as scan } from "./scanner-DE1MqAaF.js";
11
+ import { S as writeLatestFlywheelStatus, c as spawnFlywheelAgent, f as getFlywheelRunDetail, g as nextFlywheelRunId, h as listFlywheelRuns, i as loadResumeSessionId, r as isFlywheelDevcontainerRuntime, s as saveResumeSessionId, t as FLYWHEEL_ORCHESTRATOR_AGENT_ID, u as abortFlywheelRun, v as readFlywheelLaunchMetadata, x as writeFlywheelLaunchMetadata, y as resolveLiveFlywheelRunId } from "./flywheel-Bv3wv2S6.js";
12
+ import { t as recordDeaconNudge } from "./deacon-nudge-log-D1wEK6zF.js";
13
+ import { n as init_acceptance_criteria, t as extractACFromDocument } from "./acceptance-criteria-DHZk2ceV.js";
14
+ import { n as ensureDevcontainerSync, r as init_ensure_devcontainer } from "./ensure-devcontainer-DA4-jF6R.js";
15
15
  import { isAbsolute, relative, resolve, sep } from "node:path";
16
16
  import { Effect } from "effect";
17
17
  import { existsSync } from "fs";
@@ -206,15 +206,15 @@ async function runInline(operation, payload, onProgress) {
206
206
  return null;
207
207
  }
208
208
  case "getArtifactBySlug": {
209
- const { getArtifactBySlugJob } = await import("./artifact-index-jobs-DGr6bxev.js");
209
+ const { getArtifactBySlugJob } = await import("./artifact-index-jobs-CmsvQ1ey.js");
210
210
  return getArtifactBySlugJob(payload);
211
211
  }
212
212
  case "listArtifactsForWorkspaceOrIssue": {
213
- const { listArtifactsForWorkspaceOrIssueJob } = await import("./artifact-index-jobs-DGr6bxev.js");
213
+ const { listArtifactsForWorkspaceOrIssueJob } = await import("./artifact-index-jobs-CmsvQ1ey.js");
214
214
  return listArtifactsForWorkspaceOrIssueJob(payload);
215
215
  }
216
216
  case "unshareArtifactBySlug": {
217
- const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-DGr6bxev.js");
217
+ const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-CmsvQ1ey.js");
218
218
  return unshareArtifactBySlugJob(payload);
219
219
  }
220
220
  }
@@ -455,12 +455,12 @@ async function pauseFlywheelRunForDashboard() {
455
455
  if (before.activeRunId) try {
456
456
  const { readFile } = await import("node:fs/promises");
457
457
  const { join } = await import("node:path");
458
- const { getAgentDir } = await import("./agents-C4kZ8a2r.js");
458
+ const { getAgentDir } = await import("./agents-DCvyTXNU.js");
459
459
  const sessionId = (await readFile(join(getAgentDir(FLYWHEEL_ORCHESTRATOR_AGENT_ID), "session.id"), "utf-8")).trim();
460
460
  if (sessionId) await saveResumeSessionId(before.activeRunId, sessionId);
461
461
  } catch {}
462
462
  await setPaused(true);
463
- await import("./agents-C4kZ8a2r.js").then(({ stopAgent }) => Effect.runPromise(stopAgent(FLYWHEEL_ORCHESTRATOR_AGENT_ID)));
463
+ await import("./agents-DCvyTXNU.js").then(({ stopAgent }) => Effect.runPromise(stopAgent(FLYWHEEL_ORCHESTRATOR_AGENT_ID)));
464
464
  return {
465
465
  before,
466
466
  after: await readGateSnapshot(),
@@ -470,7 +470,7 @@ async function pauseFlywheelRunForDashboard() {
470
470
  async function abortFlywheelRunForDashboard() {
471
471
  const candidate = await getActiveRunId();
472
472
  if (!candidate) return { aborted: await resolveLiveFlywheelRunId() ?? null };
473
- const { stopAgent } = await import("./agents-C4kZ8a2r.js");
473
+ const { stopAgent } = await import("./agents-DCvyTXNU.js");
474
474
  await Effect.runPromise(stopAgent(FLYWHEEL_ORCHESTRATOR_AGENT_ID));
475
475
  await abortFlywheelRun(candidate);
476
476
  return { aborted: candidate };
@@ -1901,7 +1901,7 @@ function canStartUatTrainReconciler() {
1901
1901
  async function getReadySet() {
1902
1902
  const status = await readCurrentFlywheelStatusForDashboard();
1903
1903
  if (!status) return null;
1904
- const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-CttTazRY.js");
1904
+ const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-DXjeBnJ1.js");
1905
1905
  const fromVerbs = (await Effect.runPromise(computeMergeQueue(status.activePipeline, projectRoot(), {
1906
1906
  getPrUrl: resolveMergeQueuePrUrl,
1907
1907
  onIneligible: (issueId, reason) => console.log(`[uat-train] ${issueId} has a merge verb but is not merge-eligible (${reason}) — excluded from the ready set`)
@@ -1927,8 +1927,8 @@ async function getReadySet() {
1927
1927
  */
1928
1928
  async function sweepEligibleFeatures(alreadyIncluded) {
1929
1929
  try {
1930
- const { loadReviewStatuses, mergeGateEligibility } = await import("./review-status-JhQ3qlDS.js");
1931
- const { resolveProjectFromIssueSync } = await import("./projects-Bqfwuqet.js");
1930
+ const { loadReviewStatuses, mergeGateEligibility } = await import("./review-status-Br6lAFGO.js");
1931
+ const { resolveProjectFromIssueSync } = await import("./projects-KJ94e50I.js");
1932
1932
  const { execFile } = await import("node:child_process");
1933
1933
  const { promisify } = await import("node:util");
1934
1934
  const execFileAsync = promisify(execFile);
@@ -2162,7 +2162,7 @@ async function postUatGenerationStackPayload(name) {
2162
2162
  }
2163
2163
  async function postUatGenerationPromotePayload(name, firePostMerge) {
2164
2164
  const root = projectRoot();
2165
- const { reviewRecordEligibility } = await import("./flywheel-merge-order-CttTazRY.js");
2165
+ const { reviewRecordEligibility } = await import("./flywheel-merge-order-DXjeBnJ1.js");
2166
2166
  const result = await promoteUatGeneration(name, root, {
2167
2167
  git: buildUatPromoteGitDeps(root),
2168
2168
  store: {
@@ -2178,6 +2178,6 @@ async function postUatGenerationPromotePayload(name, firePostMerge) {
2178
2178
  return result;
2179
2179
  }
2180
2180
  //#endregion
2181
- export { getDashboardIdentity as _, postUatGenerationStackPayload as a, startUatTrainReconciler as c, openFlywheelRunReportForDashboard as d, pauseFlywheelRunForDashboard as f, runDashboardDbJob as g, startFlywheelRunForDashboard as h, postUatGenerationPromotePayload as i, stopUatTrainReconciler as l, resumeFlywheelRunForDashboard as m, getUatCandidatePayload as n, resolveUatProjectRoot as o, readCurrentFlywheelStatusForDashboard as p, getUatGenerationsPayload as r, runUatTrainReconcile as s, canStartUatTrainReconciler as t, abortFlywheelRunForDashboard as u, readHostDashboardApiPort as v, shouldRefuseHostDashboardPort as y };
2181
+ export { getDashboardIdentity as _, postUatGenerationStackPayload as a, shouldRefuseHostDashboardPort as b, startUatTrainReconciler as c, openFlywheelRunReportForDashboard as d, pauseFlywheelRunForDashboard as f, runDashboardDbJob as g, startFlywheelRunForDashboard as h, postUatGenerationPromotePayload as i, stopUatTrainReconciler as l, resumeFlywheelRunForDashboard as m, getUatCandidatePayload as n, resolveUatProjectRoot as o, readCurrentFlywheelStatusForDashboard as p, getUatGenerationsPayload as r, runUatTrainReconcile as s, canStartUatTrainReconciler as t, abortFlywheelRunForDashboard as u, isWorkspaceRepoRoot as v, readHostDashboardApiPort as y };
2182
2182
 
2183
- //# sourceMappingURL=uat-train-qNanv5hN.js.map
2183
+ //# sourceMappingURL=uat-train-DjkFWXge.js.map
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { vr as init_errors } from "./config-yaml-ClpGgrf6.js";
3
- import { f as init_config, m as loadConfigSync } from "./config-8sjaU6jZ.js";
4
- import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-DA8U97k9.js";
2
+ import { br as init_errors } from "./config-yaml-Dcz-8uit.js";
3
+ import { f as init_config, m as loadConfigSync } from "./config-ZNnMpIlh.js";
4
+ import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-CBgMGhWs.js";
5
5
  import { Effect } from "effect";
6
6
  import "fs";
7
7
  import { join } from "path";
@@ -215,4 +215,4 @@ var init_validation = __esmMin((() => {
215
215
  //#endregion
216
216
  export { init_validation as n, runQualityGates as r, DEFAULT_GATES as t };
217
217
 
218
- //# sourceMappingURL=validation-C4wegCvH.js.map
218
+ //# sourceMappingURL=validation-DUTiJnyz.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_validation, r as runQualityGates } from "./validation-C4wegCvH.js";
1
+ import { n as init_validation, r as runQualityGates } from "./validation-DUTiJnyz.js";
2
2
  init_validation();
3
3
  export { runQualityGates };
@@ -1,2 +1,2 @@
1
- import { n as runVerificationForIssue } from "./verification-runner-CntudBes.js";
1
+ import { n as runVerificationForIssue } from "./verification-runner-inLgeQux.js";
2
2
  export { runVerificationForIssue };