@overdeck/desktop 0.45.15 → 0.45.16

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 (331) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-DHZk2ceV.js → acceptance-criteria-BZ_nQS1f.js} +2 -2
  3. package/server/{advancing-selfheal-CSuZ31bB.js → advancing-selfheal-DJYAvGv-.js} +6 -5
  4. package/server/{agent-gc-D_DxfBHR.js → agent-gc-D0wDIeV1.js} +3 -3
  5. package/server/{agent-state-EP2QFV9n.js → agent-state-lGvgPP4m.js} +1 -1
  6. package/server/{agent-state-service-C_2ZAQRP.js → agent-state-service-CZrayD_G.js} +1 -1
  7. package/server/{agent-state-service-BZkvgQf4.js → agent-state-service-DFslS5go.js} +9 -52
  8. package/server/{agents-CsOzAmRg.js → agents-B9GwfCyp.js} +99 -140
  9. package/server/{agents-DCvyTXNU.js → agents-CEcaxSkR.js} +1 -1
  10. package/server/{archive-planning-DkivCk1A.js → archive-planning-CbghE9-o.js} +5 -5
  11. package/server/{archive-planning-CTILQRnV.js → archive-planning-CoyIbgGK.js} +1 -1
  12. package/server/{artifact-index-jobs-CmsvQ1ey.js → artifact-index-jobs-CcSrUoSE.js} +2 -2
  13. package/server/{auto-commit-QAfsu3Sb.js → auto-commit-IW-eik_b.js} +1 -1
  14. package/server/{backlog-auto-trigger-ueRaT8Dy.js → backlog-auto-trigger-BfgDsII0.js} +3 -3
  15. package/server/{bd-process-lock-D3S4T4o-.js → bd-process-lock-XAXAet9O.js} +2 -2
  16. package/server/{beads-CYsLiyIM.js → beads-B1u04n3o.js} +1 -1
  17. package/server/{beads-BGGxrkZ5.js → beads-BeSMEjGT.js} +7 -7
  18. package/server/{beads-query-B1DlJVp9.js → beads-query-Dl4FhT8J.js} +2 -2
  19. package/server/{beads-restore-CyygSmmn.js → beads-restore-BUItPOjI.js} +2 -2
  20. package/server/behavior-BTpYbAv4.js +10 -0
  21. package/server/{briefing-freshness-Kh5V8RTh.js → briefing-freshness-DESTCWo-.js} +4 -4
  22. package/server/{checkpoint-manager-fu9oVsR-.js → checkpoint-manager-BwFdegJF.js} +2 -2
  23. package/server/{checkpoint-manager-CAFos8e1.js → checkpoint-manager-DWSXooZV.js} +1 -1
  24. package/server/checkpoint-worker.js +1 -1
  25. package/server/{checkpoints-1BqOlS4q.js → checkpoints-BtUonbs3.js} +2 -2
  26. package/server/{checkpoints-DvhGi8P_.js → checkpoints-fjadfOKF.js} +1 -1
  27. package/server/{claude-hooks-provision-s_wdpeVj.js → claude-hooks-provision-DAtxutOs.js} +132 -114
  28. package/server/claude-hooks-provision-DiK62u0k.js +3 -0
  29. package/server/{claude-permissions-CaWqysff.js → claude-permissions-CThLgf8d.js} +2 -2
  30. package/server/{claude-settings-overlay-CcTf0xzG.js → claude-settings-overlay-BF9MPIwx.js} +2 -2
  31. package/server/{claude-settings-overlay-BbA4FbVI.js → claude-settings-overlay-Dx_Uqcmv.js} +1 -1
  32. package/server/{cli-BwCvCUBK.js → cli-ByKIIMfT.js} +9 -9
  33. package/server/cli-D9cUTbBr.js +3 -0
  34. package/server/{cliproxy-BsoNNDAj.js → cliproxy-B4c1BUvs.js} +2 -2
  35. package/server/{cliproxy-C2xC-3vH.js → cliproxy-C_GuT5DU.js} +1 -1
  36. package/server/{close-issue-BleIwP3f.js → close-issue-BOuLKr6e.js} +5 -5
  37. package/server/{closed-issue-reaper-BwUUvjEW.js → closed-issue-reaper-CksfuiFD.js} +1 -1
  38. package/server/{closed-issue-reaper-mC5pujeb.js → closed-issue-reaper-DCAYzNXW.js} +9 -9
  39. package/server/{codex-B7DTpwEw.js → codex-BYPz6ZdF.js} +1 -1
  40. package/server/{codex-DW60_5j2.js → codex-BbqIRZjd.js} +6 -5
  41. package/server/{behavior-Cpj03N4v.js → codex-parser-mFYZh8vR.js} +3 -9
  42. package/server/{compact-beads-DKL54y6j.js → compact-beads-CyJtoXJi.js} +5 -5
  43. package/server/{compact-beads-CK_hHEnB.js → compact-beads-N00E4EVa.js} +1 -1
  44. package/server/{config-ZNnMpIlh.js → config-DVLdmnMJ.js} +2 -2
  45. package/server/{config-BRNQJXhA.js → config-Dj6N8EP9.js} +1 -1
  46. package/server/{config-yaml-Dcz-8uit.js → config-yaml-cNOZcEww.js} +91 -22
  47. package/server/{conflict-gate-DTje2Ll7.js → conflict-gate-BMKm_5DV.js} +3 -3
  48. package/server/{conflict-gate-DGT8jCLp.js → conflict-gate-CuXUv-bP.js} +1 -1
  49. package/server/{context-layers-ByOWUjUg.js → context-layers-CeAwSYNt.js} +2 -2
  50. package/server/{context-layers-BdUCQ-cl.js → context-layers-c0JqYHcS.js} +3 -3
  51. package/server/{control-settings-DwkAeooY.js → control-settings-D4EFsRBd.js} +4 -4
  52. package/server/{conversation-compaction-OTYgd6eg.js → conversation-compaction-BCggyih4.js} +8 -8
  53. package/server/{conversation-compaction-WYQZUVDm.js → conversation-compaction-kHVfVRg3.js} +1 -1
  54. package/server/{conversation-service-BR1OgvxO.js → conversation-service-B8LFQQm1.js} +6 -5
  55. package/server/{conversation-service-C_kNZPLx.js → conversation-service-BTzObqGi.js} +1 -1
  56. package/server/{conversations-DG2M8WnT.js → conversations-B-lcHv-5.js} +4 -4
  57. package/server/{conversations-izHvSoAR.js → conversations-BM7zlXjr.js} +1 -1
  58. package/server/{cost-B2mj17iG.js → cost-BcpRQ-7o.js} +3 -3
  59. package/server/{cost-DQ2ajr_m.js → cost-D9kPIY_5.js} +2 -2
  60. package/server/{cost-sync-gTayEuWP.js → cost-sync-DF6odxK9.js} +3 -3
  61. package/server/{dag-CqTehWpY.js → dag-DKI3sOmX.js} +3 -3
  62. package/server/{dangerous-git-ops-DDWQlPC3.js → dangerous-git-ops-Bn18PEcN.js} +1 -1
  63. package/server/dashboard-db-worker.js +6 -6
  64. package/server/{deacon-BqW9HMew.js → deacon-DONuopff.js} +3 -3
  65. package/server/{deacon-DrKDBeJL.js → deacon-DdARMjZq.js} +127 -107
  66. package/server/{deacon-nudge-log-D1wEK6zF.js → deacon-nudge-log-B-naf89q.js} +1 -1
  67. package/server/{deacon-swarm-CO_A7xyd.js → deacon-swarm-BNGkmYR_.js} +11 -11
  68. package/server/deacon-swarm-CvdFekIO.js +2 -0
  69. package/server/deacon.js +7 -7
  70. package/server/{devcontainer-renderer-BQolp_qZ.js → devcontainer-renderer-C-34Sxyz.js} +3 -3
  71. package/server/{dist-Bc32rWJB.js → dist-BMXvKiZP.js} +1 -1
  72. package/server/dist-BNwrgsUO.js +3 -0
  73. package/server/{dist-src-Byxt1ifL.js → dist-src-BgGUblXg.js} +1 -1
  74. package/server/{docker-s-esqZ__.js → docker-apZ9pBYw.js} +2 -2
  75. package/server/{ensure-devcontainer-DA4-jF6R.js → ensure-devcontainer-Bqi1EF1P.js} +4 -4
  76. package/server/{ensure-devcontainer-pUVaT0h3.js → ensure-devcontainer-Dq3KoOIl.js} +1 -1
  77. package/server/{esm-shims-CJHy8CZY.js → esm-shims-BEjvINX3.js} +1 -1
  78. package/server/{event-store-CcJAhKCl.js → event-store-CqDgfbAs.js} +1 -1
  79. package/server/{event-store-DRte2Rwt.js → event-store-D89fMfXS.js} +3 -3
  80. package/server/{events-Bej1w_k8.js → events-S_C0pvl6.js} +3 -3
  81. package/server/{events-CtsLScn8.js → events-rIGncmP1.js} +1 -1
  82. package/server/{export-Dx_qJ3h8.js → export-BJHSVwKP.js} +2 -2
  83. package/server/{factory-FN727tWr.js → factory-DV18m0rc.js} +5 -5
  84. package/server/{feature-registry-population-ie-yBcQC.js → feature-registry-population-CqZSnqQi.js} +4 -4
  85. package/server/{feature-registry-storage-CkZTFSsn.js → feature-registry-storage-BeXmNBwK.js} +2 -2
  86. package/server/{features-Dtm9ABuz.js → features-u5XeMaOK.js} +2 -2
  87. package/server/{feedback-target-BYtpyt1i.js → feedback-target-CwyWf0Dg.js} +6 -6
  88. package/server/{feedback-target-DVJQDiE4.js → feedback-target-DDG1PWl3.js} +1 -1
  89. package/server/{feedback-writer-DOUhyIW2.js → feedback-writer-BsJiw5aT.js} +1 -1
  90. package/server/{feedback-writer-fdE1BzeL.js → feedback-writer-D20HSXre.js} +4 -4
  91. package/server/{flywheel-CUErLAyN.js → flywheel-9Y1X7IM-.js} +13 -13
  92. package/server/{flywheel-Bv3wv2S6.js → flywheel-Dczmgchd.js} +12 -12
  93. package/server/{flywheel-Bi82iiNl.js → flywheel-RCnHAgc4.js} +1 -1
  94. package/server/{flywheel-merge-order-BaEN3iyN.js → flywheel-merge-order-CtCYsFJP.js} +7 -7
  95. package/server/{flywheel-merge-order-DXjeBnJ1.js → flywheel-merge-order-DEtEd3aK.js} +1 -1
  96. package/server/forge-8y6aEPTB.js +2 -0
  97. package/server/{forge-ButEdJ31.js → forge-DFDThFil.js} +2 -2
  98. package/server/{from-CbtTxftl.js → from-NSJypkI8.js} +1 -1
  99. package/server/{fts-db-CBgBLZcL.js → fts-db-C5A_TTOM.js} +2 -2
  100. package/server/{fts-operations-CI9Xuo_1.js → fts-operations-DvCSimfU.js} +2 -2
  101. package/server/{git-utils-BCLRWQ-y.js → git-utils-C0neHvQx.js} +1 -1
  102. package/server/{git-utils-ClfpP47N.js → git-utils-Dr0L7mFk.js} +2 -2
  103. package/server/{github-app-DRD2woO0.js → github-app-Bwt9lK4A.js} +1 -1
  104. package/server/{github-app-DscZ0_B6.js → github-app-u9-SX7Gc.js} +2 -2
  105. package/server/{github-client-DpiZnxGH.js → github-client-Btyy3uan.js} +3 -3
  106. package/server/{github-client-iFRw8f7e.js → github-client-Do3k-N1W.js} +1 -1
  107. package/server/{github-pr-lookup-D-EBexxC.js → github-pr-lookup-DOF1U2WW.js} +2 -2
  108. package/server/{harness-resolve-iMjyNUJ2.js → harness-resolve-C6g2R0Cd.js} +3 -3
  109. package/server/{health-events-CRdxDFN2.js → health-events-B4u-2a9m.js} +2 -2
  110. package/server/{health-events-B_WsQyYm.js → health-events-Bos3sk5g.js} +1 -1
  111. package/server/{hooks-C9b7Vqpw.js → hooks-BCoOjL_R.js} +2 -2
  112. package/server/{hooks-C1ScyVxP.js → hooks-uEr8WTx_.js} +1 -1
  113. package/server/{hume-TQ5pvOZ_.js → hume-BqxYKbUf.js} +2 -2
  114. package/server/hume-CerGi2RH.js +3 -0
  115. package/server/{idle-stack-reaper-B1kG7B_X.js → idle-stack-reaper-DbZ8ukMd.js} +2 -2
  116. package/server/{idle-stack-reaper-iFVOAoJy.js → idle-stack-reaper-H0W6XtHh.js} +1 -1
  117. package/server/{infra-bpq1MHKU.js → infra-Ba9mS6e6.js} +3 -3
  118. package/server/{injection-BLWfwTVZ.js → injection-C1DKXeIZ.js} +1 -1
  119. package/server/{injection-DJqWld1v.js → injection-yrMBxzVq.js} +7 -7
  120. package/server/{inspect-agent-DytCsltn.js → inspect-agent-B-mnb4uh.js} +9 -9
  121. package/server/inspect-agent-CWkeAB7J.js +2 -0
  122. package/server/{internal-token-CCaWaTwE.js → internal-token-BPYEaXFh.js} +1 -1
  123. package/server/{internal-token-CjlhdufS.js → internal-token-BtqSbKTx.js} +2 -2
  124. package/server/{io-BiQ2Cs3k.js → io-VEGSAqsd.js} +15 -22
  125. package/server/{issue-closed-FApNiOOs.js → issue-closed-BxcePXL-.js} +4 -4
  126. package/server/{issue-lifecycle-C-K53ASY.js → issue-lifecycle--8MRxrG1.js} +22 -22
  127. package/server/{issue-lifecycle-BkFWNjlD.js → issue-lifecycle-CdMUauyb.js} +1 -1
  128. package/server/{issue-service-singleton-CuHGpJJP.js → issue-service-singleton-CkTUI-eu.js} +10 -10
  129. package/server/{issue-service-singleton-bG1WdSdQ.js → issue-service-singleton-MZsDhAob.js} +1 -1
  130. package/server/{issues-CwQMphDH.js → issues-CBAsuoAO.js} +2 -2
  131. package/server/{jsonl-parser-dNIjHgym.js → jsonl-parser-BUW5_sSK.js} +3 -3
  132. package/server/{label-cleanup-DYvAZknd.js → label-cleanup-htK6fBRU.js} +3 -3
  133. package/server/{layers-CD6FysRU.js → layers-jjL16At6.js} +2 -2
  134. package/server/{lifecycle-C_73gi-C.js → lifecycle-Ck2UR27D.js} +7 -7
  135. package/server/{lifecycle-io-C_Wu0_i-.js → lifecycle-io-DXv8Utct.js} +1 -1
  136. package/server/{lifecycle-io-CeYxP3cE.js → lifecycle-io-IehcRt2v.js} +36 -47
  137. package/server/{linear-client-4qoKnuQu.js → linear-client-By7hjwuN.js} +1 -1
  138. package/server/{linear-client-EtVyblVz.js → linear-client-D9cSQfvD.js} +3 -3
  139. package/server/memory-fts-worker.js +1 -1
  140. package/server/{merge-brm721Es.js → merge-BLcEZNXz.js} +1 -1
  141. package/server/{merge-7rqkTUm2.js → merge-BN8FGJ2q.js} +3 -3
  142. package/server/{merge-agent-4Zhlgvqp.js → merge-agent-B3u2szOL.js} +29 -29
  143. package/server/{merge-agent-36wfYm2u.js → merge-agent-ejC7Wos8.js} +1 -1
  144. package/server/{merge-batch-itfnwdsT.js → merge-batch-DyqlgYGp.js} +1 -1
  145. package/server/{merge-blockers-Bto_Oe_o.js → merge-blockers-cq-aS2KG.js} +2 -2
  146. package/server/merge-ops-CFkQtXEj.js +2 -0
  147. package/server/{merge-rebase-Czfqfe4q.js → merge-rebase-Dl7yIxtV.js} +2 -2
  148. package/server/{merge-set-BIkGQL9j.js → merge-set-CZ9Nbay0.js} +3 -3
  149. package/server/{merge-set-G1RHcu3D.js → merge-set-Dy0D0r3i.js} +1 -1
  150. package/server/{merge-sync-DIrmlZUr.js → merge-sync-CG9kDCdT.js} +1 -1
  151. package/server/{merge-sync-B43Dybea.js → merge-sync-D7jWLgCC.js} +2 -2
  152. package/server/{merge-train-DGqVuNZV.js → merge-train-CH33XJOH.js} +3 -3
  153. package/server/{merge-train-deps-q15XLnAS.js → merge-train-deps-JoVdGnOg.js} +4 -4
  154. package/server/{merge-verification-Cqfxx6bE.js → merge-verification-D4wTChdX.js} +4 -4
  155. package/server/{multipart-parser-CiPxxfUH.js → multipart-parser-Csn8U-K9.js} +2 -2
  156. package/server/{no-resume-mode-yrPEQ_pC.js → no-resume-mode-Gh5R_YLF.js} +1 -1
  157. package/server/node_modules/.package-lock.json +1 -1
  158. package/server/{orphan-proposed-reconciler-DAD9FJtQ.js → orphan-proposed-reconciler-BIcNu4tl.js} +1 -1
  159. package/server/{orphan-proposed-reconciler-BWWHn4Lr.js → orphan-proposed-reconciler-DI_IS1p_.js} +10 -10
  160. package/server/package-lock.json +2 -2
  161. package/server/package.json +1 -1
  162. package/server/{pan-dir-Bj7Hy8iu.js → pan-dir-CQIfKG8c.js} +4 -4
  163. package/server/{paths-C9DkhIOT.js → paths-Blj6A9AJ.js} +2 -2
  164. package/server/{pickup-CKRuGDsB.js → pickup-BtvRBbvI.js} +1 -1
  165. package/server/{pipeline-notifier-BkKbQ8ji.js → pipeline-notifier-BH4PAi-w.js} +1 -1
  166. package/server/{pipeline-notifier-CAurUste.js → pipeline-notifier-D_WYtEwl.js} +2 -2
  167. package/server/{project-pipelines-BRWaGmI4.js → project-pipelines-jMTitpeO.js} +2 -2
  168. package/server/projects-CrBE6IhN.js +3 -0
  169. package/server/{prompts-DfI5qbTW.js → prompts-B3njaImU.js} +2 -2
  170. package/server/{providers-CWDXoaMA.js → providers-BbEyFhPX.js} +7 -7
  171. package/server/{providers-D-5txBRc.js → providers-DnPxkHoG.js} +1 -1
  172. package/server/public/assets/chunk-BO2N2NFS-3qh9TUJi.js +103 -0
  173. package/server/public/assets/{diagram-OG6HWLK6-Avtvq2qI.js → diagram-OG6HWLK6-D8UVTPj7.js} +1 -1
  174. package/server/public/assets/{dist-BEHQuasD.js → dist-BvLLn1YC.js} +3 -3
  175. package/server/public/assets/{dist-BvmY-qb1.js → dist-CyubL7Wj.js} +1 -1
  176. package/server/public/assets/{ganttDiagram-6RSMTGT7-7KhCd0fH.js → ganttDiagram-6RSMTGT7-BI4E1LbQ.js} +1 -1
  177. package/server/public/assets/{highlighted-body-OFNGDK62-iQoBMTf0.js → highlighted-body-OFNGDK62-D_bapWkF.js} +1 -1
  178. package/server/public/assets/index-BAZxZ-8I.js +796 -0
  179. package/server/public/assets/{index-DUFDmvmH.css → index-FBG3JBfq.css} +1 -1
  180. package/server/public/assets/{linear-CiJHW9g5.js → linear-CEdobObr.js} +1 -1
  181. package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +1 -0
  182. package/server/public/assets/{pieDiagram-4H26LBE5-BOhmvUhW.js → pieDiagram-4H26LBE5-DT79L01f.js} +1 -1
  183. package/server/public/assets/{prod-DmLBBqat.js → prod-CR_K2DFV.js} +4 -4
  184. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Cjku660G.js → quadrantDiagram-W4KKPZXB-BEkKXXrL.js} +1 -1
  185. package/server/public/assets/{sankeyDiagram-5OEKKPKP-D52w5oPh.js → sankeyDiagram-5OEKKPKP-BxSCqn-j.js} +1 -1
  186. package/server/public/assets/{xychartDiagram-2RQKCTM6-BTO07_Iv.js → xychartDiagram-2RQKCTM6-DicwJGG_.js} +1 -1
  187. package/server/public/index.html +2 -2
  188. package/server/{pull-requests-CKZPWhjD.js → pull-requests-43LPDfM8.js} +1 -1
  189. package/server/{pull-requests-Bmre-Xlz.js → pull-requests-DyUkQl4W.js} +3 -3
  190. package/server/{rally-BBd9tQ__.js → rally-BtWjybOa.js} +3 -3
  191. package/server/{rally-api-DDc85HIz.js → rally-api-B-YA_oXx.js} +1 -1
  192. package/server/{rally-api-DxZFObI_.js → rally-api-B-osULNL.js} +2 -2
  193. package/server/{rally-client-BADHn0m_.js → rally-client-CzFymP7P.js} +1 -1
  194. package/server/{rally-client-DvvLiAQP.js → rally-client-sErNQBO0.js} +5 -5
  195. package/server/rally-oggyp4cs.js +3 -0
  196. package/server/{reap-terminal-sessions-D6JDJsqF.js → reap-terminal-sessions-2s-fvilz.js} +1 -1
  197. package/server/{reap-terminal-sessions-D_xvy-Mk.js → reap-terminal-sessions-DnDQ7pf9.js} +1 -1
  198. package/server/{rebuild-stack-D19i080j.js → rebuild-stack-CoU-HqZj.js} +6 -6
  199. package/server/{rebuild-stack-GOsWqXi3.js → rebuild-stack-nGD_nPZo.js} +1 -1
  200. package/server/{reconstruct-cache-lQrG4xGg.js → reconstruct-cache-Wj8GrYB0.js} +6 -6
  201. package/server/{record-pyB6VA32.js → record-lEYK__LD.js} +1 -1
  202. package/server/{recovery-trip-Dfh1tNHn.js → recovery-trip-BT7nb9OV.js} +2 -2
  203. package/server/{release-engine-DxcMWRuK.js → release-engine-CBLQXDlH.js} +5 -5
  204. package/server/{release-set-BYsgX7o6.js → release-set-BNiqi7hy.js} +3 -3
  205. package/server/{remote-DmeL21dF.js → remote-DW_TWQnr.js} +3 -3
  206. package/server/{remote-8W2Yhygw.js → remote-DcO9An_f.js} +3 -3
  207. package/server/{remote-agents-BfQBE6MN.js → remote-agents-C4cyxHQS.js} +6 -6
  208. package/server/{remote-agents-DlvbzO7m.js → remote-agents-Cv-U-_V8.js} +1 -1
  209. package/server/{remote-completion-BgkiSQmx.js → remote-completion-PhXGGFQy.js} +13 -13
  210. package/server/{resolver-dTpSSzaH.js → resolver-C7dLn8OK.js} +2 -2
  211. package/server/resume-BYZBIab-.js +3 -0
  212. package/server/{review-agent-D025Wt7w.js → review-agent-Dn-yn7Zj.js} +23 -23
  213. package/server/{review-agent-Rub0OpZc.js → review-agent-u5q3ip7H.js} +1 -1
  214. package/server/{review-artifacts-CX951jTU.js → review-artifacts-D4T04aYI.js} +6 -6
  215. package/server/{review-context-DGGGR_w5.js → review-context-Rc0VDLG_.js} +8 -8
  216. package/server/{review-monitor-0_qqMcnS.js → review-monitor-BC--miCO.js} +2 -2
  217. package/server/{review-status-Br6lAFGO.js → review-status-CG0iDuWa.js} +1 -1
  218. package/server/{review-status-4qqLkRMu.js → review-status-Dc1l4dVz.js} +18 -18
  219. package/server/{review-status-enrichment-Cr8m3uVL.js → review-status-enrichment-C1a1OG_1.js} +3 -3
  220. package/server/{review-status-sync-OC-l1lNt.js → review-status-sync-CAr-hfnJ.js} +2 -2
  221. package/server/{review-status-sync-D3KUhsdA.js → review-status-sync-CfSixhhX.js} +1 -1
  222. package/server/{review-verdict-feedback-DrWMuRaj.js → review-verdict-feedback-CVDbIDBe.js} +7 -7
  223. package/server/{review-verdict-feedback-YOzmsq9G.js → review-verdict-feedback-D2Q960wX.js} +1 -1
  224. package/server/{rollup-DmazRY0j.js → rollup-CakjztPl.js} +1 -1
  225. package/server/{rollup-CnxbwaLH.js → rollup-DctoIu-A.js} +8 -8
  226. package/server/{scanner-DE1MqAaF.js → scanner-BTM1jc_u.js} +7 -7
  227. package/server/{sequence-io-C0uoqfGx.js → sequence-io-pnoIDGv4.js} +4 -4
  228. package/server/{sequencer-agent-i-b2u4SJ.js → sequencer-agent-9Soi-WL-.js} +6 -6
  229. package/server/server.js +422 -1746
  230. package/server/{service-D0_gh2tl.js → service-DfTVoqJg.js} +46 -46
  231. package/server/{session-fork-DZ12vipL.js → session-fork-C4jAFHj8.js} +2 -2
  232. package/server/session-history-DanhhiCw.js +168 -0
  233. package/server/{settings-ByqjPtFO.js → settings-Cuc12oP_.js} +2 -2
  234. package/server/settings-Cy7SCFO9.js +2 -0
  235. package/server/{settings-DCC4BAqj.js → settings-DfT3f86D.js} +3 -3
  236. package/server/{shadow-engineering-BhnmtW5m.js → shadow-engineering-bKuKTCn-.js} +3 -3
  237. package/server/{shadow-state-ByXZehsy.js → shadow-state-CVHpRWlb.js} +1 -1
  238. package/server/{shadow-state-CKm8xWX9.js → shadow-state-DJz6_pb_.js} +2 -2
  239. package/server/{ship-log-DE_0Cv_i.js → ship-log-CwqPFfqx.js} +1 -1
  240. package/server/{smart-compaction-h4_ca6Uk.js → smart-compaction-B4KlpZGN.js} +1 -1
  241. package/server/{smart-compaction-D5Zen3AA.js → smart-compaction-CiWfGfRZ.js} +7 -7
  242. package/server/{spawn-planning-session-Dueit4WX.js → spawn-planning-session-CU-DwyDl.js} +15 -15
  243. package/server/{spawn-planning-session-Bgi7Ub02.js → spawn-planning-session-D5N3RuLG.js} +1 -1
  244. package/server/{specialist-completion-BZ8M-WZ0.js → specialist-completion-CJcv-NXH.js} +1 -1
  245. package/server/{specialist-context-BMq83C58.js → specialist-context-B2HlbNxS.js} +5 -5
  246. package/server/{specialist-handoff-logger-BxX1YefH.js → specialist-handoff-logger-CQyF1ygu.js} +2 -2
  247. package/server/{specialist-logs-BWZYcJ6P.js → specialist-logs-CdcUpfjj.js} +3 -3
  248. package/server/{specialists-BudKrjOu.js → specialists-CFgw_0Q6.js} +1657 -113
  249. package/server/{specialists-DrPrC9Y9.js → specialists-CwzFdapR.js} +18 -18
  250. package/server/{specialists-ZkW4Mb7U.js → specialists-D7AcFi1u.js} +1 -1
  251. package/server/{specialists-8ZAguXef.js → specialists-k22_Btaq.js} +1 -1
  252. package/server/specs-RzcDgozr.js +3 -0
  253. package/server/{src-DHn4Rd2F.js → src-B4TTzNSr.js} +72 -1
  254. package/server/{src-Dv6L03vW.js → src-BvpMg4EB.js} +3 -3
  255. package/server/{src-DNUUqkec.js → src-D4YUZrwR.js} +6 -6
  256. package/server/{stack-health-DxsTx7II.js → stack-health-CSgcYcr8.js} +2 -2
  257. package/server/{stack-health-Dclm7_tu.js → stack-health-DVN7zRnL.js} +1 -1
  258. package/server/{state-home-CRowbXqU.js → state-home-CEvD_v5F.js} +6 -6
  259. package/server/{state-mapping-BvAgFK8n.js → state-mapping-C13UaCL7.js} +1 -1
  260. package/server/{stuck-remediation-CFWUP8_I.js → stuck-remediation-CxsyxwFO.js} +43 -21
  261. package/server/{stuck-remediation-CLHd-lrF.js → stuck-remediation-nTIvhGOR.js} +1 -1
  262. package/server/{summary-fork-CKc01Our.js → summary-fork-CnRMPCYd.js} +2 -2
  263. package/server/{summary-fork-CtCwBJ2Z.js → summary-fork-gKSoFAnK.js} +8 -8
  264. package/server/{supervisor-BA5D72Qa.js → supervisor-CZMs8s0M.js} +2 -2
  265. package/server/supervisor-CfX192ma.js +2 -0
  266. package/server/{swarm-readiness-CL5sM9B1.js → swarm-readiness-h6-pwY8w.js} +3 -3
  267. package/server/{system-prerequisites-DmFSXIE5.js → system-prerequisites-DZZTi2G6.js} +1 -1
  268. package/server/{teardown-workspace-DWmFJzTw.js → teardown-workspace-B4D-oCVg.js} +17 -17
  269. package/server/{test-agent-queue-DjsQoV5X.js → test-agent-queue-CnuYku4B.js} +6 -6
  270. package/server/{test-verdict-BSqsQp3G.js → test-verdict-CRsPpByy.js} +1 -1
  271. package/server/{test-verdict-D1AmZ2c0.js → test-verdict-CXMLATGc.js} +1 -1
  272. package/server/{tldr-daemon-DD9rI5gA.js → tldr-daemon-CgZQ3jmZ.js} +1 -1
  273. package/server/{tldr-daemon-C-MGomL8.js → tldr-daemon-CuA8hz21.js} +2 -2
  274. package/server/{tmux-x291Gjjb.js → tmux-By8E_Yv_.js} +1 -1
  275. package/server/{tmux-C_d-lSIq.js → tmux-C3g9VFcg.js} +2 -2
  276. package/server/{token-DfBf1bsd.js → token-g_sJ19g3.js} +2 -2
  277. package/server/token-util-C9u4An3K.js +3 -0
  278. package/server/{token-util-CROoF5ic.js → token-util-DiwnnbJo.js} +1 -1
  279. package/server/{tracker-config-DItsdelv.js → tracker-config-BzfVj41Z.js} +1 -1
  280. package/server/{tracker-config-CNODpd11.js → tracker-config-dQxC15vH.js} +2 -2
  281. package/server/{tracker-utils-Ch2_5GGf.js → tracker-utils--z8FLSWn.js} +2 -2
  282. package/server/{tracker-utils-B9ZoVA9b.js → tracker-utils-DkKyRT0H.js} +1 -1
  283. package/server/{traefik-connect-BF4x_LUQ.js → traefik-connect-CZYB3dlm.js} +1 -1
  284. package/server/{tunnel-r_5nHAI6.js → tunnel-BpWZs0Jy.js} +3 -3
  285. package/server/{tunnel-YD80_IHr.js → tunnel-CN2px87h.js} +1 -1
  286. package/server/{typed-errors-DSPn_xWP.js → typed-errors-CrN1AByg.js} +1 -1
  287. package/server/{typed-errors-BEJhbjJg.js → typed-errors-sLpGfegz.js} +1 -1
  288. package/server/{types-CE1m_daD.js → types-BLS_Zbmd.js} +1 -1
  289. package/server/{types-33JEP4LZ.js → types-tlXf80x3.js} +1 -1
  290. package/server/{uat-train-DjkFWXge.js → uat-train-BRo6DM7p.js} +24 -24
  291. package/server/{uat-train-DDI00aqD.js → uat-train-utGVmqdm.js} +1 -1
  292. package/server/{validation-DUTiJnyz.js → validation-CsPVsoA0.js} +4 -4
  293. package/server/{validation-ict8hnXk.js → validation-Dq_wwcw3.js} +1 -1
  294. package/server/{verification-runner-inLgeQux.js → verification-runner-CMT5WRMS.js} +11 -11
  295. package/server/{verification-runner-ATaLbpr5.js → verification-runner-D0Uh-9jc.js} +1 -1
  296. package/server/{vtt-parser-QnRfcjiU.js → vtt-parser-C_XPlifj.js} +1 -1
  297. package/server/{work-agent-prompt-fZljjA1_.js → work-agent-prompt-ZTAb2Hyf.js} +11 -11
  298. package/server/workflows-BLwxUMP7.js +2 -0
  299. package/server/{workflows-oBnJ7Tm0.js → workflows-CXRwhw_o.js} +14 -14
  300. package/server/{workspace-B2WOW9Hw.js → workspace-9UEsKuiP.js} +1 -1
  301. package/server/{workspace-CNuW2j41.js → workspace-CNfuj1-5.js} +3 -3
  302. package/server/{workspace-config-CBgMGhWs.js → workspace-config-ChWOECy0.js} +1 -1
  303. package/server/{workspace-manager-DjUAJCSs.js → workspace-manager-BO-6k3sP.js} +1 -1
  304. package/server/{workspace-manager-CB-R07R3.js → workspace-manager-D8AByFIT.js} +13 -13
  305. package/server/{workspace-metadata-9Nn5kgRl.js → workspace-metadata-CvC268MN.js} +2 -2
  306. package/server/{workspace-metadata-Fd58uUQG.js → workspace-metadata-DZiJtnuF.js} +1 -1
  307. package/server/{workspaces-BjWXntty.js → workspaces-D-uIoqbg.js} +103 -95
  308. package/server/{writer-CQMGzEkw.js → writer-BUweuRPx.js} +1 -1
  309. package/server/{writer-fe1-8iGc.js → writer-CrP2xuBn.js} +3 -3
  310. package/sync-sources/hooks/ask-user-question-hook +7 -1
  311. package/sync-sources/hooks/record-cost-event.js +2 -2
  312. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  313. package/server/agent-runtime-mirror-DrWxopNA.js +0 -37
  314. package/server/cli-ClIQwgMI.js +0 -3
  315. package/server/deacon-swarm-BY5hKNaU.js +0 -2
  316. package/server/dist-DGTwcZhI.js +0 -3
  317. package/server/forge-XlDgPQWs.js +0 -2
  318. package/server/hume-K1pi8jC4.js +0 -3
  319. package/server/inspect-agent-477VxQim.js +0 -2
  320. package/server/merge-ops-PzqsW69V.js +0 -2
  321. package/server/projects-KJ94e50I.js +0 -3
  322. package/server/public/assets/chunk-BO2N2NFS-ClukPsZQ.js +0 -103
  323. package/server/public/assets/index-DnTZ2QeN.js +0 -796
  324. package/server/public/assets/mermaid-GHXKKRXX-DZJOwgBG.js +0 -1
  325. package/server/rally-Dc2Wnxw2.js +0 -3
  326. package/server/resume-DhcIqsTm.js +0 -3
  327. package/server/settings-yydgaqhv.js +0 -2
  328. package/server/specs-DwoAEGrW.js +0 -3
  329. package/server/supervisor-DHjumXlL.js +0 -2
  330. package/server/token-util-xNaV-00f.js +0 -3
  331. package/server/workflows-tU7KKxQi.js +0 -2
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin, r as __exportAll } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Ar as OVERDECK_HOME, qr as init_paths, xr as AGENTS_DIR } from "./config-yaml-Dcz-8uit.js";
3
- import { E as listPaneValues, L as sessionExists, w as killSession, x as init_tmux } from "./tmux-C_d-lSIq.js";
4
- import { a as readCavemanVariant, n as init_workspace } from "./workspace-CNuW2j41.js";
5
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-iMjyNUJ2.js";
6
- import { a as init_jsonl_parser, n as getAllSessionFilesSync, s as parseClaudeSessionSync } from "./jsonl-parser-dNIjHgym.js";
2
+ import { Jr as init_paths, Sr as AGENTS_DIR, jr as OVERDECK_HOME } from "./config-yaml-cNOZcEww.js";
3
+ import { E as listPaneValues, L as sessionExists, w as killSession, x as init_tmux } from "./tmux-C3g9VFcg.js";
4
+ import { a as readCavemanVariant, n as init_workspace } from "./workspace-CNfuj1-5.js";
5
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-C6g2R0Cd.js";
6
+ import { a as init_jsonl_parser, n as getAllSessionFilesSync, s as parseClaudeSessionSync } from "./jsonl-parser-BUW5_sSK.js";
7
7
  import { Effect } from "effect";
8
8
  import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
9
9
  import { basename, join } from "path";
@@ -89,7 +89,7 @@ function roleForSpecialistModel(specialistType) {
89
89
  return { role: "work" };
90
90
  }
91
91
  async function buildSpecialistBaseCommand(specialistType, model, sessionName) {
92
- const { getAgentRuntimeBaseCommand } = await import("./agents-DCvyTXNU.js");
92
+ const { getAgentRuntimeBaseCommand } = await import("./agents-CEcaxSkR.js");
93
93
  const role = roleForSpecialistModel(specialistType).role;
94
94
  const harness = await resolveHarness({
95
95
  model,
@@ -488,7 +488,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
488
488
  const resolvedTmuxSession = metadata.tmuxSession ?? getTmuxSessionName(specialistType, projectKey, issueId);
489
489
  updateRunStatus(projectKey, registryKey, result.status);
490
490
  if (metadata.currentRun) try {
491
- const { finalizeRunLogSync } = await import("./specialist-logs-BWZYcJ6P.js");
491
+ const { finalizeRunLogSync } = await import("./specialist-logs-CdcUpfjj.js");
492
492
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
493
493
  status: result.status,
494
494
  notes: result.notes
@@ -498,7 +498,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
498
498
  }
499
499
  setCurrentRun(projectKey, registryKey, null);
500
500
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
501
- import("./agents-DCvyTXNU.js").then(({ saveAgentRuntimeState }) => {
501
+ import("./agents-CEcaxSkR.js").then(({ saveAgentRuntimeState }) => {
502
502
  saveAgentRuntimeState(resolvedTmuxSession, {
503
503
  state: "idle",
504
504
  lastActivity: (/* @__PURE__ */ new Date()).toISOString(),
@@ -529,7 +529,7 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
529
529
  console.error(`[specialist] Failed to kill tmux session ${tmuxSession}:`, error);
530
530
  }
531
531
  if (metadata.currentRun) {
532
- const { finalizeRunLogSync } = await import("./specialist-logs-BWZYcJ6P.js");
532
+ const { finalizeRunLogSync } = await import("./specialist-logs-CdcUpfjj.js");
533
533
  try {
534
534
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
535
535
  status: metadata.lastRunStatus || "incomplete",
@@ -543,12 +543,12 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
543
543
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
544
544
  const key = `${projectKey}-${specialistType}`;
545
545
  gracePeriodStates.delete(key);
546
- const { saveAgentRuntimeState } = await import("./agents-DCvyTXNU.js");
546
+ const { saveAgentRuntimeState } = await import("./agents-CEcaxSkR.js");
547
547
  saveAgentRuntimeState(tmuxSession, {
548
548
  state: "suspended",
549
549
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
550
550
  });
551
- const { scheduleDigestGeneration } = await import("./specialist-context-BMq83C58.js");
551
+ const { scheduleDigestGeneration } = await import("./specialist-context-B2HlbNxS.js");
552
552
  scheduleDigestGeneration(projectKey, specialistType);
553
553
  scheduleLogCleanup(projectKey, specialistType);
554
554
  }
@@ -561,8 +561,8 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
561
561
  function scheduleLogCleanup(projectKey, specialistType) {
562
562
  Promise.resolve().then(async () => {
563
563
  try {
564
- const { cleanupOldLogsSync } = await import("./specialist-logs-BWZYcJ6P.js");
565
- const { getSpecialistRetention } = await import("./projects-KJ94e50I.js");
564
+ const { cleanupOldLogsSync } = await import("./specialist-logs-CdcUpfjj.js");
565
+ const { getSpecialistRetention } = await import("./projects-CrBE6IhN.js");
566
566
  const retention = getSpecialistRetention(projectKey);
567
567
  const deleted = cleanupOldLogsSync(projectKey, specialistType, {
568
568
  maxDays: retention.max_days,
@@ -716,7 +716,7 @@ function listSpecialistsForProject(projectKey) {
716
716
  */
717
717
  async function getAllProjectSpecialistStatuses() {
718
718
  const registry = loadRegistry();
719
- const { getAgentRuntimeStateSync } = await import("./agents-DCvyTXNU.js");
719
+ const { getAgentRuntimeStateSync } = await import("./agents-CEcaxSkR.js");
720
720
  const results = [];
721
721
  for (const [projectKey, specialists] of Object.entries(registry.projects)) for (const [registryKey, metadata] of Object.entries(specialists)) {
722
722
  const { specialistType, issueId, role } = parseSpecialistRegistryKey(registryKey);
@@ -853,7 +853,7 @@ async function getSpecialistStatus(name, projectKey) {
853
853
  const sessionId = readRecordedClaudeSessionId(getTmuxSessionName(name, projectKey));
854
854
  const running = await isRunning(name, projectKey);
855
855
  const contextTokens = countContextTokens(name);
856
- const { getAgentRuntimeStateSync } = await import("./agents-DCvyTXNU.js");
856
+ const { getAgentRuntimeStateSync } = await import("./agents-CEcaxSkR.js");
857
857
  const runtimeState = getAgentRuntimeStateSync(getTmuxSessionName(name, projectKey));
858
858
  let state;
859
859
  if (runtimeState) switch (runtimeState.state) {
@@ -933,7 +933,7 @@ async function sendFeedbackToAgent(feedback) {
933
933
  }
934
934
  const agentSession = `agent-${toIssueId.toLowerCase()}`;
935
935
  const feedbackMessage = formatFeedbackForAgent(fullFeedback);
936
- const { writeFeedbackFile } = await import("./feedback-writer-DOUhyIW2.js");
936
+ const { writeFeedbackFile } = await import("./feedback-writer-BsJiw5aT.js");
937
937
  const specialist = {
938
938
  "review-agent": "review-agent",
939
939
  "test-agent": "test-agent",
@@ -952,7 +952,7 @@ async function sendFeedbackToAgent(feedback) {
952
952
  return false;
953
953
  }
954
954
  try {
955
- const { messageAgent } = await import("./agents-DCvyTXNU.js");
955
+ const { messageAgent } = await import("./agents-CEcaxSkR.js");
956
956
  await messageAgent(agentSession, `SPECIALIST FEEDBACK: ${fromSpecialist} reported ${feedback.feedbackType.toUpperCase()} for ${toIssueId}.\n\nMUST READ: ${fileResult.filePath}\n\nUse your Read tool to open this file, read every line, then address the feedback and continue working. Do NOT stop at the prompt.`);
957
957
  console.log(`[specialist] Sent feedback from ${fromSpecialist} to ${agentSession} (file: ${fileResult.filePath})`);
958
958
  return true;
@@ -1071,4 +1071,4 @@ var init_specialists = __esmMin((() => {
1071
1071
  //#endregion
1072
1072
  export { updateRunMetadata as $, isEnabled as A, pauseGracePeriod as B, getSpecialistState as C, initSpecialistsDirectory as D, incrementProjectRunCount as E, listSpecialistsForProject as F, sendFeedbackToAgent as G, recordWake as H, loadRegistry as I, specialists_exports as J, setCurrentRun as K, makeSpecialistRegistryKey as L, isProjectSpecialistActivelyRunning as M, isRunning as N, init_specialists as O, listProjectsWithSpecialists as P, updateProjectSpecialistMetadata as Q, parseReviewerSessionName as R, getSpecialistMetadata as S, getTmuxSessionName as T, resumeGracePeriod as U, pruneSpecialistRegistryEntriesForIssue as V, saveRegistry as W, terminateSpecialist as X, startGracePeriod as Y, updateContextTokens as Z, getPendingFeedback as _, disableSpecialist as a, getReviewerSessionName as b, exitGracePeriod as c, getAllProjectSpecialistStatuses as d, updateRunStatus as et, getAllSpecialistStatus as f, getGracePeriodState as g, getFeedbackStats as h, countContextTokens as i, isInitialized as j, initializeEnabledSpecialists as k, findActiveRegistryKey as l, getEnabledSpecialists as m, buildSpecialistBaseCommand as n, enableSpecialist as o, getAllSpecialists as p, signalSpecialistCompletion as q, buildSpecialistCavemanExports as r, ensureProjectSpecialistDir as s, REVIEWER_ROLES as t, updateSpecialistMetadata as tt, findSessionFile as u, getProjectSpecialistDir as v, getSpecialistStatus as w, getRunMetadata as x, getProjectSpecialistMetadata as y, parseSpecialistRegistryKey as z };
1073
1073
 
1074
- //# sourceMappingURL=specialists-DrPrC9Y9.js.map
1074
+ //# sourceMappingURL=specialists-CwzFdapR.js.map
@@ -1,2 +1,2 @@
1
- import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-BudKrjOu.js";
1
+ import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-CFgw_0Q6.js";
2
2
  export { _serverManagedMerges, specialistsRouteLayer as default, specialistsRouteLayer, firePostMergeLifecycle, validateSpecialistAutoCompleteMetadata };
@@ -1,3 +1,3 @@
1
- import { $ as updateRunMetadata, A as isEnabled, B as pauseGracePeriod, C as getSpecialistState, D as initSpecialistsDirectory, E as incrementProjectRunCount, F as listSpecialistsForProject, G as sendFeedbackToAgent, H as recordWake, I as loadRegistry, K as setCurrentRun, L as makeSpecialistRegistryKey, M as isProjectSpecialistActivelyRunning, N as isRunning, O as init_specialists, P as listProjectsWithSpecialists, Q as updateProjectSpecialistMetadata, R as parseReviewerSessionName, S as getSpecialistMetadata, T as getTmuxSessionName, U as resumeGracePeriod, V as pruneSpecialistRegistryEntriesForIssue, W as saveRegistry, X as terminateSpecialist, Y as startGracePeriod, Z as updateContextTokens, _ as getPendingFeedback, a as disableSpecialist, b as getReviewerSessionName, c as exitGracePeriod, d as getAllProjectSpecialistStatuses, et as updateRunStatus, f as getAllSpecialistStatus, g as getGracePeriodState, h as getFeedbackStats, i as countContextTokens, j as isInitialized, k as initializeEnabledSpecialists, l as findActiveRegistryKey, m as getEnabledSpecialists, n as buildSpecialistBaseCommand, o as enableSpecialist, p as getAllSpecialists, q as signalSpecialistCompletion, r as buildSpecialistCavemanExports, s as ensureProjectSpecialistDir, t as REVIEWER_ROLES, tt as updateSpecialistMetadata, u as findSessionFile, v as getProjectSpecialistDir, w as getSpecialistStatus, x as getRunMetadata, y as getProjectSpecialistMetadata, z as parseSpecialistRegistryKey } from "./specialists-DrPrC9Y9.js";
1
+ import { $ as updateRunMetadata, A as isEnabled, B as pauseGracePeriod, C as getSpecialistState, D as initSpecialistsDirectory, E as incrementProjectRunCount, F as listSpecialistsForProject, G as sendFeedbackToAgent, H as recordWake, I as loadRegistry, K as setCurrentRun, L as makeSpecialistRegistryKey, M as isProjectSpecialistActivelyRunning, N as isRunning, O as init_specialists, P as listProjectsWithSpecialists, Q as updateProjectSpecialistMetadata, R as parseReviewerSessionName, S as getSpecialistMetadata, T as getTmuxSessionName, U as resumeGracePeriod, V as pruneSpecialistRegistryEntriesForIssue, W as saveRegistry, X as terminateSpecialist, Y as startGracePeriod, Z as updateContextTokens, _ as getPendingFeedback, a as disableSpecialist, b as getReviewerSessionName, c as exitGracePeriod, d as getAllProjectSpecialistStatuses, et as updateRunStatus, f as getAllSpecialistStatus, g as getGracePeriodState, h as getFeedbackStats, i as countContextTokens, j as isInitialized, k as initializeEnabledSpecialists, l as findActiveRegistryKey, m as getEnabledSpecialists, n as buildSpecialistBaseCommand, o as enableSpecialist, p as getAllSpecialists, q as signalSpecialistCompletion, r as buildSpecialistCavemanExports, s as ensureProjectSpecialistDir, t as REVIEWER_ROLES, tt as updateSpecialistMetadata, u as findSessionFile, v as getProjectSpecialistDir, w as getSpecialistStatus, x as getRunMetadata, y as getProjectSpecialistMetadata, z as parseSpecialistRegistryKey } from "./specialists-CwzFdapR.js";
2
2
  init_specialists();
3
3
  export { REVIEWER_ROLES, buildSpecialistBaseCommand, buildSpecialistCavemanExports, countContextTokens, disableSpecialist, enableSpecialist, ensureProjectSpecialistDir, exitGracePeriod, findActiveRegistryKey, findSessionFile, getAllProjectSpecialistStatuses, getAllSpecialistStatus, getAllSpecialists, getEnabledSpecialists, getFeedbackStats, getGracePeriodState, getPendingFeedback, getProjectSpecialistDir, getProjectSpecialistMetadata, getReviewerSessionName, getRunMetadata, getSpecialistMetadata, getSpecialistState, getSpecialistStatus, getTmuxSessionName, incrementProjectRunCount, initSpecialistsDirectory, initializeEnabledSpecialists, isEnabled, isInitialized, isProjectSpecialistActivelyRunning, isRunning, listProjectsWithSpecialists, listSpecialistsForProject, loadRegistry, makeSpecialistRegistryKey, parseReviewerSessionName, parseSpecialistRegistryKey, pauseGracePeriod, pruneSpecialistRegistryEntriesForIssue, recordWake, resumeGracePeriod, saveRegistry, sendFeedbackToAgent, setCurrentRun, signalSpecialistCompletion, startGracePeriod, terminateSpecialist, updateContextTokens, updateProjectSpecialistMetadata, updateRunMetadata, updateRunStatus, updateSpecialistMetadata };
@@ -0,0 +1,3 @@
1
+ import { C as findSpecByIssue, T as init_specs } from "./io-VEGSAqsd.js";
2
+ init_specs();
3
+ export { findSpecByIssue };
@@ -237,6 +237,11 @@ var init_types = __esmMin((() => {
237
237
  }))
238
238
  }))
239
239
  })),
240
+ pendingProposedPlan: Schema.optional(Schema.Struct({
241
+ toolUseId: Schema.String,
242
+ askedAt: Schema.String,
243
+ plan: Schema.String
244
+ })),
240
245
  resolution: Schema.optional(AgentResolution),
241
246
  resolutionCount: Schema.optional(Schema.Number),
242
247
  runtimeSnapshotSequence: Schema.optional(SequenceNumber)
@@ -949,6 +954,11 @@ var init_events = __esmMin((() => {
949
954
  }))
950
955
  }))
951
956
  })),
957
+ pendingProposedPlan: Schema.optional(Schema.Struct({
958
+ toolUseId: Schema.String,
959
+ askedAt: Schema.String,
960
+ plan: Schema.String
961
+ })),
952
962
  resolution: Schema.optional(AgentResolution),
953
963
  resolutionCount: Schema.optional(Schema.Number)
954
964
  })
@@ -2736,6 +2746,7 @@ function applyEvent(state, event) {
2736
2746
  pendingInputCount: event.payload.pendingInputCount,
2737
2747
  pendingInputKinds: event.payload.pendingInputKinds,
2738
2748
  pendingAskUserQuestion: event.payload.pendingAskUserQuestion,
2749
+ pendingProposedPlan: event.payload.pendingProposedPlan,
2739
2750
  resolution: event.payload.resolution,
2740
2751
  resolutionCount: event.payload.resolutionCount
2741
2752
  }
@@ -2853,6 +2864,7 @@ function applyEvent(state, event) {
2853
2864
  delete base["pendingInputCount"];
2854
2865
  delete base["pendingInputKinds"];
2855
2866
  delete base["pendingAskUserQuestion"];
2867
+ delete base["pendingProposedPlan"];
2856
2868
  }
2857
2869
  return base;
2858
2870
  })();
@@ -4293,6 +4305,64 @@ var init_harness_behavior = __esmMin((() => {
4293
4305
  workAgentMode: "codex-work-tui",
4294
4306
  readyTimeoutSeconds: 30
4295
4307
  };
4308
+ })), HygieneFinding, HygienePullRequest;
4309
+ var init_hygiene = __esmMin((() => {
4310
+ HygieneFinding = Schema.Struct({
4311
+ id: Schema.String,
4312
+ summary: Schema.String,
4313
+ detail: Schema.optional(Schema.String),
4314
+ urgent: Schema.optional(Schema.Boolean)
4315
+ });
4316
+ HygienePullRequest = Schema.Struct({
4317
+ number: Schema.Number,
4318
+ branch: Schema.String,
4319
+ url: Schema.String,
4320
+ blocking: Schema.Literals([
4321
+ "review-pending",
4322
+ "test-pending",
4323
+ "failing-checks",
4324
+ "awaiting-UAT",
4325
+ "clean"
4326
+ ])
4327
+ });
4328
+ Schema.Struct({
4329
+ generatedAt: Schema.String,
4330
+ root: Schema.String,
4331
+ needsAttention: Schema.Boolean,
4332
+ skipped: Schema.Array(Schema.String),
4333
+ push: Schema.Struct({
4334
+ ahead: Schema.Number,
4335
+ commits: Schema.Array(Schema.String)
4336
+ }),
4337
+ tree: Schema.Struct({
4338
+ files: Schema.Array(Schema.String),
4339
+ backups: Schema.Array(Schema.String)
4340
+ }),
4341
+ prs: Schema.Array(HygienePullRequest),
4342
+ agents: Schema.Struct({
4343
+ counts: Schema.Record(Schema.String, Schema.Number),
4344
+ problems: Schema.Array(HygieneFinding)
4345
+ }),
4346
+ sessions: Schema.Struct({
4347
+ total: Schema.Number,
4348
+ zombies: Schema.Array(Schema.String)
4349
+ }),
4350
+ branches: Schema.Struct({ stale: Schema.Array(Schema.String) }),
4351
+ workspaces: Schema.Struct({ stale: Schema.Array(Schema.String) }),
4352
+ disk: Schema.Struct({
4353
+ availableGb: Schema.Number,
4354
+ thresholdGb: Schema.Number,
4355
+ urgent: Schema.Boolean
4356
+ }),
4357
+ fixes: Schema.Struct({
4358
+ branchesDeleted: Schema.Array(Schema.String),
4359
+ workspacesRemoved: Schema.Array(Schema.Struct({
4360
+ path: Schema.String,
4361
+ freedBytes: Schema.Number
4362
+ })),
4363
+ errors: Schema.Array(Schema.String)
4364
+ })
4365
+ });
4296
4366
  }));
4297
4367
  //#endregion
4298
4368
  //#region ../../../packages/contracts/src/index.ts
@@ -4309,8 +4379,9 @@ var init_src = __esmMin((() => {
4309
4379
  init_artifacts();
4310
4380
  init_feature_registry();
4311
4381
  init_harness_behavior();
4382
+ init_hygiene();
4312
4383
  }));
4313
4384
  //#endregion
4314
4385
  export { normalizeChannelReplyPayload as C, MemoryStatus as S, FlywheelRunId as _, getHarnessBehavior as a, DomainEvent as b, FlywheelStats as c, getMaxTurnDiffSummariesPerAgent as d, isTerminalTurnDiffSummaryStatus as f, WS_METHODS as g, PanRpcGroup as h, OHMYPI_BEHAVIOR as i, INITIAL_READ_MODEL_STATE as l, PanRpcError as m, CLAUDE_CODE_BEHAVIOR as n, ContextLayerSaveRequest as o, trimTurnDiffSummaries as p, CODEX_BEHAVIOR as r, ContextPreviewRequest as s, init_src as t, applyEvent as u, FlywheelStatus as v, MemoryObservation as x, EDITORS as y };
4315
4386
 
4316
- //# sourceMappingURL=src-DHn4Rd2F.js.map
4387
+ //# sourceMappingURL=src-B4TTzNSr.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { i as init_esm_min, n as FormData, o as Blob, r as formDataToBlob, s as init_fetch_blob, t as init_from } from "./from-CbtTxftl.js";
2
+ import { i as init_esm_min, n as FormData, o as Blob, r as formDataToBlob, s as init_fetch_blob, t as init_from } from "./from-NSJypkI8.js";
3
3
  import { deprecate, promisify, types } from "node:util";
4
4
  import { Buffer as Buffer$1 } from "node:buffer";
5
5
  import Stream, { PassThrough, pipeline } from "node:stream";
@@ -209,7 +209,7 @@ var init_body = __esmMin((() => {
209
209
  for (const [name, value] of parameters) formData.append(name, value);
210
210
  return formData;
211
211
  }
212
- const { toFormData } = await import("./multipart-parser-CiPxxfUH.js");
212
+ const { toFormData } = await import("./multipart-parser-Csn8U-K9.js");
213
213
  return toFormData(this.body, ct);
214
214
  }
215
215
  /**
@@ -1176,4 +1176,4 @@ __esmMin((() => {
1176
1176
  }))();
1177
1177
  export { fetch as default };
1178
1178
 
1179
- //# sourceMappingURL=src-Dv6L03vW.js.map
1179
+ //# sourceMappingURL=src-BvpMg4EB.js.map
@@ -1,6 +1,6 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { r as init_esm_shims, t as __dirname } from "./esm-shims-CJHy8CZY.js";
3
- import { n as require_dist$1, r as require_src$14, t as require_dist$2 } from "./dist-Bc32rWJB.js";
2
+ import { r as init_esm_shims, t as __dirname } from "./esm-shims-BEjvINX3.js";
3
+ import { n as require_dist$1, r as require_src$14, t as require_dist$2 } from "./dist-BMXvKiZP.js";
4
4
  //#region ../../../node_modules/.bun/@google-cloud+promisify@4.1.0/node_modules/@google-cloud/promisify/build/src/index.js
5
5
  var require_src$13 = /* @__PURE__ */ __commonJSMin(((exports) => {
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -1198,12 +1198,12 @@ var require_gaxios = /* @__PURE__ */ __commonJSMin(((exports) => {
1198
1198
  * @returns A proxy agent
1199
1199
  */
1200
1200
  static async #getProxyAgent() {
1201
- this.#proxyAgent ||= (await import("./dist-DGTwcZhI.js").then((m) => /* @__PURE__ */ __toESM(m.default))).HttpsProxyAgent;
1201
+ this.#proxyAgent ||= (await import("./dist-BNwrgsUO.js").then((m) => /* @__PURE__ */ __toESM(m.default))).HttpsProxyAgent;
1202
1202
  return this.#proxyAgent;
1203
1203
  }
1204
1204
  static async #getFetch() {
1205
1205
  const hasWindow = typeof window !== "undefined" && !!window;
1206
- this.#fetch ||= hasWindow ? window.fetch : (await import("./src-Dv6L03vW.js")).default;
1206
+ this.#fetch ||= hasWindow ? window.fetch : (await import("./src-BvpMg4EB.js")).default;
1207
1207
  return this.#fetch;
1208
1208
  }
1209
1209
  /**
@@ -10601,7 +10601,7 @@ var require_src$7 = /* @__PURE__ */ __commonJSMin(((exports) => {
10601
10601
  const TeenyStatistics_1 = require_TeenyStatistics();
10602
10602
  const crypto_1 = __require("crypto");
10603
10603
  const streamEvents = require_stream_events();
10604
- const fetch = (...args) => import("./src-Dv6L03vW.js").then(({ default: fetch }) => fetch(...args));
10604
+ const fetch = (...args) => import("./src-BvpMg4EB.js").then(({ default: fetch }) => fetch(...args));
10605
10605
  var RequestError = class extends Error {
10606
10606
  code;
10607
10607
  };
@@ -133656,4 +133656,4 @@ var require_src = /* @__PURE__ */ __commonJSMin(((exports) => {
133656
133656
  export default require_src();
133657
133657
  export {};
133658
133658
 
133659
- //# sourceMappingURL=src-DNUUqkec.js.map
133659
+ //# sourceMappingURL=src-D4YUZrwR.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Kn as resolveProjectFromIssueSync, On as getProjectSync, Pn as init_projects, rr as parseIssueIdSync, tr as init_issue_id } from "./config-yaml-Dcz-8uit.js";
2
+ import { Fn as init_projects, ir as parseIssueIdSync, kn as getProjectSync, nr as init_issue_id, qn as resolveProjectFromIssueSync } from "./config-yaml-cNOZcEww.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
4
4
  import { join } from "node:path";
5
5
  import { Duration, Effect, Schedule, Stream } from "effect";
@@ -352,4 +352,4 @@ var init_stack_health = __esmMin((() => {
352
352
  //#endregion
353
353
  export { init_stack_health as a, init_docker_stats as c, getWorkspaceStackHealth as i, recordDockerContainerLifecycleSnapshot as l, collectDockerContainerLifecycleSnapshot as n, recordWorkspaceStackHealthTransition as o, evaluateWorkspaceStackHealth as r, DockerStatsCollector as s, DEFAULT_STUCK_CREATED_THRESHOLD_MS as t };
354
354
 
355
- //# sourceMappingURL=stack-health-DxsTx7II.js.map
355
+ //# sourceMappingURL=stack-health-CSgcYcr8.js.map
@@ -1,3 +1,3 @@
1
- import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-DxsTx7II.js";
1
+ import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-CSgcYcr8.js";
2
2
  init_stack_health();
3
3
  export { getWorkspaceStackHealth };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Pn as init_projects, V as qualifyPiModel, Wn as resolveInfraRepo, gn as init_project_key, qr as init_paths, sn as STATE_BRANCH_PATHS, un as init_state_plane, z as init_providers } from "./config-yaml-Dcz-8uit.js";
3
- import { B as colorFgBgForTheme, H as init_ui_theme, V as getUiThemeSync } from "./tmux-C_d-lSIq.js";
4
- import { a as getHarnessBehavior } from "./src-DHn4Rd2F.js";
5
- import { t as init_behavior } from "./behavior-Cpj03N4v.js";
6
- import { l as init_codex, u as toCodexSandboxValue } from "./codex-DW60_5j2.js";
2
+ import { Fn as init_projects, Gn as resolveInfraRepo, Jr as init_paths, V as qualifyPiModel, _n as init_project_key, cn as STATE_BRANCH_PATHS, dn as init_state_plane, z as init_providers } from "./config-yaml-cNOZcEww.js";
3
+ import { B as colorFgBgForTheme, H as init_ui_theme, V as getUiThemeSync } from "./tmux-C3g9VFcg.js";
4
+ import { a as getHarnessBehavior } from "./src-B4TTzNSr.js";
5
+ import { t as init_behavior } from "./behavior-BTpYbAv4.js";
6
+ import { l as init_codex, u as toCodexSandboxValue } from "./codex-BbqIRZjd.js";
7
7
  import { dirname, join } from "node:path";
8
8
  import { Data } from "effect";
9
9
  import { existsSync } from "node:fs";
@@ -487,4 +487,4 @@ var init_state_home = __esmMin((() => {
487
487
  //#endregion
488
488
  export { init_launcher_generator as a, requireModelOverrideSync as c, generateLauncherScriptSync as i, shellQuoteModelIdSync as l, init_state_home as n, init_model_validation as o, isStateMigrated as r, normalizeModelOverrideSync as s, findRecreatedLegacyStatePaths as t };
489
489
 
490
- //# sourceMappingURL=state-home-CRowbXqU.js.map
490
+ //# sourceMappingURL=state-home-CEvD_v5F.js.map
@@ -29,4 +29,4 @@ var init_state_mapping = __esmMin((() => {}));
29
29
  //#endregion
30
30
  export { mapGitHubStateToCanonical as n, init_state_mapping as t };
31
31
 
32
- //# sourceMappingURL=state-mapping-BvAgFK8n.js.map
32
+ //# sourceMappingURL=state-mapping-C13UaCL7.js.map
@@ -1,16 +1,17 @@
1
- import { Kn as resolveProjectFromIssueSync, Kr as getOverdeckHome, Pn as init_projects, _r as TmuxError, br as init_errors, er as extractPrefixSync, qr as init_paths, tr as init_issue_id, ur as FsError, zr as encodeClaudeProjectDir } from "./config-yaml-Dcz-8uit.js";
2
- import { D as listPaneValuesSync, P as sendKeys, R as sessionExistsSync, T as killSessionSync, i as capturePane, x as init_tmux } from "./tmux-C_d-lSIq.js";
3
- import { n as CLAUDE_CODE_BEHAVIOR } from "./src-DHn4Rd2F.js";
4
- import { c as init_review_status, s as getReviewStatusSync } from "./review-status-4qqLkRMu.js";
5
- import { An as getAgentDir, B as createOhmypiRuntimeSync, E as resumeAgent, Hn as markAgentTroubled, Jn as saveAgentStateSync, Pn as getAgentStateSync, Q as listRunningAgentsSync, U as spawnAgent, V as init_ohmypi, _t as init_config, cn as determineModel, en as init_pi_fifo, er as init_persistent_logger, gr as getAgentRuntimeStateSync, hr as getAgentRuntimeState, ht as DEFAULT_CLOISTER_CONFIG, j as messageAgent, nr as logDeaconEventSync, t as init_agents, vr as saveAgentRuntimeState, yt as loadCloisterConfigSync } from "./agents-CsOzAmRg.js";
6
- import { t as init_behavior } from "./behavior-Cpj03N4v.js";
7
- import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-CNODpd11.js";
8
- import { a as init_launcher_generator } from "./state-home-CRowbXqU.js";
9
- import { i as createCodexRuntimeSync, l as init_codex } from "./codex-DW60_5j2.js";
10
- import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-DwkAeooY.js";
11
- import { o as queryReadyBeadsByIssueLabels, r as init_beads_query, s as resolveBeadsQueryRoot } from "./beads-query-B1DlJVp9.js";
12
- import { a as init_jsonl_parser, i as getSessionFilesSync, r as getProjectDirsSync, s as parseClaudeSessionSync } from "./jsonl-parser-dNIjHgym.js";
13
- import { t as recordRecoveryFailure } from "./recovery-trip-Dfh1tNHn.js";
1
+ import { Br as encodeClaudeProjectDir, Fn as init_projects, Jr as init_paths, dr as FsError, nr as init_issue_id, qn as resolveProjectFromIssueSync, qr as getOverdeckHome, tr as extractPrefixSync, vr as TmuxError, xr as init_errors } from "./config-yaml-cNOZcEww.js";
2
+ import { D as listPaneValuesSync, P as sendKeys, R as sessionExistsSync, T as killSessionSync, i as capturePane, x as init_tmux } from "./tmux-C3g9VFcg.js";
3
+ import { n as CLAUDE_CODE_BEHAVIOR } from "./src-B4TTzNSr.js";
4
+ import { c as init_review_status, s as getReviewStatusSync } from "./review-status-Dc1l4dVz.js";
5
+ import { An as getAgentDir, B as createOhmypiRuntimeSync, E as resumeAgent, Hn as markAgentTroubled, Jn as saveAgentStateSync, Pn as getAgentStateSync, Q as listRunningAgentsSync, U as spawnAgent, V as init_ohmypi, _t as init_config, cn as determineModel, en as init_pi_fifo, fr as getAgentRuntimeState, hr as saveAgentRuntimeState, ht as DEFAULT_CLOISTER_CONFIG, j as messageAgent, pr as getAgentRuntimeStateSync, t as init_agents, yt as loadCloisterConfigSync } from "./agents-B9GwfCyp.js";
6
+ import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-DanhhiCw.js";
7
+ import { t as init_behavior } from "./behavior-BTpYbAv4.js";
8
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-dQxC15vH.js";
9
+ import { a as init_launcher_generator } from "./state-home-CEvD_v5F.js";
10
+ import { i as createCodexRuntimeSync, l as init_codex } from "./codex-BbqIRZjd.js";
11
+ import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-D4EFsRBd.js";
12
+ import { o as queryReadyBeadsByIssueLabels, r as init_beads_query, s as resolveBeadsQueryRoot } from "./beads-query-Dl4FhT8J.js";
13
+ import { a as init_jsonl_parser, i as getSessionFilesSync, r as getProjectDirsSync, s as parseClaudeSessionSync } from "./jsonl-parser-BUW5_sSK.js";
14
+ import { t as recordRecoveryFailure } from "./recovery-trip-BT7nb9OV.js";
14
15
  import "node:path";
15
16
  import { Effect } from "effect";
16
17
  import { existsSync, mkdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from "fs";
@@ -28,9 +29,9 @@ import "node:crypto";
28
29
  init_paths();
29
30
  init_issue_id();
30
31
  init_projects();
31
- init_review_status();
32
32
  init_behavior();
33
33
  init_persistent_logger();
34
+ init_review_status();
34
35
  init_codex();
35
36
  init_launcher_generator();
36
37
  init_beads_query();
@@ -425,15 +426,19 @@ async function readFileTail(filePath, maxBytes) {
425
426
  }
426
427
  }
427
428
  const ASK_USER_QUESTION_HOOK_DENY_MARKER = "PAN-1520";
429
+ const ASK_USER_QUESTION_HOOK_DENY_PHRASE = "surfaced to the operator in the Overdeck dashboard";
430
+ function isHookDenyText(text) {
431
+ return text.includes(ASK_USER_QUESTION_HOOK_DENY_MARKER) || text.includes(ASK_USER_QUESTION_HOOK_DENY_PHRASE);
432
+ }
428
433
  function isAskUserQuestionHookDenyToolResult(item) {
429
434
  if (item.is_error !== true) return false;
430
435
  const content = item.content;
431
- if (typeof content === "string") return content.includes(ASK_USER_QUESTION_HOOK_DENY_MARKER);
436
+ if (typeof content === "string") return isHookDenyText(content);
432
437
  if (Array.isArray(content)) return content.some((part) => {
433
- if (typeof part === "string") return part.includes(ASK_USER_QUESTION_HOOK_DENY_MARKER);
438
+ if (typeof part === "string") return isHookDenyText(part);
434
439
  if (part && typeof part === "object" && "text" in part) {
435
440
  const text = part.text;
436
- return typeof text === "string" && text.includes(ASK_USER_QUESTION_HOOK_DENY_MARKER);
441
+ return typeof text === "string" && isHookDenyText(text);
437
442
  }
438
443
  return false;
439
444
  });
@@ -474,6 +479,7 @@ async function scanPendingInputsPromise(jsonlPath) {
474
479
  const askAnswered = /* @__PURE__ */ new Set();
475
480
  const askDeniedAwaitingUser = /* @__PURE__ */ new Set();
476
481
  const exitPlanModeIds = /* @__PURE__ */ new Set();
482
+ const exitPlanModeCalls = /* @__PURE__ */ new Map();
477
483
  const exitPlanModeAnswered = /* @__PURE__ */ new Set();
478
484
  const enterPlanModeIds = /* @__PURE__ */ new Set();
479
485
  const exitPlanModeFiredAfterEnter = /* @__PURE__ */ new Set();
@@ -495,6 +501,10 @@ async function scanPendingInputsPromise(jsonlPath) {
495
501
  else if (item.name === "ExitPlanMode" && typeof item.id === "string") {
496
502
  exitPlanModeIds.add(item.id);
497
503
  exitPlanModeFiredAfterEnter.add(item.id);
504
+ if (typeof item.input?.plan === "string" && item.input.plan.trim()) exitPlanModeCalls.set(item.id, {
505
+ plan: item.input.plan,
506
+ timestamp: entry.timestamp || (/* @__PURE__ */ new Date()).toISOString()
507
+ });
498
508
  } else if (item.name === "EnterPlanMode" && typeof item.id === "string") enterPlanModeIds.add(item.id);
499
509
  }
500
510
  if (item.type === "tool_result" && typeof item.tool_use_id === "string") {
@@ -508,11 +518,19 @@ async function scanPendingInputsPromise(jsonlPath) {
508
518
  }
509
519
  } catch {}
510
520
  const askUserQuestions = Array.from(askToolCalls.entries()).filter(([id]) => !askAnswered.has(id)).map(([, question]) => question);
511
- const exitPlanModePending = Array.from(exitPlanModeIds).some((id) => !exitPlanModeAnswered.has(id));
521
+ const pendingExitPlanId = Array.from(exitPlanModeIds).find((id) => !exitPlanModeAnswered.has(id));
522
+ const exitPlanModePending = pendingExitPlanId !== void 0;
523
+ const pendingCall = pendingExitPlanId ? exitPlanModeCalls.get(pendingExitPlanId) : void 0;
524
+ const pendingProposedPlan = pendingExitPlanId && pendingCall ? {
525
+ toolUseId: pendingExitPlanId,
526
+ askedAt: pendingCall.timestamp,
527
+ plan: pendingCall.plan
528
+ } : void 0;
512
529
  return {
513
530
  askUserQuestions,
514
531
  enterPlanModeOpen: enterPlanModeIds.size > 0 && exitPlanModeFiredAfterEnter.size === 0,
515
- exitPlanModePending
532
+ exitPlanModePending,
533
+ ...pendingProposedPlan ? { pendingProposedPlan } : {}
516
534
  };
517
535
  } catch {
518
536
  return {
@@ -544,6 +562,7 @@ async function computeAgentEnrichmentPromise(agentId, startedAt, hasActiveSpecia
544
562
  let pendingQuestions = [];
545
563
  let enterPlanModeOpen = false;
546
564
  let exitPlanModePending = false;
565
+ let scannedProposedPlan;
547
566
  if (!skipJsonlScan) {
548
567
  const jsonlPath = await Effect.runPromise(getAgentJsonlPath(agentId));
549
568
  if (jsonlPath) {
@@ -551,6 +570,7 @@ async function computeAgentEnrichmentPromise(agentId, startedAt, hasActiveSpecia
551
570
  pendingQuestions = [...scan.askUserQuestions];
552
571
  enterPlanModeOpen = scan.enterPlanModeOpen;
553
572
  exitPlanModePending = scan.exitPlanModePending;
573
+ scannedProposedPlan = scan.pendingProposedPlan;
554
574
  }
555
575
  if (pendingQuestions.length > 0 && startedAt) {
556
576
  const agentStartTime = new Date(startedAt).getTime();
@@ -600,6 +620,7 @@ async function computeAgentEnrichmentPromise(agentId, startedAt, hasActiveSpecia
600
620
  if (enterPlanModeOpen && !exitPlanModePending) pendingInputKinds.push("enterPlanMode");
601
621
  appendPaneDetectionKind(detection, pendingInputKinds);
602
622
  }
623
+ const pendingProposedPlan = !shouldSuppressPendingInput && exitPlanModePending ? scannedProposedPlan : void 0;
603
624
  return {
604
625
  role,
605
626
  hasPendingQuestion,
@@ -609,6 +630,7 @@ async function computeAgentEnrichmentPromise(agentId, startedAt, hasActiveSpecia
609
630
  pendingInputCount: pendingInputKinds.length,
610
631
  pendingInputKinds,
611
632
  pendingAskUserQuestion,
633
+ pendingProposedPlan,
612
634
  resolution: runtimeState?.resolution || "working",
613
635
  resolutionCount: runtimeState?.resolutionCount || 0
614
636
  };
@@ -1368,7 +1390,7 @@ async function remediateFlywheelOrchestrator(agentId, now, actions, reason) {
1368
1390
  now
1369
1391
  });
1370
1392
  if (decision.kind === "noop") return;
1371
- const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-Bi82iiNl.js");
1393
+ const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-RCnHAgc4.js");
1372
1394
  const prev = readStuckRemediationState(agentId);
1373
1395
  const nowIso = new Date(now).toISOString();
1374
1396
  if (decision.kind === "escalate") {
@@ -1488,4 +1510,4 @@ async function checkStuckAgentRemediation(opts = {}) {
1488
1510
  //#endregion
1489
1511
  export { parseCodexApprovalPrompt as _, isAgentIdleForNudge as a, countPendingAskUserQuestionsForAgent as c, getAgentPendingQuestions as d, getAgentWorkspace as f, normalizeAwaitingInputPrompt as g, detectAwaitingInputFromPaneSync as h, shouldSkipReviewStatus as i, getAgentJsonlMtime as l, detectAwaitingInputForAgent as m, decideFlywheelRemediation as n, getRuntimeForAgent as o, scanPendingInputsPromise as p, shouldSkipIdlePokeForAgent as r, computeAgentEnrichment as s, checkStuckAgentRemediation as t, getAgentJsonlPath as u };
1490
1512
 
1491
- //# sourceMappingURL=stuck-remediation-CFWUP8_I.js.map
1513
+ //# sourceMappingURL=stuck-remediation-CxsyxwFO.js.map
@@ -1,2 +1,2 @@
1
- import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-CFWUP8_I.js";
1
+ import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-CxsyxwFO.js";
2
2
  export { shouldSkipIdlePokeForAgent };
@@ -1,4 +1,4 @@
1
- import "./smart-compaction-D5Zen3AA.js";
2
- import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-CtCwBJ2Z.js";
1
+ import "./smart-compaction-CiWfGfRZ.js";
2
+ import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-gKSoFAnK.js";
3
3
  init_summary_fork();
4
4
  export { generateFallbackSummary };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Wr as getHandoffsDir, Yr as packageRoot, Zr as sessionFilePath, br as init_errors, f as loadConfigSync, qr as init_paths, t as init_config_yaml, ur as FsError } from "./config-yaml-Dcz-8uit.js";
3
- import { St as deliverAgentMessage, t as init_agents } from "./agents-CsOzAmRg.js";
4
- import { k as init_conversations } from "./conversations-DG2M8WnT.js";
5
- import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-DxsTx7II.js";
6
- import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-D5Zen3AA.js";
2
+ import { Gr as getHandoffsDir, Jr as init_paths, Qr as sessionFilePath, Xr as packageRoot, dr as FsError, f as loadConfigSync, t as init_config_yaml, xr as init_errors } from "./config-yaml-cNOZcEww.js";
3
+ import { St as deliverAgentMessage, t as init_agents } from "./agents-B9GwfCyp.js";
4
+ import { k as init_conversations } from "./conversations-B-lcHv-5.js";
5
+ import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-CSgcYcr8.js";
6
+ import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-CiWfGfRZ.js";
7
7
  import { join } from "node:path";
8
8
  import { Effect } from "effect";
9
9
  import { join as join$1 } from "path";
@@ -442,11 +442,11 @@ async function generateSummaryForFork(jsonlPath, summaryModel, includeThinkingIn
442
442
  }
443
443
  }
444
444
  async function reserveSummaryForkSessionPromise(cwd) {
445
- const { reserveForkSession } = await import("./session-fork-DZ12vipL.js");
445
+ const { reserveForkSession } = await import("./session-fork-C4jAFHj8.js");
446
446
  return reserveForkSession(cwd);
447
447
  }
448
448
  async function copySessionFromCompactBoundaryPromise(sourcePath, destPath) {
449
- const { copySessionForFork } = await import("./session-fork-DZ12vipL.js");
449
+ const { copySessionForFork } = await import("./session-fork-C4jAFHj8.js");
450
450
  return copySessionForFork(sourcePath, destPath, { fullHistory: false });
451
451
  }
452
452
  /** Effect variant of generateFallbackSummary. */
@@ -521,4 +521,4 @@ var init_summary_fork = __esmMin((() => {
521
521
  //#endregion
522
522
  export { init_transcript_adapter as _, generateFallbackSummary as a, handoffPreconditionFallbackReason as c, prependFallbackFocus as d, requestHandoffFromAgent as f, getTranscriptAdapter as g, validateHandoffDoc as h, copySessionFromCompactBoundary as i, init_summary_fork as l, sanitizeHandoffDoc as m, HandoffValidationError as n, generateSummaryForFork as o, reserveSummaryForkSession as p, authorHandoffExternal as r, handoffFailureReason as s, HandoffStallError as t, logHandoffFallback as u };
523
523
 
524
- //# sourceMappingURL=summary-fork-CtCwBJ2Z.js.map
524
+ //# sourceMappingURL=summary-fork-gKSoFAnK.js.map
@@ -1,4 +1,4 @@
1
- import { Ar as OVERDECK_HOME, Dr as CONFIG_FILE, Rr as TRAEFIK_DIR, br as init_errors, kr as LOGS_DIR, qr as init_paths } from "./config-yaml-Dcz-8uit.js";
1
+ import { Ar as LOGS_DIR, Jr as init_paths, Or as CONFIG_FILE, jr as OVERDECK_HOME, xr as init_errors, zr as TRAEFIK_DIR } from "./config-yaml-cNOZcEww.js";
2
2
  import { t as require_toml } from "./toml-CeLDATih.js";
3
3
  import { join } from "node:path";
4
4
  import "effect";
@@ -73,4 +73,4 @@ function getSupervisorUrlSync() {
73
73
  //#endregion
74
74
  export { getSupervisorUrlSync as n, getSupervisorPortSync as t };
75
75
 
76
- //# sourceMappingURL=supervisor-BA5D72Qa.js.map
76
+ //# sourceMappingURL=supervisor-CZMs8s0M.js.map
@@ -0,0 +1,2 @@
1
+ import { n as getSupervisorUrlSync } from "./supervisor-CZMs8s0M.js";
2
+ export { getSupervisorUrlSync };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { T as init_specs } from "./io-BiQ2Cs3k.js";
3
- import { c as groupItemsByWave, i as compileGlob, l as hasFileOverlap, s as getDispatchableItems, u as init_dag } from "./dag-CqTehWpY.js";
2
+ import { T as init_specs } from "./io-VEGSAqsd.js";
3
+ import { c as groupItemsByWave, i as compileGlob, l as hasFileOverlap, s as getDispatchableItems, u as init_dag } from "./dag-DKI3sOmX.js";
4
4
  import "effect";
5
5
  //#region ../../lib/vbrief/swarm-readiness.ts
6
6
  function computeIssueFootprint(doc) {
@@ -112,4 +112,4 @@ var init_swarm_readiness = __esmMin((() => {
112
112
  //#endregion
113
113
  export { computeIssueFootprint as n, init_swarm_readiness as r, analyzeSwarmReadiness as t };
114
114
 
115
- //# sourceMappingURL=swarm-readiness-CL5sM9B1.js.map
115
+ //# sourceMappingURL=swarm-readiness-h6-pwY8w.js.map
@@ -175,4 +175,4 @@ async function checkSystemPrerequisites(probe = defaultProbe) {
175
175
  //#endregion
176
176
  export { checkSystemPrerequisites };
177
177
 
178
- //# sourceMappingURL=system-prerequisites-DmFSXIE5.js.map
178
+ //# sourceMappingURL=system-prerequisites-DZZTi2G6.js.map