@overdeck/desktop 0.45.18 → 0.45.19

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 (268) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-aQFKQf-J.js → acceptance-criteria-DQqRIuQ-.js} +2 -2
  3. package/server/{advancing-selfheal-DgwQgm4D.js → advancing-selfheal-BYidNkmp.js} +5 -5
  4. package/server/{agent-gc-kpzxqT7P.js → agent-gc-ClNQLl_V.js} +3 -3
  5. package/server/{agent-state-C_6TG-Ad.js → agent-state-BMrpX7kU.js} +1 -1
  6. package/server/{agent-state-service-nUD3qfob.js → agent-state-service-BpAKmodj.js} +4 -4
  7. package/server/{agent-state-service-BUfovFfB.js → agent-state-service-CC9NMIWn.js} +1 -1
  8. package/server/{agents-BHBxr8c9.js → agents--ljN-wVY.js} +4 -4
  9. package/server/{agents-BA15AQqo.js → agents-DAUyr_Z1.js} +1 -1
  10. package/server/{archive-planning-D-QsBufn.js → archive-planning-2w8WQaeJ.js} +1 -1
  11. package/server/{archive-planning-CzCW9Ifl.js → archive-planning-BW3te5Vw.js} +3 -3
  12. package/server/{artifact-index-jobs-qqa51B2Z.js → artifact-index-jobs-DFO3eceF.js} +2 -2
  13. package/server/{backlog-auto-trigger-B7Bi0bvY.js → backlog-auto-trigger-DECBMxLq.js} +2 -2
  14. package/server/{briefing-freshness-DuxIE1yr.js → briefing-freshness-B1delh4l.js} +2 -2
  15. package/server/{checkpoint-manager-DixkLus7.js → checkpoint-manager-CjLY6A4r.js} +1 -1
  16. package/server/{checkpoint-manager-DF6hb9Jw.js → checkpoint-manager-D6_71Rpb.js} +2 -2
  17. package/server/checkpoint-worker.js +1 -1
  18. package/server/{checkpoints-BiviJqei.js → checkpoints-BYrLxVle.js} +2 -2
  19. package/server/{checkpoints-B1Z42tJE.js → checkpoints-xSuv4v4I.js} +1 -1
  20. package/server/{claude-hooks-provision-BeMGi4ty.js → claude-hooks-provision-DL6yfJB_.js} +1 -1
  21. package/server/{claude-hooks-provision-Du_PkMsp.js → claude-hooks-provision-DvfVZbbT.js} +2 -2
  22. package/server/{claude-permissions-BB6agcOZ.js → claude-permissions-CcncrTNF.js} +2 -2
  23. package/server/{claude-settings-overlay-CAq2oFSK.js → claude-settings-overlay-1IfYetv2.js} +2 -2
  24. package/server/{claude-settings-overlay-DUWWLd6M.js → claude-settings-overlay-Ca3LXjAC.js} +1 -1
  25. package/server/cli-BxZHwgRK.js +3 -0
  26. package/server/{cli-C33xPZNm.js → cli-DGZWYXio.js} +9 -9
  27. package/server/{cliproxy-CGBA1GzA.js → cliproxy-Dw42Xy3t.js} +2 -2
  28. package/server/{cliproxy-BQX1TL6N.js → cliproxy-DziJLbfo.js} +1 -1
  29. package/server/{close-issue-DNv8npc1.js → close-issue-DEGjxifn.js} +4 -4
  30. package/server/{closed-issue-reaper-LoMnnjtJ.js → closed-issue-reaper-BsJ3JqQy.js} +9 -9
  31. package/server/{closed-issue-reaper-DrqgBJlr.js → closed-issue-reaper-CNr7X4MB.js} +1 -1
  32. package/server/{codex-DxLivxri.js → codex-C8OlW-dN.js} +1 -1
  33. package/server/{codex-sgWVCGUd.js → codex-D5RyWzNL.js} +4 -4
  34. package/server/{codex-parser-DboQnEXN.js → codex-parser-BRxvUkk8.js} +2 -2
  35. package/server/{config-6MCHOZ2N.js → config-CQ2u44iP.js} +1 -1
  36. package/server/{config-DfaUXr6r.js → config-Cntj_tFu.js} +2 -2
  37. package/server/{config-yaml-CqaAyn8y.js → config-yaml-BQs6GbD_.js} +2 -1
  38. package/server/{conflict-gate-BubJprtD.js → conflict-gate-BE6JdfkO.js} +1 -1
  39. package/server/{conflict-gate-BF_zhcmb.js → conflict-gate-DdfwKgy0.js} +3 -3
  40. package/server/{context-layers-BFrxfl0l.js → context-layers-DFucrVVG.js} +3 -3
  41. package/server/{context-layers-DWL_8HhY.js → context-layers-DO0Eyq2E.js} +2 -2
  42. package/server/{control-settings-BguNQ1F_.js → control-settings-bxOCLsuE.js} +4 -4
  43. package/server/{conversation-compaction-DxSXl0pT.js → conversation-compaction-Dq6MfZdL.js} +8 -8
  44. package/server/{conversation-compaction-CRKAf2qP.js → conversation-compaction-lSlUb-cU.js} +1 -1
  45. package/server/{conversation-service-DzuY9qoH.js → conversation-service-BVt4MQ1_.js} +1 -1
  46. package/server/{conversation-service-mFVFdDQK.js → conversation-service-TZsQjkjT.js} +4 -4
  47. package/server/{conversations-BX5aD-6F.js → conversations-CxOWHNzv.js} +4 -4
  48. package/server/{conversations-BajHQ60c.js → conversations-DaF6elGK.js} +1 -1
  49. package/server/{cost-DuZ5vlv-.js → cost-Dlh0IEiv.js} +3 -3
  50. package/server/{cost-BoqD1Pxz.js → cost-oinpUqvE.js} +2 -2
  51. package/server/{cost-sync-BYnmnMkY.js → cost-sync-CVIAsrhB.js} +3 -3
  52. package/server/{dag-C6kYyF17.js → dag-ClFr7Bah.js} +2 -2
  53. package/server/dashboard-db-worker.js +6 -6
  54. package/server/{deacon-CwCiNuEZ.js → deacon-B8ygB3e8.js} +3 -3
  55. package/server/{deacon-Dru5onpk.js → deacon-D2-xTesT.js} +98 -98
  56. package/server/deacon-swarm-1vPLuj_l.js +2 -0
  57. package/server/{deacon-swarm-BPmBmSoU.js → deacon-swarm-yWKQhxiX.js} +12 -12
  58. package/server/deacon.js +8 -8
  59. package/server/{devcontainer-renderer-BqGNCzvN.js → devcontainer-renderer-xPhZHCrx.js} +2 -2
  60. package/server/{docker-CNjXS72x.js → docker-DPEglAwA.js} +2 -2
  61. package/server/{ensure-devcontainer-5e9xOve4.js → ensure-devcontainer-SzSvEdKq.js} +3 -3
  62. package/server/{ensure-devcontainer-C6gyUQdE.js → ensure-devcontainer-wU3ym1b5.js} +1 -1
  63. package/server/{event-store-D9UhQyMS.js → event-store-BZoXexYS.js} +1 -1
  64. package/server/{event-store-KZnWUKWh.js → event-store-D4s6eQ6o.js} +3 -3
  65. package/server/{events-BYbvqZky.js → events-Bn-wdUBF.js} +1 -1
  66. package/server/{events-2eFUPdqz.js → events-D1hMLl2a.js} +3 -3
  67. package/server/{factory-BtaRsHFC.js → factory-ltWnu0V_.js} +4 -4
  68. package/server/{feature-registry-population-Ca2UaV0U.js → feature-registry-population-xj-J1Wm7.js} +4 -4
  69. package/server/{feature-registry-storage-DaP-bQxO.js → feature-registry-storage-CQZukiLm.js} +2 -2
  70. package/server/{features-DqvaoQoa.js → features-Dyqi6N8f.js} +2 -2
  71. package/server/{feedback-target-BblmMe9P.js → feedback-target-Ba0zhSYI.js} +1 -1
  72. package/server/{feedback-target-BXWdOiYI.js → feedback-target-Chd5dm-Q.js} +7 -7
  73. package/server/{feedback-writer-CULeOOY4.js → feedback-writer-BtaoJGl2.js} +1 -1
  74. package/server/{feedback-writer-Dn8o9ZyE.js → feedback-writer-BujzReaQ.js} +4 -4
  75. package/server/{flywheel-CqkO3cDj.js → flywheel-FTInS73X.js} +10 -10
  76. package/server/{flywheel-BUWdcfhq.js → flywheel-bTImiVrk.js} +1 -1
  77. package/server/{flywheel-merge-order-VtjUweEb.js → flywheel-merge-order-DuenRJLZ.js} +6 -6
  78. package/server/{flywheel-merge-order-LDzQDwSg.js → flywheel-merge-order-O5Zu8iPw.js} +1 -1
  79. package/server/{flywheel-D9r1mw2U.js → flywheel-rmYbW-lh.js} +12 -12
  80. package/server/{forge-wEollMCi.js → forge-OWm99lie.js} +2 -2
  81. package/server/forge-x5lszTd0.js +2 -0
  82. package/server/{fts-db-Bgzn2RO7.js → fts-db-BRfS5ukG.js} +2 -2
  83. package/server/{fts-operations-Bj8yutnR.js → fts-operations-L5sNLoHl.js} +2 -2
  84. package/server/{git-utils-q8jNoBts.js → git-utils-BIEzv2Zp.js} +1 -1
  85. package/server/{git-utils-GxlL0tmt.js → git-utils-CP-bg-aM.js} +2 -2
  86. package/server/{github-app-tUbb8Ldr.js → github-app-CRUIvHuM.js} +2 -2
  87. package/server/{github-app-BrYwK_Gb.js → github-app-Dtn4ib6M.js} +1 -1
  88. package/server/{github-client-BwBU41jK.js → github-client-CWEFlCqL.js} +2 -2
  89. package/server/{github-client-D6CNsftm.js → github-client-DSVv6wX8.js} +1 -1
  90. package/server/{github-pr-lookup-BS5PqkJb.js → github-pr-lookup-D6CS9vtG.js} +2 -2
  91. package/server/{harness-resolve-Dx8hUsvC.js → harness-resolve-ScD6rV47.js} +3 -3
  92. package/server/{health-events-B0mj6Iae.js → health-events-DbcJmYmd.js} +1 -1
  93. package/server/{health-events-2DLp-5Xp.js → health-events-Dm1Vcvqe.js} +2 -2
  94. package/server/{hooks-BDcQJDUe.js → hooks-B6gaI6Kg.js} +1 -1
  95. package/server/{hooks-BS_JrvYP.js → hooks-VXuCnzCv.js} +2 -2
  96. package/server/{idle-stack-reaper-C1ymihno.js → idle-stack-reaper-Gv32ZCrQ.js} +1 -1
  97. package/server/{idle-stack-reaper-BCITXNW5.js → idle-stack-reaper-po700Lfg.js} +2 -2
  98. package/server/{infra-_Kx1m9pm.js → infra-DYwIXlK5.js} +4 -4
  99. package/server/{injection-Bvhyg_MV.js → injection-CTfFnpsG.js} +1 -1
  100. package/server/{injection-CCaYkofq.js → injection-DPsUoCJp.js} +7 -7
  101. package/server/inspect-agent-B25IP-0O.js +2 -0
  102. package/server/{inspect-agent-BqyZ4pCo.js → inspect-agent-CLkwfLRx.js} +9 -9
  103. package/server/{internal-token-Cl-1IxaE.js → internal-token--50JhWP7.js} +2 -2
  104. package/server/{internal-token-D-t28de5.js → internal-token-BOgxXMGy.js} +1 -1
  105. package/server/{io-DkC4sFSy.js → io-Cv9xQTks.js} +2 -2
  106. package/server/{issue-closed-Cpl4VDUM.js → issue-closed-CyqtoFUj.js} +7 -7
  107. package/server/{issue-lifecycle-YNTy3OT3.js → issue-lifecycle-Cm7ydBGK.js} +1 -1
  108. package/server/{issue-lifecycle-CFR8TJ22.js → issue-lifecycle-DR6n40bh.js} +20 -20
  109. package/server/{issue-service-singleton-D81mCts_.js → issue-service-singleton--LQ5c2zT.js} +1 -1
  110. package/server/{issue-service-singleton-ldvUUXi3.js → issue-service-singleton-DKKPneH4.js} +8 -8
  111. package/server/{issues-DIEHt9sq.js → issues-Cr-BLFLO.js} +2 -2
  112. package/server/{jsonl-parser-Cd5jIqh7.js → jsonl-parser-Bp_xCkX4.js} +3 -3
  113. package/server/{label-cleanup-Btny6Gyo.js → label-cleanup-BbLy2FZe.js} +2 -2
  114. package/server/{launcher-generator-BXLM9f4b.js → launcher-generator-C-FU4PNT.js} +4 -4
  115. package/server/{layers-gCJlK62m.js → layers-C-6lBDUE.js} +2 -2
  116. package/server/{lifecycle-D7aQUnTO.js → lifecycle-Bmw8yU_A.js} +5 -5
  117. package/server/{lifecycle-io-DQBF-GHO.js → lifecycle-io-B150XprC.js} +1 -1
  118. package/server/{lifecycle-io-FfPUtz-y.js → lifecycle-io-Dcu-_ktz.js} +4 -4
  119. package/server/{linear-client-CDH2D6Qy.js → linear-client-BHjs0luk.js} +2 -2
  120. package/server/{linear-client-WrYrUIAH.js → linear-client-s65LNmlG.js} +1 -1
  121. package/server/memory-fts-worker.js +1 -1
  122. package/server/{merge-Dervs4BF.js → merge-CM8swd2V.js} +1 -1
  123. package/server/{merge-BsDgUxFz.js → merge-CS0b-E3u.js} +3 -3
  124. package/server/{merge-agent-D6DNhe9j.js → merge-agent-Bu1hw9cz.js} +26 -26
  125. package/server/{merge-agent-DMQTJMP0.js → merge-agent-D6LRIW63.js} +1 -1
  126. package/server/{merge-blockers-WWWi6Ur2.js → merge-blockers-Dt43hJiW.js} +2 -2
  127. package/server/merge-ops-DwYi3U_x.js +2 -0
  128. package/server/{merge-rebase-Czth9ggm.js → merge-rebase-B3vQcTq1.js} +2 -2
  129. package/server/{merge-set-vuE3MEVt.js → merge-set-BMEGEKQg.js} +1 -1
  130. package/server/{merge-set-DNc4zBqd.js → merge-set-Pe3spe8k.js} +3 -3
  131. package/server/{merge-sync-B9nHdUGx.js → merge-sync-CpxFRIQ7.js} +1 -1
  132. package/server/{merge-sync-B2KSk54U.js → merge-sync-STpg1hk3.js} +2 -2
  133. package/server/{merge-train-DJgr81tF.js → merge-train-DLw2hDk0.js} +3 -3
  134. package/server/{merge-train-deps-B2OWS0k9.js → merge-train-deps-BlCGLqwy.js} +4 -4
  135. package/server/{merge-verification-BBIXUEqa.js → merge-verification-C4WMP40D.js} +4 -4
  136. package/server/node_modules/.package-lock.json +1 -1
  137. package/server/{orphan-proposed-reconciler-DbTmT7qy.js → orphan-proposed-reconciler-eetUXmmt.js} +1 -1
  138. package/server/{orphan-proposed-reconciler-B8H41C4a.js → orphan-proposed-reconciler-k9eydM1E.js} +9 -9
  139. package/server/package-lock.json +2 -2
  140. package/server/package.json +1 -1
  141. package/server/{pan-dir-BTw4MdSe.js → pan-dir-D3vABXMs.js} +3 -3
  142. package/server/{paths-Btkc8mzp.js → paths-DIoslfsu.js} +2 -2
  143. package/server/{pipeline-notifier-3frIvSi3.js → pipeline-notifier-Bgidcelx.js} +1 -1
  144. package/server/{pipeline-notifier-DTd19f18.js → pipeline-notifier-CuBONomU.js} +2 -2
  145. package/server/{project-pipelines-B95fcAek.js → project-pipelines-B9b_JVTS.js} +2 -2
  146. package/server/{projects-Dc9aoVoG.js → projects-DxMUi2eI.js} +1 -1
  147. package/server/{prompts-CIVmjHxn.js → prompts-CY1xnHS-.js} +2 -2
  148. package/server/{providers-BLLk5IIb.js → providers-B7BNcK_j.js} +1 -1
  149. package/server/{providers-C-yWibCk.js → providers-CAlK2If5.js} +7 -7
  150. package/server/{pull-requests-D7AL5woD.js → pull-requests-Cs4VLxiY.js} +1 -1
  151. package/server/{pull-requests-NDDNtqNq.js → pull-requests-CxfrQiWX.js} +3 -3
  152. package/server/{queries-C0LCGG21.js → queries-srgusoi8.js} +59 -59
  153. package/server/{rally-4oKvnxLG.js → rally-AKkjuGdi.js} +3 -3
  154. package/server/rally-BOza5j3_.js +3 -0
  155. package/server/{rally-api-41tT6ikZ.js → rally-api-BGxATnyr.js} +2 -2
  156. package/server/{rally-api-BsaQ8Vnz.js → rally-api-Dbqw1YW9.js} +1 -1
  157. package/server/{rally-client-b5PT1x5L.js → rally-client-B1U5ewpO.js} +1 -1
  158. package/server/{rally-client-Bo4hNcCZ.js → rally-client-D8h73ei_.js} +4 -4
  159. package/server/{rebuild-stack-Ddv6W017.js → rebuild-stack-BYdtwS6f.js} +5 -5
  160. package/server/{rebuild-stack-C7JPUom6.js → rebuild-stack-Dsm9WjKv.js} +1 -1
  161. package/server/{reconstruct-cache-Gqhm---K.js → reconstruct-cache-D7oM1lNv.js} +6 -6
  162. package/server/{record-DLOqfbkI.js → record-BeXdn9Ue.js} +1 -1
  163. package/server/{record-update-BltEmPge.js → record-update-Cb_pPM-F.js} +2 -2
  164. package/server/{record-update-CDp7aTaT.js → record-update-KFiISAmu.js} +1 -1
  165. package/server/{recovery-trip-Cn7KJVkS.js → recovery-trip-DwbsONZf.js} +2 -2
  166. package/server/{release-engine-BYzmIBf9.js → release-engine-CAai5W0V.js} +5 -5
  167. package/server/{release-set-7pnxFOWR.js → release-set-vNEAfyDH.js} +3 -3
  168. package/server/{remote-Cvu4CSDk.js → remote-8HlOfuF1.js} +3 -3
  169. package/server/{remote-rN0ecjHE.js → remote-RQMKOL_R.js} +3 -3
  170. package/server/{remote-agents-C2C6z9tj.js → remote-agents-C4a4DdTj.js} +6 -6
  171. package/server/{remote-agents-DYY5fFpd.js → remote-agents-_Z1SAaSK.js} +1 -1
  172. package/server/{remote-completion-2Kb4IDg_.js → remote-completion-CH3igKY8.js} +12 -12
  173. package/server/resume-Cr34JAXO.js +3 -0
  174. package/server/{review-agent-BZvk0N5G.js → review-agent-CQ7oRh_G.js} +22 -22
  175. package/server/{review-agent-CpSHLzed.js → review-agent-CUVj54v0.js} +1 -1
  176. package/server/{review-artifacts-PCo53YMn.js → review-artifacts-CC3yGv7o.js} +5 -5
  177. package/server/{review-context-M7QtJlJq.js → review-context-BuxaAgAd.js} +7 -7
  178. package/server/{review-monitor-BLC5mTTg.js → review-monitor-uogOppaW.js} +2 -2
  179. package/server/{review-status-77N3PoZr.js → review-status-BoJdyvUQ.js} +1 -1
  180. package/server/{review-status-DANr0t-v.js → review-status-By86XA6Z.js} +23 -21
  181. package/server/{review-status-enrichment-DwOg4UfL.js → review-status-enrichment-CRQAO27G.js} +3 -3
  182. package/server/{review-status-sync-Bd08OOFA.js → review-status-sync-BI4WhUkF.js} +1 -1
  183. package/server/{review-status-sync-BjTUJ5fx.js → review-status-sync-DUQmrLkK.js} +2 -2
  184. package/server/{review-verdict-feedback-CBf-J_wS.js → review-verdict-feedback-BNcGkBRD.js} +6 -6
  185. package/server/{review-verdict-feedback-BsFLjN_6.js → review-verdict-feedback-CWz9_9Kp.js} +1 -1
  186. package/server/{rollup-DTCCdEy4.js → rollup-B-K6PCbm.js} +1 -1
  187. package/server/{rollup-Bu0f2EyN.js → rollup-CqiFgtBp.js} +7 -7
  188. package/server/{scanner-BlZ2vB7j.js → scanner-BZmDUjyD.js} +7 -7
  189. package/server/{sequence-io-ylyDtz2J.js → sequence-io-BuUx1ZAY.js} +4 -4
  190. package/server/{sequencer-agent-DsWQ-87H.js → sequencer-agent-2uWOA_BC.js} +5 -5
  191. package/server/server.js +155 -153
  192. package/server/{service-CLVBC_1Y.js → service-COB19Uhm.js} +45 -45
  193. package/server/{session-fork-DlEIAhRy.js → session-fork-D18TscUZ.js} +2 -2
  194. package/server/{session-history-bnOFKMwf.js → session-history-DbWnzfo-.js} +2 -2
  195. package/server/settings-C3w2std9.js +2 -0
  196. package/server/{settings-Cqa-8nyj.js → settings-CFEdfovT.js} +2 -2
  197. package/server/{settings-gJrdLZy2.js → settings-DNPAf2X_.js} +3 -3
  198. package/server/{shadow-engineering-fq1YEKV3.js → shadow-engineering-D8xTtraU.js} +2 -2
  199. package/server/{shadow-state-RptE9Cau.js → shadow-state-CTgub0ME.js} +2 -2
  200. package/server/{shadow-state-BqeFAygK.js → shadow-state-fRDYhcyx.js} +1 -1
  201. package/server/{shadow-utils-BMWr5tRT.js → shadow-utils-DqMLnRgQ.js} +2 -2
  202. package/server/{smart-compaction-DldUel4B.js → smart-compaction-CL6yaFpc.js} +1 -1
  203. package/server/{smart-compaction-CmoXpjeU.js → smart-compaction-CsJDKM-N.js} +5 -5
  204. package/server/{spawn-planning-session-DT2tSMxo.js → spawn-planning-session-C_wIQ-Zg.js} +1 -1
  205. package/server/{spawn-planning-session-CoS6LTc6.js → spawn-planning-session-D0-NlNK1.js} +13 -13
  206. package/server/{specialist-context-CspI4Eog.js → specialist-context-DXj5Itg8.js} +5 -5
  207. package/server/{specialist-handoff-logger-Duz9RGvk.js → specialist-handoff-logger-BFH-IB0n.js} +2 -2
  208. package/server/{specialist-logs-DtSkPJZK.js → specialist-logs-B-rldhNg.js} +3 -3
  209. package/server/{specialists-Dax7tqXC.js → specialists-C6-b3YZb.js} +81 -81
  210. package/server/{specialists-CywEMwxk.js → specialists-CI_eqHAz.js} +1 -1
  211. package/server/{specialists-GF42OOqd.js → specialists-Dp8ABxVh.js} +18 -18
  212. package/server/{specialists-D9-dMUtI.js → specialists-Hq3EojmD.js} +1 -1
  213. package/server/specs-DPGNVh51.js +3 -0
  214. package/server/{stack-health-BsEVrJZ6.js → stack-health-Bxt-oGE6.js} +1 -1
  215. package/server/{stack-health-C-SnpRHh.js → stack-health-FtNYSTCS.js} +2 -2
  216. package/server/{stale-task-claims-vTxmRzLi.js → stale-task-claims-DnCHCATD.js} +4 -4
  217. package/server/{state-home-Bur1y4oH.js → state-home-BzzKVh_C.js} +2 -2
  218. package/server/{state-migrate-D3VveYfO.js → state-migrate-BS4IybIS.js} +3 -3
  219. package/server/{stuck-remediation-CaFYYTQW.js → stuck-remediation-CTNT4LUC.js} +1 -1
  220. package/server/{stuck-remediation-B699-p8v.js → stuck-remediation-DbwhGg3g.js} +15 -15
  221. package/server/{summary-fork-BxnF8Xh0.js → summary-fork-CloCB8dV.js} +2 -2
  222. package/server/{summary-fork-COqYpVa3.js → summary-fork-DaCs0tCq.js} +8 -8
  223. package/server/supervisor/{paths-Bk6hJRH9.js → paths-C1yU0jq4.js} +2 -1
  224. package/server/supervisor/pty-supervisor.js +2 -2
  225. package/server/supervisor/{pty-token-BZS5GYdG.js → pty-token-CSryb8Mb.js} +2 -2
  226. package/server/{supervisor-liMgIPDF.js → supervisor-CRED6PD6.js} +2 -2
  227. package/server/supervisor-DHwuClN_.js +2 -0
  228. package/server/{swarm-readiness-sXB1vhzo.js → swarm-readiness-CEOrP9rE.js} +3 -3
  229. package/server/{teardown-workspace-DvzqnmUF.js → teardown-workspace-Ckn7HGhp.js} +12 -12
  230. package/server/{test-agent-queue-hAU1Ah08.js → test-agent-queue-C8lE8r2j.js} +5 -5
  231. package/server/{tldr-daemon-DhGwd88s.js → tldr-daemon-BE5rqR90.js} +1 -1
  232. package/server/{tldr-daemon-Bam7Xhoo.js → tldr-daemon-CGwDr28O.js} +2 -2
  233. package/server/{tmux-U55cNGFG.js → tmux-C3X2XmV0.js} +2 -2
  234. package/server/{tmux-C-rgxRDA.js → tmux-DNaD06Gc.js} +1 -1
  235. package/server/{tracker-config-OkdbaUCm.js → tracker-config-5Cabf1MU.js} +2 -2
  236. package/server/{tracker-utils-CghXMF3q.js → tracker-utils-Cl-Eaqrv.js} +2 -2
  237. package/server/{tracker-utils-DdzUiPNU.js → tracker-utils-FexeJhyf.js} +1 -1
  238. package/server/{tunnel-DjlzgTl3.js → tunnel-D4px7sKc.js} +1 -1
  239. package/server/{tunnel-D1YxesBL.js → tunnel-KId6Z59z.js} +2 -2
  240. package/server/{uat-train-CqN34zFx.js → uat-train-B16skN7L.js} +23 -23
  241. package/server/{uat-train-CaaWs9Rp.js → uat-train-BBMrnecu.js} +1 -1
  242. package/server/{validation-DpTNakM6.js → validation-Zc4kAmqa.js} +1 -1
  243. package/server/{validation-4-z2Cw4z.js → validation-xAD7y5vW.js} +3 -3
  244. package/server/{verification-runner-BjHN80pJ.js → verification-runner-32y8NRfL.js} +13 -13
  245. package/server/{verification-runner-ShYu5Ph3.js → verification-runner-DAat1p1u.js} +1 -1
  246. package/server/{work-agent-prompt-BiJ43Der.js → work-agent-prompt-S3Fe1kpV.js} +9 -9
  247. package/server/{workflows-DkTotz_m.js → workflows-BNvk5gbE.js} +12 -12
  248. package/server/workflows-Cw2-a_hn.js +2 -0
  249. package/server/{workspace-CuN0ev4Z.js → workspace-BhUnCpcq.js} +3 -3
  250. package/server/{workspace-DQ4vVivd.js → workspace-C-gP6JAz.js} +1 -1
  251. package/server/{workspace-manager-Beeo2aKF.js → workspace-manager-BKiMmb0c.js} +10 -10
  252. package/server/{workspace-manager-B1mYn0lN.js → workspace-manager-DD6PDqV8.js} +1 -1
  253. package/server/{workspace-metadata-BZC5BmoP.js → workspace-metadata-Cnq0snrf.js} +2 -2
  254. package/server/{workspace-metadata-Cy7_ZACL.js → workspace-metadata-D5gNR61G.js} +1 -1
  255. package/server/{workspaces-CGuzW1Ia.js → workspaces-DiAwBsb9.js} +91 -91
  256. package/sync-sources/hooks/record-cost-event.js +1 -1
  257. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  258. package/server/cli-BFgrSWKV.js +0 -3
  259. package/server/deacon-swarm-CKyGJng1.js +0 -2
  260. package/server/forge-DJy3Zx4s.js +0 -2
  261. package/server/inspect-agent-DCJQm9Wu.js +0 -2
  262. package/server/merge-ops-h9OCnIVz.js +0 -2
  263. package/server/rally-DF5a3ioP.js +0 -3
  264. package/server/resume-BFLl-yLn.js +0 -3
  265. package/server/settings-CP3GGon2.js +0 -2
  266. package/server/specs-VwcFtEDi.js +0 -3
  267. package/server/supervisor-eWAAmXKu.js +0 -2
  268. package/server/workflows-B4C3lY9E.js +0 -2
@@ -1,39 +1,39 @@
1
1
  import { a as __toCommonJS } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { B as piProviderForModel, C as init_tier_table, D as canUseHarnessSync, Fn as init_projects, Jr as getOverdeckHome, N as UnknownModelError, Qr as resolveOhmypiExtensionPath, R as getProviderForModelSync, Sr as init_errors, T as resolveTieredExecutionEnabledForIssue, Vr as encodeClaudeProjectDir, Yr as init_paths, Z as resolveModel, ar as parseIssueIdSync, c as isClaudeCodeChannelsEnabled, f as loadConfigSync, fr as FsError, hn as shouldCommitLegacyWorkspaceArtifacts, k as init_harness_policy, kn as getProjectSync, nr as extractPrefixSync, pn as init_state_read_home, qn as resolveProjectFromIssueSync, rr as init_issue_id, t as init_config_yaml, w as resolveTieredExecutionEnabled, z as init_providers, zn as listProjectsSync } from "./config-yaml-CqaAyn8y.js";
2
+ import { B as piProviderForModel, C as init_tier_table, D as canUseHarnessSync, Fn as init_projects, Jr as getOverdeckHome, N as UnknownModelError, Qr as resolveOhmypiExtensionPath, R as getProviderForModelSync, Sr as init_errors, T as resolveTieredExecutionEnabledForIssue, Vr as encodeClaudeProjectDir, Yr as init_paths, Z as resolveModel, ar as parseIssueIdSync, c as isClaudeCodeChannelsEnabled, f as loadConfigSync, fr as FsError, hn as shouldCommitLegacyWorkspaceArtifacts, k as init_harness_policy, kn as getProjectSync, nr as extractPrefixSync, pn as init_state_read_home, qn as resolveProjectFromIssueSync, rr as init_issue_id, t as init_config_yaml, w as resolveTieredExecutionEnabled, z as init_providers, zn as listProjectsSync } from "./config-yaml-BQs6GbD_.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
4
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-_Kx1m9pm.js";
5
- import { A as listSessions, B as setOption, C as isHarnessProcessAlive, G as BLANKED_PROVIDER_ENV, I as sendKeysAsync, J as init_child_env, L as sendRawKeystroke, R as sessionExists, S as init_tmux, T as killSession, f as exactPaneTarget, i as capturePane, k as listSessionNames, m as findManagedServerPidSync, o as createSession, q as buildChildEnvWithoutTmuxSync, z as sessionExistsSync } from "./tmux-U55cNGFG.js";
6
- import { a as init_event_store, n as getEventStore } from "./event-store-KZnWUKWh.js";
4
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DYwIXlK5.js";
5
+ import { A as listSessions, B as setOption, C as isHarnessProcessAlive, G as BLANKED_PROVIDER_ENV, I as sendKeysAsync, J as init_child_env, L as sendRawKeystroke, R as sessionExists, S as init_tmux, T as killSession, f as exactPaneTarget, i as capturePane, k as listSessionNames, m as findManagedServerPidSync, o as createSession, q as buildChildEnvWithoutTmuxSync, z as sessionExistsSync } from "./tmux-C3X2XmV0.js";
6
+ import { a as init_event_store, n as getEventStore } from "./event-store-D4s6eQ6o.js";
7
7
  import { C as normalizeChannelReplyPayload, a as getHarnessBehavior, b as DomainEvent, t as init_src } from "./src-By3D85Ry.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-DANr0t-v.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-CFR8TJ22.js";
10
- import { d as isTerminalIssueStage, o as init_agents, u as getIssueStageSync } from "./agents-BHBxr8c9.js";
11
- import { n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-DuxIE1yr.js";
12
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-BoqD1Pxz.js";
13
- import { $n as wipeAgentStateDirs, At as init_bridge_token, Ct as deliverAgentPermissionDecision, Dn as clearAgentTroubled, Et as setAgentDeliveryMethod, Fn as getAgentStateSync, G as saveSessionId, H as getLatestSessionId, Hn as markAgentStoppedState, Jn as saveAgentState, Kt as getAgentRuntimeBaseCommand, L as messageAgent, Lt as transitionIssueToInProgress, M as resumeAgent, Nn as getAgentState, O as recoverAgent, Q as stopAgent, R as init_operator_interventions, S as init_tier_escalation, St as deliverAgentMessage, Tn as clearAgentPaused, U as getLatestSessionIdSync, V as getActivity, Vt as resolveStaffing, W as getSessionId, Xn as setAgentPaused, Yn as saveAgentStateSync, Yt as getProviderAuthMode, _t as init_config, ar as init_pty_supervisor_locate, bn as dismissDevChannelsDialog, br as checkCodexAuthStatus, dn as getProviderExportsForModel, er as writeAgentStateJsonSync, fr as waitForReadySignal, gr as saveAgentRuntimeState, i as listRunningAgents, in as ohmypiFifoPaths, ir as writePtyToken, jn as getAgentDir, jt as writeBridgeTokenSync, k as restartAgent, ln as determineModel, lr as normalizeAgentId, mn as validateProviderHealth, mr as getAgentRuntimeStateSync, n as init_queries, nn as piFifoPaths, or as resolvePtySupervisorScriptPath, pn as init_provider_health, pr as getAgentRuntimeState, r as listAgentStates, rn as init_ohmypi_fifo, rr as init_pty_token, s as init_agents$1, sr as clearReadySignal, tn as init_pi_fifo, un as getProviderEnvForModel, x as decideEscalation, xn as writeChannelsBridgeMcpConfig, xr as init_codex_auth, yt as loadCloisterConfigSync, z as operatorInterventionEvent, zt as init_staffing } from "./queries-C0LCGG21.js";
14
- import { a as performHandoff, i as checkAllTriggers, s as getAgentHealth, t as getCloisterService } from "./service-CLVBC_1Y.js";
15
- import { o as init_persistent_logger, s as logAgentLifecycleSync } from "./session-history-bnOFKMwf.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-By86XA6Z.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-DR6n40bh.js";
10
+ import { d as isTerminalIssueStage, o as init_agents, u as getIssueStageSync } from "./agents--ljN-wVY.js";
11
+ import { n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-B1delh4l.js";
12
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-oinpUqvE.js";
13
+ import { $n as wipeAgentStateDirs, At as init_bridge_token, Ct as deliverAgentPermissionDecision, Dn as clearAgentTroubled, Et as setAgentDeliveryMethod, Fn as getAgentStateSync, G as saveSessionId, H as getLatestSessionId, Hn as markAgentStoppedState, Jn as saveAgentState, Kt as getAgentRuntimeBaseCommand, L as messageAgent, Lt as transitionIssueToInProgress, M as resumeAgent, Nn as getAgentState, O as recoverAgent, Q as stopAgent, R as init_operator_interventions, S as init_tier_escalation, St as deliverAgentMessage, Tn as clearAgentPaused, U as getLatestSessionIdSync, V as getActivity, Vt as resolveStaffing, W as getSessionId, Xn as setAgentPaused, Yn as saveAgentStateSync, Yt as getProviderAuthMode, _t as init_config, ar as init_pty_supervisor_locate, bn as dismissDevChannelsDialog, br as checkCodexAuthStatus, dn as getProviderExportsForModel, er as writeAgentStateJsonSync, fr as waitForReadySignal, gr as saveAgentRuntimeState, i as listRunningAgents, in as ohmypiFifoPaths, ir as writePtyToken, jn as getAgentDir, jt as writeBridgeTokenSync, k as restartAgent, ln as determineModel, lr as normalizeAgentId, mn as validateProviderHealth, mr as getAgentRuntimeStateSync, n as init_queries, nn as piFifoPaths, or as resolvePtySupervisorScriptPath, pn as init_provider_health, pr as getAgentRuntimeState, r as listAgentStates, rn as init_ohmypi_fifo, rr as init_pty_token, s as init_agents$1, sr as clearReadySignal, tn as init_pi_fifo, un as getProviderEnvForModel, x as decideEscalation, xn as writeChannelsBridgeMcpConfig, xr as init_codex_auth, yt as loadCloisterConfigSync, z as operatorInterventionEvent, zt as init_staffing } from "./queries-srgusoi8.js";
14
+ import { a as performHandoff, i as checkAllTriggers, s as getAgentHealth, t as getCloisterService } from "./service-COB19Uhm.js";
15
+ import { o as init_persistent_logger, s as logAgentLifecycleSync } from "./session-history-DbWnzfo-.js";
16
16
  import { t as init_behavior } from "./behavior-CWqNMqE5.js";
17
- import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-OkdbaUCm.js";
18
- import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-ldvUUXi3.js";
17
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-5Cabf1MU.js";
18
+ import { n as init_issue_service_singleton, r as issue_service_singleton_exports } from "./issue-service-singleton-DKKPneH4.js";
19
19
  import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-DOjWNv3Z.js";
20
- import { F as init_lifecycle, P as generateVBriefFilename, f as readTierOverrides, g as serializeVBriefDocument, h as recordTierPromotion, m as readWorkspacePlanSync, o as init_io, r as findPlan, u as readPlan } from "./io-DkC4sFSy.js";
21
- 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-BX5aD-6F.js";
22
- import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-Ca2UaV0U.js";
23
- import { a as requireModelOverrideSync, i as normalizeModelOverrideSync, n as init_launcher_generator, r as init_model_validation, t as generateLauncherScriptSync } from "./launcher-generator-BXLM9f4b.js";
24
- import { a as init_claude_permissions, o as resolvePermissionModeSync, r as getClaudePermissionFlagsStringSync, t as BYPASS_PERMISSION_MODE } from "./claude-permissions-BB6agcOZ.js";
25
- import { h as workspaceContextFile, l as piGlobalContextFile, o as init_layers } from "./layers-gCJlK62m.js";
26
- import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-C-SnpRHh.js";
27
- import { l as init_dag, o as getDispatchableItems } from "./dag-C6kYyF17.js";
28
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-Dx8hUsvC.js";
29
- import { c as isStateMigrated, o as init_state_home } from "./state-home-Bur1y4oH.js";
30
- import { a as init_lifecycle_io, c as updatePlanStatus, s as transitionVBriefOnMain } from "./lifecycle-io-FfPUtz-y.js";
31
- 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-mFVFdDQK.js";
32
- 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-B699-p8v.js";
33
- import { Q as createInFlightGuard, Rt as classifyMemoryPressure, Ut as getResourceConfig, Wt as getSystemHealthSnapshot } from "./deacon-Dru5onpk.js";
34
- import { o as stopWorkspaceDocker, r as init_workspace_manager } from "./workspace-manager-Beeo2aKF.js";
35
- import { a as init_jsonl_parser, o as normalizeModelName } from "./jsonl-parser-Cd5jIqh7.js";
36
- import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-BZC5BmoP.js";
20
+ import { F as init_lifecycle, P as generateVBriefFilename, f as readTierOverrides, g as serializeVBriefDocument, h as recordTierPromotion, m as readWorkspacePlanSync, o as init_io, r as findPlan, u as readPlan } from "./io-Cv9xQTks.js";
21
+ 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-CxOWHNzv.js";
22
+ import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-xj-J1Wm7.js";
23
+ import { a as requireModelOverrideSync, i as normalizeModelOverrideSync, n as init_launcher_generator, r as init_model_validation, t as generateLauncherScriptSync } from "./launcher-generator-C-FU4PNT.js";
24
+ import { a as init_claude_permissions, o as resolvePermissionModeSync, r as getClaudePermissionFlagsStringSync, t as BYPASS_PERMISSION_MODE } from "./claude-permissions-CcncrTNF.js";
25
+ import { h as workspaceContextFile, l as piGlobalContextFile, o as init_layers } from "./layers-C-6lBDUE.js";
26
+ import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-FtNYSTCS.js";
27
+ import { l as init_dag, o as getDispatchableItems } from "./dag-ClFr7Bah.js";
28
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-ScD6rV47.js";
29
+ import { c as isStateMigrated, o as init_state_home } from "./state-home-BzzKVh_C.js";
30
+ import { a as init_lifecycle_io, c as updatePlanStatus, s as transitionVBriefOnMain } from "./lifecycle-io-Dcu-_ktz.js";
31
+ 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-TZsQjkjT.js";
32
+ 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-DbwhGg3g.js";
33
+ import { Q as createInFlightGuard, Rt as classifyMemoryPressure, Ut as getResourceConfig, Wt as getSystemHealthSnapshot } from "./deacon-D2-xTesT.js";
34
+ import { o as stopWorkspaceDocker, r as init_workspace_manager } from "./workspace-manager-BKiMmb0c.js";
35
+ import { a as init_jsonl_parser, o as normalizeModelName } from "./jsonl-parser-Bp_xCkX4.js";
36
+ import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-Cnq0snrf.js";
37
37
  import { basename, delimiter, dirname, join, resolve } from "node:path";
38
38
  import { Cause, Data, Effect, Layer, Option, Schema, Stream } from "effect";
39
39
  import { join as join$1 } from "path";
@@ -576,7 +576,7 @@ async function resolveCodexRolloutPath(agentId, opts = {}) {
576
576
  const agentDir = join(opts.agentsDirOverride ?? join(getOverdeckHome(), "agents"), agentId);
577
577
  const codexHome = join(agentDir, "codex-home");
578
578
  if (!await pathExists$1(codexHome)) return null;
579
- const { findRolloutPath, findLatestRollout } = await import("./codex-DxLivxri.js");
579
+ const { findRolloutPath, findLatestRollout } = await import("./codex-C8OlW-dN.js");
580
580
  const threadId = (await readOptional(join(agentDir, "codex-thread-id")))?.trim();
581
581
  if (threadId) {
582
582
  const rollout = findRolloutPath(codexHome, threadId);
@@ -1676,7 +1676,7 @@ const getAgentOutputRoute = HttpRouter.add("GET", "/api/agents/:id/output", http
1676
1676
  } catch {}
1677
1677
  let stdout;
1678
1678
  if (isRemote && vmName) {
1679
- const { getRemoteAgentOutput } = await import("./remote-agents-DYY5fFpd.js");
1679
+ const { getRemoteAgentOutput } = await import("./remote-agents-_Z1SAaSK.js");
1680
1680
  stdout = await getRemoteAgentOutput(id, vmName, parseInt(String(lines), 10) || 100);
1681
1681
  } else stdout = await Effect.runPromise(capturePane(id, parseInt(String(lines), 10) || 100));
1682
1682
  if (!stdout || stdout.trim() === "" || stdout.trim() === "Session not found") {
@@ -2097,7 +2097,7 @@ async function cleanupConversationAttachments(name) {
2097
2097
  * sessions that the lifecycle poller missed. */
2098
2098
  async function cleanupOrphanedConversationAttachments() {
2099
2099
  try {
2100
- const { listConversations } = await import("./conversations-BajHQ60c.js");
2100
+ const { listConversations } = await import("./conversations-DaF6elGK.js");
2101
2101
  const convNames = new Set(listConversations().map((c) => c.name));
2102
2102
  const root = getConversationAttachmentsRoot();
2103
2103
  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, {
@@ -2671,7 +2671,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
2671
2671
  const codexApprovalPolicy = codexPermMode === "full-access" ? "never" : "on-request";
2672
2672
  const codexSandboxMode = codexPermMode === "full-access" ? "danger-full-access" : codexPermMode === "read-only" ? "read-only" : "workspace-write";
2673
2673
  const codexApprovalsReviewer = codexPermMode === "auto-review" ? "auto_review" : void 0;
2674
- const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-DxLivxri.js");
2674
+ const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-C8OlW-dN.js");
2675
2675
  initCodexHome(codexHome, {
2676
2676
  trustedDir: cwd,
2677
2677
  approvalPolicy: codexApprovalPolicy,
@@ -2740,7 +2740,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
2740
2740
  } catch {}
2741
2741
  console.log(`[claude-invoke] purpose=conversation-session | model=${model || "default"} | source=conversations.ts:spawnConversationSession | session=${tmuxSession} | resume=${resume} | command="${runtimeCommand}"`);
2742
2742
  try {
2743
- const { preTrustDirectory } = await import("./workspace-manager-B1mYn0lN.js");
2743
+ const { preTrustDirectory } = await import("./workspace-manager-DD6PDqV8.js");
2744
2744
  preTrustDirectory(cwd);
2745
2745
  } catch {}
2746
2746
  try {
@@ -2757,7 +2757,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
2757
2757
  const codexHomeDir = codexFields.codexHome;
2758
2758
  (async () => {
2759
2759
  try {
2760
- const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-DxLivxri.js");
2760
+ const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-C8OlW-dN.js");
2761
2761
  const rollout = await waitForCodexRollout(codexHomeDir, 12e4);
2762
2762
  if (rollout) {
2763
2763
  const threadId = extractThreadIdFromRollout(rollout);
@@ -3511,7 +3511,7 @@ const postInternalAgentPermissionRequestRoute = HttpRouter.add("POST", "/api/int
3511
3511
  error: "missing agent id"
3512
3512
  }, { status: 400 });
3513
3513
  const request = yield* HttpServerRequest.HttpServerRequest;
3514
- const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-D-t28de5.js"));
3514
+ const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-BOgxXMGy.js"));
3515
3515
  const expected = getInternalTokenSync();
3516
3516
  if (!expected) return jsonResponse({
3517
3517
  ok: false,
@@ -3778,7 +3778,7 @@ const getAgentHealthHistoryRoute = HttpRouter.add("GET", "/api/agents/:id/health
3778
3778
  const request = yield* HttpServerRequest.HttpServerRequest;
3779
3779
  const urlOpt = HttpServerRequest.toURL(request);
3780
3780
  const hours = Option.isSome(urlOpt) ? urlOpt.value.searchParams.get("hours") ?? "24" : "24";
3781
- const { getHealthHistory } = yield* Effect.promise(() => import("./health-events-B0mj6Iae.js"));
3781
+ const { getHealthHistory } = yield* Effect.promise(() => import("./health-events-DbcJmYmd.js"));
3782
3782
  const endTime = /* @__PURE__ */ new Date();
3783
3783
  const startTime = /* @__PURE__ */ new Date(endTime.getTime() - parseInt(hours) * 60 * 60 * 1e3);
3784
3784
  const events = getHealthHistory(id, startTime.toISOString(), endTime.toISOString());
@@ -3819,7 +3819,7 @@ function emitAgentRuntimeEvent(id, body, timestamp) {
3819
3819
  detail: String(decoded.failure)
3820
3820
  }, { status: 400 })
3821
3821
  };
3822
- const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-BUfovFfB.js"));
3822
+ const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-CC9NMIWn.js"));
3823
3823
  yield* (yield* AgentStateService).emit(decoded.success);
3824
3824
  return {
3825
3825
  ok: true,
@@ -3901,7 +3901,7 @@ const getAgentRuntimeRoute = HttpRouter.add("GET", "/api/agents/:id/runtime", ht
3901
3901
  success: false,
3902
3902
  error: "missing agent id"
3903
3903
  }, { status: 400 });
3904
- const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-BUfovFfB.js"));
3904
+ const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-CC9NMIWn.js"));
3905
3905
  const snapshot = yield* (yield* AgentStateService).get(id);
3906
3906
  if (!snapshot) return jsonResponse({
3907
3907
  success: false,
@@ -4014,8 +4014,8 @@ function createAgentStopHandler(lifecycleEvent) {
4014
4014
  yield* stopAgent(id);
4015
4015
  if (stateBeforeStop?.issueId) yield* Effect.promise(async () => {
4016
4016
  try {
4017
- const { resolveProjectFromIssueSync } = await import("./projects-Dc9aoVoG.js");
4018
- const { findWorkspacePath } = await import("./archive-planning-D-QsBufn.js");
4017
+ const { resolveProjectFromIssueSync } = await import("./projects-DxMUi2eI.js");
4018
+ const { findWorkspacePath } = await import("./archive-planning-2w8WQaeJ.js");
4019
4019
  const issueLower = stateBeforeStop.issueId.toLowerCase();
4020
4020
  const workspacePath = findWorkspacePath(resolveProjectFromIssueSync(stateBeforeStop.issueId)?.projectPath ?? process.cwd(), issueLower);
4021
4021
  if (workspacePath) {
@@ -5116,15 +5116,15 @@ init_agents$1();
5116
5116
  function handleRemoteAgentSpawn(input) {
5117
5117
  return Effect.gen(function* () {
5118
5118
  const { issueId, workspacePath, workspaceMetadata, spawnModel, projectPath, spawnGuardrails, lifecycle } = input;
5119
- const { spawnRemoteAgent, checkRemoteSpendCap } = yield* Effect.promise(() => import("./remote-agents-DYY5fFpd.js"));
5120
- const { createFlyProviderFromConfig } = yield* Effect.promise(() => import("./remote-Cvu4CSDk.js"));
5121
- const { loadConfigSync: loadPanConfig } = yield* Effect.promise(() => import("./config-6MCHOZ2N.js"));
5119
+ const { spawnRemoteAgent, checkRemoteSpendCap } = yield* Effect.promise(() => import("./remote-agents-_Z1SAaSK.js"));
5120
+ const { createFlyProviderFromConfig } = yield* Effect.promise(() => import("./remote-8HlOfuF1.js"));
5121
+ const { loadConfigSync: loadPanConfig } = yield* Effect.promise(() => import("./config-CQ2u44iP.js"));
5122
5122
  const panConfig = loadPanConfig();
5123
5123
  const spendCap = checkRemoteSpendCap(panConfig);
5124
5124
  if (!spendCap.allowed) return jsonResponse({ error: spendCap.message }, { status: 429 });
5125
5125
  const fly = createFlyProviderFromConfig(panConfig.remote);
5126
5126
  yield* Effect.promise(() => fly.syncAllCredentials(workspaceMetadata.vmName));
5127
- const { buildWorkAgentPrompt, getTrackerContext } = yield* Effect.promise(() => import("./work-agent-prompt-BiJ43Der.js"));
5127
+ const { buildWorkAgentPrompt, getTrackerContext } = yield* Effect.promise(() => import("./work-agent-prompt-S3Fe1kpV.js"));
5128
5128
  const trackerContext = yield* Effect.promise(() => getTrackerContext(issueId, workspacePath));
5129
5129
  const agentPrompt = yield* Effect.promise(() => buildWorkAgentPrompt({
5130
5130
  issueId,
@@ -5760,7 +5760,7 @@ const postAgentsRoute = HttpRouter.add("POST", "/api/agents", httpHandler(Effect
5760
5760
  console.warn(`[start-agent] Failed to set plan.status=running (non-fatal): ${planStatusErr?.message ?? planStatusErr}`);
5761
5761
  }
5762
5762
  try {
5763
- const { appendSessionEntry, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = yield* Effect.promise(() => import("./record-DLOqfbkI.js"));
5763
+ const { appendSessionEntry, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = yield* Effect.promise(() => import("./record-BeXdn9Ue.js"));
5764
5764
  const recordProject = resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath);
5765
5765
  yield* Effect.promise(() => appendSessionEntry(recordProject, issueId, {
5766
5766
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -6146,10 +6146,10 @@ const _serverManagedMerges = /* @__PURE__ */ new Set();
6146
6146
  function firePostMergeLifecycle(issueId, options) {
6147
6147
  const started = postMergeGuard.run(issueId, async () => {
6148
6148
  const projectPath = getProjectPathForIssue(extractPrefixSync(issueId) ?? issueId.split("-")[0]);
6149
- const { postMergeLifecycle } = await import("./merge-agent-DMQTJMP0.js");
6149
+ const { postMergeLifecycle } = await import("./merge-agent-D6LRIW63.js");
6150
6150
  await postMergeLifecycle(issueId, projectPath, options?.sourceBranch, options?.verifiedMergedRef ? { verifiedMergedRef: options.verifiedMergedRef } : void 0);
6151
6151
  console.log(`[merge] post-merge lifecycle completed for ${issueId}`);
6152
- const { runMergeTrainReconcile } = await import("./merge-train-DJgr81tF.js");
6152
+ const { runMergeTrainReconcile } = await import("./merge-train-DLw2hDk0.js");
6153
6153
  const outcomes = await runMergeTrainReconcile(issueId);
6154
6154
  if (outcomes.length > 0) console.log(`[merge-train] reconciled ${outcomes.length} sibling(s) after ${issueId}: ` + outcomes.map((o) => `${o.issueId}=${o.result}`).join(", "));
6155
6155
  }, (err) => console.error(`[merge] post-merge lifecycle failed for ${issueId}:`, err));
@@ -6169,15 +6169,15 @@ init_review_status();
6169
6169
  init_domain_services();
6170
6170
  init_tmux();
6171
6171
  const getSpecialistsRoute = HttpRouter.add("GET", "/api/specialists", httpHandler(Effect.gen(function* () {
6172
- const { getAllSpecialistStatus, getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6172
+ const { getAllSpecialistStatus, getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6173
6173
  return jsonResponse({
6174
6174
  specialists: yield* Effect.promise(() => getAllSpecialistStatus()),
6175
6175
  projects: yield* Effect.promise(() => getAllProjectSpecialistStatuses())
6176
6176
  });
6177
6177
  })));
6178
6178
  const postSpecialistsResetAllRoute = HttpRouter.add("POST", "/api/specialists/reset-all", httpHandler(Effect.gen(function* () {
6179
- const { getAllSpecialists, isRunning, getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6180
- const { clearHookSync } = yield* Effect.promise(() => import("./hooks-BDcQJDUe.js"));
6179
+ const { getAllSpecialists, isRunning, getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6180
+ const { clearHookSync } = yield* Effect.promise(() => import("./hooks-B6gaI6Kg.js"));
6181
6181
  const specialists = getAllSpecialists();
6182
6182
  const results = [];
6183
6183
  for (const specialist of specialists) {
@@ -6274,7 +6274,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6274
6274
  if (specialist === "inspect" && status === "failed") yield* Effect.promise(() => reportTieredInspectFailureEscalation(normalizedIssueId, notes));
6275
6275
  yield* Effect.promise(async () => {
6276
6276
  try {
6277
- const { getTmuxSessionName, updateRunMetadata, makeSpecialistRegistryKey } = await import("./specialists-D9-dMUtI.js");
6277
+ const { getTmuxSessionName, updateRunMetadata, makeSpecialistRegistryKey } = await import("./specialists-Hq3EojmD.js");
6278
6278
  const projectKey = resolveProjectFromIssueSync(normalizedIssueId)?.projectKey;
6279
6279
  const tmuxSession = projectKey ? getTmuxSessionName(`${specialist}-agent`, projectKey, normalizedIssueId) : getTmuxSessionName(`${specialist}-agent`);
6280
6280
  saveAgentRuntimeState(tmuxSession, {
@@ -6293,7 +6293,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6293
6293
  });
6294
6294
  console.log(`[specialists/done] Cleared registry lock for ${registryKey} (${projectKey})`);
6295
6295
  }
6296
- const { updateSpecialistHandoffStatus } = await import("./specialist-handoff-logger-Duz9RGvk.js");
6296
+ const { updateSpecialistHandoffStatus } = await import("./specialist-handoff-logger-BFH-IB0n.js");
6297
6297
  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}`);
6298
6298
  } catch (err) {
6299
6299
  console.error(`[specialists/done] Error managing specialist state:`, err);
@@ -6305,7 +6305,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6305
6305
  if (project) {
6306
6306
  const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
6307
6307
  if (existsSync(workspacePath)) {
6308
- const { getWorkspaceGitInfo } = await import("./git-utils-q8jNoBts.js");
6308
+ const { getWorkspaceGitInfo } = await import("./git-utils-BIEzv2Zp.js");
6309
6309
  const { HEAD } = await Effect.runPromise(getWorkspaceGitInfo(workspacePath));
6310
6310
  setReviewStatusSync(normalizedIssueId, { reviewedAtCommit: HEAD });
6311
6311
  console.log(`[specialists/done] Snapshotted reviewedAtCommit=${HEAD.substring(0, 8)} for ${normalizedIssueId}`);
@@ -6317,7 +6317,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6317
6317
  });
6318
6318
  if (specialist === "inspect" && status === "passed") yield* Effect.promise(async () => {
6319
6319
  try {
6320
- const { onInspectComplete } = await import("./inspect-agent-DCJQm9Wu.js");
6320
+ const { onInspectComplete } = await import("./inspect-agent-B25IP-0O.js");
6321
6321
  const taskId = (notes?.match(/[Bb]ead\s+(\S+)/))?.[1] || "unknown";
6322
6322
  const project = resolveProjectFromIssueSync(normalizedIssueId);
6323
6323
  if (project) {
@@ -6334,7 +6334,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6334
6334
  if (project) {
6335
6335
  if (existsSync(join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`))) {
6336
6336
  setReviewStatusSync(normalizedIssueId, { testStatus: "passed" });
6337
- const { initEventStore } = await import("./event-store-D9UhQyMS.js");
6337
+ const { initEventStore } = await import("./event-store-BZoXexYS.js");
6338
6338
  await (await initEventStore()).appendAsync({
6339
6339
  type: "test.passed",
6340
6340
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -6387,8 +6387,8 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6387
6387
  if (notes?.toLowerCase().includes("conflict")) yield* Effect.promise(async () => {
6388
6388
  try {
6389
6389
  const workAgentId = `agent-${normalizedIssueId.toLowerCase()}`;
6390
- const { sessionExists } = await import("./tmux-C-rgxRDA.js");
6391
- const { messageAgent, spawnAgent, getAgentStateSync } = await import("./agents-BA15AQqo.js");
6390
+ const { sessionExists } = await import("./tmux-DNaD06Gc.js");
6391
+ const { messageAgent, spawnAgent, getAgentStateSync } = await import("./agents-DAUyr_Z1.js");
6392
6392
  if (await Effect.runPromise(sessionExists(workAgentId))) {
6393
6393
  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}`);
6394
6394
  console.log(`[specialists/done] Sent rebase instructions to ${workAgentId}`);
@@ -6402,7 +6402,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6402
6402
  try {
6403
6403
  const project = resolveProjectFromIssueSync(normalizedIssueId);
6404
6404
  const workspacePath = project ? join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`) : void 0;
6405
- const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-BsFLjN_6.js");
6405
+ const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-CWz9_9Kp.js");
6406
6406
  const result = await Effect.runPromise(deliverReviewVerdictFeedback({
6407
6407
  issueId: normalizedIssueId,
6408
6408
  verdict: status === "failed" ? "failed" : "blocked",
@@ -6443,7 +6443,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
6443
6443
  });
6444
6444
  })));
6445
6445
  const postSpecialistsLogsCleanupAllRoute = HttpRouter.add("POST", "/api/specialists/logs/cleanup-all", httpHandler(Effect.gen(function* () {
6446
- const { cleanupAllLogsSync } = yield* Effect.promise(() => import("./specialist-logs-DtSkPJZK.js"));
6446
+ const { cleanupAllLogsSync } = yield* Effect.promise(() => import("./specialist-logs-B-rldhNg.js"));
6447
6447
  const results = cleanupAllLogsSync();
6448
6448
  return jsonResponse({
6449
6449
  success: true,
@@ -6453,7 +6453,7 @@ const postSpecialistsLogsCleanupAllRoute = HttpRouter.add("POST", "/api/speciali
6453
6453
  });
6454
6454
  })));
6455
6455
  const getSpecialistsProjectsRoute = HttpRouter.add("GET", "/api/specialists/projects", httpHandler(Effect.gen(function* () {
6456
- const { getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6456
+ const { getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6457
6457
  return jsonResponse(yield* Effect.promise(() => getAllProjectSpecialistStatuses()));
6458
6458
  })));
6459
6459
  const postSpecialistWakeRoute = HttpRouter.add("POST", "/api/specialists/:name/wake", httpHandler(Effect.gen(function* () {
@@ -6497,7 +6497,7 @@ const postSpecialistReportStatusRoute = HttpRouter.add("POST", "/api/specialists
6497
6497
  "blocked",
6498
6498
  "failed"
6499
6499
  ].includes(status)) {
6500
- const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6500
+ const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6501
6501
  saveAgentRuntimeState(getTmuxSessionName(name), {
6502
6502
  state: "idle",
6503
6503
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
@@ -6618,7 +6618,7 @@ const postProjectSpecialistKillRoute = HttpRouter.add("POST", "/api/specialists/
6618
6618
  const issueId = params["issueId"];
6619
6619
  const type = params["type"];
6620
6620
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
6621
- const { getTmuxSessionName, makeSpecialistRegistryKey, getRunMetadata } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6621
+ const { getTmuxSessionName, makeSpecialistRegistryKey, getRunMetadata } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6622
6622
  const tmuxSession = getRunMetadata(project, makeSpecialistRegistryKey(type, issueId)).tmuxSession ?? getTmuxSessionName(type, project, issueId);
6623
6623
  yield* Effect.promise(() => Effect.runPromise(killSession(tmuxSession)).catch(() => {}));
6624
6624
  saveAgentRuntimeState(tmuxSession, {
@@ -6645,7 +6645,7 @@ const getProjectSpecialistRunsRoute = HttpRouter.add("GET", "/api/specialists/:p
6645
6645
  if (limitParam) limit = parseInt(limitParam, 10);
6646
6646
  if (offsetParam) offset = parseInt(offsetParam, 10);
6647
6647
  }
6648
- const { listRunLogsSync } = yield* Effect.promise(() => import("./specialist-logs-DtSkPJZK.js"));
6648
+ const { listRunLogsSync } = yield* Effect.promise(() => import("./specialist-logs-B-rldhNg.js"));
6649
6649
  return jsonResponse(listRunLogsSync(project, type, {
6650
6650
  limit,
6651
6651
  offset
@@ -6656,7 +6656,7 @@ const getProjectSpecialistRunStreamRoute = HttpRouter.add("GET", "/api/specialis
6656
6656
  const project = params["project"];
6657
6657
  const type = params["type"];
6658
6658
  const runId = params["runId"];
6659
- const { getRunLogPath, isRunLogActive } = yield* Effect.promise(() => import("./specialist-logs-DtSkPJZK.js"));
6659
+ const { getRunLogPath, isRunLogActive } = yield* Effect.promise(() => import("./specialist-logs-B-rldhNg.js"));
6660
6660
  const logPath = getRunLogPath(project, type, runId);
6661
6661
  if (!existsSync(logPath)) return jsonResponse({ error: "Run log not found" }, { status: 404 });
6662
6662
  const encoder = new TextEncoder();
@@ -6715,7 +6715,7 @@ const getProjectSpecialistRunRoute = HttpRouter.add("GET", "/api/specialists/:pr
6715
6715
  const project = params["project"];
6716
6716
  const type = params["type"];
6717
6717
  const runId = params["runId"];
6718
- const { getRunLogSync, parseLogMetadata } = yield* Effect.promise(() => import("./specialist-logs-DtSkPJZK.js"));
6718
+ const { getRunLogSync, parseLogMetadata } = yield* Effect.promise(() => import("./specialist-logs-B-rldhNg.js"));
6719
6719
  const content = getRunLogSync(project, type, runId);
6720
6720
  if (!content) return jsonResponse({ error: "Run log not found" }, { status: 404 });
6721
6721
  return jsonResponse({
@@ -6729,7 +6729,7 @@ const postProjectSpecialistRunTerminateRoute = HttpRouter.add("POST", "/api/spec
6729
6729
  const project = params["project"];
6730
6730
  const type = params["type"];
6731
6731
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
6732
- const { terminateSpecialist } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6732
+ const { terminateSpecialist } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6733
6733
  yield* Effect.promise(() => terminateSpecialist(project, type));
6734
6734
  return jsonResponse({
6735
6735
  success: true,
@@ -6741,7 +6741,7 @@ const postProjectSpecialistGracePauseRoute = HttpRouter.add("POST", "/api/specia
6741
6741
  const project = params["project"];
6742
6742
  const type = params["type"];
6743
6743
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
6744
- const { pauseGracePeriod } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6744
+ const { pauseGracePeriod } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6745
6745
  if (pauseGracePeriod(project, type)) return jsonResponse({
6746
6746
  success: true,
6747
6747
  message: "Grace period paused"
@@ -6753,7 +6753,7 @@ const postProjectSpecialistGraceResumeRoute = HttpRouter.add("POST", "/api/speci
6753
6753
  const project = params["project"];
6754
6754
  const type = params["type"];
6755
6755
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
6756
- const { resumeGracePeriod } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6756
+ const { resumeGracePeriod } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6757
6757
  if (resumeGracePeriod(project, type)) return jsonResponse({
6758
6758
  success: true,
6759
6759
  message: "Grace period resumed"
@@ -6765,7 +6765,7 @@ const postProjectSpecialistGraceExitRoute = HttpRouter.add("POST", "/api/special
6765
6765
  const project = params["project"];
6766
6766
  const type = params["type"];
6767
6767
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
6768
- const { exitGracePeriod } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6768
+ const { exitGracePeriod } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6769
6769
  exitGracePeriod(project, type);
6770
6770
  return jsonResponse({
6771
6771
  success: true,
@@ -6777,7 +6777,7 @@ const getProjectSpecialistGraceRoute = HttpRouter.add("GET", "/api/specialists/:
6777
6777
  const project = params["project"];
6778
6778
  const type = params["type"];
6779
6779
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
6780
- const { getGracePeriodState } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6780
+ const { getGracePeriodState } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6781
6781
  const state = getGracePeriodState(project, type);
6782
6782
  if (state) return jsonResponse(state);
6783
6783
  else return jsonResponse({ error: "No active grace period" }, { status: 404 });
@@ -6786,7 +6786,7 @@ const getProjectSpecialistContextRoute = HttpRouter.add("GET", "/api/specialists
6786
6786
  const params = yield* HttpRouter.params;
6787
6787
  const project = params["project"];
6788
6788
  const type = params["type"];
6789
- const { loadContextDigest } = yield* Effect.promise(() => import("./specialist-context-CspI4Eog.js"));
6789
+ const { loadContextDigest } = yield* Effect.promise(() => import("./specialist-context-DXj5Itg8.js"));
6790
6790
  const digest = loadContextDigest(project, type);
6791
6791
  if (digest) return jsonResponse({ digest });
6792
6792
  else return jsonResponse({ error: "No context digest found" }, { status: 404 });
@@ -6795,7 +6795,7 @@ const postProjectSpecialistContextRegenerateRoute = HttpRouter.add("POST", "/api
6795
6795
  const params = yield* HttpRouter.params;
6796
6796
  const project = params["project"];
6797
6797
  const type = params["type"];
6798
- const { regenerateContextDigest } = yield* Effect.promise(() => import("./specialist-context-CspI4Eog.js"));
6798
+ const { regenerateContextDigest } = yield* Effect.promise(() => import("./specialist-context-DXj5Itg8.js"));
6799
6799
  const digest = yield* Effect.promise(() => regenerateContextDigest(project, type));
6800
6800
  if (digest) return jsonResponse({
6801
6801
  digest,
@@ -6814,7 +6814,7 @@ const postProjectSpecialistCompleteRoute = HttpRouter.add("POST", "/api/speciali
6814
6814
  "blocked"
6815
6815
  ].includes(status)) return jsonResponse({ error: "Valid status (passed/failed/blocked) is required" }, { status: 400 });
6816
6816
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
6817
- const { signalSpecialistCompletion } = yield* Effect.promise(() => import("./specialists-D9-dMUtI.js"));
6817
+ const { signalSpecialistCompletion } = yield* Effect.promise(() => import("./specialists-Hq3EojmD.js"));
6818
6818
  signalSpecialistCompletion(project, type, {
6819
6819
  status,
6820
6820
  notes
@@ -6848,8 +6848,8 @@ const postProjectSpecialistLogsCleanupRoute = HttpRouter.add("POST", "/api/speci
6848
6848
  const params = yield* HttpRouter.params;
6849
6849
  const project = params["project"];
6850
6850
  const type = params["type"];
6851
- const { cleanupOldLogsSync } = yield* Effect.promise(() => import("./specialist-logs-DtSkPJZK.js"));
6852
- const { getSpecialistRetention } = yield* Effect.promise(() => import("./projects-Dc9aoVoG.js"));
6851
+ const { cleanupOldLogsSync } = yield* Effect.promise(() => import("./specialist-logs-B-rldhNg.js"));
6852
+ const { getSpecialistRetention } = yield* Effect.promise(() => import("./projects-DxMUi2eI.js"));
6853
6853
  const retention = getSpecialistRetention(project);
6854
6854
  const deleted = cleanupOldLogsSync(project, type, {
6855
6855
  maxDays: retention.max_days,
@@ -6870,7 +6870,7 @@ const postProjectReviewRestartRoute = HttpRouter.add("POST", "/api/specialists/:
6870
6870
  const project = params["project"];
6871
6871
  const issueId = params["issueId"];
6872
6872
  const { model, harness } = yield* readJsonBody;
6873
- const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-CpSHLzed.js"));
6873
+ const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-CUVj54v0.js"));
6874
6874
  const killResult = yield* killAllReviewerSessions(project, issueId);
6875
6875
  const projectConfig = resolveProjectFromIssueSync(issueId);
6876
6876
  if (!projectConfig) return jsonResponse({ error: `Cannot resolve project for ${issueId}` }, { status: 404 });
@@ -6884,7 +6884,7 @@ const postProjectReviewRestartRoute = HttpRouter.add("POST", "/api/specialists/:
6884
6884
  }));
6885
6885
  branch = stdout.trim() || "unknown";
6886
6886
  } catch {}
6887
- const { spawnReviewRoleForIssue } = yield* Effect.promise(() => import("./review-agent-CpSHLzed.js"));
6887
+ const { spawnReviewRoleForIssue } = yield* Effect.promise(() => import("./review-agent-CUVj54v0.js"));
6888
6888
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
6889
6889
  const result = yield* spawnReviewRoleForIssue({
6890
6890
  issueId,
@@ -7035,4 +7035,4 @@ const specialistsRouteLayer = Layer.mergeAll(specialistsLegacyRouteLayer, specia
7035
7035
  //#endregion
7036
7036
  export { readLauncherPinnedSessionId as $, resolveAllowedHarness as A, cleanupUnreferencedConversationAttachments as B, handleConversationCreate as C, handleConversationStop as D, handleConversationResume as E, tmuxSessionExists as F, isManagedConversationAttachmentPath as G, extractConversationAttachmentPaths as H, waitForPiTuiReady as I, evaluateSpawnGuardrails as J, removeConversationAttachment as K, waitForTmuxSession as L, spawnConversationSession as M, startConversationModelBackfill as N, handleConversationSwitchModel as O, stopConversationRuntime as P, getWorkAgentLifecycleStateSync as Q, cleanupConversationAttachments as R, conversationSessionAliveFromState as S, handleConversationRestartAll as T, getConversationAttachmentsRoot as U, ensureConversationAttachmentDir as V, hasConversationAttachment as W, resolveAgentGitInfo as X, invalidateAgentsCache as Y, resolveConversationGitInfo as Z, isPiControlChannelHarness as _, agentsRouteLayer as a, isRespawnPending as at, validateConversationControlAckOrigin as b, codexConversationPendingInput as c, getTrustedOrigins as ct, handleConversationCodexApproval as d, validateOrigin as dt, resolveAgentHarness as et, handleConversationCompact as f, validateOriginHeaders as ft, handleConversationThinkingLevel as g, jsonStringResponse as gt, handleConversationPlanAction as h, jsonResponse as ht, validateSpecialistAutoCompleteMetadata as i, resolvePiSessionPath as it, shouldReportUnresolvedLiveSession as j, isInsideGitWorkTree as k, deliverConversationViaControlChannel as l, isTrustedOriginForHost as lt, handleConversationDeliveryMethod as m, getDefaultCwd as mt, _serverManagedMerges as n, resolveCodexRolloutPath as nt, saveAgentStateAndEmitEvent as o, waitForSessionRespawn as ot, handleConversationControlAck as p, httpHandler as pt, runInBatches as q, firePostMergeLifecycle as r, resolveJsonlPath as rt, saveAgentStateAndEmitEventProgram as s, getHeaderFromMap as st, specialistsRouteLayer as t, resolveClaudeSessionId as tt, handleConversationAbort as u, normalizeOrigin as ut, pickDeliverAs as v, handleConversationDelete as w, conversationNeedsRunningRepair as x, resolveConversationDeliveryMethod as y, cleanupOrphanedConversationAttachments as z };
7037
7037
 
7038
- //# sourceMappingURL=specialists-Dax7tqXC.js.map
7038
+ //# sourceMappingURL=specialists-C6-b3YZb.js.map
@@ -1,2 +1,2 @@
1
- import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-Dax7tqXC.js";
1
+ import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-C6-b3YZb.js";
2
2
  export { _serverManagedMerges, specialistsRouteLayer as default, specialistsRouteLayer, firePostMergeLifecycle, validateSpecialistAutoCompleteMetadata };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin, r as __exportAll } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Cr as AGENTS_DIR, Mr as OVERDECK_HOME, Yr as init_paths } from "./config-yaml-CqaAyn8y.js";
3
- import { D as listPaneValues, R as sessionExists, S as init_tmux, T as killSession } from "./tmux-U55cNGFG.js";
4
- import { a as readCavemanVariant, n as init_workspace } from "./workspace-CuN0ev4Z.js";
5
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-Dx8hUsvC.js";
6
- import { a as init_jsonl_parser, n as getAllSessionFilesSync, s as parseClaudeSessionSync } from "./jsonl-parser-Cd5jIqh7.js";
2
+ import { Cr as AGENTS_DIR, Mr as OVERDECK_HOME, Yr as init_paths } from "./config-yaml-BQs6GbD_.js";
3
+ import { D as listPaneValues, R as sessionExists, S as init_tmux, T as killSession } from "./tmux-C3X2XmV0.js";
4
+ import { a as readCavemanVariant, n as init_workspace } from "./workspace-BhUnCpcq.js";
5
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-ScD6rV47.js";
6
+ import { a as init_jsonl_parser, n as getAllSessionFilesSync, s as parseClaudeSessionSync } from "./jsonl-parser-Bp_xCkX4.js";
7
7
  import { Effect } from "effect";
8
8
  import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
9
9
  import { basename, join } from "path";
@@ -89,7 +89,7 @@ function roleForSpecialistModel(specialistType) {
89
89
  return { role: "work" };
90
90
  }
91
91
  async function buildSpecialistBaseCommand(specialistType, model, sessionName) {
92
- const { getAgentRuntimeBaseCommand } = await import("./agents-BA15AQqo.js");
92
+ const { getAgentRuntimeBaseCommand } = await import("./agents-DAUyr_Z1.js");
93
93
  const role = roleForSpecialistModel(specialistType).role;
94
94
  const harness = await resolveHarness({
95
95
  model,
@@ -488,7 +488,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
488
488
  const resolvedTmuxSession = metadata.tmuxSession ?? getTmuxSessionName(specialistType, projectKey, issueId);
489
489
  updateRunStatus(projectKey, registryKey, result.status);
490
490
  if (metadata.currentRun) try {
491
- const { finalizeRunLogSync } = await import("./specialist-logs-DtSkPJZK.js");
491
+ const { finalizeRunLogSync } = await import("./specialist-logs-B-rldhNg.js");
492
492
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
493
493
  status: result.status,
494
494
  notes: result.notes
@@ -498,7 +498,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
498
498
  }
499
499
  setCurrentRun(projectKey, registryKey, null);
500
500
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
501
- import("./agents-BA15AQqo.js").then(({ saveAgentRuntimeState }) => {
501
+ import("./agents-DAUyr_Z1.js").then(({ saveAgentRuntimeState }) => {
502
502
  saveAgentRuntimeState(resolvedTmuxSession, {
503
503
  state: "idle",
504
504
  lastActivity: (/* @__PURE__ */ new Date()).toISOString(),
@@ -529,7 +529,7 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
529
529
  console.error(`[specialist] Failed to kill tmux session ${tmuxSession}:`, error);
530
530
  }
531
531
  if (metadata.currentRun) {
532
- const { finalizeRunLogSync } = await import("./specialist-logs-DtSkPJZK.js");
532
+ const { finalizeRunLogSync } = await import("./specialist-logs-B-rldhNg.js");
533
533
  try {
534
534
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
535
535
  status: metadata.lastRunStatus || "incomplete",
@@ -543,12 +543,12 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
543
543
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
544
544
  const key = `${projectKey}-${specialistType}`;
545
545
  gracePeriodStates.delete(key);
546
- const { saveAgentRuntimeState } = await import("./agents-BA15AQqo.js");
546
+ const { saveAgentRuntimeState } = await import("./agents-DAUyr_Z1.js");
547
547
  saveAgentRuntimeState(tmuxSession, {
548
548
  state: "suspended",
549
549
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
550
550
  });
551
- const { scheduleDigestGeneration } = await import("./specialist-context-CspI4Eog.js");
551
+ const { scheduleDigestGeneration } = await import("./specialist-context-DXj5Itg8.js");
552
552
  scheduleDigestGeneration(projectKey, specialistType);
553
553
  scheduleLogCleanup(projectKey, specialistType);
554
554
  }
@@ -561,8 +561,8 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
561
561
  function scheduleLogCleanup(projectKey, specialistType) {
562
562
  Promise.resolve().then(async () => {
563
563
  try {
564
- const { cleanupOldLogsSync } = await import("./specialist-logs-DtSkPJZK.js");
565
- const { getSpecialistRetention } = await import("./projects-Dc9aoVoG.js");
564
+ const { cleanupOldLogsSync } = await import("./specialist-logs-B-rldhNg.js");
565
+ const { getSpecialistRetention } = await import("./projects-DxMUi2eI.js");
566
566
  const retention = getSpecialistRetention(projectKey);
567
567
  const deleted = cleanupOldLogsSync(projectKey, specialistType, {
568
568
  maxDays: retention.max_days,
@@ -716,7 +716,7 @@ function listSpecialistsForProject(projectKey) {
716
716
  */
717
717
  async function getAllProjectSpecialistStatuses() {
718
718
  const registry = loadRegistry();
719
- const { getAgentRuntimeStateSync } = await import("./agents-BA15AQqo.js");
719
+ const { getAgentRuntimeStateSync } = await import("./agents-DAUyr_Z1.js");
720
720
  const results = [];
721
721
  for (const [projectKey, specialists] of Object.entries(registry.projects)) for (const [registryKey, metadata] of Object.entries(specialists)) {
722
722
  const { specialistType, issueId, role } = parseSpecialistRegistryKey(registryKey);
@@ -853,7 +853,7 @@ async function getSpecialistStatus(name, projectKey) {
853
853
  const sessionId = readRecordedClaudeSessionId(getTmuxSessionName(name, projectKey));
854
854
  const running = await isRunning(name, projectKey);
855
855
  const contextTokens = countContextTokens(name);
856
- const { getAgentRuntimeStateSync } = await import("./agents-BA15AQqo.js");
856
+ const { getAgentRuntimeStateSync } = await import("./agents-DAUyr_Z1.js");
857
857
  const runtimeState = getAgentRuntimeStateSync(getTmuxSessionName(name, projectKey));
858
858
  let state;
859
859
  if (runtimeState) switch (runtimeState.state) {
@@ -933,7 +933,7 @@ async function sendFeedbackToAgent(feedback) {
933
933
  }
934
934
  const agentSession = `agent-${toIssueId.toLowerCase()}`;
935
935
  const feedbackMessage = formatFeedbackForAgent(fullFeedback);
936
- const { writeFeedbackFile } = await import("./feedback-writer-CULeOOY4.js");
936
+ const { writeFeedbackFile } = await import("./feedback-writer-BtaoJGl2.js");
937
937
  const specialist = {
938
938
  "review-agent": "review-agent",
939
939
  "test-agent": "test-agent",
@@ -952,7 +952,7 @@ async function sendFeedbackToAgent(feedback) {
952
952
  return false;
953
953
  }
954
954
  try {
955
- const { messageAgent } = await import("./agents-BA15AQqo.js");
955
+ const { messageAgent } = await import("./agents-DAUyr_Z1.js");
956
956
  await messageAgent(agentSession, `SPECIALIST FEEDBACK: ${fromSpecialist} reported ${feedback.feedbackType.toUpperCase()} for ${toIssueId}.\n\nMUST READ: ${fileResult.filePath}\n\nUse your Read tool to open this file, read every line, then address the feedback and continue working. Do NOT stop at the prompt.`);
957
957
  console.log(`[specialist] Sent feedback from ${fromSpecialist} to ${agentSession} (file: ${fileResult.filePath})`);
958
958
  return true;
@@ -1071,4 +1071,4 @@ var init_specialists = __esmMin((() => {
1071
1071
  //#endregion
1072
1072
  export { updateRunMetadata as $, isEnabled as A, pauseGracePeriod as B, getSpecialistState as C, initSpecialistsDirectory as D, incrementProjectRunCount as E, listSpecialistsForProject as F, sendFeedbackToAgent as G, recordWake as H, loadRegistry as I, specialists_exports as J, setCurrentRun as K, makeSpecialistRegistryKey as L, isProjectSpecialistActivelyRunning as M, isRunning as N, init_specialists as O, listProjectsWithSpecialists as P, updateProjectSpecialistMetadata as Q, parseReviewerSessionName as R, getSpecialistMetadata as S, getTmuxSessionName as T, resumeGracePeriod as U, pruneSpecialistRegistryEntriesForIssue as V, saveRegistry as W, terminateSpecialist as X, startGracePeriod as Y, updateContextTokens as Z, getPendingFeedback as _, disableSpecialist as a, getReviewerSessionName as b, exitGracePeriod as c, getAllProjectSpecialistStatuses as d, updateRunStatus as et, getAllSpecialistStatus as f, getGracePeriodState as g, getFeedbackStats as h, countContextTokens as i, isInitialized as j, initializeEnabledSpecialists as k, findActiveRegistryKey as l, getEnabledSpecialists as m, buildSpecialistBaseCommand as n, enableSpecialist as o, getAllSpecialists as p, signalSpecialistCompletion as q, buildSpecialistCavemanExports as r, ensureProjectSpecialistDir as s, REVIEWER_ROLES as t, updateSpecialistMetadata as tt, findSessionFile as u, getProjectSpecialistDir as v, getSpecialistStatus as w, getRunMetadata as x, getProjectSpecialistMetadata as y, parseSpecialistRegistryKey as z };
1073
1073
 
1074
- //# sourceMappingURL=specialists-GF42OOqd.js.map
1074
+ //# sourceMappingURL=specialists-Dp8ABxVh.js.map