@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
@@ -0,0 +1,198 @@
1
+ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
+ import { Sr as GitError, jr as init_errors, xr as FsError } from "./config-yaml-ig8Nwtiw.js";
3
+ import { Effect } from "effect";
4
+ import { existsSync, readdirSync, unlinkSync } from "fs";
5
+ import { join } from "path";
6
+ import { exec, execFile } from "child_process";
7
+ import { promisify } from "util";
8
+ //#region ../../lib/git-utils.ts
9
+ /**
10
+ * Git utilities for handling common git operations and recovery
11
+ */
12
+ function killProcessTree(child) {
13
+ if (!child?.pid) return;
14
+ try {
15
+ if (process.platform === "win32") child.kill("SIGKILL");
16
+ else process.kill(-child.pid, "SIGKILL");
17
+ } catch {
18
+ try {
19
+ child.kill("SIGKILL");
20
+ } catch {}
21
+ }
22
+ }
23
+ function runProcessProbe(file, args, repoPath, options) {
24
+ const command = `${file} ${args.join(" ")}`;
25
+ if (options.signal?.aborted) return Promise.reject(new ProcessProbeTerminationError(command, "abort", options.processProbeTimeoutMs));
26
+ return new Promise((resolve, reject) => {
27
+ let child;
28
+ let termination;
29
+ const terminate = (kind) => {
30
+ if (termination) return;
31
+ termination = kind;
32
+ killProcessTree(child);
33
+ };
34
+ const timeout = setTimeout(() => terminate("timeout"), options.processProbeTimeoutMs);
35
+ const onAbort = () => terminate("abort");
36
+ options.signal?.addEventListener("abort", onAbort, { once: true });
37
+ child = execFileDetached(file, args, {
38
+ cwd: repoPath,
39
+ encoding: "utf-8",
40
+ detached: process.platform !== "win32"
41
+ }, (error, stdout, stderr) => {
42
+ clearTimeout(timeout);
43
+ options.signal?.removeEventListener("abort", onAbort);
44
+ if (termination) reject(Object.assign(new ProcessProbeTerminationError(command, termination, options.processProbeTimeoutMs), {
45
+ stdout,
46
+ stderr
47
+ }));
48
+ else if (error) reject(Object.assign(error, {
49
+ stdout,
50
+ stderr
51
+ }));
52
+ else resolve(stdout);
53
+ });
54
+ if (options.signal?.aborted) terminate("abort");
55
+ });
56
+ }
57
+ function probeErrorReason(command, error) {
58
+ if (error instanceof ProcessProbeTerminationError) return error.message;
59
+ return `${command} failed: ${error instanceof Error ? error.message : String(error)}`;
60
+ }
61
+ /** Check whether a repository has active Git processes without guessing on probe failure. */
62
+ async function hasRunningGitProcesses(repoPath, options) {
63
+ const probeOptions = {
64
+ signal: options.signal,
65
+ processProbeTimeoutMs: options.processProbeTimeoutMs ?? DEFAULT_PROCESS_PROBE_TIMEOUT_MS
66
+ };
67
+ try {
68
+ return { status: (await runProcessProbe("fuser", [join(repoPath, ".git")], repoPath, probeOptions)).trim() ? "running" : "idle" };
69
+ } catch (error) {
70
+ const code = error?.code;
71
+ if (code === 1) return { status: "idle" };
72
+ if (code !== 127 && code !== "ENOENT") return {
73
+ status: "inconclusive",
74
+ reason: probeErrorReason("fuser", error)
75
+ };
76
+ }
77
+ try {
78
+ return { status: (await runProcessProbe("ps", ["-eo", "args="], repoPath, probeOptions)).split("\n").some((line) => line.includes("git") && line.includes(repoPath)) ? "running" : "idle" };
79
+ } catch (error) {
80
+ return {
81
+ status: "inconclusive",
82
+ reason: probeErrorReason("ps", error)
83
+ };
84
+ }
85
+ }
86
+ /**
87
+ * Find all git lock files in a repository
88
+ */
89
+ function findGitLockFiles(repoPath) {
90
+ const lockFiles = [];
91
+ const indexLock = join(repoPath, ".git", "index.lock");
92
+ if (existsSync(indexLock)) lockFiles.push(indexLock);
93
+ const refsDir = join(repoPath, ".git", "refs");
94
+ if (existsSync(refsDir)) {
95
+ const findLocksRecursive = (dir) => {
96
+ const entries = readdirSync(dir, { withFileTypes: true });
97
+ for (const entry of entries) {
98
+ const fullPath = join(dir, entry.name);
99
+ if (entry.isDirectory()) findLocksRecursive(fullPath);
100
+ else if (entry.name.endsWith(".lock")) lockFiles.push(fullPath);
101
+ }
102
+ };
103
+ try {
104
+ findLocksRecursive(refsDir);
105
+ } catch {}
106
+ }
107
+ return lockFiles;
108
+ }
109
+ async function cleanupStaleLocksPromise(repoPath, options) {
110
+ const result = {
111
+ found: [],
112
+ removed: [],
113
+ errors: []
114
+ };
115
+ const lockFiles = findGitLockFiles(repoPath);
116
+ result.found = lockFiles;
117
+ if (lockFiles.length === 0) return result;
118
+ const processProbe = await hasRunningGitProcesses(repoPath, options);
119
+ if (processProbe.status === "running") {
120
+ result.errors.push({
121
+ file: "N/A",
122
+ error: "Git processes are running - not safe to remove locks"
123
+ });
124
+ return result;
125
+ }
126
+ if (processProbe.status === "inconclusive") {
127
+ result.errors.push({
128
+ file: "N/A",
129
+ error: `Could not verify Git process state: ${processProbe.reason}`
130
+ });
131
+ return result;
132
+ }
133
+ for (const lockFile of lockFiles) try {
134
+ unlinkSync(lockFile);
135
+ result.removed.push(lockFile);
136
+ } catch (error) {
137
+ const msg = error instanceof Error ? error.message : String(error);
138
+ result.errors.push({
139
+ file: lockFile,
140
+ error: msg
141
+ });
142
+ }
143
+ return result;
144
+ }
145
+ async function getWorkspaceGitInfoPromise(workspacePath) {
146
+ try {
147
+ const [headResult, branchResult] = await Promise.all([execAsync("git rev-parse HEAD", { cwd: workspacePath }), execAsync("git rev-parse --abbrev-ref HEAD", { cwd: workspacePath })]);
148
+ return {
149
+ HEAD: headResult.stdout.trim(),
150
+ branch: branchResult.stdout.trim()
151
+ };
152
+ } catch (err) {
153
+ const msg = err instanceof Error ? err.message : String(err);
154
+ throw new Error(`getWorkspaceGitInfo failed for ${workspacePath}: ${msg}`);
155
+ }
156
+ }
157
+ async function hasStaleLocksPromise(repoPath) {
158
+ if (findGitLockFiles(repoPath).length === 0) return false;
159
+ return (await hasRunningGitProcesses(repoPath, {})).status === "idle";
160
+ }
161
+ var execAsync, DEFAULT_PROCESS_PROBE_TIMEOUT_MS, ProcessProbeTerminationError, execFileDetached, cleanupStaleLocks, getWorkspaceGitInfo, hasStaleLocks;
162
+ var init_git_utils = __esmMin((() => {
163
+ init_errors();
164
+ execAsync = promisify(exec);
165
+ DEFAULT_PROCESS_PROBE_TIMEOUT_MS = 3e4;
166
+ ProcessProbeTerminationError = class extends Error {
167
+ constructor(command, kind, budgetMs) {
168
+ super(kind === "abort" ? `${command} was cancelled` : `${command} timed out after ${budgetMs / 1e3}s`);
169
+ this.command = command;
170
+ this.kind = kind;
171
+ this.budgetMs = budgetMs;
172
+ this.name = "ProcessProbeTerminationError";
173
+ }
174
+ };
175
+ execFileDetached = execFile;
176
+ cleanupStaleLocks = (repoPath, options = {}) => Effect.tryPromise({
177
+ try: () => cleanupStaleLocksPromise(repoPath, options),
178
+ catch: (cause) => new FsError({
179
+ path: repoPath,
180
+ operation: "cleanupStaleLocks",
181
+ cause
182
+ })
183
+ });
184
+ getWorkspaceGitInfo = (workspacePath) => Effect.tryPromise({
185
+ try: () => getWorkspaceGitInfoPromise(workspacePath),
186
+ catch: (cause) => new GitError({
187
+ command: ["rev-parse", "HEAD"],
188
+ stderr: cause instanceof Error ? cause.message : String(cause),
189
+ exitCode: -1,
190
+ cause
191
+ })
192
+ });
193
+ hasStaleLocks = (repoPath) => Effect.promise(() => hasStaleLocksPromise(repoPath));
194
+ }));
195
+ //#endregion
196
+ export { init_git_utils as i, getWorkspaceGitInfo as n, hasStaleLocks as r, cleanupStaleLocks as t };
197
+
198
+ //# sourceMappingURL=git-utils-Cc3FHDKd.js.map
@@ -1,3 +1,3 @@
1
- import { i as init_git_utils, n as getWorkspaceGitInfo, r as hasStaleLocks, t as cleanupStaleLocks } from "./git-utils-Bkxzr1Xf.js";
1
+ import { i as init_git_utils, n as getWorkspaceGitInfo, r as hasStaleLocks, t as cleanupStaleLocks } from "./git-utils-Cc3FHDKd.js";
2
2
  init_git_utils();
3
3
  export { cleanupStaleLocks, getWorkspaceGitInfo, hasStaleLocks };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Or as init_errors, _r as ConfigError, br as GitHubApiError, vr as FsError } from "./config-yaml-Ciyp2mYe.js";
2
+ import { Cr as GitHubApiError, br as ConfigError, jr as init_errors, xr as FsError } from "./config-yaml-ig8Nwtiw.js";
3
3
  import { Effect } from "effect";
4
4
  import { existsSync, readFileSync } from "fs";
5
5
  import { join } from "path";
@@ -645,4 +645,4 @@ var init_github_app = __esmMin((() => {
645
645
  //#endregion
646
646
  export { withConcurrencyLimit as A, postOverdeckTestsStatus as C, createPromiseConcurrencyLimiter as D, verifyAppCanMerge as E, createSettledTtlPromiseCache as O, parsePullRequestRef as S, reportCommitStatus as T, listOpenIssuesWithLabelsPromise as _, getCiCheckRunsState as a, loadGitHubAppConfig as b, getIssueStatePromise as c, getPullRequestState as d, init_github_app as f, listOpenIssuesWithLabels as g, listIssuesWithAnyLabelPromise as h, getBotIdentity as i, withConcurrencyLimitPromise as j, init_concurrency as k, getMergeBackendStatus as l, isIntegrationPermissionError as m, generateInstallationToken as n, getCiCheckRunsStatePromise as o, isGitHubAppConfigured as p, getAppStatus as r, getIssueState as s, configureWorkspaceForBot as t, getPullRequestHeadState as u, listPullRequestsForHead as v, refreshWorkspaceToken as w, mergePullRequestWithApp as x, listPullRequestsForHeadPromise as y };
647
647
 
648
- //# sourceMappingURL=github-app-B3yfECo8.js.map
648
+ //# sourceMappingURL=github-app-CDPtGF7J.js.map
@@ -1,3 +1,3 @@
1
- import { C as postOverdeckTestsStatus, E as verifyAppCanMerge, S as parsePullRequestRef, T as reportCommitStatus, _ as listOpenIssuesWithLabelsPromise, a as getCiCheckRunsState, b as loadGitHubAppConfig, c as getIssueStatePromise, d as getPullRequestState, f as init_github_app, g as listOpenIssuesWithLabels, h as listIssuesWithAnyLabelPromise, i as getBotIdentity, l as getMergeBackendStatus, m as isIntegrationPermissionError, n as generateInstallationToken, o as getCiCheckRunsStatePromise, p as isGitHubAppConfigured, r as getAppStatus, s as getIssueState, t as configureWorkspaceForBot, u as getPullRequestHeadState, v as listPullRequestsForHead, w as refreshWorkspaceToken, x as mergePullRequestWithApp, y as listPullRequestsForHeadPromise } from "./github-app-B3yfECo8.js";
1
+ import { C as postOverdeckTestsStatus, E as verifyAppCanMerge, S as parsePullRequestRef, T as reportCommitStatus, _ as listOpenIssuesWithLabelsPromise, a as getCiCheckRunsState, b as loadGitHubAppConfig, c as getIssueStatePromise, d as getPullRequestState, f as init_github_app, g as listOpenIssuesWithLabels, h as listIssuesWithAnyLabelPromise, i as getBotIdentity, l as getMergeBackendStatus, m as isIntegrationPermissionError, n as generateInstallationToken, o as getCiCheckRunsStatePromise, p as isGitHubAppConfigured, r as getAppStatus, s as getIssueState, t as configureWorkspaceForBot, u as getPullRequestHeadState, v as listPullRequestsForHead, w as refreshWorkspaceToken, x as mergePullRequestWithApp, y as listPullRequestsForHeadPromise } from "./github-app-CDPtGF7J.js";
2
2
  init_github_app();
3
3
  export { configureWorkspaceForBot, generateInstallationToken, getAppStatus, getBotIdentity, getCiCheckRunsState, getCiCheckRunsStatePromise, getIssueState, getIssueStatePromise, getMergeBackendStatus, getPullRequestHeadState, getPullRequestState, isGitHubAppConfigured, isIntegrationPermissionError, listIssuesWithAnyLabelPromise, listOpenIssuesWithLabels, listOpenIssuesWithLabelsPromise, listPullRequestsForHead, listPullRequestsForHeadPromise, loadGitHubAppConfig, mergePullRequestWithApp, parsePullRequestRef, postOverdeckTestsStatus, refreshWorkspaceToken, reportCommitStatus, verifyAppCanMerge };
@@ -1,3 +1,3 @@
1
- import { i as init_github_client, n as GitHubClientLive, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-Dslipypz.js";
1
+ import { i as init_github_client, n as GitHubClientLive, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-XjTJbBm7.js";
2
2
  init_github_client();
3
3
  export { GitHubClient, GitHubClientLive, GitHubClientOptionalLive };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-DSFZBdXP.js";
2
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-DdT-nUAM.js";
3
3
  import { a as RateLimited, c as TrackerNotConfigured, d as init_typed_errors, r as IssueNotFound, s as TrackerApiError } from "./typed-errors-2BTMxkZq.js";
4
4
  import { Context, Effect, Layer } from "effect";
5
5
  //#region services/github-client.ts
@@ -241,4 +241,4 @@ var init_github_client = __esmMin((() => {
241
241
  //#endregion
242
242
  export { init_github_client as i, GitHubClientLive as n, GitHubClientOptionalLive as r, GitHubClient as t };
243
243
 
244
- //# sourceMappingURL=github-client-Dslipypz.js.map
244
+ //# sourceMappingURL=github-client-XjTJbBm7.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead } from "./github-app-B3yfECo8.js";
2
+ import { f as init_github_app, p as isGitHubAppConfigured, v as listPullRequestsForHead } from "./github-app-CDPtGF7J.js";
3
3
  import { Effect } from "effect";
4
4
  import { execFile } from "node:child_process";
5
5
  import { promisify } from "node:util";
@@ -41,4 +41,4 @@ var init_github_pr_lookup = __esmMin((() => {
41
41
  //#endregion
42
42
  export { init_github_pr_lookup as n, lookupPullRequestNumberForBranch as r, githubPrLookupSource as t };
43
43
 
44
- //# sourceMappingURL=github-pr-lookup-DBP0YHMr.js.map
44
+ //# sourceMappingURL=github-pr-lookup-CFGeVhqv.js.map
@@ -0,0 +1,106 @@
1
+ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
+ import { delimiter, dirname, isAbsolute, join, resolve } from "node:path";
3
+ import { homedir } from "node:os";
4
+ import { constants } from "node:fs";
5
+ import { access } from "node:fs/promises";
6
+ import { execFile } from "node:child_process";
7
+ import { promisify } from "node:util";
8
+ //#region ../../lib/harness-binary.ts
9
+ async function firstExecutable(directories, binary, accessExecutable) {
10
+ const seen = /* @__PURE__ */ new Set();
11
+ for (const directory of directories) {
12
+ if (!directory) continue;
13
+ const candidate = join(directory, binary);
14
+ if (seen.has(candidate)) continue;
15
+ seen.add(candidate);
16
+ try {
17
+ await accessExecutable(candidate);
18
+ return candidate;
19
+ } catch {}
20
+ }
21
+ return null;
22
+ }
23
+ /** Resolve an executable to an absolute, executable path outside the server's inherited PATH alone. */
24
+ async function resolveExecutable(binary, options = {}) {
25
+ if (!SAFE_BINARY_NAME.test(binary)) throw new Error(`Invalid executable name: ${binary}`);
26
+ const cwd = options.cwd ?? process.cwd();
27
+ const home = resolve(cwd, options.home ?? homedir());
28
+ const pathValue = options.pathValue ?? process.env["PATH"] ?? "";
29
+ const accessExecutable = options.accessExecutable ?? ((path) => access(path, constants.X_OK));
30
+ const runCommand = options.runCommand ?? defaultRunCommand;
31
+ const pathMatch = await firstExecutable(pathValue.split(delimiter).filter(Boolean).map((directory) => isAbsolute(directory) ? directory : resolve(cwd, directory)), binary, accessExecutable);
32
+ if (pathMatch) return pathMatch;
33
+ const fixedMatch = await firstExecutable([
34
+ join(home, ".local", "bin"),
35
+ join(home, ".claude", "local"),
36
+ join(home, ".npm-global", "bin")
37
+ ], binary, accessExecutable);
38
+ if (fixedMatch) return fixedMatch;
39
+ try {
40
+ const npmPrefix = (await runCommand("npm", ["prefix", "-g"])).trim().split("\n")[0]?.trim();
41
+ if (npmPrefix) {
42
+ const npmMatch = await firstExecutable([join(resolve(cwd, npmPrefix), "bin")], binary, accessExecutable);
43
+ if (npmMatch) return npmMatch;
44
+ }
45
+ } catch {}
46
+ const bunMatch = await firstExecutable([join(home, ".bun", "bin")], binary, accessExecutable);
47
+ if (bunMatch) return bunMatch;
48
+ if (options.allowLoginShell !== false) {
49
+ const shell = options.shell ?? process.env["SHELL"];
50
+ if (shell) try {
51
+ const shellResult = (await runCommand(shell, ["-lc", `command -v ${binary}`])).trim().split("\n")[0]?.trim();
52
+ if (shellResult && isAbsolute(shellResult)) {
53
+ await accessExecutable(shellResult);
54
+ return shellResult;
55
+ }
56
+ } catch {}
57
+ }
58
+ return null;
59
+ }
60
+ function harnessBinaryName(harness) {
61
+ return HARNESS_BINARY_BY_RUNTIME[harness];
62
+ }
63
+ async function resolveHarnessBinary(harness, options) {
64
+ return resolveExecutable(harnessBinaryName(harness), options);
65
+ }
66
+ async function requireHarnessBinary(harness, options) {
67
+ const binary = harnessBinaryName(harness);
68
+ const resolved = await resolveExecutable(binary, options);
69
+ if (resolved) return resolved;
70
+ const harnessName = harness === "claude-code" ? "Claude Code" : harness === "ohmypi" ? "OhMyPi" : "Codex CLI";
71
+ throw new Error(`${harnessName} executable "${binary}" was not found. Install ${harnessName} or add its installation directory to PATH, then restart Overdeck. No terminal session was created.`);
72
+ }
73
+ function shellQuote(value) {
74
+ return `'${value.replace(/'/g, `'\\''`)}'`;
75
+ }
76
+ function harnessPathExport(resolvedBinary) {
77
+ return `export PATH=${shellQuote(dirname(resolvedBinary))}:"$PATH"`;
78
+ }
79
+ async function prepareHarnessLaunch(harness, options) {
80
+ const binaryPath = await requireHarnessBinary(harness, options);
81
+ return {
82
+ binaryPath,
83
+ pathExport: harnessPathExport(binaryPath)
84
+ };
85
+ }
86
+ var execFileAsync, SAFE_BINARY_NAME, HARNESS_BINARY_BY_RUNTIME, defaultRunCommand;
87
+ var init_harness_binary = __esmMin((() => {
88
+ execFileAsync = promisify(execFile);
89
+ SAFE_BINARY_NAME = /^[A-Za-z0-9._+-]+$/;
90
+ HARNESS_BINARY_BY_RUNTIME = {
91
+ "claude-code": "claude",
92
+ ohmypi: "omp",
93
+ codex: "codex"
94
+ };
95
+ defaultRunCommand = async (command, args) => {
96
+ const { stdout } = await execFileAsync(command, args, {
97
+ encoding: "utf-8",
98
+ timeout: 1e4
99
+ });
100
+ return stdout;
101
+ };
102
+ }));
103
+ //#endregion
104
+ export { resolveHarnessBinary as a, resolveExecutable as i, init_harness_binary as n, prepareHarnessLaunch as r, harnessBinaryName as t };
105
+
106
+ //# sourceMappingURL=harness-binary-B2CTcD84.js.map
@@ -1,18 +1,16 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { A as init_harness_policy, B as init_providers, I as getBuiltInDefaultHarness, O as canUseHarnessSync, f as loadConfigSync, k as canUseModelWithAuthSync, t as init_config_yaml, z as getProviderForModelSync } from "./config-yaml-Ciyp2mYe.js";
3
- import { exec } from "child_process";
4
- import { promisify } from "util";
2
+ import { A as canUseHarnessSync, H as init_providers, M as init_harness_policy, R as getBuiltInDefaultHarness, V as getProviderForModelSync, f as loadConfigSync, j as canUseModelWithAuthSync, t as init_config_yaml } from "./config-yaml-ig8Nwtiw.js";
3
+ import { a as resolveHarnessBinary, n as init_harness_binary, t as harnessBinaryName } from "./harness-binary-B2CTcD84.js";
5
4
  //#region ../../lib/harness-resolve.ts
6
5
  async function getProviderAuthModeForModel(model) {
7
- const { getProviderAuthMode } = await import("./agents-Czz6R57Z.js");
6
+ const { getProviderAuthMode } = await import("./agents-DyHKlq1I.js");
8
7
  return getProviderAuthMode(model);
9
8
  }
10
9
  async function hasHarnessBinary(harness) {
11
- const binary = BINARY_BY_HARNESS[harness];
12
- if (!binary) return true;
10
+ if (harness === "claude-code") return true;
13
11
  const cached = harnessAvailabilityCache.get(harness);
14
12
  if (cached) return cached;
15
- const check = execAsync(`command -v ${binary}`).then(() => true, () => false);
13
+ const check = resolveHarnessBinary(harness).then((resolved) => resolved !== null);
16
14
  harnessAvailabilityCache.set(harness, check);
17
15
  return check;
18
16
  }
@@ -40,23 +38,19 @@ async function resolveHarness(input) {
40
38
  return "claude-code";
41
39
  }
42
40
  if (!await hasHarnessBinary(winner)) {
43
- const binary = BINARY_BY_HARNESS[winner];
41
+ const binary = harnessBinaryName(winner);
44
42
  if (builtInHarness && builtInHarness !== "claude-code") throw new HarnessResolutionError(`Harness ${winner} (provider default for ${input.model}) has no installed ${binary} binary at spawn — refusing to silently fall back to claude-code. Install ${binary} (check its PATH) and retry.`);
45
43
  console.warn(`harness ${winner} requested for ${provider}, but ${binary} is not installed — falling back to native claude-code`);
46
44
  return "claude-code";
47
45
  }
48
46
  return winner;
49
47
  }
50
- var execAsync, BINARY_BY_HARNESS, harnessAvailabilityCache, builtInDefaultNoticeProviders, HarnessResolutionError;
48
+ var harnessAvailabilityCache, builtInDefaultNoticeProviders, HarnessResolutionError;
51
49
  var init_harness_resolve = __esmMin((() => {
52
50
  init_harness_policy();
51
+ init_harness_binary();
53
52
  init_providers();
54
53
  init_config_yaml();
55
- execAsync = promisify(exec);
56
- BINARY_BY_HARNESS = {
57
- ohmypi: "omp",
58
- codex: "codex"
59
- };
60
54
  harnessAvailabilityCache = /* @__PURE__ */ new Map();
61
55
  builtInDefaultNoticeProviders = /* @__PURE__ */ new Set();
62
56
  HarnessResolutionError = class extends Error {
@@ -69,4 +63,4 @@ var init_harness_resolve = __esmMin((() => {
69
63
  //#endregion
70
64
  export { resolveHarness as n, init_harness_resolve as t };
71
65
 
72
- //# sourceMappingURL=harness-resolve-BGpO-OVM.js.map
66
+ //# sourceMappingURL=harness-resolve-D5FVQTmy.js.map
@@ -1,2 +1,2 @@
1
- import { n as getLatestHealthEvent, r as writeHealthEvent, t as getHealthHistory } from "./health-events-CZGZ5I-A.js";
1
+ import { n as getLatestHealthEvent, r as writeHealthEvent, t as getHealthHistory } from "./health-events-DREeevle.js";
2
2
  export { getHealthHistory, getLatestHealthEvent, writeHealthEvent };
@@ -1,4 +1,4 @@
1
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DN2wSxle.js";
1
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-D4iNWMA5.js";
2
2
  //#region ../../lib/overdeck/health-events.ts
3
3
  init_infra();
4
4
  function parseMetadata(row) {
@@ -66,4 +66,4 @@ function getHealthHistory(agentId, startTime, endTime) {
66
66
  //#endregion
67
67
  export { getLatestHealthEvent as n, writeHealthEvent as r, getHealthHistory as t };
68
68
 
69
- //# sourceMappingURL=health-events-CZGZ5I-A.js.map
69
+ //# sourceMappingURL=health-events-DREeevle.js.map
@@ -1,3 +1,3 @@
1
- import { _ as pushToHookSync, a as collectMail, b as sendMail, c as generateFixedPointPromptSync, d as initHook, f as initHookSync, g as pushToHook, h as popFromHookSync, i as clearHookSync, l as getHook, m as popFromHook, n as checkHookSync, o as collectMailSync, p as init_hooks, r as clearHook, s as generateFixedPointPrompt, t as checkHook, u as getHookSync, v as reorderHookItems, x as sendMailSync, y as reorderHookItemsSync } from "./hooks-CoNscX84.js";
1
+ import { _ as pushToHookSync, a as collectMail, b as sendMail, c as generateFixedPointPromptSync, d as initHook, f as initHookSync, g as pushToHook, h as popFromHookSync, i as clearHookSync, l as getHook, m as popFromHook, n as checkHookSync, o as collectMailSync, p as init_hooks, r as clearHook, s as generateFixedPointPrompt, t as checkHook, u as getHookSync, v as reorderHookItems, x as sendMailSync, y as reorderHookItemsSync } from "./hooks-yxRsjk-z.js";
2
2
  init_hooks();
3
3
  export { checkHook, checkHookSync, clearHook, clearHookSync, collectMail, collectMailSync, generateFixedPointPrompt, generateFixedPointPromptSync, getHook, getHookSync, initHook, initHookSync, popFromHook, popFromHookSync, pushToHook, pushToHookSync, reorderHookItems, reorderHookItemsSync, sendMail, sendMailSync };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Or as init_errors, kr as AGENTS_DIR, ti as init_paths, vr as FsError } from "./config-yaml-Ciyp2mYe.js";
2
+ import { Mr as AGENTS_DIR, ii as init_paths, jr as init_errors, xr as FsError } from "./config-yaml-ig8Nwtiw.js";
3
3
  import { Effect } from "effect";
4
4
  import { existsSync, mkdirSync, readFileSync, readdirSync, unlinkSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -294,4 +294,4 @@ var init_hooks = __esmMin((() => {
294
294
  //#endregion
295
295
  export { pushToHookSync as _, collectMail as a, sendMail as b, generateFixedPointPromptSync as c, initHook as d, initHookSync as f, pushToHook as g, popFromHookSync as h, clearHookSync as i, getHook as l, popFromHook as m, checkHookSync as n, collectMailSync as o, init_hooks as p, clearHook as r, generateFixedPointPrompt as s, checkHook as t, getHookSync as u, reorderHookItems as v, sendMailSync as x, reorderHookItemsSync as y };
296
296
 
297
- //# sourceMappingURL=hooks-CoNscX84.js.map
297
+ //# sourceMappingURL=hooks-yxRsjk-z.js.map
@@ -0,0 +1,3 @@
1
+ import { i as init_hume, r as deleteHumeConfig } from "./hume-Dz_OymXE.js";
2
+ init_hume();
3
+ export { deleteHumeConfig };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-BAAsAv-o.js";
2
+ import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-Bigl_-Lk.js";
3
3
  import { Data, Effect } from "effect";
4
4
  //#region ../../lib/hume.ts
5
5
  /**
@@ -189,4 +189,4 @@ var init_hume = __esmMin((() => {
189
189
  //#endregion
190
190
  export { init_hume as i, createHumeConfig as n, deleteHumeConfig as r, HumeApiError as t };
191
191
 
192
- //# sourceMappingURL=hume-DSJt5eA_.js.map
192
+ //# sourceMappingURL=hume-Dz_OymXE.js.map
@@ -1,2 +1,2 @@
1
- import { t as handleAgentLifecycleEventForIdleStack } from "./idle-stack-reaper-BfL8HqYy.js";
1
+ import { t as handleAgentLifecycleEventForIdleStack } from "./idle-stack-reaper-Yf34xXxY.js";
2
2
  export { handleAgentLifecycleEventForIdleStack };
@@ -1,5 +1,5 @@
1
1
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
2
- import { j as listSessionNames, w as init_tmux } from "./tmux-y1blSxks.js";
2
+ import { j as listSessionNames, w as init_tmux } from "./tmux-L5LgvGLp.js";
3
3
  import { Effect } from "effect";
4
4
  import { exec } from "child_process";
5
5
  import { promisify } from "util";
@@ -132,4 +132,4 @@ async function reconcileIdleWorkspaceStacks(deps = {}) {
132
132
  //#endregion
133
133
  export { reconcileIdleWorkspaceStacks as n, handleAgentLifecycleEventForIdleStack as t };
134
134
 
135
- //# sourceMappingURL=idle-stack-reaper-BfL8HqYy.js.map
135
+ //# sourceMappingURL=idle-stack-reaper-Yf34xXxY.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { w as init_tmux } from "./tmux-y1blSxks.js";
2
+ import { w as init_tmux } from "./tmux-L5LgvGLp.js";
3
3
  import "effect";
4
4
  import "fs";
5
5
  import "path";
@@ -95,4 +95,4 @@ var init_in_flight_guard = __esmMin((() => {}));
95
95
  //#endregion
96
96
  export { init_review_convoy_liveness as a, init_review_monitor as c, evaluateReviewConvoyLiveness as i, createPromiseCoalescer as n, reviewTimestampMs as o, init_in_flight_guard as r, REVIEW_SUB_ROLES as s, createInFlightGuard as t };
97
97
 
98
- //# sourceMappingURL=in-flight-guard-tVGiI5ee.js.map
98
+ //# sourceMappingURL=in-flight-guard-BoWm66Kh.js.map
@@ -1,8 +1,8 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { At as init_record, Et as getIssueRecordPath, Ft as readIssueRecordSync, ei as getOverdeckHome, ri as packageRoot, ti as init_paths$1 } from "./config-yaml-Ciyp2mYe.js";
2
+ import { Nt as init_record, Rt as readIssueRecordSync, ii as init_paths$1, kt as getIssueRecordPath, oi as packageRoot, ri as getOverdeckHome } from "./config-yaml-ig8Nwtiw.js";
3
3
  import { n as openDatabase, t as init_driver$1 } from "./driver-CKVGi51s.js";
4
- import { n as updateIssueRecord, t as init_record_update } from "./record-update-RviRDSNs.js";
5
- import { D as killSession, V as sessionExists, _ as getAgentSessions, w as init_tmux } from "./tmux-y1blSxks.js";
4
+ import { n as updateIssueRecord, t as init_record_update } from "./record-update-Crz74r-6.js";
5
+ import { D as killSession, V as sessionExists, _ as getAgentSessions, w as init_tmux } from "./tmux-L5LgvGLp.js";
6
6
  import { dirname, isAbsolute, join } from "node:path";
7
7
  import { Context, Effect, Layer, Queue, Stream } from "effect";
8
8
  import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
@@ -5093,4 +5093,4 @@ var init_infra = __esmMin((() => {
5093
5093
  //#endregion
5094
5094
  export { init_paths as A, inArray as C, sql as D, like as E, OVERDECK_MIGRATION_PATH as O, gte as S, isNull as T, integer as _, EventBus as a, and as b, Records as c, getOverdeckDatabaseSync as d, init_infra as f, real as g, text as h, DbLive as i, getOverdeckDatabasePath as k, Tmux as l, sqliteTable as m, CostArchiveLive as n, EventBusLive as o, init_sqlite_core as p, Db as r, Forge as s, CostArchive as t, TmuxLive as u, init_drizzle_orm as v, isNotNull as w, eq as x, desc as y };
5095
5095
 
5096
- //# sourceMappingURL=infra-DN2wSxle.js.map
5096
+ //# sourceMappingURL=infra-D4iNWMA5.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_injection, r as injectPromptTimeMemory } from "./injection-DtlT8Akv.js";
1
+ import { n as init_injection, r as injectPromptTimeMemory } from "./injection-D7T75Pye.js";
2
2
  init_injection();
3
3
  export { injectPromptTimeMemory };
@@ -1,10 +1,10 @@
1
1
  import { n as __esmMin, o as __toESM } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $n as resolveProjectFromIssueSync, Gn as loadProjectsConfigSync, mr as require_dist, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
3
- import { d as resolveRagRunsFile, f as resolveStatusFile, i as init_paths, r as ensureParentDir } from "./paths-FP8v3lTz.js";
4
- import { n as isBackgroundFeatureEnabled, t as init_features } from "./features--fOza5g5.js";
5
- import { a as isMemoryKnowledgeIndexEnabled, i as init_settings, o as isMemoryPromptTimeInjectionEnabled } from "./settings-DP2OYLXL.js";
6
- import { n as extractWithProviderPolicy, t as init_providers } from "./providers-d3pwXGVE.js";
7
- import { n as init_fts_db, r as runMemoryFtsStatement } from "./fts-db-6ponMie2.js";
2
+ import { Hn as init_projects, Jn as loadProjectsConfigSync, _r as require_dist, nr as resolveProjectFromIssueSync } from "./config-yaml-ig8Nwtiw.js";
3
+ import { d as resolveRagRunsFile, f as resolveStatusFile, i as init_paths, r as ensureParentDir } from "./paths-DooHpt9p.js";
4
+ import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-Bc-Bmiye.js";
5
+ import { a as isMemoryKnowledgeIndexEnabled, i as init_settings, o as isMemoryPromptTimeInjectionEnabled } from "./settings-BNbocWOg.js";
6
+ import { n as extractWithProviderPolicy, t as init_providers } from "./providers-BDDPULlp.js";
7
+ import { n as init_fts_db, r as runMemoryFtsStatement } from "./fts-db-DmAcuCkV.js";
8
8
  import { Result, Schema } from "effect";
9
9
  import { extname, isAbsolute, join, relative, resolve } from "path";
10
10
  import { createHash, randomUUID } from "crypto";
@@ -815,4 +815,4 @@ var init_injection = __esmMin((() => {
815
815
  //#endregion
816
816
  export { init_query_expansion as a, clearQueryExpansionCache as i, init_injection as n, buildMatchQuery as o, injectPromptTimeMemory as r, init_search as s, PROMPT_TIME_MEMORY_BUDGETS as t };
817
817
 
818
- //# sourceMappingURL=injection-DtlT8Akv.js.map
818
+ //# sourceMappingURL=injection-D7T75Pye.js.map
@@ -1,11 +1,12 @@
1
- import { B as init_providers, C as init_tier_table, F as clearCredentialFileAuthSync, Or as init_errors, Q as resolveModel, T as resolveTieredExecutionEnabled, U as setupCredentialFileAuthSync, f as loadConfigSync, t as init_config_yaml, wr as ProcessSpawnError, yr as GitError, z as getProviderForModelSync } from "./config-yaml-Ciyp2mYe.js";
2
- import { D as killSession, V as sessionExists, s as createSession, w as init_tmux } from "./tmux-y1blSxks.js";
3
- import { c as init_review_status, y as setReviewStatusSync } from "./review-status-CCgPVK1h.js";
4
- import { Wn as saveAgentState, _ as spawnTierSupervisor, fr as saveAgentRuntimeState, h as loadPrdDraft, m as init_tier_supervisor, on as getProviderEnvForModel, p as deliverCommitForReview, s as init_agents, v as supervisorAgentId } from "./queries-B5hl7lMQ.js";
5
- import { m as readWorkspacePlanSync, o as init_io } from "./io-BiM-7Zsx.js";
6
- import { n as init_launcher_generator, t as generateLauncherScriptSync } from "./launcher-generator-5DJRiovn.js";
7
- import { a as init_claude_permissions, i as getClaudePermissionFlagsSync } from "./claude-permissions-C2OrLYKL.js";
8
- import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-Dfw3QDyZ.js";
1
+ import { D as resolveTieredExecutionEnabled, Dr as ProcessSpawnError, G as setupCredentialFileAuthSync, H as init_providers, L as clearCredentialFileAuthSync, Sr as GitError, T as init_tier_table, V as getProviderForModelSync, f as loadConfigSync, jr as init_errors, t as init_config_yaml, tt as resolveModel } from "./config-yaml-ig8Nwtiw.js";
2
+ import { D as killSession, V as sessionExists, s as createSession, w as init_tmux } from "./tmux-L5LgvGLp.js";
3
+ import { c as init_review_status, y as setReviewStatusSync } from "./review-status-DFRjDFef.js";
4
+ import { Wn as saveAgentState, _ as spawnTierSupervisor, fr as saveAgentRuntimeState, h as loadPrdDraft, m as init_tier_supervisor, on as getProviderEnvForModel, p as deliverCommitForReview, s as init_agents, v as supervisorAgentId } from "./queries-ZABd5aXP.js";
5
+ import { m as readWorkspacePlanSync, o as init_io } from "./io-DQR9PMgS.js";
6
+ import { n as init_launcher_generator, t as generateLauncherScriptSync } from "./launcher-generator-COgR2By1.js";
7
+ import { a as init_claude_permissions, i as getClaudePermissionFlagsSync } from "./claude-permissions-nSFKH78M.js";
8
+ import { n as init_harness_binary, r as prepareHarnessLaunch } from "./harness-binary-B2CTcD84.js";
9
+ import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-DtmJM0D0.js";
9
10
  import { Effect } from "effect";
10
11
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
11
12
  import { dirname, join } from "path";
@@ -146,6 +147,7 @@ function getCurrentHead(workspacePath) {
146
147
  */
147
148
  init_errors();
148
149
  init_review_status();
150
+ init_harness_binary();
149
151
  init_launcher_generator();
150
152
  init_tmux();
151
153
  init_config_yaml();
@@ -220,6 +222,7 @@ async function spawnInspectAgentPromise(context, opts = {}) {
220
222
  }
221
223
  const supervisorRoute = await routeInspectToStandingSupervisorIfEnabled(context);
222
224
  if (supervisorRoute) return supervisorRoute;
225
+ const harnessLaunch = await prepareHarnessLaunch("claude-code");
223
226
  if (await Effect.runPromise(sessionExists(tmuxSession))) await Effect.runPromise(killSession(tmuxSession)).catch(() => {});
224
227
  const prompt = await Effect.runPromise(buildInspectPrompt(context));
225
228
  setReviewStatusSync(context.issueId.toUpperCase(), {
@@ -246,6 +249,7 @@ async function spawnInspectAgentPromise(context, opts = {}) {
246
249
  workingDir: context.workspace,
247
250
  setTerminalEnv: true,
248
251
  unsetProviderEnv: true,
252
+ extraEnvExports: [harnessLaunch.pathExport],
249
253
  providerExports: Object.entries(providerEnv).map(([k, v]) => `export ${k}='${v.replace(/'/g, "'\"'\"'")}'`).join("\n") + (Object.keys(providerEnv).length ? "\n" : ""),
250
254
  overdeckEnv: {
251
255
  agentId: tmuxSession,
@@ -337,4 +341,4 @@ function onInspectComplete(projectKey, issueId, itemId, status, workspacePath) {
337
341
  //#endregion
338
342
  export { onInspectComplete as n, spawnInspectAgent as r, buildInspectPrompt as t };
339
343
 
340
- //# sourceMappingURL=inspect-agent-DKByUS_F.js.map
344
+ //# sourceMappingURL=inspect-agent-BXCgNeZ4.js.map
@@ -0,0 +1,2 @@
1
+ import { n as onInspectComplete } from "./inspect-agent-BXCgNeZ4.js";
2
+ export { onInspectComplete };
@@ -1,3 +1,3 @@
1
- import { a as getInternalToken, i as ensureInternalTokenSync, n as _resetInternalTokenCacheForTests, o as getInternalTokenSync, r as ensureInternalToken, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DhfFiwW7.js";
1
+ import { a as getInternalToken, i as ensureInternalTokenSync, n as _resetInternalTokenCacheForTests, o as getInternalTokenSync, r as ensureInternalToken, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-CXsfxslp.js";
2
2
  init_internal_token();
3
3
  export { INTERNAL_TOKEN_HEADER, _resetInternalTokenCacheForTests, ensureInternalToken, ensureInternalTokenSync, getInternalToken, getInternalTokenSync };