@overdeck/desktop 0.45.21 → 0.45.22

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 (344) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-CJIFA8Vg.js → acceptance-criteria-BH7ac_1G.js} +2 -2
  3. package/server/{advancing-selfheal-CPOBO5ZS.js → advancing-selfheal-cSvXNZLZ.js} +6 -6
  4. package/server/{agent-gc-D6PUckBB.js → agent-gc-Dj2gncak.js} +4 -4
  5. package/server/{agent-state-BV_6RHnO.js → agent-state-Co5Sy2Fw.js} +1 -1
  6. package/server/{agent-state-service-DHwemt96.js → agent-state-service-CsQ07Pxe.js} +1 -1
  7. package/server/{agent-state-service-6MFQqnFy.js → agent-state-service-DistflNn.js} +5 -5
  8. package/server/{agents-DbrHWunF.js → agents-DXdHmRTC.js} +4 -4
  9. package/server/{agents-Czz6R57Z.js → agents-DyHKlq1I.js} +1 -1
  10. package/server/{archive-planning-BOnwJq8M.js → archive-planning-BvDuWNMo.js} +5 -5
  11. package/server/{archive-planning-MPpvQJL4.js → archive-planning-Cp_DC1j-.js} +1 -1
  12. package/server/{artifact-index-jobs-BOoySTKD.js → artifact-index-jobs-CDBFL4OU.js} +2 -2
  13. package/server/{backlog-auto-trigger-BUaFI44J.js → backlog-auto-trigger-DmA1IbYf.js} +3 -3
  14. package/server/{behavior-Dg-D8eBG.js → behavior-CGj16clS.js} +2 -2
  15. package/server/{briefing-freshness-OouGbJ7d.js → briefing-freshness-C12WgkaB.js} +2 -2
  16. package/server/{build-info-Cv6CI7Gu.js → build-info-BRpqQvNd.js} +1 -1
  17. package/server/{build-info-27NlbKhV.js → build-info-NU3KbXYw.js} +3 -3
  18. package/server/{checkpoint-manager-D64fCC4p.js → checkpoint-manager-CTPjAmtH.js} +2 -2
  19. package/server/{checkpoint-manager-C7mFCY_E.js → checkpoint-manager-rOgT98WY.js} +1 -1
  20. package/server/checkpoint-worker.js +1 -1
  21. package/server/{checkpoints-DwZqT2qQ.js → checkpoints-B5jFNi2G.js} +1 -1
  22. package/server/{checkpoints-Vh-J15ge.js → checkpoints-BJum14fs.js} +2 -2
  23. package/server/{claude-hooks-provision-CS5W_dhI.js → claude-hooks-provision-BhwWK-TQ.js} +1 -1
  24. package/server/{claude-hooks-provision-BVLGfHrv.js → claude-hooks-provision-D7p5WcKZ.js} +2 -2
  25. package/server/{claude-permissions-C2OrLYKL.js → claude-permissions-nSFKH78M.js} +2 -2
  26. package/server/{claude-settings-overlay-DX-fMFpC.js → claude-settings-overlay-BI_UIke0.js} +2 -2
  27. package/server/{claude-settings-overlay-DWXjafJh.js → claude-settings-overlay-DHBwjS1X.js} +1 -1
  28. package/server/cli-BRORS9qY.js +3 -0
  29. package/server/{cli-mvpEOb3w.js → cli-CbKNkFE5.js} +9 -9
  30. package/server/{cliproxy-Dvsr4ZkW.js → cliproxy-Brf_5MuG.js} +2 -2
  31. package/server/{cliproxy-7g1nObvB.js → cliproxy-bONZDBbC.js} +1 -1
  32. package/server/{close-issue-8F6uawYj.js → close-issue-CxReRxIc.js} +5 -5
  33. package/server/{closed-issue-reaper-BaYQYF6w.js → closed-issue-reaper-CQ3kqha7.js} +9 -9
  34. package/server/{closed-issue-reaper-BhV-r-tC.js → closed-issue-reaper-DXP2Xyv3.js} +1 -1
  35. package/server/{codex-D_UBEOwL.js → codex-CbmztVcc.js} +9 -6
  36. package/server/{codex-BBeZ8c3s.js → codex-DNyiQDKW.js} +1 -1
  37. package/server/{codex-parser-BTzlOZiV.js → codex-parser-jl8AeAmB.js} +2 -2
  38. package/server/{config-nAB_F-Gp.js → config-BJKocXKd.js} +1 -1
  39. package/server/{config-G1TOMJZA.js → config-DeTsoZdR.js} +2 -2
  40. package/server/{config-CrduXs4a.js → config-q4Gvd8dq.js} +2 -2
  41. package/server/{config-yaml-Ciyp2mYe.js → config-yaml-ig8Nwtiw.js} +124 -27
  42. package/server/{conflict-gate-BLUNMs1i.js → conflict-gate-CFqPVxEg.js} +3 -3
  43. package/server/{conflict-gate-BKalpcjL.js → conflict-gate-CHU9K1vU.js} +1 -1
  44. package/server/{context-layers-Cg9ZgVfx.js → context-layers-15gDOk20.js} +3 -3
  45. package/server/{context-layers-YNpf6Q_I.js → context-layers-DlQKkHH2.js} +2 -2
  46. package/server/{control-settings-D_79A6gp.js → control-settings-D_odMIaC.js} +4 -4
  47. package/server/{conversation-compaction-DiuZbIUB.js → conversation-compaction-B6YSRLda.js} +8 -8
  48. package/server/{conversation-compaction-CMIeWW4_.js → conversation-compaction-CN4-5YYt.js} +1 -1
  49. package/server/{conversation-service-DQybSPUK.js → conversation-service-C3avRVEr.js} +6 -6
  50. package/server/{conversation-service-CWk8mEym.js → conversation-service-Dq33SYEj.js} +1 -1
  51. package/server/{conversations-BJ-t3BRm.js → conversations-H9if0bCQ.js} +1 -1
  52. package/server/{conversations-BUgGvqVL.js → conversations-bYpM9-kZ.js} +4 -4
  53. package/server/{cost-Drm7qeD5.js → cost-Codk1pc2.js} +2 -2
  54. package/server/{cost-sync-DzHP6zaR.js → cost-sync-D_cre6WM.js} +3 -3
  55. package/server/{cost-jJ2cgDcG.js → cost-wH46-WsJ.js} +3 -3
  56. package/server/{dag-DIji6O2b.js → dag-CJpgf9A3.js} +2 -2
  57. package/server/{dangerous-git-ops-BebB-61h.js → dangerous-git-ops-D6AF-Hg_.js} +1 -1
  58. package/server/dashboard-db-worker.js +7 -7
  59. package/server/{deacon-pleYrvIm.js → deacon-B8HbQdqU.js} +3 -3
  60. package/server/{deacon-1s7bM5zn.js → deacon-CkT_kznS.js} +1377 -407
  61. package/server/{deacon-nudge-log-C5VCKtyi.js → deacon-nudge-log-D6K9K-rE.js} +3 -3
  62. package/server/{deacon-swarm-DmA3rJ7k.js → deacon-swarm-BryRr6AO.js} +13 -13
  63. package/server/deacon-swarm-CV54eNmU.js +2 -0
  64. package/server/deacon.js +8 -8
  65. package/server/{deploy-patrol-DmM6F-yw.js → deploy-patrol-1IrZxicY.js} +6 -6
  66. package/server/{deploy-window-ClLq1RYf.js → deploy-window-7ZYHh7Zp.js} +1 -1
  67. package/server/{deploy-window-jw4S_Y-c.js → deploy-window-wDf4UgHt.js} +6 -6
  68. package/server/{dev-supervisor-Do2Stz49.js → dev-supervisor-C7p9kEpc.js} +2 -2
  69. package/server/{devcontainer-renderer-D8ylupco.js → devcontainer-renderer-CNmQy0pL.js} +3 -3
  70. package/server/{dist-yfR7G1BL.js → dist-D-Ed5yVw.js} +1 -1
  71. package/server/dist-j64RzSrQ.js +3 -0
  72. package/server/{docker-ClwPQaba.js → docker-BCZ89M9X.js} +2 -2
  73. package/server/{dod-BLphkhjs.js → dod-DbJLYcHv.js} +1 -1
  74. package/server/{ensure-devcontainer-BA3bICoY.js → ensure-devcontainer-Cs6W9Yzj.js} +1 -1
  75. package/server/{ensure-devcontainer-CFpQatOc.js → ensure-devcontainer-V5JWaAva.js} +4 -4
  76. package/server/{esm-shims-BZw-fTQ6.js → esm-shims-dTeNdq7X.js} +1 -1
  77. package/server/{event-store-DABarGNz.js → event-store-CpBGsO6_.js} +1 -1
  78. package/server/{event-store-BVnON3vf.js → event-store-TnWdydfB.js} +3 -3
  79. package/server/{events-CmERlnwn.js → events-DSUdR-04.js} +3 -3
  80. package/server/{events-LGeUehYW.js → events-Dsuv6qyB.js} +1 -1
  81. package/server/{factory-CQNprtHe.js → factory-BMrK4TrE.js} +4 -4
  82. package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B-CI9hgE.js} +4 -4
  83. package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-B972ph_A.js} +2 -2
  84. package/server/{features--fOza5g5.js → features-Bc-Bmiye.js} +2 -2
  85. package/server/{feedback-target-Dn9vfPpz.js → feedback-target-DS6NUuSs.js} +1 -1
  86. package/server/{feedback-target-Dqik2WTe.js → feedback-target-DZ-iAnAa.js} +7 -7
  87. package/server/{feedback-writer-Wlq5-qgS.js → feedback-writer-BXP6g75N.js} +4 -4
  88. package/server/{feedback-writer-DDQNV8uc.js → feedback-writer-Bx5z11mF.js} +1 -1
  89. package/server/{flywheel-DPUc8r3V.js → flywheel-6WHU4O7A.js} +14 -14
  90. package/server/{flywheel-1Wd8WDlh.js → flywheel-COR0mbRI.js} +12 -12
  91. package/server/{flywheel-Q-38YhZG.js → flywheel-Ctr5uuvo.js} +1 -1
  92. package/server/{flywheel-merge-order-CeBuX0EJ.js → flywheel-merge-order-CNKAY489.js} +1 -1
  93. package/server/{flywheel-merge-order-4SqOXFAr.js → flywheel-merge-order-CTgHeg-W.js} +7 -7
  94. package/server/forge-B0_opi-V.js +2 -0
  95. package/server/{forge-DBbDpiYc.js → forge-B1S_KZv4.js} +2 -2
  96. package/server/{from-hh6vTBGl.js → from-DpwQ-sc3.js} +1 -1
  97. package/server/{fts-db-6ponMie2.js → fts-db-DmAcuCkV.js} +2 -2
  98. package/server/{fts-operations-KIRK165y.js → fts-operations-7d_RkmWp.js} +2 -2
  99. package/server/git-utils-Cc3FHDKd.js +198 -0
  100. package/server/{git-utils-DmF5xkj8.js → git-utils-CsKGnzFA.js} +1 -1
  101. package/server/{github-app-B3yfECo8.js → github-app-CDPtGF7J.js} +2 -2
  102. package/server/{github-app-CeSVFL6C.js → github-app-CU14oYzP.js} +1 -1
  103. package/server/{github-client-4A6FgA8O.js → github-client-CwBZZ3t7.js} +1 -1
  104. package/server/{github-client-Dslipypz.js → github-client-XjTJbBm7.js} +2 -2
  105. package/server/{github-pr-lookup-DBP0YHMr.js → github-pr-lookup-CFGeVhqv.js} +2 -2
  106. package/server/harness-binary-B2CTcD84.js +106 -0
  107. package/server/{harness-resolve-BGpO-OVM.js → harness-resolve-D5FVQTmy.js} +9 -15
  108. package/server/{health-events-CnwV_SSz.js → health-events-C1whmd58.js} +1 -1
  109. package/server/{health-events-CZGZ5I-A.js → health-events-DREeevle.js} +2 -2
  110. package/server/{hooks-DvX33gY_.js → hooks-B-HItBiS.js} +1 -1
  111. package/server/{hooks-CoNscX84.js → hooks-yxRsjk-z.js} +2 -2
  112. package/server/hume-BmhvfVbV.js +3 -0
  113. package/server/{hume-DSJt5eA_.js → hume-Dz_OymXE.js} +2 -2
  114. package/server/{idle-stack-reaper-5DVRoY6P.js → idle-stack-reaper-DrCv0OAG.js} +1 -1
  115. package/server/{idle-stack-reaper-BfL8HqYy.js → idle-stack-reaper-Yf34xXxY.js} +2 -2
  116. package/server/{in-flight-guard-tVGiI5ee.js → in-flight-guard-BoWm66Kh.js} +2 -2
  117. package/server/{infra-DN2wSxle.js → infra-D4iNWMA5.js} +4 -4
  118. package/server/{injection-DK9zh_HL.js → injection-BVNa4MQW.js} +1 -1
  119. package/server/{injection-DtlT8Akv.js → injection-D7T75Pye.js} +7 -7
  120. package/server/{inspect-agent-DKByUS_F.js → inspect-agent-BXCgNeZ4.js} +13 -9
  121. package/server/inspect-agent-Dq0z1k3H.js +2 -0
  122. package/server/{internal-token-7bYL5v6K.js → internal-token-C9DdEOKY.js} +1 -1
  123. package/server/{internal-token-DhfFiwW7.js → internal-token-CXsfxslp.js} +2 -2
  124. package/server/{io-BiM-7Zsx.js → io-DQR9PMgS.js} +3 -3
  125. package/server/{issue-closed-Dfw3QDyZ.js → issue-closed-DtmJM0D0.js} +7 -7
  126. package/server/{issue-lifecycle-ytsEdDlK.js → issue-lifecycle-8PSS9Anq.js} +1 -1
  127. package/server/{issue-lifecycle-B7HZWnTA.js → issue-lifecycle-CeyW_HoD.js} +21 -21
  128. package/server/{issue-service-singleton-D5EB5eYr.js → issue-service-singleton-DBZabEl7.js} +1 -1
  129. package/server/{issue-service-singleton-CPESc4Or.js → issue-service-singleton-D_RVYBuL.js} +8 -8
  130. package/server/{issues-XYtFMxrH.js → issues-pDW9VUNz.js} +2 -2
  131. package/server/{jsonl-parser-DJV2eZUP.js → jsonl-parser-C3HVNR5d.js} +3 -3
  132. package/server/{label-cleanup-CJ4m8iRU.js → label-cleanup-DPwiZlWo.js} +3 -3
  133. package/server/{label-reconciler-CNf3Ylm3.js → label-reconciler-Df1ZduPH.js} +4 -4
  134. package/server/{launcher-generator-5DJRiovn.js → launcher-generator-COgR2By1.js} +6 -6
  135. package/server/{layers-cZx7ibtV.js → layers-Cp1To4L8.js} +2 -2
  136. package/server/{lifecycle-CE7619Xw.js → lifecycle-CtPDcZ9u.js} +6 -6
  137. package/server/{lifecycle-io-CUpsxG0p.js → lifecycle-io-DmY2qwCn.js} +1 -1
  138. package/server/{lifecycle-io-DMurK4oM.js → lifecycle-io-taIb0PoH.js} +4 -4
  139. package/server/{linear-client-BLyN-NiP.js → linear-client-DsFkIxee.js} +2 -2
  140. package/server/{linear-client-Bj1l4FOA.js → linear-client-YwZMDIwQ.js} +1 -1
  141. package/server/memory-fts-worker.js +1 -1
  142. package/server/{merge-CwX2_AWm.js → merge-BwsyNRJV.js} +1 -1
  143. package/server/{merge-hSC2BENe.js → merge-C1t-bspg.js} +3 -3
  144. package/server/{merge-agent-CnORPiri.js → merge-agent-B-SnXOoc.js} +1 -1
  145. package/server/{merge-agent-DnBsms_V.js → merge-agent-DDiIjzk-.js} +369 -213
  146. package/server/{merge-batch-C2w2U2eK.js → merge-batch-Byt-QnEl.js} +1 -1
  147. package/server/{merge-blockers-DhRgh76x.js → merge-blockers-BYjeXrVN.js} +2 -2
  148. package/server/merge-ops-DwWCkSgo.js +2 -0
  149. package/server/{merge-rebase-CE-ZyOMY.js → merge-rebase-Cm6fXaZN.js} +2 -2
  150. package/server/{merge-set-DHkzPCJU.js → merge-set-6LEglm6o.js} +1 -1
  151. package/server/{merge-set-D7YNU1ZB.js → merge-set-DiISXcC-.js} +3 -3
  152. package/server/{merge-sync-CpGA9Kg7.js → merge-sync-B95_4in_.js} +1 -1
  153. package/server/{merge-sync-De1FYva5.js → merge-sync-Do8_q32h.js} +2 -2
  154. package/server/{merge-train-SvkRJZ-k.js → merge-train-CKana8EH.js} +3 -3
  155. package/server/{merge-train-deps-CECJTElu.js → merge-train-deps-BgmqwIfA.js} +4 -4
  156. package/server/{merge-verification-B3meGcXF.js → merge-verification-CqnUzGEK.js} +4 -4
  157. package/server/{multipart-parser-ByTMgYV5.js → multipart-parser-tdOQDJ3o.js} +2 -2
  158. package/server/{no-resume-mode-BnInAFKs.js → no-resume-mode-BWOSZjWd.js} +1 -1
  159. package/server/node_modules/.package-lock.json +5 -5
  160. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +3 -3
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
  162. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +2 -2
  163. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
  164. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +5 -5
  165. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +6 -8
  166. package/server/{orphan-proposed-reconciler-CAfuWTA1.js → orphan-proposed-reconciler-DSvsJ5M7.js} +1 -1
  167. package/server/{orphan-proposed-reconciler-AxAGUouN.js → orphan-proposed-reconciler-xklgvNA7.js} +19 -12
  168. package/server/package-lock.json +6 -6
  169. package/server/package.json +1 -1
  170. package/server/{pan-dir-Rw17YjT1.js → pan-dir-DOcf6ug3.js} +4 -4
  171. package/server/{paths-FP8v3lTz.js → paths-DooHpt9p.js} +2 -2
  172. package/server/{pickup-xi3KTLaJ.js → pickup-CaskQ7j6.js} +2 -2
  173. package/server/{pipeline-membership-BtKMNY7v.js → pipeline-membership-1LGRjo-k.js} +11 -8
  174. package/server/{pipeline-notifier-BM2HLF7B.js → pipeline-notifier-B6FVsYF9.js} +2 -2
  175. package/server/{pipeline-notifier-dQ-U4NSb.js → pipeline-notifier-CZsrU_nj.js} +1 -1
  176. package/server/{project-pipelines-B59NfN44.js → project-pipelines-CtNG_rvs.js} +2 -2
  177. package/server/projects-BKkwpH6q.js +3 -0
  178. package/server/{prompts-CbqaVjbe.js → prompts-EvhMeeHG.js} +2 -2
  179. package/server/{providers-d3pwXGVE.js → providers-BDDPULlp.js} +7 -7
  180. package/server/providers-DNSQqy2V.js +3 -0
  181. package/server/public/assets/{chunk-BO2N2NFS-BxYSL7J-.js → chunk-BO2N2NFS-sym_ufXe.js} +4 -4
  182. package/server/public/assets/{diagram-OG6HWLK6-C_F9Q2as.js → diagram-OG6HWLK6-CQJPBNBu.js} +1 -1
  183. package/server/public/assets/{dist-DQNg4CiF.js → dist-Bio7THQU.js} +1 -1
  184. package/server/public/assets/{dist-CLSlc6cV.js → dist-DukGS2YZ.js} +3 -3
  185. package/server/public/assets/{ganttDiagram-6RSMTGT7-Cq0my-0C.js → ganttDiagram-6RSMTGT7-D4lWwte3.js} +1 -1
  186. package/server/public/assets/{highlighted-body-OFNGDK62-eZC03dGh.js → highlighted-body-OFNGDK62-CaLboCt5.js} +1 -1
  187. package/server/public/assets/{index-C6NLz_1S.css → index-Bdc4V9ba.css} +1 -1
  188. package/server/public/assets/{index-SLYGA8AQ.js → index-Bwejq-5s.js} +147 -145
  189. package/server/public/assets/{linear-6Fi3qnGg.js → linear-qUWmMZ-c.js} +1 -1
  190. package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +1 -0
  191. package/server/public/assets/{pieDiagram-4H26LBE5-Dpmc6xsv.js → pieDiagram-4H26LBE5-C4zYulEm.js} +1 -1
  192. package/server/public/assets/{prod-ojHllFvN.js → prod-C8VtLuWC.js} +4 -4
  193. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Ulr9gON5.js → quadrantDiagram-W4KKPZXB-qP04zyZC.js} +1 -1
  194. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CwdHGXfL.js → sankeyDiagram-5OEKKPKP-eMPTX_cG.js} +1 -1
  195. package/server/public/assets/{xychartDiagram-2RQKCTM6-r-bEDzJh.js → xychartDiagram-2RQKCTM6-Dme1PIt6.js} +1 -1
  196. package/server/public/index.html +54 -10
  197. package/server/{pull-requests-CjjPj7v6.js → pull-requests-8z2N1UOV.js} +3 -3
  198. package/server/{pull-requests-D3N6HQzI.js → pull-requests-By_BteaL.js} +1 -1
  199. package/server/{queries-B5hl7lMQ.js → queries-ZABd5aXP.js} +95 -71
  200. package/server/rally-OSJXdiHK.js +3 -0
  201. package/server/{rally-api-DGaFz5L5.js → rally-api-DqKqIMNR.js} +2 -2
  202. package/server/{rally-api-CKr0O4DJ.js → rally-api-xHazRk0d.js} +1 -1
  203. package/server/{rally-client-Cqf6EX_r.js → rally-client-CGWEHaPd.js} +1 -1
  204. package/server/{rally-client-SVbjGvqj.js → rally-client-COYz1vYR.js} +4 -4
  205. package/server/{rally-Dp0Gb1DN.js → rally-i_goYmiA.js} +3 -3
  206. package/server/reap-terminal-sessions-CaMkFOIH.js +4 -0
  207. package/server/{reap-terminal-sessions-CjqRAGw7.js → reap-terminal-sessions-DG9eiMVz.js} +11 -28
  208. package/server/{rebuild-stack-DjdpALr1.js → rebuild-stack-CKjJAI8L.js} +1 -1
  209. package/server/{rebuild-stack-DHqCLvLX.js → rebuild-stack-JUm0jqYP.js} +6 -6
  210. package/server/{reconstruct-cache-BqrCQt0o.js → reconstruct-cache-wU79aCee.js} +6 -6
  211. package/server/record-rwK-nKv_.js +3 -0
  212. package/server/{record-update-RviRDSNs.js → record-update-Crz74r-6.js} +2 -2
  213. package/server/{record-update-BlB8mpKO.js → record-update-D3N6WMFR.js} +1 -1
  214. package/server/{recovery-trip-l1Hsi37x.js → recovery-trip-DkzJSej9.js} +2 -2
  215. package/server/{release-engine-CSI4K6Oj.js → release-engine-DMINVN8S.js} +5 -5
  216. package/server/{release-set-BywwggrE.js → release-set-DeUSOEHy.js} +3 -3
  217. package/server/{remote-DYziAkiZ.js → remote-Dr5kGYSZ.js} +3 -3
  218. package/server/{remote-agents-CZ2rc8I0.js → remote-agents-Ct_WOyke.js} +6 -6
  219. package/server/{remote-agents-BNORDWAX.js → remote-agents-D6O_zETW.js} +1 -1
  220. package/server/{remote-cnoeuDWn.js → remote-b-c5bOce.js} +3 -3
  221. package/server/{remote-completion-W67FNQ-A.js → remote-completion-Dca3hAaa.js} +13 -13
  222. package/server/resume-wZZsWtzz.js +3 -0
  223. package/server/{review-agent-CSswH985.js → review-agent-CCum8sGe.js} +1 -1
  224. package/server/{review-agent-CqSqSHkU.js → review-agent-CThvgK2r.js} +23 -23
  225. package/server/{review-artifacts-BBgnd5df.js → review-artifacts-CXywD0F2.js} +5 -5
  226. package/server/{review-context-Ctp9BdNJ.js → review-context-OYfKUprb.js} +8 -8
  227. package/server/{review-status-DXeqFpk5.js → review-status-Bnh-rdkY.js} +1 -1
  228. package/server/{review-status-CCgPVK1h.js → review-status-DFRjDFef.js} +21 -37
  229. package/server/{review-status-enrichment-DtDRGpst.js → review-status-enrichment-crNAtIpL.js} +3 -3
  230. package/server/review-status-source-CxuEjLGg.js +39 -0
  231. package/server/{review-status-sync-C792ksoJ.js → review-status-sync-D60PJWNL.js} +1 -1
  232. package/server/{review-status-sync-jnLgd04F.js → review-status-sync-DpAMD_WO.js} +2 -2
  233. package/server/{review-verdict-feedback-CMsIpTpy.js → review-verdict-feedback-CpUZl5aE.js} +7 -7
  234. package/server/{review-verdict-feedback-D5lW0o3k.js → review-verdict-feedback-JImjut0z.js} +1 -1
  235. package/server/{rollup-B3kQmNpl.js → rollup-CZ02qgxk.js} +1 -1
  236. package/server/{rollup-CLj_AK9f.js → rollup-SyuF09e4.js} +8 -8
  237. package/server/{scanner-C4NeC4FE.js → scanner-Br0Z5S6R.js} +7 -7
  238. package/server/{sequence-io-Ce-6grIY.js → sequence-io-fxU0DlwW.js} +4 -4
  239. package/server/{sequencer-agent-Bpz0yGmG.js → sequencer-agent-B5YC5XVP.js} +5 -5
  240. package/server/server.js +583 -387
  241. package/server/{service-CqAY8Kmk.js → service-Bagb90KZ.js} +150 -47
  242. package/server/{session-fork-uNo4rMRA.js → session-fork-BqQxd-V6.js} +2 -2
  243. package/server/{session-history-DUehL3KN.js → session-history-XdS0JKp3.js} +4 -4
  244. package/server/{settings-DP2OYLXL.js → settings-BNbocWOg.js} +3 -3
  245. package/server/settings-BlUsVaUc.js +2 -0
  246. package/server/{settings-D9grjmaP.js → settings-uLc6DEYI.js} +2 -2
  247. package/server/{shadow-engineering-Bi_oIMtF.js → shadow-engineering-D4X_s3fA.js} +3 -3
  248. package/server/{shadow-state-a_ztFBJe.js → shadow-state-C_NkP-sa.js} +2 -2
  249. package/server/{shadow-state-CDxEuPlE.js → shadow-state-CbvsN3qG.js} +1 -1
  250. package/server/{shadow-utils-CyOg6_Xq.js → shadow-utils-CYMRPeRT.js} +2 -2
  251. package/server/{ship-log-DDcueaIR.js → ship-log-__QtAFXG.js} +1 -1
  252. package/server/{smart-compaction--Oj65Uov.js → smart-compaction-CLZOWin1.js} +7 -7
  253. package/server/{smart-compaction-C1_VVLEd.js → smart-compaction-jdMkG1vo.js} +1 -1
  254. package/server/{spawn-planning-session-LFtK2QCE.js → spawn-planning-session-8D6mE033.js} +1 -1
  255. package/server/{spawn-planning-session-AiUSsBnH.js → spawn-planning-session-D5OXo8pT.js} +19 -15
  256. package/server/{specialist-completion-qOgqdqXH.js → specialist-completion-CqmduO92.js} +1 -1
  257. package/server/{specialist-context-gjj8Z4Ii.js → specialist-context-CJ-QjFR-.js} +5 -5
  258. package/server/{specialist-handoff-logger-BsBNvVZv.js → specialist-handoff-logger-Dnjlwt7g.js} +2 -2
  259. package/server/{specialist-logs-CSLtvPx6.js → specialist-logs-CQnKzuZs.js} +3 -3
  260. package/server/{specialists-DAegTvRt.js → specialists-Bg9v4z3F.js} +122 -94
  261. package/server/{specialists-CYRwELzc.js → specialists-CwZHb5cb.js} +18 -18
  262. package/server/{specialists-D0VBf8g_.js → specialists-D0gGXMZx.js} +1 -1
  263. package/server/{specialists-C6WkeKFK.js → specialists-Dqe6_HE5.js} +1 -1
  264. package/server/specs-BhOKBzqk.js +3 -0
  265. package/server/{src-OLoJhUiJ.js → src-BMMoA_ba.js} +6 -6
  266. package/server/{src-BqTcrfO_.js → src-Bqdtd6po.js} +3 -3
  267. package/server/{src-Dpq1yFIl.js → src-k039WVYY.js} +337 -4
  268. package/server/{stack-health-I713ELld.js → stack-health-Bd06frFn.js} +1 -1
  269. package/server/{stack-health-DV_f-lK0.js → stack-health-C-ifC7b0.js} +2 -2
  270. package/server/{stale-task-claims-CQSKZVq0.js → stale-task-claims-L7pJkQFL.js} +4 -4
  271. package/server/{staleness-BbsGxmF2.js → staleness-BID1BKdr.js} +1 -1
  272. package/server/{staleness-zGp4P1hd.js → staleness-_Tr-GwdA.js} +1 -1
  273. package/server/{state-home-DixkE-up.js → state-home-CONQvZR0.js} +36 -23
  274. package/server/state-migrate-BeBW0KXA.js +478 -0
  275. package/server/{stuck-remediation-BWkK_O7A.js → stuck-remediation-CKnIryGT.js} +20 -18
  276. package/server/{stuck-remediation-CTPRC2S5.js → stuck-remediation-CsGD5Ksb.js} +1 -1
  277. package/server/{substrate-bug-weights-service-DXd0ID83.js → substrate-bug-weights-service-CpIZILj9.js} +3 -3
  278. package/server/{summary-fork-CdLn8Chr.js → summary-fork-agEMsPSo.js} +2 -2
  279. package/server/{summary-fork-f3DpgjXh.js → summary-fork-bX6ax6X7.js} +8 -8
  280. package/server/supervisor-COVHrBTg.js +2 -0
  281. package/server/{supervisor-Ch8CDuoF.js → supervisor-Ctt4eRYz.js} +3 -3
  282. package/server/{swarm-readiness-C9P2iPap.js → swarm-readiness-DdmJVX7y.js} +3 -3
  283. package/server/{system-prerequisites-DkoQBn1q.js → system-prerequisites-DSXBvffY.js} +24 -44
  284. package/server/{teardown-workspace-D-5yMyit.js → teardown-workspace-DDCf5n-a.js} +15 -15
  285. package/server/{test-agent-queue-BwpUpu-o.js → test-agent-queue-BJZ9Nfcc.js} +6 -6
  286. package/server/{test-verdict-BRiSu7eW.js → test-verdict-Cp5tljlJ.js} +1 -1
  287. package/server/{test-verdict-BQ1yx7d4.js → test-verdict-D_-sXIz_.js} +1 -1
  288. package/server/{tldr-daemon-BJA7TkqS.js → tldr-daemon-B8_oT5gx.js} +1 -1
  289. package/server/{tldr-daemon-DjxP5g6Y.js → tldr-daemon-BQFmmFp0.js} +2 -2
  290. package/server/{tmux-HQLgwo_C.js → tmux-BAvtac_u.js} +1 -1
  291. package/server/{tmux-y1blSxks.js → tmux-L5LgvGLp.js} +2 -2
  292. package/server/{token-LUrbM9sU.js → token-BkQLy4yS.js} +2 -2
  293. package/server/token-util-BArZLN6w.js +3 -0
  294. package/server/{token-util-BZaDAQ8S.js → token-util-DI8sGlmF.js} +1 -1
  295. package/server/{tracker-config-DSFZBdXP.js → tracker-config-DdT-nUAM.js} +2 -2
  296. package/server/{tracker-utils-DiceZN3a.js → tracker-utils-CawsPSS2.js} +2 -2
  297. package/server/{tracker-utils-WtP_V-yn.js → tracker-utils-DV3h1FYG.js} +1 -1
  298. package/server/{traefik-connect-BXqfOP4-.js → traefik-connect-C6mJckNs.js} +1 -1
  299. package/server/{tunnel-WcJImbAC.js → tunnel-BIFl98rc.js} +1 -1
  300. package/server/{tunnel-DTng1rfQ.js → tunnel-IdK1iTHx.js} +3 -3
  301. package/server/{types-BjaZ1oqH.js → types-7-GnJn0t.js} +1 -1
  302. package/server/{types-DqeBMmJN.js → types-hraoaQIp.js} +1 -1
  303. package/server/{uat-train-Wismge7h.js → uat-train-0Ujk8GCv.js} +1 -1
  304. package/server/{uat-train-BpLnp7Cx.js → uat-train-j0cPeMSj.js} +25 -25
  305. package/server/{validation-BA4e5EGm.js → validation-CabEISJT.js} +4 -4
  306. package/server/{validation-CUWamZ4X.js → validation-DcAgXTQp.js} +1 -1
  307. package/server/{verification-artifact-Dr_0g9nb.js → verification-artifact-BuTA1QbL.js} +1 -1
  308. package/server/{verification-artifact-CrbI4tJE.js → verification-artifact-Ck1tefmz.js} +1 -1
  309. package/server/{verification-runner-Dcksl_P-.js → verification-runner-DlJezzef.js} +1 -1
  310. package/server/{verification-runner-gAzh3cVD.js → verification-runner-FiuAZ-H2.js} +15 -14
  311. package/server/{vtt-parser-3VZKsmSm.js → vtt-parser-BnRsYzcz.js} +1 -1
  312. package/server/{work-agent-prompt-ULdcANl5.js → work-agent-prompt-DLthEPAq.js} +12 -11
  313. package/server/{workflows-B8ROFlfw.js → workflows-BZNNYkGC.js} +18 -18
  314. package/server/workflows-C4mR0Reb.js +2 -0
  315. package/server/{workspace-DSjUJaJN.js → workspace-3IC-UkAi.js} +1 -1
  316. package/server/{workspace-DhTDA8nB.js → workspace-D9ppycdg.js} +3 -3
  317. package/server/{workspace-config-BAAsAv-o.js → workspace-config-Bigl_-Lk.js} +1 -1
  318. package/server/{workspace-manager-CcujONCR.js → workspace-manager-B1WOfKvB.js} +1 -1
  319. package/server/{workspace-manager-DsN52IMG.js → workspace-manager-ClkCIWTe.js} +13 -13
  320. package/server/{workspace-metadata-CftOpNLs.js → workspace-metadata-BE0efUv_.js} +1 -1
  321. package/server/{workspace-metadata-DIL5_U4c.js → workspace-metadata-tiSRIWJP.js} +2 -2
  322. package/server/{workspaces-Dmlh1YXm.js → workspaces-CFPcL0vl.js} +96 -96
  323. package/sync-sources/skills/pan-start/SKILL.md +23 -0
  324. package/server/cli-ChErG518.js +0 -3
  325. package/server/deacon-swarm-uudlSCLM.js +0 -2
  326. package/server/dist-BEDL2alY.js +0 -3
  327. package/server/forge-DbhJyH6u.js +0 -2
  328. package/server/git-utils-Bkxzr1Xf.js +0 -129
  329. package/server/hume-BrA1tUuk.js +0 -3
  330. package/server/inspect-agent-CyXNo9fM.js +0 -2
  331. package/server/merge-ops-BpTtuO8x.js +0 -2
  332. package/server/projects-IRHJIPYC.js +0 -3
  333. package/server/providers-BqCdTryq.js +0 -3
  334. package/server/public/assets/mermaid-GHXKKRXX-BNwFoQsf.js +0 -1
  335. package/server/rally-DGimSRBQ.js +0 -3
  336. package/server/reap-terminal-sessions-C1mfzoZo.js +0 -3
  337. package/server/record-us0YECMO.js +0 -3
  338. package/server/resume-OyN3dEXE.js +0 -3
  339. package/server/settings-BaPXXJsT.js +0 -2
  340. package/server/specs-BsNcum0h.js +0 -3
  341. package/server/state-migrate-_zJJ6XKE.js +0 -362
  342. package/server/supervisor-Qy1QecAs.js +0 -2
  343. package/server/token-util-Cg-QnowA.js +0 -3
  344. package/server/workflows-C5c-RPsY.js +0 -2
@@ -1,42 +1,43 @@
1
1
  import { a as __toCommonJS } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $n as resolveProjectFromIssueSync, A as init_harness_policy, B as init_providers, C as init_tier_table, E as resolveTieredExecutionEnabledForIssue, Nn as getProjectSync, O as canUseHarnessSync, Or as init_errors, P as UnknownModelError, Q as resolveModel, T as resolveTieredExecutionEnabled, Un as listProjectsSync, V as piProviderForModel, c as isClaudeCodeChannelsEnabled, cr as extractPrefixSync, dr as parseIssueIdSync, ei as getOverdeckHome, f as loadConfigSync, gn as init_state_read_home, ii as resolveOhmypiExtensionPath, lr as init_issue_id, qr as encodeClaudeProjectDir, ri as packageRoot, t as init_config_yaml, ti as init_paths, vn as shouldCommitLegacyWorkspaceArtifacts, vr as FsError, z as getProviderForModelSync, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
2
+ import { A as canUseHarnessSync, D as resolveTieredExecutionEnabled, H as init_providers, Hn as init_projects, I as UnknownModelError, In as getProjectSync, Kn as listProjectsSync, M as init_harness_policy, O as resolveTieredExecutionEnabledForIssue, T as init_tier_table, U as piProviderForModel, V as getProviderForModelSync, Xr as encodeClaudeProjectDir, c as isClaudeCodeChannelsEnabled, dr as extractPrefixSync, f as loadConfigSync, fr as init_issue_id, ii as init_paths, jr as init_errors, mr as parseIssueIdSync, nr as resolveProjectFromIssueSync, oi as packageRoot, ri as getOverdeckHome, si as resolveOhmypiExtensionPath, t as init_config_yaml, tt as resolveModel, xn as shouldCommitLegacyWorkspaceArtifacts, xr as FsError, yn as init_state_read_home } from "./config-yaml-ig8Nwtiw.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
4
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DN2wSxle.js";
5
- import { B as sendRawKeystroke, D as killSession, H as sessionExistsSync, J as BLANKED_PROVIDER_ENV, M as listSessions, T as isHarnessProcessAlive, U as setOption, V as sessionExists, X as buildChildEnvWithoutTmuxSync, Z as init_child_env, g as findManagedServerPidSync, i as capturePane, j as listSessionNames, m as exactPaneTarget, s as createSession, w as init_tmux, z as sendKeysAsync } from "./tmux-y1blSxks.js";
6
- import { a as init_event_store, n as getEventStore } from "./event-store-BVnON3vf.js";
7
- import { C as normalizeChannelReplyPayload, a as getHarnessBehavior, b as DomainEvent, t as init_src } from "./src-Dpq1yFIl.js";
8
- import { A as stateToOverdeckParamsForDb, D as init_agent_state_sync, T as AGENT_COLUMNS_FOR_DB, c as init_review_status, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-CCgPVK1h.js";
9
- import { a as EventStoreService, c as ReadModelService, d as init_read_model, i as init_issue_lifecycle, s as init_domain_services, t as IssueLifecycle, u as getClosedIssueIdsForReadSource } from "./issue-lifecycle-B7HZWnTA.js";
10
- import { d as isTerminalIssueStage, o as init_agents, u as getIssueStageSync } from "./agents-DbrHWunF.js";
11
- import { n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-OouGbJ7d.js";
12
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-Drm7qeD5.js";
13
- import { $ as stopAgent, $n as init_pty_token, $t as init_ohmypi_fifo, Cn as clearAgentTroubled, Dn as getAgentDir, Et as writeBridgeTokenSync, Gn as saveAgentStateSync, Gt as getProviderAuthMode, H as getLatestSessionId, Ht as getAgentRuntimeBaseCommand, K as saveSessionId, Kn as setAgentPaused, L as messageAgent, Lt as resolveStaffing, M as resumeAgent, Mt as transitionIssueToInProgress, O as recoverAgent, Pt as init_staffing, Qt as piFifoPaths, R as init_operator_interventions, Rn as markAgentStoppedState, S as init_tier_escalation, Tt as init_bridge_token, U as getLatestSessionIdSync, V as getActivity, W as getSessionId, Wn as saveAgentState, Xn as writeAgentStateJsonSync, Yn as wipeAgentStateDirs, Zt as init_pi_fifo, _n as writeChannelsBridgeMcpConfig, _r as init_codex_auth, _t as deliverAgentPermissionDecision, an as determineModel, ar as normalizeAgentId, bt as setAgentDeliveryMethod, cr as waitForReadySignal, en as ohmypiFifoPaths, er as writePtyToken, fr as saveAgentRuntimeState, gn as dismissDevChannelsDialog, gr as checkCodexAuthStatus, gt as deliverAgentMessage, i as listRunningAgents, jn as getAgentStateSync, k as restartAgent, kn as getAgentState, ln as init_provider_health, lr as getAgentRuntimeState, nr as resolvePtySupervisorScriptPath, on as getProviderEnvForModel, r as listAgentStates, rr as clearReadySignal, s as init_agents$1, sn as getProviderExportsForModel, tr as init_pty_supervisor_locate, un as validateProviderHealth, ur as getAgentRuntimeStateSync, wt as BRIDGE_TOKEN_HEADER, x as decideEscalation, xn as clearAgentPaused, z as operatorInterventionEvent } from "./queries-B5hl7lMQ.js";
14
- import { a as performHandoff, i as checkAllTriggers, s as getAgentHealth, t as getCloisterService } from "./service-CqAY8Kmk.js";
15
- import { o as init_persistent_logger, s as logAgentLifecycleSync } from "./session-history-DUehL3KN.js";
16
- import { t as init_behavior } from "./behavior-Dg-D8eBG.js";
17
- import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-DSFZBdXP.js";
18
- import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-CPESc4Or.js";
19
- import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-DhfFiwW7.js";
20
- import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-DqeBMmJN.js";
21
- import { F as generateVBriefFilename, I as init_lifecycle, f as readTierOverrides, g as serializeVBriefDocument, h as recordTierPromotion, m as readWorkspacePlanSync, o as init_io, r as findPlan, u as readPlan } from "./io-BiM-7Zsx.js";
22
- import { B as removeFavorite, E as hasOtherActiveConversationOnTmuxSession, F as markConversationEnded, G as setConversationHarness, K as setConversationModel, M as listConversations, P as markConversationActive, Q as updateConversationDeliveryMethod, S as getConversationByName, W as setConversationEffort, g as backfillConversationModel, h as archiveConversation, k as init_conversations, nt as updateLastAttached, rt as updateSpawnError, x as getConversationById, y as createConversation } from "./conversations-BUgGvqVL.js";
23
- import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-D9Z3tYSa.js";
24
- import { a as requireModelOverrideSync, i as normalizeModelOverrideSync, n as init_launcher_generator, r as init_model_validation, t as generateLauncherScriptSync } from "./launcher-generator-5DJRiovn.js";
25
- import { a as init_claude_permissions, o as resolvePermissionModeSync, r as getClaudePermissionFlagsStringSync, t as BYPASS_PERMISSION_MODE } from "./claude-permissions-C2OrLYKL.js";
26
- import { h as workspaceContextFile, l as piGlobalContextFile, o as init_layers } from "./layers-cZx7ibtV.js";
27
- import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-DV_f-lK0.js";
28
- import { l as init_dag, o as getDispatchableItems } from "./dag-DIji6O2b.js";
29
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-BGpO-OVM.js";
30
- import { a as loadCloisterConfigSync, r as init_config } from "./config-G1TOMJZA.js";
31
- import { c as isStateMigrated, o as init_state_home } from "./state-home-DixkE-up.js";
32
- import { a as init_lifecycle_io, c as updatePlanStatus, s as transitionVBriefOnMain } from "./lifecycle-io-DMurK4oM.js";
33
- import { _ as init_codex_conversation_parser, c as parseEntireConversation, d as init_pi_conversation_parser, g as parseOhmypiConversationMessages, m as init_ohmypi_conversation_parser, p as parsePiConversationMessages, t as init_conversation_service, v as parseCodexConversationMessages } from "./conversation-service-DQybSPUK.js";
34
- import { _ as parseCodexApprovalPrompt, d as getAgentPendingQuestions$1, f as getAgentWorkspace$1, g as normalizeAwaitingInputPrompt, m as detectAwaitingInputForAgent, o as getRuntimeForAgent, p as scanPendingInputsPromise, s as computeAgentEnrichment, u as getAgentJsonlPath$1 } from "./stuck-remediation-BWkK_O7A.js";
35
- import { At as getSystemHealthSnapshot, kt as getResourceConfig, wt as classifyMemoryPressure } from "./deacon-1s7bM5zn.js";
36
- import { o as stopWorkspaceDocker, r as init_workspace_manager } from "./workspace-manager-DsN52IMG.js";
37
- import { a as init_jsonl_parser, o as normalizeModelName } from "./jsonl-parser-DJV2eZUP.js";
38
- import { r as init_in_flight_guard, t as createInFlightGuard } from "./in-flight-guard-tVGiI5ee.js";
39
- import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-DIL5_U4c.js";
4
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-D4iNWMA5.js";
5
+ import { B as sendRawKeystroke, D as killSession, H as sessionExistsSync, J as BLANKED_PROVIDER_ENV, M as listSessions, T as isHarnessProcessAlive, U as setOption, V as sessionExists, X as buildChildEnvWithoutTmuxSync, Z as init_child_env, g as findManagedServerPidSync, i as capturePane, j as listSessionNames, m as exactPaneTarget, s as createSession, w as init_tmux, z as sendKeysAsync } from "./tmux-L5LgvGLp.js";
6
+ import { a as init_event_store, n as getEventStore } from "./event-store-TnWdydfB.js";
7
+ import { k as normalizeChannelReplyPayload, o as getHarnessBehavior, t as init_src, x as DomainEvent } from "./src-k039WVYY.js";
8
+ import { C as AGENT_COLUMNS_FOR_DB, O as stateToOverdeckParamsForDb, T as init_agent_state_sync, c as init_review_status, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-DFRjDFef.js";
9
+ import { a as EventStoreService, c as ReadModelService, d as init_read_model, i as init_issue_lifecycle, s as init_domain_services, t as IssueLifecycle, u as getClosedIssueIdsForReadSource } from "./issue-lifecycle-CeyW_HoD.js";
10
+ import { d as isTerminalIssueStage, o as init_agents, u as getIssueStageSync } from "./agents-DXdHmRTC.js";
11
+ import { n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-C12WgkaB.js";
12
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-Codk1pc2.js";
13
+ import { $ as stopAgent, $n as init_pty_token, $t as init_ohmypi_fifo, Cn as clearAgentTroubled, Dn as getAgentDir, Et as writeBridgeTokenSync, Gn as saveAgentStateSync, Gt as getProviderAuthMode, H as getLatestSessionId, Ht as getAgentRuntimeBaseCommand, K as saveSessionId, Kn as setAgentPaused, L as messageAgent, Lt as resolveStaffing, M as resumeAgent, Mt as transitionIssueToInProgress, O as recoverAgent, Pt as init_staffing, Qt as piFifoPaths, R as init_operator_interventions, Rn as markAgentStoppedState, S as init_tier_escalation, Tt as init_bridge_token, U as getLatestSessionIdSync, V as getActivity, W as getSessionId, Wn as saveAgentState, Xn as writeAgentStateJsonSync, Yn as wipeAgentStateDirs, Zt as init_pi_fifo, _n as writeChannelsBridgeMcpConfig, _r as init_codex_auth, _t as deliverAgentPermissionDecision, an as determineModel, ar as normalizeAgentId, bt as setAgentDeliveryMethod, cr as waitForReadySignal, en as ohmypiFifoPaths, er as writePtyToken, fr as saveAgentRuntimeState, gn as dismissDevChannelsDialog, gr as checkCodexAuthStatus, gt as deliverAgentMessage, i as listRunningAgents, jn as getAgentStateSync, k as restartAgent, kn as getAgentState, ln as init_provider_health, lr as getAgentRuntimeState, nr as resolvePtySupervisorScriptPath, on as getProviderEnvForModel, r as listAgentStates, rr as clearReadySignal, s as init_agents$1, sn as getProviderExportsForModel, tr as init_pty_supervisor_locate, un as validateProviderHealth, ur as getAgentRuntimeStateSync, wt as BRIDGE_TOKEN_HEADER, x as decideEscalation, xn as clearAgentPaused, z as operatorInterventionEvent } from "./queries-ZABd5aXP.js";
14
+ import { a as performHandoff, i as checkAllTriggers, s as getAgentHealth, t as getCloisterService } from "./service-Bagb90KZ.js";
15
+ import { o as init_persistent_logger, s as logAgentLifecycleSync } from "./session-history-XdS0JKp3.js";
16
+ import { t as init_behavior } from "./behavior-CGj16clS.js";
17
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-DdT-nUAM.js";
18
+ import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-D_RVYBuL.js";
19
+ import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-CXsfxslp.js";
20
+ import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-hraoaQIp.js";
21
+ import { F as generateVBriefFilename, I as init_lifecycle, f as readTierOverrides, g as serializeVBriefDocument, h as recordTierPromotion, m as readWorkspacePlanSync, o as init_io, r as findPlan, u as readPlan } from "./io-DQR9PMgS.js";
22
+ import { B as removeFavorite, E as hasOtherActiveConversationOnTmuxSession, F as markConversationEnded, G as setConversationHarness, K as setConversationModel, M as listConversations, P as markConversationActive, Q as updateConversationDeliveryMethod, S as getConversationByName, W as setConversationEffort, g as backfillConversationModel, h as archiveConversation, k as init_conversations, nt as updateLastAttached, rt as updateSpawnError, x as getConversationById, y as createConversation } from "./conversations-bYpM9-kZ.js";
23
+ import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-B-CI9hgE.js";
24
+ import { a as requireModelOverrideSync, i as normalizeModelOverrideSync, n as init_launcher_generator, r as init_model_validation, t as generateLauncherScriptSync } from "./launcher-generator-COgR2By1.js";
25
+ import { a as init_claude_permissions, o as resolvePermissionModeSync, r as getClaudePermissionFlagsStringSync, t as BYPASS_PERMISSION_MODE } from "./claude-permissions-nSFKH78M.js";
26
+ import { h as workspaceContextFile, l as piGlobalContextFile, o as init_layers } from "./layers-Cp1To4L8.js";
27
+ import { n as init_harness_binary, r as prepareHarnessLaunch } from "./harness-binary-B2CTcD84.js";
28
+ import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-C-ifC7b0.js";
29
+ import { l as init_dag, o as getDispatchableItems } from "./dag-CJpgf9A3.js";
30
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-D5FVQTmy.js";
31
+ import { a as loadCloisterConfigSync, r as init_config } from "./config-DeTsoZdR.js";
32
+ import { c as isStateMigrated, o as init_state_home } from "./state-home-CONQvZR0.js";
33
+ import { a as init_lifecycle_io, c as updatePlanStatus, s as transitionVBriefOnMain } from "./lifecycle-io-taIb0PoH.js";
34
+ import { _ as init_codex_conversation_parser, c as parseEntireConversation, d as init_pi_conversation_parser, g as parseOhmypiConversationMessages, m as init_ohmypi_conversation_parser, p as parsePiConversationMessages, t as init_conversation_service, v as parseCodexConversationMessages } from "./conversation-service-C3avRVEr.js";
35
+ import { _ as parseCodexApprovalPrompt, d as getAgentPendingQuestions$1, f as getAgentWorkspace$1, g as normalizeAwaitingInputPrompt, m as detectAwaitingInputForAgent, o as getRuntimeForAgent, p as scanPendingInputsPromise, s as computeAgentEnrichment, u as getAgentJsonlPath$1 } from "./stuck-remediation-CKnIryGT.js";
36
+ import { Mt as getResourceConfig, Pt as getSystemHealthSnapshot, Tt as classifyMemoryPressure } from "./deacon-CkT_kznS.js";
37
+ import { o as stopWorkspaceDocker, r as init_workspace_manager } from "./workspace-manager-ClkCIWTe.js";
38
+ import { a as init_jsonl_parser, o as normalizeModelName } from "./jsonl-parser-C3HVNR5d.js";
39
+ import { r as init_in_flight_guard, t as createInFlightGuard } from "./in-flight-guard-BoWm66Kh.js";
40
+ import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-tiSRIWJP.js";
40
41
  import { basename, delimiter, dirname, join, resolve } from "node:path";
41
42
  import { Cause, Data, Effect, Layer, Option, Schema, Stream } from "effect";
42
43
  import { join as join$1 } from "path";
@@ -196,6 +197,7 @@ init_model_validation();
196
197
  init_provider_health();
197
198
  init_claude_permissions();
198
199
  init_layers();
200
+ init_harness_binary();
199
201
  init_ohmypi_fifo();
200
202
  init_pi_fifo();
201
203
  init_stack_health();
@@ -579,7 +581,7 @@ async function resolveCodexRolloutPath(agentId, opts = {}) {
579
581
  const agentDir = join(opts.agentsDirOverride ?? join(getOverdeckHome(), "agents"), agentId);
580
582
  const codexHome = join(agentDir, "codex-home");
581
583
  if (!await pathExists$1(codexHome)) return null;
582
- const { findRolloutPath, findLatestRollout } = await import("./codex-BBeZ8c3s.js");
584
+ const { findRolloutPath, findLatestRollout } = await import("./codex-DNyiQDKW.js");
583
585
  const threadId = (await readOptional(join(agentDir, "codex-thread-id")))?.trim();
584
586
  if (threadId) {
585
587
  const rollout = findRolloutPath(codexHome, threadId);
@@ -1375,8 +1377,31 @@ function hasActiveAgentGateOrRetry(state, nowMs = Date.now()) {
1375
1377
  }
1376
1378
  function evaluateSpawnGuardrails(health) {
1377
1379
  const warnings = [];
1380
+ if (health.freshness.status !== "fresh") {
1381
+ const message = health.freshness.status === "stale" ? `System health evidence is stale: ${health.freshness.reason.message}` : "System health is still measuring; fresh admission evidence is not available yet.";
1382
+ warnings.push({
1383
+ severity: "critical",
1384
+ code: "health_snapshot_unavailable",
1385
+ message
1386
+ });
1387
+ return {
1388
+ blocked: true,
1389
+ requiresAcknowledgement: false,
1390
+ status: 503,
1391
+ error: message,
1392
+ hint: "Wait for a fresh system health assessment before starting this agent.",
1393
+ warnings,
1394
+ health: {
1395
+ severity: health.severity,
1396
+ summary: health.summary,
1397
+ reasons: health.reasons,
1398
+ leakedSpecialists: health.leakedSpecialists,
1399
+ freshness: health.freshness
1400
+ }
1401
+ };
1402
+ }
1378
1403
  const availableGb = Math.round(health.summary.availableMemoryBytes / 1024 ** 3 * 10) / 10;
1379
- const workAgentCount = health.summary.workAgentCount;
1404
+ const workAgentCount = health.admission.admittedWorkAgentCount;
1380
1405
  const leakedSpecialists = health.leakedSpecialists;
1381
1406
  const resourceConfig = getResourceConfig();
1382
1407
  const hardWorkAgentLimit = resolveAgentCountEnv("PAN_AGENT_BLOCK_COUNT", resourceConfig.agentBlockCount);
@@ -1424,7 +1449,8 @@ function evaluateSpawnGuardrails(health) {
1424
1449
  severity: health.severity,
1425
1450
  summary: health.summary,
1426
1451
  reasons: health.reasons,
1427
- leakedSpecialists: health.leakedSpecialists
1452
+ leakedSpecialists: health.leakedSpecialists,
1453
+ freshness: health.freshness
1428
1454
  }
1429
1455
  };
1430
1456
  }
@@ -1438,7 +1464,8 @@ function evaluateSpawnGuardrails(health) {
1438
1464
  severity: health.severity,
1439
1465
  summary: health.summary,
1440
1466
  reasons: health.reasons,
1441
- leakedSpecialists: health.leakedSpecialists
1467
+ leakedSpecialists: health.leakedSpecialists,
1468
+ freshness: health.freshness
1442
1469
  }
1443
1470
  };
1444
1471
  }
@@ -1700,7 +1727,7 @@ const getAgentOutputRoute = HttpRouter.add("GET", "/api/agents/:id/output", http
1700
1727
  } catch {}
1701
1728
  let stdout;
1702
1729
  if (isRemote && vmName) {
1703
- const { getRemoteAgentOutput } = await import("./remote-agents-BNORDWAX.js");
1730
+ const { getRemoteAgentOutput } = await import("./remote-agents-D6O_zETW.js");
1704
1731
  stdout = await getRemoteAgentOutput(id, vmName, parseInt(String(lines), 10) || 100);
1705
1732
  } else stdout = await Effect.runPromise(capturePane(id, parseInt(String(lines), 10) || 100));
1706
1733
  if (!stdout || stdout.trim() === "" || stdout.trim() === "Session not found") {
@@ -2121,7 +2148,7 @@ async function cleanupConversationAttachments(name) {
2121
2148
  * sessions that the lifecycle poller missed. */
2122
2149
  async function cleanupOrphanedConversationAttachments() {
2123
2150
  try {
2124
- const { listConversations } = await import("./conversations-BJ-t3BRm.js");
2151
+ const { listConversations } = await import("./conversations-H9if0bCQ.js");
2125
2152
  const convNames = new Set(listConversations().map((c) => c.name));
2126
2153
  const root = getConversationAttachmentsRoot();
2127
2154
  await runInBatches((await readdir(root, { withFileTypes: true })).filter((entry) => entry.isDirectory() && !convNames.has(entry.name)).map((entry) => join(root, entry.name)), 10, (path) => rm(path, {
@@ -2652,6 +2679,7 @@ function isNotFound(error) {
2652
2679
  }
2653
2680
  async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model, effort, issueId, resume = false, harness = "claude-code", plainFork = false) {
2654
2681
  const behavior = getHarnessBehavior(harness);
2682
+ const harnessLaunch = await prepareHarnessLaunch(harness);
2655
2683
  const stateDir = join(getOverdeckHome(), "conversations", tmuxSession);
2656
2684
  await mkdir(stateDir, { recursive: true });
2657
2685
  clearReadySignal(tmuxSession);
@@ -2699,7 +2727,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
2699
2727
  const codexApprovalPolicy = codexPermMode === "full-access" ? "never" : "on-request";
2700
2728
  const codexSandboxMode = codexPermMode === "full-access" ? "danger-full-access" : codexPermMode === "read-only" ? "read-only" : "workspace-write";
2701
2729
  const codexApprovalsReviewer = codexPermMode === "auto-review" ? "auto_review" : void 0;
2702
- const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-BBeZ8c3s.js");
2730
+ const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-DNyiQDKW.js");
2703
2731
  initCodexHome(codexHome, {
2704
2732
  trustedDir: cwd,
2705
2733
  approvalPolicy: codexApprovalPolicy,
@@ -2745,7 +2773,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
2745
2773
  ...issueId ? { issueId } : {},
2746
2774
  ...piFields || codexFields || useSupervisor ? { agentId: tmuxSession } : {}
2747
2775
  },
2748
- extraEnvExports: [`export OVERDECK_DASHBOARD_URL="http://127.0.0.1:${process.env["API_PORT"] ?? process.env["PORT"] ?? "3011"}"`],
2776
+ extraEnvExports: [harnessLaunch.pathExport, `export OVERDECK_DASHBOARD_URL="http://127.0.0.1:${process.env["API_PORT"] ?? process.env["PORT"] ?? "3011"}"`],
2749
2777
  providerExports: providerExportsStr || void 0,
2750
2778
  trapHup: true,
2751
2779
  baseCommand: runtimeCommand,
@@ -2768,7 +2796,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
2768
2796
  } catch {}
2769
2797
  console.log(`[claude-invoke] purpose=conversation-session | model=${model || "default"} | source=conversations.ts:spawnConversationSession | session=${tmuxSession} | resume=${resume} | command="${runtimeCommand}"`);
2770
2798
  try {
2771
- const { preTrustDirectory } = await import("./workspace-manager-CcujONCR.js");
2799
+ const { preTrustDirectory } = await import("./workspace-manager-B1WOfKvB.js");
2772
2800
  preTrustDirectory(cwd);
2773
2801
  } catch {}
2774
2802
  try {
@@ -2785,7 +2813,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
2785
2813
  const codexHomeDir = codexFields.codexHome;
2786
2814
  (async () => {
2787
2815
  try {
2788
- const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-BBeZ8c3s.js");
2816
+ const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-DNyiQDKW.js");
2789
2817
  const rollout = await waitForCodexRollout(codexHomeDir, 12e4);
2790
2818
  if (rollout) {
2791
2819
  const threadId = extractThreadIdFromRollout(rollout);
@@ -3664,7 +3692,7 @@ const postInternalAgentPermissionRequestRoute = HttpRouter.add("POST", "/api/int
3664
3692
  error: "missing agent id"
3665
3693
  }, { status: 400 });
3666
3694
  const request = yield* HttpServerRequest.HttpServerRequest;
3667
- const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-7bYL5v6K.js"));
3695
+ const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-C9DdEOKY.js"));
3668
3696
  const expected = getInternalTokenSync();
3669
3697
  if (!expected) return jsonResponse({
3670
3698
  ok: false,
@@ -3931,7 +3959,7 @@ const getAgentHealthHistoryRoute = HttpRouter.add("GET", "/api/agents/:id/health
3931
3959
  const request = yield* HttpServerRequest.HttpServerRequest;
3932
3960
  const urlOpt = HttpServerRequest.toURL(request);
3933
3961
  const hours = Option.isSome(urlOpt) ? urlOpt.value.searchParams.get("hours") ?? "24" : "24";
3934
- const { getHealthHistory } = yield* Effect.promise(() => import("./health-events-CnwV_SSz.js"));
3962
+ const { getHealthHistory } = yield* Effect.promise(() => import("./health-events-C1whmd58.js"));
3935
3963
  const endTime = /* @__PURE__ */ new Date();
3936
3964
  const startTime = /* @__PURE__ */ new Date(endTime.getTime() - parseInt(hours) * 60 * 60 * 1e3);
3937
3965
  const events = getHealthHistory(id, startTime.toISOString(), endTime.toISOString());
@@ -3972,7 +4000,7 @@ function emitAgentRuntimeEvent(id, body, timestamp) {
3972
4000
  detail: String(decoded.failure)
3973
4001
  }, { status: 400 })
3974
4002
  };
3975
- const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-DHwemt96.js"));
4003
+ const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-CsQ07Pxe.js"));
3976
4004
  yield* (yield* AgentStateService).emit(decoded.success);
3977
4005
  return {
3978
4006
  ok: true,
@@ -4054,7 +4082,7 @@ const getAgentRuntimeRoute = HttpRouter.add("GET", "/api/agents/:id/runtime", ht
4054
4082
  success: false,
4055
4083
  error: "missing agent id"
4056
4084
  }, { status: 400 });
4057
- const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-DHwemt96.js"));
4085
+ const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-CsQ07Pxe.js"));
4058
4086
  const snapshot = yield* (yield* AgentStateService).get(id);
4059
4087
  if (!snapshot) return jsonResponse({
4060
4088
  success: false,
@@ -4167,8 +4195,8 @@ function createAgentStopHandler(lifecycleEvent) {
4167
4195
  yield* stopAgent(id);
4168
4196
  if (stateBeforeStop?.issueId) yield* Effect.promise(async () => {
4169
4197
  try {
4170
- const { resolveProjectFromIssueSync } = await import("./projects-IRHJIPYC.js");
4171
- const { findWorkspacePath } = await import("./archive-planning-MPpvQJL4.js");
4198
+ const { resolveProjectFromIssueSync } = await import("./projects-BKkwpH6q.js");
4199
+ const { findWorkspacePath } = await import("./archive-planning-Cp_DC1j-.js");
4172
4200
  const issueLower = stateBeforeStop.issueId.toLowerCase();
4173
4201
  const workspacePath = findWorkspacePath(resolveProjectFromIssueSync(stateBeforeStop.issueId)?.projectPath ?? process.cwd(), issueLower);
4174
4202
  if (workspacePath) {
@@ -5472,15 +5500,15 @@ init_agents$1();
5472
5500
  function handleRemoteAgentSpawn(input) {
5473
5501
  return Effect.gen(function* () {
5474
5502
  const { issueId, workspacePath, workspaceMetadata, spawnModel, projectPath, spawnGuardrails, lifecycle } = input;
5475
- const { spawnRemoteAgent, checkRemoteSpendCap } = yield* Effect.promise(() => import("./remote-agents-BNORDWAX.js"));
5476
- const { createFlyProviderFromConfig } = yield* Effect.promise(() => import("./remote-DYziAkiZ.js"));
5477
- const { loadConfigSync: loadPanConfig } = yield* Effect.promise(() => import("./config-nAB_F-Gp.js"));
5503
+ const { spawnRemoteAgent, checkRemoteSpendCap } = yield* Effect.promise(() => import("./remote-agents-D6O_zETW.js"));
5504
+ const { createFlyProviderFromConfig } = yield* Effect.promise(() => import("./remote-Dr5kGYSZ.js"));
5505
+ const { loadConfigSync: loadPanConfig } = yield* Effect.promise(() => import("./config-BJKocXKd.js"));
5478
5506
  const panConfig = loadPanConfig();
5479
5507
  const spendCap = checkRemoteSpendCap(panConfig);
5480
5508
  if (!spendCap.allowed) return jsonResponse({ error: spendCap.message }, { status: 429 });
5481
5509
  const fly = createFlyProviderFromConfig(panConfig.remote);
5482
5510
  yield* Effect.promise(() => fly.syncAllCredentials(workspaceMetadata.vmName));
5483
- const { buildWorkAgentPrompt, getTrackerContext } = yield* Effect.promise(() => import("./work-agent-prompt-ULdcANl5.js"));
5511
+ const { buildWorkAgentPrompt, getTrackerContext } = yield* Effect.promise(() => import("./work-agent-prompt-DLthEPAq.js"));
5484
5512
  const trackerContext = yield* Effect.promise(() => getTrackerContext(issueId, workspacePath));
5485
5513
  const agentPrompt = yield* Effect.promise(() => buildWorkAgentPrompt({
5486
5514
  issueId,
@@ -5850,7 +5878,7 @@ const postAgentsRoute = HttpRouter.add("POST", "/api/agents", httpHandler(Effect
5850
5878
  const body = yield* readJsonBody$1;
5851
5879
  const eventStore = yield* EventStoreService;
5852
5880
  const lifecycle = yield* IssueLifecycle;
5853
- const readModel = yield* ReadModelService;
5881
+ yield* ReadModelService;
5854
5882
  const { issueId, projectId } = body;
5855
5883
  const autoStart = body.auto === true;
5856
5884
  const guardrailAcknowledged = body.guardrailAcknowledged === true;
@@ -5973,7 +6001,7 @@ const postAgentsRoute = HttpRouter.add("POST", "/api/agents", httpHandler(Effect
5973
6001
  hint: "Re-run planning to produce a plan with tasks and acceptance criteria.",
5974
6002
  issueId
5975
6003
  }, { status: 422 });
5976
- const health = yield* readModel.getSnapshot.pipe(Effect.flatMap((snapshot) => Effect.promise(() => getSystemHealthSnapshot(snapshot))));
6004
+ const health = yield* Effect.promise(() => getSystemHealthSnapshot());
5977
6005
  emitStartAgentPhase(issueId, "guardrails", "start", "evaluating spawn guardrails");
5978
6006
  const spawnGuardrails = evaluateSpawnGuardrails(health);
5979
6007
  if (spawnGuardrails.blocked) {
@@ -6134,7 +6162,7 @@ const postAgentsRoute = HttpRouter.add("POST", "/api/agents", httpHandler(Effect
6134
6162
  console.warn(`[start-agent] Failed to set plan.status=running (non-fatal): ${planStatusErr?.message ?? planStatusErr}`);
6135
6163
  }
6136
6164
  try {
6137
- const { appendSessionEntry, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = yield* Effect.promise(() => import("./record-us0YECMO.js"));
6165
+ const { appendSessionEntry, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = yield* Effect.promise(() => import("./record-rwK-nKv_.js"));
6138
6166
  const recordProject = resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath);
6139
6167
  yield* Effect.promise(() => appendSessionEntry(recordProject, issueId, {
6140
6168
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -6561,10 +6589,10 @@ const _serverManagedMerges = /* @__PURE__ */ new Set();
6561
6589
  function firePostMergeLifecycle(issueId, options) {
6562
6590
  const started = postMergeGuard.run(issueId, async () => {
6563
6591
  const projectPath = getProjectPathForIssue(extractPrefixSync(issueId) ?? issueId.split("-")[0]);
6564
- const { postMergeLifecycle } = await import("./merge-agent-CnORPiri.js");
6592
+ const { postMergeLifecycle } = await import("./merge-agent-B-SnXOoc.js");
6565
6593
  await postMergeLifecycle(issueId, projectPath, options?.sourceBranch, options?.verifiedMergedRef ? { verifiedMergedRef: options.verifiedMergedRef } : void 0);
6566
6594
  console.log(`[merge] post-merge lifecycle completed for ${issueId}`);
6567
- const { runMergeTrainReconcile } = await import("./merge-train-SvkRJZ-k.js");
6595
+ const { runMergeTrainReconcile } = await import("./merge-train-CKana8EH.js");
6568
6596
  const outcomes = await runMergeTrainReconcile(issueId);
6569
6597
  if (outcomes.length > 0) console.log(`[merge-train] reconciled ${outcomes.length} sibling(s) after ${issueId}: ` + outcomes.map((o) => `${o.issueId}=${o.result}`).join(", "));
6570
6598
  }, (err) => console.error(`[merge] post-merge lifecycle failed for ${issueId}:`, err));
@@ -6585,15 +6613,15 @@ init_io();
6585
6613
  init_domain_services();
6586
6614
  init_tmux();
6587
6615
  const getSpecialistsRoute = HttpRouter.add("GET", "/api/specialists", httpHandler(Effect.gen(function* () {
6588
- const { getAllSpecialistStatus, getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
6616
+ const { getAllSpecialistStatus, getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
6589
6617
  return jsonResponse({
6590
6618
  specialists: yield* Effect.promise(() => getAllSpecialistStatus()),
6591
6619
  projects: yield* Effect.promise(() => getAllProjectSpecialistStatuses())
6592
6620
  });
6593
6621
  })));
6594
6622
  const postSpecialistsResetAllRoute = HttpRouter.add("POST", "/api/specialists/reset-all", httpHandler(Effect.gen(function* () {
6595
- const { getAllSpecialists, isRunning, getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
6596
- const { clearHookSync } = yield* Effect.promise(() => import("./hooks-DvX33gY_.js"));
6623
+ const { getAllSpecialists, isRunning, getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
6624
+ const { clearHookSync } = yield* Effect.promise(() => import("./hooks-B-HItBiS.js"));
6597
6625
  const specialists = getAllSpecialists();
6598
6626
  const results = [];
6599
6627
  for (const specialist of specialists) {
@@ -6649,7 +6677,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6649
6677
  }
6650
6678
  console.log(`[specialists/done] ${specialist} signaling ${status} for ${normalizedIssueId}`);
6651
6679
  if (specialist === "merge") {
6652
- const { reportSpecialistCompletion } = yield* Effect.promise(() => import("./specialist-completion-qOgqdqXH.js"));
6680
+ const { reportSpecialistCompletion } = yield* Effect.promise(() => import("./specialist-completion-CqmduO92.js"));
6653
6681
  if (yield* reportSpecialistCompletion(normalizedIssueId, {
6654
6682
  status,
6655
6683
  notes
@@ -6696,7 +6724,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6696
6724
  if (specialist === "inspect" && status === "failed") yield* Effect.promise(() => reportTieredInspectFailureEscalation(normalizedIssueId, notes));
6697
6725
  yield* Effect.promise(async () => {
6698
6726
  try {
6699
- const { getTmuxSessionName, updateRunMetadata, makeSpecialistRegistryKey } = await import("./specialists-C6WkeKFK.js");
6727
+ const { getTmuxSessionName, updateRunMetadata, makeSpecialistRegistryKey } = await import("./specialists-Dqe6_HE5.js");
6700
6728
  const projectKey = resolveProjectFromIssueSync(normalizedIssueId)?.projectKey;
6701
6729
  const tmuxSession = projectKey ? getTmuxSessionName(`${specialist}-agent`, projectKey, normalizedIssueId) : getTmuxSessionName(`${specialist}-agent`);
6702
6730
  saveAgentRuntimeState(tmuxSession, {
@@ -6715,7 +6743,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6715
6743
  });
6716
6744
  console.log(`[specialists/done] Cleared registry lock for ${registryKey} (${projectKey})`);
6717
6745
  }
6718
- const { updateSpecialistHandoffStatus } = await import("./specialist-handoff-logger-BsBNvVZv.js");
6746
+ const { updateSpecialistHandoffStatus } = await import("./specialist-handoff-logger-Dnjlwt7g.js");
6719
6747
  if (await Effect.runPromise(updateSpecialistHandoffStatus(normalizedIssueId, `${specialist}-agent`, status === "passed" ? "completed" : "failed", status === "passed" ? "success" : "failure"))) console.log(`[specialists/done] Updated handoff log: ${specialist}-agent ${normalizedIssueId} → ${status}`);
6720
6748
  } catch (err) {
6721
6749
  console.error(`[specialists/done] Error managing specialist state:`, err);
@@ -6727,7 +6755,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6727
6755
  if (project) {
6728
6756
  const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
6729
6757
  if (existsSync(workspacePath)) {
6730
- const { getWorkspaceGitInfo } = await import("./git-utils-DmF5xkj8.js");
6758
+ const { getWorkspaceGitInfo } = await import("./git-utils-CsKGnzFA.js");
6731
6759
  const { HEAD } = await Effect.runPromise(getWorkspaceGitInfo(workspacePath));
6732
6760
  setReviewStatusSync(normalizedIssueId, { reviewedAtCommit: HEAD });
6733
6761
  console.log(`[specialists/done] Snapshotted reviewedAtCommit=${HEAD.substring(0, 8)} for ${normalizedIssueId}`);
@@ -6739,7 +6767,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6739
6767
  });
6740
6768
  if (specialist === "inspect" && status === "passed") yield* Effect.promise(async () => {
6741
6769
  try {
6742
- const { onInspectComplete } = await import("./inspect-agent-CyXNo9fM.js");
6770
+ const { onInspectComplete } = await import("./inspect-agent-Dq0z1k3H.js");
6743
6771
  const project = resolveProjectFromIssueSync(normalizedIssueId);
6744
6772
  if (project) {
6745
6773
  const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
@@ -6755,7 +6783,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6755
6783
  if (project) {
6756
6784
  if (existsSync(join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`))) {
6757
6785
  setReviewStatusSync(normalizedIssueId, { testStatus: "passed" });
6758
- const { initEventStore } = await import("./event-store-DABarGNz.js");
6786
+ const { initEventStore } = await import("./event-store-CpBGsO6_.js");
6759
6787
  await (await initEventStore()).appendAsync({
6760
6788
  type: "test.passed",
6761
6789
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -6808,8 +6836,8 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6808
6836
  if (notes?.toLowerCase().includes("conflict")) yield* Effect.promise(async () => {
6809
6837
  try {
6810
6838
  const workAgentId = `agent-${normalizedIssueId.toLowerCase()}`;
6811
- const { sessionExists } = await import("./tmux-HQLgwo_C.js");
6812
- const { messageAgent, spawnAgent, getAgentStateSync } = await import("./agents-Czz6R57Z.js");
6839
+ const { sessionExists } = await import("./tmux-BAvtac_u.js");
6840
+ const { messageAgent, spawnAgent, getAgentStateSync } = await import("./agents-DyHKlq1I.js");
6813
6841
  if (await Effect.runPromise(sessionExists(workAgentId))) {
6814
6842
  await messageAgent(workAgentId, `MERGE CONFLICT: The merge-agent could not rebase your branch onto main due to conflicts. Please fix this now:\n\n1. git fetch origin main\n2. git rebase origin/main\n3. Resolve any conflicts (git add <file> && git rebase --continue)\n4. git push --force-with-lease\n5. Resubmit: curl -s -X POST http://localhost:3011/api/review/${normalizedIssueId}/request -H "Content-Type: application/json" -d "{}"\n\nConflict details: ${notes}`);
6815
6843
  console.log(`[specialists/done] Sent rebase instructions to ${workAgentId}`);
@@ -6823,7 +6851,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6823
6851
  try {
6824
6852
  const project = resolveProjectFromIssueSync(normalizedIssueId);
6825
6853
  const workspacePath = project ? join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`) : void 0;
6826
- const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-D5lW0o3k.js");
6854
+ const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-JImjut0z.js");
6827
6855
  const result = await Effect.runPromise(deliverReviewVerdictFeedback({
6828
6856
  issueId: normalizedIssueId,
6829
6857
  verdict: status === "failed" ? "failed" : "blocked",
@@ -6864,7 +6892,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6864
6892
  });
6865
6893
  })));
6866
6894
  const postSpecialistsLogsCleanupAllRoute = HttpRouter.add("POST", "/api/specialists/logs/cleanup-all", httpHandler(Effect.gen(function* () {
6867
- const { cleanupAllLogsSync } = yield* Effect.promise(() => import("./specialist-logs-CSLtvPx6.js"));
6895
+ const { cleanupAllLogsSync } = yield* Effect.promise(() => import("./specialist-logs-CQnKzuZs.js"));
6868
6896
  const results = cleanupAllLogsSync();
6869
6897
  return jsonResponse({
6870
6898
  success: true,
@@ -6874,7 +6902,7 @@ const postSpecialistsLogsCleanupAllRoute = HttpRouter.add("POST", "/api/speciali
6874
6902
  });
6875
6903
  })));
6876
6904
  const getSpecialistsProjectsRoute = HttpRouter.add("GET", "/api/specialists/projects", httpHandler(Effect.gen(function* () {
6877
- const { getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
6905
+ const { getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
6878
6906
  return jsonResponse(yield* Effect.promise(() => getAllProjectSpecialistStatuses()));
6879
6907
  })));
6880
6908
  const postSpecialistWakeRoute = HttpRouter.add("POST", "/api/specialists/:name/wake", httpHandler(Effect.gen(function* () {
@@ -6918,7 +6946,7 @@ const postSpecialistReportStatusRoute = HttpRouter.add("POST", "/api/specialists
6918
6946
  "blocked",
6919
6947
  "failed"
6920
6948
  ].includes(status)) {
6921
- const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
6949
+ const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
6922
6950
  saveAgentRuntimeState(getTmuxSessionName(name), {
6923
6951
  state: "idle",
6924
6952
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
@@ -7039,7 +7067,7 @@ const postProjectSpecialistKillRoute = HttpRouter.add("POST", "/api/specialists/
7039
7067
  const issueId = params["issueId"];
7040
7068
  const type = params["type"];
7041
7069
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
7042
- const { getTmuxSessionName, makeSpecialistRegistryKey, getRunMetadata } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
7070
+ const { getTmuxSessionName, makeSpecialistRegistryKey, getRunMetadata } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
7043
7071
  const tmuxSession = getRunMetadata(project, makeSpecialistRegistryKey(type, issueId)).tmuxSession ?? getTmuxSessionName(type, project, issueId);
7044
7072
  yield* Effect.promise(() => Effect.runPromise(killSession(tmuxSession)).catch(() => {}));
7045
7073
  saveAgentRuntimeState(tmuxSession, {
@@ -7066,7 +7094,7 @@ const getProjectSpecialistRunsRoute = HttpRouter.add("GET", "/api/specialists/:p
7066
7094
  if (limitParam) limit = parseInt(limitParam, 10);
7067
7095
  if (offsetParam) offset = parseInt(offsetParam, 10);
7068
7096
  }
7069
- const { listRunLogsSync } = yield* Effect.promise(() => import("./specialist-logs-CSLtvPx6.js"));
7097
+ const { listRunLogsSync } = yield* Effect.promise(() => import("./specialist-logs-CQnKzuZs.js"));
7070
7098
  return jsonResponse(listRunLogsSync(project, type, {
7071
7099
  limit,
7072
7100
  offset
@@ -7077,7 +7105,7 @@ const getProjectSpecialistRunStreamRoute = HttpRouter.add("GET", "/api/specialis
7077
7105
  const project = params["project"];
7078
7106
  const type = params["type"];
7079
7107
  const runId = params["runId"];
7080
- const { getRunLogPath, isRunLogActive } = yield* Effect.promise(() => import("./specialist-logs-CSLtvPx6.js"));
7108
+ const { getRunLogPath, isRunLogActive } = yield* Effect.promise(() => import("./specialist-logs-CQnKzuZs.js"));
7081
7109
  const logPath = getRunLogPath(project, type, runId);
7082
7110
  if (!existsSync(logPath)) return jsonResponse({ error: "Run log not found" }, { status: 404 });
7083
7111
  const encoder = new TextEncoder();
@@ -7136,7 +7164,7 @@ const getProjectSpecialistRunRoute = HttpRouter.add("GET", "/api/specialists/:pr
7136
7164
  const project = params["project"];
7137
7165
  const type = params["type"];
7138
7166
  const runId = params["runId"];
7139
- const { getRunLogSync, parseLogMetadata } = yield* Effect.promise(() => import("./specialist-logs-CSLtvPx6.js"));
7167
+ const { getRunLogSync, parseLogMetadata } = yield* Effect.promise(() => import("./specialist-logs-CQnKzuZs.js"));
7140
7168
  const content = getRunLogSync(project, type, runId);
7141
7169
  if (!content) return jsonResponse({ error: "Run log not found" }, { status: 404 });
7142
7170
  return jsonResponse({
@@ -7150,7 +7178,7 @@ const postProjectSpecialistRunTerminateRoute = HttpRouter.add("POST", "/api/spec
7150
7178
  const project = params["project"];
7151
7179
  const type = params["type"];
7152
7180
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
7153
- const { terminateSpecialist } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
7181
+ const { terminateSpecialist } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
7154
7182
  yield* Effect.promise(() => terminateSpecialist(project, type));
7155
7183
  return jsonResponse({
7156
7184
  success: true,
@@ -7162,7 +7190,7 @@ const postProjectSpecialistGracePauseRoute = HttpRouter.add("POST", "/api/specia
7162
7190
  const project = params["project"];
7163
7191
  const type = params["type"];
7164
7192
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
7165
- const { pauseGracePeriod } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
7193
+ const { pauseGracePeriod } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
7166
7194
  if (pauseGracePeriod(project, type)) return jsonResponse({
7167
7195
  success: true,
7168
7196
  message: "Grace period paused"
@@ -7174,7 +7202,7 @@ const postProjectSpecialistGraceResumeRoute = HttpRouter.add("POST", "/api/speci
7174
7202
  const project = params["project"];
7175
7203
  const type = params["type"];
7176
7204
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
7177
- const { resumeGracePeriod } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
7205
+ const { resumeGracePeriod } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
7178
7206
  if (resumeGracePeriod(project, type)) return jsonResponse({
7179
7207
  success: true,
7180
7208
  message: "Grace period resumed"
@@ -7186,7 +7214,7 @@ const postProjectSpecialistGraceExitRoute = HttpRouter.add("POST", "/api/special
7186
7214
  const project = params["project"];
7187
7215
  const type = params["type"];
7188
7216
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
7189
- const { exitGracePeriod } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
7217
+ const { exitGracePeriod } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
7190
7218
  exitGracePeriod(project, type);
7191
7219
  return jsonResponse({
7192
7220
  success: true,
@@ -7198,7 +7226,7 @@ const getProjectSpecialistGraceRoute = HttpRouter.add("GET", "/api/specialists/:
7198
7226
  const project = params["project"];
7199
7227
  const type = params["type"];
7200
7228
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
7201
- const { getGracePeriodState } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
7229
+ const { getGracePeriodState } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
7202
7230
  const state = getGracePeriodState(project, type);
7203
7231
  if (state) return jsonResponse(state);
7204
7232
  else return jsonResponse({ error: "No active grace period" }, { status: 404 });
@@ -7207,7 +7235,7 @@ const getProjectSpecialistContextRoute = HttpRouter.add("GET", "/api/specialists
7207
7235
  const params = yield* HttpRouter.params;
7208
7236
  const project = params["project"];
7209
7237
  const type = params["type"];
7210
- const { loadContextDigest } = yield* Effect.promise(() => import("./specialist-context-gjj8Z4Ii.js"));
7238
+ const { loadContextDigest } = yield* Effect.promise(() => import("./specialist-context-CJ-QjFR-.js"));
7211
7239
  const digest = loadContextDigest(project, type);
7212
7240
  if (digest) return jsonResponse({ digest });
7213
7241
  else return jsonResponse({ error: "No context digest found" }, { status: 404 });
@@ -7216,7 +7244,7 @@ const postProjectSpecialistContextRegenerateRoute = HttpRouter.add("POST", "/api
7216
7244
  const params = yield* HttpRouter.params;
7217
7245
  const project = params["project"];
7218
7246
  const type = params["type"];
7219
- const { regenerateContextDigest } = yield* Effect.promise(() => import("./specialist-context-gjj8Z4Ii.js"));
7247
+ const { regenerateContextDigest } = yield* Effect.promise(() => import("./specialist-context-CJ-QjFR-.js"));
7220
7248
  const digest = yield* Effect.promise(() => regenerateContextDigest(project, type));
7221
7249
  if (digest) return jsonResponse({
7222
7250
  digest,
@@ -7235,7 +7263,7 @@ const postProjectSpecialistCompleteRoute = HttpRouter.add("POST", "/api/speciali
7235
7263
  "blocked"
7236
7264
  ].includes(status)) return jsonResponse({ error: "Valid status (passed/failed/blocked) is required" }, { status: 400 });
7237
7265
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
7238
- const { signalSpecialistCompletion } = yield* Effect.promise(() => import("./specialists-C6WkeKFK.js"));
7266
+ const { signalSpecialistCompletion } = yield* Effect.promise(() => import("./specialists-Dqe6_HE5.js"));
7239
7267
  signalSpecialistCompletion(project, type, {
7240
7268
  status,
7241
7269
  notes
@@ -7269,8 +7297,8 @@ const postProjectSpecialistLogsCleanupRoute = HttpRouter.add("POST", "/api/speci
7269
7297
  const params = yield* HttpRouter.params;
7270
7298
  const project = params["project"];
7271
7299
  const type = params["type"];
7272
- const { cleanupOldLogsSync } = yield* Effect.promise(() => import("./specialist-logs-CSLtvPx6.js"));
7273
- const { getSpecialistRetention } = yield* Effect.promise(() => import("./projects-IRHJIPYC.js"));
7300
+ const { cleanupOldLogsSync } = yield* Effect.promise(() => import("./specialist-logs-CQnKzuZs.js"));
7301
+ const { getSpecialistRetention } = yield* Effect.promise(() => import("./projects-BKkwpH6q.js"));
7274
7302
  const retention = getSpecialistRetention(project);
7275
7303
  const deleted = cleanupOldLogsSync(project, type, {
7276
7304
  maxDays: retention.max_days,
@@ -7291,7 +7319,7 @@ const postProjectReviewRestartRoute = HttpRouter.add("POST", "/api/specialists/:
7291
7319
  const project = params["project"];
7292
7320
  const issueId = params["issueId"];
7293
7321
  const { model, harness } = yield* readJsonBody;
7294
- const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-CSswH985.js"));
7322
+ const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-CCum8sGe.js"));
7295
7323
  const killResult = yield* killAllReviewerSessions(project, issueId);
7296
7324
  const projectConfig = resolveProjectFromIssueSync(issueId);
7297
7325
  if (!projectConfig) return jsonResponse({ error: `Cannot resolve project for ${issueId}` }, { status: 404 });
@@ -7305,7 +7333,7 @@ const postProjectReviewRestartRoute = HttpRouter.add("POST", "/api/specialists/:
7305
7333
  }));
7306
7334
  branch = stdout.trim() || "unknown";
7307
7335
  } catch {}
7308
- const { spawnReviewRoleForIssue } = yield* Effect.promise(() => import("./review-agent-CSswH985.js"));
7336
+ const { spawnReviewRoleForIssue } = yield* Effect.promise(() => import("./review-agent-CCum8sGe.js"));
7309
7337
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
7310
7338
  const result = yield* spawnReviewRoleForIssue({
7311
7339
  issueId,
@@ -7456,4 +7484,4 @@ const specialistsRouteLayer = Layer.mergeAll(specialistsLegacyRouteLayer, specia
7456
7484
  //#endregion
7457
7485
  export { runInBatches as $, handleConversationDelete as A, stopConversationRuntime as B, isPiControlChannelHarness as C, conversationNeedsRunningRepair as D, validateConversationControlAckOrigin as E, isInsideGitWorkTree as F, cleanupOrphanedConversationAttachments as G, waitForPiTuiReady as H, resolveAllowedHarness as I, extractConversationAttachmentPaths as J, cleanupUnreferencedConversationAttachments as K, shouldReportUnresolvedLiveSession as L, handleConversationResume as M, handleConversationStop as N, conversationSessionAliveFromState as O, handleConversationSwitchModel as P, removeConversationAttachment as Q, spawnConversationSession as R, handleConversationThinkingLevel as S, resolveConversationDeliveryMethod as T, waitForTmuxSession as U, tmuxSessionExists as V, cleanupConversationAttachments as W, hasConversationAttachment as X, getConversationAttachmentsRoot as Y, isManagedConversationAttachmentPath as Z, handleConversationCodexApproval as _, validateOrigin as _t, agentsRouteLayer as a, panCliInvocation as at, handleConversationDeliveryMethod as b, getDefaultCwd as bt, hasDashboardInternalToken as c, resolveAgentHarness as ct, rejectUnsafeDashboardMutationRequest as d, resolveJsonlPath as dt, evaluateSpawnGuardrails as et, saveAgentStateAndEmitEvent as f, resolvePiSessionPath as ft, handleConversationAbort as g, isTrustedOriginForHost as gt, deliverConversationViaControlChannel as h, getHeaderFromMap as ht, validateSpecialistAutoCompleteMetadata as i, getWorkAgentLifecycleStateSync as it, handleConversationRestartAll as j, handleConversationCreate as k, rejectUnauthorizedDashboardRequest as l, resolveClaudeSessionId as lt, codexConversationPendingInput as m, waitForSessionRespawn as mt, _serverManagedMerges as n, resolveAgentGitInfo as nt, dashboardCsrfToken as o, spawnPanCli as ot, saveAgentStateAndEmitEventProgram as p, isRespawnPending as pt, ensureConversationAttachmentDir as q, firePostMergeLifecycle as r, resolveConversationGitInfo as rt, dashboardSessionCookieHeader as s, readLauncherPinnedSessionId as st, specialistsRouteLayer as t, invalidateAgentsCache as tt, rejectUnauthorizedDashboardSessionMintRequest as u, resolveCodexRolloutPath as ut, handleConversationCompact as v, validateOriginHeaders as vt, pickDeliverAs as w, handleConversationPlanAction as x, jsonResponse as xt, handleConversationControlAck as y, httpHandler as yt, startConversationModelBackfill as z };
7458
7486
 
7459
- //# sourceMappingURL=specialists-DAegTvRt.js.map
7487
+ //# sourceMappingURL=specialists-Bg9v4z3F.js.map