@overdeck/desktop 0.45.22 → 0.45.24

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 (429) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +2 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-BH7ac_1G.js → acceptance-criteria-DDCnXF58.js} +5 -5
  4. package/server/{advancing-selfheal-cSvXNZLZ.js → advancing-selfheal-BVwW4qRn.js} +6 -6
  5. package/server/{agent-gc-Dj2gncak.js → agent-gc-CHcnvonI.js} +4 -4
  6. package/server/agent-state-Bc3tzUC8.js +3 -0
  7. package/server/{agent-state-service-DistflNn.js → agent-state-service-BsgWxZuB.js} +5 -5
  8. package/server/{agent-state-service-CsQ07Pxe.js → agent-state-service-D5UGKIJL.js} +1 -1
  9. package/server/{agents-DXdHmRTC.js → agents-EbI0zCJl.js} +4 -4
  10. package/server/agents-wi9NWzs2.js +3 -0
  11. package/server/{archive-planning-Cp_DC1j-.js → archive-planning-BZDgzoEj.js} +1 -1
  12. package/server/{archive-planning-BvDuWNMo.js → archive-planning-Du25Jtst.js} +30 -6
  13. package/server/{artifact-index-jobs-CDBFL4OU.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
  14. package/server/assemble-J2ZZ2C15.js +339 -0
  15. package/server/{backlog-auto-trigger-DmA1IbYf.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
  16. package/server/{behavior-CGj16clS.js → behavior-B3exJ42O.js} +2 -2
  17. package/server/{briefing-freshness-C12WgkaB.js → briefing-freshness-D1wzUIWv.js} +2 -2
  18. package/server/{build-info-BRpqQvNd.js → build-info-CZk_TITh.js} +1 -1
  19. package/server/{build-info-NU3KbXYw.js → build-info-Ie_D0_BT.js} +3 -3
  20. package/server/{checkpoint-manager-CTPjAmtH.js → checkpoint-manager-BI1Wxoku.js} +2 -2
  21. package/server/{checkpoint-manager-rOgT98WY.js → checkpoint-manager-DwbQoqrC.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-B5jFNi2G.js → checkpoints-BJIs5QIA.js} +1 -1
  24. package/server/{checkpoints-BJum14fs.js → checkpoints-CQB1h765.js} +2 -2
  25. package/server/{claude-hooks-provision-BhwWK-TQ.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
  26. package/server/{claude-hooks-provision-D7p5WcKZ.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
  27. package/server/{claude-permissions-nSFKH78M.js → claude-permissions-DNWEVV6z.js} +2 -2
  28. package/server/{claude-settings-overlay-BI_UIke0.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
  29. package/server/{claude-settings-overlay-DHBwjS1X.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
  30. package/server/cli-B86rejVV.js +3 -0
  31. package/server/{cli-CbKNkFE5.js → cli-RoOx5DUf.js} +9 -9
  32. package/server/{cliproxy-Brf_5MuG.js → cliproxy-C8a1vtTU.js} +2 -2
  33. package/server/{cliproxy-bONZDBbC.js → cliproxy-fHfIeiGd.js} +1 -1
  34. package/server/{close-issue-CxReRxIc.js → close-issue-DoOifFIK.js} +5 -5
  35. package/server/{closed-issue-reaper-CQ3kqha7.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
  36. package/server/{closed-issue-reaper-DXP2Xyv3.js → closed-issue-reaper-CktPXo8m.js} +1 -1
  37. package/server/{codex-CbmztVcc.js → codex-BZXGhUVB.js} +27 -8
  38. package/server/codex-GcHuUF-k.js +3 -0
  39. package/server/{codex-parser-jl8AeAmB.js → codex-parser-CFZ1_1Jl.js} +2 -2
  40. package/server/{config-q4Gvd8dq.js → config-BZ0sHTju.js} +2 -2
  41. package/server/{config-DeTsoZdR.js → config-CKxYiCmX.js} +2 -2
  42. package/server/{config-BJKocXKd.js → config-DzV30TOm.js} +1 -1
  43. package/server/{config-yaml-ig8Nwtiw.js → config-yaml-DySPNmKN.js} +77 -194
  44. package/server/{conflict-gate-CFqPVxEg.js → conflict-gate-BaCVrH-N.js} +3 -3
  45. package/server/{conflict-gate-CHU9K1vU.js → conflict-gate-BhAY7TUd.js} +1 -1
  46. package/server/context-layers-BrPmE__h.js +4 -0
  47. package/server/context-layers-igZ4FI4_.js +37 -0
  48. package/server/{control-settings-D_odMIaC.js → control-settings-BQp7_4uD.js} +4 -4
  49. package/server/{conversation-compaction-B6YSRLda.js → conversation-compaction-CgrR8YYp.js} +8 -8
  50. package/server/{conversation-compaction-CN4-5YYt.js → conversation-compaction-eQB5CkOe.js} +1 -1
  51. package/server/{conversation-service-Dq33SYEj.js → conversation-service-BLd3MYsG.js} +1 -1
  52. package/server/{conversation-service-C3avRVEr.js → conversation-service-DPJ71F33.js} +329 -19
  53. package/server/{conversations-bYpM9-kZ.js → conversations-6AfUfbwc.js} +5 -5
  54. package/server/{conversations-H9if0bCQ.js → conversations-CAsJF9kh.js} +1 -1
  55. package/server/{cost-Codk1pc2.js → cost-B2ddP6wq.js} +18 -2
  56. package/server/{cost-wH46-WsJ.js → cost-R-m6Yi-W.js} +3 -3
  57. package/server/{cost-sync-D_cre6WM.js → cost-sync-BsN6ER0n.js} +3 -3
  58. package/server/{dag-CJpgf9A3.js → dag-B1ucnjDU.js} +9 -9
  59. package/server/{dangerous-git-ops-D6AF-Hg_.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
  60. package/server/dashboard-db-worker.js +7 -7
  61. package/server/{deacon-CkT_kznS.js → deacon-CU_cAYSR.js} +406 -607
  62. package/server/{deacon-B8HbQdqU.js → deacon-kiQrb4ZT.js} +3 -3
  63. package/server/{deacon-nudge-log-D6K9K-rE.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
  64. package/server/{deacon-swarm-BryRr6AO.js → deacon-swarm-BXZZ1Z2-.js} +17 -17
  65. package/server/deacon-swarm-C-GwfjJy.js +2 -0
  66. package/server/deacon.js +8 -8
  67. package/server/{deploy-patrol-1IrZxicY.js → deploy-patrol-AiFoP8dw.js} +136 -19
  68. package/server/{deploy-window-wDf4UgHt.js → deploy-window-C3F-tihF.js} +77 -10
  69. package/server/{deploy-window-7ZYHh7Zp.js → deploy-window-DkZraDyj.js} +1 -1
  70. package/server/{dev-supervisor-C7p9kEpc.js → dev-supervisor-bcOWqdQE.js} +2 -2
  71. package/server/{devcontainer-renderer-CNmQy0pL.js → devcontainer-renderer-_d6XhyND.js} +3 -3
  72. package/server/dist-Bzy0y69j.js +3 -0
  73. package/server/{dist-D-Ed5yVw.js → dist-Cb_0uvpS.js} +1 -1
  74. package/server/{docker-BCZ89M9X.js → docker-DcMTFTUC.js} +2 -2
  75. package/server/{dod-DbJLYcHv.js → dod-C6n9RV3G.js} +1 -1
  76. package/server/{ensure-devcontainer-Cs6W9Yzj.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
  77. package/server/{ensure-devcontainer-V5JWaAva.js → ensure-devcontainer-DNi-ono3.js} +4 -4
  78. package/server/{esm-shims-dTeNdq7X.js → esm-shims-OSHAYaS1.js} +1 -1
  79. package/server/{event-store-TnWdydfB.js → event-store-CQL6NeqB.js} +3 -3
  80. package/server/{event-store-CpBGsO6_.js → event-store-EV2cMiXj.js} +1 -1
  81. package/server/{events-Dsuv6qyB.js → events-BTdrdEq8.js} +1 -1
  82. package/server/{events-DSUdR-04.js → events-DTfAe4My.js} +3 -3
  83. package/server/{factory-BMrK4TrE.js → factory-CFibJuaw.js} +50 -13
  84. package/server/{feature-registry-population-B-CI9hgE.js → feature-registry-population-DKZFMbFt.js} +4 -4
  85. package/server/{feature-registry-storage-B972ph_A.js → feature-registry-storage-BdPuLcBX.js} +2 -2
  86. package/server/{features-Bc-Bmiye.js → features-ez2271oH.js} +2 -2
  87. package/server/{feedback-target-DZ-iAnAa.js → feedback-target-7mqqwrX6.js} +7 -7
  88. package/server/{feedback-target-DS6NUuSs.js → feedback-target-CoFDHiM8.js} +1 -1
  89. package/server/{feedback-writer-BXP6g75N.js → feedback-writer-CY5L1lB7.js} +6 -5
  90. package/server/{feedback-writer-Bx5z11mF.js → feedback-writer-D3a22RCd.js} +1 -1
  91. package/server/flywheel-DHrgCphM.js +1084 -0
  92. package/server/flywheel-DzGtWnJ1.js +477 -0
  93. package/server/flywheel-SVF02Jpq.js +2 -0
  94. package/server/{flywheel-merge-order-CTgHeg-W.js → flywheel-merge-order-UU0tiUld.js} +10 -9
  95. package/server/{flywheel-merge-order-CNKAY489.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
  96. package/server/{forge-B1S_KZv4.js → forge-CNFnyqps.js} +2 -2
  97. package/server/forge-DXnS_YFH.js +2 -0
  98. package/server/{from-DpwQ-sc3.js → from-kNxT0bZC.js} +1 -1
  99. package/server/{fts-db-DmAcuCkV.js → fts-db-CE46vDkZ.js} +2 -2
  100. package/server/{fts-operations-7d_RkmWp.js → fts-operations-CqY6zl-i.js} +2 -2
  101. package/server/{git-utils-Cc3FHDKd.js → git-utils-CRw2zLPC.js} +68 -3
  102. package/server/git-utils-D0_yhCgF.js +3 -0
  103. package/server/{github-app-CDPtGF7J.js → github-app-C3QrAUd0.js} +27 -8
  104. package/server/{github-app-CU14oYzP.js → github-app-ClZ2lk8D.js} +1 -1
  105. package/server/{github-client-XjTJbBm7.js → github-client-BnIsSrEN.js} +2 -2
  106. package/server/{github-client-CwBZZ3t7.js → github-client-DfQYVUaw.js} +1 -1
  107. package/server/{github-pr-lookup-CFGeVhqv.js → github-pr-lookup-D16NGsSO.js} +2 -2
  108. package/server/{harness-binary-B2CTcD84.js → harness-binary-DPUi-Pv8.js} +32 -6
  109. package/server/{harness-resolve-D5FVQTmy.js → harness-resolve-3lNZkyT4.js} +18 -9
  110. package/server/{health-events-DREeevle.js → health-events-BBcTYQKU.js} +2 -2
  111. package/server/{health-events-C1whmd58.js → health-events-BDOHby5Q.js} +1 -1
  112. package/server/{hooks-yxRsjk-z.js → hooks-CKZgXlJb.js} +2 -2
  113. package/server/{hooks-B-HItBiS.js → hooks-DPVX1rwQ.js} +1 -1
  114. package/server/{hume-Dz_OymXE.js → hume-Cz8igP9E.js} +2 -2
  115. package/server/hume-ccTf4wTX.js +3 -0
  116. package/server/{idle-stack-reaper-DrCv0OAG.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
  117. package/server/{idle-stack-reaper-Yf34xXxY.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
  118. package/server/{in-flight-guard-BoWm66Kh.js → in-flight-guard-CAAkqPLu.js} +2 -2
  119. package/server/{infra-D4iNWMA5.js → infra-BEqFxlJc.js} +14 -4
  120. package/server/{injection-D7T75Pye.js → injection-C8aiVJrF.js} +191 -183
  121. package/server/{injection-BVNa4MQW.js → injection-CPUIqNhI.js} +1 -1
  122. package/server/{inspect-agent-BXCgNeZ4.js → inspect-agent-BLuJ1AkT.js} +137 -81
  123. package/server/inspect-agent-Brtz0URj.js +2 -0
  124. package/server/{internal-token-C9DdEOKY.js → internal-token-BrcU6qfe.js} +1 -1
  125. package/server/{internal-token-CXsfxslp.js → internal-token-s0-oKybJ.js} +2 -2
  126. package/server/{io-DQR9PMgS.js → io-C9kF1wtJ.js} +160 -184
  127. package/server/{issue-closed-DtmJM0D0.js → issue-closed-CDJk4pIp.js} +7 -7
  128. package/server/{issue-lifecycle-8PSS9Anq.js → issue-lifecycle-B8sZHVHh.js} +1 -1
  129. package/server/{issue-lifecycle-CeyW_HoD.js → issue-lifecycle-ojZAzDBP.js} +22 -22
  130. package/server/{issue-service-singleton-DBZabEl7.js → issue-service-singleton-BvJ09SaR.js} +1 -1
  131. package/server/{issue-service-singleton-D_RVYBuL.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
  132. package/server/{issues-pDW9VUNz.js → issues-BMmP_77e.js} +2 -2
  133. package/server/{jsonl-parser-C3HVNR5d.js → jsonl-parser-BXSlHwEh.js} +3 -3
  134. package/server/{label-cleanup-DPwiZlWo.js → label-cleanup-B0UJwnv5.js} +3 -3
  135. package/server/{label-reconciler-Df1ZduPH.js → label-reconciler-B4iOAjlC.js} +4 -4
  136. package/server/{launcher-generator-COgR2By1.js → launcher-generator-BBWG_SiS.js} +105 -10
  137. package/server/{lifecycle-io-taIb0PoH.js → lifecycle-io-BREGpnLk.js} +37 -37
  138. package/server/lifecycle-io-DPo7x11I.js +3 -0
  139. package/server/{lifecycle-CtPDcZ9u.js → lifecycle-xmBfK2GJ.js} +6 -6
  140. package/server/lifecycle-yPd___5E.js +121 -0
  141. package/server/{linear-client-DsFkIxee.js → linear-client-BsuUvkdA.js} +2 -2
  142. package/server/{linear-client-YwZMDIwQ.js → linear-client-CTskEeT_.js} +1 -1
  143. package/server/memory-fts-worker.js +1 -1
  144. package/server/{merge-BwsyNRJV.js → merge-B1DiziGU.js} +1 -1
  145. package/server/{merge-C1t-bspg.js → merge-CefQNAnq.js} +3 -3
  146. package/server/{merge-agent-DDiIjzk-.js → merge-agent-4WOWlSYA.js} +28 -28
  147. package/server/{merge-agent-B-SnXOoc.js → merge-agent-CKkgIBPB.js} +1 -1
  148. package/server/{merge-batch-Byt-QnEl.js → merge-batch-ClFn2T-y.js} +1 -1
  149. package/server/merge-ops-CR44oU9-.js +2 -0
  150. package/server/{merge-rebase-Cm6fXaZN.js → merge-rebase-BfaTyXsw.js} +2 -2
  151. package/server/merge-set-DJ8-UErs.js +83 -0
  152. package/server/{merge-set-6LEglm6o.js → merge-set-bUqbm3yc.js} +1 -1
  153. package/server/{merge-sync-B95_4in_.js → merge-sync-BJYeOODr.js} +1 -1
  154. package/server/{merge-sync-Do8_q32h.js → merge-sync-VPV28g0g.js} +2 -2
  155. package/server/{merge-train-CKana8EH.js → merge-train-CHopycP0.js} +3 -3
  156. package/server/{merge-train-deps-BgmqwIfA.js → merge-train-deps-D1cOZzy2.js} +4 -4
  157. package/server/{merge-verification-CqnUzGEK.js → merge-verification-BkaOqPsw.js} +4 -4
  158. package/server/{multipart-parser-tdOQDJ3o.js → multipart-parser-duPAfSBw.js} +2 -2
  159. package/server/{no-resume-mode-BWOSZjWd.js → no-resume-mode-Nw29vaFb.js} +11 -8
  160. package/server/node_modules/.package-lock.json +8 -8
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  162. package/server/node_modules/undici/README.md +5 -0
  163. package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
  164. package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
  165. package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
  166. package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
  167. package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
  168. package/server/node_modules/undici/docs/docs/index.md +5 -0
  169. package/server/node_modules/undici/lib/core/request.js +1 -1
  170. package/server/node_modules/undici/lib/core/util.js +6 -1
  171. package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
  172. package/server/node_modules/undici/lib/dispatcher/client-h1.js +31 -6
  173. package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
  174. package/server/node_modules/undici/lib/handler/cache-handler.js +93 -5
  175. package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  176. package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
  177. package/server/node_modules/undici/lib/handler/retry-handler.js +6 -4
  178. package/server/node_modules/undici/lib/interceptor/cache.js +21 -4
  179. package/server/node_modules/undici/lib/interceptor/decompress.js +4 -0
  180. package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  181. package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
  182. package/server/node_modules/undici/lib/util/cache.js +49 -7
  183. package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
  184. package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
  185. package/server/node_modules/undici/package.json +2 -2
  186. package/server/node_modules/undici/types/client.d.ts +2 -2
  187. package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
  188. package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  189. package/server/{orphan-proposed-reconciler-xklgvNA7.js → orphan-proposed-reconciler-BvKkWMJQ.js} +15 -13
  190. package/server/{orphan-proposed-reconciler-DSvsJ5M7.js → orphan-proposed-reconciler-CTSGcK8p.js} +1 -1
  191. package/server/package-lock.json +9 -9
  192. package/server/package.json +1 -1
  193. package/server/{pan-dir-DOcf6ug3.js → pan-dir-B0c3w0Ya.js} +78 -58
  194. package/server/{paths-DooHpt9p.js → paths-D-xWGHdh.js} +2 -2
  195. package/server/{pickup-CaskQ7j6.js → pickup-DUCLWrJY.js} +17 -16
  196. package/server/{pipeline-membership-1LGRjo-k.js → pipeline-membership-mY3GprlK.js} +186 -67
  197. package/server/{pipeline-notifier-CZsrU_nj.js → pipeline-notifier-BJr8gQX6.js} +1 -1
  198. package/server/{pipeline-notifier-B6FVsYF9.js → pipeline-notifier-BXkJzDC4.js} +2 -2
  199. package/server/{project-pipelines-CtNG_rvs.js → project-pipelines-C0MWUeCU.js} +2 -2
  200. package/server/project-repos-B6GycDh9.js +94 -0
  201. package/server/project-repos-DXKQsc_m.js +3 -0
  202. package/server/projects-vjjcmiN8.js +3 -0
  203. package/server/{prompts-EvhMeeHG.js → prompts-DxzFXuLl.js} +2 -2
  204. package/server/{providers-BDDPULlp.js → providers-qQAwGQDW.js} +7 -7
  205. package/server/{providers-DNSQqy2V.js → providers-u4Ga0jOr.js} +1 -1
  206. package/server/public/assets/{chunk-BO2N2NFS-sym_ufXe.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
  207. package/server/public/assets/{diagram-OG6HWLK6-CQJPBNBu.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
  208. package/server/public/assets/{dist-DukGS2YZ.js → dist-ByIuzMQW.js} +3 -3
  209. package/server/public/assets/{dist-Bio7THQU.js → dist-D7zYSEA6.js} +1 -1
  210. package/server/public/assets/{ganttDiagram-6RSMTGT7-D4lWwte3.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
  211. package/server/public/assets/{highlighted-body-OFNGDK62-CaLboCt5.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
  212. package/server/public/assets/{index-Bwejq-5s.js → index-CWeMerGO.js} +147 -144
  213. package/server/public/assets/index-CenuJ3Cw.css +1 -0
  214. package/server/public/assets/{linear-qUWmMZ-c.js → linear-BBbArIcK.js} +1 -1
  215. package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
  216. package/server/public/assets/{pieDiagram-4H26LBE5-C4zYulEm.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
  217. package/server/public/assets/{prod-C8VtLuWC.js → prod-B8vYiu52.js} +4 -4
  218. package/server/public/assets/{quadrantDiagram-W4KKPZXB-qP04zyZC.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
  219. package/server/public/assets/{sankeyDiagram-5OEKKPKP-eMPTX_cG.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
  220. package/server/public/assets/{xychartDiagram-2RQKCTM6-Dme1PIt6.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
  221. package/server/public/index.html +2 -2
  222. package/server/{pull-requests-By_BteaL.js → pull-requests-7N8WKseP.js} +1 -1
  223. package/server/{pull-requests-8z2N1UOV.js → pull-requests-_lHueOHW.js} +13 -11
  224. package/server/{queries-ZABd5aXP.js → queries-CjNIf-Ub.js} +1200 -201
  225. package/server/{rally-i_goYmiA.js → rally-CyWT_lNO.js} +3 -3
  226. package/server/{rally-api-DqKqIMNR.js → rally-api-C8e_1JRi.js} +2 -2
  227. package/server/{rally-api-xHazRk0d.js → rally-api-ClOSd-Tt.js} +1 -1
  228. package/server/{rally-client-COYz1vYR.js → rally-client-lc-nokqr.js} +4 -4
  229. package/server/{rally-client-CGWEHaPd.js → rally-client-sgtVqzNU.js} +1 -1
  230. package/server/rally-zhhtXuDP.js +3 -0
  231. package/server/{reap-terminal-sessions-CaMkFOIH.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
  232. package/server/{reap-terminal-sessions-DG9eiMVz.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
  233. package/server/rebuild-stack-CFvcBHsS.js +4 -0
  234. package/server/{rebuild-stack-JUm0jqYP.js → rebuild-stack-lwtsW0GO.js} +26 -35
  235. package/server/{reconstruct-cache-wU79aCee.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
  236. package/server/record-CN0pj4_5.js +3 -0
  237. package/server/{record-update-D3N6WMFR.js → record-update-bLJxAXH4.js} +1 -1
  238. package/server/record-update-dE1Aw83j.js +310 -0
  239. package/server/{recovery-trip-DkzJSej9.js → recovery-trip-BvRWfUXM.js} +2 -2
  240. package/server/{release-engine-DMINVN8S.js → release-engine-Cx48W7z8.js} +5 -5
  241. package/server/{release-set-DeUSOEHy.js → release-set-CQfuN9-v.js} +3 -3
  242. package/server/{remote-b-c5bOce.js → remote-C_2hasl7.js} +3 -3
  243. package/server/{remote-Dr5kGYSZ.js → remote-ChgimyYa.js} +3 -3
  244. package/server/{remote-agents-Ct_WOyke.js → remote-agents-By1ige5O.js} +6 -6
  245. package/server/{remote-agents-D6O_zETW.js → remote-agents-CA3Ihlxj.js} +1 -1
  246. package/server/{remote-completion-Dca3hAaa.js → remote-completion-fVe9e_3u.js} +12 -12
  247. package/server/resume-BFv1PGpA.js +3 -0
  248. package/server/{review-agent-CThvgK2r.js → review-agent-CIGOQYBD.js} +29 -25
  249. package/server/{review-agent-CCum8sGe.js → review-agent-DNboMyW4.js} +1 -1
  250. package/server/{review-artifacts-CXywD0F2.js → review-artifacts-nRDPuMxd.js} +5 -5
  251. package/server/{review-context-OYfKUprb.js → review-context-2uj-YQ8J.js} +70 -26
  252. package/server/review-status-btEYlaxA.js +3 -0
  253. package/server/{review-status-enrichment-crNAtIpL.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
  254. package/server/{review-status-DFRjDFef.js → review-status-kZj_KyCk.js} +77 -28
  255. package/server/{review-status-sync-DpAMD_WO.js → review-status-sync-BTOpxtTC.js} +10 -5
  256. package/server/{review-status-sync-D60PJWNL.js → review-status-sync-DSDK3OMy.js} +1 -1
  257. package/server/{review-verdict-feedback-CpUZl5aE.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
  258. package/server/{review-verdict-feedback-JImjut0z.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
  259. package/server/{rollup-CZ02qgxk.js → rollup-BKQC7jp4.js} +1 -1
  260. package/server/{rollup-SyuF09e4.js → rollup-FGsKki9R.js} +8 -8
  261. package/server/{scanner-Br0Z5S6R.js → scanner-CnqEZeDy.js} +45 -14
  262. package/server/{sequence-io-fxU0DlwW.js → sequence-io-D909zgeH.js} +4 -4
  263. package/server/{sequencer-agent-B5YC5XVP.js → sequencer-agent-CzkcK6P5.js} +5 -5
  264. package/server/server.js +2961 -919
  265. package/server/{service-Bagb90KZ.js → service-CLeAoU6G.js} +55 -54
  266. package/server/{session-fork-BqQxd-V6.js → session-fork-CHI1XvL9.js} +2 -2
  267. package/server/{session-history-XdS0JKp3.js → session-history-BT3IvqhC.js} +4 -4
  268. package/server/settings-66A6uvIA.js +2 -0
  269. package/server/{settings-BNbocWOg.js → settings-BTMvpNFU.js} +3 -3
  270. package/server/{settings-uLc6DEYI.js → settings-C0zgxOGf.js} +2 -2
  271. package/server/{shadow-engineering-D4X_s3fA.js → shadow-engineering-BJfgm-hX.js} +2 -2
  272. package/server/{shadow-state-C_NkP-sa.js → shadow-state-7a-524T8.js} +2 -2
  273. package/server/{shadow-state-CbvsN3qG.js → shadow-state-DnDyjujH.js} +1 -1
  274. package/server/{shadow-utils-CYMRPeRT.js → shadow-utils-Db3oroFG.js} +2 -2
  275. package/server/{ship-log-__QtAFXG.js → ship-log-D9MlVzYU.js} +1 -1
  276. package/server/{smart-compaction-jdMkG1vo.js → smart-compaction-CV2ukKND.js} +1 -1
  277. package/server/{smart-compaction-CLZOWin1.js → smart-compaction-KCYScAU1.js} +7 -7
  278. package/server/{spawn-planning-session-D5OXo8pT.js → spawn-planning-session-DKpdFyOC.js} +35 -27
  279. package/server/{spawn-planning-session-8D6mE033.js → spawn-planning-session-qUC2VWu3.js} +1 -1
  280. package/server/{specialist-completion-CqmduO92.js → specialist-completion-Ky9wCDpb.js} +1 -1
  281. package/server/{specialist-context-CJ-QjFR-.js → specialist-context-Bn3dCGS2.js} +5 -5
  282. package/server/{specialist-handoff-logger-Dnjlwt7g.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
  283. package/server/{specialist-logs-CQnKzuZs.js → specialist-logs-C5p8G7tx.js} +3 -3
  284. package/server/{specialists-Bg9v4z3F.js → specialists-CC4r-c2s.js} +1015 -460
  285. package/server/{specialists-D0gGXMZx.js → specialists-CShuVGWT.js} +1 -1
  286. package/server/specialists-DM6bWjsi.js +3 -0
  287. package/server/{specialists-CwZHb5cb.js → specialists-jiuuyVkp.js} +66 -74
  288. package/server/specs-C8Wsn2XO.js +3 -0
  289. package/server/{src-BMMoA_ba.js → src-CXmtj0im.js} +6 -6
  290. package/server/{src-Bqdtd6po.js → src-CdmnTM2m.js} +5 -5
  291. package/server/{src-k039WVYY.js → src-DtcUOZCq.js} +112 -18
  292. package/server/stack-health-Bn3o8FBX.js +3 -0
  293. package/server/{stack-health-C-ifC7b0.js → stack-health-DxSdG9cW.js} +63 -9
  294. package/server/{stale-task-claims-L7pJkQFL.js → stale-task-claims-KJKxxiiQ.js} +4 -4
  295. package/server/{staleness-_Tr-GwdA.js → staleness-CT34nwr9.js} +1 -1
  296. package/server/{staleness-BID1BKdr.js → staleness-DPm7ClwA.js} +15 -3
  297. package/server/{state-home-CONQvZR0.js → state-home-Cn_Qu8IX.js} +96 -44
  298. package/server/{state-migrate-BeBW0KXA.js → state-migrate-BGg2ZaOt.js} +12 -3
  299. package/server/{stuck-remediation-CKnIryGT.js → stuck-remediation-DYuPRYYw.js} +307 -26
  300. package/server/{stuck-remediation-CsGD5Ksb.js → stuck-remediation-s9_2qfi6.js} +1 -1
  301. package/server/{substrate-bug-weights-service-CpIZILj9.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
  302. package/server/{summary-fork-bX6ax6X7.js → summary-fork-D1RAk9rJ.js} +78 -12
  303. package/server/{summary-fork-agEMsPSo.js → summary-fork-DpcxN9tf.js} +2 -2
  304. package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-Csw5tqfJ.js} +2 -41
  305. package/server/supervisor/pty-supervisor.js +2 -1
  306. package/server/supervisor/pty-token-x-ea28Us.js +43 -0
  307. package/server/supervisor-FTJAIsAK.js +2 -0
  308. package/server/{supervisor-Ctt4eRYz.js → supervisor-wM4ooB5O.js} +3 -3
  309. package/server/{swarm-readiness-DdmJVX7y.js → swarm-readiness-DlP_UjHq.js} +4 -4
  310. package/server/{system-prerequisites-DSXBvffY.js → system-prerequisites-DUDj1YHf.js} +56 -29
  311. package/server/{teardown-workspace-DDCf5n-a.js → teardown-workspace-DeTTImn-.js} +15 -15
  312. package/server/{test-agent-queue-BJZ9Nfcc.js → test-agent-queue-MbxX5vqq.js} +7 -7
  313. package/server/{test-verdict-Cp5tljlJ.js → test-verdict-bWYBtqBg.js} +1 -1
  314. package/server/{test-verdict-D_-sXIz_.js → test-verdict-gscuksPv.js} +1 -1
  315. package/server/{tldr-daemon-B8_oT5gx.js → tldr-daemon-BYFkts95.js} +1 -1
  316. package/server/{tldr-daemon-BQFmmFp0.js → tldr-daemon-C-69c3OI.js} +2 -2
  317. package/server/tmux-B6z7h_vZ.js +3 -0
  318. package/server/{tmux-L5LgvGLp.js → tmux-R7N7y-Mh.js} +76 -44
  319. package/server/{token-BkQLy4yS.js → token-BK6t8BIT.js} +2 -2
  320. package/server/token-util-DuPuNriz.js +3 -0
  321. package/server/{token-util-DI8sGlmF.js → token-util-DxXu-vd1.js} +1 -1
  322. package/server/{tracker-config-DdT-nUAM.js → tracker-config-G6latr8C.js} +2 -2
  323. package/server/{tracker-utils-DV3h1FYG.js → tracker-utils-B4ylXZQK.js} +1 -1
  324. package/server/{tracker-utils-CawsPSS2.js → tracker-utils-DHv5pSDT.js} +2 -2
  325. package/server/{traefik-connect-C6mJckNs.js → traefik-connect-Df2uXPsQ.js} +1 -1
  326. package/server/{tunnel-IdK1iTHx.js → tunnel-CDVKJpRv.js} +3 -3
  327. package/server/{tunnel-BIFl98rc.js → tunnel-DGdUkGoZ.js} +1 -1
  328. package/server/{types-7-GnJn0t.js → types-5M0lupud.js} +1 -1
  329. package/server/{uat-train-0Ujk8GCv.js → uat-train-B05BWkp-.js} +1 -1
  330. package/server/{uat-train-j0cPeMSj.js → uat-train-DDSrSoV1.js} +28 -28
  331. package/server/validate-IfDGkaVR.js +177 -0
  332. package/server/{validation-DcAgXTQp.js → validation-CC9OPqJZ.js} +1 -1
  333. package/server/{validation-CabEISJT.js → validation-Dw1pzDzr.js} +259 -9
  334. package/server/{verification-artifact-Ck1tefmz.js → verification-artifact-B3itKTxu.js} +1 -1
  335. package/server/{verification-artifact-BuTA1QbL.js → verification-artifact-TVFSz_q1.js} +1 -1
  336. package/server/{verification-runner-DlJezzef.js → verification-runner-BW4HOKAz.js} +1 -1
  337. package/server/{verification-runner-FiuAZ-H2.js → verification-runner-CkgX6EtI.js} +174 -124
  338. package/server/{vtt-parser-BnRsYzcz.js → vtt-parser-DYPbKcIJ.js} +1 -1
  339. package/server/{work-agent-prompt-DLthEPAq.js → work-agent-prompt-Du8Vh2aJ.js} +13 -13
  340. package/server/workflows-BQu4RFQ-.js +2 -0
  341. package/server/{workflows-BZNNYkGC.js → workflows-mbQzh6mQ.js} +39 -77
  342. package/server/{workspace-3IC-UkAi.js → workspace--8tnhDI0.js} +1 -1
  343. package/server/{workspace-D9ppycdg.js → workspace-BPUws1-_.js} +3 -3
  344. package/server/{workspace-config-Bigl_-Lk.js → workspace-config-CIVWZOQr.js} +1 -1
  345. package/server/{workspace-manager-ClkCIWTe.js → workspace-manager-CBhNdzE4.js} +76 -18
  346. package/server/workspace-manager-CWT55qeI.js +3 -0
  347. package/server/{workspace-metadata-BE0efUv_.js → workspace-metadata-BzHnwwX4.js} +1 -1
  348. package/server/{workspace-metadata-tiSRIWJP.js → workspace-metadata-_WygnyoX.js} +2 -2
  349. package/server/{workspaces-CFPcL0vl.js → workspaces-Do_9J0LQ.js} +309 -124
  350. package/sync-sources/agents/pan-inspect-agent.md +1 -1
  351. package/sync-sources/agents/pan-merge-agent.md +1 -1
  352. package/sync-sources/agents/pan-planning-agent.md +4 -4
  353. package/sync-sources/agents/pan-work-agent.md +1 -1
  354. package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
  355. package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
  356. package/sync-sources/hooks/record-cost-event.js +369 -75
  357. package/sync-sources/hooks/session-start-hook +7 -0
  358. package/sync-sources/hooks/work-agent-stop-hook +1 -1
  359. package/sync-sources/rules/per-bead-durability.md +1 -1
  360. package/sync-sources/rules/prd-authoring.md +1 -1
  361. package/sync-sources/skills/feature-work/SKILL.md +1 -1
  362. package/sync-sources/skills/okf/README.md +11 -3
  363. package/sync-sources/skills/okf/SKILL.md +12 -1
  364. package/sync-sources/skills/okf/docs/USAGE.md +15 -0
  365. package/sync-sources/skills/okf/references/overdeck.md +28 -0
  366. package/sync-sources/skills/pan/SKILL.md +2 -2
  367. package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
  368. package/sync-sources/skills/pan-approve/SKILL.md +1 -1
  369. package/sync-sources/skills/pan-close/SKILL.md +1 -1
  370. package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
  371. package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
  372. package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
  373. package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
  374. package/sync-sources/skills/pan-orders/SKILL.md +33 -0
  375. package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
  376. package/sync-sources/skills/pan-plan/SKILL.md +6 -6
  377. package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
  378. package/sync-sources/skills/pan-recap/SKILL.md +2 -2
  379. package/sync-sources/skills/pan-review/SKILL.md +1 -1
  380. package/sync-sources/skills/pan-start/SKILL.md +7 -3
  381. package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
  382. package/sync-sources/skills/pan-sync/SKILL.md +1 -1
  383. package/sync-sources/skills/pan-task/SKILL.md +2 -2
  384. package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
  385. package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
  386. package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
  387. package/sync-sources/skills/plan/SKILL.md +11 -11
  388. package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
  389. package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
  390. package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
  391. package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
  392. package/server/agent-state-Co5Sy2Fw.js +0 -3
  393. package/server/agents-DyHKlq1I.js +0 -3
  394. package/server/cli-BRORS9qY.js +0 -3
  395. package/server/codex-DNyiQDKW.js +0 -3
  396. package/server/context-layers-15gDOk20.js +0 -165
  397. package/server/context-layers-DlQKkHH2.js +0 -4
  398. package/server/deacon-swarm-CV54eNmU.js +0 -2
  399. package/server/dist-j64RzSrQ.js +0 -3
  400. package/server/flywheel-6WHU4O7A.js +0 -207
  401. package/server/flywheel-COR0mbRI.js +0 -522
  402. package/server/flywheel-Ctr5uuvo.js +0 -2
  403. package/server/forge-B0_opi-V.js +0 -2
  404. package/server/git-utils-CsKGnzFA.js +0 -3
  405. package/server/hume-BmhvfVbV.js +0 -3
  406. package/server/inspect-agent-Dq0z1k3H.js +0 -2
  407. package/server/layers-Cp1To4L8.js +0 -93
  408. package/server/lifecycle-io-DmY2qwCn.js +0 -3
  409. package/server/merge-blockers-BYjeXrVN.js +0 -41
  410. package/server/merge-ops-DwWCkSgo.js +0 -2
  411. package/server/merge-set-DiISXcC-.js +0 -139
  412. package/server/projects-BKkwpH6q.js +0 -3
  413. package/server/public/assets/index-Bdc4V9ba.css +0 -1
  414. package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +0 -1
  415. package/server/rally-OSJXdiHK.js +0 -3
  416. package/server/rebuild-stack-CKjJAI8L.js +0 -3
  417. package/server/record-rwK-nKv_.js +0 -3
  418. package/server/record-update-Crz74r-6.js +0 -168
  419. package/server/resume-wZZsWtzz.js +0 -3
  420. package/server/review-status-Bnh-rdkY.js +0 -3
  421. package/server/settings-BlUsVaUc.js +0 -2
  422. package/server/specialists-Dqe6_HE5.js +0 -3
  423. package/server/specs-BhOKBzqk.js +0 -3
  424. package/server/stack-health-Bd06frFn.js +0 -3
  425. package/server/supervisor-COVHrBTg.js +0 -2
  426. package/server/tmux-BAvtac_u.js +0 -3
  427. package/server/token-util-BArZLN6w.js +0 -3
  428. package/server/workflows-C4mR0Reb.js +0 -2
  429. package/server/workspace-manager-B1WOfKvB.js +0 -3
@@ -0,0 +1,43 @@
1
+ import { t as __esmMin } from "./chunk-ruWRV7i3.js";
2
+ import { et as getOverdeckHome, tt as init_paths } from "./paths-DehGY2Fj.js";
3
+ import "node:fs";
4
+ import { join } from "node:path";
5
+ import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
6
+ import { randomBytes } from "node:crypto";
7
+ //#region src/lib/pty-token.ts
8
+ function ptyTokenDir(agentId) {
9
+ return join(getOverdeckHome(), "agents", agentId);
10
+ }
11
+ function getPtyTokenPath(agentId) {
12
+ return join(ptyTokenDir(agentId), "pty-token");
13
+ }
14
+ async function readPtyToken(agentId) {
15
+ try {
16
+ const value = (await readFile(getPtyTokenPath(agentId), "utf8")).trim();
17
+ return value.length > 0 ? value : null;
18
+ } catch {
19
+ return null;
20
+ }
21
+ }
22
+ async function writePtyToken(agentId) {
23
+ await mkdir(ptyTokenDir(agentId), {
24
+ recursive: true,
25
+ mode: 448
26
+ });
27
+ const token = randomBytes(32).toString("hex");
28
+ const path = getPtyTokenPath(agentId);
29
+ await writeFile(path, `${token}\n`, { mode: 384 });
30
+ try {
31
+ await chmod(path, 384);
32
+ } catch {}
33
+ return token;
34
+ }
35
+ var PTY_TOKEN_HEADER;
36
+ var init_pty_token = __esmMin((() => {
37
+ init_paths();
38
+ PTY_TOKEN_HEADER = "x-overdeck-pty-token";
39
+ }));
40
+ //#endregion
41
+ export { writePtyToken as i, init_pty_token as n, readPtyToken as r, PTY_TOKEN_HEADER as t };
42
+
43
+ //# sourceMappingURL=pty-token-x-ea28Us.js.map
@@ -0,0 +1,2 @@
1
+ import { n as getSupervisorUrlSync } from "./supervisor-wM4ooB5O.js";
2
+ export { getSupervisorUrlSync };
@@ -1,6 +1,6 @@
1
- import { Br as LOGS_DIR, Rr as CONFIG_FILE, Vr as OVERDECK_HOME, Yr as TRAEFIK_DIR, ii as init_paths, jr as init_errors } from "./config-yaml-ig8Nwtiw.js";
1
+ import { Cr as LOGS_DIR, Mr as TRAEFIK_DIR, Vr as init_paths, mr as init_errors, wr as OVERDECK_HOME, xr as CONFIG_FILE } from "./config-yaml-DySPNmKN.js";
2
2
  import { t as require_toml } from "./toml-CeLDATih.js";
3
- import { t as init_dev_supervisor } from "./dev-supervisor-C7p9kEpc.js";
3
+ import { t as init_dev_supervisor } from "./dev-supervisor-bcOWqdQE.js";
4
4
  import { join } from "node:path";
5
5
  import "effect";
6
6
  import { existsSync, readFileSync } from "fs";
@@ -72,4 +72,4 @@ function getSupervisorUrlSync() {
72
72
  //#endregion
73
73
  export { getSupervisorUrlSync as n, getSupervisorPortSync as t };
74
74
 
75
- //# sourceMappingURL=supervisor-Ctt4eRYz.js.map
75
+ //# sourceMappingURL=supervisor-wM4ooB5O.js.map
@@ -1,8 +1,8 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { C as init_specs } from "./io-DQR9PMgS.js";
3
- import { c as hasFileOverlap, l as init_dag, o as getDispatchableItems, r as compileGlob, s as groupItemsByWave } from "./dag-CJpgf9A3.js";
2
+ import { C as init_specs } from "./io-C9kF1wtJ.js";
3
+ import { c as hasFileOverlap, l as init_dag, o as getDispatchableItems, r as compileGlob, s as groupItemsByWave } from "./dag-B1ucnjDU.js";
4
4
  import "effect";
5
- //#region ../../lib/vbrief/swarm-readiness.ts
5
+ //#region ../../lib/xbrief/swarm-readiness.ts
6
6
  function computeIssueFootprint(doc) {
7
7
  const footprint = /* @__PURE__ */ new Set();
8
8
  for (const item of doc.plan.items) for (const filePath of item.metadata?.files_scope ?? []) footprint.add(filePath);
@@ -112,4 +112,4 @@ var init_swarm_readiness = __esmMin((() => {
112
112
  //#endregion
113
113
  export { computeIssueFootprint as n, init_swarm_readiness as r, analyzeSwarmReadiness as t };
114
114
 
115
- //# sourceMappingURL=swarm-readiness-DdmJVX7y.js.map
115
+ //# sourceMappingURL=swarm-readiness-DlP_UjHq.js.map
@@ -1,4 +1,4 @@
1
- import { i as resolveExecutable, n as init_harness_binary } from "./harness-binary-B2CTcD84.js";
1
+ import { a as resolveExecutable, o as resolveHarnessBinary, r as init_harness_binary } from "./harness-binary-DPUi-Pv8.js";
2
2
  import { homedir } from "node:os";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
@@ -127,6 +127,18 @@ const PREREQUISITES = [
127
127
  mac: "npm install -g @openai/codex",
128
128
  win: "npm install -g @openai/codex"
129
129
  }
130
+ },
131
+ {
132
+ id: "kimi",
133
+ name: "Kimi Code CLI",
134
+ required: false,
135
+ purpose: "Kimi Code agents through the Agent Client Protocol (ACP)",
136
+ versionArgs: ["--version"],
137
+ install: {
138
+ linux: "https://www.kimi.com/code/docs/en/kimi-code-cli/guides/getting-started.html",
139
+ mac: "https://www.kimi.com/code/docs/en/kimi-code-cli/guides/getting-started.html",
140
+ win: "https://www.kimi.com/code/docs/en/kimi-code-cli/guides/getting-started.html"
141
+ }
130
142
  }
131
143
  ];
132
144
  const defaultProbe = async (cmd, args) => {
@@ -136,6 +148,17 @@ const defaultProbe = async (cmd, args) => {
136
148
  });
137
149
  return stdout;
138
150
  };
151
+ const defaultResolver = async (command, options) => {
152
+ const resolutionOptions = options?.pathValue !== void 0 ? { pathValue: options.pathValue } : void 0;
153
+ return options?.acpHarness ? resolveHarnessBinary("acp", resolutionOptions) : resolveExecutable(command, resolutionOptions);
154
+ };
155
+ function resolvePrerequisiteExecutable(id, resolver, pathValue) {
156
+ const options = {
157
+ ...id === "kimi" ? { acpHarness: true } : {},
158
+ ...pathValue !== void 0 ? { pathValue } : {}
159
+ };
160
+ return Object.keys(options).length > 0 ? resolver(id, options) : resolver(id);
161
+ }
139
162
  function firstLine(output) {
140
163
  return output.split("\n")[0]?.trim() || null;
141
164
  }
@@ -150,18 +173,18 @@ function failureKind(error) {
150
173
  return "probe failed";
151
174
  }
152
175
  /** Build a bounded, secret-free support report from the dashboard process environment. */
153
- async function collectSetupDiagnostics(overdeckVersion) {
176
+ async function collectSetupDiagnostics(overdeckVersion, probe = defaultProbe, resolver = defaultResolver) {
154
177
  const pathValue = process.env["PATH"] ?? "";
155
178
  const toolLines = await Promise.all(PREREQUISITES.map(async ({ id, versionArgs }) => {
156
- const resolvedPath = await resolveExecutable(id, { pathValue });
179
+ const resolvedPath = await resolvePrerequisiteExecutable(id, resolver, pathValue);
157
180
  if (!resolvedPath) return `✗ ${id}: command not found`;
158
181
  try {
159
- return `✓ ${id}: ${firstLine(await defaultProbe(resolvedPath, versionArgs)) ?? "version unavailable"} — ${redactHome(resolvedPath)}`;
182
+ return `✓ ${id}: ${firstLine(await probe(resolvedPath, versionArgs)) ?? "version unavailable"} — ${redactHome(resolvedPath)}`;
160
183
  } catch (error) {
161
184
  return `✗ ${id}: ${failureKind(error)} — ${redactHome(resolvedPath)}`;
162
185
  }
163
186
  }));
164
- const claudePath = await resolveExecutable("claude", { pathValue });
187
+ const claudePath = await resolvePrerequisiteExecutable("claude", resolver, pathValue);
165
188
  const likelyCause = claudePath ? "Claude resolved to an executable path; conversation and agent launchers will prepend that directory to PATH." : "Claude was not found on the server PATH, in common user install locations, under the global npm prefix, or through the login shell.";
166
189
  return {
167
190
  schemaVersion: 1,
@@ -188,29 +211,33 @@ async function collectSetupDiagnostics(overdeckVersion) {
188
211
  ].join("\n").slice(0, 16384)
189
212
  };
190
213
  }
191
- async function checkSystemPrerequisites(probe = defaultProbe, resolver = resolveExecutable) {
192
- const checks = await Promise.all(PREREQUISITES.map(async ({ versionArgs, ...definition }) => {
193
- try {
194
- const executable = await resolver(definition.id);
195
- if (!executable) return {
196
- ...definition,
197
- found: false,
198
- version: null
199
- };
200
- const output = await probe(executable, versionArgs);
201
- return {
202
- ...definition,
203
- found: true,
204
- version: firstLine(output)
205
- };
206
- } catch {
207
- return {
208
- ...definition,
209
- found: false,
210
- version: null
211
- };
212
- }
213
- }));
214
+ async function checkSystemPrerequisite(id, probe = defaultProbe, resolver = defaultResolver) {
215
+ const definition = PREREQUISITES.find((candidate) => candidate.id === id);
216
+ if (!definition) throw new Error(`Unknown system prerequisite: ${id}`);
217
+ const { versionArgs, ...checkDefinition } = definition;
218
+ try {
219
+ const executable = await resolvePrerequisiteExecutable(id, resolver);
220
+ if (!executable) return {
221
+ ...checkDefinition,
222
+ found: false,
223
+ version: null
224
+ };
225
+ const output = await probe(executable, versionArgs);
226
+ return {
227
+ ...checkDefinition,
228
+ found: true,
229
+ version: firstLine(output)
230
+ };
231
+ } catch {
232
+ return {
233
+ ...checkDefinition,
234
+ found: false,
235
+ version: null
236
+ };
237
+ }
238
+ }
239
+ async function checkSystemPrerequisites(probe = defaultProbe, resolver = defaultResolver) {
240
+ const checks = await Promise.all(PREREQUISITES.map(({ id }) => checkSystemPrerequisite(id, probe, resolver)));
214
241
  return {
215
242
  platform: process.platform,
216
243
  allRequiredFound: checks.every((check) => check.found || !check.required),
@@ -220,4 +247,4 @@ async function checkSystemPrerequisites(probe = defaultProbe, resolver = resolve
220
247
  //#endregion
221
248
  export { checkSystemPrerequisites, collectSetupDiagnostics };
222
249
 
223
- //# sourceMappingURL=system-prerequisites-DSXBvffY.js.map
250
+ //# sourceMappingURL=system-prerequisites-DUDj1YHf.js.map
@@ -1,10 +1,10 @@
1
- import { Mr as AGENTS_DIR, ii as init_paths } from "./config-yaml-ig8Nwtiw.js";
2
- import { D as killSession, V as sessionExists, j as listSessionNames, w as init_tmux } from "./tmux-L5LgvGLp.js";
3
- import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-ClkCIWTe.js";
4
- import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-CNmQy0pL.js";
5
- import { a as pidsWithCwdUnder } from "./agent-gc-Dj2gncak.js";
6
- import { i as findWorkspacePath, o as init_archive_planning, r as findAllWorkspacePaths } from "./archive-planning-BvDuWNMo.js";
7
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-7-GnJn0t.js";
1
+ import { Vr as init_paths, hr as AGENTS_DIR } from "./config-yaml-DySPNmKN.js";
2
+ import { D as killSession, H as sessionExists, M as listSessionNames, w as init_tmux } from "./tmux-R7N7y-Mh.js";
3
+ import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-CBhNdzE4.js";
4
+ import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-_d6XhyND.js";
5
+ import { a as pidsWithCwdUnder } from "./agent-gc-CHcnvonI.js";
6
+ import { i as findWorkspacePath, o as init_archive_planning, r as findAllWorkspacePaths } from "./archive-planning-Du25Jtst.js";
7
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-5M0lupud.js";
8
8
  import { Effect } from "effect";
9
9
  import { existsSync } from "fs";
10
10
  import { basename, join } from "path";
@@ -84,7 +84,7 @@ async function stopTldrDaemonImpl(workspacePath) {
84
84
  const venvPath = join(workspacePath, ".venv");
85
85
  if (!existsSync(venvPath)) return stepSkipped(step, ["No .venv found"]);
86
86
  try {
87
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-B8_oT5gx.js");
87
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-BYFkts95.js");
88
88
  await getTldrDaemonServiceSync(workspacePath, venvPath).stop();
89
89
  return stepOk(step, ["Stopped TLDR daemon"]);
90
90
  } catch {
@@ -103,7 +103,7 @@ function stopDocker(workspacePath, issueLower) {
103
103
  async function stopDockerImpl(workspacePath, issueLower) {
104
104
  const step = "teardown:docker";
105
105
  try {
106
- const { stopWorkspaceDocker } = await import("./workspace-manager-B1WOfKvB.js");
106
+ const { stopWorkspaceDocker } = await import("./workspace-manager-CWT55qeI.js");
107
107
  await Effect.runPromise(stopWorkspaceDocker(workspacePath, issueLower));
108
108
  return stepOk(step, ["Stopped Docker containers"]);
109
109
  } catch {
@@ -407,7 +407,7 @@ function clearShadowState(issueId) {
407
407
  async function clearShadowStateImpl(issueId) {
408
408
  const step = "teardown:shadow-state";
409
409
  try {
410
- const { removeShadowState } = await import("./shadow-state-CbvsN3qG.js");
410
+ const { removeShadowState } = await import("./shadow-state-DnDyjujH.js");
411
411
  if (removeShadowState(issueId).success) return stepOk(step, [`Cleared shadow state for ${issueId}`]);
412
412
  return stepSkipped(step, ["No shadow state found"]);
413
413
  } catch {
@@ -457,7 +457,7 @@ function buildPlaceholders(ctx, opts, workspacePath) {
457
457
  function removeTunnelConfig(tunnelConfig, placeholders) {
458
458
  return Effect.tryPromise({
459
459
  try: async () => {
460
- const { removeTunnelIngress } = await import("./tunnel-BIFl98rc.js");
460
+ const { removeTunnelIngress } = await import("./tunnel-DGdUkGoZ.js");
461
461
  return stepOk("teardown:tunnel", (await Effect.runPromise(removeTunnelIngress(tunnelConfig, placeholders))).steps || ["Removed tunnel ingress"]);
462
462
  },
463
463
  catch: (err) => err
@@ -469,7 +469,7 @@ function removeTunnelConfig(tunnelConfig, placeholders) {
469
469
  function removeHumeEviConfig(humeConfig, placeholders) {
470
470
  return Effect.tryPromise({
471
471
  try: async () => {
472
- const { deleteHumeConfig } = await import("./hume-BmhvfVbV.js");
472
+ const { deleteHumeConfig } = await import("./hume-ccTf4wTX.js");
473
473
  return stepOk("teardown:hume", (await Effect.runPromise(deleteHumeConfig(humeConfig, placeholders))).steps || ["Removed Hume EVI config"]);
474
474
  },
475
475
  catch: (err) => err
@@ -514,7 +514,7 @@ function pruneSpecialistRegistry(issueId) {
514
514
  return Effect.tryPromise({
515
515
  try: async () => {
516
516
  const step = "teardown:specialist-registry";
517
- const { pruneSpecialistRegistryEntriesForIssue } = await import("./specialists-Dqe6_HE5.js");
517
+ const { pruneSpecialistRegistryEntriesForIssue } = await import("./specialists-DM6bWjsi.js");
518
518
  const removed = pruneSpecialistRegistryEntriesForIssue(issueId);
519
519
  return removed > 0 ? stepOk(step, [`Pruned ${removed} specialist registry entr${removed === 1 ? "y" : "ies"} for ${issueId}`]) : stepSkipped(step, [`No specialist registry entries for ${issueId}`]);
520
520
  },
@@ -525,7 +525,7 @@ function pruneCheckpointRefs(projectPath, issueLower) {
525
525
  return Effect.tryPromise({
526
526
  try: async () => {
527
527
  const step = "teardown:checkpoint-refs";
528
- const { pruneCheckpointRefsForAgents } = await import("./checkpoint-manager-rOgT98WY.js");
528
+ const { pruneCheckpointRefsForAgents } = await import("./checkpoint-manager-DwbQoqrC.js");
529
529
  const agentIds = [
530
530
  `agent-${issueLower}`,
531
531
  `planning-${issueLower}`,
@@ -539,4 +539,4 @@ function pruneCheckpointRefs(projectPath, issueLower) {
539
539
  //#endregion
540
540
  export { teardownWorkspace as t };
541
541
 
542
- //# sourceMappingURL=teardown-workspace-DDCf5n-a.js.map
542
+ //# sourceMappingURL=teardown-workspace-DeTTImn-.js.map
@@ -1,8 +1,8 @@
1
- import { Hn as init_projects, nr as resolveProjectFromIssueSync } from "./config-yaml-ig8Nwtiw.js";
2
- import { c as init_review_status, y as setReviewStatusSync } from "./review-status-DFRjDFef.js";
3
- import { Z as spawnRun, s as init_agents } from "./queries-ZABd5aXP.js";
4
- import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-CqnUzGEK.js";
5
- import { r as init_test_verdict, t as clearTestVerdictArtifact } from "./test-verdict-Cp5tljlJ.js";
1
+ import { Tn as init_projects, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
2
+ import { b as setReviewStatusSync, l as init_review_status } from "./review-status-kZj_KyCk.js";
3
+ import { b as init_agents, ut as spawnRun } from "./queries-CjNIf-Ub.js";
4
+ import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-BkaOqPsw.js";
5
+ import { r as init_test_verdict, t as clearTestVerdictArtifact } from "./test-verdict-bWYBtqBg.js";
6
6
  import { Data, Effect } from "effect";
7
7
  //#region ../../lib/cloister/test-agent-queue.ts
8
8
  /**
@@ -34,7 +34,7 @@ Run the role-based verification flow for this already-reviewed branch.
34
34
  Required steps:
35
35
  1. Before every repository command, verify you are in the workspace above with \`pwd\`. If not, stop and switch back to that workspace before continuing.
36
36
  2. Work only in the workspace above. Never run build, test, git, or dashboard commands from the main checkout or another worktree.
37
- 3. Read .pan/records/${options.issueId.toLowerCase()}.json, the canonical vBRIEF under .pan/specs/ for ${options.issueId}, issue notes, and project instructions to determine required verification. Do not require retired workspace-local .pan/continue.json or .pan/spec.vbrief.json files to exist.
37
+ 3. Read .pan/records/${options.issueId.toLowerCase()}.json, the canonical xBRIEF under .pan/specs/ for ${options.issueId}, issue notes, and project instructions to determine required verification. Do not require retired workspace-local .pan/continue.json or .pan/spec.vbrief.json files to exist.
38
38
  4. Run the configured project gates (at minimum typecheck, lint, and tests when present/applicable).
39
39
  5. Decide whether browser UAT is required from acceptance criteria, issue notes, PR notes, or UI/dashboard wording.
40
40
  6. If UAT is required, build and run the dashboard from the workspace above, not from main. If a dashboard from another checkout is already running, stop it and start the workspace-built dashboard.
@@ -163,4 +163,4 @@ const dispatchTestAgentAndNotify = (issueId, workspace, branch, notifyAgent) =>
163
163
  //#endregion
164
164
  export { buildTestRolePrompt, dispatchTestAgentAndNotify };
165
165
 
166
- //# sourceMappingURL=test-agent-queue-BJZ9Nfcc.js.map
166
+ //# sourceMappingURL=test-agent-queue-MbxX5vqq.js.map
@@ -102,4 +102,4 @@ var init_test_verdict = __esmMin((() => {}));
102
102
  //#endregion
103
103
  export { testVerdictArtifactPath as a, readTestVerdictArtifact as i, decideUnsignaledTestAction as n, init_test_verdict as r, clearTestVerdictArtifact as t };
104
104
 
105
- //# sourceMappingURL=test-verdict-Cp5tljlJ.js.map
105
+ //# sourceMappingURL=test-verdict-bWYBtqBg.js.map
@@ -1,3 +1,3 @@
1
- import { i as readTestVerdictArtifact, r as init_test_verdict } from "./test-verdict-Cp5tljlJ.js";
1
+ import { i as readTestVerdictArtifact, r as init_test_verdict } from "./test-verdict-bWYBtqBg.js";
2
2
  init_test_verdict();
3
3
  export { readTestVerdictArtifact };
@@ -1,3 +1,3 @@
1
- import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-BQFmmFp0.js";
1
+ import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-C-69c3OI.js";
2
2
  init_tldr_daemon();
3
3
  export { getTldrDaemonServiceSync };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { jr as init_errors } from "./config-yaml-ig8Nwtiw.js";
2
+ import { mr as init_errors } from "./config-yaml-DySPNmKN.js";
3
3
  import "effect";
4
4
  import { existsSync, readFileSync, statSync } from "fs";
5
5
  import { join } from "path";
@@ -221,4 +221,4 @@ var init_tldr_daemon = __esmMin((() => {
221
221
  //#endregion
222
222
  export { getTldrDaemonServiceSync as n, init_tldr_daemon as r, TldrDaemonService as t };
223
223
 
224
- //# sourceMappingURL=tldr-daemon-BQFmmFp0.js.map
224
+ //# sourceMappingURL=tldr-daemon-C-69c3OI.js.map
@@ -0,0 +1,3 @@
1
+ import { D as killSession, E as isPaneDead, H as sessionExists, M as listSessionNames, k as listAllPaneRecords, w as init_tmux } from "./tmux-R7N7y-Mh.js";
2
+ init_tmux();
3
+ export { isPaneDead, killSession, listAllPaneRecords, listSessionNames, sessionExists };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Or as TmuxError, f as loadConfigSync, ii as init_paths, jr as init_errors, ri as getOverdeckHome, t as init_config_yaml } from "./config-yaml-ig8Nwtiw.js";
2
+ import { Br as getOverdeckHome, Vr as init_paths, dr as TmuxError, f as loadConfigSync, mr as init_errors, t as init_config_yaml } from "./config-yaml-DySPNmKN.js";
3
3
  import { Effect } from "effect";
4
4
  import { appendFileSync, chmodSync, existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -120,6 +120,50 @@ var init_ui_theme = __esmMin((() => {
120
120
  };
121
121
  }));
122
122
  //#endregion
123
+ //#region ../../lib/tmux-process-tree.ts
124
+ /**
125
+ * True when a pane process tree contains a real harness rather than only the
126
+ * launcher shell and its keep-alive sleep loop. `psTable` is `ps -eo
127
+ * pid=,ppid=,comm=` output.
128
+ */
129
+ function paneTreeHasHarnessProcess(panePids, psTable) {
130
+ const childrenByPpid = /* @__PURE__ */ new Map();
131
+ const commByPid = /* @__PURE__ */ new Map();
132
+ for (const line of psTable.split("\n")) {
133
+ const match = line.trim().match(/^(\d+)\s+(\d+)\s+(.+)$/);
134
+ if (!match) continue;
135
+ const pid = Number(match[1]);
136
+ const ppid = Number(match[2]);
137
+ commByPid.set(pid, match[3].trim());
138
+ const siblings = childrenByPpid.get(ppid);
139
+ if (siblings) siblings.push(pid);
140
+ else childrenByPpid.set(ppid, [pid]);
141
+ }
142
+ const queue = [...panePids];
143
+ const seen = /* @__PURE__ */ new Set();
144
+ while (queue.length > 0) {
145
+ const pid = queue.pop();
146
+ if (seen.has(pid)) continue;
147
+ seen.add(pid);
148
+ const comm = commByPid.get(pid);
149
+ if (comm && !KEEPALIVE_FOREGROUND_COMMANDS.has(comm)) return true;
150
+ const children = childrenByPpid.get(pid);
151
+ if (children) queue.push(...children);
152
+ }
153
+ return false;
154
+ }
155
+ var KEEPALIVE_FOREGROUND_COMMANDS;
156
+ var init_tmux_process_tree = __esmMin((() => {
157
+ KEEPALIVE_FOREGROUND_COMMANDS = new Set([
158
+ "sleep",
159
+ "bash",
160
+ "sh",
161
+ "dash",
162
+ "zsh",
163
+ "ash"
164
+ ]);
165
+ }));
166
+ //#endregion
123
167
  //#region ../../lib/tmux.ts
124
168
  function validateSessionName(name) {
125
169
  if (!VALID_SESSION_NAME_RE.test(name)) throw new Error(`Invalid tmux session name: ${name}`);
@@ -729,38 +773,6 @@ async function listPaneValuesText(target, format) {
729
773
  }
730
774
  }
731
775
  /**
732
- * Pure tree walk behind isHarnessProcessAlive, exported for tests: true when
733
- * any process in the pane's tree (the pane pids themselves or any descendant)
734
- * is something other than a shell or `sleep`. `psTable` is `ps -eo
735
- * pid=,ppid=,comm=` output.
736
- */
737
- function paneTreeHasHarnessProcess(panePids, psTable) {
738
- const childrenByPpid = /* @__PURE__ */ new Map();
739
- const commByPid = /* @__PURE__ */ new Map();
740
- for (const line of psTable.split("\n")) {
741
- const match = line.trim().match(/^(\d+)\s+(\d+)\s+(.+)$/);
742
- if (!match) continue;
743
- const pid = Number(match[1]);
744
- const ppid = Number(match[2]);
745
- commByPid.set(pid, match[3].trim());
746
- const siblings = childrenByPpid.get(ppid);
747
- if (siblings) siblings.push(pid);
748
- else childrenByPpid.set(ppid, [pid]);
749
- }
750
- const queue = [...panePids];
751
- const seen = /* @__PURE__ */ new Set();
752
- while (queue.length > 0) {
753
- const pid = queue.pop();
754
- if (seen.has(pid)) continue;
755
- seen.add(pid);
756
- const comm = commByPid.get(pid);
757
- if (comm && !KEEPALIVE_FOREGROUND_COMMANDS.has(comm)) return true;
758
- const children = childrenByPpid.get(pid);
759
- if (children) queue.push(...children);
760
- }
761
- return false;
762
- }
763
- /**
764
776
  * Honest liveness signal for a launcher-managed session: true only when the
765
777
  * session exists AND a real harness process is running in it — not the post-exit
766
778
  * keep-alive loop. `sessionExists` alone cannot tell a live session from a
@@ -817,6 +829,21 @@ function detectTerminalApiErrorSync(paneOutput) {
817
829
  }
818
830
  return null;
819
831
  }
832
+ function parseTmuxPaneRecords(output) {
833
+ return output.split("\n").flatMap((line) => {
834
+ if (!line) return [];
835
+ const [sessionName = "", panePidRaw = "", paneDeadRaw = "", paneDeadStatusRaw = ""] = line.split(" ");
836
+ const panePid = Number.parseInt(panePidRaw, 10);
837
+ if (!sessionName || !Number.isInteger(panePid) || panePid <= 0) return [];
838
+ const paneDeadStatus = Number.parseInt(paneDeadStatusRaw, 10);
839
+ return [{
840
+ sessionName,
841
+ panePid,
842
+ paneDead: paneDeadRaw === "1",
843
+ paneDeadStatus: Number.isInteger(paneDeadStatus) ? paneDeadStatus : null
844
+ }];
845
+ });
846
+ }
820
847
  async function sendKeysAsync(sessionName, key, caller) {
821
848
  validateSessionName(sessionName);
822
849
  const target = exactPaneTarget(sessionName);
@@ -846,13 +873,14 @@ function deliveryVerifyLine(content) {
846
873
  const lines = content.split("\n");
847
874
  return ([...lines].reverse().find((line) => line.trim().length >= 3) ?? lines[lines.length - 1])?.trim() ?? "";
848
875
  }
849
- var execFileAsync, VALID_SESSION_NAME_RE, DEFAULT_TMUX_WINDOW_COLS, DEFAULT_TMUX_WINDOW_ROWS, MANAGED_TMUX_SERVER_UNIT, SERVER_ALIVE_POLL_MS, SERVER_ALIVE_TIMEOUT_MS, MANAGED_TMUX_CONFIG_CONTENT, tmuxContextPrepared, warnedManagedServerTmuxSpawnScope, warnedManagedServerDirtyCmdline, MessageDeliveryFailed, KEEPALIVE_FOREGROUND_COMMANDS, TERMINAL_API_ERROR_PATTERNS, toTmuxError, ensureManagedTmuxContextOnce, listSessions, listSessionNames, getWindowDimensions, sessionExists, createSession, killSession, setOption, resizeWindow, sendRawKeystroke, sendKeys, capturePane, listPaneValues, isPaneDead, getAgentSessions;
876
+ var execFileAsync, VALID_SESSION_NAME_RE, DEFAULT_TMUX_WINDOW_COLS, DEFAULT_TMUX_WINDOW_ROWS, MANAGED_TMUX_SERVER_UNIT, SERVER_ALIVE_POLL_MS, SERVER_ALIVE_TIMEOUT_MS, MANAGED_TMUX_CONFIG_CONTENT, tmuxContextPrepared, warnedManagedServerTmuxSpawnScope, warnedManagedServerDirtyCmdline, MessageDeliveryFailed, TERMINAL_API_ERROR_PATTERNS, toTmuxError, ensureManagedTmuxContextOnce, listSessions, listSessionNames, listAllPaneRecords, getWindowDimensions, sessionExists, createSession, killSession, setOption, resizeWindow, sendRawKeystroke, sendKeys, capturePane, listPaneValues, isPaneDead, getAgentSessions;
850
877
  var init_tmux = __esmMin((() => {
851
878
  init_paths();
852
879
  init_config_yaml();
853
880
  init_child_env();
854
881
  init_errors();
855
882
  init_ui_theme();
883
+ init_tmux_process_tree();
856
884
  execFileAsync = promisify(execFile);
857
885
  VALID_SESSION_NAME_RE = /^[a-zA-Z0-9._-]+$/;
858
886
  DEFAULT_TMUX_WINDOW_COLS = 200;
@@ -886,14 +914,6 @@ var init_tmux = __esmMin((() => {
886
914
  this.name = "MessageDeliveryFailed";
887
915
  }
888
916
  };
889
- KEEPALIVE_FOREGROUND_COMMANDS = new Set([
890
- "sleep",
891
- "bash",
892
- "sh",
893
- "dash",
894
- "zsh",
895
- "ash"
896
- ]);
897
917
  TERMINAL_API_ERROR_PATTERNS = [
898
918
  {
899
919
  re: /usage limit for this billing cycle/i,
@@ -998,6 +1018,18 @@ var init_tmux = __esmMin((() => {
998
1018
  },
999
1019
  catch: (cause) => toTmuxError("list-session-names", cause)
1000
1020
  });
1021
+ listAllPaneRecords = () => Effect.tryPromise({
1022
+ try: async () => {
1023
+ const { stdout } = await tmuxExecAsync([
1024
+ "list-panes",
1025
+ "-a",
1026
+ "-F",
1027
+ "#{session_name} #{pane_pid} #{pane_dead} #{pane_dead_status}"
1028
+ ], { encoding: "utf-8" });
1029
+ return parseTmuxPaneRecords(String(stdout));
1030
+ },
1031
+ catch: (cause) => toTmuxError("list-all-pane-records", cause)
1032
+ });
1001
1033
  getWindowDimensions = (sessionName) => Effect.tryPromise({
1002
1034
  try: async () => {
1003
1035
  try {
@@ -1218,6 +1250,6 @@ var init_tmux = __esmMin((() => {
1218
1250
  getAgentSessions = () => listSessions().pipe(Effect.map((sessions) => sessions.filter((s) => s.name.startsWith("agent-"))));
1219
1251
  }));
1220
1252
  //#endregion
1221
- export { listPaneValuesSync as A, sendRawKeystroke as B, getWindowDimensions as C, killSession as D, isPaneDead as E, querySessionSync as F, getUiThemeSync as G, sessionExistsSync as H, resizeWindow as I, BLANKED_PROVIDER_ENV as J, init_ui_theme as K, sendEscapeKeyAsync as L, listSessions as M, listSessionsSync as N, killSessionSync as O, paneTreeHasHarnessProcess as P, sendKeys as R, getTmuxConfigMode as S, isHarnessProcessAlive as T, setOption as U, sessionExists as V, colorFgBgForTheme as W, buildChildEnvWithoutTmuxSync as X, buildChildEnvSync as Y, init_child_env as Z, getAgentSessions as _, capturePaneSync as a, getTmuxBaseArgs as b, createSessionSync as c, ensureManagedTmuxContextOnce as d, ensureOverdeckTmuxServerAsync as f, findManagedServerPidSync as g, exactSession as h, capturePane as i, listSessionNames as j, listPaneValues as k, deliveryVerifyLine as l, exactPaneTarget as m, buildTmuxArgs as n, capturePaneText as o, ensureOverdeckTmuxServerSync as p, setUiTheme as q, buildTmuxCommandString as r, createSession as s, MessageDeliveryFailed as t, detectTerminalApiErrorSync as u, getManagedTmuxConfigPath as v, init_tmux as w, getTmuxCommand as x, getManagedTmuxSocketName as y, sendKeysAsync as z };
1253
+ export { init_child_env as $, listPaneValues as A, sendKeysAsync as B, getWindowDimensions as C, killSession as D, isPaneDead as E, parseTmuxPaneRecords as F, paneTreeHasHarnessProcess as G, sessionExists as H, querySessionSync as I, init_ui_theme as J, colorFgBgForTheme as K, resizeWindow as L, listSessionNames as M, listSessions as N, killSessionSync as O, listSessionsSync as P, buildChildEnvWithoutTmuxSync as Q, sendEscapeKeyAsync as R, getTmuxConfigMode as S, isHarnessProcessAlive as T, sessionExistsSync as U, sendRawKeystroke as V, setOption as W, BLANKED_PROVIDER_ENV as X, setUiTheme as Y, buildChildEnvSync as Z, getAgentSessions as _, capturePaneSync as a, getTmuxBaseArgs as b, createSessionSync as c, ensureManagedTmuxContextOnce as d, ensureOverdeckTmuxServerAsync as f, findManagedServerPidSync as g, exactSession as h, capturePane as i, listPaneValuesSync as j, listAllPaneRecords as k, deliveryVerifyLine as l, exactPaneTarget as m, buildTmuxArgs as n, capturePaneText as o, ensureOverdeckTmuxServerSync as p, getUiThemeSync as q, buildTmuxCommandString as r, createSession as s, MessageDeliveryFailed as t, detectTerminalApiErrorSync as u, getManagedTmuxConfigPath as v, init_tmux as w, getTmuxCommand as x, getManagedTmuxSocketName as y, sendKeys as z };
1222
1254
 
1223
- //# sourceMappingURL=tmux-L5LgvGLp.js.map
1255
+ //# sourceMappingURL=tmux-R7N7y-Mh.js.map
@@ -1,5 +1,5 @@
1
1
  import { t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { r as require_token_error, t as require_token_util } from "./token-util-DI8sGlmF.js";
2
+ import { r as require_token_error, t as require_token_util } from "./token-util-DxXu-vd1.js";
3
3
  //#region ../../../node_modules/.bun/@vercel+oidc@3.2.0/node_modules/@vercel/oidc/dist/token.js
4
4
  var require_token = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5
5
  var __defProp = Object.defineProperty;
@@ -54,4 +54,4 @@ var require_token = /* @__PURE__ */ __commonJSMin(((exports, module) => {
54
54
  export default require_token();
55
55
  export {};
56
56
 
57
- //# sourceMappingURL=token-BkQLy4yS.js.map
57
+ //# sourceMappingURL=token-BK6t8BIT.js.map
@@ -0,0 +1,3 @@
1
+ import { t as require_token_util } from "./token-util-DxXu-vd1.js";
2
+ export default require_token_util();
3
+ export {};
@@ -432,4 +432,4 @@ var require_token_util = /* @__PURE__ */ __commonJSMin(((exports, module) => {
432
432
  //#endregion
433
433
  export { require_auth_errors as n, require_token_error as r, require_token_util as t };
434
434
 
435
- //# sourceMappingURL=token-util-DI8sGlmF.js.map
435
+ //# sourceMappingURL=token-util-DxXu-vd1.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Hn as init_projects, Jn as loadProjectsConfigSync, Nn as getIssuePrefix, f as loadConfigSync, t as init_config_yaml } from "./config-yaml-ig8Nwtiw.js";
2
+ import { Tn as init_projects, f as loadConfigSync, gn as getIssuePrefix, jn as loadProjectsConfigSync, t as init_config_yaml } from "./config-yaml-DySPNmKN.js";
3
3
  import { existsSync } from "fs";
4
4
  import { join } from "path";
5
5
  import { homedir } from "os";
@@ -142,4 +142,4 @@ var init_tracker_config = __esmMin((() => {
142
142
  //#endregion
143
143
  export { init_tracker_config as a, initTrackerConfigCache as i, getLinearApiKey as n, validateRallyConfig as o, getRallyConfig as r, getGitHubConfig as t };
144
144
 
145
- //# sourceMappingURL=tracker-config-DdT-nUAM.js.map
145
+ //# sourceMappingURL=tracker-config-G6latr8C.js.map
@@ -1,3 +1,3 @@
1
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CawsPSS2.js";
1
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-DHv5pSDT.js";
2
2
  init_tracker_utils();
3
3
  export { resolveGitHubIssueSync };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Hn as init_projects, Jn as loadProjectsConfigSync, Nn as getIssuePrefix, dr as extractPrefixSync, fr as init_issue_id, jr as init_errors, mr as parseIssueIdSync, ur as extractNumberSync } from "./config-yaml-ig8Nwtiw.js";
2
+ import { Jn as extractPrefixSync, Tn as init_projects, Yn as init_issue_id, Zn as parseIssueIdSync, gn as getIssuePrefix, jn as loadProjectsConfigSync, mr as init_errors, qn as extractNumberSync } from "./config-yaml-DySPNmKN.js";
3
3
  import "effect";
4
4
  import { existsSync, readFileSync } from "fs";
5
5
  import { join } from "path";
@@ -120,4 +120,4 @@ var init_tracker_utils = __esmMin((() => {
120
120
  //#endregion
121
121
  export { resolveTrackerTypeSync as a, resolveGitHubIssueSync as i, init_tracker_utils as n, parseGitHubReposSync as r, extractIssuePrefix as t };
122
122
 
123
- //# sourceMappingURL=tracker-utils-CawsPSS2.js.map
123
+ //# sourceMappingURL=tracker-utils-DHv5pSDT.js.map
@@ -69,4 +69,4 @@ var init_traefik_connect = __esmMin((() => {
69
69
  //#endregion
70
70
  export { reconcileTraefikNetworks as n, init_traefik_connect as t };
71
71
 
72
- //# sourceMappingURL=traefik-connect-C6mJckNs.js.map
72
+ //# sourceMappingURL=traefik-connect-Df2uXPsQ.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { jr as init_errors, kr as TrackerError } from "./config-yaml-ig8Nwtiw.js";
3
- import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-Bigl_-Lk.js";
2
+ import { fr as TrackerError, mr as init_errors } from "./config-yaml-DySPNmKN.js";
3
+ import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-CIVWZOQr.js";
4
4
  import { Effect } from "effect";
5
5
  import { readFileSync } from "fs";
6
6
  import { resolve } from "path";
@@ -217,4 +217,4 @@ var init_tunnel = __esmMin((() => {
217
217
  //#endregion
218
218
  export { init_tunnel as n, removeTunnelIngress as r, addTunnelIngress as t };
219
219
 
220
- //# sourceMappingURL=tunnel-IdK1iTHx.js.map
220
+ //# sourceMappingURL=tunnel-CDVKJpRv.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_tunnel, r as removeTunnelIngress } from "./tunnel-IdK1iTHx.js";
1
+ import { n as init_tunnel, r as removeTunnelIngress } from "./tunnel-CDVKJpRv.js";
2
2
  init_tunnel();
3
3
  export { removeTunnelIngress };