@overdeck/desktop 0.45.15 → 0.45.18

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 (372) hide show
  1. package/dist-electron/main.js +149 -158
  2. package/dist-electron/main.js.map +1 -1
  3. package/dist-electron/preload.js +17 -2
  4. package/dist-electron/preload.js.map +1 -1
  5. package/package.json +5 -4
  6. package/server/acceptance-criteria-aQFKQf-J.js +62 -0
  7. package/server/{advancing-selfheal-CSuZ31bB.js → advancing-selfheal-DgwQgm4D.js} +6 -5
  8. package/server/{agent-gc-D_DxfBHR.js → agent-gc-kpzxqT7P.js} +3 -3
  9. package/server/agent-state-C_6TG-Ad.js +3 -0
  10. package/server/{agent-state-service-C_2ZAQRP.js → agent-state-service-BUfovFfB.js} +1 -1
  11. package/server/{agent-state-service-BZkvgQf4.js → agent-state-service-nUD3qfob.js} +9 -52
  12. package/server/agents-BA15AQqo.js +3 -0
  13. package/server/{briefing-freshness-Kh5V8RTh.js → agents-BHBxr8c9.js} +5 -131
  14. package/server/{archive-planning-DkivCk1A.js → archive-planning-CzCW9Ifl.js} +5 -10
  15. package/server/{archive-planning-CTILQRnV.js → archive-planning-D-QsBufn.js} +1 -1
  16. package/server/{artifact-index-jobs-CmsvQ1ey.js → artifact-index-jobs-qqa51B2Z.js} +2 -2
  17. package/server/{backlog-auto-trigger-ueRaT8Dy.js → backlog-auto-trigger-B7Bi0bvY.js} +3 -3
  18. package/server/behavior-CWqNMqE5.js +10 -0
  19. package/server/briefing-freshness-DuxIE1yr.js +131 -0
  20. package/server/{checkpoint-manager-fu9oVsR-.js → checkpoint-manager-DF6hb9Jw.js} +3 -3
  21. package/server/{checkpoint-manager-CAFos8e1.js → checkpoint-manager-DixkLus7.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-DvhGi8P_.js → checkpoints-B1Z42tJE.js} +1 -1
  24. package/server/{checkpoints-1BqOlS4q.js → checkpoints-BiviJqei.js} +2 -2
  25. package/server/claude-hooks-provision-BeMGi4ty.js +3 -0
  26. package/server/{claude-hooks-provision-s_wdpeVj.js → claude-hooks-provision-Du_PkMsp.js} +132 -114
  27. package/server/{claude-permissions-CaWqysff.js → claude-permissions-BB6agcOZ.js} +2 -2
  28. package/server/{claude-settings-overlay-CcTf0xzG.js → claude-settings-overlay-CAq2oFSK.js} +2 -2
  29. package/server/{claude-settings-overlay-BbA4FbVI.js → claude-settings-overlay-DUWWLd6M.js} +1 -1
  30. package/server/cli-BFgrSWKV.js +3 -0
  31. package/server/{cli-BwCvCUBK.js → cli-C33xPZNm.js} +9 -9
  32. package/server/{cliproxy-C2xC-3vH.js → cliproxy-BQX1TL6N.js} +1 -1
  33. package/server/{cliproxy-BsoNNDAj.js → cliproxy-CGBA1GzA.js} +2 -2
  34. package/server/{close-issue-BleIwP3f.js → close-issue-DNv8npc1.js} +5 -5
  35. package/server/{closed-issue-reaper-BwUUvjEW.js → closed-issue-reaper-DrqgBJlr.js} +1 -1
  36. package/server/{closed-issue-reaper-mC5pujeb.js → closed-issue-reaper-LoMnnjtJ.js} +9 -9
  37. package/server/codex-DxLivxri.js +3 -0
  38. package/server/{behavior-Cpj03N4v.js → codex-parser-DboQnEXN.js} +3 -9
  39. package/server/{codex-DW60_5j2.js → codex-sgWVCGUd.js} +43 -17
  40. package/server/{config-BRNQJXhA.js → config-6MCHOZ2N.js} +1 -1
  41. package/server/{config-ZNnMpIlh.js → config-DfaUXr6r.js} +2 -2
  42. package/server/{config-yaml-Dcz-8uit.js → config-yaml-CqaAyn8y.js} +149 -80
  43. package/server/{conflict-gate-DTje2Ll7.js → conflict-gate-BF_zhcmb.js} +3 -3
  44. package/server/{conflict-gate-DGT8jCLp.js → conflict-gate-BubJprtD.js} +1 -1
  45. package/server/{context-layers-BdUCQ-cl.js → context-layers-BFrxfl0l.js} +17 -3
  46. package/server/{context-layers-ByOWUjUg.js → context-layers-DWL_8HhY.js} +2 -2
  47. package/server/{control-settings-DwkAeooY.js → control-settings-BguNQ1F_.js} +4 -4
  48. package/server/{conversation-compaction-WYQZUVDm.js → conversation-compaction-CRKAf2qP.js} +1 -1
  49. package/server/{conversation-compaction-OTYgd6eg.js → conversation-compaction-DxSXl0pT.js} +8 -8
  50. package/server/{conversation-service-C_kNZPLx.js → conversation-service-DzuY9qoH.js} +1 -1
  51. package/server/{conversation-service-BR1OgvxO.js → conversation-service-mFVFdDQK.js} +6 -5
  52. package/server/{conversations-DG2M8WnT.js → conversations-BX5aD-6F.js} +4 -4
  53. package/server/{conversations-izHvSoAR.js → conversations-BajHQ60c.js} +1 -1
  54. package/server/{cost-DQ2ajr_m.js → cost-BoqD1Pxz.js} +2 -2
  55. package/server/{cost-B2mj17iG.js → cost-DuZ5vlv-.js} +3 -3
  56. package/server/{cost-sync-gTayEuWP.js → cost-sync-BYnmnMkY.js} +3 -3
  57. package/server/{dag-CqTehWpY.js → dag-C6kYyF17.js} +7 -243
  58. package/server/{dangerous-git-ops-DDWQlPC3.js → dangerous-git-ops-q5OPtXMd.js} +1 -1
  59. package/server/dashboard-db-worker.js +6 -6
  60. package/server/{deacon-BqW9HMew.js → deacon-CwCiNuEZ.js} +3 -3
  61. package/server/{deacon-DrKDBeJL.js → deacon-Dru5onpk.js} +258 -167
  62. package/server/{deacon-nudge-log-D1wEK6zF.js → deacon-nudge-log-ilDfxrhK.js} +1 -1
  63. package/server/{deacon-swarm-CO_A7xyd.js → deacon-swarm-BPmBmSoU.js} +298 -72
  64. package/server/deacon-swarm-CKyGJng1.js +2 -0
  65. package/server/deacon.js +14 -7
  66. package/server/{devcontainer-renderer-BQolp_qZ.js → devcontainer-renderer-BqGNCzvN.js} +3 -3
  67. package/server/{dist-Bc32rWJB.js → dist-BwlEiLCU.js} +1 -1
  68. package/server/dist-Bx4KkgYL.js +3 -0
  69. package/server/{dist-src-Byxt1ifL.js → dist-src-BE0Denfs.js} +1 -1
  70. package/server/{docker-s-esqZ__.js → docker-CNjXS72x.js} +2 -2
  71. package/server/{ensure-devcontainer-DA4-jF6R.js → ensure-devcontainer-5e9xOve4.js} +4 -4
  72. package/server/{ensure-devcontainer-pUVaT0h3.js → ensure-devcontainer-C6gyUQdE.js} +1 -1
  73. package/server/{esm-shims-CJHy8CZY.js → esm-shims-Cso7IGBC.js} +1 -1
  74. package/server/{event-store-CcJAhKCl.js → event-store-D9UhQyMS.js} +1 -1
  75. package/server/{event-store-DRte2Rwt.js → event-store-KZnWUKWh.js} +3 -3
  76. package/server/{events-Bej1w_k8.js → events-2eFUPdqz.js} +3 -3
  77. package/server/{events-CtsLScn8.js → events-BYbvqZky.js} +1 -1
  78. package/server/{factory-FN727tWr.js → factory-BtaRsHFC.js} +20 -17
  79. package/server/{feature-registry-population-ie-yBcQC.js → feature-registry-population-Ca2UaV0U.js} +4 -4
  80. package/server/{feature-registry-storage-CkZTFSsn.js → feature-registry-storage-DaP-bQxO.js} +2 -2
  81. package/server/{features-Dtm9ABuz.js → features-DqvaoQoa.js} +2 -2
  82. package/server/{feedback-target-BYtpyt1i.js → feedback-target-BXWdOiYI.js} +9 -7
  83. package/server/{feedback-target-DVJQDiE4.js → feedback-target-BblmMe9P.js} +1 -1
  84. package/server/{feedback-writer-DOUhyIW2.js → feedback-writer-CULeOOY4.js} +1 -1
  85. package/server/{feedback-writer-fdE1BzeL.js → feedback-writer-Dn8o9ZyE.js} +4 -4
  86. package/server/{flywheel-Bi82iiNl.js → flywheel-BUWdcfhq.js} +1 -1
  87. package/server/{flywheel-Bv3wv2S6.js → flywheel-CqkO3cDj.js} +15 -28
  88. package/server/{flywheel-CUErLAyN.js → flywheel-D9r1mw2U.js} +13 -13
  89. package/server/{flywheel-merge-order-DXjeBnJ1.js → flywheel-merge-order-LDzQDwSg.js} +1 -1
  90. package/server/{flywheel-merge-order-BaEN3iyN.js → flywheel-merge-order-VtjUweEb.js} +7 -7
  91. package/server/forge-DJy3Zx4s.js +2 -0
  92. package/server/{forge-ButEdJ31.js → forge-wEollMCi.js} +22 -12
  93. package/server/{from-CbtTxftl.js → from-B2tOYhYV.js} +1 -1
  94. package/server/{fts-db-CBgBLZcL.js → fts-db-Bgzn2RO7.js} +2 -2
  95. package/server/{fts-operations-CI9Xuo_1.js → fts-operations-Bj8yutnR.js} +2 -2
  96. package/server/{git-utils-ClfpP47N.js → git-utils-GxlL0tmt.js} +2 -2
  97. package/server/{git-utils-BCLRWQ-y.js → git-utils-q8jNoBts.js} +1 -1
  98. package/server/{github-app-DRD2woO0.js → github-app-BrYwK_Gb.js} +1 -1
  99. package/server/{github-app-DscZ0_B6.js → github-app-tUbb8Ldr.js} +8 -3
  100. package/server/{github-client-DpiZnxGH.js → github-client-BwBU41jK.js} +3 -3
  101. package/server/{github-client-iFRw8f7e.js → github-client-D6CNsftm.js} +1 -1
  102. package/server/{github-pr-lookup-D-EBexxC.js → github-pr-lookup-BS5PqkJb.js} +2 -2
  103. package/server/{harness-resolve-iMjyNUJ2.js → harness-resolve-Dx8hUsvC.js} +3 -3
  104. package/server/{health-events-CRdxDFN2.js → health-events-2DLp-5Xp.js} +2 -2
  105. package/server/{health-events-B_WsQyYm.js → health-events-B0mj6Iae.js} +1 -1
  106. package/server/{hooks-C1ScyVxP.js → hooks-BDcQJDUe.js} +1 -1
  107. package/server/{hooks-C9b7Vqpw.js → hooks-BS_JrvYP.js} +3 -3
  108. package/server/hume-B4seN95Y.js +3 -0
  109. package/server/{hume-TQ5pvOZ_.js → hume-BRhNKyXQ.js} +2 -2
  110. package/server/{idle-stack-reaper-B1kG7B_X.js → idle-stack-reaper-BCITXNW5.js} +2 -2
  111. package/server/{idle-stack-reaper-iFVOAoJy.js → idle-stack-reaper-C1ymihno.js} +1 -1
  112. package/server/{infra-bpq1MHKU.js → infra-_Kx1m9pm.js} +9 -4
  113. package/server/{injection-BLWfwTVZ.js → injection-Bvhyg_MV.js} +1 -1
  114. package/server/{injection-DJqWld1v.js → injection-CCaYkofq.js} +7 -7
  115. package/server/{inspect-agent-DytCsltn.js → inspect-agent-BqyZ4pCo.js} +35 -67
  116. package/server/inspect-agent-DCJQm9Wu.js +2 -0
  117. package/server/{internal-token-CjlhdufS.js → internal-token-Cl-1IxaE.js} +2 -2
  118. package/server/{internal-token-CCaWaTwE.js → internal-token-D-t28de5.js} +1 -1
  119. package/server/{io-BiQ2Cs3k.js → io-DkC4sFSy.js} +42 -56
  120. package/server/{issue-closed-FApNiOOs.js → issue-closed-Cpl4VDUM.js} +41 -6
  121. package/server/{issue-lifecycle-C-K53ASY.js → issue-lifecycle-CFR8TJ22.js} +22 -37
  122. package/server/{issue-lifecycle-BkFWNjlD.js → issue-lifecycle-YNTy3OT3.js} +1 -1
  123. package/server/{issue-service-singleton-bG1WdSdQ.js → issue-service-singleton-D81mCts_.js} +1 -1
  124. package/server/{issue-service-singleton-CuHGpJJP.js → issue-service-singleton-ldvUUXi3.js} +29 -29
  125. package/server/{issues-CwQMphDH.js → issues-DIEHt9sq.js} +2 -2
  126. package/server/{jsonl-parser-dNIjHgym.js → jsonl-parser-Cd5jIqh7.js} +3 -3
  127. package/server/{label-cleanup-DYvAZknd.js → label-cleanup-Btny6Gyo.js} +3 -3
  128. package/server/{state-home-CRowbXqU.js → launcher-generator-BXLM9f4b.js} +7 -127
  129. package/server/{layers-CD6FysRU.js → layers-gCJlK62m.js} +2 -2
  130. package/server/lifecycle-D7aQUnTO.js +12 -0
  131. package/server/{lifecycle-io-C_Wu0_i-.js → lifecycle-io-DQBF-GHO.js} +1 -1
  132. package/server/{lifecycle-io-CeYxP3cE.js → lifecycle-io-FfPUtz-y.js} +36 -47
  133. package/server/{linear-client-EtVyblVz.js → linear-client-CDH2D6Qy.js} +3 -3
  134. package/server/{linear-client-4qoKnuQu.js → linear-client-WrYrUIAH.js} +1 -1
  135. package/server/memory-fts-worker.js +1 -1
  136. package/server/{merge-7rqkTUm2.js → merge-BsDgUxFz.js} +3 -3
  137. package/server/{merge-brm721Es.js → merge-Dervs4BF.js} +1 -1
  138. package/server/{merge-agent-4Zhlgvqp.js → merge-agent-D6DNhe9j.js} +64 -51
  139. package/server/{merge-agent-36wfYm2u.js → merge-agent-DMQTJMP0.js} +1 -1
  140. package/server/{merge-batch-itfnwdsT.js → merge-batch-Bv6Z5K2H.js} +1 -1
  141. package/server/{merge-blockers-Bto_Oe_o.js → merge-blockers-WWWi6Ur2.js} +2 -2
  142. package/server/merge-ops-h9OCnIVz.js +2 -0
  143. package/server/{merge-rebase-Czfqfe4q.js → merge-rebase-Czth9ggm.js} +2 -2
  144. package/server/{merge-set-BIkGQL9j.js → merge-set-DNc4zBqd.js} +3 -3
  145. package/server/{merge-set-G1RHcu3D.js → merge-set-vuE3MEVt.js} +1 -1
  146. package/server/{merge-sync-B43Dybea.js → merge-sync-B2KSk54U.js} +2 -2
  147. package/server/{merge-sync-DIrmlZUr.js → merge-sync-B9nHdUGx.js} +1 -1
  148. package/server/{merge-train-DGqVuNZV.js → merge-train-DJgr81tF.js} +3 -3
  149. package/server/{merge-train-deps-q15XLnAS.js → merge-train-deps-B2OWS0k9.js} +4 -4
  150. package/server/{merge-verification-Cqfxx6bE.js → merge-verification-BBIXUEqa.js} +4 -4
  151. package/server/{multipart-parser-CiPxxfUH.js → multipart-parser-9DhuAkPd.js} +2 -2
  152. package/server/{no-resume-mode-yrPEQ_pC.js → no-resume-mode-Gh5R_YLF.js} +1 -1
  153. package/server/node_modules/.package-lock.json +11 -11
  154. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  155. package/server/node_modules/toml/README.md +54 -0
  156. package/server/node_modules/toml/index.d.ts +42 -1
  157. package/server/node_modules/toml/index.js +3 -3
  158. package/server/node_modules/toml/lib/compiler.js +35 -3
  159. package/server/node_modules/toml/lib/parser.js +224 -143
  160. package/server/node_modules/toml/package.json +3 -1
  161. package/server/node_modules/ws/lib/receiver.js +15 -32
  162. package/server/node_modules/ws/lib/websocket-server.js +4 -4
  163. package/server/node_modules/ws/lib/websocket.js +4 -4
  164. package/server/node_modules/ws/package.json +5 -1
  165. package/server/{orphan-proposed-reconciler-BWWHn4Lr.js → orphan-proposed-reconciler-B8H41C4a.js} +14 -24
  166. package/server/{orphan-proposed-reconciler-DAD9FJtQ.js → orphan-proposed-reconciler-DbTmT7qy.js} +1 -1
  167. package/server/package-lock.json +12 -12
  168. package/server/package.json +1 -1
  169. package/server/{pan-dir-Bj7Hy8iu.js → pan-dir-BTw4MdSe.js} +4 -4
  170. package/server/{paths-C9DkhIOT.js → paths-Btkc8mzp.js} +2 -2
  171. package/server/{pickup-CKRuGDsB.js → pickup-BtvRBbvI.js} +1 -1
  172. package/server/{pipeline-notifier-BkKbQ8ji.js → pipeline-notifier-3frIvSi3.js} +1 -1
  173. package/server/{pipeline-notifier-CAurUste.js → pipeline-notifier-DTd19f18.js} +2 -2
  174. package/server/{project-pipelines-BRWaGmI4.js → project-pipelines-B95fcAek.js} +2 -2
  175. package/server/projects-Dc9aoVoG.js +3 -0
  176. package/server/{prompts-DfI5qbTW.js → prompts-CIVmjHxn.js} +2 -2
  177. package/server/{providers-D-5txBRc.js → providers-BLLk5IIb.js} +1 -1
  178. package/server/{providers-CWDXoaMA.js → providers-C-yWibCk.js} +7 -7
  179. package/server/public/assets/chunk-BO2N2NFS-DzKZyoKY.js +103 -0
  180. package/server/public/assets/{diagram-OG6HWLK6-Avtvq2qI.js → diagram-OG6HWLK6-Cx8mWUb8.js} +1 -1
  181. package/server/public/assets/{dist-BEHQuasD.js → dist-BqccLhaw.js} +3 -3
  182. package/server/public/assets/{dist-BvmY-qb1.js → dist-rC3nAs_O.js} +1 -1
  183. package/server/public/assets/{ganttDiagram-6RSMTGT7-7KhCd0fH.js → ganttDiagram-6RSMTGT7-DLYPLf5T.js} +1 -1
  184. package/server/public/assets/{highlighted-body-OFNGDK62-iQoBMTf0.js → highlighted-body-OFNGDK62-D4DqixbV.js} +1 -1
  185. package/server/public/assets/index-CPcysUHk.js +796 -0
  186. package/server/public/assets/index-H5M0yhM4.css +1 -0
  187. package/server/public/assets/{linear-CiJHW9g5.js → linear-yqcXkDfj.js} +1 -1
  188. package/server/public/assets/mermaid-GHXKKRXX-CWdZ_heB.js +1 -0
  189. package/server/public/assets/{pieDiagram-4H26LBE5-BOhmvUhW.js → pieDiagram-4H26LBE5-DhraIOaV.js} +1 -1
  190. package/server/public/assets/{prod-DmLBBqat.js → prod-DKUunUdN.js} +4 -4
  191. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Cjku660G.js → quadrantDiagram-W4KKPZXB-DPiRcToa.js} +1 -1
  192. package/server/public/assets/{sankeyDiagram-5OEKKPKP-D52w5oPh.js → sankeyDiagram-5OEKKPKP-3An5HNkZ.js} +1 -1
  193. package/server/public/assets/{xychartDiagram-2RQKCTM6-BTO07_Iv.js → xychartDiagram-2RQKCTM6-lbEOjfqQ.js} +1 -1
  194. package/server/public/index.html +2 -2
  195. package/server/{pull-requests-CKZPWhjD.js → pull-requests-D7AL5woD.js} +1 -1
  196. package/server/{pull-requests-Bmre-Xlz.js → pull-requests-NDDNtqNq.js} +3 -3
  197. package/server/{agents-CsOzAmRg.js → queries-C0LCGG21.js} +743 -399
  198. package/server/{rally-BBd9tQ__.js → rally-4oKvnxLG.js} +3 -3
  199. package/server/rally-DF5a3ioP.js +3 -0
  200. package/server/{rally-api-DxZFObI_.js → rally-api-41tT6ikZ.js} +2 -2
  201. package/server/{rally-api-DDc85HIz.js → rally-api-BsaQ8Vnz.js} +1 -1
  202. package/server/{rally-client-DvvLiAQP.js → rally-client-Bo4hNcCZ.js} +5 -5
  203. package/server/{rally-client-BADHn0m_.js → rally-client-b5PT1x5L.js} +1 -1
  204. package/server/{reap-terminal-sessions-D_xvy-Mk.js → reap-terminal-sessions-BR39qflC.js} +1 -1
  205. package/server/{reap-terminal-sessions-D6JDJsqF.js → reap-terminal-sessions-CFkuquQj.js} +1 -1
  206. package/server/{rebuild-stack-GOsWqXi3.js → rebuild-stack-C7JPUom6.js} +1 -1
  207. package/server/{rebuild-stack-D19i080j.js → rebuild-stack-Ddv6W017.js} +6 -6
  208. package/server/{reconstruct-cache-lQrG4xGg.js → reconstruct-cache-Gqhm---K.js} +6 -6
  209. package/server/record-DLOqfbkI.js +3 -0
  210. package/server/record-update-BltEmPge.js +168 -0
  211. package/server/record-update-CDp7aTaT.js +3 -0
  212. package/server/recovery-trip-Cn7KJVkS.js +44 -0
  213. package/server/{release-engine-DxcMWRuK.js → release-engine-BYzmIBf9.js} +5 -5
  214. package/server/{release-set-BYsgX7o6.js → release-set-7pnxFOWR.js} +3 -3
  215. package/server/{remote-DmeL21dF.js → remote-Cvu4CSDk.js} +3 -3
  216. package/server/{remote-agents-BfQBE6MN.js → remote-agents-C2C6z9tj.js} +6 -33
  217. package/server/{remote-agents-DlvbzO7m.js → remote-agents-DYY5fFpd.js} +1 -1
  218. package/server/{remote-completion-BgkiSQmx.js → remote-completion-2Kb4IDg_.js} +13 -13
  219. package/server/{remote-8W2Yhygw.js → remote-rN0ecjHE.js} +3 -3
  220. package/server/resume-BFLl-yLn.js +3 -0
  221. package/server/{review-agent-D025Wt7w.js → review-agent-BZvk0N5G.js} +31 -23
  222. package/server/{review-agent-Rub0OpZc.js → review-agent-CpSHLzed.js} +1 -1
  223. package/server/{review-artifacts-CX951jTU.js → review-artifacts-PCo53YMn.js} +5 -19
  224. package/server/{review-context-DGGGR_w5.js → review-context-M7QtJlJq.js} +8 -8
  225. package/server/{review-monitor-0_qqMcnS.js → review-monitor-BLC5mTTg.js} +2 -2
  226. package/server/{review-status-Br6lAFGO.js → review-status-77N3PoZr.js} +1 -1
  227. package/server/{review-status-4qqLkRMu.js → review-status-DANr0t-v.js} +33 -59
  228. package/server/{review-status-enrichment-Cr8m3uVL.js → review-status-enrichment-DwOg4UfL.js} +3 -3
  229. package/server/{review-status-sync-D3KUhsdA.js → review-status-sync-Bd08OOFA.js} +1 -1
  230. package/server/{review-status-sync-OC-l1lNt.js → review-status-sync-BjTUJ5fx.js} +2 -2
  231. package/server/{review-verdict-feedback-YOzmsq9G.js → review-verdict-feedback-BsFLjN_6.js} +1 -1
  232. package/server/{review-verdict-feedback-DrWMuRaj.js → review-verdict-feedback-CBf-J_wS.js} +8 -8
  233. package/server/{rollup-CnxbwaLH.js → rollup-Bu0f2EyN.js} +8 -8
  234. package/server/{rollup-DmazRY0j.js → rollup-DTCCdEy4.js} +1 -1
  235. package/server/{scanner-DE1MqAaF.js → scanner-BlZ2vB7j.js} +7 -7
  236. package/server/{sequence-io-C0uoqfGx.js → sequence-io-ylyDtz2J.js} +4 -4
  237. package/server/{sequencer-agent-i-b2u4SJ.js → sequencer-agent-DsWQ-87H.js} +6 -17
  238. package/server/server.js +5670 -6392
  239. package/server/{service-D0_gh2tl.js → service-CLVBC_1Y.js} +116 -90
  240. package/server/{session-fork-DZ12vipL.js → session-fork-DlEIAhRy.js} +2 -2
  241. package/server/session-history-bnOFKMwf.js +168 -0
  242. package/server/settings-CP3GGon2.js +2 -0
  243. package/server/{settings-ByqjPtFO.js → settings-Cqa-8nyj.js} +2 -2
  244. package/server/{settings-DCC4BAqj.js → settings-gJrdLZy2.js} +3 -3
  245. package/server/{shadow-engineering-BhnmtW5m.js → shadow-engineering-fq1YEKV3.js} +3 -3
  246. package/server/{shadow-state-ByXZehsy.js → shadow-state-BqeFAygK.js} +1 -1
  247. package/server/{shadow-state-CKm8xWX9.js → shadow-state-RptE9Cau.js} +2 -2
  248. package/server/shadow-utils-BMWr5tRT.js +39 -0
  249. package/server/{ship-log-DE_0Cv_i.js → ship-log-BRQQi2lU.js} +1 -1
  250. package/server/{smart-compaction-D5Zen3AA.js → smart-compaction-CmoXpjeU.js} +7 -7
  251. package/server/{smart-compaction-h4_ca6Uk.js → smart-compaction-DldUel4B.js} +1 -1
  252. package/server/{spawn-planning-session-Dueit4WX.js → spawn-planning-session-CoS6LTc6.js} +16 -16
  253. package/server/{spawn-planning-session-Bgi7Ub02.js → spawn-planning-session-DT2tSMxo.js} +1 -1
  254. package/server/{specialist-completion-BZ8M-WZ0.js → specialist-completion-pJtESo7m.js} +1 -1
  255. package/server/{specialist-context-BMq83C58.js → specialist-context-CspI4Eog.js} +5 -5
  256. package/server/{specialist-handoff-logger-BxX1YefH.js → specialist-handoff-logger-Duz9RGvk.js} +2 -2
  257. package/server/{specialist-logs-BWZYcJ6P.js → specialist-logs-DtSkPJZK.js} +3 -3
  258. package/server/{specialists-ZkW4Mb7U.js → specialists-CywEMwxk.js} +1 -1
  259. package/server/{specialists-8ZAguXef.js → specialists-D9-dMUtI.js} +1 -1
  260. package/server/{specialists-BudKrjOu.js → specialists-Dax7tqXC.js} +1817 -560
  261. package/server/{specialists-DrPrC9Y9.js → specialists-GF42OOqd.js} +18 -18
  262. package/server/specs-VwcFtEDi.js +3 -0
  263. package/server/{src-DHn4Rd2F.js → src-By3D85Ry.js} +77 -1
  264. package/server/{src-Dv6L03vW.js → src-CqyFg52C.js} +5 -5
  265. package/server/{src-DNUUqkec.js → src-DhxM-eCb.js} +6 -6
  266. package/server/{stack-health-Dclm7_tu.js → stack-health-BsEVrJZ6.js} +1 -1
  267. package/server/{stack-health-DxsTx7II.js → stack-health-C-SnpRHh.js} +2 -2
  268. package/server/stale-task-claims-vTxmRzLi.js +69 -0
  269. package/server/state-home-Bur1y4oH.js +213 -0
  270. package/server/{state-mapping-BvAgFK8n.js → state-mapping-Ci0pkac4.js} +1 -1
  271. package/server/state-migrate-D3VveYfO.js +362 -0
  272. package/server/{stuck-remediation-CFWUP8_I.js → stuck-remediation-B699-p8v.js} +63 -46
  273. package/server/{stuck-remediation-CLHd-lrF.js → stuck-remediation-CaFYYTQW.js} +1 -1
  274. package/server/{summary-fork-CKc01Our.js → summary-fork-BxnF8Xh0.js} +2 -2
  275. package/server/{summary-fork-CtCwBJ2Z.js → summary-fork-COqYpVa3.js} +8 -8
  276. package/server/supervisor/{paths-3R6b989k.js → paths-Bk6hJRH9.js} +4 -3
  277. package/server/supervisor/pty-supervisor.js +2 -2
  278. package/server/supervisor/{pty-token-CScQ32Rj.js → pty-token-BZS5GYdG.js} +2 -2
  279. package/server/supervisor-eWAAmXKu.js +2 -0
  280. package/server/{supervisor-BA5D72Qa.js → supervisor-liMgIPDF.js} +2 -2
  281. package/server/{swarm-readiness-CL5sM9B1.js → swarm-readiness-sXB1vhzo.js} +3 -3
  282. package/server/{system-prerequisites-DmFSXIE5.js → system-prerequisites-Bz6KdkFJ.js} +1 -13
  283. package/server/{teardown-workspace-DWmFJzTw.js → teardown-workspace-DvzqnmUF.js} +14 -71
  284. package/server/{test-agent-queue-DjsQoV5X.js → test-agent-queue-hAU1Ah08.js} +6 -6
  285. package/server/{test-verdict-BSqsQp3G.js → test-verdict-CRsPpByy.js} +1 -1
  286. package/server/{test-verdict-D1AmZ2c0.js → test-verdict-CXMLATGc.js} +1 -1
  287. package/server/{tldr-daemon-C-MGomL8.js → tldr-daemon-Bam7Xhoo.js} +2 -2
  288. package/server/{tldr-daemon-DD9rI5gA.js → tldr-daemon-DhGwd88s.js} +1 -1
  289. package/server/tmux-C-rgxRDA.js +3 -0
  290. package/server/{tmux-C_d-lSIq.js → tmux-U55cNGFG.js} +92 -4
  291. package/server/{token-DfBf1bsd.js → token-Dsa-i36o.js} +2 -2
  292. package/server/{token-util-CROoF5ic.js → token-util-BWNpH96m.js} +1 -1
  293. package/server/token-util-DRt0j2nQ.js +3 -0
  294. package/server/{tracker-config-CNODpd11.js → tracker-config-OkdbaUCm.js} +2 -2
  295. package/server/{tracker-utils-Ch2_5GGf.js → tracker-utils-CghXMF3q.js} +2 -2
  296. package/server/{tracker-utils-B9ZoVA9b.js → tracker-utils-DdzUiPNU.js} +1 -1
  297. package/server/{traefik-connect-BF4x_LUQ.js → traefik-connect-CZYB3dlm.js} +1 -1
  298. package/server/{tunnel-r_5nHAI6.js → tunnel-D1YxesBL.js} +3 -3
  299. package/server/{tunnel-YD80_IHr.js → tunnel-DjlzgTl3.js} +1 -1
  300. package/server/typed-errors-CH4roFIj.js +3 -0
  301. package/server/{typed-errors-BEJhbjJg.js → typed-errors-n_Tnb4Fh.js} +3 -4
  302. package/server/{types-CE1m_daD.js → types-DOjWNv3Z.js} +1 -1
  303. package/server/{types-33JEP4LZ.js → types-DXBMm4mX.js} +1 -1
  304. package/server/{uat-train-DDI00aqD.js → uat-train-CaaWs9Rp.js} +1 -1
  305. package/server/{uat-train-DjkFWXge.js → uat-train-CqN34zFx.js} +24 -25
  306. package/server/{validation-DUTiJnyz.js → validation-4-z2Cw4z.js} +70 -23
  307. package/server/validation-DpTNakM6.js +3 -0
  308. package/server/verification-artifact-DK1xb1zG.js +56 -0
  309. package/server/verification-artifact-JD_edpZ9.js +2 -0
  310. package/server/{verification-runner-inLgeQux.js → verification-runner-BjHN80pJ.js} +338 -58
  311. package/server/verification-runner-ShYu5Ph3.js +2 -0
  312. package/server/{work-agent-prompt-fZljjA1_.js → work-agent-prompt-BiJ43Der.js} +12 -88
  313. package/server/workflows-B4C3lY9E.js +2 -0
  314. package/server/{workflows-oBnJ7Tm0.js → workflows-DkTotz_m.js} +17 -24
  315. package/server/{workspace-CNuW2j41.js → workspace-CuN0ev4Z.js} +3 -3
  316. package/server/{workspace-B2WOW9Hw.js → workspace-DQ4vVivd.js} +1 -1
  317. package/server/{workspace-config-CBgMGhWs.js → workspace-config-C77NKnsV.js} +1 -1
  318. package/server/{workspace-manager-DjUAJCSs.js → workspace-manager-B1mYn0lN.js} +1 -1
  319. package/server/{workspace-manager-CB-R07R3.js → workspace-manager-Beeo2aKF.js} +23 -48
  320. package/server/{workspace-metadata-9Nn5kgRl.js → workspace-metadata-BZC5BmoP.js} +2 -2
  321. package/server/{workspace-metadata-Fd58uUQG.js → workspace-metadata-Cy7_ZACL.js} +1 -1
  322. package/server/{workspaces-BjWXntty.js → workspaces-CGuzW1Ia.js} +191 -153
  323. package/sync-sources/hooks/ask-user-question-hook +7 -1
  324. package/sync-sources/hooks/codex-notify-hook +64 -8
  325. package/sync-sources/hooks/record-cost-event.js +1109 -36
  326. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  327. package/sync-sources/hooks/statusline.sh +2 -2
  328. package/sync-sources/hooks/work-agent-stop-hook +1 -2
  329. package/server/acceptance-criteria-DHZk2ceV.js +0 -33
  330. package/server/agent-runtime-mirror-DrWxopNA.js +0 -37
  331. package/server/agent-state-EP2QFV9n.js +0 -3
  332. package/server/agents-DCvyTXNU.js +0 -3
  333. package/server/auto-commit-QAfsu3Sb.js +0 -3
  334. package/server/bd-process-lock-D3S4T4o-.js +0 -390
  335. package/server/beads-BGGxrkZ5.js +0 -649
  336. package/server/beads-CYsLiyIM.js +0 -2
  337. package/server/beads-query-B1DlJVp9.js +0 -95
  338. package/server/beads-restore-CyygSmmn.js +0 -23
  339. package/server/cli-ClIQwgMI.js +0 -3
  340. package/server/codex-B7DTpwEw.js +0 -3
  341. package/server/compact-beads-CK_hHEnB.js +0 -3
  342. package/server/compact-beads-DKL54y6j.js +0 -94
  343. package/server/deacon-swarm-BY5hKNaU.js +0 -2
  344. package/server/dist-DGTwcZhI.js +0 -3
  345. package/server/export-Dx_qJ3h8.js +0 -87
  346. package/server/forge-XlDgPQWs.js +0 -2
  347. package/server/hume-K1pi8jC4.js +0 -3
  348. package/server/inspect-agent-477VxQim.js +0 -2
  349. package/server/lifecycle-C_73gi-C.js +0 -14
  350. package/server/merge-ops-PzqsW69V.js +0 -2
  351. package/server/projects-KJ94e50I.js +0 -3
  352. package/server/public/assets/chunk-BO2N2NFS-ClukPsZQ.js +0 -103
  353. package/server/public/assets/index-DUFDmvmH.css +0 -1
  354. package/server/public/assets/index-DnTZ2QeN.js +0 -796
  355. package/server/public/assets/mermaid-GHXKKRXX-DZJOwgBG.js +0 -1
  356. package/server/rally-Dc2Wnxw2.js +0 -3
  357. package/server/record-pyB6VA32.js +0 -3
  358. package/server/recovery-trip-Dfh1tNHn.js +0 -98
  359. package/server/resolver-dTpSSzaH.js +0 -158
  360. package/server/resume-DhcIqsTm.js +0 -3
  361. package/server/settings-yydgaqhv.js +0 -2
  362. package/server/specs-DwoAEGrW.js +0 -3
  363. package/server/supervisor-DHjumXlL.js +0 -2
  364. package/server/tmux-x291Gjjb.js +0 -3
  365. package/server/token-util-xNaV-00f.js +0 -3
  366. package/server/tracker-config-DItsdelv.js +0 -3
  367. package/server/typed-errors-DSPn_xWP.js +0 -3
  368. package/server/validation-ict8hnXk.js +0 -3
  369. package/server/verification-runner-ATaLbpr5.js +0 -2
  370. package/server/workflows-tU7KKxQi.js +0 -2
  371. package/server/writer-CQMGzEkw.js +0 -3
  372. package/server/writer-fe1-8iGc.js +0 -251
@@ -0,0 +1,362 @@
1
+ import { Fn as init_projects, Gn as resolveInfraRepo, an as STATE_BRANCH_PATHS, cn as init_state_plane, dn as acquireStateMigrationLock, fn as init_state_migration_lock, kn as getProjectSync, nn as init_auto_commit, tn as flushAutoCommits } from "./config-yaml-CqaAyn8y.js";
2
+ import { l as stateWorktreePath, n as STATE_BRANCH, o as init_state_home, r as clearStateMigrationCache, t as MIGRATION_COMPLETE_MARKER } from "./state-home-Bur1y4oH.js";
3
+ import { dirname, join } from "node:path";
4
+ import { Effect } from "effect";
5
+ import { tmpdir } from "node:os";
6
+ import { copyFileSync, cpSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
7
+ import { execFile } from "node:child_process";
8
+ import { promisify } from "node:util";
9
+ import { createHash } from "node:crypto";
10
+ //#region ../../lib/state-migration-manifest.ts
11
+ init_projects();
12
+ init_state_migration_lock();
13
+ init_state_plane();
14
+ init_auto_commit();
15
+ init_state_home();
16
+ function manifestEntry(source, destination) {
17
+ const stat = lstatSync(source);
18
+ const bytes = readFileSync(source);
19
+ return {
20
+ source,
21
+ destination,
22
+ mode: stat.mode & 511,
23
+ size: stat.size,
24
+ sha256: createHash("sha256").update(bytes).digest("hex")
25
+ };
26
+ }
27
+ function verifyStateMigrationManifest(entries) {
28
+ for (const expected of entries) {
29
+ const actual = manifestEntry(expected.destination, expected.destination);
30
+ if ((actual.mode & 64) !== (expected.mode & 64) || actual.size !== expected.size || actual.sha256 !== expected.sha256) throw new Error(`State migration no-loss mismatch: ${expected.source} -> ${expected.destination}`);
31
+ }
32
+ }
33
+ //#endregion
34
+ //#region ../../cli/commands/admin/state-migrate.ts
35
+ const execFileAsync = promisify(execFile);
36
+ async function git(cwd, args, env) {
37
+ const { stdout } = await execFileAsync("git", args, {
38
+ cwd,
39
+ env: {
40
+ ...process.env,
41
+ ...env
42
+ },
43
+ encoding: "utf8",
44
+ maxBuffer: 32 * 1024 * 1024
45
+ });
46
+ return stdout.trim();
47
+ }
48
+ function destinationForTracked(path) {
49
+ if (!path.startsWith(".pan/")) return null;
50
+ const flat = path.slice(5);
51
+ return STATE_BRANCH_PATHS.some((prefix) => flat.startsWith(prefix)) ? flat : null;
52
+ }
53
+ async function trackedManifest(repo, sourceSha, stateRoot) {
54
+ return (await git(repo, [
55
+ "ls-tree",
56
+ "-r",
57
+ "--name-only",
58
+ sourceSha,
59
+ "--",
60
+ ".pan"
61
+ ])).split("\n").filter(Boolean).flatMap((path) => {
62
+ const destination = destinationForTracked(path);
63
+ if (!destination) return [];
64
+ const source = join(repo, path);
65
+ const target = join(stateRoot, destination);
66
+ if (!existsSync(target)) {
67
+ mkdirSync(dirname(target), { recursive: true });
68
+ copyFileSync(source, target);
69
+ }
70
+ return [manifestEntry(source, target)];
71
+ });
72
+ }
73
+ async function createOrphanStateCommit(repo, sourceSha) {
74
+ const index = join(tmpdir(), `overdeck-state-index-${process.pid}-${Date.now()}`);
75
+ const env = { GIT_INDEX_FILE: index };
76
+ try {
77
+ await git(repo, ["read-tree", "--empty"], env);
78
+ const rows = (await git(repo, [
79
+ "ls-tree",
80
+ "-r",
81
+ sourceSha,
82
+ "--",
83
+ ".pan"
84
+ ])).split("\n").filter(Boolean);
85
+ for (const row of rows) {
86
+ const match = row.match(/^(\d+)\s+\w+\s+([0-9a-f]+)\t(.+)$/);
87
+ if (!match) continue;
88
+ const destination = destinationForTracked(match[3]);
89
+ if (destination) await git(repo, [
90
+ "update-index",
91
+ "--add",
92
+ "--cacheinfo",
93
+ `${match[1]},${match[2]},${destination}`
94
+ ], env);
95
+ }
96
+ return await git(repo, [
97
+ "commit-tree",
98
+ await git(repo, ["write-tree"], env),
99
+ "-m",
100
+ "chore(state): seed overdeck-state"
101
+ ]);
102
+ } finally {
103
+ rmSync(index, { force: true });
104
+ }
105
+ }
106
+ function copyLegacyState(sourceRoot, stateRoot) {
107
+ const manifest = [];
108
+ for (const sourcePath of STATE_BRANCH_PATHS) {
109
+ const source = join(sourceRoot, ".pan", sourcePath);
110
+ if (!existsSync(source)) continue;
111
+ const destination = join(stateRoot, sourcePath);
112
+ cpSync(source, destination, {
113
+ recursive: true,
114
+ preserveTimestamps: true
115
+ });
116
+ const visit = (sourceDir, destinationDir) => {
117
+ for (const entry of readdirSync(sourceDir, { withFileTypes: true })) {
118
+ const sourceEntry = join(sourceDir, entry.name);
119
+ const destinationEntry = join(destinationDir, entry.name);
120
+ if (entry.isDirectory()) visit(sourceEntry, destinationEntry);
121
+ else if (entry.isFile()) manifest.push(manifestEntry(sourceEntry, destinationEntry));
122
+ }
123
+ };
124
+ visit(source, destination);
125
+ }
126
+ return manifest;
127
+ }
128
+ function hasNonStateDirtyState(porcelain) {
129
+ return porcelain.split("\n").filter(Boolean).some((line) => {
130
+ const path = line.slice(3).split(" -> ").at(-1) ?? "";
131
+ if (path === ".pan" || path.startsWith(".pan/")) return false;
132
+ return true;
133
+ });
134
+ }
135
+ function dedupeManifest(entries) {
136
+ return [...new Map(entries.map((entry) => [entry.destination, entry])).values()];
137
+ }
138
+ const GITIGNORE_MANAGED_LINES = [
139
+ "# PAN-2541: permanent state is on overdeck-state; workspace runtime stays local.",
140
+ ".pan/",
141
+ ".overdeck/continue.json",
142
+ ".overdeck/spec.vbrief.json",
143
+ ".overdeck/sessions.jsonl",
144
+ ".overdeck/feedback/",
145
+ ".overdeck/review/",
146
+ ".overdeck/test/",
147
+ ".overdeck/kickoff.md",
148
+ ".overdeck/agent-mcp.json"
149
+ ];
150
+ function rewriteGitignore(repo) {
151
+ const path = join(repo, ".gitignore");
152
+ const prior = existsSync(path) ? readFileSync(path, "utf8") : "";
153
+ const managed = new Set([...GITIGNORE_MANAGED_LINES, ".overdeck/"]);
154
+ const kept = prior.split("\n").filter((line) => !managed.has(line.trim()));
155
+ while (kept.length > 0 && kept[kept.length - 1]?.trim() === "") kept.pop();
156
+ writeFileSync(path, [
157
+ ...kept,
158
+ "",
159
+ ...GITIGNORE_MANAGED_LINES,
160
+ ""
161
+ ].join("\n"));
162
+ }
163
+ async function migrateProjectState(projectKey, options = {}, projectOverride) {
164
+ const project = projectOverride ?? getProjectSync(projectKey);
165
+ if (!project) throw new Error(`Unknown project: ${projectKey}`);
166
+ const { repoPath: repo } = resolveInfraRepo(project);
167
+ const legacyStateSource = project.path;
168
+ const sourceIsHostRepo = legacyStateSource === repo;
169
+ const stateRoot = stateWorktreePath(project, { projectKey });
170
+ console.log(`PAN-2541 state migration plan for ${projectKey}:`);
171
+ console.log(` ${legacyStateSource}/.pan/{${STATE_BRANCH_PATHS.map((p) => p.slice(0, -1)).join(",")}} -> ${stateRoot}/`);
172
+ console.log(` ${legacyStateSource}/.pan/context -> ${legacyStateSource}/.overdeck/context`);
173
+ if (options.dryRun) return;
174
+ const release = acquireStateMigrationLock(projectKey);
175
+ try {
176
+ await Effect.runPromise(flushAutoCommits(repo));
177
+ if (hasNonStateDirtyState(await git(repo, ["status", "--porcelain"]))) throw new Error("Primary checkout is dirty outside legacy state paths; migration refused before mutation");
178
+ await git(repo, [
179
+ "fetch",
180
+ "--prune",
181
+ "origin"
182
+ ]);
183
+ const sourceMainSha = await git(repo, ["rev-parse", "main"]);
184
+ if (sourceMainSha !== await git(repo, ["rev-parse", "origin/main"])) throw new Error("main is not exactly at origin/main; migration refused");
185
+ if (await git(repo, ["show", `origin/overdeck-state:migration-complete.json`]).catch(() => "")) {
186
+ console.log("State migration already complete on origin; nothing to do.");
187
+ return;
188
+ }
189
+ let stateSha = await git(repo, ["rev-parse", STATE_BRANCH]).catch(() => "");
190
+ const remoteStateSha = await git(repo, ["rev-parse", `origin/${STATE_BRANCH}`]).catch(() => "");
191
+ if (stateSha && remoteStateSha && stateSha !== remoteStateSha) throw new Error("Local and remote overdeck-state diverged; refusing non-fast-forward migration");
192
+ if (!stateSha) {
193
+ stateSha = remoteStateSha || await createOrphanStateCommit(repo, sourceMainSha);
194
+ await git(repo, [
195
+ "update-ref",
196
+ `refs/heads/${STATE_BRANCH}`,
197
+ stateSha
198
+ ]);
199
+ }
200
+ if (!remoteStateSha) await git(repo, [
201
+ "push",
202
+ "origin",
203
+ STATE_BRANCH
204
+ ]);
205
+ if (!existsSync(stateRoot)) {
206
+ mkdirSync(dirname(stateRoot), { recursive: true });
207
+ await git(repo, [
208
+ "worktree",
209
+ "add",
210
+ stateRoot,
211
+ STATE_BRANCH
212
+ ]);
213
+ }
214
+ const manifest = sourceIsHostRepo ? dedupeManifest([...await trackedManifest(repo, sourceMainSha, stateRoot), ...copyLegacyState(legacyStateSource, stateRoot)]) : copyLegacyState(legacyStateSource, stateRoot);
215
+ if (manifest.length > 0) {
216
+ await git(stateRoot, ["add", "--all"]);
217
+ if (await git(stateRoot, [
218
+ "diff",
219
+ "--cached",
220
+ "--name-only"
221
+ ])) await git(stateRoot, [
222
+ "commit",
223
+ "-m",
224
+ "chore(state): seed legacy project state"
225
+ ]);
226
+ await git(stateRoot, [
227
+ "push",
228
+ "origin",
229
+ STATE_BRANCH
230
+ ]);
231
+ }
232
+ const untracked = sourceIsHostRepo ? (await git(repo, [
233
+ "ls-files",
234
+ "--others",
235
+ "--",
236
+ ".pan"
237
+ ])).split("\n").filter((path) => path.split("/").length === 2 && existsSync(join(repo, path)) && lstatSync(join(repo, path)).isFile()) : existsSync(join(legacyStateSource, ".pan")) ? readdirSync(join(legacyStateSource, ".pan"), { withFileTypes: true }).filter((entry) => entry.isFile()).map((entry) => `.pan/${entry.name}`) : [];
238
+ for (const path of untracked) {
239
+ if (!existsSync(join(legacyStateSource, path))) continue;
240
+ const destination = join(stateRoot, "notes", path.slice(5));
241
+ if (existsSync(destination)) {
242
+ if (!readFileSync(join(legacyStateSource, path)).equals(readFileSync(destination))) throw new Error(`Untracked-note destination collision: ${destination}`);
243
+ manifest.push(manifestEntry(join(legacyStateSource, path), destination));
244
+ continue;
245
+ }
246
+ mkdirSync(dirname(destination), { recursive: true });
247
+ copyFileSync(join(legacyStateSource, path), destination);
248
+ manifest.push(manifestEntry(join(legacyStateSource, path), destination));
249
+ }
250
+ if (untracked.length > 0) {
251
+ await git(stateRoot, ["add", "notes"]);
252
+ if (await git(stateRoot, [
253
+ "diff",
254
+ "--cached",
255
+ "--name-only"
256
+ ])) await git(stateRoot, [
257
+ "commit",
258
+ "-m",
259
+ "chore(state): preserve untracked operator notes"
260
+ ]);
261
+ await git(stateRoot, [
262
+ "push",
263
+ "origin",
264
+ STATE_BRANCH
265
+ ]);
266
+ }
267
+ if (await git(repo, ["rev-parse", "main"]) !== sourceMainSha) throw new Error("main advanced during migration; refusing cleanup");
268
+ if (sourceIsHostRepo) await git(repo, [
269
+ "rm",
270
+ "-r",
271
+ "--cached",
272
+ "--ignore-unmatch",
273
+ ".pan/records",
274
+ ".pan/continues",
275
+ ".pan/specs",
276
+ ".pan/drafts",
277
+ ".pan/review",
278
+ ".pan/test",
279
+ ".pan/feedback",
280
+ ".pan/backlog",
281
+ ".pan/notes"
282
+ ]);
283
+ const oldContext = join(legacyStateSource, ".pan", "context");
284
+ const newContext = join(legacyStateSource, ".overdeck", "context");
285
+ let movedContext = false;
286
+ if (existsSync(oldContext) && !existsSync(newContext)) {
287
+ mkdirSync(dirname(newContext), { recursive: true });
288
+ renameSync(oldContext, newContext);
289
+ movedContext = true;
290
+ }
291
+ rewriteGitignore(legacyStateSource);
292
+ if (sourceIsHostRepo) {
293
+ if (await git(repo, [
294
+ "ls-files",
295
+ "--",
296
+ ".pan/context"
297
+ ])) await git(repo, [
298
+ "add",
299
+ "-u",
300
+ "--",
301
+ ".pan/context"
302
+ ]);
303
+ const addPaths = [".gitignore"];
304
+ if (movedContext || existsSync(newContext)) addPaths.push(".overdeck/context");
305
+ await git(repo, [
306
+ "add",
307
+ "--",
308
+ ...addPaths
309
+ ]);
310
+ if (await git(repo, [
311
+ "diff",
312
+ "--cached",
313
+ "--name-only"
314
+ ])) await git(repo, [
315
+ "commit",
316
+ "-m",
317
+ "chore(state): move permanent state to overdeck-state"
318
+ ]);
319
+ }
320
+ verifyStateMigrationManifest(manifest);
321
+ for (const entry of manifest) rmSync(entry.source, { force: true });
322
+ if (!sourceIsHostRepo) rmSync(join(legacyStateSource, ".pan"), {
323
+ recursive: true,
324
+ force: true
325
+ });
326
+ stateSha = await git(stateRoot, ["rev-parse", "HEAD"]);
327
+ writeFileSync(join(stateRoot, MIGRATION_COMPLETE_MARKER), `${JSON.stringify({
328
+ sourceMainSha,
329
+ stateBranchSha: stateSha,
330
+ completedAt: (/* @__PURE__ */ new Date()).toISOString(),
331
+ version: 1
332
+ }, null, 2)}\n`);
333
+ await git(stateRoot, ["add", MIGRATION_COMPLETE_MARKER]);
334
+ await git(stateRoot, [
335
+ "commit",
336
+ "-m",
337
+ "chore(state): complete state migration"
338
+ ]);
339
+ await git(repo, [
340
+ "push",
341
+ "--atomic",
342
+ "--dry-run",
343
+ "origin",
344
+ "main",
345
+ STATE_BRANCH
346
+ ]);
347
+ await git(repo, [
348
+ "push",
349
+ "--atomic",
350
+ "origin",
351
+ "main",
352
+ STATE_BRANCH
353
+ ]);
354
+ clearStateMigrationCache();
355
+ } finally {
356
+ release();
357
+ }
358
+ }
359
+ //#endregion
360
+ export { migrateProjectState };
361
+
362
+ //# sourceMappingURL=state-migrate-D3VveYfO.js.map
@@ -1,16 +1,18 @@
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 { Fn as init_projects, Jr as getOverdeckHome, Sr as init_errors, Vr as encodeClaudeProjectDir, Yr as init_paths, fr as FsError, nr as extractPrefixSync, qn as resolveProjectFromIssueSync, rr as init_issue_id, yr as TmuxError } from "./config-yaml-CqaAyn8y.js";
2
+ import { E as killSessionSync, F as sendKeys, O as listPaneValuesSync, S as init_tmux, a as capturePaneSync, c as detectTerminalApiErrorSync, i as capturePane, z as sessionExistsSync } from "./tmux-U55cNGFG.js";
3
+ import { n as CLAUDE_CODE_BEHAVIOR } from "./src-By3D85Ry.js";
4
+ import { c as init_review_status, s as getReviewStatusSync } from "./review-status-DANr0t-v.js";
5
+ import { Fn as getAgentStateSync, K as createOhmypiRuntimeSync, L as messageAgent, M as resumeAgent, Un as markAgentTroubled, Y as spawnAgent, Yn as saveAgentStateSync, _t as init_config, a as listRunningAgentsSync, gr as saveAgentRuntimeState, ht as DEFAULT_CLOISTER_CONFIG, jn as getAgentDir, ln as determineModel, mr as getAgentRuntimeStateSync, pr as getAgentRuntimeState, q as init_ohmypi, s as init_agents, tn as init_pi_fifo, yt as loadCloisterConfigSync } from "./queries-C0LCGG21.js";
6
+ import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-bnOFKMwf.js";
7
+ import { t as init_behavior } from "./behavior-CWqNMqE5.js";
8
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-OkdbaUCm.js";
9
+ import { m as readWorkspacePlanSync, o as init_io } from "./io-DkC4sFSy.js";
10
+ import { n as init_launcher_generator } from "./launcher-generator-BXLM9f4b.js";
11
+ import { i as createCodexRuntimeSync, l as init_codex } from "./codex-sgWVCGUd.js";
12
+ import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-BguNQ1F_.js";
13
+ import { l as init_dag, o as getDispatchableItems } from "./dag-C6kYyF17.js";
14
+ import { a as init_jsonl_parser, i as getSessionFilesSync, r as getProjectDirsSync, s as parseClaudeSessionSync } from "./jsonl-parser-Cd5jIqh7.js";
15
+ import { t as recordRecoveryFailure } from "./recovery-trip-Cn7KJVkS.js";
14
16
  import "node:path";
15
17
  import { Effect } from "effect";
16
18
  import { existsSync, mkdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from "fs";
@@ -28,12 +30,13 @@ import "node:crypto";
28
30
  init_paths();
29
31
  init_issue_id();
30
32
  init_projects();
31
- init_review_status();
32
33
  init_behavior();
33
34
  init_persistent_logger();
35
+ init_review_status();
36
+ init_io();
34
37
  init_codex();
35
38
  init_launcher_generator();
36
- init_beads_query();
39
+ init_dag();
37
40
  init_agents();
38
41
  init_tmux();
39
42
  init_errors();
@@ -425,15 +428,19 @@ async function readFileTail(filePath, maxBytes) {
425
428
  }
426
429
  }
427
430
  const ASK_USER_QUESTION_HOOK_DENY_MARKER = "PAN-1520";
431
+ const ASK_USER_QUESTION_HOOK_DENY_PHRASE = "surfaced to the operator in the Overdeck dashboard";
432
+ function isHookDenyText(text) {
433
+ return text.includes(ASK_USER_QUESTION_HOOK_DENY_MARKER) || text.includes(ASK_USER_QUESTION_HOOK_DENY_PHRASE);
434
+ }
428
435
  function isAskUserQuestionHookDenyToolResult(item) {
429
436
  if (item.is_error !== true) return false;
430
437
  const content = item.content;
431
- if (typeof content === "string") return content.includes(ASK_USER_QUESTION_HOOK_DENY_MARKER);
438
+ if (typeof content === "string") return isHookDenyText(content);
432
439
  if (Array.isArray(content)) return content.some((part) => {
433
- if (typeof part === "string") return part.includes(ASK_USER_QUESTION_HOOK_DENY_MARKER);
440
+ if (typeof part === "string") return isHookDenyText(part);
434
441
  if (part && typeof part === "object" && "text" in part) {
435
442
  const text = part.text;
436
- return typeof text === "string" && text.includes(ASK_USER_QUESTION_HOOK_DENY_MARKER);
443
+ return typeof text === "string" && isHookDenyText(text);
437
444
  }
438
445
  return false;
439
446
  });
@@ -474,6 +481,7 @@ async function scanPendingInputsPromise(jsonlPath) {
474
481
  const askAnswered = /* @__PURE__ */ new Set();
475
482
  const askDeniedAwaitingUser = /* @__PURE__ */ new Set();
476
483
  const exitPlanModeIds = /* @__PURE__ */ new Set();
484
+ const exitPlanModeCalls = /* @__PURE__ */ new Map();
477
485
  const exitPlanModeAnswered = /* @__PURE__ */ new Set();
478
486
  const enterPlanModeIds = /* @__PURE__ */ new Set();
479
487
  const exitPlanModeFiredAfterEnter = /* @__PURE__ */ new Set();
@@ -495,6 +503,10 @@ async function scanPendingInputsPromise(jsonlPath) {
495
503
  else if (item.name === "ExitPlanMode" && typeof item.id === "string") {
496
504
  exitPlanModeIds.add(item.id);
497
505
  exitPlanModeFiredAfterEnter.add(item.id);
506
+ if (typeof item.input?.plan === "string" && item.input.plan.trim()) exitPlanModeCalls.set(item.id, {
507
+ plan: item.input.plan,
508
+ timestamp: entry.timestamp || (/* @__PURE__ */ new Date()).toISOString()
509
+ });
498
510
  } else if (item.name === "EnterPlanMode" && typeof item.id === "string") enterPlanModeIds.add(item.id);
499
511
  }
500
512
  if (item.type === "tool_result" && typeof item.tool_use_id === "string") {
@@ -508,11 +520,19 @@ async function scanPendingInputsPromise(jsonlPath) {
508
520
  }
509
521
  } catch {}
510
522
  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));
523
+ const pendingExitPlanId = Array.from(exitPlanModeIds).find((id) => !exitPlanModeAnswered.has(id));
524
+ const exitPlanModePending = pendingExitPlanId !== void 0;
525
+ const pendingCall = pendingExitPlanId ? exitPlanModeCalls.get(pendingExitPlanId) : void 0;
526
+ const pendingProposedPlan = pendingExitPlanId && pendingCall ? {
527
+ toolUseId: pendingExitPlanId,
528
+ askedAt: pendingCall.timestamp,
529
+ plan: pendingCall.plan
530
+ } : void 0;
512
531
  return {
513
532
  askUserQuestions,
514
533
  enterPlanModeOpen: enterPlanModeIds.size > 0 && exitPlanModeFiredAfterEnter.size === 0,
515
- exitPlanModePending
534
+ exitPlanModePending,
535
+ ...pendingProposedPlan ? { pendingProposedPlan } : {}
516
536
  };
517
537
  } catch {
518
538
  return {
@@ -544,6 +564,7 @@ async function computeAgentEnrichmentPromise(agentId, startedAt, hasActiveSpecia
544
564
  let pendingQuestions = [];
545
565
  let enterPlanModeOpen = false;
546
566
  let exitPlanModePending = false;
567
+ let scannedProposedPlan;
547
568
  if (!skipJsonlScan) {
548
569
  const jsonlPath = await Effect.runPromise(getAgentJsonlPath(agentId));
549
570
  if (jsonlPath) {
@@ -551,6 +572,7 @@ async function computeAgentEnrichmentPromise(agentId, startedAt, hasActiveSpecia
551
572
  pendingQuestions = [...scan.askUserQuestions];
552
573
  enterPlanModeOpen = scan.enterPlanModeOpen;
553
574
  exitPlanModePending = scan.exitPlanModePending;
575
+ scannedProposedPlan = scan.pendingProposedPlan;
554
576
  }
555
577
  if (pendingQuestions.length > 0 && startedAt) {
556
578
  const agentStartTime = new Date(startedAt).getTime();
@@ -600,6 +622,7 @@ async function computeAgentEnrichmentPromise(agentId, startedAt, hasActiveSpecia
600
622
  if (enterPlanModeOpen && !exitPlanModePending) pendingInputKinds.push("enterPlanMode");
601
623
  appendPaneDetectionKind(detection, pendingInputKinds);
602
624
  }
625
+ const pendingProposedPlan = !shouldSuppressPendingInput && exitPlanModePending ? scannedProposedPlan : void 0;
603
626
  return {
604
627
  role,
605
628
  hasPendingQuestion,
@@ -609,6 +632,7 @@ async function computeAgentEnrichmentPromise(agentId, startedAt, hasActiveSpecia
609
632
  pendingInputCount: pendingInputKinds.length,
610
633
  pendingInputKinds,
611
634
  pendingAskUserQuestion,
635
+ pendingProposedPlan,
612
636
  resolution: runtimeState?.resolution || "working",
613
637
  resolutionCount: runtimeState?.resolutionCount || 0
614
638
  };
@@ -1198,7 +1222,7 @@ async function evaluateWedgedReworkAgent(agent, config, now, actions) {
1198
1222
  markAgentTroubled(agentId);
1199
1223
  writeStuckRemediationState(agentId, stageState(3, now, firstStuck));
1200
1224
  logAction(actions, transitionAction(3, issueId, idleMinutes, "rework-wedge-troubled"));
1201
- surfaceStuckNeedsYou(agent, issueId, firstStuck, actions);
1225
+ await surfaceStuckNeedsYou(agent, issueId, firstStuck, actions);
1202
1226
  return true;
1203
1227
  }
1204
1228
  killSessionSync(agentId);
@@ -1206,9 +1230,6 @@ async function evaluateWedgedReworkAgent(agent, config, now, actions) {
1206
1230
  logAction(actions, transitionAction(3, issueId, idleMinutes, "killed-for-respawn"));
1207
1231
  return true;
1208
1232
  }
1209
- function hasReadyBeads(readyByQueryRoot, agent, issueLabel) {
1210
- return (readyByQueryRoot.get(resolveBeadsQueryRoot(agent.workspace))?.[issueLabel] ?? []).length > 0;
1211
- }
1212
1233
  function shouldCheckReadyBeadsForAgent(agent, now) {
1213
1234
  const agentId = agent.id;
1214
1235
  if (!agentId) return false;
@@ -1241,11 +1262,11 @@ function logAction(actions, action) {
1241
1262
  console.log(action);
1242
1263
  logDeaconEventSync(action);
1243
1264
  }
1244
- function surfaceStuckNeedsYou(agent, issueId, generation, actions) {
1265
+ async function surfaceStuckNeedsYou(agent, issueId, generation, actions) {
1245
1266
  if (!agent.workspace) return;
1246
- if (recordRecoveryFailure(agent.workspace, issueId, "stuck-remediation", generation, 1).emitNeedsYou) logAction(actions, `[deacon] needs-you ${issueId}: stuck remediation exhausted`);
1267
+ if ((await recordRecoveryFailure(agent.workspace, issueId, "stuck-remediation", generation, 1)).emitNeedsYou) logAction(actions, `[deacon] needs-you ${issueId}: stuck remediation exhausted`);
1247
1268
  }
1248
- async function evaluateAgent(agent, config, now, actions, readyByQueryRoot) {
1269
+ async function evaluateAgent(agent, config, now, actions) {
1249
1270
  const agentId = agent.id;
1250
1271
  if (!agentId) return;
1251
1272
  if (agent.status !== "running") return;
@@ -1264,7 +1285,9 @@ async function evaluateAgent(agent, config, now, actions, readyByQueryRoot) {
1264
1285
  if (!shouldCheckReadyBeadsForAgent(agent, now)) return;
1265
1286
  if (!agent.workspace) return;
1266
1287
  const issueId = issueIdForAgent(agent);
1267
- if (hasReadyBeads(readyByQueryRoot, agent, issueId.toLowerCase())) return;
1288
+ const plan = readWorkspacePlanSync(agent.workspace);
1289
+ if (!plan) return;
1290
+ if (getDispatchableItems(plan, /* @__PURE__ */ new Set()).length > 0) return;
1268
1291
  const lastActivityMs = getAgentEffectiveLastActivityMs(agentId);
1269
1292
  if (lastActivityMs === null) return;
1270
1293
  if (!Number.isFinite(lastActivityMs)) return;
@@ -1280,11 +1303,19 @@ async function evaluateAgent(agent, config, now, actions, readyByQueryRoot) {
1280
1303
  const idleMinutes = Math.floor((now - lastActivityMs) / 6e4);
1281
1304
  const lastStage = stuckState?.lastStage ?? 0;
1282
1305
  const firstStuck = firstStuckAt(lastActivity, stuckState);
1306
+ const terminalProviderError = detectTerminalApiErrorSync(capturePaneSync(agentId, 80));
1307
+ if (terminalProviderError) {
1308
+ markAgentTroubled(agentId);
1309
+ writeStuckRemediationState(agentId, stageState(3, now, firstStuck));
1310
+ logAction(actions, `${agentId} provider-terminal: ${terminalProviderError.summary}`);
1311
+ await surfaceStuckNeedsYou(agent, issueId, firstStuck, actions);
1312
+ return;
1313
+ }
1283
1314
  if (idleMinutes >= config.stage3_minutes && lastStage < 3) {
1284
1315
  markAgentTroubled(agentId);
1285
1316
  writeStuckRemediationState(agentId, stageState(3, now, firstStuck));
1286
1317
  logAction(actions, transitionAction(3, issueId, idleMinutes, "marked-troubled"));
1287
- surfaceStuckNeedsYou(agent, issueId, firstStuck, actions);
1318
+ await surfaceStuckNeedsYou(agent, issueId, firstStuck, actions);
1288
1319
  return;
1289
1320
  }
1290
1321
  if (idleMinutes >= config.stage2_minutes && lastStage < 2) {
@@ -1368,7 +1399,7 @@ async function remediateFlywheelOrchestrator(agentId, now, actions, reason) {
1368
1399
  now
1369
1400
  });
1370
1401
  if (decision.kind === "noop") return;
1371
- const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-Bi82iiNl.js");
1402
+ const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-BUWdcfhq.js");
1372
1403
  const prev = readStuckRemediationState(agentId);
1373
1404
  const nowIso = new Date(now).toISOString();
1374
1405
  if (decision.kind === "escalate") {
@@ -1451,25 +1482,11 @@ async function checkStuckAgentRemediation(opts = {}) {
1451
1482
  const actions = [];
1452
1483
  const now = opts.now ?? Date.now();
1453
1484
  const runningAgents = listRunningAgentsSync();
1454
- const readyByQueryRoot = /* @__PURE__ */ new Map();
1455
- const workAgentsByQueryRoot = /* @__PURE__ */ new Map();
1456
1485
  let sawFlywheelOrchestrator = false;
1457
- for (const agent of runningAgents) {
1458
- if (!shouldCheckReadyBeadsForAgent(agent, now)) continue;
1459
- const queryRoot = resolveBeadsQueryRoot(agent.workspace);
1460
- const workspaceAgents = workAgentsByQueryRoot.get(queryRoot) ?? [];
1461
- workspaceAgents.push(agent);
1462
- workAgentsByQueryRoot.set(queryRoot, workspaceAgents);
1463
- }
1464
- for (const [queryRoot, workspaceAgents] of workAgentsByQueryRoot) {
1465
- const issueIds = workspaceAgents.map(issueIdForAgent);
1466
- const ready = await Effect.runPromise(queryReadyBeadsByIssueLabels(queryRoot, issueIds, { acquisitionTimeoutMs: 500 }));
1467
- readyByQueryRoot.set(queryRoot, ready.byIssue);
1468
- }
1469
1486
  for (const agent of runningAgents) {
1470
1487
  if (agent.id === FLYWHEEL_ORCHESTRATOR_AGENT_ID || agent.role === "flywheel") sawFlywheelOrchestrator = true;
1471
1488
  try {
1472
- await evaluateAgent(agent, config, now, actions, readyByQueryRoot);
1489
+ await evaluateAgent(agent, config, now, actions);
1473
1490
  } catch (error) {
1474
1491
  const message = `[deacon] stuck-remediation agent=${agent.id || "(unknown)"} error=${error instanceof Error ? error.message : String(error)}`;
1475
1492
  console.error(message, error);
@@ -1488,4 +1505,4 @@ async function checkStuckAgentRemediation(opts = {}) {
1488
1505
  //#endregion
1489
1506
  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
1507
 
1491
- //# sourceMappingURL=stuck-remediation-CFWUP8_I.js.map
1508
+ //# sourceMappingURL=stuck-remediation-B699-p8v.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-B699-p8v.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-CmoXpjeU.js";
2
+ import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-COqYpVa3.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 { $r as sessionFilePath, Kr as getHandoffsDir, Sr as init_errors, Yr as init_paths, Zr as packageRoot, f as loadConfigSync, fr as FsError, t as init_config_yaml } from "./config-yaml-CqaAyn8y.js";
3
+ import { St as deliverAgentMessage, s as init_agents } from "./queries-C0LCGG21.js";
4
+ import { k as init_conversations } from "./conversations-BX5aD-6F.js";
5
+ import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-C-SnpRHh.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-CmoXpjeU.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-DlEIAhRy.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-DlEIAhRy.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-COqYpVa3.js.map