@overdeck/desktop 0.45.22 → 0.45.23

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 (375) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-BH7ac_1G.js → acceptance-criteria-DOA0KgXx.js} +5 -5
  3. package/server/{advancing-selfheal-cSvXNZLZ.js → advancing-selfheal-BBu6DSNm.js} +6 -6
  4. package/server/{agent-gc-Dj2gncak.js → agent-gc-BV1q_2EV.js} +4 -4
  5. package/server/agent-state-Bg0lhqwj.js +3 -0
  6. package/server/{agent-state-service-CsQ07Pxe.js → agent-state-service-CnzFKSAQ.js} +1 -1
  7. package/server/{agent-state-service-DistflNn.js → agent-state-service-HoK8U4jW.js} +5 -5
  8. package/server/{agents-DXdHmRTC.js → agents-B4Bjbkfv.js} +4 -4
  9. package/server/agents-FlIgQ3ql.js +3 -0
  10. package/server/{archive-planning-BvDuWNMo.js → archive-planning-DYrYojxl.js} +30 -6
  11. package/server/{archive-planning-Cp_DC1j-.js → archive-planning-zkJb3BeM.js} +1 -1
  12. package/server/{artifact-index-jobs-CDBFL4OU.js → artifact-index-jobs-C-xy7Z5v.js} +2 -2
  13. package/server/{backlog-auto-trigger-DmA1IbYf.js → backlog-auto-trigger-GtG71X8H.js} +3 -3
  14. package/server/{behavior-CGj16clS.js → behavior-B_-4EKF3.js} +2 -2
  15. package/server/{briefing-freshness-C12WgkaB.js → briefing-freshness-DWdW7vUm.js} +2 -2
  16. package/server/{build-info-NU3KbXYw.js → build-info-BT096lEl.js} +3 -3
  17. package/server/{build-info-BRpqQvNd.js → build-info-DgTqZkL5.js} +1 -1
  18. package/server/{checkpoint-manager-rOgT98WY.js → checkpoint-manager-B7Bt29J0.js} +1 -1
  19. package/server/{checkpoint-manager-CTPjAmtH.js → checkpoint-manager-DDqcGyu8.js} +2 -2
  20. package/server/checkpoint-worker.js +1 -1
  21. package/server/{checkpoints-BJum14fs.js → checkpoints-C-AXLfYT.js} +2 -2
  22. package/server/{checkpoints-B5jFNi2G.js → checkpoints-CpgCjAlN.js} +1 -1
  23. package/server/{claude-hooks-provision-BhwWK-TQ.js → claude-hooks-provision-C8wdRnN1.js} +1 -1
  24. package/server/{claude-hooks-provision-D7p5WcKZ.js → claude-hooks-provision-but-_qGY.js} +2 -2
  25. package/server/{claude-permissions-nSFKH78M.js → claude-permissions-H_5wHQZQ.js} +2 -2
  26. package/server/{claude-settings-overlay-DHBwjS1X.js → claude-settings-overlay-BTENVmYf.js} +1 -1
  27. package/server/{claude-settings-overlay-BI_UIke0.js → claude-settings-overlay-CbSz0Dvb.js} +2 -2
  28. package/server/cli-BsVIHwzC.js +3 -0
  29. package/server/{cli-CbKNkFE5.js → cli-vBeXbPrq.js} +9 -9
  30. package/server/{cliproxy-Brf_5MuG.js → cliproxy-Bgb2XCqi.js} +2 -2
  31. package/server/{cliproxy-bONZDBbC.js → cliproxy-DW0V86F8.js} +1 -1
  32. package/server/{close-issue-CxReRxIc.js → close-issue-Dn_4c4G8.js} +5 -5
  33. package/server/{closed-issue-reaper-DXP2Xyv3.js → closed-issue-reaper-CWpY2uBw.js} +1 -1
  34. package/server/{closed-issue-reaper-CQ3kqha7.js → closed-issue-reaper-hANY_ehE.js} +9 -9
  35. package/server/codex-Dg7Is5yb.js +3 -0
  36. package/server/{codex-CbmztVcc.js → codex-TmSi-yTv.js} +27 -8
  37. package/server/{codex-parser-jl8AeAmB.js → codex-parser-C4gSH-IR.js} +2 -2
  38. package/server/{config-q4Gvd8dq.js → config-CCvjQf27.js} +2 -2
  39. package/server/{config-BJKocXKd.js → config-DUIhMN_T.js} +1 -1
  40. package/server/{config-DeTsoZdR.js → config-DjLOdbgT.js} +2 -2
  41. package/server/{config-yaml-ig8Nwtiw.js → config-yaml-DvyMuOle.js} +55 -186
  42. package/server/{conflict-gate-CHU9K1vU.js → conflict-gate-BSJkNTdp.js} +1 -1
  43. package/server/{conflict-gate-CFqPVxEg.js → conflict-gate-CmrYpa47.js} +3 -3
  44. package/server/{context-layers-DlQKkHH2.js → context-layers-B3Nt58jl.js} +2 -2
  45. package/server/{context-layers-15gDOk20.js → context-layers-ZYFcWiyc.js} +3 -3
  46. package/server/{control-settings-D_odMIaC.js → control-settings-aP1ANIlI.js} +4 -4
  47. package/server/{conversation-compaction-B6YSRLda.js → conversation-compaction-CNbTLB86.js} +8 -8
  48. package/server/{conversation-compaction-CN4-5YYt.js → conversation-compaction-DiG5zWQq.js} +1 -1
  49. package/server/{conversation-service-C3avRVEr.js → conversation-service-Du-MTNpJ.js} +6 -6
  50. package/server/{conversation-service-Dq33SYEj.js → conversation-service-Up7FEzIC.js} +1 -1
  51. package/server/{conversations-H9if0bCQ.js → conversations-6mPANqvL.js} +1 -1
  52. package/server/{conversations-bYpM9-kZ.js → conversations-DbOs1e9Q.js} +4 -4
  53. package/server/{cost-wH46-WsJ.js → cost-CW4WSe72.js} +3 -3
  54. package/server/{cost-Codk1pc2.js → cost-Ca0YTWDw.js} +18 -2
  55. package/server/{cost-sync-D_cre6WM.js → cost-sync-C0VdGme1.js} +3 -3
  56. package/server/{dag-CJpgf9A3.js → dag-CdOjJVDT.js} +9 -9
  57. package/server/{dangerous-git-ops-D6AF-Hg_.js → dangerous-git-ops-CT-IypG3.js} +1 -1
  58. package/server/dashboard-db-worker.js +7 -7
  59. package/server/{deacon-B8HbQdqU.js → deacon-DYSEJb48.js} +3 -3
  60. package/server/{deacon-nudge-log-D6K9K-rE.js → deacon-nudge-log-Bjg8U4Y9.js} +3 -3
  61. package/server/{deacon-CkT_kznS.js → deacon-pRnyD5w9.js} +266 -577
  62. package/server/deacon-swarm-9jRLS5Ke.js +2 -0
  63. package/server/{deacon-swarm-BryRr6AO.js → deacon-swarm-DftYRDo8.js} +17 -17
  64. package/server/deacon.js +8 -8
  65. package/server/{deploy-patrol-1IrZxicY.js → deploy-patrol-Bjsho_ha.js} +136 -19
  66. package/server/{deploy-window-7ZYHh7Zp.js → deploy-window-CM6W1-c6.js} +1 -1
  67. package/server/{deploy-window-wDf4UgHt.js → deploy-window-DeP_OIRk.js} +77 -10
  68. package/server/{dev-supervisor-C7p9kEpc.js → dev-supervisor-BpMoHlkR.js} +2 -2
  69. package/server/{devcontainer-renderer-CNmQy0pL.js → devcontainer-renderer-CtUgrVKW.js} +3 -3
  70. package/server/dist-Bd3vn0Hw.js +3 -0
  71. package/server/{dist-D-Ed5yVw.js → dist-DyRx4cI7.js} +1 -1
  72. package/server/{docker-BCZ89M9X.js → docker-BK7HIcBj.js} +2 -2
  73. package/server/{dod-DbJLYcHv.js → dod-BrSfUHm0.js} +1 -1
  74. package/server/{ensure-devcontainer-Cs6W9Yzj.js → ensure-devcontainer-DRqaAkBR.js} +1 -1
  75. package/server/{ensure-devcontainer-V5JWaAva.js → ensure-devcontainer-DseivYEy.js} +4 -4
  76. package/server/{esm-shims-dTeNdq7X.js → esm-shims-CbI3BVkl.js} +1 -1
  77. package/server/{event-store-CpBGsO6_.js → event-store-Cr5PQwFC.js} +1 -1
  78. package/server/{event-store-TnWdydfB.js → event-store-tdiY5eDZ.js} +3 -3
  79. package/server/{events-DSUdR-04.js → events-CC1dgUpx.js} +3 -3
  80. package/server/{events-Dsuv6qyB.js → events-CvvGK6LT.js} +1 -1
  81. package/server/{factory-BMrK4TrE.js → factory-CynerjXO.js} +50 -13
  82. package/server/{feature-registry-population-B-CI9hgE.js → feature-registry-population-B0pmAz0a.js} +4 -4
  83. package/server/{feature-registry-storage-B972ph_A.js → feature-registry-storage-_wUBRD3J.js} +2 -2
  84. package/server/{features-Bc-Bmiye.js → features-Dhxz-wLc.js} +2 -2
  85. package/server/{feedback-target-DZ-iAnAa.js → feedback-target-CPS15Vte.js} +7 -7
  86. package/server/{feedback-target-DS6NUuSs.js → feedback-target-iygZwmMc.js} +1 -1
  87. package/server/{feedback-writer-BXP6g75N.js → feedback-writer-C9b6ccN1.js} +6 -5
  88. package/server/{feedback-writer-Bx5z11mF.js → feedback-writer-qmiMbqTZ.js} +1 -1
  89. package/server/{flywheel-Ctr5uuvo.js → flywheel-DMCUzDWg.js} +1 -1
  90. package/server/{flywheel-COR0mbRI.js → flywheel-DSSpWmqF.js} +13 -13
  91. package/server/{flywheel-6WHU4O7A.js → flywheel-DcBkQvgE.js} +14 -14
  92. package/server/{flywheel-merge-order-CNKAY489.js → flywheel-merge-order-C-6zRLvM.js} +1 -1
  93. package/server/{flywheel-merge-order-CTgHeg-W.js → flywheel-merge-order-DxbQKE1d.js} +8 -8
  94. package/server/forge-B-ZWyTRm.js +2 -0
  95. package/server/{forge-B1S_KZv4.js → forge-Ch9gCFod.js} +2 -2
  96. package/server/{from-DpwQ-sc3.js → from-CJ_aH5jD.js} +1 -1
  97. package/server/{fts-db-DmAcuCkV.js → fts-db-CKgg0VKg.js} +2 -2
  98. package/server/{fts-operations-7d_RkmWp.js → fts-operations-BrL_VTRr.js} +2 -2
  99. package/server/{git-utils-Cc3FHDKd.js → git-utils-BVa07a4a.js} +2 -2
  100. package/server/{git-utils-CsKGnzFA.js → git-utils-Dry_Ka_D.js} +1 -1
  101. package/server/{github-app-CDPtGF7J.js → github-app-CMBdIFBQ.js} +11 -3
  102. package/server/{github-app-CU14oYzP.js → github-app-CPfoFAdV.js} +1 -1
  103. package/server/{github-client-XjTJbBm7.js → github-client--XVlDpwM.js} +2 -2
  104. package/server/{github-client-CwBZZ3t7.js → github-client-B4QsdE-X.js} +1 -1
  105. package/server/{github-pr-lookup-CFGeVhqv.js → github-pr-lookup-BRbDW-qk.js} +2 -2
  106. package/server/{harness-binary-B2CTcD84.js → harness-binary-CVio2m-u.js} +1 -1
  107. package/server/{harness-resolve-D5FVQTmy.js → harness-resolve-qHJBhy3Z.js} +4 -4
  108. package/server/{health-events-DREeevle.js → health-events-C9B8y1Hm.js} +2 -2
  109. package/server/{health-events-C1whmd58.js → health-events-CpfvuVmm.js} +1 -1
  110. package/server/{hooks-yxRsjk-z.js → hooks-DUXw8A0-.js} +2 -2
  111. package/server/{hooks-B-HItBiS.js → hooks-ltecuFqZ.js} +1 -1
  112. package/server/{hume-Dz_OymXE.js → hume-BEq0bUDg.js} +2 -2
  113. package/server/hume-B_DbflNM.js +3 -0
  114. package/server/{idle-stack-reaper-DrCv0OAG.js → idle-stack-reaper-D7w9t3fE.js} +1 -1
  115. package/server/{idle-stack-reaper-Yf34xXxY.js → idle-stack-reaper-w1ISSlhs.js} +2 -2
  116. package/server/{in-flight-guard-BoWm66Kh.js → in-flight-guard-aQ1IxeI3.js} +2 -2
  117. package/server/{infra-D4iNWMA5.js → infra-CzaSOgul.js} +4 -4
  118. package/server/{injection-D7T75Pye.js → injection-DZ0PfYa4.js} +7 -7
  119. package/server/{injection-BVNa4MQW.js → injection-oNZeoDhL.js} +1 -1
  120. package/server/{inspect-agent-BXCgNeZ4.js → inspect-agent-DJKLWcVT.js} +12 -12
  121. package/server/inspect-agent-ch-F-5Ci.js +2 -0
  122. package/server/{internal-token-CXsfxslp.js → internal-token-Bb4XeV2x.js} +2 -2
  123. package/server/{internal-token-C9DdEOKY.js → internal-token-DXdfprGr.js} +1 -1
  124. package/server/{io-DQR9PMgS.js → io-B3_AHDfr.js} +160 -184
  125. package/server/{issue-closed-DtmJM0D0.js → issue-closed-zhdvQicO.js} +7 -7
  126. package/server/{issue-lifecycle-CeyW_HoD.js → issue-lifecycle-CreaCkjW.js} +22 -22
  127. package/server/{issue-lifecycle-8PSS9Anq.js → issue-lifecycle-Dy4vd0Oa.js} +1 -1
  128. package/server/{issue-service-singleton-D_RVYBuL.js → issue-service-singleton-B5ushCvE.js} +8 -8
  129. package/server/{issue-service-singleton-DBZabEl7.js → issue-service-singleton-DabvBWUp.js} +1 -1
  130. package/server/{issues-pDW9VUNz.js → issues-B6ToV6x1.js} +2 -2
  131. package/server/{jsonl-parser-C3HVNR5d.js → jsonl-parser-Dhflo1SH.js} +3 -3
  132. package/server/{label-cleanup-DPwiZlWo.js → label-cleanup-BKPJm4Hv.js} +3 -3
  133. package/server/{label-reconciler-Df1ZduPH.js → label-reconciler-DdWbHEBu.js} +4 -4
  134. package/server/{launcher-generator-COgR2By1.js → launcher-generator-CHVm7bGT.js} +10 -9
  135. package/server/{layers-Cp1To4L8.js → layers-DzxSTGNA.js} +2 -2
  136. package/server/lifecycle-DfeyBDwA.js +121 -0
  137. package/server/lifecycle-io-Bsnr2K4F.js +3 -0
  138. package/server/{lifecycle-io-taIb0PoH.js → lifecycle-io-D8iNBcux.js} +37 -37
  139. package/server/{lifecycle-CtPDcZ9u.js → lifecycle-sycO16hj.js} +6 -6
  140. package/server/{linear-client-DsFkIxee.js → linear-client-D4zqMnX7.js} +2 -2
  141. package/server/{linear-client-YwZMDIwQ.js → linear-client-DqhDQO9k.js} +1 -1
  142. package/server/memory-fts-worker.js +1 -1
  143. package/server/{merge-C1t-bspg.js → merge-C_ZEhbqI.js} +3 -3
  144. package/server/{merge-BwsyNRJV.js → merge-DK23JEdS.js} +1 -1
  145. package/server/{merge-agent-B-SnXOoc.js → merge-agent-BQM3a8z5.js} +1 -1
  146. package/server/{merge-agent-DDiIjzk-.js → merge-agent-XrB80vfT.js} +28 -28
  147. package/server/{merge-batch-Byt-QnEl.js → merge-batch-Bwoyr8Je.js} +1 -1
  148. package/server/{merge-blockers-BYjeXrVN.js → merge-blockers-BsFjGrQ8.js} +2 -2
  149. package/server/merge-ops-DlB1IM0Y.js +2 -0
  150. package/server/{merge-rebase-Cm6fXaZN.js → merge-rebase-C1KIVr0s.js} +2 -2
  151. package/server/{merge-set-DiISXcC-.js → merge-set-DLz0MkGT.js} +3 -3
  152. package/server/{merge-set-6LEglm6o.js → merge-set-DnSYdBEp.js} +1 -1
  153. package/server/{merge-sync-Do8_q32h.js → merge-sync-DZ9dojJn.js} +2 -2
  154. package/server/{merge-sync-B95_4in_.js → merge-sync-SSv3E-pl.js} +1 -1
  155. package/server/{merge-train-CKana8EH.js → merge-train-DxDfBTjr.js} +3 -3
  156. package/server/{merge-train-deps-BgmqwIfA.js → merge-train-deps-CyYQUksx.js} +4 -4
  157. package/server/{merge-verification-CqnUzGEK.js → merge-verification-CSizH3HY.js} +4 -4
  158. package/server/{multipart-parser-tdOQDJ3o.js → multipart-parser-Dt8YPN5S.js} +2 -2
  159. package/server/{no-resume-mode-BWOSZjWd.js → no-resume-mode-Cx3K0hHi.js} +11 -8
  160. package/server/node_modules/.package-lock.json +1 -1
  161. package/server/{orphan-proposed-reconciler-DSvsJ5M7.js → orphan-proposed-reconciler-BTkDrl4R.js} +1 -1
  162. package/server/{orphan-proposed-reconciler-xklgvNA7.js → orphan-proposed-reconciler-neK8dHQk.js} +15 -13
  163. package/server/package-lock.json +2 -2
  164. package/server/package.json +1 -1
  165. package/server/{pan-dir-DOcf6ug3.js → pan-dir-DeVUgwA7.js} +78 -58
  166. package/server/{paths-DooHpt9p.js → paths-_zEts6wc.js} +2 -2
  167. package/server/{pickup-CaskQ7j6.js → pickup-Dd0Znxxy.js} +1 -1
  168. package/server/{pipeline-membership-1LGRjo-k.js → pipeline-membership-0HaEGDlH.js} +186 -67
  169. package/server/{pipeline-notifier-CZsrU_nj.js → pipeline-notifier-6iCJplFZ.js} +1 -1
  170. package/server/{pipeline-notifier-B6FVsYF9.js → pipeline-notifier-D0ykk59O.js} +2 -2
  171. package/server/{project-pipelines-CtNG_rvs.js → project-pipelines-2sK1apsO.js} +2 -2
  172. package/server/projects-9SkRpES9.js +3 -0
  173. package/server/{prompts-EvhMeeHG.js → prompts-Dp4Tpk39.js} +2 -2
  174. package/server/{providers-DNSQqy2V.js → providers-DKkBXhxU.js} +1 -1
  175. package/server/{providers-BDDPULlp.js → providers-DV7ec8l7.js} +7 -7
  176. package/server/public/assets/{chunk-BO2N2NFS-sym_ufXe.js → chunk-BO2N2NFS-CltymLRg.js} +4 -4
  177. package/server/public/assets/{diagram-OG6HWLK6-CQJPBNBu.js → diagram-OG6HWLK6-D2f6pjgA.js} +1 -1
  178. package/server/public/assets/{dist-Bio7THQU.js → dist-BWR4qFiV.js} +1 -1
  179. package/server/public/assets/{dist-DukGS2YZ.js → dist-DEmlBBNQ.js} +3 -3
  180. package/server/public/assets/{ganttDiagram-6RSMTGT7-D4lWwte3.js → ganttDiagram-6RSMTGT7-DnfiViPK.js} +1 -1
  181. package/server/public/assets/{highlighted-body-OFNGDK62-CaLboCt5.js → highlighted-body-OFNGDK62-B8Wrmj9H.js} +1 -1
  182. package/server/public/assets/index-CUr1xv8w.css +1 -0
  183. package/server/public/assets/{index-Bwejq-5s.js → index-CsSuZQBI.js} +145 -144
  184. package/server/public/assets/{linear-qUWmMZ-c.js → linear-C9zFQpkX.js} +1 -1
  185. package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +1 -0
  186. package/server/public/assets/{pieDiagram-4H26LBE5-C4zYulEm.js → pieDiagram-4H26LBE5-lR8H7Yjd.js} +1 -1
  187. package/server/public/assets/{prod-C8VtLuWC.js → prod-B1jCQihw.js} +4 -4
  188. package/server/public/assets/{quadrantDiagram-W4KKPZXB-qP04zyZC.js → quadrantDiagram-W4KKPZXB-CVQ2guem.js} +1 -1
  189. package/server/public/assets/{sankeyDiagram-5OEKKPKP-eMPTX_cG.js → sankeyDiagram-5OEKKPKP-eD1RB4gm.js} +1 -1
  190. package/server/public/assets/{xychartDiagram-2RQKCTM6-Dme1PIt6.js → xychartDiagram-2RQKCTM6-ChEC6dQn.js} +1 -1
  191. package/server/public/index.html +2 -2
  192. package/server/{pull-requests-By_BteaL.js → pull-requests--Ib2jTgy.js} +1 -1
  193. package/server/{pull-requests-8z2N1UOV.js → pull-requests-CXIhdCYD.js} +13 -11
  194. package/server/{queries-ZABd5aXP.js → queries-6d7Cdtm7.js} +693 -104
  195. package/server/{rally-i_goYmiA.js → rally-B708-nZn.js} +3 -3
  196. package/server/{rally-api-DqKqIMNR.js → rally-api-nY0ZANw3.js} +2 -2
  197. package/server/{rally-api-xHazRk0d.js → rally-api-yjQ0TfHd.js} +1 -1
  198. package/server/{rally-client-COYz1vYR.js → rally-client-B1EJhfV0.js} +4 -4
  199. package/server/{rally-client-CGWEHaPd.js → rally-client-CULK2XAY.js} +1 -1
  200. package/server/rally-njs_mJrt.js +3 -0
  201. package/server/{reap-terminal-sessions-CaMkFOIH.js → reap-terminal-sessions-MWnqdLCJ.js} +1 -1
  202. package/server/{reap-terminal-sessions-DG9eiMVz.js → reap-terminal-sessions-N3BTkmX_.js} +1 -1
  203. package/server/{rebuild-stack-JUm0jqYP.js → rebuild-stack-Dp4eLkt4.js} +6 -6
  204. package/server/{rebuild-stack-CKjJAI8L.js → rebuild-stack-kA7XngID.js} +1 -1
  205. package/server/{reconstruct-cache-wU79aCee.js → reconstruct-cache-uWbZfjms.js} +6 -6
  206. package/server/record-t6V-3Dcj.js +3 -0
  207. package/server/{record-update-D3N6WMFR.js → record-update-DACtKh6_.js} +1 -1
  208. package/server/record-update-Dq0t2uBG.js +310 -0
  209. package/server/{recovery-trip-DkzJSej9.js → recovery-trip-BJtIQuag.js} +2 -2
  210. package/server/{release-engine-DMINVN8S.js → release-engine-DZpmGGzb.js} +5 -5
  211. package/server/{release-set-DeUSOEHy.js → release-set-hnXd_kga.js} +3 -3
  212. package/server/{remote-Dr5kGYSZ.js → remote-4tiENDaI.js} +3 -3
  213. package/server/{remote-b-c5bOce.js → remote-Br-ZWVIP.js} +3 -3
  214. package/server/{remote-agents-D6O_zETW.js → remote-agents-CRCg1L4H.js} +1 -1
  215. package/server/{remote-agents-Ct_WOyke.js → remote-agents-nmty1mLu.js} +6 -6
  216. package/server/{remote-completion-Dca3hAaa.js → remote-completion-BbWNd10K.js} +12 -12
  217. package/server/resume-CcKqnTvE.js +3 -0
  218. package/server/{review-agent-CCum8sGe.js → review-agent-DJRO8EG8.js} +1 -1
  219. package/server/{review-agent-CThvgK2r.js → review-agent-sKkE1FEL.js} +22 -22
  220. package/server/{review-artifacts-CXywD0F2.js → review-artifacts-BLbSC4ke.js} +5 -5
  221. package/server/{review-context-OYfKUprb.js → review-context-BgX3lcCx.js} +8 -8
  222. package/server/{review-status-DFRjDFef.js → review-status-A7quS5KJ.js} +54 -21
  223. package/server/review-status-C6n6-9f_.js +3 -0
  224. package/server/{review-status-enrichment-crNAtIpL.js → review-status-enrichment-tbOn_A_u.js} +3 -3
  225. package/server/{review-status-sync-DpAMD_WO.js → review-status-sync-BhSQ0d0l.js} +2 -2
  226. package/server/{review-status-sync-D60PJWNL.js → review-status-sync-To3-iS-N.js} +1 -1
  227. package/server/{review-verdict-feedback-JImjut0z.js → review-verdict-feedback-C1Kg8n7t.js} +1 -1
  228. package/server/{review-verdict-feedback-CpUZl5aE.js → review-verdict-feedback-CTRNtzXO.js} +6 -6
  229. package/server/{rollup-CZ02qgxk.js → rollup-B53Y81xK.js} +1 -1
  230. package/server/{rollup-SyuF09e4.js → rollup-WA0VD-Rr.js} +8 -8
  231. package/server/{scanner-Br0Z5S6R.js → scanner-D2743cp8.js} +11 -7
  232. package/server/{sequence-io-fxU0DlwW.js → sequence-io-Cg0zYj_E.js} +4 -4
  233. package/server/{sequencer-agent-B5YC5XVP.js → sequencer-agent-BGY8gjg-.js} +5 -5
  234. package/server/server.js +941 -752
  235. package/server/{service-Bagb90KZ.js → service-DCpB_SGd.js} +53 -53
  236. package/server/{session-fork-BqQxd-V6.js → session-fork-BQ8_6H32.js} +2 -2
  237. package/server/{session-history-XdS0JKp3.js → session-history-CVZDpS3c.js} +4 -4
  238. package/server/{settings-BNbocWOg.js → settings-BZ5m1UCl.js} +3 -3
  239. package/server/settings-D0OSwos5.js +2 -0
  240. package/server/{settings-uLc6DEYI.js → settings-ylxwqwQG.js} +2 -2
  241. package/server/{shadow-engineering-D4X_s3fA.js → shadow-engineering-BlxG6Xye.js} +2 -2
  242. package/server/{shadow-state-CbvsN3qG.js → shadow-state-C2_epgx2.js} +1 -1
  243. package/server/{shadow-state-C_NkP-sa.js → shadow-state-Dh-HzF2J.js} +2 -2
  244. package/server/{shadow-utils-CYMRPeRT.js → shadow-utils-4bvjn9b3.js} +2 -2
  245. package/server/{ship-log-__QtAFXG.js → ship-log-ClSMIzZX.js} +1 -1
  246. package/server/{smart-compaction-jdMkG1vo.js → smart-compaction-CHIxLr_d.js} +1 -1
  247. package/server/{smart-compaction-CLZOWin1.js → smart-compaction-r4pHQBIr.js} +7 -7
  248. package/server/{spawn-planning-session-D5OXo8pT.js → spawn-planning-session-DWAorh2B.js} +22 -21
  249. package/server/{spawn-planning-session-8D6mE033.js → spawn-planning-session-KC_UduxD.js} +1 -1
  250. package/server/{specialist-completion-CqmduO92.js → specialist-completion-BXhav38U.js} +1 -1
  251. package/server/{specialist-context-CJ-QjFR-.js → specialist-context-DtrYvGJ-.js} +5 -5
  252. package/server/{specialist-handoff-logger-Dnjlwt7g.js → specialist-handoff-logger-C45ouoZ6.js} +2 -2
  253. package/server/{specialist-logs-CQnKzuZs.js → specialist-logs-DJ3RzKxW.js} +3 -3
  254. package/server/{specialists-D0gGXMZx.js → specialists-D5fRZXmN.js} +1 -1
  255. package/server/specialists-DVj0hvaL.js +3 -0
  256. package/server/{specialists-CwZHb5cb.js → specialists-DyFeedjn.js} +66 -76
  257. package/server/{specialists-Bg9v4z3F.js → specialists-JVO00bs7.js} +340 -214
  258. package/server/specs-nN45DG2X.js +3 -0
  259. package/server/{src-BMMoA_ba.js → src-CG9mCkP6.js} +6 -6
  260. package/server/{src-Bqdtd6po.js → src-CMTQGyCK.js} +3 -3
  261. package/server/{src-k039WVYY.js → src-U7_kTPEE.js} +2 -1
  262. package/server/{stack-health-Bd06frFn.js → stack-health-Df0YEZKa.js} +1 -1
  263. package/server/{stack-health-C-ifC7b0.js → stack-health-puygdaMd.js} +2 -2
  264. package/server/{stale-task-claims-L7pJkQFL.js → stale-task-claims-BbFwCTb0.js} +4 -4
  265. package/server/{staleness-BID1BKdr.js → staleness-Bpy41ngS.js} +15 -3
  266. package/server/{staleness-_Tr-GwdA.js → staleness-Cbl_w4Bw.js} +1 -1
  267. package/server/{state-home-CONQvZR0.js → state-home-CIGjwNfJ.js} +96 -44
  268. package/server/{state-migrate-BeBW0KXA.js → state-migrate-Dkzaxvny.js} +12 -3
  269. package/server/{stuck-remediation-CKnIryGT.js → stuck-remediation-CzEov_fq.js} +26 -22
  270. package/server/{stuck-remediation-CsGD5Ksb.js → stuck-remediation-sY_MHHgQ.js} +1 -1
  271. package/server/{substrate-bug-weights-service-CpIZILj9.js → substrate-bug-weights-service-BH66lhm7.js} +3 -3
  272. package/server/{summary-fork-agEMsPSo.js → summary-fork-D8bXjCr7.js} +2 -2
  273. package/server/{summary-fork-bX6ax6X7.js → summary-fork-DHhJIsAL.js} +8 -8
  274. package/server/{supervisor-Ctt4eRYz.js → supervisor-BO-Zk_h-.js} +3 -3
  275. package/server/supervisor-BPy-o1A8.js +2 -0
  276. package/server/{swarm-readiness-DdmJVX7y.js → swarm-readiness-CQ_fwUWF.js} +4 -4
  277. package/server/{system-prerequisites-DSXBvffY.js → system-prerequisites-Bza0ffAh.js} +2 -2
  278. package/server/{teardown-workspace-DDCf5n-a.js → teardown-workspace-CEgauF4U.js} +15 -15
  279. package/server/{test-agent-queue-BJZ9Nfcc.js → test-agent-queue-DXDt0Xa-.js} +7 -7
  280. package/server/{test-verdict-Cp5tljlJ.js → test-verdict-CmUBK5cT.js} +1 -1
  281. package/server/{test-verdict-D_-sXIz_.js → test-verdict-DFjjIHR5.js} +1 -1
  282. package/server/{tldr-daemon-BQFmmFp0.js → tldr-daemon-BDtLOIlO.js} +2 -2
  283. package/server/{tldr-daemon-B8_oT5gx.js → tldr-daemon-DL566HbH.js} +1 -1
  284. package/server/tmux-DoThH6aj.js +3 -0
  285. package/server/{tmux-L5LgvGLp.js → tmux-ftABRAmc.js} +76 -44
  286. package/server/{token-BkQLy4yS.js → token-CsOhvw42.js} +2 -2
  287. package/server/{token-util-DI8sGlmF.js → token-util-CTmczIfW.js} +1 -1
  288. package/server/token-util-DrHg8abn.js +3 -0
  289. package/server/{tracker-config-DdT-nUAM.js → tracker-config-B4itFzDo.js} +2 -2
  290. package/server/{tracker-utils-DV3h1FYG.js → tracker-utils-BePq_oj-.js} +1 -1
  291. package/server/{tracker-utils-CawsPSS2.js → tracker-utils-tnxxqROg.js} +2 -2
  292. package/server/{traefik-connect-C6mJckNs.js → traefik-connect-m73vGebA.js} +1 -1
  293. package/server/{tunnel-IdK1iTHx.js → tunnel-B2vxjx_b.js} +3 -3
  294. package/server/{tunnel-BIFl98rc.js → tunnel-Cgj-IGIl.js} +1 -1
  295. package/server/{types-7-GnJn0t.js → types-BBNjPcqU.js} +1 -1
  296. package/server/{uat-train-j0cPeMSj.js → uat-train-CuEn0t9M.js} +28 -28
  297. package/server/{uat-train-0Ujk8GCv.js → uat-train-cKfM-_WW.js} +1 -1
  298. package/server/{validation-CabEISJT.js → validation-B5JxoPUS.js} +259 -9
  299. package/server/{validation-DcAgXTQp.js → validation-CIi6pnI2.js} +1 -1
  300. package/server/{verification-artifact-BuTA1QbL.js → verification-artifact-BcnIbigL.js} +1 -1
  301. package/server/{verification-artifact-Ck1tefmz.js → verification-artifact-C-lIHfUa.js} +1 -1
  302. package/server/{verification-runner-FiuAZ-H2.js → verification-runner-Br0S_Ous.js} +102 -37
  303. package/server/{verification-runner-DlJezzef.js → verification-runner-CDj4lD4t.js} +1 -1
  304. package/server/{vtt-parser-BnRsYzcz.js → vtt-parser-DKpNNW5i.js} +1 -1
  305. package/server/{work-agent-prompt-DLthEPAq.js → work-agent-prompt-Yb2bd3Fq.js} +13 -13
  306. package/server/{workflows-BZNNYkGC.js → workflows-C9WmILql.js} +39 -77
  307. package/server/workflows-D90rMOya.js +2 -0
  308. package/server/{workspace-D9ppycdg.js → workspace-BVl4rihN.js} +3 -3
  309. package/server/{workspace-3IC-UkAi.js → workspace-DuUdndHe.js} +1 -1
  310. package/server/{workspace-config-Bigl_-Lk.js → workspace-config-cEGcO6UT.js} +1 -1
  311. package/server/{workspace-manager-B1WOfKvB.js → workspace-manager-ZTdJAy9M.js} +1 -1
  312. package/server/{workspace-manager-ClkCIWTe.js → workspace-manager-hLUv3ADC.js} +22 -15
  313. package/server/{workspace-metadata-tiSRIWJP.js → workspace-metadata-CskwzzhL.js} +2 -2
  314. package/server/{workspace-metadata-BE0efUv_.js → workspace-metadata-DNpMixRq.js} +1 -1
  315. package/server/{workspaces-CFPcL0vl.js → workspaces-hWvy9eKs.js} +275 -109
  316. package/sync-sources/agents/pan-inspect-agent.md +1 -1
  317. package/sync-sources/agents/pan-merge-agent.md +1 -1
  318. package/sync-sources/agents/pan-planning-agent.md +4 -4
  319. package/sync-sources/agents/pan-work-agent.md +1 -1
  320. package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
  321. package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
  322. package/sync-sources/hooks/record-cost-event.js +363 -71
  323. package/sync-sources/hooks/session-start-hook +7 -0
  324. package/sync-sources/hooks/work-agent-stop-hook +1 -1
  325. package/sync-sources/rules/per-bead-durability.md +1 -1
  326. package/sync-sources/rules/prd-authoring.md +1 -1
  327. package/sync-sources/skills/feature-work/SKILL.md +1 -1
  328. package/sync-sources/skills/pan/SKILL.md +2 -2
  329. package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
  330. package/sync-sources/skills/pan-approve/SKILL.md +1 -1
  331. package/sync-sources/skills/pan-close/SKILL.md +1 -1
  332. package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
  333. package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
  334. package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
  335. package/sync-sources/skills/pan-plan/SKILL.md +6 -6
  336. package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
  337. package/sync-sources/skills/pan-recap/SKILL.md +2 -2
  338. package/sync-sources/skills/pan-review/SKILL.md +1 -1
  339. package/sync-sources/skills/pan-start/SKILL.md +3 -3
  340. package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
  341. package/sync-sources/skills/pan-sync/SKILL.md +1 -1
  342. package/sync-sources/skills/pan-task/SKILL.md +2 -2
  343. package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
  344. package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
  345. package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
  346. package/sync-sources/skills/plan/SKILL.md +11 -11
  347. package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
  348. package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
  349. package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
  350. package/server/agent-state-Co5Sy2Fw.js +0 -3
  351. package/server/agents-DyHKlq1I.js +0 -3
  352. package/server/cli-BRORS9qY.js +0 -3
  353. package/server/codex-DNyiQDKW.js +0 -3
  354. package/server/deacon-swarm-CV54eNmU.js +0 -2
  355. package/server/dist-j64RzSrQ.js +0 -3
  356. package/server/forge-B0_opi-V.js +0 -2
  357. package/server/hume-BmhvfVbV.js +0 -3
  358. package/server/inspect-agent-Dq0z1k3H.js +0 -2
  359. package/server/lifecycle-io-DmY2qwCn.js +0 -3
  360. package/server/merge-ops-DwWCkSgo.js +0 -2
  361. package/server/projects-BKkwpH6q.js +0 -3
  362. package/server/public/assets/index-Bdc4V9ba.css +0 -1
  363. package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +0 -1
  364. package/server/rally-OSJXdiHK.js +0 -3
  365. package/server/record-rwK-nKv_.js +0 -3
  366. package/server/record-update-Crz74r-6.js +0 -168
  367. package/server/resume-wZZsWtzz.js +0 -3
  368. package/server/review-status-Bnh-rdkY.js +0 -3
  369. package/server/settings-BlUsVaUc.js +0 -2
  370. package/server/specialists-Dqe6_HE5.js +0 -3
  371. package/server/specs-BhOKBzqk.js +0 -3
  372. package/server/supervisor-COVHrBTg.js +0 -2
  373. package/server/tmux-BAvtac_u.js +0 -3
  374. package/server/token-util-BArZLN6w.js +0 -3
  375. package/server/workflows-C4mR0Reb.js +0 -2
@@ -1,10 +1,10 @@
1
- import { Mr as AGENTS_DIR, ii as init_paths } from "./config-yaml-ig8Nwtiw.js";
2
- import { D as killSession, V as sessionExists, j as listSessionNames, w as init_tmux } from "./tmux-L5LgvGLp.js";
3
- import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-ClkCIWTe.js";
4
- import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-CNmQy0pL.js";
5
- import { a as pidsWithCwdUnder } from "./agent-gc-Dj2gncak.js";
6
- import { i as findWorkspacePath, o as init_archive_planning, r as findAllWorkspacePaths } from "./archive-planning-BvDuWNMo.js";
7
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-7-GnJn0t.js";
1
+ import { Vr as init_paths, hr as AGENTS_DIR } from "./config-yaml-DvyMuOle.js";
2
+ import { D as killSession, H as sessionExists, M as listSessionNames, w as init_tmux } from "./tmux-ftABRAmc.js";
3
+ import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-hLUv3ADC.js";
4
+ import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-CtUgrVKW.js";
5
+ import { a as pidsWithCwdUnder } from "./agent-gc-BV1q_2EV.js";
6
+ import { i as findWorkspacePath, o as init_archive_planning, r as findAllWorkspacePaths } from "./archive-planning-DYrYojxl.js";
7
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-BBNjPcqU.js";
8
8
  import { Effect } from "effect";
9
9
  import { existsSync } from "fs";
10
10
  import { basename, join } from "path";
@@ -84,7 +84,7 @@ async function stopTldrDaemonImpl(workspacePath) {
84
84
  const venvPath = join(workspacePath, ".venv");
85
85
  if (!existsSync(venvPath)) return stepSkipped(step, ["No .venv found"]);
86
86
  try {
87
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-B8_oT5gx.js");
87
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-DL566HbH.js");
88
88
  await getTldrDaemonServiceSync(workspacePath, venvPath).stop();
89
89
  return stepOk(step, ["Stopped TLDR daemon"]);
90
90
  } catch {
@@ -103,7 +103,7 @@ function stopDocker(workspacePath, issueLower) {
103
103
  async function stopDockerImpl(workspacePath, issueLower) {
104
104
  const step = "teardown:docker";
105
105
  try {
106
- const { stopWorkspaceDocker } = await import("./workspace-manager-B1WOfKvB.js");
106
+ const { stopWorkspaceDocker } = await import("./workspace-manager-ZTdJAy9M.js");
107
107
  await Effect.runPromise(stopWorkspaceDocker(workspacePath, issueLower));
108
108
  return stepOk(step, ["Stopped Docker containers"]);
109
109
  } catch {
@@ -407,7 +407,7 @@ function clearShadowState(issueId) {
407
407
  async function clearShadowStateImpl(issueId) {
408
408
  const step = "teardown:shadow-state";
409
409
  try {
410
- const { removeShadowState } = await import("./shadow-state-CbvsN3qG.js");
410
+ const { removeShadowState } = await import("./shadow-state-C2_epgx2.js");
411
411
  if (removeShadowState(issueId).success) return stepOk(step, [`Cleared shadow state for ${issueId}`]);
412
412
  return stepSkipped(step, ["No shadow state found"]);
413
413
  } catch {
@@ -457,7 +457,7 @@ function buildPlaceholders(ctx, opts, workspacePath) {
457
457
  function removeTunnelConfig(tunnelConfig, placeholders) {
458
458
  return Effect.tryPromise({
459
459
  try: async () => {
460
- const { removeTunnelIngress } = await import("./tunnel-BIFl98rc.js");
460
+ const { removeTunnelIngress } = await import("./tunnel-Cgj-IGIl.js");
461
461
  return stepOk("teardown:tunnel", (await Effect.runPromise(removeTunnelIngress(tunnelConfig, placeholders))).steps || ["Removed tunnel ingress"]);
462
462
  },
463
463
  catch: (err) => err
@@ -469,7 +469,7 @@ function removeTunnelConfig(tunnelConfig, placeholders) {
469
469
  function removeHumeEviConfig(humeConfig, placeholders) {
470
470
  return Effect.tryPromise({
471
471
  try: async () => {
472
- const { deleteHumeConfig } = await import("./hume-BmhvfVbV.js");
472
+ const { deleteHumeConfig } = await import("./hume-B_DbflNM.js");
473
473
  return stepOk("teardown:hume", (await Effect.runPromise(deleteHumeConfig(humeConfig, placeholders))).steps || ["Removed Hume EVI config"]);
474
474
  },
475
475
  catch: (err) => err
@@ -514,7 +514,7 @@ function pruneSpecialistRegistry(issueId) {
514
514
  return Effect.tryPromise({
515
515
  try: async () => {
516
516
  const step = "teardown:specialist-registry";
517
- const { pruneSpecialistRegistryEntriesForIssue } = await import("./specialists-Dqe6_HE5.js");
517
+ const { pruneSpecialistRegistryEntriesForIssue } = await import("./specialists-DVj0hvaL.js");
518
518
  const removed = pruneSpecialistRegistryEntriesForIssue(issueId);
519
519
  return removed > 0 ? stepOk(step, [`Pruned ${removed} specialist registry entr${removed === 1 ? "y" : "ies"} for ${issueId}`]) : stepSkipped(step, [`No specialist registry entries for ${issueId}`]);
520
520
  },
@@ -525,7 +525,7 @@ function pruneCheckpointRefs(projectPath, issueLower) {
525
525
  return Effect.tryPromise({
526
526
  try: async () => {
527
527
  const step = "teardown:checkpoint-refs";
528
- const { pruneCheckpointRefsForAgents } = await import("./checkpoint-manager-rOgT98WY.js");
528
+ const { pruneCheckpointRefsForAgents } = await import("./checkpoint-manager-B7Bt29J0.js");
529
529
  const agentIds = [
530
530
  `agent-${issueLower}`,
531
531
  `planning-${issueLower}`,
@@ -539,4 +539,4 @@ function pruneCheckpointRefs(projectPath, issueLower) {
539
539
  //#endregion
540
540
  export { teardownWorkspace as t };
541
541
 
542
- //# sourceMappingURL=teardown-workspace-DDCf5n-a.js.map
542
+ //# sourceMappingURL=teardown-workspace-CEgauF4U.js.map
@@ -1,8 +1,8 @@
1
- import { Hn as init_projects, nr as resolveProjectFromIssueSync } from "./config-yaml-ig8Nwtiw.js";
2
- import { c as init_review_status, y as setReviewStatusSync } from "./review-status-DFRjDFef.js";
3
- import { Z as spawnRun, s as init_agents } from "./queries-ZABd5aXP.js";
4
- import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-CqnUzGEK.js";
5
- import { r as init_test_verdict, t as clearTestVerdictArtifact } from "./test-verdict-Cp5tljlJ.js";
1
+ import { Tn as init_projects, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
2
+ import { b as setReviewStatusSync, l as init_review_status } from "./review-status-A7quS5KJ.js";
3
+ import { b as init_agents, ut as spawnRun } from "./queries-6d7Cdtm7.js";
4
+ import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-CSizH3HY.js";
5
+ import { r as init_test_verdict, t as clearTestVerdictArtifact } from "./test-verdict-CmUBK5cT.js";
6
6
  import { Data, Effect } from "effect";
7
7
  //#region ../../lib/cloister/test-agent-queue.ts
8
8
  /**
@@ -34,7 +34,7 @@ Run the role-based verification flow for this already-reviewed branch.
34
34
  Required steps:
35
35
  1. Before every repository command, verify you are in the workspace above with \`pwd\`. If not, stop and switch back to that workspace before continuing.
36
36
  2. Work only in the workspace above. Never run build, test, git, or dashboard commands from the main checkout or another worktree.
37
- 3. Read .pan/records/${options.issueId.toLowerCase()}.json, the canonical vBRIEF under .pan/specs/ for ${options.issueId}, issue notes, and project instructions to determine required verification. Do not require retired workspace-local .pan/continue.json or .pan/spec.vbrief.json files to exist.
37
+ 3. Read .pan/records/${options.issueId.toLowerCase()}.json, the canonical xBRIEF under .pan/specs/ for ${options.issueId}, issue notes, and project instructions to determine required verification. Do not require retired workspace-local .pan/continue.json or .pan/spec.vbrief.json files to exist.
38
38
  4. Run the configured project gates (at minimum typecheck, lint, and tests when present/applicable).
39
39
  5. Decide whether browser UAT is required from acceptance criteria, issue notes, PR notes, or UI/dashboard wording.
40
40
  6. If UAT is required, build and run the dashboard from the workspace above, not from main. If a dashboard from another checkout is already running, stop it and start the workspace-built dashboard.
@@ -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-BJZ9Nfcc.js.map
166
+ //# sourceMappingURL=test-agent-queue-DXDt0Xa-.js.map
@@ -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-Cp5tljlJ.js.map
105
+ //# sourceMappingURL=test-verdict-CmUBK5cT.js.map
@@ -1,3 +1,3 @@
1
- import { i as readTestVerdictArtifact, r as init_test_verdict } from "./test-verdict-Cp5tljlJ.js";
1
+ import { i as readTestVerdictArtifact, r as init_test_verdict } from "./test-verdict-CmUBK5cT.js";
2
2
  init_test_verdict();
3
3
  export { readTestVerdictArtifact };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { jr as init_errors } from "./config-yaml-ig8Nwtiw.js";
2
+ import { mr as init_errors } from "./config-yaml-DvyMuOle.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-BQFmmFp0.js.map
224
+ //# sourceMappingURL=tldr-daemon-BDtLOIlO.js.map
@@ -1,3 +1,3 @@
1
- import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-BQFmmFp0.js";
1
+ import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-BDtLOIlO.js";
2
2
  init_tldr_daemon();
3
3
  export { getTldrDaemonServiceSync };
@@ -0,0 +1,3 @@
1
+ import { D as killSession, E as isPaneDead, H as sessionExists, M as listSessionNames, k as listAllPaneRecords, w as init_tmux } from "./tmux-ftABRAmc.js";
2
+ init_tmux();
3
+ export { isPaneDead, killSession, listAllPaneRecords, listSessionNames, sessionExists };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Or as TmuxError, f as loadConfigSync, ii as init_paths, jr as init_errors, ri as getOverdeckHome, t as init_config_yaml } from "./config-yaml-ig8Nwtiw.js";
2
+ import { Br as getOverdeckHome, Vr as init_paths, dr as TmuxError, f as loadConfigSync, mr as init_errors, t as init_config_yaml } from "./config-yaml-DvyMuOle.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";
@@ -120,6 +120,50 @@ var init_ui_theme = __esmMin((() => {
120
120
  };
121
121
  }));
122
122
  //#endregion
123
+ //#region ../../lib/tmux-process-tree.ts
124
+ /**
125
+ * True when a pane process tree contains a real harness rather than only the
126
+ * launcher shell and its keep-alive sleep loop. `psTable` is `ps -eo
127
+ * pid=,ppid=,comm=` output.
128
+ */
129
+ function paneTreeHasHarnessProcess(panePids, psTable) {
130
+ const childrenByPpid = /* @__PURE__ */ new Map();
131
+ const commByPid = /* @__PURE__ */ new Map();
132
+ for (const line of psTable.split("\n")) {
133
+ const match = line.trim().match(/^(\d+)\s+(\d+)\s+(.+)$/);
134
+ if (!match) continue;
135
+ const pid = Number(match[1]);
136
+ const ppid = Number(match[2]);
137
+ commByPid.set(pid, match[3].trim());
138
+ const siblings = childrenByPpid.get(ppid);
139
+ if (siblings) siblings.push(pid);
140
+ else childrenByPpid.set(ppid, [pid]);
141
+ }
142
+ const queue = [...panePids];
143
+ const seen = /* @__PURE__ */ new Set();
144
+ while (queue.length > 0) {
145
+ const pid = queue.pop();
146
+ if (seen.has(pid)) continue;
147
+ seen.add(pid);
148
+ const comm = commByPid.get(pid);
149
+ if (comm && !KEEPALIVE_FOREGROUND_COMMANDS.has(comm)) return true;
150
+ const children = childrenByPpid.get(pid);
151
+ if (children) queue.push(...children);
152
+ }
153
+ return false;
154
+ }
155
+ var KEEPALIVE_FOREGROUND_COMMANDS;
156
+ var init_tmux_process_tree = __esmMin((() => {
157
+ KEEPALIVE_FOREGROUND_COMMANDS = new Set([
158
+ "sleep",
159
+ "bash",
160
+ "sh",
161
+ "dash",
162
+ "zsh",
163
+ "ash"
164
+ ]);
165
+ }));
166
+ //#endregion
123
167
  //#region ../../lib/tmux.ts
124
168
  function validateSessionName(name) {
125
169
  if (!VALID_SESSION_NAME_RE.test(name)) throw new Error(`Invalid tmux session name: ${name}`);
@@ -729,38 +773,6 @@ async function listPaneValuesText(target, format) {
729
773
  }
730
774
  }
731
775
  /**
732
- * Pure tree walk behind isHarnessProcessAlive, exported for tests: true when
733
- * any process in the pane's tree (the pane pids themselves or any descendant)
734
- * is something other than a shell or `sleep`. `psTable` is `ps -eo
735
- * pid=,ppid=,comm=` output.
736
- */
737
- function paneTreeHasHarnessProcess(panePids, psTable) {
738
- const childrenByPpid = /* @__PURE__ */ new Map();
739
- const commByPid = /* @__PURE__ */ new Map();
740
- for (const line of psTable.split("\n")) {
741
- const match = line.trim().match(/^(\d+)\s+(\d+)\s+(.+)$/);
742
- if (!match) continue;
743
- const pid = Number(match[1]);
744
- const ppid = Number(match[2]);
745
- commByPid.set(pid, match[3].trim());
746
- const siblings = childrenByPpid.get(ppid);
747
- if (siblings) siblings.push(pid);
748
- else childrenByPpid.set(ppid, [pid]);
749
- }
750
- const queue = [...panePids];
751
- const seen = /* @__PURE__ */ new Set();
752
- while (queue.length > 0) {
753
- const pid = queue.pop();
754
- if (seen.has(pid)) continue;
755
- seen.add(pid);
756
- const comm = commByPid.get(pid);
757
- if (comm && !KEEPALIVE_FOREGROUND_COMMANDS.has(comm)) return true;
758
- const children = childrenByPpid.get(pid);
759
- if (children) queue.push(...children);
760
- }
761
- return false;
762
- }
763
- /**
764
776
  * Honest liveness signal for a launcher-managed session: true only when the
765
777
  * session exists AND a real harness process is running in it — not the post-exit
766
778
  * keep-alive loop. `sessionExists` alone cannot tell a live session from a
@@ -817,6 +829,21 @@ function detectTerminalApiErrorSync(paneOutput) {
817
829
  }
818
830
  return null;
819
831
  }
832
+ function parseTmuxPaneRecords(output) {
833
+ return output.split("\n").flatMap((line) => {
834
+ if (!line) return [];
835
+ const [sessionName = "", panePidRaw = "", paneDeadRaw = "", paneDeadStatusRaw = ""] = line.split(" ");
836
+ const panePid = Number.parseInt(panePidRaw, 10);
837
+ if (!sessionName || !Number.isInteger(panePid) || panePid <= 0) return [];
838
+ const paneDeadStatus = Number.parseInt(paneDeadStatusRaw, 10);
839
+ return [{
840
+ sessionName,
841
+ panePid,
842
+ paneDead: paneDeadRaw === "1",
843
+ paneDeadStatus: Number.isInteger(paneDeadStatus) ? paneDeadStatus : null
844
+ }];
845
+ });
846
+ }
820
847
  async function sendKeysAsync(sessionName, key, caller) {
821
848
  validateSessionName(sessionName);
822
849
  const target = exactPaneTarget(sessionName);
@@ -846,13 +873,14 @@ function deliveryVerifyLine(content) {
846
873
  const lines = content.split("\n");
847
874
  return ([...lines].reverse().find((line) => line.trim().length >= 3) ?? lines[lines.length - 1])?.trim() ?? "";
848
875
  }
849
- var execFileAsync, VALID_SESSION_NAME_RE, DEFAULT_TMUX_WINDOW_COLS, DEFAULT_TMUX_WINDOW_ROWS, MANAGED_TMUX_SERVER_UNIT, SERVER_ALIVE_POLL_MS, SERVER_ALIVE_TIMEOUT_MS, MANAGED_TMUX_CONFIG_CONTENT, tmuxContextPrepared, warnedManagedServerTmuxSpawnScope, warnedManagedServerDirtyCmdline, MessageDeliveryFailed, KEEPALIVE_FOREGROUND_COMMANDS, TERMINAL_API_ERROR_PATTERNS, toTmuxError, ensureManagedTmuxContextOnce, listSessions, listSessionNames, getWindowDimensions, sessionExists, createSession, killSession, setOption, resizeWindow, sendRawKeystroke, sendKeys, capturePane, listPaneValues, isPaneDead, getAgentSessions;
876
+ var execFileAsync, VALID_SESSION_NAME_RE, DEFAULT_TMUX_WINDOW_COLS, DEFAULT_TMUX_WINDOW_ROWS, MANAGED_TMUX_SERVER_UNIT, SERVER_ALIVE_POLL_MS, SERVER_ALIVE_TIMEOUT_MS, MANAGED_TMUX_CONFIG_CONTENT, tmuxContextPrepared, warnedManagedServerTmuxSpawnScope, warnedManagedServerDirtyCmdline, MessageDeliveryFailed, TERMINAL_API_ERROR_PATTERNS, toTmuxError, ensureManagedTmuxContextOnce, listSessions, listSessionNames, listAllPaneRecords, getWindowDimensions, sessionExists, createSession, killSession, setOption, resizeWindow, sendRawKeystroke, sendKeys, capturePane, listPaneValues, isPaneDead, getAgentSessions;
850
877
  var init_tmux = __esmMin((() => {
851
878
  init_paths();
852
879
  init_config_yaml();
853
880
  init_child_env();
854
881
  init_errors();
855
882
  init_ui_theme();
883
+ init_tmux_process_tree();
856
884
  execFileAsync = promisify(execFile);
857
885
  VALID_SESSION_NAME_RE = /^[a-zA-Z0-9._-]+$/;
858
886
  DEFAULT_TMUX_WINDOW_COLS = 200;
@@ -886,14 +914,6 @@ var init_tmux = __esmMin((() => {
886
914
  this.name = "MessageDeliveryFailed";
887
915
  }
888
916
  };
889
- KEEPALIVE_FOREGROUND_COMMANDS = new Set([
890
- "sleep",
891
- "bash",
892
- "sh",
893
- "dash",
894
- "zsh",
895
- "ash"
896
- ]);
897
917
  TERMINAL_API_ERROR_PATTERNS = [
898
918
  {
899
919
  re: /usage limit for this billing cycle/i,
@@ -998,6 +1018,18 @@ var init_tmux = __esmMin((() => {
998
1018
  },
999
1019
  catch: (cause) => toTmuxError("list-session-names", cause)
1000
1020
  });
1021
+ listAllPaneRecords = () => Effect.tryPromise({
1022
+ try: async () => {
1023
+ const { stdout } = await tmuxExecAsync([
1024
+ "list-panes",
1025
+ "-a",
1026
+ "-F",
1027
+ "#{session_name} #{pane_pid} #{pane_dead} #{pane_dead_status}"
1028
+ ], { encoding: "utf-8" });
1029
+ return parseTmuxPaneRecords(String(stdout));
1030
+ },
1031
+ catch: (cause) => toTmuxError("list-all-pane-records", cause)
1032
+ });
1001
1033
  getWindowDimensions = (sessionName) => Effect.tryPromise({
1002
1034
  try: async () => {
1003
1035
  try {
@@ -1218,6 +1250,6 @@ var init_tmux = __esmMin((() => {
1218
1250
  getAgentSessions = () => listSessions().pipe(Effect.map((sessions) => sessions.filter((s) => s.name.startsWith("agent-"))));
1219
1251
  }));
1220
1252
  //#endregion
1221
- export { listPaneValuesSync as A, sendRawKeystroke as B, getWindowDimensions as C, killSession as D, isPaneDead as E, querySessionSync as F, getUiThemeSync as G, sessionExistsSync as H, resizeWindow as I, BLANKED_PROVIDER_ENV as J, init_ui_theme as K, sendEscapeKeyAsync as L, listSessions as M, listSessionsSync as N, killSessionSync as O, paneTreeHasHarnessProcess as P, sendKeys as R, getTmuxConfigMode as S, isHarnessProcessAlive as T, setOption as U, sessionExists as V, colorFgBgForTheme as W, buildChildEnvWithoutTmuxSync as X, buildChildEnvSync as Y, init_child_env as Z, getAgentSessions as _, capturePaneSync as a, getTmuxBaseArgs as b, createSessionSync as c, ensureManagedTmuxContextOnce as d, ensureOverdeckTmuxServerAsync as f, findManagedServerPidSync as g, exactSession as h, capturePane as i, listSessionNames as j, listPaneValues as k, deliveryVerifyLine as l, exactPaneTarget as m, buildTmuxArgs as n, capturePaneText as o, ensureOverdeckTmuxServerSync as p, setUiTheme as q, buildTmuxCommandString as r, createSession as s, MessageDeliveryFailed as t, detectTerminalApiErrorSync as u, getManagedTmuxConfigPath as v, init_tmux as w, getTmuxCommand as x, getManagedTmuxSocketName as y, sendKeysAsync as z };
1253
+ export { init_child_env as $, listPaneValues as A, sendKeysAsync as B, getWindowDimensions as C, killSession as D, isPaneDead as E, parseTmuxPaneRecords as F, paneTreeHasHarnessProcess as G, sessionExists as H, querySessionSync as I, init_ui_theme as J, colorFgBgForTheme as K, resizeWindow as L, listSessionNames as M, listSessions as N, killSessionSync as O, listSessionsSync as P, buildChildEnvWithoutTmuxSync as Q, sendEscapeKeyAsync as R, getTmuxConfigMode as S, isHarnessProcessAlive as T, sessionExistsSync as U, sendRawKeystroke as V, setOption as W, BLANKED_PROVIDER_ENV as X, setUiTheme as Y, buildChildEnvSync as Z, getAgentSessions as _, capturePaneSync as a, getTmuxBaseArgs as b, createSessionSync as c, ensureManagedTmuxContextOnce as d, ensureOverdeckTmuxServerAsync as f, findManagedServerPidSync as g, exactSession as h, capturePane as i, listPaneValuesSync as j, listAllPaneRecords as k, deliveryVerifyLine as l, exactPaneTarget as m, buildTmuxArgs as n, capturePaneText as o, ensureOverdeckTmuxServerSync as p, getUiThemeSync as q, buildTmuxCommandString as r, createSession as s, MessageDeliveryFailed as t, detectTerminalApiErrorSync as u, getManagedTmuxConfigPath as v, init_tmux as w, getTmuxCommand as x, getManagedTmuxSocketName as y, sendKeys as z };
1222
1254
 
1223
- //# sourceMappingURL=tmux-L5LgvGLp.js.map
1255
+ //# sourceMappingURL=tmux-ftABRAmc.js.map
@@ -1,5 +1,5 @@
1
1
  import { t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { r as require_token_error, t as require_token_util } from "./token-util-DI8sGlmF.js";
2
+ import { r as require_token_error, t as require_token_util } from "./token-util-CTmczIfW.js";
3
3
  //#region ../../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token.js
4
4
  var require_token = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5
5
  var __defProp = Object.defineProperty;
@@ -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-BkQLy4yS.js.map
57
+ //# sourceMappingURL=token-CsOhvw42.js.map
@@ -432,4 +432,4 @@ var require_token_util = /* @__PURE__ */ __commonJSMin(((exports, module) => {
432
432
  //#endregion
433
433
  export { require_auth_errors as n, require_token_error as r, require_token_util as t };
434
434
 
435
- //# sourceMappingURL=token-util-DI8sGlmF.js.map
435
+ //# sourceMappingURL=token-util-CTmczIfW.js.map
@@ -0,0 +1,3 @@
1
+ import { t as require_token_util } from "./token-util-CTmczIfW.js";
2
+ export default require_token_util();
3
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Hn as init_projects, Jn as loadProjectsConfigSync, Nn as getIssuePrefix, f as loadConfigSync, t as init_config_yaml } from "./config-yaml-ig8Nwtiw.js";
2
+ import { Tn as init_projects, f as loadConfigSync, gn as getIssuePrefix, jn as loadProjectsConfigSync, t as init_config_yaml } from "./config-yaml-DvyMuOle.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-DdT-nUAM.js.map
145
+ //# sourceMappingURL=tracker-config-B4itFzDo.js.map
@@ -1,3 +1,3 @@
1
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CawsPSS2.js";
1
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-tnxxqROg.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 { Hn as init_projects, Jn as loadProjectsConfigSync, Nn as getIssuePrefix, dr as extractPrefixSync, fr as init_issue_id, jr as init_errors, mr as parseIssueIdSync, ur as extractNumberSync } from "./config-yaml-ig8Nwtiw.js";
2
+ import { Jn as extractPrefixSync, Tn as init_projects, Yn as init_issue_id, Zn as parseIssueIdSync, gn as getIssuePrefix, jn as loadProjectsConfigSync, mr as init_errors, qn as extractNumberSync } from "./config-yaml-DvyMuOle.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-CawsPSS2.js.map
123
+ //# sourceMappingURL=tracker-utils-tnxxqROg.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-C6mJckNs.js.map
72
+ //# sourceMappingURL=traefik-connect-m73vGebA.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { jr as init_errors, kr as TrackerError } from "./config-yaml-ig8Nwtiw.js";
3
- import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-Bigl_-Lk.js";
2
+ import { fr as TrackerError, mr as init_errors } from "./config-yaml-DvyMuOle.js";
3
+ import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-cEGcO6UT.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-IdK1iTHx.js.map
220
+ //# sourceMappingURL=tunnel-B2vxjx_b.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_tunnel, r as removeTunnelIngress } from "./tunnel-IdK1iTHx.js";
1
+ import { n as init_tunnel, r as removeTunnelIngress } from "./tunnel-B2vxjx_b.js";
2
2
  init_tunnel();
3
3
  export { removeTunnelIngress };
@@ -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-7-GnJn0t.js.map
62
+ //# sourceMappingURL=types-BBNjPcqU.js.map
@@ -1,17 +1,17 @@
1
- import { Hn as init_projects, d as loadConfigNoMigration, kn as findProjectByPathSync, t as init_config_yaml, tt as resolveModel } from "./config-yaml-ig8Nwtiw.js";
2
- import { n as getDashboardIdentity, t as recordDeaconNudge } from "./deacon-nudge-log-D6K9K-rE.js";
3
- import { D as killSession, E as isPaneDead, V as sessionExists, w as init_tmux } from "./tmux-L5LgvGLp.js";
4
- import { L as messageAgent, s as init_agents } from "./queries-ZABd5aXP.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-Do8_q32h.js";
6
- import { A as init_vbrief_index, M as readVBriefDocument, k as findVBriefByIssue } from "./io-DQR9PMgS.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-bYpM9-kZ.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-D_odMIaC.js";
9
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-D5FVQTmy.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-Br0Z5S6R.js";
11
- import { t as listSubstrateBugWeights } from "./substrate-bug-weights-service-CpIZILj9.js";
12
- import { C as writeLatestFlywheelStatus, S as writeFlywheelLaunchMetadata, _ as nextFlywheelRunId, a as loadResumeSessionId, b as resolveLiveFlywheelRunId, c as saveResumeSessionId, d as abortFlywheelRun, g as listFlywheelRuns, l as spawnFlywheelAgent, p as getFlywheelRunDetail, r as isFlywheelDevcontainerRuntime, t as FLYWHEEL_ORCHESTRATOR_AGENT_ID, y as readFlywheelLaunchMetadata } from "./flywheel-COR0mbRI.js";
13
- import { t as extractACFromDocument } from "./acceptance-criteria-BH7ac_1G.js";
14
- import { n as ensureDevcontainerSync, r as init_ensure_devcontainer } from "./ensure-devcontainer-V5JWaAva.js";
1
+ import { Tn as init_projects, d as loadConfigNoMigration, fn as findProjectByPathSync, t as init_config_yaml, tt as resolveModel } from "./config-yaml-DvyMuOle.js";
2
+ import { n as getDashboardIdentity, t as recordDeaconNudge } from "./deacon-nudge-log-Bjg8U4Y9.js";
3
+ import { D as killSession, E as isPaneDead, H as sessionExists, w as init_tmux } from "./tmux-ftABRAmc.js";
4
+ import { X as messageAgent, b as init_agents } from "./queries-6d7Cdtm7.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-DZ9dojJn.js";
6
+ import { A as init_xbrief_index, M as readXBriefDocument, k as findXBriefByIssue } from "./io-B3_AHDfr.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-DbOs1e9Q.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-aP1ANIlI.js";
9
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-qHJBhy3Z.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-D2743cp8.js";
11
+ import { t as listSubstrateBugWeights } from "./substrate-bug-weights-service-BH66lhm7.js";
12
+ import { C as writeLatestFlywheelStatus, S as writeFlywheelLaunchMetadata, _ as nextFlywheelRunId, a as loadResumeSessionId, b as resolveLiveFlywheelRunId, c as saveResumeSessionId, d as abortFlywheelRun, g as listFlywheelRuns, l as spawnFlywheelAgent, p as getFlywheelRunDetail, r as isFlywheelDevcontainerRuntime, t as FLYWHEEL_ORCHESTRATOR_AGENT_ID, y as readFlywheelLaunchMetadata } from "./flywheel-DSSpWmqF.js";
13
+ import { t as extractACFromDocument } from "./acceptance-criteria-DOA0KgXx.js";
14
+ import { n as ensureDevcontainerSync, r as init_ensure_devcontainer } from "./ensure-devcontainer-DseivYEy.js";
15
15
  import { isAbsolute, relative, resolve, sep } from "node:path";
16
16
  import { Effect } from "effect";
17
17
  import { existsSync } from "fs";
@@ -31,7 +31,7 @@ init_projects();
31
31
  init_config_yaml();
32
32
  init_tmux();
33
33
  init_merge_sync();
34
- init_vbrief_index();
34
+ init_xbrief_index();
35
35
  init_harness_resolve();
36
36
  init_agents();
37
37
  init_discovered_sessions();
@@ -176,15 +176,15 @@ async function runInline(operation, payload, onProgress) {
176
176
  });
177
177
  }
178
178
  case "getArtifactBySlug": {
179
- const { getArtifactBySlugJob } = await import("./artifact-index-jobs-CDBFL4OU.js");
179
+ const { getArtifactBySlugJob } = await import("./artifact-index-jobs-C-xy7Z5v.js");
180
180
  return getArtifactBySlugJob(payload);
181
181
  }
182
182
  case "listArtifactsForWorkspaceOrIssue": {
183
- const { listArtifactsForWorkspaceOrIssueJob } = await import("./artifact-index-jobs-CDBFL4OU.js");
183
+ const { listArtifactsForWorkspaceOrIssueJob } = await import("./artifact-index-jobs-C-xy7Z5v.js");
184
184
  return listArtifactsForWorkspaceOrIssueJob(payload);
185
185
  }
186
186
  case "unshareArtifactBySlug": {
187
- const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-CDBFL4OU.js");
187
+ const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-C-xy7Z5v.js");
188
188
  return unshareArtifactBySlugJob(payload);
189
189
  }
190
190
  }
@@ -424,12 +424,12 @@ async function pauseFlywheelRunForDashboard() {
424
424
  if (before.activeRunId) try {
425
425
  const { readFile } = await import("node:fs/promises");
426
426
  const { join } = await import("node:path");
427
- const { getAgentDir } = await import("./agents-DyHKlq1I.js");
427
+ const { getAgentDir } = await import("./agents-FlIgQ3ql.js");
428
428
  const sessionId = (await readFile(join(getAgentDir(FLYWHEEL_ORCHESTRATOR_AGENT_ID), "session.id"), "utf-8")).trim();
429
429
  if (sessionId) await saveResumeSessionId(before.activeRunId, sessionId);
430
430
  } catch {}
431
431
  await setPaused(true);
432
- await import("./agents-DyHKlq1I.js").then(({ stopAgent }) => Effect.runPromise(stopAgent(FLYWHEEL_ORCHESTRATOR_AGENT_ID)));
432
+ await import("./agents-FlIgQ3ql.js").then(({ stopAgent }) => Effect.runPromise(stopAgent(FLYWHEEL_ORCHESTRATOR_AGENT_ID)));
433
433
  return {
434
434
  before,
435
435
  after: await readGateSnapshot(),
@@ -439,7 +439,7 @@ async function pauseFlywheelRunForDashboard() {
439
439
  async function abortFlywheelRunForDashboard() {
440
440
  const candidate = await getActiveRunId();
441
441
  if (!candidate) return { aborted: await resolveLiveFlywheelRunId() ?? null };
442
- const { stopAgent } = await import("./agents-DyHKlq1I.js");
442
+ const { stopAgent } = await import("./agents-FlIgQ3ql.js");
443
443
  await Effect.runPromise(stopAgent(FLYWHEEL_ORCHESTRATOR_AGENT_ID));
444
444
  await abortFlywheelRun(candidate);
445
445
  return { aborted: candidate };
@@ -1870,7 +1870,7 @@ function canStartUatTrainReconciler() {
1870
1870
  async function getReadySet() {
1871
1871
  const status = await readCurrentFlywheelStatusForDashboard();
1872
1872
  if (!status) return null;
1873
- const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-CNKAY489.js");
1873
+ const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-C-6zRLvM.js");
1874
1874
  const fromVerbs = (await Effect.runPromise(computeMergeQueue(status.activePipeline, projectRoot(), {
1875
1875
  getPrUrl: resolveMergeQueuePrUrl,
1876
1876
  onIneligible: (issueId, reason) => console.log(`[uat-train] ${issueId} has a merge verb but is not merge-eligible (${reason}) — excluded from the ready set`)
@@ -1896,8 +1896,8 @@ async function getReadySet() {
1896
1896
  */
1897
1897
  async function sweepEligibleFeatures(alreadyIncluded) {
1898
1898
  try {
1899
- const { loadReviewStatuses, mergeGateEligibility } = await import("./review-status-Bnh-rdkY.js");
1900
- const { resolveProjectFromIssueSync } = await import("./projects-BKkwpH6q.js");
1899
+ const { loadReviewStatuses, mergeGateEligibility } = await import("./review-status-C6n6-9f_.js");
1900
+ const { resolveProjectFromIssueSync } = await import("./projects-9SkRpES9.js");
1901
1901
  const { execFile } = await import("node:child_process");
1902
1902
  const { promisify } = await import("node:util");
1903
1903
  const execFileAsync = promisify(execFile);
@@ -2029,14 +2029,14 @@ async function loadAcceptanceCriteriaCache(issueIds) {
2029
2029
  acceptanceCriteriaByIssue.delete(upperIssueId);
2030
2030
  }
2031
2031
  try {
2032
- const found = await Effect.runPromise(findVBriefByIssue(root, upperIssueId));
2032
+ const found = await Effect.runPromise(findXBriefByIssue(root, upperIssueId));
2033
2033
  if (!found) {
2034
2034
  acceptanceCriteriaByIssue.delete(upperIssueId);
2035
2035
  cache.set(upperIssueId, []);
2036
2036
  return;
2037
2037
  }
2038
2038
  const { mtimeMs } = await stat(found.path);
2039
- const criteria = extractACFromDocument(await Effect.runPromise(readVBriefDocument(found.path))).map((ac) => ({
2039
+ const criteria = extractACFromDocument(await Effect.runPromise(readXBriefDocument(found.path))).map((ac) => ({
2040
2040
  title: ac.title,
2041
2041
  status: ac.status
2042
2042
  }));
@@ -2131,7 +2131,7 @@ async function postUatGenerationStackPayload(name) {
2131
2131
  }
2132
2132
  async function postUatGenerationPromotePayload(name, firePostMerge) {
2133
2133
  const root = projectRoot();
2134
- const { reviewRecordEligibility } = await import("./flywheel-merge-order-CNKAY489.js");
2134
+ const { reviewRecordEligibility } = await import("./flywheel-merge-order-C-6zRLvM.js");
2135
2135
  const result = await promoteUatGeneration(name, root, {
2136
2136
  git: buildUatPromoteGitDeps(root),
2137
2137
  store: {
@@ -2149,4 +2149,4 @@ async function postUatGenerationPromotePayload(name, firePostMerge) {
2149
2149
  //#endregion
2150
2150
  export { 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 };
2151
2151
 
2152
- //# sourceMappingURL=uat-train-j0cPeMSj.js.map
2152
+ //# sourceMappingURL=uat-train-CuEn0t9M.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-j0cPeMSj.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-CuEn0t9M.js";
2
2
  export { canStartUatTrainReconciler, getUatCandidatePayload, getUatGenerationsPayload, postUatGenerationPromotePayload, postUatGenerationStackPayload, resolveUatProjectRoot, runUatTrainReconcile, startUatTrainReconciler, stopUatTrainReconciler };