@overdeck/desktop 0.65.0 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-BgED6Izb.js → acceptance-criteria-CNfqZWHE.js} +1 -1
  3. package/server/activity-CElPNdhJ.js +2 -0
  4. package/server/{activity-CVRFYPg-.js → activity-h2Q-pMa7.js} +4 -4
  5. package/server/{agent-pane-io-8U_dsHCf.js → agent-pane-io-CXPX0Kq3.js} +43 -5
  6. package/server/agent-pane-io-H-50g3Ze.js +2 -0
  7. package/server/{agent-state-service-CZjmcB3_.js → agent-state-service-CJB8_8Bp.js} +2 -2
  8. package/server/{agent-state-service-hbWznp6M.js → agent-state-service-Cs_Z_oHX.js} +1 -1
  9. package/server/{agent-status-events-HU33uOJc.js → agent-status-events-DfYAcfpo.js} +1 -1
  10. package/server/{agents-DfEYd_I0.js → agents-C9oho7kE.js} +3 -3
  11. package/server/{agents-CKFhKqJp.js → agents-DebP6rx9.js} +56 -46
  12. package/server/{agents-DNkpVGda.js → agents-dwMmsEQT.js} +2 -2
  13. package/server/archive-planning-DflA6GM1.js +2 -0
  14. package/server/{archive-planning-BvwP8nTs.js → archive-planning-vbycG6oX.js} +2 -2
  15. package/server/{artifact-index-jobs-CFe2p3St.js → artifact-index-jobs-C73RHIUN.js} +1 -1
  16. package/server/{auto-merge-eligibility-De2WgmQS.js → auto-merge-eligibility-f1D8TwAj.js} +1 -1
  17. package/server/{auto-merge-eligibility-DmUQEAws.js → auto-merge-eligibility-is6bTkrA.js} +1 -1
  18. package/server/{auto-spawn-consent-DRgQbl8k.js → auto-spawn-consent-BxXl-3y7.js} +2 -2
  19. package/server/{backend-inventory-CjCALqY9.js → backend-inventory-DsbeKiYY.js} +2 -2
  20. package/server/{backend-inventory-HZnm8K3m.js → backend-inventory-tUXKfgL_.js} +1 -1
  21. package/server/{backlog-auto-trigger-BZ9HqOh5.js → backlog-auto-trigger-EIBVGK3_.js} +2 -2
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-BiGSCyKD.js → checkpoints-C-xh-Mv0.js} +1 -1
  24. package/server/{checkpoints-DEk_xKPI.js → checkpoints-SNuYbtl9.js} +1 -1
  25. package/server/{claude-hooks-provision-DOMp0nce.js → claude-hooks-provision-BGL61BFy.js} +1 -1
  26. package/server/{claude-hooks-provision-Cx-iNW3h.js → claude-hooks-provision-D60ldmh3.js} +1 -1
  27. package/server/{claude-settings-overlay-DX8SS3mU.js → claude-settings-overlay-BKk6aPyn.js} +1 -1
  28. package/server/{claude-settings-overlay-tccrSYWh.js → claude-settings-overlay-Z1wvGWrM.js} +1 -1
  29. package/server/{cli-BOQWA-ux.js → cli-CfYEyYsr.js} +3 -3
  30. package/server/cli-DHZ5Ecrt.js +2 -0
  31. package/server/{closed-issue-reaper-g1xev2lv.js → closed-issue-reaper-DkGIkI3v.js} +1 -1
  32. package/server/{closed-issue-reaper-DnaFCYJk.js → closed-issue-reaper-tjnA5V8Z.js} +3 -3
  33. package/server/{codex-BE1w7ARL.js → codex-BrY7aOvP.js} +2 -2
  34. package/server/{codex-CVOd_JEs.js → codex-vuXHqT53.js} +1 -1
  35. package/server/{conflict-gate-Domf8Fvr.js → conflict-gate-CPbG8VXI.js} +2 -2
  36. package/server/{constants-ZsF6FhcR.js → constants-DEItMRn6.js} +1 -1
  37. package/server/{conversation-compaction-Dm4_bCqZ.js → conversation-compaction-BLDpoKfB.js} +5 -5
  38. package/server/{conversation-compaction-sKyT07L1.js → conversation-compaction-D1aR4ytx.js} +1 -1
  39. package/server/{conversation-delivery-Dn6b4mUU.js → conversation-delivery-C0Q7Ew-t.js} +17 -17
  40. package/server/{conversation-liveness-DJzPiGPO.js → conversation-liveness-DO3e-N73.js} +1 -1
  41. package/server/{conversation-liveness-Cq4TNxqa.js → conversation-liveness-g3nFofTZ.js} +2 -2
  42. package/server/{conversation-pull-requests-Bu30dOQv.js → conversation-pull-requests-VQwME1F1.js} +1 -1
  43. package/server/{conversation-reads-CGepvSWx.js → conversation-reads-0fCsCPQe.js} +8 -8
  44. package/server/{conversation-reads-D-UfsYqf.js → conversation-reads-lMO8cWqw.js} +1 -1
  45. package/server/{conversation-runtime-DA_Famk_.js → conversation-runtime-Bh4Wj05k.js} +1 -1
  46. package/server/{conversations-search-CDvHCyYe.js → conversations-search-CS0COdna.js} +1 -1
  47. package/server/{cpu-psi-BN99YdGz.js → cpu-psi-DvzVl1bx.js} +1 -1
  48. package/server/{daemon-BX8hAPTC.js → daemon-DMVuHx-i.js} +2 -2
  49. package/server/daemon-d62dV_pO.js +2 -0
  50. package/server/{dag-DC0niH7i.js → dag-PPL-MAx0.js} +1 -1
  51. package/server/{dangerous-git-ops-GKdOQbOe.js → dangerous-git-ops-BcSMn_cv.js} +1 -1
  52. package/server/dashboard-db-worker.js +4 -4
  53. package/server/{deacon-swarm-record-4FGgybnL.js → deacon-swarm-record-BenMf1-5.js} +1 -1
  54. package/server/deacon.js +4 -4
  55. package/server/{derived-issue-state-BtoFumna.js → derived-issue-state-BaGJkxQq.js} +2 -2
  56. package/server/{derived-issue-state-DnKs1TXS.js → derived-issue-state-BqhN4lOl.js} +1 -1
  57. package/server/{derived-issue-state-CCHbqKjW.js → derived-issue-state-CmvMPi-R.js} +4 -4
  58. package/server/{derived-issue-state-QLhfZgf5.js → derived-issue-state-Dz7ti1og.js} +2 -2
  59. package/server/{dist-B5cmD5rC.js → dist-B-6_eqmp.js} +1 -1
  60. package/server/dist-rCsp8VVx.js +3 -0
  61. package/server/{dod-C6qNQ8O3.js → dod-BJP9kMFG.js} +1 -1
  62. package/server/{done-preflight-Bu3KGCAV.js → done-preflight-ZQMI79O0.js} +1 -1
  63. package/server/{done-preflight-BvmOQ64R.js → done-preflight-oy6Tja5C.js} +1 -1
  64. package/server/{ensure-devcontainer-HQ3fQD5V.js → ensure-devcontainer-CollbMTo.js} +2 -2
  65. package/server/ensure-devcontainer-bvZTPcBb.js +2 -0
  66. package/server/evict-LT5Wbo6F.js +2 -0
  67. package/server/{evict-Dhzce_bB.js → evict-l0JJZ11s.js} +2 -2
  68. package/server/{feedback-target-C6lpafxM.js → feedback-target-B0XBJvkz.js} +1 -1
  69. package/server/{feedback-target-DmQ249DE.js → feedback-target-BYLtF8vX.js} +3 -3
  70. package/server/{feedback-writer-pF7pA9Ei.js → feedback-writer-XmR1ZtVC.js} +1 -1
  71. package/server/{feedback-writer-DSEPHMwz.js → feedback-writer-g9cmlhQU.js} +1 -1
  72. package/server/{flywheel-Ib4Qp5x6.js → flywheel-C-t-XYUt.js} +3 -3
  73. package/server/{flywheel-merge-order-BjbLhtpF.js → flywheel-merge-order-qRslbYK3.js} +2 -2
  74. package/server/{format-QXO0qqJo.js → format-3trt48Iz.js} +1 -1
  75. package/server/{from-ufsGrQUf.js → from-Cdjxc_Sy.js} +1 -1
  76. package/server/{generation-ship-a14Tkc5B.js → generation-ship-BTyy05vO.js} +1 -1
  77. package/server/{harness-binary-DtPw6bEJ.js → harness-binary-BaN9N-sG.js} +2 -2
  78. package/server/harness-binary-DFBkr1Wg.js +2 -0
  79. package/server/{harness-resolve-BfOivkUY.js → harness-resolve-CimEYcpG.js} +4 -4
  80. package/server/{harness-resolve-PDc4GGnM.js → harness-resolve-DclBRYRh.js} +1 -1
  81. package/server/{herdr-agent-terminals-ffj8Zg3X.js → herdr-agent-terminals-Dm4HnKF7.js} +1 -1
  82. package/server/infer-tracker-BJR_ATzw.js +2 -0
  83. package/server/infer-tracker-CwOO7_gU.js +237 -0
  84. package/server/{issue-lifecycle-BlE7L0r7.js → issue-lifecycle-CmbQlAqW.js} +8 -8
  85. package/server/{issue-lifecycle-Y8IGkADf.js → issue-lifecycle-Dt9AFW70.js} +1 -1
  86. package/server/{issue-pause-9vXZZkOc.js → issue-pause-kvPBItCx.js} +5 -5
  87. package/server/{issue-service-singleton-DxTRf-RV.js → issue-service-singleton-BbERjqoV.js} +1 -1
  88. package/server/{issue-service-singleton-QPDr49TB.js → issue-service-singleton-DwYi9Oie.js} +3 -3
  89. package/server/{kimi-code-AcOc8X0U.js → kimi-code-DNNwP6FT.js} +1 -1
  90. package/server/{label-cleanup-CIoPmmbd.js → label-cleanup-C7weaJlZ.js} +2 -2
  91. package/server/{launch-DSEY_mt2.js → launch-DF_WD2-a.js} +10 -7
  92. package/server/{launch-DCAI36Nq.js → launch-DlClnoCc.js} +1 -1
  93. package/server/{launcher-generator-BofB3FX_.js → launcher-generator-COHAIhyH.js} +2 -2
  94. package/server/{legacy-tldr-cleanup-DJX9V9s4.js → legacy-tldr-cleanup-RqGuveuz.js} +1 -1
  95. package/server/{lifecycle-BT3aegwk.js → lifecycle-BHcU1hPs.js} +4 -4
  96. package/server/{linear-mcp-auth-ChV8Aqu4.js → linear-mcp-auth-C0qzNK0H.js} +1 -1
  97. package/server/{linear-mcp-auth-COqdLkXb.js → linear-mcp-auth-JIDCfEz0.js} +3 -3
  98. package/server/{memory-governor-BQg4GOEF.js → memory-governor-C3T769G6.js} +6 -6
  99. package/server/{merge-BS-9EAg0.js → merge-DaJul9Xt.js} +1 -1
  100. package/server/{merge-agent-CVjeg02H.js → merge-agent-C2UtoeTe.js} +1 -1
  101. package/server/{merge-agent-CkEA7spe.js → merge-agent-CCs-JQhC.js} +10 -10
  102. package/server/{merge-batch-CSWibuAl.js → merge-batch-BBxSLbaz.js} +1 -1
  103. package/server/merge-gate-3O9zdlWW.js +2 -0
  104. package/server/{merge-gate-LOtvWv5K.js → merge-gate-D5zTeaC0.js} +2 -2
  105. package/server/merge-ops-BP9-OIjU.js +2 -0
  106. package/server/{merge-ready-set-C0enElWu.js → merge-ready-set-C5TMtdGy.js} +1 -1
  107. package/server/{merge-ready-set-8yRGoXfN.js → merge-ready-set-DlKHumrb.js} +2 -2
  108. package/server/{merge-train-ClvHbVeP.js → merge-train-BOKRD6nt.js} +1 -1
  109. package/server/{merge-train-CfvTn1fw.js → merge-train-Cx7vXfxi.js} +2 -2
  110. package/server/{merge-train-Cee9LY5p.js → merge-train-Dg5cr8mS.js} +19 -19
  111. package/server/{merge-train-deps-BCvx9OJh.js → merge-train-deps-D1MTGotL.js} +3 -3
  112. package/server/messaging-Cbhf7pAu.js +2 -0
  113. package/server/{multipart-parser-Divdcrf4.js → multipart-parser-fgcPeL-R.js} +2 -2
  114. package/server/node_modules/.package-lock.json +1 -1
  115. package/server/package-lock.json +2 -2
  116. package/server/package.json +1 -1
  117. package/server/{pipeline-BxDHIXwk.js → pipeline-CZPx_h0w.js} +1 -1
  118. package/server/pipeline-membership-BbdiZQ2g.js +171 -0
  119. package/server/pipeline-membership-LZVPTNzz.js +2 -0
  120. package/server/{policy-context-De_w57FT.js → policy-context-CYqNhQra.js} +1 -1
  121. package/server/{policy-context-DlF2pBlT.js → policy-context-CebkQTkr.js} +2 -2
  122. package/server/{preemption-BseBG1Lx.js → preemption-D15-OfS-.js} +3 -3
  123. package/server/{prerequisites-report-D4DsEecP.js → prerequisites-report-BpRfGeIQ.js} +3 -3
  124. package/server/{project-pipelines-BV_6EeMm.js → project-pipelines-C0eawMQd.js} +1 -1
  125. package/server/{project-resource-refresh-queue-Dsha4mgg.js → project-resource-refresh-queue-DmNcMWIW.js} +1 -1
  126. package/server/{project-resource-refresh-queue-BD7xaiwB.js → project-resource-refresh-queue-Dx1QPkGs.js} +13 -173
  127. package/server/public/assets/{abnfDiagram-VCTEODGH-a5JXGj2O.js → abnfDiagram-VCTEODGH-Bkh8Qhhf.js} +1 -1
  128. package/server/public/assets/{ar-SA-G6X2FPQ2-DfwESDRS.js → ar-SA-G6X2FPQ2-Duv-fSqg.js} +1 -1
  129. package/server/public/assets/{architectureDiagram-5GKGNRK7-CNqDlS6j.js → architectureDiagram-5GKGNRK7-vm7gsvBp.js} +1 -1
  130. package/server/public/assets/{az-AZ-76LH7QW2-DcXSBniP.js → az-AZ-76LH7QW2-CqalVsAI.js} +1 -1
  131. package/server/public/assets/{bg-BG-XCXSNQG7-C9L0gaeE.js → bg-BG-XCXSNQG7-KojQTSIf.js} +1 -1
  132. package/server/public/assets/{bn-BD-2XOGV67Q-B53MN52O.js → bn-BD-2XOGV67Q-CGLJg39W.js} +1 -1
  133. package/server/public/assets/{ca-ES-6MX7JW3Y-BTZPNvIz.js → ca-ES-6MX7JW3Y-BG9DUCtc.js} +1 -1
  134. package/server/public/assets/{chunk-EIO257PC-S1ZezR1y.js → chunk-EIO257PC-vUssjuTB.js} +1 -1
  135. package/server/public/assets/{chunk-IMKFNOWR-CFhbID1F.js → chunk-IMKFNOWR-Dy5lrR0k.js} +1 -1
  136. package/server/public/assets/{chunk-SHT3W25Y-vRJiIXR_.js → chunk-SHT3W25Y-B1Ej75VE.js} +1 -1
  137. package/server/public/assets/{chunk-SVP7TREG-D-Pw_X2t.js → chunk-SVP7TREG-BBLmHGKS.js} +1 -1
  138. package/server/public/assets/{chunk-TICWLB2K-DzeVkrx_.js → chunk-TICWLB2K-BYF1_eFX.js} +1 -1
  139. package/server/public/assets/{classDiagram-ZZMXUADV-BYD5DQer.js → classDiagram-ZZMXUADV-BFooIsVI.js} +1 -1
  140. package/server/public/assets/{classDiagram-v2-VYDZK3BY-BYD5DQer.js → classDiagram-v2-VYDZK3BY-BFooIsVI.js} +1 -1
  141. package/server/public/assets/{cs-CZ-2BRQDIVT-CNtIRKDO.js → cs-CZ-2BRQDIVT-B7KdIXZX.js} +1 -1
  142. package/server/public/assets/{cynefinDiagram-5FMLGOSQ-BdxptoBH.js → cynefinDiagram-5FMLGOSQ-B74BPf3L.js} +1 -1
  143. package/server/public/assets/{da-DK-5WZEPLOC-CFH9B_XA.js → da-DK-5WZEPLOC-D4z-FQo3.js} +1 -1
  144. package/server/public/assets/{dagre-GXQ25YYZ-8A4ks-g0.js → dagre-GXQ25YYZ-CzGQ9RBh.js} +1 -1
  145. package/server/public/assets/{de-DE-XR44H4JA-SSAwqM2T.js → de-DE-XR44H4JA-BLHcSSpk.js} +1 -1
  146. package/server/public/assets/{diagram-S7CK7UJ4-BiEABFvq.js → diagram-S7CK7UJ4-BLVIehtN.js} +1 -1
  147. package/server/public/assets/{diagram-UQ7AKVKN-CbAQm8rt.js → diagram-UQ7AKVKN-CWBxQLwX.js} +1 -1
  148. package/server/public/assets/{diagram-VX7I27RA-CX6cTJ6m.js → diagram-VX7I27RA-D-nhHjqI.js} +1 -1
  149. package/server/public/assets/{diagram-Z3DM3KII-CUJMn-73.js → diagram-Z3DM3KII-t-PkDqPd.js} +1 -1
  150. package/server/public/assets/{dist-DB46JHIp.js → dist-7NqkUyWp.js} +4 -4
  151. package/server/public/assets/{ebnfDiagram-PWID7BFC-vIgmpIpC.js → ebnfDiagram-PWID7BFC-BqLhIpq3.js} +1 -1
  152. package/server/public/assets/{el-GR-BZB4AONW-CEWaQ14U.js → el-GR-BZB4AONW-CpB4PJtL.js} +1 -1
  153. package/server/public/assets/{en-B4ZKOASM-DPbmc81o.js → en-B4ZKOASM-BokeIfhD.js} +1 -1
  154. package/server/public/assets/{erDiagram-RLTQ6QDP-Bx76fbpv.js → erDiagram-RLTQ6QDP-CwsmK2oF.js} +1 -1
  155. package/server/public/assets/{es-ES-U4NZUMDT-D98PwSTw.js → es-ES-U4NZUMDT-7pdvQy8R.js} +1 -1
  156. package/server/public/assets/{eu-ES-A7QVB2H4-Covb8Ol-.js → eu-ES-A7QVB2H4-BvMoCige.js} +1 -1
  157. package/server/public/assets/{fa-IR-HGAKTJCU-Dtd-fEqq.js → fa-IR-HGAKTJCU-oqb9ngcA.js} +1 -1
  158. package/server/public/assets/{fi-FI-Z5N7JZ37-hfxveRFy.js → fi-FI-Z5N7JZ37-BWCKhxHc.js} +1 -1
  159. package/server/public/assets/{flowDiagram-HODETNUW-DfUL9mV5.js → flowDiagram-HODETNUW-BFLMpZi8.js} +1 -1
  160. package/server/public/assets/{fr-FR-RHASNOE6-SFarC5-9.js → fr-FR-RHASNOE6-lIqYd1Kh.js} +1 -1
  161. package/server/public/assets/{ganttDiagram-EL5Y4UJY-BWhqn10r.js → ganttDiagram-EL5Y4UJY-_hCoOnvJ.js} +1 -1
  162. package/server/public/assets/{gl-ES-HMX3MZ6V-B5E2hTiL.js → gl-ES-HMX3MZ6V-BuMMBxGa.js} +1 -1
  163. package/server/public/assets/{he-IL-6SHJWFNN-CtPUdyTg.js → he-IL-6SHJWFNN-CASskgj6.js} +1 -1
  164. package/server/public/assets/{hi-IN-IWLTKZ5I-Dno5smSQ.js → hi-IN-IWLTKZ5I-V8xvo9N_.js} +1 -1
  165. package/server/public/assets/{hu-HU-A5ZG7DT2-6fM9o4Vm.js → hu-HU-A5ZG7DT2-Dwz2tW9D.js} +1 -1
  166. package/server/public/assets/{id-ID-SAP4L64H-DqHxJ0od.js → id-ID-SAP4L64H-CsAKnonA.js} +1 -1
  167. package/server/public/assets/image-GAAHSSAO-DlRrB5ro.js +1 -0
  168. package/server/public/assets/{index-BAHYSdai.js → index-uxuGUUZm.js} +9 -9
  169. package/server/public/assets/{infoDiagram-27XIBGKW-B6REiikV.js → infoDiagram-27XIBGKW-Bq35vHxL.js} +1 -1
  170. package/server/public/assets/{ishikawaDiagram-5VMMS53U-CJ4FcDTi.js → ishikawaDiagram-5VMMS53U-BP8VkFPc.js} +1 -1
  171. package/server/public/assets/{it-IT-JPQ66NNP-COf0Mlpu.js → it-IT-JPQ66NNP-yPqYjuhl.js} +1 -1
  172. package/server/public/assets/{ja-JP-DBVTYXUO-CnmSZoYJ.js → ja-JP-DBVTYXUO-SIGkDKhH.js} +1 -1
  173. package/server/public/assets/{kaa-6HZHGXH3-psdaC7_Y.js → kaa-6HZHGXH3-DxnCb5Kc.js} +1 -1
  174. package/server/public/assets/{kab-KAB-ZGHBKWFO-DHcsec5D.js → kab-KAB-ZGHBKWFO-CVCxey_p.js} +1 -1
  175. package/server/public/assets/{kanban-definition-UXKFOSKX-CWOzrzwB.js → kanban-definition-UXKFOSKX-Cj2TVfn0.js} +1 -1
  176. package/server/public/assets/{kk-KZ-P5N5QNE5-ChxI9E6E.js → kk-KZ-P5N5QNE5-M9YAeME3.js} +1 -1
  177. package/server/public/assets/{km-KH-HSX4SM5Z-B75b52bE.js → km-KH-HSX4SM5Z-D3AhWnhV.js} +1 -1
  178. package/server/public/assets/{ko-KR-MTYHY66A-DS6CvLDO.js → ko-KR-MTYHY66A-Or_gIXhD.js} +1 -1
  179. package/server/public/assets/{ku-TR-6OUDTVRD-BS6Z0LpR.js → ku-TR-6OUDTVRD-DzxrabDk.js} +1 -1
  180. package/server/public/assets/{linear-DI0By7Db.js → linear-gEGsxSj1.js} +1 -1
  181. package/server/public/assets/{lt-LT-XHIRWOB4-DB6tYnhK.js → lt-LT-XHIRWOB4-_nyDG8BQ.js} +1 -1
  182. package/server/public/assets/{lv-LV-5QDEKY6T-Gz9wx9bk.js → lv-LV-5QDEKY6T-BuFYWU7T.js} +1 -1
  183. package/server/public/assets/{mindmap-definition-YA3MSWOX-CoXi3FPw.js → mindmap-definition-YA3MSWOX-D1eSwBX7.js} +1 -1
  184. package/server/public/assets/{mr-IN-CRQNXWMA-DmdIEQlN.js → mr-IN-CRQNXWMA-DYDxiULS.js} +1 -1
  185. package/server/public/assets/{my-MM-5M5IBNSE-CEZvJNBx.js → my-MM-5M5IBNSE-CESrtCUE.js} +1 -1
  186. package/server/public/assets/{nb-NO-T6EIAALU-CE-qhpnk.js → nb-NO-T6EIAALU-D89JFLrD.js} +1 -1
  187. package/server/public/assets/{nl-NL-IS3SIHDZ-CKhfMYRs.js → nl-NL-IS3SIHDZ-B5fTIJ0f.js} +1 -1
  188. package/server/public/assets/{nn-NO-6E72VCQL-_Q0hO_YM.js → nn-NO-6E72VCQL-BlZxpLDl.js} +1 -1
  189. package/server/public/assets/{oc-FR-POXYY2M6-BP_GWpdw.js → oc-FR-POXYY2M6-c2a5nnpF.js} +1 -1
  190. package/server/public/assets/{pa-IN-N4M65BXN-ImDjqKw6.js → pa-IN-N4M65BXN-DV1xiyB6.js} +1 -1
  191. package/server/public/assets/{pegDiagram-XKGWAZYB-D1tXITHn.js → pegDiagram-XKGWAZYB-BVNV8u8v.js} +1 -1
  192. package/server/public/assets/percentages-BXMCSKIN-CCSzzLCW.js +1 -0
  193. package/server/public/assets/{pieDiagram-E7YTZNPT-DNCuFpai.js → pieDiagram-E7YTZNPT-DgQFaD11.js} +1 -1
  194. package/server/public/assets/{pl-PL-T2D74RX3-yCxLpvKz.js → pl-PL-T2D74RX3-BYEPnwpR.js} +1 -1
  195. package/server/public/assets/{prod-DsNBMWxO.js → prod-DWloE-Tf.js} +7 -7
  196. package/server/public/assets/{pt-BR-5N22H2LF-CqNEOY9w.js → pt-BR-5N22H2LF-VzuifI42.js} +1 -1
  197. package/server/public/assets/{pt-PT-UZXXM6DQ-DBw4f0lS.js → pt-PT-UZXXM6DQ-Grmv30e9.js} +1 -1
  198. package/server/public/assets/{quadrantDiagram-AXDQQJYC-Bci1oSYb.js → quadrantDiagram-AXDQQJYC-431IKFV-.js} +1 -1
  199. package/server/public/assets/{railroadDiagram-O6MQD6OU-ikFAVJUY.js → railroadDiagram-O6MQD6OU-Borx2fG3.js} +1 -1
  200. package/server/public/assets/{requirementDiagram-BXWQKSXE-DKTszgVJ.js → requirementDiagram-BXWQKSXE-B_ifxbXC.js} +1 -1
  201. package/server/public/assets/{ro-RO-JPDTUUEW-BqgARQks.js → ro-RO-JPDTUUEW-BCcW97bo.js} +1 -1
  202. package/server/public/assets/{ru-RU-B4JR7IUQ-Q6Ic_n8I.js → ru-RU-B4JR7IUQ-jud8t1VI.js} +1 -1
  203. package/server/public/assets/{sankeyDiagram-P5KCCOFB-DWatmen5.js → sankeyDiagram-P5KCCOFB-BLpv-ZD0.js} +1 -1
  204. package/server/public/assets/{sequenceDiagram-WJ2MYXX4-J7gSm17h.js → sequenceDiagram-WJ2MYXX4-DAtQj3zB.js} +1 -1
  205. package/server/public/assets/{si-LK-N5RQ5JYF-ZVr3vkVm.js → si-LK-N5RQ5JYF-CslAaa-5.js} +1 -1
  206. package/server/public/assets/{sk-SK-C5VTKIMK-BSQsNJSS.js → sk-SK-C5VTKIMK-C9NvC7DU.js} +1 -1
  207. package/server/public/assets/{sl-SI-NN7IZMDC-CP8Z1otw.js → sl-SI-NN7IZMDC-Cy3n7hfM.js} +1 -1
  208. package/server/public/assets/{stateDiagram-D77RDMKH-yMPWEYtq.js → stateDiagram-D77RDMKH-oH2hEoN4.js} +1 -1
  209. package/server/public/assets/{stateDiagram-v2-MP3YSRHH-F5EGnPR_.js → stateDiagram-v2-MP3YSRHH-CIbAgOVy.js} +1 -1
  210. package/server/public/assets/subset-shared.chunk-Dba6DKdi.js +1 -0
  211. package/server/public/assets/{subset-worker.chunk-LpMaC50m.js → subset-worker.chunk-D5tg61BR.js} +1 -1
  212. package/server/public/assets/{sv-SE-XGPEYMSR-D8mOTDra.js → sv-SE-XGPEYMSR-DYf-SlR7.js} +1 -1
  213. package/server/public/assets/{swimlanes-42K2YHIH-JPQx_4qn.js → swimlanes-42K2YHIH-Do3SoYnq.js} +1 -1
  214. package/server/public/assets/{swimlanesDiagram-VR7AAH4N-CtNlg2el.js → swimlanesDiagram-VR7AAH4N-BYc814ml.js} +1 -1
  215. package/server/public/assets/{ta-IN-2NMHFXQM-ih9dhd8j.js → ta-IN-2NMHFXQM-iGF2eo5t.js} +1 -1
  216. package/server/public/assets/{th-TH-HPSO5L25-BhmRG3ne.js → th-TH-HPSO5L25-CGfN7mnR.js} +1 -1
  217. package/server/public/assets/{timeline-definition-24CTP7MA-lLCs5kg1.js → timeline-definition-24CTP7MA-DUI_xi15.js} +1 -1
  218. package/server/public/assets/{tr-TR-DEFEU3FU-B5teU_eL.js → tr-TR-DEFEU3FU-C1btuwU_.js} +1 -1
  219. package/server/public/assets/{uk-UA-QMV73CPH-CsUaR7s6.js → uk-UA-QMV73CPH-DLoTLQOx.js} +1 -1
  220. package/server/public/assets/{vennDiagram-4TSXK5OY-CsO1kQiW.js → vennDiagram-4TSXK5OY-DioINyLf.js} +1 -1
  221. package/server/public/assets/{vi-VN-M7AON7JQ-qfVnGZto.js → vi-VN-M7AON7JQ-CBwbwrm4.js} +1 -1
  222. package/server/public/assets/{wardleyDiagram-VM6X3IG4-C2ajkJrW.js → wardleyDiagram-VM6X3IG4-gd0gikXq.js} +1 -1
  223. package/server/public/assets/{xychartDiagram-S5SC5T6Z-oJOShKfW.js → xychartDiagram-S5SC5T6Z-Bx86zaAl.js} +1 -1
  224. package/server/public/assets/{zh-CN-LNUGB5OW-vDDEdkjv.js → zh-CN-LNUGB5OW-BcRNKoOf.js} +1 -1
  225. package/server/public/assets/{zh-HK-E62DVLB3-Fcvngm0F.js → zh-HK-E62DVLB3-Cu_ESPq6.js} +1 -1
  226. package/server/public/assets/{zh-TW-RAJ6MFWO-BCuionzc.js → zh-TW-RAJ6MFWO-CHnOC09j.js} +1 -1
  227. package/server/public/index.html +1 -1
  228. package/server/queries-qqOXiaNr.js +2 -0
  229. package/server/{ready-timeout-failure-C45bsjI2.js → ready-timeout-failure-BwzL5OKo.js} +2 -2
  230. package/server/{rebuild-stack-uaOTI93a.js → rebuild-stack-BtpTM6VR.js} +3 -3
  231. package/server/rebuild-stack-FjChJ9yi.js +3 -0
  232. package/server/{release-engine-C5d610mi.js → release-engine-Y29fEWE7.js} +2 -2
  233. package/server/{release-set-BFsZCA0J.js → release-set-BacZ1N_f.js} +1 -1
  234. package/server/{remote-xutkDygz.js → remote-BUaz6B3t.js} +2 -2
  235. package/server/{remote-qoNG2iir.js → remote-Day75qqe.js} +2 -2
  236. package/server/{remote-agents-CJYoW12q.js → remote-agents-BlqgB9dc.js} +1 -1
  237. package/server/{remote-agents-9UKtOTeT.js → remote-agents-D6G8Z0T_.js} +3 -3
  238. package/server/{requirements-tNHrKKgl.js → requirements-DM6TvCsN.js} +1 -1
  239. package/server/{requirements-COv0qjkH.js → requirements-GXRVCopE.js} +1 -1
  240. package/server/{resolver-Did8ZX_j.js → resolver-D6SskqKx.js} +1 -1
  241. package/server/{resolver-CAP4HecA.js → resolver-TNBoD1Lh.js} +2 -2
  242. package/server/resume-BvqNBf96.js +2 -0
  243. package/server/{review-agent-C6_zRhE-.js → review-agent-BS5R2OP1.js} +17 -17
  244. package/server/{review-agent-CTNzg6ag.js → review-agent-D7b3qt2U.js} +2 -2
  245. package/server/{review-artifacts-DFXkCDKn.js → review-artifacts-CwnJeObv.js} +2 -2
  246. package/server/{review-context-2LAh97tE.js → review-context-BXW1m3vK.js} +1 -1
  247. package/server/{review-convoy-BE7hwRKU.js → review-convoy-7EL6lofH.js} +9 -9
  248. package/server/{review-convoy-D4ddjcsE.js → review-convoy-BNYVD3y4.js} +1 -1
  249. package/server/{review-monitor-BRSWLITW.js → review-monitor-BoxMGLwm.js} +1 -1
  250. package/server/{review-request-route-fgWQMyrT.js → review-request-route-CMR7xtJK.js} +2 -2
  251. package/server/{review-rounds-wYEYRB2e.js → review-rounds-BrPtQK9g.js} +1 -1
  252. package/server/{review-rounds-C8S_nYSs.js → review-rounds-CcXAeFDu.js} +1 -1
  253. package/server/{review-synthesis-recovery-DKnQIwwI.js → review-synthesis-recovery-BVuPGjZM.js} +7 -7
  254. package/server/{review-verdict-feedback-CGHG6ZkU.js → review-verdict-feedback-Blt-Rdbt.js} +5 -5
  255. package/server/{rollup-Bm6X7jIb.js → rollup-8hDNviZE.js} +2 -2
  256. package/server/{rollup-C9m7LkEy.js → rollup-Cf7vF55-.js} +1 -1
  257. package/server/{runtime-command-D0JVmWKZ.js → runtime-command-0C3oTZGN.js} +5 -5
  258. package/server/runtime-command-D91mhWSL.js +2 -0
  259. package/server/runtimes-B7zJfZXo.js +6 -0
  260. package/server/{runtimes-DUvSjnkK.js → runtimes-CiPufB1e.js} +9 -9
  261. package/server/{sequencer-agent-BGwo_hJY.js → sequencer-agent-C_RaZl3z.js} +4 -4
  262. package/server/server.js +164 -249
  263. package/server/{service-DKHnfIwb.js → service-Bn8Zn0WW.js} +36 -36
  264. package/server/{session-fork-CaUxe-sI.js → session-fork-CKpcJBY3.js} +1 -1
  265. package/server/{settings-5VVqbwVL.js → settings-DNxbkedU.js} +1 -1
  266. package/server/settings-DeJQpBJZ.js +2 -0
  267. package/server/{ship-log-CfuRUZaI.js → ship-log-DhPEIcrG.js} +1 -1
  268. package/server/{ship-log-CRk1pL0V.js → ship-log-Di-_dljC.js} +1 -1
  269. package/server/{smart-compaction-BA2YGYS7.js → smart-compaction-CVIjvKaC.js} +2 -2
  270. package/server/{smart-compaction-ni-rHctf.js → smart-compaction-mz6E9fph.js} +1 -1
  271. package/server/{spawn-planning-session-Dp2FsjWk.js → spawn-planning-session-D9vDkQVz.js} +2 -2
  272. package/server/{spawn-planning-session-38jno6va.js → spawn-planning-session-DEr2g-vN.js} +9 -9
  273. package/server/{specialist-completion-DfoJQPHz.js → specialist-completion-ThQ5mCYp.js} +1 -1
  274. package/server/{specialists-DCUqID3m.js → specialists--u4Nwkwy.js} +1 -1
  275. package/server/{specialists-DPjE2JBt.js → specialists-BsiHHXL7.js} +51 -51
  276. package/server/{specialists-Dhqnld3A.js → specialists-C5WxILVV.js} +9 -9
  277. package/server/{specialists-BOMH7wlq.js → specialists-ChpiIuS7.js} +1 -1
  278. package/server/{src-DEWY9s_G.js → src-Bjf3_TJI.js} +7 -7
  279. package/server/{src-CUtp-SJF.js → src-Dc_h_m1_.js} +3 -3
  280. package/server/{strike-completion-OPcaVqFd.js → strike-completion-CIQA9E-C.js} +2 -2
  281. package/server/strike-completion-PiFiEtoo.js +2 -0
  282. package/server/{subagents-DNw4YyMa.js → subagents-P7wfucdb.js} +2 -2
  283. package/server/{substrate-stats-DuuksQHp.js → substrate-stats-0PCKLsMv.js} +18 -18
  284. package/server/summary-fork--LXvyQuT.js +3 -0
  285. package/server/{summary-fork-BfuGi-S2.js → summary-fork-DQGtPP_x.js} +5 -5
  286. package/server/supervisor-DRm9uLsZ.js +2 -0
  287. package/server/{supervisor-CWskvoz3.js → supervisor-De-GYL91.js} +1 -1
  288. package/server/{sync-startup-gate-Cz-taE5H.js → sync-startup-gate-BfacT-bh.js} +1 -1
  289. package/server/{system-health-service-7C9fafx7.js → system-health-service-CjdWgKic.js} +3 -3
  290. package/server/{system-health-service-SB_Kjxqf.js → system-health-service-Cqpct_Qo.js} +1 -1
  291. package/server/{system-prerequisites-N5usDkOl.js → system-prerequisites-Caf37eBm.js} +2 -2
  292. package/server/{system-prerequisites-CJzu1FQH.js → system-prerequisites-G9se0Lms.js} +1 -1
  293. package/server/{teardown-workspace-BOnPHDQi.js → teardown-workspace-Dvwa4r5M.js} +7 -7
  294. package/server/termination-DYiDx_bB.js +2 -0
  295. package/server/{test-agent-queue-D3koTErW.js → test-agent-queue-BZ57BL-z.js} +3 -3
  296. package/server/{test-verdict-DcQHIB36.js → test-verdict-DoCOnudE.js} +1 -1
  297. package/server/{test-verdict-D5MJ__S5.js → test-verdict-XI4egwYk.js} +1 -1
  298. package/server/{token-BXOsGOq0.js → token-BVSQ0ZbH.js} +1 -1
  299. package/server/{transcript-turn-DxkkFudJ.js → transcript-turn-yL1_qVmT.js} +1 -1
  300. package/server/{types-D4H9A_IK.js → types-8Bdo_m9Z.js} +1 -1
  301. package/server/{uat-train-qJFsN-X4.js → uat-train-BI6lNv6X.js} +11 -11
  302. package/server/{uat-train-C3g4eTwu.js → uat-train-BqMuW417.js} +1 -1
  303. package/server/{validation-BX4n3p5b.js → validation-B0CMIi5c.js} +2 -2
  304. package/server/{validation-C1j7--xs.js → validation-UgpT2GVW.js} +1 -1
  305. package/server/{verification-escalation-BOuG6ixX.js → verification-escalation-8_JfF7-z.js} +3 -3
  306. package/server/{verification-escalation-C76ZbMod.js → verification-escalation-DAjaXHwo.js} +1 -1
  307. package/server/{verification-runner-BMtIaVjU.js → verification-runner-D0DG7ixm.js} +10 -10
  308. package/server/{verification-runner-C-sxcxTO.js → verification-runner-D8-ijYmm.js} +2 -2
  309. package/server/{vtt-parser-DSX4wASE.js → vtt-parser-uNggfu87.js} +1 -1
  310. package/server/{work-agent-prompt-p9ir8Hid.js → work-agent-prompt-BNUi27LZ.js} +2 -2
  311. package/server/workflows-Dr-Yo76E.js +2 -0
  312. package/server/{workflows-DzA62y5W.js → workflows-kIv_z7zJ.js} +8 -8
  313. package/server/{workspace-manager-Nljndsty.js → workspace-manager-D0auAuId.js} +2 -2
  314. package/server/{workspace-manager-yEOe-AK7.js → workspace-manager-t2ylzCn0.js} +2 -2
  315. package/server/{workspaces-DVWUbrua.js → workspaces-C7sOgLNZ.js} +42 -42
  316. package/server/{worktree-ops-BvwkJJ--.js → worktree-ops-Cenxxhk2.js} +1 -1
  317. package/server/{worktree-ops-DzDaxzI6.js → worktree-ops-D_IXGBtP.js} +8 -8
  318. package/server/activity-H6Jf6jYF.js +0 -2
  319. package/server/agent-pane-io-BmNbvGUo.js +0 -2
  320. package/server/archive-planning-BJck5ngN.js +0 -2
  321. package/server/cli-DVDU4QF2.js +0 -2
  322. package/server/daemon-CWmWlc4E.js +0 -2
  323. package/server/dist-BGSAS-U9.js +0 -3
  324. package/server/ensure-devcontainer-C_OTsIz6.js +0 -2
  325. package/server/evict-CgFggY65.js +0 -2
  326. package/server/harness-binary-CF3OHJwR.js +0 -2
  327. package/server/merge-gate-Bq6XDCW9.js +0 -2
  328. package/server/merge-ops-C2DJ5UJh.js +0 -2
  329. package/server/messaging-CKpa4quh.js +0 -2
  330. package/server/public/assets/image-GAAHSSAO-CFdI_QVJ.js +0 -1
  331. package/server/public/assets/percentages-BXMCSKIN-BzJ4SOUv.js +0 -1
  332. package/server/public/assets/subset-shared.chunk-Crnl6u-o.js +0 -1
  333. package/server/queries-XNzQnDjP.js +0 -2
  334. package/server/rebuild-stack-CJBh6Pa6.js +0 -3
  335. package/server/resume-BRxpAyj3.js +0 -2
  336. package/server/runtime-command-BkQQs0N2.js +0 -2
  337. package/server/runtimes-D68npgJJ.js +0 -6
  338. package/server/settings-CFLNK2bY.js +0 -2
  339. package/server/strike-completion-DyPF_uhD.js +0 -2
  340. package/server/summary-fork-Dm46AXqo.js +0 -3
  341. package/server/supervisor-daYV0xlI.js +0 -2
  342. package/server/termination-DTOwIt3S.js +0 -2
  343. package/server/workflows-Dp8qhcha.js +0 -2
  344. /package/server/{merge-rebase-Cf3Dr76u.js → merge-rebase-D1nUZmH_.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@overdeck/desktop",
3
- "version": "0.65.0",
3
+ "version": "0.66.0",
4
4
  "description": "Overdeck Command Deck — AI agent monitoring desktop app",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -59,4 +59,4 @@ function extractACFromDocument(doc) {
59
59
  //#endregion
60
60
  export { getXBriefACStatus as n, extractACFromDocument as t };
61
61
 
62
- //# sourceMappingURL=acceptance-criteria-BgED6Izb.js.map
62
+ //# sourceMappingURL=acceptance-criteria-CNfqZWHE.js.map
@@ -0,0 +1,2 @@
1
+ import { r as getLatestSessionId } from "./activity-h2Q-pMa7.js";
2
+ export { getLatestSessionId };
@@ -6,10 +6,10 @@ import { a as init_agent_state_read, b as init_runtime_state, n as getAgentDir,
6
6
  import { t as init_behavior } from "./behavior-CGx3qOPV.js";
7
7
  import { t as claudeProjectDir } from "./claude-code-D1t9sdHM.js";
8
8
  import { c as findLatestRollout, s as extractThreadIdFromRollout, t as codexAgentHome } from "./codex-CVdzfsKh.js";
9
- import { d as isRuntimeAgentAlive } from "./codex-BE1w7ARL.js";
9
+ import { d as isRuntimeAgentAlive } from "./codex-BrY7aOvP.js";
10
10
  import { n as parseOhmypiSessionSync } from "./ohmypi-parser-TvZ1wLVj.js";
11
- import { a as prepareHarnessLaunch } from "./harness-binary-DtPw6bEJ.js";
12
- import { n as generateLauncherScript } from "./launcher-generator-BofB3FX_.js";
11
+ import { a as prepareHarnessLaunch } from "./harness-binary-BaN9N-sG.js";
12
+ import { n as generateLauncherScript } from "./launcher-generator-COHAIhyH.js";
13
13
  import { n as resolveEffort } from "./resolve-effort-CJ9JcWwm.js";
14
14
  import { a as writeOhmypiCommandSync, i as ohmypiFifoPaths, n as createOhmypiFifo, r as destroyOhmypiFifoSync, t as OhmypiNotReady } from "./ohmypi-fifo-CTqrxY7Z.js";
15
15
  import { join } from "node:path";
@@ -661,4 +661,4 @@ function getLatestSessionId(agentId, recoveryDeps) {
661
661
  //#endregion
662
662
  export { resolveClaudeSessionRecovery as a, OhmypiRuntimeSync as c, getSessionId as i, OhmypiSpawnTimeout as l, getActivity as n, resolveLatestSessionId as o, getLatestSessionId as r, saveSessionId as s, appendActivity as t, createOhmypiRuntimeSync as u };
663
663
 
664
- //# sourceMappingURL=activity-CVRFYPg-.js.map
664
+ //# sourceMappingURL=activity-h2Q-pMa7.js.map
@@ -1,5 +1,6 @@
1
1
  import { n as getHerdrApiClient, r as init_herdr_api } from "./herdr-api-CA02u4aK.js";
2
2
  import { Effect } from "effect";
3
+ import { stripVTControlCharacters } from "node:util";
3
4
  //#region ../../lib/terminal-backends/agent-pane-io.ts
4
5
  /**
5
6
  * Read an agent's pane, and key raw input into a Herdr pane, through the
@@ -22,7 +23,7 @@ init_herdr_api();
22
23
  * tell "the screen is empty" from "the screen could not be read".
23
24
  */
24
25
  async function readAgentPaneText(agentId, lines, backend, source = "recent") {
25
- const { resolveLaunchBackend } = await import("./launch-DCAI36Nq.js");
26
+ const { resolveLaunchBackend } = await import("./launch-DlClnoCc.js");
26
27
  if ((backend ?? await resolveLaunchBackend()).name !== "herdr") {
27
28
  const { capturePane } = await import("./tmux-DUse6dz9.js");
28
29
  return await capturePane(agentId, lines);
@@ -40,7 +41,7 @@ async function readAgentPaneText(agentId, lines, backend, source = "recent") {
40
41
  * is `has-session`, as before.
41
42
  */
42
43
  async function probeAgentPane(agentId, backend) {
43
- const { resolveLaunchBackend } = await import("./launch-DCAI36Nq.js");
44
+ const { resolveLaunchBackend } = await import("./launch-DlClnoCc.js");
44
45
  if ((backend ?? await resolveLaunchBackend()).name !== "herdr") {
45
46
  const { sessionExists } = await import("./tmux-DUse6dz9.js");
46
47
  return await Effect.runPromise(sessionExists(agentId)) ? "present" : "gone";
@@ -86,7 +87,7 @@ async function sendHerdrPaneKeys(paneId, tmuxKeys, api = getHerdrApiClient()) {
86
87
  * `capturePane` and `sendKeysAsync`.
87
88
  */
88
89
  async function resolveAgentPaneIo(agentId, backend) {
89
- const { resolveLaunchBackend } = await import("./launch-DCAI36Nq.js");
90
+ const { resolveLaunchBackend } = await import("./launch-DlClnoCc.js");
90
91
  if ((backend ?? await resolveLaunchBackend()).name === "herdr") {
91
92
  const { findHerdrAgentPane, readHerdrPaneText } = await import("./herdr-j7n-0xw2.js");
92
93
  const pane = await findHerdrAgentPane(agentId);
@@ -103,7 +104,44 @@ async function resolveAgentPaneIo(agentId, backend) {
103
104
  sendKey: (key) => sendKeysAsync(agentId, key, "input-target")
104
105
  };
105
106
  }
107
+ /** How long a refusal waits for the screen before it reports without it. */
108
+ const BLOCKED_SCREEN_READ_MS = 3e3;
109
+ const BLOCKED_EXCERPT_LINES = 6;
110
+ const BLOCKED_EXCERPT_CHARS = 240;
111
+ /**
112
+ * The last few non-empty lines of a blocked agent's screen, flattened to one
113
+ * bounded line: control sequences and box-drawing borders removed, lines joined
114
+ * with ` / `, and the TAIL kept when it is too long (a dialog's options and
115
+ * footer are at the bottom). Empty when nothing readable is left.
116
+ */
117
+ function blockedDialogExcerpt(screen) {
118
+ const excerpt = stripVTControlCharacters(screen).split(/\r?\n/).map((line) => line.replace(/[\u2500-\u257F]/g, " ").replace(/\s+/g, " ").trim()).filter((line) => line.length > 0).slice(-BLOCKED_EXCERPT_LINES).join(" / ");
119
+ return excerpt.length > BLOCKED_EXCERPT_CHARS ? `…${excerpt.slice(-(BLOCKED_EXCERPT_CHARS - 1))}` : excerpt;
120
+ }
121
+ /**
122
+ * The failure text for a Herdr prompt refusal. `agent_blocked` means the agent
123
+ * sits at an approval or question dialog, which only keys can answer, so the
124
+ * text says so and quotes the screen. The instruction comes first: the
125
+ * composer shows one ellipsized line with the whole text on hover. Reading the
126
+ * screen is bounded and best-effort; a failed read still names the dialog.
127
+ */
128
+ async function describeHerdrRefusal(reason, paneId) {
129
+ if (reason !== "agent_blocked") return `refused: ${reason}`;
130
+ const hint = "refused: agent_blocked — the agent is waiting at a dialog; open the Terminal tab to answer it";
131
+ let timer;
132
+ try {
133
+ const { readHerdrPaneText } = await import("./herdr-j7n-0xw2.js");
134
+ const excerpt = blockedDialogExcerpt(await Promise.race([readHerdrPaneText(paneId, 40, "visible"), new Promise((resolve) => {
135
+ timer = setTimeout(() => resolve(""), BLOCKED_SCREEN_READ_MS);
136
+ })]));
137
+ return excerpt ? `${hint}: "${excerpt}"` : hint;
138
+ } catch {
139
+ return hint;
140
+ } finally {
141
+ if (timer) clearTimeout(timer);
142
+ }
143
+ }
106
144
  //#endregion
107
- export { sendHerdrPaneKeys as i, readAgentPaneText as n, resolveAgentPaneIo as r, probeAgentPane as t };
145
+ export { resolveAgentPaneIo as a, readAgentPaneText as i, describeHerdrRefusal as n, sendHerdrPaneKeys as o, probeAgentPane as r, blockedDialogExcerpt as t };
108
146
 
109
- //# sourceMappingURL=agent-pane-io-8U_dsHCf.js.map
147
+ //# sourceMappingURL=agent-pane-io-CXPX0Kq3.js.map
@@ -0,0 +1,2 @@
1
+ import { i as readAgentPaneText, o as sendHerdrPaneKeys, r as probeAgentPane } from "./agent-pane-io-CXPX0Kq3.js";
2
+ export { probeAgentPane, readAgentPaneText, sendHerdrPaneKeys };
@@ -2,7 +2,7 @@ import { An as init_src, Ir as indexPanesByAgentKey, or as INITIAL_READ_MODEL_ST
2
2
  import { a as init_event_store, i as initEventStore } from "./event-store-C2bwt7eZ.js";
3
3
  import { n as appendSessionIdToHistory, o as init_session_history } from "./session-history-CcAYhYRv.js";
4
4
  import { C as getRuntimeSnapshot$1, E as setAgentRuntimeMirror, T as markAgentStateServiceInProcess, w as init_agent_runtime_mirror } from "./agent-state-read-DU7FNlQV.js";
5
- import { f as init_backend_inventory, l as getBackendPanes } from "./backend-inventory-CjCALqY9.js";
5
+ import { f as init_backend_inventory, l as getBackendPanes } from "./backend-inventory-DsbeKiYY.js";
6
6
  import { Context, Effect, Layer, SubscriptionRef } from "effect";
7
7
  //#region services/agent-state-service.ts
8
8
  /**
@@ -163,4 +163,4 @@ function applyEventToRef(ref, ev) {
163
163
  //#endregion
164
164
  export { mergeRuntimeBySequence as a, getRuntimeSnapshot as i, AgentStateServiceLive as n, observeSessionIndexEvent as o, activityForPaneState as r, seedRuntimeFromPanes as s, AgentStateService as t };
165
165
 
166
- //# sourceMappingURL=agent-state-service-CZjmcB3_.js.map
166
+ //# sourceMappingURL=agent-state-service-CJB8_8Bp.js.map
@@ -1,2 +1,2 @@
1
- import { a as mergeRuntimeBySequence, i as getRuntimeSnapshot, n as AgentStateServiceLive, o as observeSessionIndexEvent, r as activityForPaneState, s as seedRuntimeFromPanes, t as AgentStateService } from "./agent-state-service-CZjmcB3_.js";
1
+ import { a as mergeRuntimeBySequence, i as getRuntimeSnapshot, n as AgentStateServiceLive, o as observeSessionIndexEvent, r as activityForPaneState, s as seedRuntimeFromPanes, t as AgentStateService } from "./agent-state-service-CJB8_8Bp.js";
2
2
  export { AgentStateService, AgentStateServiceLive, activityForPaneState, getRuntimeSnapshot, mergeRuntimeBySequence, observeSessionIndexEvent, seedRuntimeFromPanes };
@@ -58,4 +58,4 @@ function buildConfirmedDeadAgentEvents(agentId, state, now = () => (/* @__PURE__
58
58
  //#endregion
59
59
  export { buildConfirmedDeadAgentEvents as t };
60
60
 
61
- //# sourceMappingURL=agent-status-events-HU33uOJc.js.map
61
+ //# sourceMappingURL=agent-status-events-DfYAcfpo.js.map
@@ -1,7 +1,7 @@
1
1
  import { _ as waitForReadySignal, d as clearReadySignal, g as waitForAgentIdle, h as resolveAgentTarget, i as getAgentStateFilePath, m as normalizeAgentId, n as getAgentDir, p as isQualifiedAgentId, r as getAgentState, u as isRole, v as getAgentRuntimeState, x as saveAgentRuntimeState, y as getAgentRuntimeStateSync } from "./agent-state-read-DU7FNlQV.js";
2
2
  import { A as setAgentYielded, C as recordAgentFailure, D as saveAgentState, E as resetAgentFailureCount, M as writeAgentStateJson, O as saveAgentStateSync, b as markAgentStoppedState, g as isAgentTroubled, h as isAgentPaused, j as wipeAgentStateDirs, k as setAgentPaused, l as clearAgentTroubled, n as SESSION_EXITED_BEFORE_KICKOFF, o as clearAgentPaused, r as __testInternals, t as GOVERNOR_SLOT_PAUSE_REASON_PREFIX, u as clearYieldForResume, x as markAgentTroubled, y as markAgentRunningState } from "./agent-state-e9n26qYW.js";
3
- import { i as getSessionId, n as getActivity, r as getLatestSessionId, s as saveSessionId, t as appendActivity } from "./activity-CVRFYPg-.js";
4
- import { $ as stopAgentSync, Ct as assertWorkspaceStackHealthyForSpawn, Dt as transitionIssueToInReview, E as messageAgent, Et as transitionIssueToInProgress, Ft as decideSupervisorForWorkAgent, It as dismissDevChannelsDialog, Mt as buildDefaultResumeContinueMessage, N as spawnAgent, Nt as buildResumeContinueMessage, P as spawnRun, Pt as decideChannelsForWorkAgent, Q as stopAgent, Rt as writeChannelsBridgeMcpConfig, Tt as retrieveSpawnTimeMemoryContext, _t as deliverMessageWithTranscriptConfirmation, a as restartAgent, at as warnOnBareNumericIssueIds, b as resumeAgent, gt as deliverInitialPromptWithRetry, ht as deliverAgentPermissionDecision, i as resolveRoutedSpawnModel, it as listRunningAgentsSync, mt as deliverAgentMessage, n as detectCrashedAgents, nt as listAgentStates, r as recoverAgent, rt as listRunningAgents, t as autoRecoverAgents, tt as dropLegacyAgentStatesMissingRoleAsync, vt as setAgentDeliveryMethod, wt as buildAgentLaunchConfig, y as buildCompactRecoverySeed } from "./agents-CKFhKqJp.js";
3
+ import { i as getSessionId, n as getActivity, r as getLatestSessionId, s as saveSessionId, t as appendActivity } from "./activity-h2Q-pMa7.js";
4
+ import { $ as stopAgentSync, Ct as assertWorkspaceStackHealthyForSpawn, Dt as transitionIssueToInReview, E as messageAgent, Et as transitionIssueToInProgress, Ft as decideSupervisorForWorkAgent, It as dismissDevChannelsDialog, Mt as buildDefaultResumeContinueMessage, N as spawnAgent, Nt as buildResumeContinueMessage, P as spawnRun, Pt as decideChannelsForWorkAgent, Q as stopAgent, Rt as writeChannelsBridgeMcpConfig, Tt as retrieveSpawnTimeMemoryContext, _t as deliverMessageWithTranscriptConfirmation, a as restartAgent, at as warnOnBareNumericIssueIds, b as resumeAgent, gt as deliverInitialPromptWithRetry, ht as deliverAgentPermissionDecision, i as resolveRoutedSpawnModel, it as listRunningAgentsSync, mt as deliverAgentMessage, n as detectCrashedAgents, nt as listAgentStates, r as recoverAgent, rt as listRunningAgents, t as autoRecoverAgents, tt as dropLegacyAgentStatesMissingRoleAsync, vt as setAgentDeliveryMethod, wt as buildAgentLaunchConfig, y as buildCompactRecoverySeed } from "./agents-DebP6rx9.js";
5
5
  import { c as determineModel, d as getProviderTmuxFlags, l as getProviderEnvForModel, o as buildCavemanExports, s as buildSpawnEnvForModel, u as getProviderExportsForModel } from "./claude-permissions-BT90X1o5.js";
6
- import { f as injectPiConversationMemory, i as getAgentRuntimeBaseCommand, l as getProviderAuthMode, m as roleAgentDefinitionPath, n as describeOhmypiSpawnFailure, t as OHMYPI_AGENT_READY_TIMEOUT_SECONDS, u as getRoleRuntimeBaseCommand, v as waitForPromptReady } from "./runtime-command-D0JVmWKZ.js";
6
+ import { f as injectPiConversationMemory, i as getAgentRuntimeBaseCommand, l as getProviderAuthMode, m as roleAgentDefinitionPath, n as describeOhmypiSpawnFailure, t as OHMYPI_AGENT_READY_TIMEOUT_SECONDS, u as getRoleRuntimeBaseCommand, v as waitForPromptReady } from "./runtime-command-0C3oTZGN.js";
7
7
  export { GOVERNOR_SLOT_PAUSE_REASON_PREFIX, OHMYPI_AGENT_READY_TIMEOUT_SECONDS, SESSION_EXITED_BEFORE_KICKOFF, __testInternals, appendActivity, assertWorkspaceStackHealthyForSpawn, autoRecoverAgents, buildAgentLaunchConfig, buildCavemanExports, buildCompactRecoverySeed, buildDefaultResumeContinueMessage, buildResumeContinueMessage, buildSpawnEnvForModel, clearAgentPaused, clearAgentTroubled, clearReadySignal, clearYieldForResume, decideChannelsForWorkAgent, decideSupervisorForWorkAgent, deliverAgentMessage, deliverAgentPermissionDecision, deliverInitialPromptWithRetry, deliverMessageWithTranscriptConfirmation as deliverResumeMessageWithTranscriptConfirmation, describeOhmypiSpawnFailure, detectCrashedAgents, determineModel, dismissDevChannelsDialog, dropLegacyAgentStatesMissingRoleAsync, getActivity, getAgentDir, getAgentRuntimeBaseCommand, getAgentRuntimeState, getAgentRuntimeStateSync, getAgentState, getAgentStateFilePath, getLatestSessionId, getProviderAuthMode, getProviderEnvForModel, getProviderExportsForModel, getProviderTmuxFlags, getRoleRuntimeBaseCommand, getSessionId, injectPiConversationMemory, isAgentPaused, isAgentTroubled, isQualifiedAgentId, isRole, listAgentStates, listRunningAgents, listRunningAgentsSync, markAgentRunningState, markAgentStoppedState, markAgentTroubled, messageAgent, normalizeAgentId, recordAgentFailure, recoverAgent, resetAgentFailureCount, resolveAgentTarget, resolveRoutedSpawnModel, restartAgent, resumeAgent, retrieveSpawnTimeMemoryContext, roleAgentDefinitionPath, saveAgentRuntimeState, saveAgentState, saveAgentStateSync, saveSessionId, setAgentDeliveryMethod, setAgentPaused, setAgentYielded, spawnAgent, spawnRun, stopAgent, stopAgentSync, transitionIssueToInProgress, transitionIssueToInReview, waitForAgentIdle, waitForPromptReady, waitForReadySignal, warnOnBareNumericIssueIds, wipeAgentStateDirs, writeAgentStateJson, writeChannelsBridgeMcpConfig };
@@ -16,14 +16,14 @@ import { H as setConversationClaudeSessionId, I as normalizeHarness, L as reacti
16
16
  import { a as removeAgentStateDir, n as init_state_dir_removal } from "./state-dir-removal-CuyCNQTp.js";
17
17
  import { C as recordAgentFailure, D as saveAgentState, O as saveAgentStateSync, S as markSpawnFailed, T as recordStartupSessionExit, b as markAgentStoppedState, d as decideResumeGate, f as getAgentResumeGateBlockReason, m as init_agent_state, n as SESSION_EXITED_BEFORE_KICKOFF, p as getIssuePause, v as markAgentRunning } from "./agent-state-e9n26qYW.js";
18
18
  import { a as sessionFilePath, r as claudeSessionTranscriptExists, t as claudeProjectDir } from "./claude-code-D1t9sdHM.js";
19
- import { d as isRuntimeAgentAlive, l as tmuxKillSession, u as tmuxSessionExists } from "./codex-BE1w7ARL.js";
20
- import { a as prepareHarnessLaunch } from "./harness-binary-DtPw6bEJ.js";
19
+ import { d as isRuntimeAgentAlive, l as tmuxKillSession, u as tmuxSessionExists } from "./codex-BrY7aOvP.js";
20
+ import { a as prepareHarnessLaunch } from "./harness-binary-BaN9N-sG.js";
21
21
  import { i as museSessionId, o as resolveMuseSessionPath, r as museDataHome, s as resolveMuseSessionPathSync } from "./muse-DxPGs9oz.js";
22
- import { n as generateLauncherScript } from "./launcher-generator-BofB3FX_.js";
22
+ import { n as generateLauncherScript } from "./launcher-generator-COHAIhyH.js";
23
23
  import { i as requireModelOverride, r as normalizeModelOverride } from "./kimi-claude-routing-C53_lRiN.js";
24
24
  import { a as findProjectByPath, c as getIssuePrefix, p as init_projects, w as resolveProjectFromIssueSync } from "./projects-CvLJPQjr.js";
25
25
  import { n as resolveEffort } from "./resolve-effort-CJ9JcWwm.js";
26
- import { o as resolveLatestSessionId, r as getLatestSessionId, s as saveSessionId } from "./activity-CVRFYPg-.js";
26
+ import { o as resolveLatestSessionId, r as getLatestSessionId, s as saveSessionId } from "./activity-h2Q-pMa7.js";
27
27
  import { a as primeAgentContextFilePath, i as primeAgentAuthFilePath, o as primeAgentDaemonSocketPath, u as requirePrimeAgentSessionFile } from "./prime-agent-CDj21YJK.js";
28
28
  import { a as isPromptRefused, i as isPromptDropped, o as isUnsupported, r as init_types } from "./types-iDk2a8gI.js";
29
29
  import { n as init_paths$1 } from "./paths-Doh_X2-W.js";
@@ -31,7 +31,7 @@ import { _ as init_continue_state, f as readTierOverrides, m as readWorkspacePla
31
31
  import { m as resolveWorkspaceRepoRoots, o as init_project_repos } from "./project-repos-Dqv9H0RK.js";
32
32
  import { i as init_operator_decision, o as operatorDecisionAsPendingQuestion, s as readOpenOperatorDecision } from "./operator-decision-BijGjqPE.js";
33
33
  import { _ as tokensFromLaunchMetadata, g as toPaneRole, h as senderFromEnv, m as init_prompt_guard, p as checkPrompt } from "./herdr-JDVS0aDm.js";
34
- import { d as resolveLaunchBackend, f as init_tmux$1, i as closeBackendPane, l as launchAgentPane, n as closeAgentPane, o as detectionPolicyFor, s as init_launch, t as agentPaneExists } from "./launch-DSEY_mt2.js";
34
+ import { d as resolveLaunchBackend, f as init_tmux$1, i as closeBackendPane, l as launchAgentPane, n as closeAgentPane, o as detectionPolicyFor, s as init_launch, t as agentPaneExists } from "./launch-DF_WD2-a.js";
35
35
  import { i as isAlive, n as idleAgeMs, o as isConfirmedDead, r as init_liveness } from "./liveness-tAwIFT67.js";
36
36
  import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-CSqqOWAc.js";
37
37
  import { n as createTrackerFromConfig, o as init_factory, t as createTracker } from "./factory-BbL0LW3R.js";
@@ -41,18 +41,18 @@ import { a as resolveAgentTranscriptCandidate } from "./transcript-resolver--2h3
41
41
  import { n as getRuntimeCensus, r as getRuntimeCensusSnapshot } from "./runtime-census-B1XcExWa.js";
42
42
  import { t as readActiveDashboardBundle } from "./active-dashboard-bundle-uChaT_M9.js";
43
43
  import { c as determineModel, i as getClaudePermissionFlagsString, l as getProviderEnvForModel, o as buildCavemanExports, u as getProviderExportsForModel } from "./claude-permissions-BT90X1o5.js";
44
- import { C as hostDisplayName, D as hostTransportFor, E as hostTokenFile, F as workspaceContextWithoutProjectLayer, M as renderProjectLayer, N as renderForHarness, T as hostSocketPath, a as getCodexAppServerStatus, b as writeOhmypiAgentPrompt, c as getOhmypiLauncherFields, d as inferMemoryProjectId, h as roleSystemPromptInjection, i as getAgentRuntimeBaseCommand, j as renderGlobalLayer, k as materializeManagedLaunchContext, l as getProviderAuthMode, m as roleAgentDefinitionPath, o as getCodexLauncherFields, r as getAcpLauncherFields, s as getKimiCodeLauncherFields, u as getRoleRuntimeBaseCommand, v as waitForPromptReady, x as claudeSystemPromptFiles, y as writeLauncherScriptAtomic } from "./runtime-command-D0JVmWKZ.js";
44
+ import { C as hostDisplayName, D as hostTransportFor, E as hostTokenFile, F as workspaceContextWithoutProjectLayer, M as renderProjectLayer, N as renderForHarness, T as hostSocketPath, a as getCodexAppServerStatus, b as writeOhmypiAgentPrompt, c as getOhmypiLauncherFields, d as inferMemoryProjectId, h as roleSystemPromptInjection, i as getAgentRuntimeBaseCommand, j as renderGlobalLayer, k as materializeManagedLaunchContext, l as getProviderAuthMode, m as roleAgentDefinitionPath, o as getCodexLauncherFields, r as getAcpLauncherFields, s as getKimiCodeLauncherFields, u as getRoleRuntimeBaseCommand, v as waitForPromptReady, x as claudeSystemPromptFiles, y as writeLauncherScriptAtomic } from "./runtime-command-0C3oTZGN.js";
45
45
  import { c as resolveWorkspaceContextFile } from "./layers-DKHBGSsn.js";
46
46
  import { r as getWorkspaceStackHealth } from "./stack-health-BJI9UB7m.js";
47
47
  import { a as getPrFacts } from "./pr-facts-C9jNdDiz.js";
48
48
  import { i as initHook, r as generateFixedPointPrompt, t as checkHook } from "./hooks-xa_YQLPl.js";
49
- import { n as resolveHarness } from "./harness-resolve-BfOivkUY.js";
50
- import { d as isFlywheelStartedBy, f as isOperatorStartedBy, l as isPidDead, s as withAutoSpawnConsentClaim, v as completeKeyedSubmit, w as sendKeysDedup } from "./auto-spawn-consent-DRgQbl8k.js";
51
- import "./deacon-swarm-record-4FGgybnL.js";
52
- import { t as provisionClaudeHooks } from "./claude-hooks-provision-Cx-iNW3h.js";
53
- import { t as readCpuPsi } from "./cpu-psi-BN99YdGz.js";
54
- import { r as createActiveSlice } from "./dag-DC0niH7i.js";
55
- import { r as resolveAgentPaneIo } from "./agent-pane-io-8U_dsHCf.js";
49
+ import { n as resolveHarness } from "./harness-resolve-CimEYcpG.js";
50
+ import { a as resolveAgentPaneIo, n as describeHerdrRefusal } from "./agent-pane-io-CXPX0Kq3.js";
51
+ import { d as isFlywheelStartedBy, f as isOperatorStartedBy, l as isPidDead, s as withAutoSpawnConsentClaim, v as completeKeyedSubmit, w as sendKeysDedup } from "./auto-spawn-consent-BxXl-3y7.js";
52
+ import "./deacon-swarm-record-BenMf1-5.js";
53
+ import { t as provisionClaudeHooks } from "./claude-hooks-provision-D60ldmh3.js";
54
+ import { t as readCpuPsi } from "./cpu-psi-DvzVl1bx.js";
55
+ import { r as createActiveSlice } from "./dag-PPL-MAx0.js";
56
56
  import { t as appendContinueSessionEntryForIssue } from "./lifecycle-io-D4t1Xhjj.js";
57
57
  import { createRequire } from "node:module";
58
58
  import { dirname, join, relative } from "node:path";
@@ -77,13 +77,23 @@ import { fileURLToPath } from "node:url";
77
77
  init_cliproxy();
78
78
  /** Wrapper error for Codex auth probing — preserves the underlying cause. */
79
79
  var CodexAuthCheckError = class extends Data.TaggedError("CodexAuthCheckError") {};
80
+ /**
81
+ * An access token past its `exp` is not dead while a refresh token is present:
82
+ * the codex CLI and CLIProxyAPI both mint a new access token from it on next use.
83
+ * Only a lapsed token with no refresh token is truly expired. A revoked refresh
84
+ * token is caught separately by the burn checks.
85
+ */
86
+ function hasRefreshToken(value) {
87
+ return typeof value === "string" && value.length > 0;
88
+ }
80
89
  /** Absolute path to the codex CLI's own global credential file. */
81
90
  function getNativeCodexAuthPath() {
82
91
  return join$1(homedir(), ".codex", "auth.json");
83
92
  }
84
93
  /**
85
94
  * Pure classifier for the native store's raw JSON (PAN-2285). Decodes the
86
- * access_token JWT `exp` to decide valid/expired; reports missing when the file
95
+ * access_token JWT `exp` to decide valid/expired; a lapsed access token with a
96
+ * refresh token is refreshable, so it is valid; reports missing when the file
87
97
  * is absent (raw === null) and unknown when it is malformed. API-key mode
88
98
  * (OPENAI_API_KEY set, no OAuth tokens) is a valid auth state. Exported for
89
99
  * testing with fabricated JWTs.
@@ -119,7 +129,7 @@ function classifyNativeCodexAuth(raw, now = Date.now()) {
119
129
  lastRefresh
120
130
  };
121
131
  const expiresAt = (/* @__PURE__ */ new Date(expSec * 1e3)).toISOString();
122
- if (expSec * 1e3 <= now) return {
132
+ if (expSec * 1e3 <= now && !hasRefreshToken(parsed.tokens?.refresh_token)) return {
123
133
  status: "expired",
124
134
  email,
125
135
  expiresAt,
@@ -283,7 +293,7 @@ async function checkCodexAuthStatus(options = {}) {
283
293
  function assertCodexNativeAuthForSpawn(harness, agentStates) {
284
294
  if (harness !== "codex") return;
285
295
  const native = probeNativeCodexAuthSync();
286
- const reason = native.status === "missing" ? "not signed in (~/.codex/auth.json is missing)" : native.status === "expired" ? "expired (~/.codex/auth.json access token has lapsed)" : hasActiveBurnedCodexAgentsSync(agentStates) ? "revoked (a running codex agent hit a revoked refresh token — the shared token family is dead)" : null;
296
+ const reason = native.status === "missing" ? "not signed in (~/.codex/auth.json is missing)" : native.status === "expired" ? "expired (~/.codex/auth.json access token has lapsed and has no refresh token)" : hasActiveBurnedCodexAgentsSync(agentStates) ? "revoked (a running codex agent hit a revoked refresh token — the shared token family is dead)" : null;
287
297
  if (reason === null) return;
288
298
  throw new Error(`Cannot spawn a Codex agent: native Codex authentication is ${reason}. Run \`codex login\` on the host (or click Re-authenticate in the dashboard Codex-auth banner), then retry.`);
289
299
  }
@@ -323,7 +333,7 @@ async function checkCliproxyCodexAuthStatus(options = {}) {
323
333
  };
324
334
  const email = typeof creds.email === "string" ? creds.email : "";
325
335
  const expiresAt = (/* @__PURE__ */ new Date(expSec * 1e3)).toISOString();
326
- if (expSec * 1e3 <= Date.now()) return {
336
+ if (expSec * 1e3 <= Date.now() && !hasRefreshToken(creds.refresh_token)) return {
327
337
  status: "expired",
328
338
  email,
329
339
  expiresAt
@@ -2433,7 +2443,7 @@ async function transitionIssueToInReview(issueId, workspacePath) {
2433
2443
  async function buildAgentLaunchConfig(opts) {
2434
2444
  const model = requireModelOverride(opts.model);
2435
2445
  try {
2436
- const { injectOverdeckInfraDeny } = await import("./claude-settings-overlay-tccrSYWh.js");
2446
+ const { injectOverdeckInfraDeny } = await import("./claude-settings-overlay-Z1wvGWrM.js");
2437
2447
  await Effect.runPromise(injectOverdeckInfraDeny(opts.workspace));
2438
2448
  } catch (err) {
2439
2449
  console.warn(`[agents] injectOverdeckInfraDeny failed for ${opts.agentId} (non-fatal): ${err instanceof Error ? err.message : err}`);
@@ -2662,7 +2672,7 @@ async function assertWorkspaceStackHealthyForSpawn(issueId, role, allowHost = fa
2662
2672
  record.attempts += 1;
2663
2673
  spawnStackRebuildState.set(normalizedIssue, record);
2664
2674
  console.log(`[agents] Workspace stack for ${normalizedIssue} unhealthy (${details}) — rebuilding before spawn (attempt ${record.attempts}/${SPAWN_STACK_REBUILD_MAX_ATTEMPTS})`);
2665
- const { rebuildWorkspaceStack } = await import("./rebuild-stack-CJBh6Pa6.js");
2675
+ const { rebuildWorkspaceStack } = await import("./rebuild-stack-FjChJ9yi.js");
2666
2676
  const result = await Effect.runPromise(rebuildWorkspaceStack(issueId, { onProgress: (m) => console.log(`[agents] ${normalizedIssue} stack rebuild: ${m}`) })).catch((err) => ({
2667
2677
  success: false,
2668
2678
  error: err instanceof Error ? err.message : String(err)
@@ -3244,7 +3254,7 @@ async function deliverAgentMessage(agentId, message, caller = "unknown", deliver
3244
3254
  if (isPromptRefused(result)) return {
3245
3255
  ok: false,
3246
3256
  path: "herdr",
3247
- failure: `refused: ${result.reason}`
3257
+ failure: await describeHerdrRefusal(result.reason, herdrAgent.paneId)
3248
3258
  };
3249
3259
  if (isPromptDropped(result)) return {
3250
3260
  ok: true,
@@ -3656,7 +3666,7 @@ async function deliverInitialPromptWithRetry(agentId, prompt, caller, deliveryMe
3656
3666
  }
3657
3667
  async function resolveTranscriptConfirmationTarget(state) {
3658
3668
  if (!state?.workspace || getHarnessBehavior(state.harness).transcriptKind !== "claude-jsonl") return null;
3659
- const { getLatestSessionId } = await import("./activity-H6Jf6jYF.js");
3669
+ const { getLatestSessionId } = await import("./activity-CElPNdhJ.js");
3660
3670
  const sessionId = getLatestSessionId(normalizedId, { getAgentState: () => state }) ?? void 0;
3661
3671
  if (!sessionId) return null;
3662
3672
  return {
@@ -3689,7 +3699,7 @@ async function deliverInitialPromptWithRetry(agentId, prompt, caller, deliveryMe
3689
3699
  const readyTimeoutSeconds = promptReadyTimeoutSeconds();
3690
3700
  if (!await waitForReady(agentId, harness, readyTimeoutSeconds)) {
3691
3701
  const alive = await sessionExistsForAgent(agentId);
3692
- lastFailure = alive ? await (await import("./ready-timeout-failure-C45bsjI2.js")).readySignalTimeoutFailureFor(normalizedId) : SESSION_EXITED_BEFORE_KICKOFF;
3702
+ lastFailure = alive ? await (await import("./ready-timeout-failure-BwzL5OKo.js")).readySignalTimeoutFailureFor(normalizedId) : SESSION_EXITED_BEFORE_KICKOFF;
3693
3703
  const displayName = getHarnessBehavior(harness).displayName;
3694
3704
  console.error(`[${agentId}] ${displayName} did not become ready within ${readyTimeoutSeconds}s (kickoff attempt ${attempt}/2)`);
3695
3705
  if (!alive) break;
@@ -4489,7 +4499,7 @@ const stopAgent = (agentId, cause = "system") => {
4489
4499
  }).pipe(Effect.catch(() => Effect.void));
4490
4500
  const close = yield* Effect.promise(async () => {
4491
4501
  try {
4492
- const { closeAgentPaneDetailed } = await import("./launch-DCAI36Nq.js");
4502
+ const { closeAgentPaneDetailed } = await import("./launch-DlClnoCc.js");
4493
4503
  const result = await closeAgentPaneDetailed(normalizedId);
4494
4504
  if (result.outcome === "failed") console.warn(`[agents] Backend close failed for ${normalizedId}: ${result.reason}`);
4495
4505
  return result;
@@ -4505,7 +4515,7 @@ const stopAgent = (agentId, cause = "system") => {
4505
4515
  yield* Effect.promise(async () => {
4506
4516
  try {
4507
4517
  if (getAgentState(normalizedId)?.harness !== "prime-agent") return;
4508
- const { reapPrimeAgentDaemon } = await import("./daemon-CWmWlc4E.js");
4518
+ const { reapPrimeAgentDaemon } = await import("./daemon-d62dV_pO.js");
4509
4519
  await reapPrimeAgentDaemon(normalizedId);
4510
4520
  } catch (err) {
4511
4521
  console.warn(`[agents] Prime Agent daemon reap failed for ${normalizedId} (non-fatal): ${err instanceof Error ? err.message : String(err)}`);
@@ -4587,7 +4597,7 @@ async function roleRunTurnFinished(agentId, run) {
4587
4597
  if (!Number.isFinite(startedAtMs)) return false;
4588
4598
  const [{ resolveAgentTranscriptCandidate }, { transcriptTurnFinished }, { stat }] = await Promise.all([
4589
4599
  import("./transcript-resolver-BF4nfv1t.js"),
4590
- import("./transcript-turn-DxkkFudJ.js"),
4600
+ import("./transcript-turn-yL1_qVmT.js"),
4591
4601
  import("node:fs/promises")
4592
4602
  ]);
4593
4603
  const candidate = await resolveAgentTranscriptCandidate(agentId, run.workspace ?? "");
@@ -4663,7 +4673,7 @@ async function confirmFinishedRoleRun(agentId, deps) {
4663
4673
  return second.finished && second.alive;
4664
4674
  }
4665
4675
  async function defaultPaneExists(agentId) {
4666
- const { agentPaneExists } = await import("./launch-DCAI36Nq.js");
4676
+ const { agentPaneExists } = await import("./launch-DlClnoCc.js");
4667
4677
  return agentPaneExists(agentId);
4668
4678
  }
4669
4679
  /**
@@ -5955,7 +5965,7 @@ async function spawnAgentWithoutConsentClaim(options, acceptConsent) {
5955
5965
  console.warn(`[agents] Could not transition ${options.issueId} to in_progress: ${err.message}`);
5956
5966
  });
5957
5967
  if (role === "work") try {
5958
- const { writeStoryFeatureContext } = await import("./work-agent-prompt-p9ir8Hid.js");
5968
+ const { writeStoryFeatureContext } = await import("./work-agent-prompt-BNUi27LZ.js");
5959
5969
  await writeStoryFeatureContext(options.workspace, options.issueId);
5960
5970
  } catch (ctxErr) {
5961
5971
  console.warn(`[agents] Could not write story feature context for ${options.issueId}: ${ctxErr.message}`);
@@ -6147,7 +6157,7 @@ async function spawnAgentWithoutConsentClaim(options, acceptConsent) {
6147
6157
  const codexHomeForAgent = join$1(homedir(), ".overdeck", "agents", agentId, "codex-home-v2");
6148
6158
  (async () => {
6149
6159
  try {
6150
- const { waitForCodexRollout, recordCodexRolloutSession } = await import("./codex-CVOd_JEs.js");
6160
+ const { waitForCodexRollout, recordCodexRolloutSession } = await import("./codex-vuXHqT53.js");
6151
6161
  const { extractThreadIdFromRollout } = await import("./codex-DllgNfof.js");
6152
6162
  const rollout = await waitForCodexRollout(codexHomeForAgent, 12e4);
6153
6163
  if (rollout) {
@@ -6562,7 +6572,7 @@ async function steerRefusalReason(normalizedId, harness, agentState, dedupKey) {
6562
6572
  if (dedupKey !== void 0) return `a keyed message cannot steer ${normalizedId}`;
6563
6573
  const notRunning = agentState?.paused === true ? "paused" : getAgentRuntimeStateSync(normalizedId)?.state === "suspended" ? "suspended" : agentState?.status === "stopped" ? "stopped" : void 0;
6564
6574
  if (notRunning) return `${normalizedId} is ${notRunning}, so it has no running turn to interrupt. Send it without steer to queue the message.`;
6565
- const { loadRemoteAgentState } = await import("./remote-agents-CJYoW12q.js");
6575
+ const { loadRemoteAgentState } = await import("./remote-agents-BlqgB9dc.js");
6566
6576
  if (loadRemoteAgentState(normalizedId)?.vmName) return `steer is not supported for remote agents (${normalizedId}). Send it without steer to deliver a normal message.`;
6567
6577
  }
6568
6578
  /**
@@ -6577,7 +6587,7 @@ async function steerRefusalReason(normalizedId, harness, agentState, dedupKey) {
6577
6587
  * at-most-once across the whole replay window.
6578
6588
  */
6579
6589
  async function resumeThenDeliverKeyed(normalizedId, message, caller, agentState, dedupKey) {
6580
- const { resumeAgent } = await import("./agents-DfEYd_I0.js");
6590
+ const { resumeAgent } = await import("./agents-C9oho7kE.js");
6581
6591
  const result = await resumeAgent(normalizedId);
6582
6592
  if (!result.success) throw new Error(`Failed to auto-resume agent: ${result.error}`);
6583
6593
  const delivery = await deliverAgentMessage(normalizedId, message, `messageAgent:${caller}`, resolveAgentDeliveryMethod(agentState), { dedupKey });
@@ -6658,7 +6668,7 @@ async function messageAgent(agentId, message, caller = "internal", opts = {}) {
6658
6668
  }
6659
6669
  console.log(`[agents] Auto-resuming suspended agent ${normalizedId} to deliver message`);
6660
6670
  if (opts.dedupKey !== void 0) return resumeThenDeliverKeyed(normalizedId, message, caller, agentState, opts.dedupKey);
6661
- const { resumeAgent } = await import("./agents-DfEYd_I0.js");
6671
+ const { resumeAgent } = await import("./agents-C9oho7kE.js");
6662
6672
  const result = await resumeAgent(normalizedId, message);
6663
6673
  if (!result.success) throw new Error(`Failed to auto-resume agent: ${result.error}`);
6664
6674
  if (result.messageDelivered === false) throw new Error(`Agent resumed but ready signal did not fire — message not delivered. Feedback is in the mail queue.`);
@@ -6683,7 +6693,7 @@ async function messageAgent(agentId, message, caller = "internal", opts = {}) {
6683
6693
  }
6684
6694
  console.log(`[agents] Auto-resuming stopped agent ${normalizedId} to deliver feedback (alive: ${(await isAlive(normalizedId)).alive})`);
6685
6695
  if (opts.dedupKey !== void 0) return resumeThenDeliverKeyed(normalizedId, message, caller, agentState, opts.dedupKey);
6686
- const { resumeAgent } = await import("./agents-DfEYd_I0.js");
6696
+ const { resumeAgent } = await import("./agents-C9oho7kE.js");
6687
6697
  const resumeResult = await resumeAgent(normalizedId, message);
6688
6698
  queueAgentMail(normalizedId, message);
6689
6699
  if (resumeResult.success && resumeResult.messageDelivered !== false) {
@@ -6712,7 +6722,7 @@ async function messageAgent(agentId, message, caller = "internal", opts = {}) {
6712
6722
  };
6713
6723
  }
6714
6724
  const resumeRole = agentState.role ?? "work";
6715
- const { resolveRoutedSpawnModel } = await import("./agents-DfEYd_I0.js");
6725
+ const { resolveRoutedSpawnModel } = await import("./agents-C9oho7kE.js");
6716
6726
  const resumeModel = agentState.model || resolveRoutedSpawnModel({
6717
6727
  role: resumeRole,
6718
6728
  issueId: agentState.issueId || normalizedId.replace(/^(agent|planning)-/, "").toUpperCase(),
@@ -6734,7 +6744,7 @@ async function messageAgent(agentId, message, caller = "internal", opts = {}) {
6734
6744
  agentState.effort = relaunchEffort.effort;
6735
6745
  agentState.effortSource = relaunchEffort.source;
6736
6746
  const harnessLaunch = await prepareHarnessLaunch(fallbackHarness, { model: resumeModel });
6737
- const { assertWorkspaceStackHealthyForSpawn } = await import("./agents-DfEYd_I0.js");
6747
+ const { assertWorkspaceStackHealthyForSpawn } = await import("./agents-C9oho7kE.js");
6738
6748
  await assertWorkspaceStackHealthyForSpawn(agentState.issueId || normalizedId.replace(/^agent-/, "").toUpperCase(), resumeRole, agentState.hostOverride === true, agentState.workspace);
6739
6749
  const fallbackPiFields = fallbackHarness === "ohmypi" ? await getOhmypiLauncherFields(normalizedId, resumeModel, relaunchEffort.effort) : {};
6740
6750
  const fallbackCodexFields = fallbackHarness === "codex" ? getCodexLauncherFields(normalizedId, resumeModel, agentState.workspace, resumeRole, relaunchEffort.effort) : {};
@@ -6838,12 +6848,12 @@ async function messageAgent(agentId, message, caller = "internal", opts = {}) {
6838
6848
  ...reason ? { reason } : {}
6839
6849
  };
6840
6850
  }
6841
- const { loadRemoteAgentState, sendToRemoteAgent } = await import("./remote-agents-CJYoW12q.js");
6851
+ const { loadRemoteAgentState, sendToRemoteAgent } = await import("./remote-agents-BlqgB9dc.js");
6842
6852
  const remoteState = loadRemoteAgentState(normalizedId);
6843
6853
  if (remoteState && remoteState.vmName) {
6844
6854
  console.log(`[agents] Sending message to remote agent ${normalizedId} on ${remoteState.vmName}`);
6845
6855
  if (opts.dedupKey !== void 0) {
6846
- const { sendToRemoteAgentKeyed } = await import("./remote-agents-CJYoW12q.js");
6856
+ const { sendToRemoteAgentKeyed } = await import("./remote-agents-BlqgB9dc.js");
6847
6857
  const remoteOutcome = await sendToRemoteAgentKeyed(normalizedId, remoteState.vmName, message, opts.dedupKey);
6848
6858
  queueAgentMail(normalizedId, message, "delivered", opts.dedupKey);
6849
6859
  await appendTellInterventionForUserSource(normalizedId, caller);
@@ -6901,7 +6911,7 @@ async function messageAgent(agentId, message, caller = "internal", opts = {}) {
6901
6911
  else {
6902
6912
  console.warn(`[agents] ${normalizedId} tmux session is a zombie (no ${expectedHarness} runtime) — attempting resume`);
6903
6913
  if (opts.dedupKey !== void 0) return resumeThenDeliverKeyed(normalizedId, message, caller, agentState, opts.dedupKey);
6904
- const { resumeAgent } = await import("./agents-DfEYd_I0.js");
6914
+ const { resumeAgent } = await import("./agents-C9oho7kE.js");
6905
6915
  const resumeResult = await resumeAgent(normalizedId, message);
6906
6916
  if (resumeResult.success) {
6907
6917
  const delivered = resumeResult.messageDelivered !== false;
@@ -7267,7 +7277,7 @@ const RESUME_GATE_LABELS = [
7267
7277
  */
7268
7278
  async function backendPaneChoiceDeps(pane) {
7269
7279
  const { readHerdrPaneText } = await import("./herdr-j7n-0xw2.js");
7270
- const { sendHerdrPaneKeys } = await import("./agent-pane-io-BmNbvGUo.js");
7280
+ const { sendHerdrPaneKeys } = await import("./agent-pane-io-H-50g3Ze.js");
7271
7281
  return {
7272
7282
  capture: (_agentId, lines) => readHerdrPaneText(pane.paneId, lines),
7273
7283
  sendKey: (_agentId, key) => sendHerdrPaneKeys(pane.paneId, [key]),
@@ -7418,7 +7428,7 @@ async function buildCompactRecoverySeed(agentId) {
7418
7428
  if (agentState?.workspace && sessionId) {
7419
7429
  const sessionFile = sessionFilePath(agentState.workspace, sessionId);
7420
7430
  try {
7421
- const [{ getConversationCompactionSettings }, { generateSmartSummary }] = await Promise.all([import("./conversation-compaction-sKyT07L1.js"), import("./smart-compaction-ni-rHctf.js")]);
7431
+ const [{ getConversationCompactionSettings }, { generateSmartSummary }] = await Promise.all([import("./conversation-compaction-D1aR4ytx.js"), import("./smart-compaction-mz6E9fph.js")]);
7422
7432
  const settings = getConversationCompactionSettings();
7423
7433
  summary = (await generateSmartSummary({
7424
7434
  jsonlPath: sessionFile,
@@ -7429,7 +7439,7 @@ async function buildCompactRecoverySeed(agentId) {
7429
7439
  } catch (err) {
7430
7440
  logAgentLifecycle(normalizedId, `compact-recovery smart summary failed (${err instanceof Error ? err.message : String(err)}); trying heuristic fallback`);
7431
7441
  try {
7432
- const { generateFallbackSummary } = await import("./summary-fork-Dm46AXqo.js");
7442
+ const { generateFallbackSummary } = await import("./summary-fork--LXvyQuT.js");
7433
7443
  summary = await generateFallbackSummary(sessionFile);
7434
7444
  } catch (fallbackErr) {
7435
7445
  logAgentLifecycle(normalizedId, `compact-recovery fallback summary failed (${fallbackErr instanceof Error ? fallbackErr.message : String(fallbackErr)}); seeding with reseed instructions only`);
@@ -8950,14 +8960,14 @@ async function restartAgent(agentId, opts = {}, deps = {}) {
8950
8960
  }
8951
8961
  });
8952
8962
  if (kimiExistingSessionsBefore) {
8953
- const { waitForNewKimiSessionAsync, recordKimiSessionCapture } = await import("./kimi-code-AcOc8X0U.js");
8963
+ const { waitForNewKimiSessionAsync, recordKimiSessionCapture } = await import("./kimi-code-DNNwP6FT.js");
8954
8964
  const sessionId = await waitForNewKimiSessionAsync(kimiHomeDefault(), agentState.workspace, kimiExistingSessionsBefore);
8955
8965
  if (!sessionId) throw new Error(`kimi-code session capture timed out after fresh relaunch for ${normalizedId} — no new session directory appeared under the workspace bucket`);
8956
8966
  recordKimiSessionCapture(normalizedId, sessionId, agentState.workspace);
8957
8967
  }
8958
8968
  };
8959
8969
  if (effectiveHarness === "kimi-code") {
8960
- const { withKimiSessionCaptureLock } = await import("./kimi-code-AcOc8X0U.js");
8970
+ const { withKimiSessionCaptureLock } = await import("./kimi-code-DNNwP6FT.js");
8961
8971
  await withKimiSessionCaptureLock(kimiHomeDefault(), agentState.workspace, launchAndCaptureKimiSession);
8962
8972
  } else await launchAndCaptureKimiSession();
8963
8973
  const prompt = message || buildResumeContinueMessage(agentState);
@@ -9238,13 +9248,13 @@ async function recoverAgent(agentId, opts = {}) {
9238
9248
  }
9239
9249
  });
9240
9250
  if (kimiExistingSessionsBefore) {
9241
- const { waitForNewKimiSessionAsync, recordKimiSessionCapture } = await import("./kimi-code-AcOc8X0U.js");
9251
+ const { waitForNewKimiSessionAsync, recordKimiSessionCapture } = await import("./kimi-code-DNNwP6FT.js");
9242
9252
  const sessionId = await waitForNewKimiSessionAsync(kimiHomeDefault(), state.workspace, kimiExistingSessionsBefore);
9243
9253
  if (sessionId) recordKimiSessionCapture(normalizedId, sessionId, state.workspace);
9244
9254
  else throw new Error(`kimi-code session capture timed out after fresh relaunch for ${normalizedId} — no new session directory appeared under the workspace bucket`);
9245
9255
  }
9246
9256
  };
9247
- const { withKimiSessionCaptureLock } = await import("./kimi-code-AcOc8X0U.js");
9257
+ const { withKimiSessionCaptureLock } = await import("./kimi-code-DNNwP6FT.js");
9248
9258
  try {
9249
9259
  await withKimiSessionCaptureLock(kimiHomeDefault(), state.workspace, launchAndCaptureKimiSession);
9250
9260
  } catch (err) {
@@ -9369,6 +9379,6 @@ init_identity();
9369
9379
  init_agent_state();
9370
9380
  init_runtime_state();
9371
9381
  //#endregion
9372
- export { stopAgentSync as $, CodexAuthCheckError as $t, inputTargetFromSelector as A, getPrimeAgentLauncherFields as At, recordKimiSessionCapture as B, PTY_TOKEN_HEADER as Bt, captureSessionPaneChoice as C, assertWorkspaceStackHealthyForSpawn as Ct, messageAgentWithOutcome as D, transitionIssueToInReview as Dt, messageAgent as E, transitionIssueToInProgress as Et, KimiCodeRuntimeSync as F, decideSupervisorForWorkAgent as Ft, runtimeUsesSupervisor as G, probeTranscriptSince as Gt, withKimiSessionCaptureLock as H, writePtyToken as Ht, KimiCodeSpawnTimeout as I, dismissDevChannelsDialog as It, isFinishedRoleRun as J, captureLiveAgentPaneText as Jt, assessCpuPressure as K, readSidechainHumanInputs as Kt, createKimiCodeRuntime as L, hasCompletionMarkerForAgent as Lt, operatorInterventionEvent as M, buildDefaultResumeContinueMessage as Mt, spawnAgent as N, buildResumeContinueMessage as Nt, resolveAgentDeliveryMethod as O, resolveImplicitStaffing as Ot, spawnRun as P, decideChannelsForWorkAgent as Pt, stopAgent as Q, liveAgentInventory as Qt, kimiCaptureLockPath as R, writeChannelsBridgeMcpConfig as Rt, answerSessionPaneChoice as S, writeBridgeToken as St, isContextOverflowError as T, retrieveSpawnTimeMemoryContext as Tt, writeKimiSessionId as U, resolvePtySupervisorScriptPath as Ut, waitForNewKimiSessionAsync as V, readPtyToken as Vt, launchRuntimePane as W, captureTranscriptUserRecordSnapshot as Wt, roleRunTurnFinished as X, listLiveAgentIds as Xt, needsTurnSignal as Y, isListedOrRunning as Yt, waitForPaneGone as Z, listLiveAgentPanes as Zt, normalizeAwaitingInputPrompt as _, deliverMessageWithTranscriptConfirmation as _t, restartAgent as a, warnOnBareNumericIssueIds as at, resumeAgent as b, resolveRelaunchEffort as bt, countPendingAskUserQuestionsForAgent as c, getHealthThresholdsMs as ct, getAgentPendingQuestions as d, saveCloisterConfigSync as dt, checkCodexAuthStatus as en, isKickoffRejection as et, getAgentWorkspace as f, shouldAutoStart as ft, detectAwaitingInputFromPane as g, deliverInitialPromptWithRetry as gt, detectAwaitingInputForAgent as h, deliverAgentPermissionDecision as ht, resolveRoutedSpawnModel as i, listRunningAgentsSync as it, parseAgentSelector as j, materializeMuseContext as jt, ensureMainInputTarget as k, resolveStaffing as kt, getAgentJsonlMtime as l, loadCloisterConfig as lt, scanPendingInputs as m, deliverAgentMessage as mt, detectCrashedAgents as n, listAgentStates as nt, detectPendingOperatorDecision as o, emergencyBrake as ot, isBlockedOnPendingInput as p, AmbiguousKeyedDeliveryError as pt, FINISHED_REPROBE_DELAY_MS as q, subagentsDirFor as qt, recoverAgent as r, listRunningAgents as rt, computeAgentEnrichment as s, DEFAULT_CLOISTER_CONFIG as st, autoRecoverAgents as t, dropLegacyAgentStatesMissingRoleAsync as tt, getAgentJsonlPath as u, loadCloisterConfigSync as ut, parseCodexApprovalPrompt as v, setAgentDeliveryMethod as vt, clearAgentSessionPointers as w, buildAgentLaunchConfig as wt, withReviewLifecycleGuard as x, BRIDGE_TOKEN_HEADER as xt, buildCompactRecoverySeed as y, waitForManagedKimiSessionId as yt, launchAndCaptureManagedKimiSession as z, buildResumeContract as zt };
9382
+ export { stopAgentSync as $, CodexAuthCheckError as $t, inputTargetFromSelector as A, getPrimeAgentLauncherFields as At, recordKimiSessionCapture as B, PTY_TOKEN_HEADER as Bt, captureSessionPaneChoice as C, assertWorkspaceStackHealthyForSpawn as Ct, messageAgentWithOutcome as D, transitionIssueToInReview as Dt, messageAgent as E, transitionIssueToInProgress as Et, KimiCodeRuntimeSync as F, decideSupervisorForWorkAgent as Ft, runtimeUsesSupervisor as G, probeTranscriptSince as Gt, withKimiSessionCaptureLock as H, writePtyToken as Ht, KimiCodeSpawnTimeout as I, dismissDevChannelsDialog as It, isFinishedRoleRun as J, captureLiveAgentPaneText as Jt, assessCpuPressure as K, readSidechainHumanInputs as Kt, createKimiCodeRuntime as L, hasCompletionMarkerForAgent as Lt, operatorInterventionEvent as M, buildDefaultResumeContinueMessage as Mt, spawnAgent as N, buildResumeContinueMessage as Nt, resolveAgentDeliveryMethod as O, resolveImplicitStaffing as Ot, spawnRun as P, decideChannelsForWorkAgent as Pt, stopAgent as Q, liveAgentInventory as Qt, kimiCaptureLockPath as R, writeChannelsBridgeMcpConfig as Rt, answerSessionPaneChoice as S, writeBridgeToken as St, isContextOverflowError as T, retrieveSpawnTimeMemoryContext as Tt, writeKimiSessionId as U, resolvePtySupervisorScriptPath as Ut, waitForNewKimiSessionAsync as V, readPtyToken as Vt, launchRuntimePane as W, captureTranscriptUserRecordSnapshot as Wt, roleRunTurnFinished as X, listLiveAgentIds as Xt, needsTurnSignal as Y, isListedOrRunning as Yt, waitForPaneGone as Z, listLiveAgentPanes as Zt, normalizeAwaitingInputPrompt as _, deliverMessageWithTranscriptConfirmation as _t, restartAgent as a, warnOnBareNumericIssueIds as at, resumeAgent as b, resolveRelaunchEffort as bt, countPendingAskUserQuestionsForAgent as c, getHealthThresholdsMs as ct, getAgentPendingQuestions as d, saveCloisterConfigSync as dt, checkCodexAuthStatus as en, isKickoffRejection as et, getAgentWorkspace as f, shouldAutoStart as ft, detectAwaitingInputFromPane as g, deliverInitialPromptWithRetry as gt, detectAwaitingInputForAgent as h, deliverAgentPermissionDecision as ht, resolveRoutedSpawnModel as i, listRunningAgentsSync as it, parseAgentSelector as j, materializeMuseContext as jt, ensureMainInputTarget as k, resolveStaffing as kt, getAgentJsonlMtime as l, loadCloisterConfig as lt, scanPendingInputs as m, deliverAgentMessage as mt, detectCrashedAgents as n, listAgentStates as nt, detectPendingOperatorDecision as o, emergencyBrake as ot, isBlockedOnPendingInput as p, AmbiguousKeyedDeliveryError as pt, FINISHED_REPROBE_DELAY_MS as q, subagentsDirFor as qt, recoverAgent as r, listRunningAgents as rt, computeAgentEnrichment as s, DEFAULT_CLOISTER_CONFIG as st, autoRecoverAgents as t, getNativeCodexAuthPath as tn, dropLegacyAgentStatesMissingRoleAsync as tt, getAgentJsonlPath as u, loadCloisterConfigSync as ut, parseCodexApprovalPrompt as v, setAgentDeliveryMethod as vt, clearAgentSessionPointers as w, buildAgentLaunchConfig as wt, withReviewLifecycleGuard as x, BRIDGE_TOKEN_HEADER as xt, buildCompactRecoverySeed as y, waitForManagedKimiSessionId as yt, launchAndCaptureManagedKimiSession as z, buildResumeContract as zt };
9373
9383
 
9374
- //# sourceMappingURL=agents-CKFhKqJp.js.map
9384
+ //# sourceMappingURL=agents-DebP6rx9.js.map
@@ -3,7 +3,7 @@ import { S as eq, c as Tmux, f as getOverdeckDatabase, g as text, h as sqliteTab
3
3
  import { t as IssueId } from "./issues-Bk9AxoqF.js";
4
4
  import { c as listAgentStatesSync } from "./agent-state-read-DU7FNlQV.js";
5
5
  import { m as init_agent_state } from "./agent-state-e9n26qYW.js";
6
- import { o as resolveLatestSessionId } from "./activity-CVRFYPg-.js";
6
+ import { o as resolveLatestSessionId } from "./activity-h2Q-pMa7.js";
7
7
  import { join } from "node:path";
8
8
  import { Context, Effect, Layer, Schema } from "effect";
9
9
  import { readdirSync } from "node:fs";
@@ -213,4 +213,4 @@ function listAgentIdsByPrefix(prefix) {
213
213
  //#endregion
214
214
  export { listAgentIdsByPrefix as a, isTerminalIssueStage as i, AgentsResolverLive as n, getIssueStage as r, AgentsResolver as t };
215
215
 
216
- //# sourceMappingURL=agents-DNkpVGda.js.map
216
+ //# sourceMappingURL=agents-dwMmsEQT.js.map
@@ -0,0 +1,2 @@
1
+ import { i as findWorkspacePath } from "./archive-planning-vbycG6oX.js";
2
+ export { findWorkspacePath };
@@ -2,7 +2,7 @@ import { Jr as PROJECT_PRDS_COMPLETED_SUBDIR, Kr as PROJECT_DOCS_SUBDIR, Xr as P
2
2
  import { a as PAN_DIRNAME, c as PAN_SESSIONS_FILENAME, i as PAN_CONTINUE_FILENAME, n as PAN_CONTEXT_FILENAME, s as PAN_FEEDBACK_DIRNAME, u as PAN_SPEC_FILENAME } from "./types-D8ezttMf.js";
3
3
  import "./pan-dir-Dhqz-1n-.js";
4
4
  import { i as findPrdAtStatus, t as canonicalPrdSubdir } from "./prd-locations-C_I2h6ui.js";
5
- import { i as stepSkipped, n as stepFailed, r as stepOk } from "./types-D4H9A_IK.js";
5
+ import { i as stepSkipped, n as stepFailed, r as stepOk } from "./types-8Bdo_m9Z.js";
6
6
  import { Effect } from "effect";
7
7
  import { existsSync, readdirSync } from "fs";
8
8
  import { dirname, join } from "path";
@@ -186,4 +186,4 @@ function archivePlanning(ctx, opts = {}) {
186
186
  //#endregion
187
187
  export { movePrd as a, findWorkspacePath as i, archiveWorkspaceArtifacts as n, findAllWorkspacePaths as r, archivePlanning as t };
188
188
 
189
- //# sourceMappingURL=archive-planning-BvwP8nTs.js.map
189
+ //# sourceMappingURL=archive-planning-vbycG6oX.js.map
@@ -208,4 +208,4 @@ function unshareArtifactBySlugJob(slug) {
208
208
  //#endregion
209
209
  export { getArtifactBySlugJob, listArtifactsForWorkspaceOrIssueJob, unshareArtifactBySlugJob };
210
210
 
211
- //# sourceMappingURL=artifact-index-jobs-CFe2p3St.js.map
211
+ //# sourceMappingURL=artifact-index-jobs-C73RHIUN.js.map
@@ -158,4 +158,4 @@ async function isAutoMergeEligible(issueId, deps = {}) {
158
158
  //#endregion
159
159
  export { defaultGetIssueLabels as a, getProjectAutoMergeDefault as c, autoMergeFromLabels as i, projectHoldsForUat as l, BLOCKER_LABELS as n, isAutoMergeEligible as o, HOLD_FOR_UAT_LABEL as r, issueHoldsForUat as s, AUTO_MERGE_LABEL as t, shouldHoldForUat as u };
160
160
 
161
- //# sourceMappingURL=auto-merge-eligibility-De2WgmQS.js.map
161
+ //# sourceMappingURL=auto-merge-eligibility-f1D8TwAj.js.map
@@ -1,2 +1,2 @@
1
- import { a as defaultGetIssueLabels } from "./auto-merge-eligibility-De2WgmQS.js";
1
+ import { a as defaultGetIssueLabels } from "./auto-merge-eligibility-f1D8TwAj.js";
2
2
  export { defaultGetIssueLabels };
@@ -2,7 +2,7 @@ import { D as MessageDeliveryFailed, M as init_errors, ci as init_paths } from "
2
2
  import { B as validateSessionName, g as init_tmux, n as capturePane, z as tmuxExecAsync } from "./tmux-DEMhsmUK.js";
3
3
  import { f as init_pane_choice_menu, h as paneHasBlockingChoiceMenu, l as init_pane_composer, o as activeComposerPayloadPresence } from "./steer-keys-S074JvJP.js";
4
4
  import { p as init_projects } from "./projects-CvLJPQjr.js";
5
- import { t as FLYWHEEL_CONVERSATION_SESSION } from "./constants-ZsF6FhcR.js";
5
+ import { t as FLYWHEEL_CONVERSATION_SESSION } from "./constants-DEItMRn6.js";
6
6
  import { dirname, join } from "node:path";
7
7
  import { join as join$1 } from "path";
8
8
  import { tmpdir } from "os";
@@ -813,4 +813,4 @@ async function withAutoSpawnConsentClaim(issueId, operation, options = {}) {
813
813
  //#endregion
814
814
  export { isKeyedSubmitBlockedMenuError as C, dedupTerminalOptionName as S, assertValidDedupKey as _, readAutoSpawnOnFinalizeFlagAsync as a, dedupPoisonOptionName as b, writeAutoSpawnOnFinalizeFlag as c, isFlywheelStartedBy as d, isOperatorStartedBy as f, KeyedSubmitTargetDeadError as g, KeyedMarkerVerificationError as h, readAutoSpawnConsentWorkModel as i, isPidDead as l, planningHandoffStartedBy as m, claimAutoSpawnConsentForWorkStart as n, releaseAutoSpawnConsentClaim as o, normalizeFlywheelRunId as p, completeAutoSpawnConsentClaim as r, withAutoSpawnConsentClaim as s, autoSpawnOnFinalizeFlagPath as t, FLYWHEEL_STARTED_BY as u, completeKeyedSubmit as v, sendKeysDedup as w, dedupTargetOptionName as x, dedupPendingOptionName as y };
815
815
 
816
- //# sourceMappingURL=auto-spawn-consent-DRgQbl8k.js.map
816
+ //# sourceMappingURL=auto-spawn-consent-BxXl-3y7.js.map