@overdeck/desktop 0.50.1 → 0.50.3

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 (570) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-DFyrgxW5.js → acceptance-criteria-D-OIjvuX.js} +2 -2
  3. package/server/{active-dashboard-bundle-DbfgP8TS.js → active-dashboard-bundle-C-Ars7eG.js} +2 -2
  4. package/server/{activity-logger-DtdKxzPh.js → activity-logger-BRASNITk.js} +1 -1
  5. package/server/{activity-logger-ru8ggv-d.js → activity-logger-DNYDzAOU.js} +3 -3
  6. package/server/{advancing-selfheal-BdZ1iFJf.js → advancing-selfheal-Bq8V0QUa.js} +5 -5
  7. package/server/{agent-gc-DBMg1vIc.js → agent-gc-Coz8zQt_.js} +10 -10
  8. package/server/{agent-idle-CQlwmcRR.js → agent-idle-CAwB-K6M.js} +182 -30
  9. package/server/{agent-state-B0v3fvGI.js → agent-state-CbUEwUEQ.js} +1 -1
  10. package/server/{agent-state-BnyNoDWQ.js → agent-state-Ci6PhjOE.js} +1503 -245
  11. package/server/{agent-state-service-D95wBjA3.js → agent-state-service-D6IVrX3B.js} +5 -5
  12. package/server/{agent-state-service-GK2Uy8zc.js → agent-state-service-DcN1j6eK.js} +1 -1
  13. package/server/agents-BVvL4o_4.js +3 -0
  14. package/server/{agents-DMs1aLRU.js → agents-CkngXhQr.js} +4 -4
  15. package/server/archive-planning-CohTB7hg.js +2 -0
  16. package/server/{archive-planning-CFf5FVHQ.js → archive-planning-CtdBSD1-.js} +5 -5
  17. package/server/{artifact-index-jobs-BdeB5RIY.js → artifact-index-jobs-9ZdXQ9zH.js} +2 -2
  18. package/server/{auto-spawn-consent-C1avLtkk.js → auto-spawn-consent-CJeQM5e0.js} +281 -77
  19. package/server/{backlog-auto-trigger-oKIGNBzZ.js → backlog-auto-trigger-BuSBqG2V.js} +3 -3
  20. package/server/{behavior-CPX0E2Fj.js → behavior-Bg3yC8jC.js} +48 -35
  21. package/server/{bridge-pool-patrol-DstxbANA.js → bridge-pool-patrol-CkJ86c_r.js} +2 -2
  22. package/server/{briefing-freshness-FF0WLPMc.js → briefing-freshness-CEoe3yWS.js} +2 -2
  23. package/server/build-info-CYlxvZSQ.js +2 -0
  24. package/server/{build-info-DiA6h4T6.js → build-info-Cj3Y0K87.js} +3 -3
  25. package/server/{checkpoint-manager-CkXA-F6Z.js → checkpoint-manager-Bt4dnyyr.js} +2 -2
  26. package/server/{checkpoint-manager-D74ueYZp.js → checkpoint-manager-C1-9CFcu.js} +1 -1
  27. package/server/checkpoint-worker.js +1 -1
  28. package/server/{checkpoints-Ds83fUb1.js → checkpoints-3pyv5ikj.js} +2 -2
  29. package/server/{checkpoints-JIKy0UFv.js → checkpoints-Dgtp8549.js} +1 -1
  30. package/server/{claude-hooks-provision-D7Z8kANm.js → claude-hooks-provision-DWrqkc3x.js} +2 -2
  31. package/server/{claude-hooks-provision-BJ8LNIAe.js → claude-hooks-provision-DXac_UDF.js} +1 -1
  32. package/server/{claude-permissions-Bn53HCXr.js → claude-permissions-DX5BSnMH.js} +2 -2
  33. package/server/{claude-settings-overlay-QByq1SQa.js → claude-settings-overlay-ALboy05V.js} +1 -1
  34. package/server/{claude-settings-overlay-CqJZjFqv.js → claude-settings-overlay-CTkJUUHw.js} +2 -2
  35. package/server/{cli-BXmAb7vN.js → cli-DIhQieif.js} +11 -11
  36. package/server/cli-ZAS502uC.js +2 -0
  37. package/server/{cliproxy-ltFu5xfR.js → cliproxy-Dz_zq_4H.js} +1 -1
  38. package/server/{cliproxy-L_2OxNJf.js → cliproxy-QTm2vdgx.js} +2 -2
  39. package/server/{close-issue-BZAf0Ii-.js → close-issue-CRlmrE5g.js} +5 -5
  40. package/server/{closed-issue-reaper-DVtyOI4C.js → closed-issue-reaper-DWlw2EtL.js} +1 -1
  41. package/server/{closed-issue-reaper-BJa8SbvQ.js → closed-issue-reaper-DrHyYgJR.js} +13 -13
  42. package/server/{codex-BqLZKVNm.js → codex-DzLXjzbf.js} +1 -1
  43. package/server/{codex-DSs-3aOm.js → codex-pffr8qaN.js} +25 -18
  44. package/server/{compaction-continuation-TG0HYkOq.js → compaction-continuation-DhYgsXmF.js} +3 -3
  45. package/server/{config-DP0VV7rX.js → config-B-MLcKSo.js} +2 -2
  46. package/server/{config-Cx3N6gWz.js → config-BUjU7GZQ.js} +2 -2
  47. package/server/{config-DURnId0k.js → config-DN8ETZvK.js} +1 -1
  48. package/server/{config-yaml-OoH-ZpTb.js → config-yaml-Dce9VUd6.js} +416 -71
  49. package/server/{conflict-gate-SgOELW84.js → conflict-gate-Bt-lLgYf.js} +4 -4
  50. package/server/{conflict-gate-pMfhBEVB.js → conflict-gate-vczgdVTa.js} +1 -1
  51. package/server/{continue-Cmzd6leL.js → continue-DvNIJ-73.js} +2 -2
  52. package/server/{control-settings-Bdud_B1j.js → control-settings-BkaVFRdm.js} +5 -5
  53. package/server/{conversation-compaction-dFx_2wpa.js → conversation-compaction-CsdCbcQB.js} +8 -8
  54. package/server/{conversation-compaction-BX9UR8nl.js → conversation-compaction-D0zgWM1f.js} +1 -1
  55. package/server/{conversation-service-zgLM2g2D.js → conversation-service-6LaymUV-.js} +216 -78
  56. package/server/conversation-service-Dlks_hSS.js +3 -0
  57. package/server/conversations-BunNL58s.js +3 -0
  58. package/server/{conversations-JyrMSeOh.js → conversations-CPXMv_JQ.js} +11 -9
  59. package/server/{scanner-BEAzmMNs.js → conversations-search-DnWUghbM.js} +397 -48
  60. package/server/{cost-DR57uJFP.js → cost-PJXEAirJ.js} +8 -8
  61. package/server/{cost-CxXv7ei-.js → cost-ShD-G0cS.js} +44 -2
  62. package/server/{cost-MZ7EZFDc.js → cost-eaAmJTX9.js} +3 -3
  63. package/server/{cost-sync-Bq_dyq9k.js → cost-sync-EFEkMYWz.js} +26 -56
  64. package/server/{dag-CKUsr8wB.js → dag-Drz6Nrnf.js} +2 -2
  65. package/server/dashboard-db-worker.js +52 -10
  66. package/server/{deacon-C7qZxRuW.js → deacon-CU47dU7U.js} +169 -131
  67. package/server/{deacon-BUOpTnmQ.js → deacon-DYsOa_ss.js} +3 -3
  68. package/server/{deacon-canonical-state-hcaZgjoT.js → deacon-canonical-state-wi63RApC.js} +3 -3
  69. package/server/{deacon-event-client-Coiopt4u.js → deacon-event-client-DY8U1EbU.js} +2 -2
  70. package/server/{deacon-event-client-DJ71Tifg.js → deacon-event-client-uaGapjPL.js} +1 -1
  71. package/server/{deacon-nudge-log-pcliw8Dr.js → deacon-nudge-log-ZirGPRn1.js} +1 -1
  72. package/server/{deacon-pending-lifecycle-Dv0-8bZG.js → deacon-pending-lifecycle-ijGX8wLb.js} +2 -2
  73. package/server/deacon.js +11 -11
  74. package/server/{dead-end-trip-DH_hA7yS.js → dead-end-trip-B-zvz8Rw.js} +3 -3
  75. package/server/dead-end-trip-Caz9bf1A.js +2 -0
  76. package/server/delivery-DMYxIE0J.js +3 -0
  77. package/server/{deploy-patrol-Cv96N0s6.js → deploy-patrol-C4eXco1S.js} +8 -8
  78. package/server/deploy-queue-C3KIJizG.js +2 -0
  79. package/server/{deploy-queue-EcksuKE2.js → deploy-queue-TDZ2tzRF.js} +2 -2
  80. package/server/{deploy-window-BXbzS0zN.js → deploy-window-CdInEAuR.js} +4 -4
  81. package/server/{deploy-window-CHgL_TTN.js → deploy-window-DkjV-Haz.js} +1 -1
  82. package/server/{dev-supervisor-lNaYB136.js → dev-supervisor-CrYlJS2n.js} +2 -2
  83. package/server/{devcontainer-renderer-q8q9aXRd.js → devcontainer-renderer-DL8lfn0Y.js} +4 -4
  84. package/server/{docker-BNd0tMdS.js → docker-DLIwccCS.js} +1 -1
  85. package/server/{docker-Dk-shfga.js → docker-fz7ELYZ8.js} +3 -3
  86. package/server/{dod-BAk5arLF.js → dod-C9m0JqhG.js} +1 -1
  87. package/server/{done-preflight-CukR3Br8.js → done-preflight-CaILZ394.js} +5 -5
  88. package/server/{done-preflight-AiXnYYAy.js → done-preflight-DAufsWqY.js} +1 -1
  89. package/server/{durable-review-pipeline-Djx_lvFd.js → durable-review-pipeline-CIkgDTla.js} +1 -1
  90. package/server/{durable-review-pipeline-BOEZ0chh.js → durable-review-pipeline-CYcUvz1_.js} +1 -1
  91. package/server/{ensure-devcontainer-YXncXZ5Q.js → ensure-devcontainer-C2rKQXgr.js} +4 -4
  92. package/server/{ensure-devcontainer-BjMV_gdX.js → ensure-devcontainer-IQ_dNjjV.js} +1 -1
  93. package/server/{esm-shims-deFq5Hhl.js → esm-shims-CVzRn1Sa.js} +1 -1
  94. package/server/{event-store-DbjldlXW.js → event-store-BYOh686E.js} +5 -5
  95. package/server/{event-store-CFnLP8w-.js → event-store-Bw3YDOZ5.js} +1 -1
  96. package/server/{event-store-provider-Bu1Qrg6v.js → event-store-provider-B2PMoaap.js} +1 -1
  97. package/server/{events-Bb2x5ijT.js → events-BCPdiWG9.js} +3 -3
  98. package/server/{factory-DfIQG-qW.js → factory-BC18rvHD.js} +4 -4
  99. package/server/{feature-registry-storage-BzAGS4DA.js → feature-registry-storage-CASMzD0N.js} +2 -2
  100. package/server/{features-KxOILHX8.js → features-B1O5F33h.js} +2 -2
  101. package/server/{feedback-stuck-retirement-BqTHm-1Z.js → feedback-stuck-retirement-Dd5XNrMr.js} +2 -2
  102. package/server/{feedback-target-BjLidX0M.js → feedback-target-BcsA_GRV.js} +10 -10
  103. package/server/{feedback-target-D2CIZFwc.js → feedback-target-BzdJ2wIR.js} +1 -1
  104. package/server/{feedback-writer-BrSQ4fC-.js → feedback-writer-DfMoEtQc.js} +1 -1
  105. package/server/{feedback-writer-Dgrma-L1.js → feedback-writer-lbXBFycU.js} +5 -5
  106. package/server/{flywheel-Ds0eOd1P.js → flywheel-B34cdfbd.js} +1 -1
  107. package/server/{flywheel-X6kvGnf2.js → flywheel-D0guNqkh.js} +14 -14
  108. package/server/{flywheel-D5FchYg4.js → flywheel-Is3w2lcT.js} +16 -16
  109. package/server/{flywheel-merge-order-PTHnouQS.js → flywheel-merge-order-6HiPR2WG.js} +1 -1
  110. package/server/{flywheel-merge-order-BTY73Efv.js → flywheel-merge-order-BsNPMu0S.js} +8 -8
  111. package/server/forge-B1cpL4SY.js +2 -0
  112. package/server/{forge-B08cRXEb.js → forge-CEe3eFjh.js} +2 -2
  113. package/server/{fs-lock-DfiYlr5u.js → fs-lock-VCGoXZI5.js} +2 -2
  114. package/server/{fts-operations-Do1SP0w4.js → fts-operations-BNRxGCU_.js} +2 -2
  115. package/server/{git-info-DMOSfJ9I.js → git-info-BZYdINlU.js} +1 -1
  116. package/server/{git-utils-DfpFkvwk.js → git-utils-D96xW28f.js} +4 -4
  117. package/server/{git-utils-fcK3ZRNj.js → git-utils-DvcWLgGS.js} +1 -1
  118. package/server/{github-app-Co8ZhyUJ.js → github-app-BINlfWAA.js} +3 -2
  119. package/server/{github-app-HAqQZZRD.js → github-app-BxM1U38q.js} +1 -1
  120. package/server/{github-client-wqbDCmlL.js → github-client-DJVl4iDm.js} +3 -3
  121. package/server/{github-client-C7MUxFzX.js → github-client-oJHo9dyA.js} +1 -1
  122. package/server/{github-pr-lookup-DdLCDdu9.js → github-pr-lookup-DQEtdiyR.js} +2 -2
  123. package/server/{harness-binary-BuakhXkB.js → harness-binary-DnRGvN6T.js} +6 -3
  124. package/server/{harness-resolve-CISjc9FR.js → harness-resolve-CzTFVZ5l.js} +4 -4
  125. package/server/{health-events-CIE7gy34.js → health-events-CF2WMNkI.js} +2 -2
  126. package/server/{health-events-9RhRGZK1.js → health-events-Dv7rzyit.js} +1 -1
  127. package/server/{hooks-CmL3TXla.js → hooks-DKzqJ4HF.js} +1 -1
  128. package/server/{hooks-D55VTdQS.js → hooks-lPAsUc20.js} +2 -2
  129. package/server/hume-51rYfjzX.js +3 -0
  130. package/server/{hume-1FJmNDTq.js → hume-CxfI2cg-.js} +2 -2
  131. package/server/{identity-CZbJ0xpl.js → identity-Dc7rQLln.js} +3 -3
  132. package/server/{idle-stack-reaper-CjovDCet.js → idle-stack-reaper-C0NYGCVq.js} +4 -4
  133. package/server/{idle-stack-reaper-DhbFdkWv.js → idle-stack-reaper-CNLvCrg9.js} +1 -1
  134. package/server/{in-flight-guard-B7khcBdQ.js → in-flight-guard-HoToxzGt.js} +1 -1
  135. package/server/{infra-BbSWNOpH.js → infra-B05o-e2g.js} +4 -4
  136. package/server/{injection-DsQDBSEi.js → injection-Bk_pw2Ei.js} +1 -1
  137. package/server/{injection-BSnn_10a.js → injection-DkaIMCnX.js} +8 -8
  138. package/server/{inspect-agent-DS8j2v6U.js → inspect-agent-CP7Bu47O.js} +14 -12
  139. package/server/inspect-agent-DTuSg95i.js +2 -0
  140. package/server/{internal-token-CkrMLCLU.js → internal-token-CWcdG-Kw.js} +1 -1
  141. package/server/{internal-token-CUKcTWSG.js → internal-token-Ci0LxMIq.js} +2 -2
  142. package/server/{io-BgzG56av.js → io-Cm4Sf_6P.js} +4 -4
  143. package/server/{issue-closed-DZEwD3ol.js → issue-closed-D7aMUeMq.js} +7 -7
  144. package/server/{issue-lifecycle-LgYeE1o2.js → issue-lifecycle-BPbczKyy.js} +32 -30
  145. package/server/{issue-lifecycle-Bnfbpkmk.js → issue-lifecycle-FaugTi39.js} +1 -1
  146. package/server/{issue-service-singleton-Bsb0GaY8.js → issue-service-singleton-BrZQJLRI.js} +11 -11
  147. package/server/{issue-service-singleton-COEqWNKE.js → issue-service-singleton-Dsad9NTt.js} +1 -1
  148. package/server/{issue-title-fallback-D4_b2XwP.js → issue-title-fallback-BDxHa3-u.js} +3 -3
  149. package/server/{issues-DYAEUW45.js → issues-Q62MKOV_.js} +2 -2
  150. package/server/{jsonl-parser-1IqHI9Yb.js → jsonl-parser-DSJisyfy.js} +5 -4
  151. package/server/{jsonl-resolver-BJ8Hg-yD.js → jsonl-resolver-DQEe0DHM.js} +12 -9
  152. package/server/kimi-code-Cx5YUJpS.js +3 -0
  153. package/server/{kimi-parser-DFsZQArz.js → kimi-parser-5VpMzIDq.js} +2 -2
  154. package/server/{label-cleanup-Bej6xDZK.js → label-cleanup-DjQGmcZQ.js} +3 -3
  155. package/server/{lifecycle-BibLMHBH.js → lifecycle-BSQIQ1Sq.js} +2 -2
  156. package/server/{lifecycle-CMpSB9sn.js → lifecycle-DZFHmpGI.js} +6 -6
  157. package/server/{lifecycle-io-CLWwYZaR.js → lifecycle-io-Bv4XQMRi.js} +1 -1
  158. package/server/{lifecycle-io-CCCAMefe.js → lifecycle-io-CW__VX8s.js} +5 -5
  159. package/server/{linear-client-BtYl16Cy.js → linear-client-DnX3CcAL.js} +1 -1
  160. package/server/{linear-client-fpL-qJEa.js → linear-client-DrRZ3We7.js} +4 -7
  161. package/server/{linear-mcp-auth-nAYWoUbH.js → linear-mcp-auth-BFlpMvWh.js} +5 -5
  162. package/server/{linear-mcp-auth-CQ7ROT1X.js → linear-mcp-auth-DylPJABZ.js} +1 -1
  163. package/server/memory-fts-worker.js +1 -1
  164. package/server/{memory-governor-Mi5zF5zw.js → memory-governor-B7uDWRo9.js} +29 -22
  165. package/server/{merge-_XIivhkq.js → merge-BGozpxFt.js} +3 -3
  166. package/server/{merge-DCuDLiy9.js → merge-CphMVME2.js} +1 -1
  167. package/server/{merge-agent-svBDRWB6.js → merge-agent-ddEcZDZD.js} +2 -2
  168. package/server/{merge-agent-zF9vqWqY.js → merge-agent-ttRY053V.js} +32 -32
  169. package/server/{merge-batch-BJjzUUL7.js → merge-batch-CBQ2YYuy.js} +1 -1
  170. package/server/{merge-completeness-CeQheehh.js → merge-completeness-CsSvQJxw.js} +1 -1
  171. package/server/{merge-completeness-CQPqu-pI.js → merge-completeness-YQbhKLPk.js} +4 -4
  172. package/server/{merge-eligibility-CJrBhQQe.js → merge-eligibility-BGqmx_bG.js} +1 -1
  173. package/server/{merge-eligibility-DhxVE8qU.js → merge-eligibility-CvQBc_9D.js} +4 -4
  174. package/server/merge-ops-Bgc-EScO.js +2 -0
  175. package/server/{merge-rebase-Bjo45m3k.js → merge-rebase-BbLnMyfQ.js} +2 -2
  176. package/server/merge-rebase-BgYoyMul.js +2 -0
  177. package/server/{merge-set-COZvz2nx.js → merge-set-DRPWriK9.js} +4 -4
  178. package/server/{merge-set-ChxZgjBB.js → merge-set-DaU9Ruxy.js} +1 -1
  179. package/server/{merge-sync-DuJ6Vkl3.js → merge-sync-BRKJM70R.js} +1 -1
  180. package/server/{merge-sync-CCi1Esdx.js → merge-sync-CTGkR1_m.js} +2 -2
  181. package/server/{merge-train-deps-C0P0qGKe.js → merge-train-deps-GPlHOjK6.js} +4 -4
  182. package/server/{merge-train-DTJXF8ph.js → merge-train-f_un38UJ.js} +4 -4
  183. package/server/{merge-verification-C5FexOBZ.js → merge-verification-BPBW3Hu3.js} +6 -6
  184. package/server/{merged-docker-cleanup-worker-0SEDG3Ao.js → merged-docker-cleanup-worker-By0YSsIP.js} +1 -1
  185. package/server/{merged-docker-cleanup-worker-C-kSp_jw.js → merged-docker-cleanup-worker-zMzGriKp.js} +3 -3
  186. package/server/messaging-BasbftDu.js +3 -0
  187. package/server/muse-parser-CFchR2vh.js +89 -0
  188. package/server/muse-session-CrSRuauJ.js +56 -0
  189. package/server/{no-resume-mode-DjMQRkId.js → no-resume-mode-BsvYzqbB.js} +1 -1
  190. package/server/node_modules/.package-lock.json +8 -8
  191. package/server/node_modules/@types/node/README.md +3 -3
  192. package/server/node_modules/@types/node/assert/strict.d.ts +56 -13
  193. package/server/node_modules/@types/node/assert.d.ts +190 -189
  194. package/server/node_modules/@types/node/async_hooks.d.ts +43 -151
  195. package/server/node_modules/@types/node/buffer.buffer.d.ts +13 -12
  196. package/server/node_modules/@types/node/buffer.d.ts +237 -103
  197. package/server/node_modules/@types/node/child_process.d.ts +154 -39
  198. package/server/node_modules/@types/node/cluster.d.ts +384 -238
  199. package/server/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
  200. package/server/node_modules/@types/node/compatibility/index.d.ts +9 -0
  201. package/server/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
  202. package/server/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
  203. package/server/node_modules/@types/node/console.d.ts +404 -45
  204. package/server/node_modules/@types/node/constants.d.ts +10 -3
  205. package/server/node_modules/@types/node/crypto.d.ts +1600 -1007
  206. package/server/node_modules/@types/node/dgram.d.ts +81 -133
  207. package/server/node_modules/@types/node/diagnostics_channel.d.ts +59 -277
  208. package/server/node_modules/@types/node/dns/promises.d.ts +15 -9
  209. package/server/node_modules/@types/node/dns.d.ts +183 -136
  210. package/server/node_modules/@types/node/domain.d.ts +32 -12
  211. package/server/node_modules/@types/node/events.d.ts +696 -728
  212. package/server/node_modules/@types/node/fs/promises.d.ts +85 -256
  213. package/server/node_modules/@types/node/fs.d.ts +525 -865
  214. package/server/node_modules/@types/node/globals.d.ts +34 -12
  215. package/server/node_modules/@types/node/globals.typedarray.d.ts +0 -63
  216. package/server/node_modules/@types/node/http.d.ts +312 -433
  217. package/server/node_modules/@types/node/http2.d.ts +891 -545
  218. package/server/node_modules/@types/node/https.d.ts +243 -64
  219. package/server/node_modules/@types/node/index.d.ts +7 -25
  220. package/server/node_modules/@types/node/inspector.d.ts +58 -70
  221. package/server/node_modules/@types/node/inspector.generated.d.ts +411 -765
  222. package/server/node_modules/@types/node/module.d.ts +219 -54
  223. package/server/node_modules/@types/node/net.d.ts +222 -208
  224. package/server/node_modules/@types/node/os.d.ts +49 -41
  225. package/server/node_modules/@types/node/package.json +3 -13
  226. package/server/node_modules/@types/node/path.d.ts +141 -119
  227. package/server/node_modules/@types/node/perf_hooks.d.ts +690 -339
  228. package/server/node_modules/@types/node/process.d.ts +205 -389
  229. package/server/node_modules/@types/node/punycode.d.ts +31 -3
  230. package/server/node_modules/@types/node/querystring.d.ts +16 -3
  231. package/server/node_modules/@types/node/readline/promises.d.ts +6 -3
  232. package/server/node_modules/@types/node/readline.d.ts +152 -66
  233. package/server/node_modules/@types/node/repl.d.ts +109 -101
  234. package/server/node_modules/@types/node/sea.d.ts +116 -1
  235. package/server/node_modules/@types/node/sqlite.d.ts +68 -486
  236. package/server/node_modules/@types/node/stream/consumers.d.ts +15 -91
  237. package/server/node_modules/@types/node/stream/promises.d.ts +15 -136
  238. package/server/node_modules/@types/node/stream/web.d.ts +454 -197
  239. package/server/node_modules/@types/node/stream.d.ts +491 -603
  240. package/server/node_modules/@types/node/string_decoder.d.ts +43 -3
  241. package/server/node_modules/@types/node/test.d.ts +292 -513
  242. package/server/node_modules/@types/node/timers/promises.d.ts +18 -3
  243. package/server/node_modules/@types/node/timers.d.ts +141 -3
  244. package/server/node_modules/@types/node/tls.d.ts +257 -166
  245. package/server/node_modules/@types/node/trace_events.d.ts +97 -3
  246. package/server/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +8 -7
  247. package/server/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -2
  248. package/server/node_modules/@types/node/ts5.6/index.d.ts +6 -26
  249. package/server/node_modules/@types/node/tty.d.ts +43 -61
  250. package/server/node_modules/@types/node/url.d.ts +584 -156
  251. package/server/node_modules/@types/node/util.d.ts +1110 -181
  252. package/server/node_modules/@types/node/v8.d.ts +36 -175
  253. package/server/node_modules/@types/node/vm.d.ts +209 -292
  254. package/server/node_modules/@types/node/wasi.d.ts +74 -24
  255. package/server/node_modules/@types/node/web-globals/abortcontroller.d.ts +2 -27
  256. package/server/node_modules/@types/node/web-globals/domexception.d.ts +0 -15
  257. package/server/node_modules/@types/node/web-globals/events.d.ts +0 -9
  258. package/server/node_modules/@types/node/web-globals/fetch.d.ts +0 -14
  259. package/server/node_modules/@types/node/web-globals/navigator.d.ts +0 -3
  260. package/server/node_modules/@types/node/web-globals/streams.d.ts +0 -93
  261. package/server/node_modules/@types/node/worker_threads.d.ts +407 -257
  262. package/server/node_modules/@types/node/zlib.d.ts +165 -24
  263. package/server/node_modules/undici-types/agent.d.ts +13 -12
  264. package/server/node_modules/undici-types/api.d.ts +26 -26
  265. package/server/node_modules/undici-types/balanced-pool.d.ts +12 -13
  266. package/server/node_modules/undici-types/client.d.ts +37 -63
  267. package/server/node_modules/undici-types/connector.d.ts +2 -5
  268. package/server/node_modules/undici-types/cookies.d.ts +1 -3
  269. package/server/node_modules/undici-types/diagnostics-channel.d.ts +10 -18
  270. package/server/node_modules/undici-types/dispatcher.d.ts +139 -136
  271. package/server/node_modules/undici-types/env-http-proxy-agent.d.ts +3 -4
  272. package/server/node_modules/undici-types/errors.d.ts +54 -92
  273. package/server/node_modules/undici-types/eventsource.d.ts +4 -9
  274. package/server/node_modules/undici-types/fetch.d.ts +25 -51
  275. package/server/node_modules/undici-types/file.d.ts +39 -0
  276. package/server/node_modules/undici-types/filereader.d.ts +54 -0
  277. package/server/node_modules/undici-types/formdata.d.ts +7 -7
  278. package/server/node_modules/undici-types/global-dispatcher.d.ts +4 -4
  279. package/server/node_modules/undici-types/global-origin.d.ts +5 -5
  280. package/server/node_modules/undici-types/handlers.d.ts +9 -10
  281. package/server/node_modules/undici-types/header.d.ts +1 -162
  282. package/server/node_modules/undici-types/index.d.ts +47 -69
  283. package/server/node_modules/undici-types/interceptors.d.ts +9 -72
  284. package/server/node_modules/undici-types/mock-agent.d.ts +18 -36
  285. package/server/node_modules/undici-types/mock-client.d.ts +4 -6
  286. package/server/node_modules/undici-types/mock-errors.d.ts +3 -3
  287. package/server/node_modules/undici-types/mock-interceptor.d.ts +21 -26
  288. package/server/node_modules/undici-types/mock-pool.d.ts +4 -6
  289. package/server/node_modules/undici-types/package.json +1 -1
  290. package/server/node_modules/undici-types/patch.d.ts +4 -0
  291. package/server/node_modules/undici-types/pool-stats.d.ts +8 -8
  292. package/server/node_modules/undici-types/pool.d.ts +14 -14
  293. package/server/node_modules/undici-types/proxy-agent.d.ts +6 -14
  294. package/server/node_modules/undici-types/readable.d.ts +16 -19
  295. package/server/node_modules/undici-types/retry-agent.d.ts +1 -1
  296. package/server/node_modules/undici-types/retry-handler.d.ts +10 -19
  297. package/server/node_modules/undici-types/util.d.ts +3 -3
  298. package/server/node_modules/undici-types/webidl.d.ts +30 -148
  299. package/server/node_modules/undici-types/websocket.d.ts +10 -48
  300. package/server/{orphan-proposed-reconciler-BSsKWmsB.js → orphan-proposed-reconciler-DFHdQSEg.js} +21 -21
  301. package/server/{orphan-proposed-reconciler--V8GIzmY.js → orphan-proposed-reconciler-DzAxrM99.js} +2 -2
  302. package/server/package-lock.json +9 -9
  303. package/server/package.json +1 -1
  304. package/server/{pan-dir-COaYhZel.js → pan-dir-Bs9fme2I.js} +4 -4
  305. package/server/{parked-residue-Dvr4W9P6.js → parked-residue-DMtbxJml.js} +31 -31
  306. package/server/{paths-Cm1Q7Old.js → paths-eTg2jV4C.js} +2 -2
  307. package/server/{pickup-Dle6k9Xt.js → pickup-TwHZNJn4.js} +1 -1
  308. package/server/{pipeline-agent-reader-DCCwbUj8.js → pipeline-agent-reader-CHugmNSx.js} +3 -3
  309. package/server/{pipeline-membership-C9ykcjsn.js → pipeline-membership-BvkkuVml.js} +1 -1
  310. package/server/{pipeline-membership-BV4hdkHm.js → pipeline-membership-DxJOJOjn.js} +1 -1
  311. package/server/{pipeline-membership-gather-UN7kHpCD.js → pipeline-membership-gather-QYMqf_Wf.js} +10 -10
  312. package/server/{pipeline-membership-gather-DGoDOfKO.js → pipeline-membership-gather-fivITe13.js} +1 -1
  313. package/server/{pipeline-notifier-DsCfxoSU.js → pipeline-notifier-DUxiacft.js} +1 -1
  314. package/server/{pipeline-notifier-DfH2i_zP.js → pipeline-notifier-vZqcB2Ts.js} +2 -2
  315. package/server/{post-merge-lifecycle-worker-V51p8tSm.js → post-merge-lifecycle-worker-jzN2g_EY.js} +2 -2
  316. package/server/{post-merge-state-Cym5NVlB.js → post-merge-state-DGlkiVIO.js} +4 -4
  317. package/server/{prd-locations-CPuMD55x.js → prd-locations-Chcvxzle.js} +3 -3
  318. package/server/{project-pipelines-DdDKdXrG.js → project-pipelines-BXB5FlFs.js} +2 -2
  319. package/server/{project-repos-CNrLxJDg.js → project-repos-BVSXziAz.js} +1 -1
  320. package/server/{project-repos-DqAT7YV6.js → project-repos-J6jc42uD.js} +2 -2
  321. package/server/{project-resource-refresh-queue-Dh8k2SB7.js → project-resource-refresh-queue-DebwjPPA.js} +17 -17
  322. package/server/{project-resource-refresh-queue-C-umDazS.js → project-resource-refresh-queue-cqOeJ0fB.js} +1 -1
  323. package/server/{projects-Crur9uCa.js → projects-DXgHD2Xl.js} +1 -1
  324. package/server/{prompts-CvtVJUpG.js → prompts-BJ8Twvtl.js} +2 -2
  325. package/server/{providers-Bun8zer5.js → providers-Bx-PKo3d.js} +1 -1
  326. package/server/{providers-1BlEh5x1.js → providers-DQogCKG0.js} +7 -7
  327. package/server/public/assets/{chunk-BO2N2NFS-DzUNVdeo.js → chunk-BO2N2NFS-CefmGH8f.js} +4 -4
  328. package/server/public/assets/{chunk-K2UTITRG-CopEAH22.js → chunk-K2UTITRG-DS0TExnd.js} +2 -2
  329. package/server/public/assets/codicon-ngg6Pgfi.ttf +0 -0
  330. package/server/public/assets/{diagram-OG6HWLK6-D5iThVwA.js → diagram-OG6HWLK6-DYPEQqOy.js} +1 -1
  331. package/server/public/assets/{dist-RyrOs5EF.js → dist-D0_QiSJD.js} +1 -1
  332. package/server/public/assets/{dist-BLq-IR2D.js → dist-DVcb72hI.js} +3 -3
  333. package/server/public/assets/editor.worker-Bd9IXS8d.js +26 -0
  334. package/server/public/assets/{ganttDiagram-6RSMTGT7-n8bUPXAS.js → ganttDiagram-6RSMTGT7-C0TVczXo.js} +1 -1
  335. package/server/public/assets/{highlighted-body-OFNGDK62-1npo3yiG.js → highlighted-body-OFNGDK62-DqOVJX4H.js} +1 -1
  336. package/server/public/assets/image-GAAHSSAO-DQ2ivYhs.js +1 -0
  337. package/server/public/assets/index-CFZuwq0-.css +1 -0
  338. package/server/public/assets/index-CWCooHwg.js +1732 -0
  339. package/server/public/assets/{linear-Dd96gky1.js → linear-45MX5LeL.js} +1 -1
  340. package/server/public/assets/markdown-Budfoo9I.js +1 -0
  341. package/server/public/assets/mermaid-GHXKKRXX-71HgceZK.js +1 -0
  342. package/server/public/assets/{pieDiagram-4H26LBE5-CynZvpYP.js → pieDiagram-4H26LBE5-BSyYJciD.js} +1 -1
  343. package/server/public/assets/{prod-DBuCX9g-.js → prod-CcWF3Ag1.js} +5 -5
  344. package/server/public/assets/{quadrantDiagram-W4KKPZXB-BNlEKLKN.js → quadrantDiagram-W4KKPZXB-DyPGNivi.js} +1 -1
  345. package/server/public/assets/{sankeyDiagram-5OEKKPKP-Cq0AMnkD.js → sankeyDiagram-5OEKKPKP-CdiSWvwI.js} +1 -1
  346. package/server/public/assets/{xychartDiagram-2RQKCTM6-D7GXcBy2.js → xychartDiagram-2RQKCTM6-BZeywmN2.js} +1 -1
  347. package/server/public/index.html +2 -2
  348. package/server/pull-requests-DLiyKC8q.js +2 -0
  349. package/server/{pull-requests-DrhWU9MW.js → pull-requests-EBvcAtZO.js} +3 -3
  350. package/server/{rally-api-CNlcoTFM.js → rally-api-2KW2hJUT.js} +2 -2
  351. package/server/{rally-api-BdNfpNGk.js → rally-api-BtWOXNna.js} +1 -1
  352. package/server/{rally-client-C3eB9TM-.js → rally-client-CAQtSqJJ.js} +5 -5
  353. package/server/{rally-client-BCU7mVWE.js → rally-client-DK8Ac35q.js} +1 -1
  354. package/server/{rally-D5QkIZeb.js → rally-k5qOLHHK.js} +3 -3
  355. package/server/rally-vmQx9f0C.js +3 -0
  356. package/server/{rebuild-stack-BupKggo5.js → rebuild-stack-DSQSgPCI.js} +2 -2
  357. package/server/rebuild-stack-xdGFthJn.js +370 -0
  358. package/server/{reconciler-ComAOr_F.js → reconciler-xH7d13Wo.js} +6 -6
  359. package/server/{reconstruct-cache-DbjgwKRi.js → reconstruct-cache-Bb2Jg2DZ.js} +7 -7
  360. package/server/{record-C4JJCL2f.js → record-Dsceq536.js} +1 -1
  361. package/server/{record-update-CWwZsp9Y.js → record-update-CLtgirnZ.js} +1 -1
  362. package/server/{record-update-Cl56NqoQ.js → record-update-T3PMrwE-.js} +4 -4
  363. package/server/{recovery-trip-DA7tCXbp.js → recovery-trip-7JFHFjeo.js} +3 -3
  364. package/server/{recovery-trip-DFtSA8h5.js → recovery-trip-B7UdNXjP.js} +1 -1
  365. package/server/{release-engine-Dk99C48O.js → release-engine-78iCajIc.js} +5 -5
  366. package/server/{release-set-x8KH3nrE.js → release-set-B_sH_Mud.js} +3 -3
  367. package/server/{remote-DyZIg94K.js → remote-C9eYHTqn.js} +3 -3
  368. package/server/{remote-agents-MbWzm5Fh.js → remote-agents-CEOvYsvK.js} +1 -1
  369. package/server/{remote-agents-Blb0vO_M.js → remote-agents-CthcZHnO.js} +6 -6
  370. package/server/{remote-completion-Bcd13o-J.js → remote-completion-D5wzZCte.js} +12 -12
  371. package/server/{remote-BMZmJC5E.js → remote-gWXJyhJK.js} +3 -3
  372. package/server/{resolver-CZVWKCx0.js → resolver-BGZh3lXA.js} +7 -7
  373. package/server/{resolver-tJeEkPK5.js → resolver-ChLZFIjB.js} +2 -2
  374. package/server/{memory-pressure-patrol-CDeDh46A.js → resource-pressure-patrol-Bg23rPV-.js} +110 -9
  375. package/server/{resume-DmF2andq.js → resume-BKyB4hA1.js} +1 -1
  376. package/server/{review-agent-CmJeQc0K.js → review-agent-DHs-JngN.js} +52 -35
  377. package/server/{review-agent-DM9S22BL.js → review-agent-ZdP-HmwY.js} +2 -2
  378. package/server/{review-artifacts-DCiaejJK.js → review-artifacts-DExSp5Lh.js} +6 -6
  379. package/server/{review-convoy-liveness-C9F1Q1LN.js → review-convoy-liveness-BTMvU4CA.js} +8 -8
  380. package/server/{review-run-recovery-CRGBh7xs.js → review-run-recovery-BYalQzbh.js} +1 -1
  381. package/server/{review-run-recovery-C5TEICtx.js → review-run-recovery-BvVG3oUr.js} +2 -2
  382. package/server/{review-status-C3PJkfjv.js → review-status-BegAr86G.js} +33 -31
  383. package/server/{review-status-CDs0jQV6.js → review-status-DXTFzCmR.js} +1 -1
  384. package/server/{review-status-emit-De6PF3ZH.js → review-status-emit-C9YW6SQL.js} +3 -3
  385. package/server/{review-status-enrichment-CclcG8jk.js → review-status-enrichment-DRJKuIwU.js} +3 -3
  386. package/server/{review-status-sync-wvgdR1yZ.js → review-status-sync-CHt0oq_3.js} +2 -2
  387. package/server/{review-status-sync-B3GKewT_.js → review-status-sync-DEGnJMfG.js} +1 -1
  388. package/server/{review-verdict-feedback-DkMx_cKj.js → review-verdict-feedback-Dp139Lmv.js} +1 -1
  389. package/server/{review-verdict-feedback-20s9pG0w.js → review-verdict-feedback-qlVBi19-.js} +7 -7
  390. package/server/{review-verdict-writer-CaJPCD-q.js → review-verdict-writer-BVco3WoI.js} +1 -1
  391. package/server/{review-verdict-writer-BcG5RBWF.js → review-verdict-writer-CJr_Ob0Y.js} +7 -7
  392. package/server/{rollup-C-GXHbTG.js → rollup-H2NWuNhX.js} +8 -8
  393. package/server/{rollup-DR250WyW.js → rollup-iPhJvI-2.js} +1 -1
  394. package/server/{search-BN0MYpZW.js → search-BtgzCB2W.js} +2 -2
  395. package/server/{secret-redaction-DLZ-VqHq.js → secret-redaction-EqpTK7R6.js} +1 -1
  396. package/server/{sequence-io-BmVO0K-_.js → sequence-io-iljWlslY.js} +4 -4
  397. package/server/{sequencer-agent-CuA9PA_R.js → sequencer-agent-BGGVKxtw.js} +11 -6
  398. package/server/server.js +1526 -1240
  399. package/server/{service-D1SZCxH8.js → service-kzhN0DLg.js} +58 -58
  400. package/server/{session-fork--SMYFKVu.js → session-fork-B3hkpes1.js} +2 -2
  401. package/server/{settings-CETdzCl6.js → settings-BpM0Ergn.js} +3 -3
  402. package/server/settings-CW_lAaJv.js +2 -0
  403. package/server/{settings-CFi7CdJo.js → settings-aBz_GpBq.js} +9 -2
  404. package/server/{shadow-engineering-CNTXaC9O.js → shadow-engineering-C7kypoM-.js} +2 -2
  405. package/server/{shadow-state-6jSyeXQ7.js → shadow-state-Db5ExiBP.js} +1 -1
  406. package/server/{shadow-state-CtYJGNXt.js → shadow-state-IG8JSXgD.js} +2 -2
  407. package/server/{shadow-utils-Cq5eMfwI.js → shadow-utils-DSDsJXLD.js} +2 -2
  408. package/server/{ship-record-STA0P11l.js → ship-record-80n1CYp9.js} +6 -6
  409. package/server/{ship-record-neN0oUI9.js → ship-record-DN8voLiQ.js} +1 -1
  410. package/server/{ship-status-DzDpufmj.js → ship-status-CJvaa4QB.js} +2 -2
  411. package/server/{smart-compaction-tndAhwoc.js → smart-compaction-C96F2aFQ.js} +7 -7
  412. package/server/{smart-compaction-CdtKIcDk.js → smart-compaction-owKHJDbL.js} +1 -1
  413. package/server/{spawn-planning-session-1XLgDLjR.js → spawn-planning-session-CiJdOHTD.js} +2 -2
  414. package/server/{spawn-planning-session-CAncCBLX.js → spawn-planning-session-FmJa6PCS.js} +41 -50
  415. package/server/{specialist-context-B054OP_a.js → specialist-context-_ootmzn2.js} +5 -5
  416. package/server/{specialist-handoff-logger-B7jzypoX.js → specialist-handoff-logger-4QCjIBPO.js} +2 -2
  417. package/server/{specialist-logs-DVhOLpwy.js → specialist-logs-BbAX221-.js} +3 -3
  418. package/server/{specialists-CC_Mnc47.js → specialists-COZoYaiz.js} +266 -173
  419. package/server/{specialists-8Pc--yZI.js → specialists-D8sYZnPb.js} +2 -2
  420. package/server/{specialists-BVBIMc4L.js → specialists-DTAOVZpU.js} +1 -1
  421. package/server/{specialists-ChvCD2a-.js → specialists-RPLJnYc1.js} +19 -19
  422. package/server/{specialists-registry-Cim1fPcM.js → specialists-registry-CNbvfOcy.js} +2 -2
  423. package/server/{specialists-registry-CoPNlhud.js → specialists-registry-DqgQIxpu.js} +1 -1
  424. package/server/specs-ChqOBhAF.js +3 -0
  425. package/server/{src-C7gGe4KU.js → src-Cz63twgJ.js} +2 -2
  426. package/server/{src-CdwN6WY6.js → src-tnFSfiXX.js} +126 -18
  427. package/server/{stack-health-CvdnSVBV.js → stack-health-D0j1RhAj.js} +1 -1
  428. package/server/{stack-health-DPXaoAus.js → stack-health-Y8O3UuPe.js} +3 -3
  429. package/server/{stale-task-claims-UoNLemTn.js → stale-task-claims-Db6yxeFz.js} +5 -5
  430. package/server/{staleness-CxZaIhrn.js → staleness-CyM7ACHv.js} +1 -1
  431. package/server/{staleness-r_dkMyMG.js → staleness-akWxgpIu.js} +1 -1
  432. package/server/{stall-sweeper-C9S8FYKz.js → stall-sweeper-9bRBZhrQ.js} +8 -8
  433. package/server/{state-home-BhI8O5lU.js → state-home-CWu1dx9L.js} +2 -2
  434. package/server/{state-mapping-D2yC81Vy.js → state-mapping-CdvWOIhv.js} +1 -1
  435. package/server/{state-migrate-DtFHcOVZ.js → state-migrate-J3tFJnbd.js} +6 -6
  436. package/server/{state-mirror-CpuHFxHb.js → state-mirror-DQKpsskH.js} +3 -3
  437. package/server/{stuck-remediation-B4nKm7B2.js → stuck-remediation-4Rf_xMEb.js} +13 -13
  438. package/server/{stuck-remediation-hSOOYB9B.js → stuck-remediation-BvTK_NYN.js} +1 -1
  439. package/server/{substrate-bug-weights-service-B9f0063E.js → substrate-bug-weights-service-9nrkZcaP.js} +3 -3
  440. package/server/{summary-fork-CUyEqFyc.js → summary-fork-D-cylknJ.js} +51 -13
  441. package/server/{summary-fork-DZcsOvDD.js → summary-fork-PLcckTRE.js} +2 -2
  442. package/server/supervisor/{injection-budget-BOH-EiFB.js → injection-budget-DfPSjiS7.js} +1 -1
  443. package/server/supervisor/pty-supervisor.js +1 -1
  444. package/server/{supervisor-CGtOs9Em.js → supervisor-B2_uXxHQ.js} +4 -4
  445. package/server/supervisor-DSSr9_E4.js +2 -0
  446. package/server/{swarm-readiness-0N2p9d2C.js → swarm-readiness-BkVvnCdr.js} +3 -3
  447. package/server/{synthesis-verdict-CQdLbK1-.js → synthesis-verdict-BtJAwMS3.js} +2 -2
  448. package/server/{synthesis-verdict-CJdseCuz.js → synthesis-verdict-b1uY2m9Q.js} +1 -1
  449. package/server/{system-prerequisites-DkDOEjQP.js → system-prerequisites-zlmZiJzn.js} +14 -2
  450. package/server/{teardown-workspace-BxFMcWu7.js → teardown-workspace-CTL16rnG.js} +16 -16
  451. package/server/{test-agent-queue-Dxeae55k.js → test-agent-queue-CMgYZiR_.js} +6 -6
  452. package/server/{test-verdict-CJ-to_Hc.js → test-verdict-BaiFCApG.js} +1 -1
  453. package/server/{test-verdict-hW5kILg7.js → test-verdict-DhjFE4Go.js} +2 -2
  454. package/server/{tldr-daemon-DKCumqHU.js → tldr-daemon-CW1MhBkM.js} +1 -1
  455. package/server/{tldr-daemon-caxXegkF.js → tldr-daemon-CYr67NdC.js} +2 -2
  456. package/server/{tmux-C-hxv71f.js → tmux-aj9rscol.js} +2 -2
  457. package/server/{tmux-CvAEO9yo.js → tmux-l-yvNWhg.js} +2 -2
  458. package/server/{token-BdfZLRg1.js → token-BO7DAEyM.js} +2 -2
  459. package/server/{token-util-Crcay9j_.js → token-util-C_1EI72O.js} +1 -1
  460. package/server/token-util-msNwng7E.js +3 -0
  461. package/server/{tracker-config-BjqwtkcT.js → tracker-config-Qq_kEwYh.js} +2 -2
  462. package/server/{tracker-utils-0cDe6yil.js → tracker-utils-McMENyKj.js} +2 -2
  463. package/server/{traefik-connect-DoQvQ6oJ.js → traefik-connect-BZWNRHOd.js} +1 -1
  464. package/server/{tunnel-BEM7-jgE.js → tunnel-BElVxdZw.js} +1 -1
  465. package/server/{tunnel-SgALz_Pi.js → tunnel-D01HhYX5.js} +3 -3
  466. package/server/{typed-errors-CZ3GFBvo.js → typed-errors-CKb5wNaG.js} +1 -1
  467. package/server/{typed-errors-DXqf3RnP.js → typed-errors-uJ-V6edU.js} +1 -1
  468. package/server/{types-PW4zkxCM.js → types-JR7ZOtpL.js} +1 -1
  469. package/server/{uat-failure-feedback-BQzpUFQ6.js → uat-failure-feedback-DS6W9X3I.js} +5 -5
  470. package/server/{uat-promote-verification-BUltWC-b.js → uat-promote-verification-CRsIHE_q.js} +5 -5
  471. package/server/{uat-train-B71QG16n.js → uat-train-BoA9r6_I.js} +1 -1
  472. package/server/{uat-train-BLJ0AAIc.js → uat-train-Cd8CJeNe.js} +22 -22
  473. package/server/{validate-DqEp2Yb9.js → validate-BdmvTIym.js} +3 -3
  474. package/server/{validation-k4EpMHm0.js → validation-ApKDjkLH.js} +1 -1
  475. package/server/{validation-DHEsL3RP.js → validation-Dxdai-37.js} +14 -4
  476. package/server/{verification-artifact-DglwaHke.js → verification-artifact-DhIkPgrP.js} +1 -1
  477. package/server/{verification-artifact-Cmhgq4b_.js → verification-artifact-olosZdZU.js} +1 -1
  478. package/server/{verification-runner-Bbc-8BbR.js → verification-runner-BO0K3xNA.js} +1 -1
  479. package/server/{verification-runner-BC_zNOq5.js → verification-runner-fEY1Qj-l.js} +31 -23
  480. package/server/{work-agent-prompt-DM3uza0_.js → work-agent-prompt-BEpIuqw1.js} +10 -10
  481. package/server/{work-agent-prompt-CQWlmw_y.js → work-agent-prompt-Csr4vMbl.js} +1 -1
  482. package/server/{work-agent-start-cKf7rly8.js → work-agent-start-DA3P_ABv.js} +2 -2
  483. package/server/{work-agent-start-BColr1oI.js → work-agent-start-DWBmIRlg.js} +1 -1
  484. package/server/workflows-CgGNyl1z.js +2 -0
  485. package/server/{workflows-DrC85n8j.js → workflows-CxVnygYU.js} +28 -28
  486. package/server/{workspace-G3Cus8e9.js → workspace-BO8fIfW9.js} +1 -1
  487. package/server/{workspace-ChRFy_F9.js → workspace-BWYfzfPV.js} +3 -3
  488. package/server/{workspace-anchor-drift-DBbyK_Mf.js → workspace-anchor-drift-BMSxf9wp.js} +1 -1
  489. package/server/{workspace-anchor-drift-z7TjOORC.js → workspace-anchor-drift-RJcMD1EV.js} +4 -4
  490. package/server/{workspace-config-D-bNq2CF.js → workspace-config-CoAaYx_w.js} +1 -1
  491. package/server/{workspace-manager-Db3pCmr7.js → workspace-manager-CnAyRh3v.js} +45 -380
  492. package/server/workspace-manager-D0jJ7StJ.js +4 -0
  493. package/server/{workspace-metadata-C5Ie2FMZ.js → workspace-metadata-Copcoih9.js} +2 -2
  494. package/server/{workspace-metadata-Do-L6GFP.js → workspace-metadata-ILlbk8AX.js} +1 -1
  495. package/server/{workspaces-D0MWw7Mx.js → workspaces-Cpz0xJWQ.js} +112 -112
  496. package/server/worktree-ops-CV-pRvyW.js +3 -0
  497. package/server/worktree-ops-Cnk1voFY.js +369 -0
  498. package/sync-sources/rules/context-nomenclature.md +4 -3
  499. package/sync-sources/rules/rule-authoring.md +3 -3
  500. package/sync-sources/skills/knowledge-capture/SKILL.md +13 -13
  501. package/sync-sources/skills/pan-new-project/SKILL.md +2 -2
  502. package/sync-sources/skills/pan-projects/SKILL.md +3 -3
  503. package/sync-sources/skills/pan-sync/SKILL.md +8 -10
  504. package/sync-sources/skills/refactor-radar/SKILL.md +12 -12
  505. package/server/agents-BdkVgjxC.js +0 -3
  506. package/server/archive-planning-CNSWQPvz.js +0 -2
  507. package/server/assemble-D88iFkP-.js +0 -365
  508. package/server/build-info-Df2tkRrB.js +0 -2
  509. package/server/cli-BjznnCC3.js +0 -2
  510. package/server/context-layers-D0QBOPJJ.js +0 -4
  511. package/server/context-layers-LY5zt0da.js +0 -37
  512. package/server/conversation-service-B3h1erHm.js +0 -3
  513. package/server/conversations-Ch7UGi0F.js +0 -3
  514. package/server/dead-end-trip-B91w2PGV.js +0 -2
  515. package/server/delivery-zJM4aIkf.js +0 -3
  516. package/server/deploy-queue-2cN86Lg4.js +0 -2
  517. package/server/forge-egNLsjVi.js +0 -2
  518. package/server/hume-gXLmRhmN.js +0 -3
  519. package/server/inspect-agent-BuSYgRQs.js +0 -2
  520. package/server/kimi-code-Cdkk9vRU.js +0 -3
  521. package/server/kimi-code-DwqLCWFw.js +0 -581
  522. package/server/merge-ops-CUzpOPtO.js +0 -2
  523. package/server/merge-rebase-DkfcUT60.js +0 -2
  524. package/server/messaging-DQi-WEFB.js +0 -3
  525. package/server/node_modules/@types/node/ffi.d.ts +0 -486
  526. package/server/node_modules/@types/node/inspector/promises.d.ts +0 -35
  527. package/server/node_modules/@types/node/path/posix.d.ts +0 -8
  528. package/server/node_modules/@types/node/path/win32.d.ts +0 -8
  529. package/server/node_modules/@types/node/quic.d.ts +0 -2153
  530. package/server/node_modules/@types/node/stream/iter.d.ts +0 -452
  531. package/server/node_modules/@types/node/test/reporters.d.ts +0 -59
  532. package/server/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +0 -71
  533. package/server/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +0 -72
  534. package/server/node_modules/@types/node/ts5.7/index.d.ts +0 -118
  535. package/server/node_modules/@types/node/util/types.d.ts +0 -558
  536. package/server/node_modules/@types/node/vfs.d.ts +0 -211
  537. package/server/node_modules/@types/node/web-globals/blob.d.ts +0 -23
  538. package/server/node_modules/@types/node/web-globals/console.d.ts +0 -9
  539. package/server/node_modules/@types/node/web-globals/crypto.d.ts +0 -39
  540. package/server/node_modules/@types/node/web-globals/encoding.d.ts +0 -11
  541. package/server/node_modules/@types/node/web-globals/importmeta.d.ts +0 -13
  542. package/server/node_modules/@types/node/web-globals/messaging.d.ts +0 -23
  543. package/server/node_modules/@types/node/web-globals/performance.d.ts +0 -45
  544. package/server/node_modules/@types/node/web-globals/timers.d.ts +0 -44
  545. package/server/node_modules/@types/node/web-globals/url.d.ts +0 -24
  546. package/server/node_modules/@types/node/zlib/iter.d.ts +0 -131
  547. package/server/node_modules/undici-types/cache-interceptor.d.ts +0 -179
  548. package/server/node_modules/undici-types/client-stats.d.ts +0 -15
  549. package/server/node_modules/undici-types/dispatcher1-wrapper.d.ts +0 -7
  550. package/server/node_modules/undici-types/h2c-client.d.ts +0 -73
  551. package/server/node_modules/undici-types/mock-call-history.d.ts +0 -111
  552. package/server/node_modules/undici-types/round-robin-pool.d.ts +0 -39
  553. package/server/node_modules/undici-types/snapshot-agent.d.ts +0 -113
  554. package/server/node_modules/undici-types/socks5-proxy-agent.d.ts +0 -25
  555. package/server/node_modules/undici-types/utility.d.ts +0 -7
  556. package/server/public/assets/image-GAAHSSAO-rafcvWHh.js +0 -1
  557. package/server/public/assets/index-BvN8bWpz.js +0 -860
  558. package/server/public/assets/index-DgoS288w.css +0 -1
  559. package/server/public/assets/mermaid-GHXKKRXX-fP93Za-W.js +0 -1
  560. package/server/pull-requests-DV_rJ-1u.js +0 -2
  561. package/server/rally-DlXjOIAG.js +0 -3
  562. package/server/rebuild-stack-CNknXJHL.js +0 -197
  563. package/server/settings-EGNbGKpP.js +0 -2
  564. package/server/specs-Dvq4sOy6.js +0 -3
  565. package/server/supervisor-DoJpD33i.js +0 -2
  566. package/server/token-util-DfUS3Lpp.js +0 -3
  567. package/server/workflows-CLrEiTds.js +0 -2
  568. package/server/workspace-manager-gz9Amovn.js +0 -3
  569. /package/server/public/assets/{pica-CgYEdS5s.js → pica-DPvnTcFS.js} +0 -0
  570. /package/server/public/assets/{wasm-DNrvLWf-.js → wasm-Ca_Unakq.js} +0 -0
@@ -1,54 +1,53 @@
1
1
  import { a as __toCommonJS } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $t as findProjectByPathSync, Ai as encodeClaudeProjectDir, E as init_tier_table, Ft as isOverdeckWorkspaceRuntimePath, Gt as shouldCommitLegacyWorkspaceArtifacts, Hi as packageRoot, Ht as init_state_read_home, Kn as extractPrefixSync, Mt as init_state_plane, Nt as isGeneratedGitHookPath, O as resolveTieredExecutionEnabled, On as resolveProjectFromIssueSync, Or as resolveModel, Ri as getOverdeckHome, Rt as parsePorcelainStatusPaths, Ui as resolveOhmypiExtensionPath, Wt as resolveStateReadHomeSync, Yn as parseIssueIdSync, _n as listProjectsAsync, fn as init_projects, fr as getProviderForModelSync, g as jsYaml, h as init_js_yaml, k as resolveTieredExecutionEnabledForIssue, ki as claudeSessionTranscriptExists, l as isClaudeCodeChannelsEnabled, mr as piProviderForModel, on as getProjectSync, p as loadConfigSync, pr as init_providers, qn as init_issue_id, rr as init_harness_policy, sr as UnknownModelError, t as init_config_yaml, tr as canUseHarnessSync, zi as init_paths } from "./config-yaml-OoH-ZpTb.js";
3
- import { c as getDashboardLoopbackApiUrlSync, p as init_config } from "./config-Cx3N6gWz.js";
4
- import { l as init_activity_logger, o as emitActivityEntrySync, r as emitActivityEntryDurable } from "./activity-logger-ru8ggv-d.js";
5
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BbSWNOpH.js";
6
- import { $ as init_pane_choice_menu, C as init_tmux, E as killSession, G as setOption, H as sendRawKeystroke, K as tmuxExecAsync, N as listSessions, U as sessionExists, V as sendKeysAsync, W as sessionExistsSync, a as capturePaneText, ct as BLANKED_PROVIDER_ENV, dt as init_child_env, h as findManagedServerPidSync, j as listSessionNames, p as exactPaneTarget, r as capturePane, s as createSession, tt as paneHasBlockingChoiceMenu, ut as buildChildEnvWithoutTmuxSync, w as isHarnessProcessAlive } from "./tmux-CvAEO9yo.js";
7
- import { a as getWorkspaceForIssue, o as init_resolver } from "./resolver-tJeEkPK5.js";
8
- import { a as init_event_store, n as getEventStore } from "./event-store-DbjldlXW.js";
9
- import { N as normalizeChannelReplyPayload, T as DomainEvent, n as COMPOSER_COMMAND_MANIFEST, s as getHarnessBehavior, t as init_src } from "./src-CdwN6WY6.js";
10
- import { f as init_agent_state_sync, h as stateToOverdeckParamsForDb, u as AGENT_COLUMNS_FOR_DB } from "./pipeline-agent-reader-DCCwbUj8.js";
11
- import { c as ReadModelService, d as getClosedIssueIdsForReadSource, i as EventStoreService, t as IssueLifecycle } from "./issue-lifecycle-LgYeE1o2.js";
12
- import { c as init_agents, g as logAgentLifecycleSync, h as init_persistent_logger, m as isTerminalIssueStage, p as getIssueStageSync } from "./agents-DMs1aLRU.js";
13
- import { n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-FF0WLPMc.js";
14
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-CxXv7ei-.js";
15
- import { t as init_behavior } from "./behavior-CPX0E2Fj.js";
16
- import { $r as piFifoPaths, A as saveAgentStateSync, At as init_agent_input_detection, Br as getAgentRuntimeBaseCommand, Ci as writeChannelsBridgeMcpConfig, Ct as getAgentWorkspace$1, Di as writePtyToken, Dr as init_spawn_prep, Dt as scanPendingInputsPromise, Ei as init_pty_token, F as writeAgentStateJsonSync, Ft as resumeAgent, H as waitForReadySignal, It as answerSessionPaneChoice, K as saveAgentRuntimeState, Kt as init_operator_interventions, L as clearReadySignal, Lt as captureSessionPaneChoice, Mt as parseCodexApprovalPrompt, Nr as resolveIssueWorkModel, Oi as init_pty_supervisor_locate, Ot as detectAwaitingInputForAgent, P as wipeAgentStateDirs, Pr as resolveStaffing, Qr as init_pi_fifo, Qt as getSessionId, Rt as init_session_pane_choice, S as markAgentStoppedState, Si as init_supervisor_channels, St as getAgentPendingQuestions$1, Ti as init_resume_contract, Tt as isBlockedOnPendingInput, U as getAgentRuntimeState, Ut as messageAgent, W as getAgentRuntimeStateSync, Wr as getProviderAuthMode, Xr as waitForAcpHostReady, Xt as getLatestSessionId, Yt as getActivity, Zr as waitForPromptReady, Zt as getLatestSessionIdSync, _n as listAgentStates, _r as init_bridge_token, _t as init_pending_decision_gate, ar as deliverAgentMessage, bi as dismissDevChannelsDialog, br as checkCodexAuthStatus, c as clearAgentTroubled, ci as determineModel, ct as init_tier_escalation, ei as init_ohmypi_fifo, f as getAgentDir, fi as init_provider_health, fr as setAgentDeliveryMethod, g as getAgentStateSync, gr as BRIDGE_TOKEN_HEADER, gt as detectPendingOperatorDecision, ht as restartAgent, j as setAgentPaused, jr as init_staffing, jt as normalizeAwaitingInputPrompt, k as saveAgentState, ki as resolvePtySupervisorScriptPath, kr as transitionIssueToInProgress, m as getAgentState, mt as recoverAgent, o as clearAgentPaused, or as deliverAgentPermissionDecision, pi as validateProviderHealth, pn as stopAgent, q as init_agents$1, qr as init_runtime_command, qt as operatorInterventionEvent, st as decideEscalation, ti as ohmypiFifoPaths, tn as saveSessionId, ui as getProviderExportsForModel, vn as listRunningAgents, vr as writeBridgeTokenSync, vt as computeAgentEnrichment, wi as buildResumeContract, wr as assertWorkspaceStackHealthyForSpawn, wt as init_agent_enrichment, xi as hasCompletionMarkerForAgent, xr as init_codex_auth, xt as getAgentJsonlPath$1, z as normalizeAgentId, zr as getAcpLauncherFields } from "./agent-state-BnyNoDWQ.js";
17
- import { a as init_feature_registry_population, o as recordFeatureRegistryLifecycle } from "./post-merge-state-Cym5NVlB.js";
18
- import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-CUKcTWSG.js";
19
- import { A as init_conversations, C as getConversationByName, D as hasOtherActiveConversationOnTmuxSession, H as removeFavorite, I as markConversationActive, J as setConversationModel, K as setConversationEffort, L as markConversationEnded, P as listConversations, S as getConversationById, at as updateLastAttached, b as createConversation, g as backfillConversationModel, h as archiveConversation, ot as updateSpawnError, q as setConversationHarness, tt as updateConversationDeliveryMethod, y as clearConversationFailureState } from "./conversations-JyrMSeOh.js";
20
- import { C as generateLauncherScriptSync, D as normalizeModelOverrideSync, E as init_model_validation, O as requireModelOverrideSync, S as normalizeFlywheelRunId, T as MODEL_ID_PATTERN, b as init_provenance, w as init_launcher_generator } from "./auto-spawn-consent-C1avLtkk.js";
21
- import { a as init_claude_permissions, n as ensureClaudePermissionFlagSync, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-Bn53HCXr.js";
22
- import { A as piGlobalContextFile, D as init_layers, L as workspaceContextFile } from "./assemble-D88iFkP-.js";
23
- import { i as prepareHarnessLaunch, r as init_harness_binary } from "./harness-binary-BuakhXkB.js";
24
- import { c as init_stack_health, o as getWorkspaceStackHealth } from "./stack-health-DPXaoAus.js";
2
+ import { $t as findProjectByPathSync, E as init_tier_table, Ft as isOverdeckWorkspaceRuntimePath, Gt as shouldCommitLegacyWorkspaceArtifacts, Hi as resolveOhmypiExtensionPath, Ht as init_state_read_home, Kn as extractPrefixSync, Li as getOverdeckHome, Mt as init_state_plane, Nt as isGeneratedGitHookPath, O as resolveTieredExecutionEnabled, Oi as claudeSessionTranscriptExists, On as resolveProjectFromIssueSync, Ri as init_paths, Rt as parsePorcelainStatusPaths, Vi as packageRoot, Wt as resolveStateReadHomeSync, Yn as parseIssueIdSync, _n as listProjectsAsync, fn as init_projects, fr as getProviderForModelSync, g as jsYaml, h as init_js_yaml, k as resolveTieredExecutionEnabledForIssue, ki as encodeClaudeProjectDir, kr as resolveModel, l as isClaudeCodeChannelsEnabled, mr as piProviderForModel, on as getProjectSync, p as loadConfigSync, pr as init_providers, qn as init_issue_id, rr as init_harness_policy, sr as UnknownModelError, t as init_config_yaml, tr as canUseHarnessSync } from "./config-yaml-Dce9VUd6.js";
3
+ import { c as getDashboardLoopbackApiUrlSync, p as init_config } from "./config-BUjU7GZQ.js";
4
+ import { l as init_activity_logger, o as emitActivityEntrySync, r as emitActivityEntryDurable } from "./activity-logger-DNYDzAOU.js";
5
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-B05o-e2g.js";
6
+ import { $ as init_pane_choice_menu, C as init_tmux, E as killSession, G as setOption, H as sendRawKeystroke, K as tmuxExecAsync, N as listSessions, U as sessionExists, V as sendKeysAsync, W as sessionExistsSync, a as capturePaneText, ct as BLANKED_PROVIDER_ENV, dt as init_child_env, h as findManagedServerPidSync, j as listSessionNames, p as exactPaneTarget, r as capturePane, s as createSession, tt as paneHasBlockingChoiceMenu, ut as buildChildEnvWithoutTmuxSync, w as isHarnessProcessAlive } from "./tmux-l-yvNWhg.js";
7
+ import { a as getWorkspaceForIssue, o as init_resolver } from "./resolver-ChLZFIjB.js";
8
+ import { a as init_event_store, n as getEventStore } from "./event-store-BYOh686E.js";
9
+ import { E as DomainEvent, P as normalizeChannelReplyPayload, n as COMPOSER_COMMAND_MANIFEST, s as getHarnessBehavior, t as init_src } from "./src-tnFSfiXX.js";
10
+ import { f as init_agent_state_sync, h as stateToOverdeckParamsForDb, u as AGENT_COLUMNS_FOR_DB } from "./pipeline-agent-reader-CHugmNSx.js";
11
+ import { c as ReadModelService, d as getClosedIssueIdsForReadSource, i as EventStoreService, t as IssueLifecycle } from "./issue-lifecycle-BPbczKyy.js";
12
+ import { c as init_agents, g as logAgentLifecycleSync, h as init_persistent_logger, m as isTerminalIssueStage, p as getIssueStageSync } from "./agents-CkngXhQr.js";
13
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-ShD-G0cS.js";
14
+ import { t as init_behavior } from "./behavior-Bg3yC8jC.js";
15
+ import { $r as resolveStaffing, $t as getLatestSessionIdSync, A as saveAgentStateSync, At as init_agent_input_detection, Br as init_codex_auth, Bt as init_session_pane_choice, Ci as ohmypiFifoPaths, Ct as getAgentWorkspace$1, Dt as scanPendingInputsPromise, F as writeAgentStateJsonSync, Fr as BRIDGE_TOKEN_HEADER, Ft as resumeAgent, Gt as messageAgent, H as waitForReadySignal, In as listAgentStates, Ir as init_bridge_token, Jr as transitionIssueToInProgress, Jt as init_operator_interventions, K as saveAgentRuntimeState, Kr as init_spawn_prep, L as clearReadySignal, Ln as listRunningAgents, Lr as writeBridgeTokenSync, Mn as stopAgent, Mt as parseCodexApprovalPrompt, Ot as detectAwaitingInputForAgent, P as wipeAgentStateDirs, Qi as validateProviderHealth, Qr as resolveIssueWorkModel, Qt as getLatestSessionId, Rt as answerSessionPaneChoice, S as markAgentStoppedState, Si as init_ohmypi_fifo, St as getAgentPendingQuestions$1, Tr as deliverAgentPermissionDecision, Tt as isBlockedOnPendingInput, U as getAgentRuntimeState, Ur as assertWorkspaceStackHealthyForSpawn, W as getAgentRuntimeStateSync, Xr as init_staffing, Yi as getProviderExportsForModel, Yt as operatorInterventionEvent, Zi as init_provider_health, Zt as getActivity, _i as waitForAcpHostReady, _t as init_pending_decision_gate, aa as dismissDevChannelsDialog, bi as init_pi_fifo, c as clearAgentTroubled, ca as writeChannelsBridgeMcpConfig, ct as init_tier_escalation, da as init_pty_token, di as getProviderAuthMode, en as getSessionId, f as getAgentDir, fa as writePtyToken, g as getAgentStateSync, gt as detectPendingOperatorDecision, ht as restartAgent, j as setAgentPaused, jr as setAgentDeliveryMethod, jt as normalizeAwaitingInputPrompt, k as saveAgentState, la as buildResumeContract, m as getAgentState, ma as resolvePtySupervisorScriptPath, mi as init_runtime_command, mt as recoverAgent, ni as init_muse_context, o as clearAgentPaused, oa as hasCompletionMarkerForAgent, oi as getAcpLauncherFields, pa as init_pty_supervisor_locate, q as init_agents$1, qi as determineModel, ri as materializeMuseContext, rn as saveSessionId, sa as init_supervisor_channels, si as getAgentRuntimeBaseCommand, st as decideEscalation, ua as init_resume_contract, vi as waitForPromptReady, vt as computeAgentEnrichment, wr as deliverAgentMessage, wt as init_agent_enrichment, xi as piFifoPaths, xt as getAgentJsonlPath$1, yi as claudeSystemPromptFiles, z as normalizeAgentId, zr as checkCodexAuthStatus, zt as captureSessionPaneChoice } from "./agent-state-Ci6PhjOE.js";
16
+ import { a as init_feature_registry_population, o as recordFeatureRegistryLifecycle } from "./post-merge-state-DGlkiVIO.js";
17
+ import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-Ci0LxMIq.js";
18
+ import { A as init_conversations, C as getConversationByName, D as hasOtherActiveConversationOnTmuxSession, H as removeFavorite, I as markConversationActive, J as setConversationModel, K as setConversationEffort, L as markConversationEnded, P as listConversations, S as getConversationById, at as updateLastAttached, b as createConversation, g as backfillConversationModel, h as archiveConversation, ot as updateSpawnError, q as setConversationHarness, tt as updateConversationDeliveryMethod, y as clearConversationFailureState } from "./conversations-CPXMv_JQ.js";
19
+ import { A as init_model_validation, C as generateLauncherScriptSync, M as requireModelOverrideSync, S as normalizeFlywheelRunId, b as init_provenance, j as normalizeModelOverrideSync, k as MODEL_ID_PATTERN, w as init_launcher_generator } from "./auto-spawn-consent-CJeQM5e0.js";
20
+ import { a as init_claude_permissions, n as ensureClaudePermissionFlagSync, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-DX5BSnMH.js";
21
+ import { i as prepareHarnessLaunch, r as init_harness_binary } from "./harness-binary-DnRGvN6T.js";
22
+ import { a as resolveMuseSessionPath, i as museSessionId, t as init_muse_session } from "./muse-session-CrSRuauJ.js";
23
+ import { c as init_stack_health, o as getWorkspaceStackHealth } from "./stack-health-Y8O3UuPe.js";
25
24
  import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, m as init_types } from "./types-pLpbsNto.js";
26
- import { a as generateXBriefFilename, o as init_lifecycle } from "./lifecycle-BibLMHBH.js";
27
- import { C as init_specs, O as writeSpecForIssue, d as readPlan, g as recordTierPromotion, h as readWorkspacePlanSync, p as readTierOverrides, r as findPlan, s as init_io } from "./io-BgzG56av.js";
28
- import { a as getDispatchableItems, c as init_dag } from "./dag-CKUsr8wB.js";
29
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-CISjc9FR.js";
30
- import { a as loadCloisterConfigSync, r as init_config$1 } from "./config-DP0VV7rX.js";
31
- import { a as init_state_home, c as isStateMigrated } from "./state-home-BhI8O5lU.js";
32
- import { d as resolveWorkspaceRepoRootsSync, i as init_project_repos, s as resolvePrimaryWorkspaceRepoDirSync } from "./project-repos-DqAT7YV6.js";
33
- import { a as init_lifecycle_io, c as updatePlanStatus, s as transitionXBriefOnMain } from "./lifecycle-io-CCCAMefe.js";
34
- import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-BjqwtkcT.js";
35
- import { i as issue_service_singleton_exports, n as init_issue_service_singleton } from "./issue-service-singleton-Bsb0GaY8.js";
36
- import { d as getReviewStatusSync, h as loadReviewStatuses, o as clearWorkspaceStuck, p as init_review_status, w as setReviewStatusSync } from "./review-status-C3PJkfjv.js";
37
- import { S as parseAcpConversationMessages, b as parseCodexConversationMessages, c as parseEntireConversation, g as init_ohmypi_conversation_parser, h as parsePiConversationMessages, p as init_pi_conversation_parser, t as init_conversation_service, v as parseOhmypiConversationMessages, x as init_acp_conversation_parser, y as init_codex_conversation_parser } from "./conversation-service-zgLM2g2D.js";
38
- import { i as resolveAgentHarness, l as resolvePiSessionPath, n as readLauncherPinnedSessionId, o as resolveCodexRolloutPath, r as resolveAcpTranscriptPath, t as init_jsonl_resolver } from "./jsonl-resolver-BJ8Hg-yD.js";
39
- import { G as liveOrderIssueLookup, H as getBook, T as resolveLiveFlywheelRunId, w as readFlywheelLaunchMetadata, y as getFlywheelRunDir, z as computeBookProgress } from "./flywheel-D5FchYg4.js";
40
- import { t as resolveAgentGitInfo } from "./git-info-DMOSfJ9I.js";
41
- import { f as getResourceConfig, m as getSystemHealthSnapshot, n as classifyMemoryPressure } from "./memory-governor-Mi5zF5zw.js";
42
- import { o as stopWorkspaceDocker, r as init_workspace_manager } from "./workspace-manager-Db3pCmr7.js";
43
- import "./deacon-C7qZxRuW.js";
44
- import { i as performHandoff, o as getAgentHealth, r as checkAllTriggers, t as getCloisterService } from "./service-D1SZCxH8.js";
45
- import { a as init_jsonl_parser, o as normalizeModelName } from "./jsonl-parser-1IqHI9Yb.js";
46
- import { i as getRuntimeForAgent } from "./agent-idle-CQlwmcRR.js";
47
- import { t as recordReviewVerdict } from "./review-verdict-writer-BcG5RBWF.js";
48
- import { r as REVIEW_SUB_ROLES } from "./review-convoy-liveness-C9F1Q1LN.js";
49
- import { t as createInFlightGuard } from "./in-flight-guard-B7khcBdQ.js";
50
- import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-C5Ie2FMZ.js";
51
- import { t as resolveReviewParentRunState } from "./review-run-recovery-C5TEICtx.js";
25
+ import { a as generateXBriefFilename, o as init_lifecycle } from "./lifecycle-BSQIQ1Sq.js";
26
+ import { C as init_specs, O as writeSpecForIssue, d as readPlan, g as recordTierPromotion, h as readWorkspacePlanSync, p as readTierOverrides, r as findPlan, s as init_io } from "./io-Cm4Sf_6P.js";
27
+ import { a as getDispatchableItems, c as init_dag } from "./dag-Drz6Nrnf.js";
28
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-CzTFVZ5l.js";
29
+ import { a as loadCloisterConfigSync, r as init_config$1 } from "./config-B-MLcKSo.js";
30
+ import { a as init_state_home, c as isStateMigrated } from "./state-home-CWu1dx9L.js";
31
+ import { d as resolveWorkspaceRepoRootsSync, i as init_project_repos, s as resolvePrimaryWorkspaceRepoDirSync } from "./project-repos-J6jc42uD.js";
32
+ import { a as init_lifecycle_io, c as updatePlanStatus, s as transitionXBriefOnMain } from "./lifecycle-io-CW__VX8s.js";
33
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-Qq_kEwYh.js";
34
+ import { i as issue_service_singleton_exports, n as init_issue_service_singleton } from "./issue-service-singleton-BrZQJLRI.js";
35
+ import { d as getReviewStatusSync, h as loadReviewStatuses, o as clearWorkspaceStuck, p as init_review_status, w as setReviewStatusSync } from "./review-status-BegAr86G.js";
36
+ import { C as parseAcpConversationMessages, S as init_acp_conversation_parser, _ as init_ohmypi_conversation_parser, b as init_codex_conversation_parser, g as parsePiConversationMessages, l as parseEntireConversation, m as init_pi_conversation_parser, t as init_conversation_service, x as parseCodexConversationMessages, y as parseOhmypiConversationMessages } from "./conversation-service-6LaymUV-.js";
37
+ import { i as resolveAgentHarness, l as resolvePiSessionPath, n as readLauncherPinnedSessionId, o as resolveCodexRolloutPath, r as resolveAcpTranscriptPath, t as init_jsonl_resolver } from "./jsonl-resolver-DQEe0DHM.js";
38
+ import { G as liveOrderIssueLookup, H as getBook, T as resolveLiveFlywheelRunId, w as readFlywheelLaunchMetadata, y as getFlywheelRunDir, z as computeBookProgress } from "./flywheel-Is3w2lcT.js";
39
+ import { t as resolveAgentGitInfo } from "./git-info-BZYdINlU.js";
40
+ import { f as getResourceConfig, m as getSystemHealthSnapshot, n as classifyMemoryPressure } from "./memory-governor-B7uDWRo9.js";
41
+ import { o as stopWorkspaceDocker, r as init_workspace_manager } from "./workspace-manager-CnAyRh3v.js";
42
+ import "./deacon-CU47dU7U.js";
43
+ import { i as performHandoff, o as getAgentHealth, r as checkAllTriggers, t as getCloisterService } from "./service-kzhN0DLg.js";
44
+ import { i as getRuntimeForAgent } from "./agent-idle-CAwB-K6M.js";
45
+ import { a as init_jsonl_parser, o as normalizeModelName } from "./jsonl-parser-DSJisyfy.js";
46
+ import { t as recordReviewVerdict } from "./review-verdict-writer-CJr_Ob0Y.js";
47
+ import { r as REVIEW_SUB_ROLES } from "./review-convoy-liveness-BTMvU4CA.js";
48
+ import { t as createInFlightGuard } from "./in-flight-guard-HoToxzGt.js";
49
+ import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-Copcoih9.js";
50
+ import { t as resolveReviewParentRunState } from "./review-run-recovery-BvVG3oUr.js";
52
51
  import { basename, delimiter, dirname, isAbsolute, join, resolve, sep } from "node:path";
53
52
  import { Cause, Data, Effect, Layer, Option, Schema, Stream } from "effect";
54
53
  import { homedir, networkInterfaces, tmpdir } from "node:os";
@@ -104,7 +103,6 @@ init_event_store();
104
103
  init_src();
105
104
  init_agent_state_sync();
106
105
  init_persistent_logger();
107
- init_briefing_freshness();
108
106
  init_cost();
109
107
  init_feature_registry_population();
110
108
  init_conversations();
@@ -116,11 +114,12 @@ init_supervisor_channels();
116
114
  init_model_validation();
117
115
  init_provider_health();
118
116
  init_claude_permissions();
119
- init_layers();
120
117
  init_harness_binary();
121
118
  init_ohmypi_fifo();
122
119
  init_pi_fifo();
123
120
  init_runtime_command();
121
+ init_muse_session();
122
+ init_muse_context();
124
123
  init_stack_health();
125
124
  init_launcher_generator();
126
125
  init_types();
@@ -1893,7 +1892,7 @@ const getAgentOutputRoute = HttpRouter.add("GET", "/api/agents/:id/output", http
1893
1892
  } catch {}
1894
1893
  let stdout;
1895
1894
  if (isRemote && vmName) {
1896
- const { getRemoteAgentOutput } = await import("./remote-agents-MbWzm5Fh.js");
1895
+ const { getRemoteAgentOutput } = await import("./remote-agents-CEOvYsvK.js");
1897
1896
  stdout = await getRemoteAgentOutput(id, vmName, parseInt(String(lines), 10) || 100);
1898
1897
  } else stdout = await Effect.runPromise(capturePane(id, parseInt(String(lines), 10) || 100));
1899
1898
  if (!stdout || stdout.trim() === "" || stdout.trim() === "Session not found") {
@@ -1958,7 +1957,7 @@ async function buildConversationResponse(id) {
1958
1957
  streaming: false
1959
1958
  };
1960
1959
  }
1961
- if (harness === "acp") {
1960
+ if (harness === "acp" || harness === "opencode") {
1962
1961
  const sessionFile = await resolveAcpTranscriptPath(id);
1963
1962
  if (!sessionFile || !existsSync(sessionFile)) return EMPTY_CONVERSATION;
1964
1963
  const result = await parseAcpConversationMessages(sessionFile);
@@ -2262,6 +2261,63 @@ function parseOverdeckComposerCommand(message) {
2262
2261
  };
2263
2262
  }
2264
2263
  //#endregion
2264
+ //#region ../../lib/composer-commands/reload.ts
2265
+ /** Composer reloads outlive the dashboard they restart. The CLI owns progress. */
2266
+ init_activity_logger();
2267
+ init_config();
2268
+ init_paths();
2269
+ async function runComposerReload(argv, dependencies = {}) {
2270
+ const activityId = `composer-reload-${randomUUID$1()}`;
2271
+ const logDir = join(dependencies.overdeckHome ?? getOverdeckHome(), "logs");
2272
+ await mkdir(logDir, { recursive: true });
2273
+ const logPath = join(logDir, `${activityId}.log`);
2274
+ const log = await open(logPath, "a", 384);
2275
+ const env = { ...process.env };
2276
+ delete env.OVERDECK_AGENT_ID;
2277
+ delete env.OVERDECK_ISSUE_ID;
2278
+ delete env.DASHBOARD_URL;
2279
+ env.OVERDECK_DASHBOARD_URL = getDashboardLoopbackApiUrlSync();
2280
+ env.OVERDECK_RESTART_INITIATOR = "operator:composer";
2281
+ env.OVERDECK_COMPOSER_RELOAD_ACTIVITY = activityId;
2282
+ env.OVERDECK_COMPOSER_RELOAD_LOG = logPath;
2283
+ const args = [...argv];
2284
+ if (!args.some((arg) => arg === "--health-timeout" || arg.startsWith("--health-timeout="))) args.push("--health-timeout", "120s");
2285
+ try {
2286
+ const child = (dependencies.spawnPanCli ?? spawnPanCli)(args, {
2287
+ cwd: process.cwd(),
2288
+ detached: true,
2289
+ stdio: [
2290
+ "ignore",
2291
+ log.fd,
2292
+ log.fd
2293
+ ],
2294
+ env
2295
+ });
2296
+ await new Promise((resolve, reject) => {
2297
+ child.once("spawn", resolve);
2298
+ child.once("error", reject);
2299
+ });
2300
+ child.unref();
2301
+ } catch (error) {
2302
+ return {
2303
+ kind: "captured",
2304
+ status: "failed",
2305
+ command: `/pan ${argv.join(" ")}`,
2306
+ output: `Reload could not start: ${error instanceof Error ? error.message : String(error)}`,
2307
+ truncated: false
2308
+ };
2309
+ } finally {
2310
+ await log.close();
2311
+ }
2312
+ return {
2313
+ kind: "activity",
2314
+ status: "accepted",
2315
+ command: `/pan ${argv.join(" ")}`,
2316
+ activityId,
2317
+ message: "Reload started. Watch the Activity feed for build progress. When the build is ready, use the restart banner to put it live."
2318
+ };
2319
+ }
2320
+ //#endregion
2265
2321
  //#region ../../lib/composer-commands/policy.ts
2266
2322
  init_src();
2267
2323
  const COMPOSER_COMMAND_POLICIES = {
@@ -2273,6 +2329,10 @@ const COMPOSER_COMMAND_POLICIES = {
2273
2329
  mode: "detached",
2274
2330
  safety: "safe"
2275
2331
  },
2332
+ reload: {
2333
+ mode: "detached",
2334
+ safety: "safe"
2335
+ },
2276
2336
  show: {
2277
2337
  mode: "captured",
2278
2338
  safety: "safe"
@@ -2364,7 +2424,7 @@ async function handleComposerCommand({ parsed, target, confirmation }, dependenc
2364
2424
  });
2365
2425
  }
2366
2426
  if (policy.mode === "captured") return runCapturedCommand(parsed.argv);
2367
- if (policy.mode === "detached") return runDetachedCommand(parsed.argv);
2427
+ if (policy.mode === "detached") return parsed.entry.path[0] === "reload" ? runComposerReload(parsed.argv) : runDetachedCommand(parsed.argv);
2368
2428
  if (policy.mode === "ui" && policy.uiAction) return uiCommandResult(policy.uiAction, parsed.argv.slice(parsed.entry.path.length).join(" ") || void 0);
2369
2429
  if (policy.mode === "terminal-only") return {
2370
2430
  kind: "terminal-only",
@@ -2724,7 +2784,7 @@ async function cleanupConversationAttachments(name) {
2724
2784
  * sessions that the lifecycle poller missed. */
2725
2785
  async function cleanupOrphanedConversationAttachments() {
2726
2786
  try {
2727
- const { listConversations } = await import("./conversations-Ch7UGi0F.js");
2787
+ const { listConversations } = await import("./conversations-BunNL58s.js");
2728
2788
  const convNames = new Set(listConversations().map((c) => c.name));
2729
2789
  const root = getConversationAttachmentsRoot();
2730
2790
  await runInBatches((await readdir(root, { withFileTypes: true })).filter((entry) => entry.isDirectory() && !convNames.has(entry.name)).map((entry) => join(root, entry.name)), 10, (path) => rm(path, {
@@ -2908,7 +2968,18 @@ async function removeConversationAttachment(name, attachmentPath) {
2908
2968
  //#region ../../lib/overdeck/resume-contract-delivery.ts
2909
2969
  init_agents$1();
2910
2970
  init_tmux();
2911
- async function deliverResumeContractUnlessGated(tmuxSession, contract, caller, method, requested = true) {
2971
+ /** Native Kimi must receive managed context even when the operator opts out of resume prose. */
2972
+ async function deliverMandatoryKimiResumeContext(tmuxSession, workspace, method) {
2973
+ const resumeGatePane = await capturePaneText(tmuxSession, 90).catch(() => "");
2974
+ if (resumeGatePane && paneHasBlockingChoiceMenu(resumeGatePane)) throw new Error(`Managed Kimi resume blocked for ${tmuxSession}: the native resume choice gate must be answered before context delivery.`);
2975
+ const delivery = await deliverAgentMessage(tmuxSession, "", "conversation-resume-context", method, { kimiContext: { workspace } });
2976
+ if (!delivery.ok) throw new Error(`Managed Kimi resume context delivery failed for ${tmuxSession}: ` + (delivery.failure ?? `delivery returned ok=false via ${delivery.path}`));
2977
+ }
2978
+ /** A Kimi session is not healthy when requested resume text failed or became gated. */
2979
+ function assertKimiResumeContractResult(result) {
2980
+ if (result === "failed" || result === "skipped-gated") throw new Error(`Managed Kimi resume contract was not delivered (${result}).`);
2981
+ }
2982
+ async function deliverResumeContractUnlessGated(tmuxSession, contract, caller, method, requested = true, options = {}) {
2912
2983
  if (!requested) return "skipped-user";
2913
2984
  const resumeGatePane = await capturePaneText(tmuxSession, 90).catch(() => "");
2914
2985
  if (resumeGatePane && paneHasBlockingChoiceMenu(resumeGatePane)) {
@@ -2916,7 +2987,7 @@ async function deliverResumeContractUnlessGated(tmuxSession, contract, caller, m
2916
2987
  return "skipped-gated";
2917
2988
  }
2918
2989
  try {
2919
- await deliverAgentMessage(tmuxSession, contract, caller, method);
2990
+ if (!(Object.keys(options).length > 0 ? await deliverAgentMessage(tmuxSession, contract, caller, method, options) : await deliverAgentMessage(tmuxSession, contract, caller, method)).ok) return "failed";
2920
2991
  return "delivered";
2921
2992
  } catch (err) {
2922
2993
  console.error(`[conversations] resume contract delivery failed for ${tmuxSession}:`, err instanceof Error ? err.message : String(err));
@@ -3033,7 +3104,7 @@ async function resolveAllowedHarness(requested, model) {
3033
3104
  if (!model) return "claude-code";
3034
3105
  return resolveHarness({
3035
3106
  model,
3036
- explicit: requested === "ohmypi" || requested === "claude-code" || requested === "codex" || requested === "acp" || requested === "kimi-code" ? requested : void 0
3107
+ explicit: requested === "ohmypi" || requested === "claude-code" || requested === "codex" || requested === "acp" || requested === "kimi-code" || requested === "opencode" || requested === "muse" ? requested : void 0
3037
3108
  });
3038
3109
  }
3039
3110
  async function isInsideGitWorkTree(dir) {
@@ -3119,7 +3190,11 @@ function shouldUseSupervisorForConversation(harness, options = {}) {
3119
3190
  return getHarnessBehavior(harness).supportsPtySupervisor && process.env.OVERDECK_DOCKER_WORKSPACE !== "1" && process.env.PAN_DOCKER !== "1";
3120
3191
  }
3121
3192
  async function waitForConversationRuntimeReady(tmuxSession, harness, mode) {
3122
- if (harness === "acp") {
3193
+ if (harness === "muse") {
3194
+ if (!await waitForPromptReady(tmuxSession, harness, 60)) throw new Error("Muse Code did not become interactive within 60 seconds");
3195
+ return;
3196
+ }
3197
+ if (harness === "acp" || harness === "opencode") {
3123
3198
  await waitForAcpHostReady(tmuxSession);
3124
3199
  return;
3125
3200
  }
@@ -3140,7 +3215,7 @@ async function handleConversationSwitchModel(name, body) {
3140
3215
  const currentHarness = conv.harness ?? "claude-code";
3141
3216
  const requestedHarness = body["harness"];
3142
3217
  let harness = currentHarness;
3143
- if (requestedHarness === "ohmypi" || requestedHarness === "pi" || requestedHarness === "claude-code" || requestedHarness === "codex" || requestedHarness === "acp" || requestedHarness === "kimi-code") {
3218
+ if (requestedHarness === "ohmypi" || requestedHarness === "pi" || requestedHarness === "claude-code" || requestedHarness === "codex" || requestedHarness === "acp" || requestedHarness === "kimi-code" || requestedHarness === "opencode" || requestedHarness === "muse") {
3144
3219
  const requestedRuntime = requestedHarness === "pi" ? "ohmypi" : requestedHarness;
3145
3220
  if (requestedRuntime !== currentHarness) {
3146
3221
  const policyModel = model ?? conv.model ?? "";
@@ -3264,16 +3339,10 @@ function startConversationModelBackfill(resolveSessionFile) {
3264
3339
  });
3265
3340
  }
3266
3341
  async function claudeConversationSystemPromptFiles(cwd) {
3267
- const files = [];
3268
- const contextFile = workspaceContextFile(cwd);
3269
- try {
3270
- await stat(contextFile);
3271
- files.push(contextFile);
3272
- } catch (error) {
3273
- if (!isNotFound(error)) throw error;
3274
- }
3275
- files.push(await ensureSessionContextBriefingFile());
3276
- return files;
3342
+ return claudeSystemPromptFiles(cwd, "claude-code");
3343
+ }
3344
+ async function codexConversationSystemPromptFiles(cwd) {
3345
+ return claudeSystemPromptFiles(cwd, "codex");
3277
3346
  }
3278
3347
  async function ensurePiConversationSourceContractFile() {
3279
3348
  const contextDir = join(getOverdeckHome(), "context");
@@ -3283,29 +3352,11 @@ async function ensurePiConversationSourceContractFile() {
3283
3352
  return path;
3284
3353
  }
3285
3354
  async function piConversationSystemPromptFiles(cwd) {
3286
- const files = [];
3287
- const globalFile = piGlobalContextFile();
3288
- try {
3289
- await stat(globalFile);
3290
- files.push(globalFile);
3291
- } catch (error) {
3292
- if (!isNotFound(error)) throw error;
3293
- }
3355
+ const files = await claudeSystemPromptFiles(cwd, "ohmypi");
3294
3356
  files.push(await ensurePiConversationSourceContractFile());
3295
- const contextFile = workspaceContextFile(cwd);
3296
- try {
3297
- await stat(contextFile);
3298
- files.push(contextFile);
3299
- } catch (error) {
3300
- if (!isNotFound(error)) throw error;
3301
- }
3302
- files.push(await ensureSessionContextBriefingFile());
3303
3357
  return files;
3304
3358
  }
3305
- function isNotFound(error) {
3306
- return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
3307
- }
3308
- async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model, effort, issueId, resume = false, harness = "claude-code", plainFork = false) {
3359
+ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model, effort = "high", issueId, resume = false, harness = "claude-code", plainFork = false) {
3309
3360
  const behavior = getHarnessBehavior(harness);
3310
3361
  const harnessLaunch = await prepareHarnessLaunch(harness);
3311
3362
  const stateDir = join(getOverdeckHome(), "conversations", tmuxSession);
@@ -3317,6 +3368,14 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3317
3368
  let piFields;
3318
3369
  let codexFields;
3319
3370
  let acpFields;
3371
+ const museSavedSession = harness === "muse" && resume ? await resolveMuseSessionPath(tmuxSession) : null;
3372
+ const museFields = harness === "muse" ? {
3373
+ harness: "muse",
3374
+ museModel: model,
3375
+ museEffort: effort,
3376
+ museContextFile: await materializeMuseContext(tmuxSession, cwd),
3377
+ museResumeSessionId: museSavedSession ? museSessionId(museSavedSession) : void 0
3378
+ } : void 0;
3320
3379
  let kimiCodeFields;
3321
3380
  let codexTransport;
3322
3381
  if (behavior.launchCommandKind === "acp-host") {
@@ -3326,7 +3385,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3326
3385
  const resumeSessionId = resume ? await readFile(sessionIdPath, "utf-8").then((value) => value.trim() || void 0).catch(() => void 0) : void 0;
3327
3386
  await rm(sessionIdPath, { force: true });
3328
3387
  acpFields = {
3329
- ...getAcpLauncherFields(tmuxSession, model, cwd, harnessLaunch.binaryPath, "work"),
3388
+ ...getAcpLauncherFields(tmuxSession, model, cwd, harnessLaunch.binaryPath, "work", effort),
3330
3389
  resumeSessionId
3331
3390
  };
3332
3391
  runtimeCommand = "acp-host";
@@ -3353,22 +3412,25 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3353
3412
  const storedPiSessionId = resume ? await readFile(join(paths.agentDir, "session.id"), "utf-8").then((s) => s.trim()).catch(() => void 0) : void 0;
3354
3413
  piFields = {
3355
3414
  harness: "ohmypi",
3415
+ piEffort: effort ?? "high",
3356
3416
  piMode: "tui",
3357
3417
  piExtensionPath: resolveOhmypiExtensionPath() ?? resolve(process.cwd(), "packages/ohmypi-extension/dist/index.js"),
3358
3418
  piSessionDir,
3359
3419
  resumeSessionId: storedPiSessionId || void 0
3360
3420
  };
3361
3421
  } else if (behavior.usesCodexHome) {
3362
- const codexHome = join(getOverdeckHome(), "agents", tmuxSession, "codex-home");
3422
+ const codexHome = join(getOverdeckHome(), "agents", tmuxSession, "codex-home-v2");
3363
3423
  const codexConfig = loadConfigSync().config.codex;
3364
3424
  const codexPermMode = codexConfig?.permissionMode ?? "workspace";
3365
3425
  codexTransport = codexConfig?.transport ?? "app-server";
3366
3426
  const codexApprovalPolicy = codexPermMode === "full-access" ? "never" : "on-request";
3367
3427
  const codexSandboxMode = codexPermMode === "full-access" ? "danger-full-access" : codexPermMode === "read-only" ? "read-only" : "workspace-write";
3368
3428
  const codexApprovalsReviewer = codexPermMode === "auto-review" ? "auto_review" : void 0;
3369
- const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-BqLZKVNm.js");
3429
+ const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-DzLXjzbf.js");
3370
3430
  initCodexHome(codexHome, {
3371
3431
  trustedDir: cwd,
3432
+ model,
3433
+ effort,
3372
3434
  approvalPolicy: codexApprovalPolicy,
3373
3435
  sandboxMode: codexSandboxMode,
3374
3436
  approvalsReviewer: codexApprovalsReviewer
@@ -3377,6 +3439,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3377
3439
  codexFields = {
3378
3440
  harness: "codex",
3379
3441
  codexMode: codexTransport,
3442
+ codexEffort: effort ?? "high",
3380
3443
  codexHome,
3381
3444
  codexSessionDir: join(codexHome, "sessions"),
3382
3445
  resumeSessionId
@@ -3386,7 +3449,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3386
3449
  if (resume) {
3387
3450
  const pinnedId = await readFile(join(getOverdeckHome(), "agents", tmuxSession, "kimi-session-id"), "utf-8").then((value) => value.trim() || void 0).catch(() => void 0);
3388
3451
  if (pinnedId) {
3389
- const { kimiSessionsRoot } = await import("./kimi-code-Cdkk9vRU.js");
3452
+ const { kimiSessionsRoot } = await import("./kimi-code-Cx5YUJpS.js");
3390
3453
  if (await stat(join(kimiSessionsRoot(join(homedir(), ".kimi-code"), cwd), pinnedId, "agents", "main", "wire.jsonl")).then(() => true, () => false)) kimiResumeSessionId = pinnedId;
3391
3454
  }
3392
3455
  }
@@ -3394,6 +3457,8 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3394
3457
  harness: "kimi-code",
3395
3458
  kimiCodeModel: model,
3396
3459
  kimiCodeYolo: true,
3460
+ kimiContextDelivery: "initial-message",
3461
+ kimiCodeEffort: effort ?? "high",
3397
3462
  ...kimiResumeSessionId ? { resumeSessionId: kimiResumeSessionId } : {}
3398
3463
  };
3399
3464
  }
@@ -3403,7 +3468,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3403
3468
  const piProvider = piProviderForModel(model);
3404
3469
  if (piProvider) launcherModel = `${piProvider}/${model}`;
3405
3470
  }
3406
- if (effort && !SAFE_EFFORT_PATTERN.test(effort)) throw new Error("Invalid effort level");
3471
+ if (effort && !(harness === "opencode" ? /^[a-z][a-z0-9_-]*$/ : SAFE_EFFORT_PATTERN).test(effort)) throw new Error("Invalid effort level");
3407
3472
  const useSupervisor = shouldUseSupervisorForConversation(harness, { codexTransport });
3408
3473
  let supervisorScriptPath;
3409
3474
  if (useSupervisor) {
@@ -3411,7 +3476,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3411
3476
  await writePtyToken(tmuxSession);
3412
3477
  }
3413
3478
  let channelsBridgeMcpConfig;
3414
- if (!piFields && !codexFields && !acpFields && !kimiCodeFields && !plainFork && isClaudeCodeChannelsEnabled() && (!model || getProviderForModelSync(model).name === "anthropic") && process.env.CLAUDE_CODE_USE_BEDROCK !== "1" && process.env.CLAUDE_CODE_USE_VERTEX !== "1" && process.env.CLAUDE_CODE_USE_FOUNDRY !== "1" && process.env.OVERDECK_DOCKER_WORKSPACE !== "1" && process.env.PAN_DOCKER !== "1") {
3479
+ if (!piFields && !codexFields && !acpFields && !kimiCodeFields && !museFields && !plainFork && isClaudeCodeChannelsEnabled() && (!model || getProviderForModelSync(model).name === "anthropic") && process.env.CLAUDE_CODE_USE_BEDROCK !== "1" && process.env.CLAUDE_CODE_USE_VERTEX !== "1" && process.env.CLAUDE_CODE_USE_FOUNDRY !== "1" && process.env.OVERDECK_DOCKER_WORKSPACE !== "1" && process.env.PAN_DOCKER !== "1") {
3415
3480
  channelsBridgeMcpConfig = join(stateDir, "agent-mcp.json");
3416
3481
  writeBridgeTokenSync(tmuxSession);
3417
3482
  await writeChannelsBridgeMcpConfig(channelsBridgeMcpConfig, tmuxSession);
@@ -3419,7 +3484,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3419
3484
  const launchTmuxAndCaptureSession = async () => {
3420
3485
  let kimiExistingSessionsBefore;
3421
3486
  if (kimiCodeFields && !kimiCodeFields.resumeSessionId) try {
3422
- const { kimiSessionsRoot } = await import("./kimi-code-Cdkk9vRU.js");
3487
+ const { kimiSessionsRoot } = await import("./kimi-code-Cx5YUJpS.js");
3423
3488
  kimiExistingSessionsBefore = new Set(await readdir(kimiSessionsRoot(join(homedir(), ".kimi-code"), cwd)));
3424
3489
  } catch {
3425
3490
  kimiExistingSessionsBefore = /* @__PURE__ */ new Set();
@@ -3431,6 +3496,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3431
3496
  workingDir: cwd,
3432
3497
  setTerminalEnv: true,
3433
3498
  unsetProviderEnv: true,
3499
+ managedStateKey: tmuxSession,
3434
3500
  overdeckEnv: {
3435
3501
  ...issueId ? { issueId } : {},
3436
3502
  ...piFields || codexFields || acpFields || useSupervisor ? { agentId: tmuxSession } : {}
@@ -3439,13 +3505,13 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3439
3505
  providerExports: providerExportsStr || void 0,
3440
3506
  trapHup: true,
3441
3507
  baseCommand: runtimeCommand,
3442
- appendSystemPromptFiles: piFields ? await piConversationSystemPromptFiles(cwd) : codexFields || acpFields || kimiCodeFields ? [] : await claudeConversationSystemPromptFiles(cwd),
3508
+ appendSystemPromptFiles: piFields ? await piConversationSystemPromptFiles(cwd) : codexFields ? await codexConversationSystemPromptFiles(cwd) : acpFields || museFields ? [] : kimiCodeFields ? await claudeSystemPromptFiles(cwd, "kimi-code") : await claudeConversationSystemPromptFiles(cwd),
3443
3509
  model: launcherModel,
3444
- ...piFields ?? codexFields ?? acpFields ?? kimiCodeFields ?? {
3510
+ ...piFields ?? codexFields ?? acpFields ?? kimiCodeFields ?? museFields ?? {
3445
3511
  resumeSessionId: resume ? claudeSessionId : void 0,
3446
3512
  sessionId: resume ? void 0 : claudeSessionId
3447
3513
  },
3448
- extraArgs: !piFields && !acpFields && !kimiCodeFields && effort ? `--effort "${effort}"` : void 0,
3514
+ extraArgs: !piFields && !acpFields && !kimiCodeFields && !museFields && effort ? `--effort "${effort}"` : void 0,
3449
3515
  keepAlive: true,
3450
3516
  fileMode: 448,
3451
3517
  channelsBridgeMcpConfig,
@@ -3458,7 +3524,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3458
3524
  } catch {}
3459
3525
  console.log(`[claude-invoke] purpose=conversation-session | model=${model || "default"} | source=conversations.ts:spawnConversationSession | session=${tmuxSession} | resume=${resume} | command="${runtimeCommand}"`);
3460
3526
  try {
3461
- const { preTrustDirectory } = await import("./workspace-manager-gz9Amovn.js");
3527
+ const { preTrustDirectory } = await import("./workspace-manager-D0jJ7StJ.js");
3462
3528
  preTrustDirectory(cwd);
3463
3529
  } catch {}
3464
3530
  try {
@@ -3475,7 +3541,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3475
3541
  const codexHomeDir = codexFields.codexHome;
3476
3542
  (async () => {
3477
3543
  try {
3478
- const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-BqLZKVNm.js");
3544
+ const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-DzLXjzbf.js");
3479
3545
  const rollout = await waitForCodexRollout(codexHomeDir, 12e4);
3480
3546
  if (rollout) {
3481
3547
  const threadId = extractThreadIdFromRollout(rollout);
@@ -3485,14 +3551,14 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
3485
3551
  })();
3486
3552
  }
3487
3553
  if (kimiCodeFields && kimiExistingSessionsBefore) {
3488
- const { waitForNewKimiSessionAsync, writeKimiSessionId } = await import("./kimi-code-Cdkk9vRU.js");
3554
+ const { waitForNewKimiSessionAsync, writeKimiSessionId } = await import("./kimi-code-Cx5YUJpS.js");
3489
3555
  const sessionId = await waitForNewKimiSessionAsync(join(homedir(), ".kimi-code"), cwd, kimiExistingSessionsBefore);
3490
3556
  if (!sessionId) throw new Error(`kimi-code session capture timed out for ${tmuxSession} — no new session directory appeared under the workspace bucket`);
3491
3557
  writeKimiSessionId(tmuxSession, sessionId);
3492
3558
  }
3493
3559
  };
3494
3560
  if (kimiCodeFields) {
3495
- const { withKimiSessionCaptureLock } = await import("./kimi-code-Cdkk9vRU.js");
3561
+ const { withKimiSessionCaptureLock } = await import("./kimi-code-Cx5YUJpS.js");
3496
3562
  await withKimiSessionCaptureLock(join(homedir(), ".kimi-code"), cwd, launchTmuxAndCaptureSession);
3497
3563
  } else await launchTmuxAndCaptureSession();
3498
3564
  if (channelsBridgeMcpConfig) dismissDevChannelsDialog(tmuxSession).catch((err) => {
@@ -3538,7 +3604,7 @@ async function handleConversationCreate(body, deps) {
3538
3604
  const projectKey = typeof body["projectKey"] === "string" ? body["projectKey"].trim() : void 0;
3539
3605
  if (issueId && !SAFE_ISSUE_ID_PATTERN.test(issueId)) return jsonResponse({ error: "Invalid issueId" }, { status: 400 });
3540
3606
  if (model && !SAFE_MODEL_PATTERN.test(model)) return jsonResponse({ error: "Invalid model" }, { status: 400 });
3541
- if (effort && !SAFE_EFFORT_PATTERN.test(effort)) return jsonResponse({ error: "Invalid effort" }, { status: 400 });
3607
+ if (effort && !(harness === "opencode" ? /^[a-z][a-z0-9_-]*$/ : SAFE_EFFORT_PATTERN).test(effort)) return jsonResponse({ error: "Invalid effort" }, { status: 400 });
3542
3608
  let cwd = getDefaultCwd();
3543
3609
  let canonicalProjectKey;
3544
3610
  if (projectKey) {
@@ -3579,14 +3645,15 @@ async function handleConversationCreate(body, deps) {
3579
3645
  await spawnConversationSession(tmuxSession, cwd, claudeSessionId, model, effort, issueId, false, harness);
3580
3646
  console.log(`[conversations] tmux session ${tmuxSession} spawned, sessionId: ${claudeSessionId}`);
3581
3647
  await waitForConversationRuntimeReady(tmuxSession, harness, "spawn");
3582
- if (message) {
3583
- const delivery = await deliverAgentMessage(tmuxSession, message, "conversation-message", resolveConversationDeliveryMethod(conv));
3584
- if (harness === "acp" && !delivery.ok) throw new Error(`ACP initial prompt did not land: ${delivery.failure ?? "unknown failure"}`);
3648
+ if (message || harness === "kimi-code") {
3649
+ const method = resolveConversationDeliveryMethod(conv);
3650
+ const delivery = harness === "kimi-code" ? await deliverAgentMessage(tmuxSession, message, "conversation-message", method, { kimiContext: { workspace: cwd } }) : await deliverAgentMessage(tmuxSession, message, "conversation-message", method);
3651
+ if ((harness === "acp" || harness === "opencode" || harness === "kimi-code") && !delivery.ok) throw new Error(`${getHarnessBehavior(harness).displayName} initial prompt did not land: ${delivery.failure ?? "unknown failure"}`);
3585
3652
  }
3586
3653
  } catch (spawnErr) {
3587
3654
  const msg = spawnErr instanceof Error ? spawnErr.message : String(spawnErr);
3588
3655
  console.error(`[conversations] background spawn failed for ${tmuxSession}: ${msg}`);
3589
- if (harness === "acp" || harness === "kimi-code") await stopConversationRuntime(conv, name);
3656
+ if (harness === "acp" || harness === "opencode" || harness === "kimi-code" || harness === "muse") await stopConversationRuntime(conv, name);
3590
3657
  updateSpawnError(name, msg);
3591
3658
  getEventStore().emitOnly({
3592
3659
  type: "conversation.created",
@@ -3673,7 +3740,10 @@ async function handleConversationResume(name, body, deps) {
3673
3740
  await spawnConversationSession(conv.tmuxSession, conv.cwd, oldSessionId ?? randomUUID$1(), model, effort, conv.issueId ?? void 0, canResume, harness);
3674
3741
  await waitForTmuxSession(conv.tmuxSession);
3675
3742
  await waitForConversationRuntimeReady(conv.tmuxSession, harness, "respawn");
3676
- await deliverResumeContractUnlessGated(conv.tmuxSession, `CONVERSATION RESUME: ${buildResumeContract(resumeCause)}`, "conversation-resume", resolveConversationDeliveryMethod(conv), sendResumeContract);
3743
+ const method = resolveConversationDeliveryMethod(conv);
3744
+ if (harness === "kimi-code") await deliverMandatoryKimiResumeContext(conv.tmuxSession, conv.cwd, method);
3745
+ const resumeContractResult = await deliverResumeContractUnlessGated(conv.tmuxSession, `CONVERSATION RESUME: ${buildResumeContract(resumeCause)}`, "conversation-resume", method, sendResumeContract);
3746
+ if (harness === "kimi-code") assertKimiResumeContractResult(resumeContractResult);
3677
3747
  markConversationActive(name);
3678
3748
  return jsonResponse({
3679
3749
  ...conv,
@@ -3684,7 +3754,7 @@ async function handleConversationResume(name, body, deps) {
3684
3754
  sessionAlive: true
3685
3755
  });
3686
3756
  } catch (error) {
3687
- if (harness === "acp" || harness === "kimi-code") await stopConversationRuntime(conv, name);
3757
+ if (harness === "acp" || harness === "opencode" || harness === "kimi-code" || harness === "muse") await stopConversationRuntime(conv, name);
3688
3758
  throw error;
3689
3759
  } finally {
3690
3760
  respawn.done();
@@ -3729,7 +3799,8 @@ async function handleConversationRestartAll(deps) {
3729
3799
  const harness = await resolveAllowedHarness(conv.harness, conv.model);
3730
3800
  attemptedHarness = harness;
3731
3801
  await spawnConversationSession(conv.tmuxSession, conv.cwd, oldSessionId ?? randomUUID$1(), conv.model ?? void 0, conv.effort ?? void 0, conv.issueId ?? void 0, canResume, harness);
3732
- if (harness === "acp") await waitForConversationRuntimeReady(conv.tmuxSession, harness, "respawn");
3802
+ if (harness === "acp" || harness === "opencode" || harness === "kimi-code" || harness === "muse") await waitForConversationRuntimeReady(conv.tmuxSession, harness, "respawn");
3803
+ if (harness === "kimi-code") await deliverMandatoryKimiResumeContext(conv.tmuxSession, conv.cwd, resolveConversationDeliveryMethod(conv));
3733
3804
  setConversationHarness(conv.name, harness);
3734
3805
  markConversationActive(conv.name);
3735
3806
  results.push({
@@ -3740,7 +3811,7 @@ async function handleConversationRestartAll(deps) {
3740
3811
  } catch (err) {
3741
3812
  const msg = err instanceof Error ? err.message : String(err);
3742
3813
  console.error(`[conversations] Failed to restart ${conv.name}:`, msg);
3743
- if (attemptedHarness === "acp" || attemptedHarness === "kimi-code") await stopConversationRuntime(conv, conv.name);
3814
+ if (attemptedHarness === "acp" || attemptedHarness === "kimi-code" || attemptedHarness === "opencode" || attemptedHarness === "muse") await stopConversationRuntime(conv, conv.name);
3744
3815
  results.push({
3745
3816
  name: conv.name,
3746
3817
  model: conv.model,
@@ -4123,7 +4194,7 @@ function pickDeliverAs(bodyDeliverAs) {
4123
4194
  }
4124
4195
  function resolveConversationDeliveryMethod(conv) {
4125
4196
  const harness = conv.harness ?? "claude-code";
4126
- if (harness === "acp") return "auto";
4197
+ if (harness === "acp" || harness === "opencode") return "auto";
4127
4198
  if (isPiControlChannelHarness(harness)) return "auto";
4128
4199
  if (harness === "codex" && loadConfigSync().config.codex?.transport !== "tui") return "auto";
4129
4200
  return conv.deliveryMethod ?? (getHarnessBehavior(harness).deliveryKind === "rpc-fifo" ? "tmux" : "auto");
@@ -4190,11 +4261,33 @@ async function handleConversationPiAskAnswer(rawId, body, deps = {}) {
4190
4261
  async function handleConversationThinkingLevel(name, body) {
4191
4262
  const conv = getConversationByName(name);
4192
4263
  if (!conv) return jsonResponse({ error: "Conversation not found" }, { status: 404 });
4193
- if (!isPiControlChannelHarness(conv.harness ?? "claude-code")) return jsonResponse({ error: "Thinking level control is only supported for Pi conversations" }, { status: 400 });
4264
+ const harness = conv.harness ?? "claude-code";
4265
+ if (harness !== "codex" && harness !== "acp" && harness !== "opencode" && !isPiControlChannelHarness(harness)) return jsonResponse({ error: "Thinking level control is supported for Codex, ACP, OpenCode, and Pi conversations" }, { status: 400 });
4194
4266
  if (conv.status === "ended") return jsonResponse({ error: "Session has ended — start a new run to interact" }, { status: 422 });
4195
- const level = parseThinkingLevel(body["level"]);
4267
+ const level = harness === "codex" || harness === "acp" || harness === "opencode" ? typeof body["level"] === "string" && [
4268
+ "low",
4269
+ "medium",
4270
+ "high",
4271
+ "xhigh",
4272
+ "max"
4273
+ ].includes(body["level"]) ? body["level"] : null : parseThinkingLevel(body["level"]);
4196
4274
  if (!level) return jsonResponse({ error: "Invalid thinking level" }, { status: 400 });
4197
- await sendConversationControlCommand(conv, {
4275
+ if (harness === "acp" || harness === "opencode") {
4276
+ const result = await postCodexAppServerOp(conv.tmuxSession, {
4277
+ op: "set-effort",
4278
+ effort: level
4279
+ }, "acp");
4280
+ setConversationEffort(name, result.effort);
4281
+ return jsonResponse({
4282
+ ok: true,
4283
+ effort: result.effort
4284
+ });
4285
+ }
4286
+ if (harness === "codex") await postCodexAppServerOp(conv.tmuxSession, {
4287
+ op: "set-effort",
4288
+ effort: level
4289
+ });
4290
+ else await sendConversationControlCommand(conv, {
4198
4291
  type: "set_thinking_level",
4199
4292
  level
4200
4293
  });
@@ -4302,9 +4395,9 @@ function formatAppServerApprovalQuestion(request) {
4302
4395
  if (path) return `Codex requests approval for:\n\n${path}`;
4303
4396
  return `Codex requests approval for ${request.method}`;
4304
4397
  }
4305
- async function postCodexAppServerOp(tmuxSession, body) {
4306
- const socketPath = join(getOverdeckHome(), "sockets", `appserver-${tmuxSession}.sock`);
4307
- const tokenPath = join(getOverdeckHome(), "agents", tmuxSession, "appserver-token");
4398
+ async function postCodexAppServerOp(tmuxSession, body, transport = "appserver") {
4399
+ const socketPath = join(getOverdeckHome(), "sockets", `${transport}-${tmuxSession}.sock`);
4400
+ const tokenPath = join(getOverdeckHome(), "agents", tmuxSession, `${transport}-token`);
4308
4401
  if (!existsSync(socketPath)) throw new Error(`app-server socket missing for ${tmuxSession}`);
4309
4402
  if (!existsSync(tokenPath)) throw new Error(`app-server token missing for ${tmuxSession}`);
4310
4403
  const token = readFileSync(tokenPath, "utf-8").trim();
@@ -4662,7 +4755,7 @@ const postInternalAgentPermissionRequestRoute = HttpRouter.add("POST", "/api/int
4662
4755
  error: "missing agent id"
4663
4756
  }, { status: 400 });
4664
4757
  const request = yield* HttpServerRequest.HttpServerRequest;
4665
- const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-CkrMLCLU.js"));
4758
+ const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-CWcdG-Kw.js"));
4666
4759
  const expected = getInternalTokenSync();
4667
4760
  if (!expected) return jsonResponse({
4668
4761
  ok: false,
@@ -4959,7 +5052,7 @@ const getAgentHealthHistoryRoute = HttpRouter.add("GET", "/api/agents/:id/health
4959
5052
  const request = yield* HttpServerRequest.HttpServerRequest;
4960
5053
  const urlOpt = HttpServerRequest.toURL(request);
4961
5054
  const hours = Option.isSome(urlOpt) ? urlOpt.value.searchParams.get("hours") ?? "24" : "24";
4962
- const { getHealthHistory } = yield* Effect.promise(() => import("./health-events-9RhRGZK1.js"));
5055
+ const { getHealthHistory } = yield* Effect.promise(() => import("./health-events-Dv7rzyit.js"));
4963
5056
  const endTime = /* @__PURE__ */ new Date();
4964
5057
  const startTime = /* @__PURE__ */ new Date(endTime.getTime() - parseInt(hours) * 60 * 60 * 1e3);
4965
5058
  const events = getHealthHistory(id, startTime.toISOString(), endTime.toISOString());
@@ -4974,7 +5067,7 @@ function emitAgentRuntimeEvent(id, body, timestamp) {
4974
5067
  return Effect.gen(function* () {
4975
5068
  let eventBody = body;
4976
5069
  if (body["kind"] === "linear_mcp_auth_required" || body["kind"] === "linear_mcp_auth_healthy") {
4977
- const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-GK2Uy8zc.js"));
5070
+ const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-DcN1j6eK.js"));
4978
5071
  const snapshot = yield* (yield* AgentStateService).get(id);
4979
5072
  eventBody = {
4980
5073
  ...body,
@@ -5009,7 +5102,7 @@ function emitAgentRuntimeEvent(id, body, timestamp) {
5009
5102
  detail: String(decoded.failure)
5010
5103
  }, { status: 400 })
5011
5104
  };
5012
- const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-GK2Uy8zc.js"));
5105
+ const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-DcN1j6eK.js"));
5013
5106
  yield* (yield* AgentStateService).emit(decoded.success);
5014
5107
  return {
5015
5108
  ok: true,
@@ -5090,13 +5183,13 @@ const postAgentPlanChecklistRoute = HttpRouter.add("POST", "/api/agents/:id/plan
5090
5183
  const auth = yield* Effect.promise(() => validateAgentRuntimeEventAuth(request));
5091
5184
  if (!auth.ok) return auth.response;
5092
5185
  const id = (yield* HttpRouter.params)["id"] ?? "";
5093
- const { getAgentState } = yield* Effect.promise(() => import("./agents-BdkVgjxC.js"));
5186
+ const { getAgentState } = yield* Effect.promise(() => import("./agents-BVvL4o_4.js"));
5094
5187
  const state = yield* getAgentState(id);
5095
5188
  if (!state?.workspace || !state.issueId) return jsonResponse({
5096
5189
  success: false,
5097
5190
  error: "agent has no resolvable workspace or issue id"
5098
5191
  }, { status: 422 });
5099
- const { checkIncompletePlanItemsPromise } = yield* Effect.promise(() => import("./done-preflight-AiXnYYAy.js"));
5192
+ const { checkIncompletePlanItemsPromise } = yield* Effect.promise(() => import("./done-preflight-DAufsWqY.js"));
5100
5193
  const incomplete = yield* Effect.promise(() => checkIncompletePlanItemsPromise(state.workspace, state.issueId));
5101
5194
  return jsonResponse({
5102
5195
  success: true,
@@ -5110,7 +5203,7 @@ const getAgentRuntimeRoute = HttpRouter.add("GET", "/api/agents/:id/runtime", ht
5110
5203
  success: false,
5111
5204
  error: "missing agent id"
5112
5205
  }, { status: 400 });
5113
- const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-GK2Uy8zc.js"));
5206
+ const { AgentStateService } = yield* Effect.promise(() => import("./agent-state-service-DcN1j6eK.js"));
5114
5207
  const snapshot = yield* (yield* AgentStateService).get(id);
5115
5208
  if (!snapshot) return jsonResponse({
5116
5209
  success: false,
@@ -5301,8 +5394,8 @@ function createAgentStopHandler(lifecycleEvent) {
5301
5394
  yield* stopAgent(id, "operator");
5302
5395
  if (stateBeforeStop?.issueId) yield* Effect.promise(async () => {
5303
5396
  try {
5304
- const { resolveProjectFromIssueSync } = await import("./projects-Crur9uCa.js");
5305
- const { findWorkspacePath } = await import("./archive-planning-CNSWQPvz.js");
5397
+ const { resolveProjectFromIssueSync } = await import("./projects-DXgHD2Xl.js");
5398
+ const { findWorkspacePath } = await import("./archive-planning-CohTB7hg.js");
5306
5399
  const issueLower = stateBeforeStop.issueId.toLowerCase();
5307
5400
  const workspacePath = findWorkspacePath(resolveProjectFromIssueSync(stateBeforeStop.issueId)?.projectPath ?? process.cwd(), issueLower);
5308
5401
  if (workspacePath) {
@@ -5442,7 +5535,7 @@ const postAgentUnpauseRoute = HttpRouter.add("POST", "/api/agents/:id/unpause",
5442
5535
  if ((yield* getWorkAgentLifecycleState(id)).canResumeSession && updatedState.troubled !== true) {
5443
5536
  resumeTriggered = true;
5444
5537
  yield* Effect.promise(() => appendAgentLifecycleLog(id, "agent.unpause_immediate_resume_triggered"));
5445
- import("./resume-DmF2andq.js").then(({ resumeAgent }) => resumeAgent(id)).then((result) => {
5538
+ import("./resume-BKyB4hA1.js").then(({ resumeAgent }) => resumeAgent(id)).then((result) => {
5446
5539
  if (!result.success) console.warn(`[agents] immediate resume after unpause failed for ${id}: ${result.error}`);
5447
5540
  }).catch((err) => console.warn(`[agents] immediate resume after unpause errored for ${id}:`, err));
5448
5541
  }
@@ -6855,15 +6948,15 @@ async function requestWorkStartAfterContainers(input) {
6855
6948
  function handleRemoteAgentSpawn(input) {
6856
6949
  return Effect.gen(function* () {
6857
6950
  const { issueId, workspacePath, workspaceMetadata, spawnModel, startedBy, autoSpawnConsentRequired, projectPath, spawnGuardrails, lifecycle } = input;
6858
- const { spawnRemoteAgent, checkRemoteSpendCap } = yield* Effect.promise(() => import("./remote-agents-MbWzm5Fh.js"));
6859
- const { createFlyProviderFromConfig } = yield* Effect.promise(() => import("./remote-BMZmJC5E.js"));
6860
- const { loadConfigSync: loadPanConfig } = yield* Effect.promise(() => import("./config-DURnId0k.js"));
6951
+ const { spawnRemoteAgent, checkRemoteSpendCap } = yield* Effect.promise(() => import("./remote-agents-CEOvYsvK.js"));
6952
+ const { createFlyProviderFromConfig } = yield* Effect.promise(() => import("./remote-gWXJyhJK.js"));
6953
+ const { loadConfigSync: loadPanConfig } = yield* Effect.promise(() => import("./config-DN8ETZvK.js"));
6861
6954
  const panConfig = loadPanConfig();
6862
6955
  const spendCap = checkRemoteSpendCap(panConfig);
6863
6956
  if (!spendCap.allowed) return jsonResponse({ error: spendCap.message }, { status: 429 });
6864
6957
  const fly = createFlyProviderFromConfig(panConfig.remote);
6865
6958
  yield* Effect.promise(() => fly.syncAllCredentials(workspaceMetadata.vmName));
6866
- const { buildWorkAgentPrompt, getTrackerContext } = yield* Effect.promise(() => import("./work-agent-prompt-CQWlmw_y.js"));
6959
+ const { buildWorkAgentPrompt, getTrackerContext } = yield* Effect.promise(() => import("./work-agent-prompt-Csr4vMbl.js"));
6867
6960
  const trackerContext = yield* Effect.promise(() => getTrackerContext(issueId, workspacePath));
6868
6961
  const agentPrompt = yield* Effect.promise(() => buildWorkAgentPrompt({
6869
6962
  issueId,
@@ -7597,7 +7690,7 @@ const postAgentsRoute = HttpRouter.add("POST", "/api/agents", httpHandler(Effect
7597
7690
  console.warn(`[start-agent] Failed to set plan.status=running (non-fatal): ${planStatusErr?.message ?? planStatusErr}`);
7598
7691
  }
7599
7692
  try {
7600
- const { appendSessionEntry, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-C4JJCL2f.js");
7693
+ const { appendSessionEntry, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-Dsceq536.js");
7601
7694
  await appendSessionEntry(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId, {
7602
7695
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
7603
7696
  reason: "start",
@@ -7700,7 +7793,7 @@ const postAgentsRoute = HttpRouter.add("POST", "/api/agents", httpHandler(Effect
7700
7793
  console.warn(`[start-agent] Failed to check workspace status for ${issueId}: ${message}`);
7701
7794
  }
7702
7795
  const bodyHarness = body.harness;
7703
- const userPickedHarness = bodyHarness === "ohmypi" || bodyHarness === "claude-code" || bodyHarness === "codex" || bodyHarness === "acp" || bodyHarness === "kimi-code" ? bodyHarness : null;
7796
+ const userPickedHarness = bodyHarness === "ohmypi" || bodyHarness === "claude-code" || bodyHarness === "codex" || bodyHarness === "acp" || bodyHarness === "kimi-code" || bodyHarness === "opencode" || bodyHarness === "muse" ? bodyHarness : null;
7704
7797
  let effectiveHarness = null;
7705
7798
  if (userPickedHarness !== null) {
7706
7799
  const harnessDecision = yield* Effect.promise(async () => canUseHarnessSync(userPickedHarness, spawnModel, await getProviderAuthMode(spawnModel)));
@@ -8045,14 +8138,14 @@ function firePostMergeLifecycle(issueId, options) {
8045
8138
  const normalizedIssueId = parsedIssueId.normalized.toUpperCase();
8046
8139
  const started = postMergeGuard.run(normalizedIssueId, async () => {
8047
8140
  const projectPath = getProjectPathForIssue(parsedIssueId.prefix);
8048
- const { postMergeLifecycle } = await import("./merge-agent-svBDRWB6.js");
8141
+ const { postMergeLifecycle } = await import("./merge-agent-ddEcZDZD.js");
8049
8142
  const lifecycleOptions = {
8050
8143
  ...options?.verifiedMergedRef ? { verifiedMergedRef: options.verifiedMergedRef } : {},
8051
8144
  ...options?.verifiedMergedRepos?.length ? { verifiedMergedRepos: options.verifiedMergedRepos } : {}
8052
8145
  };
8053
8146
  await postMergeLifecycle(normalizedIssueId, projectPath, options?.sourceBranch, Object.keys(lifecycleOptions).length > 0 ? lifecycleOptions : void 0);
8054
8147
  console.log(`[merge] post-merge lifecycle completed for ${normalizedIssueId}`);
8055
- const { runMergeTrainReconcile } = await import("./merge-train-DTJXF8ph.js");
8148
+ const { runMergeTrainReconcile } = await import("./merge-train-f_un38UJ.js");
8056
8149
  const outcomes = await runMergeTrainReconcile(normalizedIssueId);
8057
8150
  if (outcomes.length > 0) console.log(`[merge-train] reconciled ${outcomes.length} sibling(s) after ${normalizedIssueId}: ` + outcomes.map((o) => `${o.issueId}=${o.result}`).join(", "));
8058
8151
  }, (err) => console.error(`[merge] post-merge lifecycle failed for ${normalizedIssueId}:`, err));
@@ -8072,15 +8165,15 @@ init_review_status();
8072
8165
  init_io();
8073
8166
  init_tmux();
8074
8167
  const getSpecialistsRoute = HttpRouter.add("GET", "/api/specialists", httpHandler(Effect.gen(function* () {
8075
- const { getAllSpecialistStatus, getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8168
+ const { getAllSpecialistStatus, getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8076
8169
  return jsonResponse({
8077
8170
  specialists: yield* Effect.promise(() => getAllSpecialistStatus()),
8078
8171
  projects: yield* Effect.promise(() => getAllProjectSpecialistStatuses())
8079
8172
  });
8080
8173
  })));
8081
8174
  const postSpecialistsResetAllRoute = HttpRouter.add("POST", "/api/specialists/reset-all", httpHandler(Effect.gen(function* () {
8082
- const { getAllSpecialists, isRunning, getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8083
- const { clearHookSync } = yield* Effect.promise(() => import("./hooks-CmL3TXla.js"));
8175
+ const { getAllSpecialists, isRunning, getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8176
+ const { clearHookSync } = yield* Effect.promise(() => import("./hooks-DKzqJ4HF.js"));
8084
8177
  const specialists = getAllSpecialists();
8085
8178
  const results = [];
8086
8179
  for (const specialist of specialists) {
@@ -8166,7 +8259,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8166
8259
  if (project) {
8167
8260
  const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
8168
8261
  if (existsSync(workspacePath)) {
8169
- const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-fcK3ZRNj.js");
8262
+ const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-DvcWLgGS.js");
8170
8263
  reviewEvidenceHead = await snapshotWorkspaceHeadsPromise(normalizedIssueId, workspacePath);
8171
8264
  }
8172
8265
  }
@@ -8215,7 +8308,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8215
8308
  if (project && failedItemId) {
8216
8309
  const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
8217
8310
  if (existsSync(workspacePath)) {
8218
- const { onInspectComplete } = await import("./inspect-agent-BuSYgRQs.js");
8311
+ const { onInspectComplete } = await import("./inspect-agent-DTuSg95i.js");
8219
8312
  await Effect.runPromise(onInspectComplete(project.projectKey, normalizedIssueId, failedItemId, "failed", workspacePath, notes));
8220
8313
  }
8221
8314
  }
@@ -8226,7 +8319,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8226
8319
  }
8227
8320
  yield* Effect.promise(async () => {
8228
8321
  try {
8229
- const { getTmuxSessionName, updateRunMetadata, makeSpecialistRegistryKey } = await import("./specialists-8Pc--yZI.js");
8322
+ const { getTmuxSessionName, updateRunMetadata, makeSpecialistRegistryKey } = await import("./specialists-D8sYZnPb.js");
8230
8323
  const projectKey = resolveProjectFromIssueSync(normalizedIssueId)?.projectKey;
8231
8324
  const tmuxSession = projectKey ? getTmuxSessionName(`${specialist}-agent`, projectKey, normalizedIssueId) : getTmuxSessionName(`${specialist}-agent`);
8232
8325
  saveAgentRuntimeState(tmuxSession, {
@@ -8245,7 +8338,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8245
8338
  });
8246
8339
  console.log(`[specialists/done] Cleared registry lock for ${registryKey} (${projectKey})`);
8247
8340
  }
8248
- const { updateSpecialistHandoffStatus } = await import("./specialist-handoff-logger-B7jzypoX.js");
8341
+ const { updateSpecialistHandoffStatus } = await import("./specialist-handoff-logger-4QCjIBPO.js");
8249
8342
  if (await Effect.runPromise(updateSpecialistHandoffStatus(normalizedIssueId, `${specialist}-agent`, status === "passed" ? "completed" : "failed", status === "passed" ? "success" : "failure"))) console.log(`[specialists/done] Updated handoff log: ${specialist}-agent ${normalizedIssueId} → ${status}`);
8250
8343
  } catch (err) {
8251
8344
  console.error(`[specialists/done] Error managing specialist state:`, err);
@@ -8257,7 +8350,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8257
8350
  if (project) {
8258
8351
  const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
8259
8352
  if (existsSync(workspacePath)) {
8260
- const { formatAnchorShort, snapshotWorkspaceHeadsPromise } = await import("./git-utils-fcK3ZRNj.js");
8353
+ const { formatAnchorShort, snapshotWorkspaceHeadsPromise } = await import("./git-utils-DvcWLgGS.js");
8261
8354
  const headAnchor = await snapshotWorkspaceHeadsPromise(normalizedIssueId, workspacePath);
8262
8355
  if (headAnchor) {
8263
8356
  setReviewStatusSync(normalizedIssueId, { reviewedAtCommit: headAnchor });
@@ -8271,7 +8364,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8271
8364
  });
8272
8365
  if (specialist === "inspect" && status === "passed") yield* Effect.promise(async () => {
8273
8366
  try {
8274
- const { onInspectComplete } = await import("./inspect-agent-BuSYgRQs.js");
8367
+ const { onInspectComplete } = await import("./inspect-agent-DTuSg95i.js");
8275
8368
  const project = resolveProjectFromIssueSync(normalizedIssueId);
8276
8369
  if (project) {
8277
8370
  const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
@@ -8287,7 +8380,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8287
8380
  if (project) {
8288
8381
  if (existsSync(join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`))) {
8289
8382
  setReviewStatusSync(normalizedIssueId, { testStatus: "passed" });
8290
- const { initEventStore } = await import("./event-store-CFnLP8w-.js");
8383
+ const { initEventStore } = await import("./event-store-Bw3YDOZ5.js");
8291
8384
  await (await initEventStore()).appendAsync({
8292
8385
  type: "test.passed",
8293
8386
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -8340,8 +8433,8 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8340
8433
  if (notes?.toLowerCase().includes("conflict")) yield* Effect.promise(async () => {
8341
8434
  try {
8342
8435
  const workAgentId = `agent-${normalizedIssueId.toLowerCase()}`;
8343
- const { sessionExists } = await import("./tmux-C-hxv71f.js");
8344
- const { messageAgent, spawnAgent, getAgentStateSync } = await import("./agents-BdkVgjxC.js");
8436
+ const { sessionExists } = await import("./tmux-aj9rscol.js");
8437
+ const { messageAgent, spawnAgent, getAgentStateSync } = await import("./agents-BVvL4o_4.js");
8345
8438
  if (await Effect.runPromise(sessionExists(workAgentId))) {
8346
8439
  await messageAgent(workAgentId, `MERGE CONFLICT: The merge-agent could not rebase your branch onto main due to conflicts. Please fix this now:\n\n1. git fetch origin main\n2. git rebase origin/main\n3. Resolve any conflicts (git add <file> && git rebase --continue)\n4. git push --force-with-lease\n5. Resubmit: curl -s -X POST http://localhost:3011/api/review/${normalizedIssueId}/request -H "Content-Type: application/json" -d "{}"\n\nConflict details: ${notes}`);
8347
8440
  console.log(`[specialists/done] Sent rebase instructions to ${workAgentId}`);
@@ -8355,7 +8448,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8355
8448
  try {
8356
8449
  const project = resolveProjectFromIssueSync(normalizedIssueId);
8357
8450
  const workspacePath = project ? join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`) : void 0;
8358
- const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-DkMx_cKj.js");
8451
+ const { deliverReviewVerdictFeedback } = await import("./review-verdict-feedback-Dp139Lmv.js");
8359
8452
  const result = await Effect.runPromise(deliverReviewVerdictFeedback({
8360
8453
  issueId: normalizedIssueId,
8361
8454
  verdict: status === "failed" ? "failed" : "blocked",
@@ -8375,7 +8468,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8375
8468
  if (project) {
8376
8469
  const workspacePath = join(project.projectPath, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`);
8377
8470
  if (existsSync(workspacePath)) {
8378
- const { formatAnchorShort, snapshotWorkspaceHeadsPromise } = await import("./git-utils-fcK3ZRNj.js");
8471
+ const { formatAnchorShort, snapshotWorkspaceHeadsPromise } = await import("./git-utils-DvcWLgGS.js");
8379
8472
  const reviewedAtCommit = await snapshotWorkspaceHeadsPromise(normalizedIssueId, workspacePath);
8380
8473
  if (reviewedAtCommit) {
8381
8474
  setReviewStatusSync(normalizedIssueId, { reviewedAtCommit });
@@ -8415,7 +8508,7 @@ const postSpecialistsDoneRoute = HttpRouter.add("POST", "/api/specialists/done",
8415
8508
  });
8416
8509
  })));
8417
8510
  const postSpecialistsLogsCleanupAllRoute = HttpRouter.add("POST", "/api/specialists/logs/cleanup-all", httpHandler(Effect.gen(function* () {
8418
- const { cleanupAllLogsSync } = yield* Effect.promise(() => import("./specialist-logs-DVhOLpwy.js"));
8511
+ const { cleanupAllLogsSync } = yield* Effect.promise(() => import("./specialist-logs-BbAX221-.js"));
8419
8512
  const results = cleanupAllLogsSync();
8420
8513
  return jsonResponse({
8421
8514
  success: true,
@@ -8425,7 +8518,7 @@ const postSpecialistsLogsCleanupAllRoute = HttpRouter.add("POST", "/api/speciali
8425
8518
  });
8426
8519
  })));
8427
8520
  const getSpecialistsProjectsRoute = HttpRouter.add("GET", "/api/specialists/projects", httpHandler(Effect.gen(function* () {
8428
- const { getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8521
+ const { getAllProjectSpecialistStatuses } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8429
8522
  return jsonResponse(yield* Effect.promise(() => getAllProjectSpecialistStatuses()));
8430
8523
  })));
8431
8524
  const postSpecialistWakeRoute = HttpRouter.add("POST", "/api/specialists/:name/wake", httpHandler(Effect.gen(function* () {
@@ -8469,7 +8562,7 @@ const postSpecialistReportStatusRoute = HttpRouter.add("POST", "/api/specialists
8469
8562
  "blocked",
8470
8563
  "failed"
8471
8564
  ].includes(status)) {
8472
- const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8565
+ const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8473
8566
  saveAgentRuntimeState(getTmuxSessionName(name), {
8474
8567
  state: "idle",
8475
8568
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
@@ -8591,7 +8684,7 @@ const postProjectSpecialistKillRoute = HttpRouter.add("POST", "/api/specialists/
8591
8684
  const issueId = params["issueId"];
8592
8685
  const type = params["type"];
8593
8686
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
8594
- const { getTmuxSessionName, makeSpecialistRegistryKey, getRunMetadata } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8687
+ const { getTmuxSessionName, makeSpecialistRegistryKey, getRunMetadata } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8595
8688
  const tmuxSession = getRunMetadata(project, makeSpecialistRegistryKey(type, issueId)).tmuxSession ?? getTmuxSessionName(type, project, issueId);
8596
8689
  yield* Effect.promise(() => Effect.runPromise(killSession(tmuxSession)).catch(() => {}));
8597
8690
  saveAgentRuntimeState(tmuxSession, {
@@ -8618,7 +8711,7 @@ const getProjectSpecialistRunsRoute = HttpRouter.add("GET", "/api/specialists/:p
8618
8711
  if (limitParam) limit = parseInt(limitParam, 10);
8619
8712
  if (offsetParam) offset = parseInt(offsetParam, 10);
8620
8713
  }
8621
- const { listRunLogsSync } = yield* Effect.promise(() => import("./specialist-logs-DVhOLpwy.js"));
8714
+ const { listRunLogsSync } = yield* Effect.promise(() => import("./specialist-logs-BbAX221-.js"));
8622
8715
  return jsonResponse(listRunLogsSync(project, type, {
8623
8716
  limit,
8624
8717
  offset
@@ -8629,7 +8722,7 @@ const getProjectSpecialistRunStreamRoute = HttpRouter.add("GET", "/api/specialis
8629
8722
  const project = params["project"];
8630
8723
  const type = params["type"];
8631
8724
  const runId = params["runId"];
8632
- const { getRunLogPath, isRunLogActive } = yield* Effect.promise(() => import("./specialist-logs-DVhOLpwy.js"));
8725
+ const { getRunLogPath, isRunLogActive } = yield* Effect.promise(() => import("./specialist-logs-BbAX221-.js"));
8633
8726
  const logPath = getRunLogPath(project, type, runId);
8634
8727
  if (!existsSync(logPath)) return jsonResponse({ error: "Run log not found" }, { status: 404 });
8635
8728
  const encoder = new TextEncoder();
@@ -8688,7 +8781,7 @@ const getProjectSpecialistRunRoute = HttpRouter.add("GET", "/api/specialists/:pr
8688
8781
  const project = params["project"];
8689
8782
  const type = params["type"];
8690
8783
  const runId = params["runId"];
8691
- const { getRunLogSync, parseLogMetadata } = yield* Effect.promise(() => import("./specialist-logs-DVhOLpwy.js"));
8784
+ const { getRunLogSync, parseLogMetadata } = yield* Effect.promise(() => import("./specialist-logs-BbAX221-.js"));
8692
8785
  const content = getRunLogSync(project, type, runId);
8693
8786
  if (!content) return jsonResponse({ error: "Run log not found" }, { status: 404 });
8694
8787
  return jsonResponse({
@@ -8702,7 +8795,7 @@ const postProjectSpecialistRunTerminateRoute = HttpRouter.add("POST", "/api/spec
8702
8795
  const project = params["project"];
8703
8796
  const type = params["type"];
8704
8797
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
8705
- const { terminateSpecialist } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8798
+ const { terminateSpecialist } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8706
8799
  yield* Effect.promise(() => terminateSpecialist(project, type));
8707
8800
  return jsonResponse({
8708
8801
  success: true,
@@ -8714,7 +8807,7 @@ const postProjectSpecialistGracePauseRoute = HttpRouter.add("POST", "/api/specia
8714
8807
  const project = params["project"];
8715
8808
  const type = params["type"];
8716
8809
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
8717
- const { pauseGracePeriod } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8810
+ const { pauseGracePeriod } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8718
8811
  if (pauseGracePeriod(project, type)) return jsonResponse({
8719
8812
  success: true,
8720
8813
  message: "Grace period paused"
@@ -8726,7 +8819,7 @@ const postProjectSpecialistGraceResumeRoute = HttpRouter.add("POST", "/api/speci
8726
8819
  const project = params["project"];
8727
8820
  const type = params["type"];
8728
8821
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
8729
- const { resumeGracePeriod } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8822
+ const { resumeGracePeriod } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8730
8823
  if (resumeGracePeriod(project, type)) return jsonResponse({
8731
8824
  success: true,
8732
8825
  message: "Grace period resumed"
@@ -8738,7 +8831,7 @@ const postProjectSpecialistGraceExitRoute = HttpRouter.add("POST", "/api/special
8738
8831
  const project = params["project"];
8739
8832
  const type = params["type"];
8740
8833
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
8741
- const { exitGracePeriod } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8834
+ const { exitGracePeriod } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8742
8835
  exitGracePeriod(project, type);
8743
8836
  return jsonResponse({
8744
8837
  success: true,
@@ -8750,7 +8843,7 @@ const getProjectSpecialistGraceRoute = HttpRouter.add("GET", "/api/specialists/:
8750
8843
  const project = params["project"];
8751
8844
  const type = params["type"];
8752
8845
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
8753
- const { getGracePeriodState } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8846
+ const { getGracePeriodState } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8754
8847
  const state = getGracePeriodState(project, type);
8755
8848
  if (state) return jsonResponse(state);
8756
8849
  else return jsonResponse({ error: "No active grace period" }, { status: 404 });
@@ -8759,7 +8852,7 @@ const getProjectSpecialistContextRoute = HttpRouter.add("GET", "/api/specialists
8759
8852
  const params = yield* HttpRouter.params;
8760
8853
  const project = params["project"];
8761
8854
  const type = params["type"];
8762
- const { loadContextDigest } = yield* Effect.promise(() => import("./specialist-context-B054OP_a.js"));
8855
+ const { loadContextDigest } = yield* Effect.promise(() => import("./specialist-context-_ootmzn2.js"));
8763
8856
  const digest = loadContextDigest(project, type);
8764
8857
  if (digest) return jsonResponse({ digest });
8765
8858
  else return jsonResponse({ error: "No context digest found" }, { status: 404 });
@@ -8768,7 +8861,7 @@ const postProjectSpecialistContextRegenerateRoute = HttpRouter.add("POST", "/api
8768
8861
  const params = yield* HttpRouter.params;
8769
8862
  const project = params["project"];
8770
8863
  const type = params["type"];
8771
- const { regenerateContextDigest } = yield* Effect.promise(() => import("./specialist-context-B054OP_a.js"));
8864
+ const { regenerateContextDigest } = yield* Effect.promise(() => import("./specialist-context-_ootmzn2.js"));
8772
8865
  const digest = yield* regenerateContextDigest(project, type);
8773
8866
  if (digest) return jsonResponse({
8774
8867
  digest,
@@ -8787,7 +8880,7 @@ const postProjectSpecialistCompleteRoute = HttpRouter.add("POST", "/api/speciali
8787
8880
  "blocked"
8788
8881
  ].includes(status)) return jsonResponse({ error: "Valid status (passed/failed/blocked) is required" }, { status: 400 });
8789
8882
  if (!validateSpecialistAgentName(type)) return jsonResponse({ error: "Invalid specialist type. Must be review-agent, test-agent, or merge-agent" }, { status: 400 });
8790
- const { signalSpecialistCompletion } = yield* Effect.promise(() => import("./specialists-8Pc--yZI.js"));
8883
+ const { signalSpecialistCompletion } = yield* Effect.promise(() => import("./specialists-D8sYZnPb.js"));
8791
8884
  signalSpecialistCompletion(project, type, {
8792
8885
  status,
8793
8886
  notes
@@ -8821,8 +8914,8 @@ const postProjectSpecialistLogsCleanupRoute = HttpRouter.add("POST", "/api/speci
8821
8914
  const params = yield* HttpRouter.params;
8822
8915
  const project = params["project"];
8823
8916
  const type = params["type"];
8824
- const { cleanupOldLogsSync } = yield* Effect.promise(() => import("./specialist-logs-DVhOLpwy.js"));
8825
- const { getSpecialistRetention } = yield* Effect.promise(() => import("./projects-Crur9uCa.js"));
8917
+ const { cleanupOldLogsSync } = yield* Effect.promise(() => import("./specialist-logs-BbAX221-.js"));
8918
+ const { getSpecialistRetention } = yield* Effect.promise(() => import("./projects-DXgHD2Xl.js"));
8826
8919
  const retention = getSpecialistRetention(project);
8827
8920
  const deleted = cleanupOldLogsSync(project, type, {
8828
8921
  maxDays: retention.max_days,
@@ -8843,7 +8936,7 @@ const postProjectReviewRestartRoute = HttpRouter.add("POST", "/api/specialists/:
8843
8936
  const project = params["project"];
8844
8937
  const issueId = params["issueId"];
8845
8938
  const { model, harness } = yield* readJsonBody;
8846
- const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-DM9S22BL.js"));
8939
+ const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-ZdP-HmwY.js"));
8847
8940
  const killResult = yield* killAllReviewerSessions(project, issueId);
8848
8941
  const projectConfig = resolveProjectFromIssueSync(issueId);
8849
8942
  if (!projectConfig) return jsonResponse({ error: `Cannot resolve project for ${issueId}` }, { status: 404 });
@@ -8859,7 +8952,7 @@ const postProjectReviewRestartRoute = HttpRouter.add("POST", "/api/specialists/:
8859
8952
  }));
8860
8953
  branch = stdout.trim() || primaryRepo.sourceBranch;
8861
8954
  } catch {}
8862
- const { spawnReviewRoleForIssue } = yield* Effect.promise(() => import("./review-agent-DM9S22BL.js"));
8955
+ const { spawnReviewRoleForIssue } = yield* Effect.promise(() => import("./review-agent-ZdP-HmwY.js"));
8863
8956
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
8864
8957
  const result = yield* spawnReviewRoleForIssue({
8865
8958
  issueId,
@@ -8903,7 +8996,7 @@ const postProjectReviewerRoleRestartRoute = HttpRouter.add("POST", "/api/special
8903
8996
  const { model } = yield* readJsonBody;
8904
8997
  const reviewer = getAgentStateSync(reviewerId);
8905
8998
  yield* Effect.promise(() => Effect.runPromise(killSession(reviewerId)).catch(() => void 0));
8906
- const { spawnReviewSubRoleForIssue } = yield* Effect.promise(() => import("./review-agent-DM9S22BL.js"));
8999
+ const { spawnReviewSubRoleForIssue } = yield* Effect.promise(() => import("./review-agent-ZdP-HmwY.js"));
8907
9000
  const result = yield* spawnReviewSubRoleForIssue({
8908
9001
  issueId,
8909
9002
  workspace: parent.workspace,
@@ -9033,4 +9126,4 @@ const specialistsRouteLayer = Layer.mergeAll(specialistsLegacyRouteLayer, specia
9033
9126
  //#endregion
9034
9127
  export { resolvePolicy as $, handleConversationSwitchModel as A, waitForTmuxSession as B, conversationSessionAliveFromState as C, getDefaultCwd as Ct, handleConversationRestartAll as D, handleConversationDelete as E, spawnConversationSession as F, extractConversationAttachmentPaths as G, cleanupOrphanedConversationAttachments as H, startConversationModelBackfill as I, isManagedConversationAttachmentPath as J, getConversationAttachmentsRoot as K, stopConversationRuntime as L, resolveAllowedHarness as M, resolveRegisteredProject as N, handleConversationResume as O, shouldReportUnresolvedLiveSession as P, handleComposerCommandMessage as Q, tmuxSessionExists as R, conversationNeedsRunningRepair as S, httpHandler as St, handleConversationCreate as T, jsonStringResponse as Tt, cleanupUnreferencedConversationAttachments as U, cleanupConversationAttachments as V, ensureConversationAttachmentDir as W, runInBatches as X, removeConversationAttachment as Y, composerCommandResultHttpStatus as Z, handleConversationThinkingLevel as _, waitForSessionRespawn as _t, agentsRouteLayer as a, isInternalAgentRequest as at, resolveConversationDeliveryMethod as b, validateOrigin as bt, codexConversationPendingInput as c, panCliInvocation as ct, handleConversationCodexApproval as d, dashboardSessionCookieHeader as dt, ComposerCommandParseError as et, handleConversationCompact as f, hasDashboardInternalToken as ft, handleConversationPlanAction as g, isRespawnPending as gt, handleConversationPiAskAnswer as h, rejectUnsafeDashboardMutationRequest as ht, validateSpecialistAutoCompleteMetadata as i, invalidateAgentsCache as it, isInsideGitWorkTree as j, handleConversationStop as k, deliverConversationViaControlChannel as l, spawnPanCli as lt, handleConversationDeliveryMethod as m, rejectUnauthorizedDashboardSessionMintRequest as mt, _serverManagedMerges as n, composerCommandConfirmationFromBody as nt, saveAgentStateAndEmitEvent as o, resolveRequestedStartedBy as ot, handleConversationControlAck as p, rejectUnauthorizedDashboardRequest as pt, hasConversationAttachment as q, firePostMergeLifecycle as r, evaluateSpawnGuardrails as rt, saveAgentStateAndEmitEventProgram as s, getWorkAgentLifecycleStateSync as st, specialistsRouteLayer as t, ComposerCommandConfirmationError as tt, handleConversationAbort as u, dashboardCsrfToken as ut, isPiControlChannelHarness as v, getHeaderFromMap as vt, handleConversationClearForkState as w, jsonResponse as wt, validateConversationControlAckOrigin as x, validateOriginHeaders as xt, pickDeliverAs as y, isTrustedOriginForHost as yt, waitForPiTuiReady as z };
9035
9128
 
9036
- //# sourceMappingURL=specialists-CC_Mnc47.js.map
9129
+ //# sourceMappingURL=specialists-COZoYaiz.js.map