@overdeck/desktop 0.45.16 → 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 (365) 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-DJYAvGv-.js → advancing-selfheal-DgwQgm4D.js} +6 -6
  8. package/server/{agent-gc-D0wDIeV1.js → agent-gc-kpzxqT7P.js} +3 -3
  9. package/server/agent-state-C_6TG-Ad.js +3 -0
  10. package/server/{agent-state-service-CZrayD_G.js → agent-state-service-BUfovFfB.js} +1 -1
  11. package/server/{agent-state-service-DFslS5go.js → agent-state-service-nUD3qfob.js} +5 -5
  12. package/server/agents-BA15AQqo.js +3 -0
  13. package/server/{briefing-freshness-DESTCWo-.js → agents-BHBxr8c9.js} +5 -131
  14. package/server/{archive-planning-CbghE9-o.js → archive-planning-CzCW9Ifl.js} +5 -10
  15. package/server/{archive-planning-CoyIbgGK.js → archive-planning-D-QsBufn.js} +1 -1
  16. package/server/{artifact-index-jobs-CcSrUoSE.js → artifact-index-jobs-qqa51B2Z.js} +2 -2
  17. package/server/{backlog-auto-trigger-BfgDsII0.js → backlog-auto-trigger-B7Bi0bvY.js} +2 -2
  18. package/server/{behavior-BTpYbAv4.js → behavior-CWqNMqE5.js} +2 -2
  19. package/server/briefing-freshness-DuxIE1yr.js +131 -0
  20. package/server/{checkpoint-manager-BwFdegJF.js → checkpoint-manager-DF6hb9Jw.js} +3 -3
  21. package/server/{checkpoint-manager-DWSXooZV.js → checkpoint-manager-DixkLus7.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-fjadfOKF.js → checkpoints-B1Z42tJE.js} +1 -1
  24. package/server/{checkpoints-BtUonbs3.js → checkpoints-BiviJqei.js} +2 -2
  25. package/server/{claude-hooks-provision-DiK62u0k.js → claude-hooks-provision-BeMGi4ty.js} +1 -1
  26. package/server/{claude-hooks-provision-DAtxutOs.js → claude-hooks-provision-Du_PkMsp.js} +2 -2
  27. package/server/{claude-permissions-CThLgf8d.js → claude-permissions-BB6agcOZ.js} +2 -2
  28. package/server/{claude-settings-overlay-BF9MPIwx.js → claude-settings-overlay-CAq2oFSK.js} +2 -2
  29. package/server/{claude-settings-overlay-Dx_Uqcmv.js → claude-settings-overlay-DUWWLd6M.js} +1 -1
  30. package/server/cli-BFgrSWKV.js +3 -0
  31. package/server/{cli-ByKIIMfT.js → cli-C33xPZNm.js} +9 -9
  32. package/server/{cliproxy-C_GuT5DU.js → cliproxy-BQX1TL6N.js} +1 -1
  33. package/server/{cliproxy-B4c1BUvs.js → cliproxy-CGBA1GzA.js} +2 -2
  34. package/server/{close-issue-BOuLKr6e.js → close-issue-DNv8npc1.js} +5 -5
  35. package/server/{closed-issue-reaper-CksfuiFD.js → closed-issue-reaper-DrqgBJlr.js} +1 -1
  36. package/server/{closed-issue-reaper-DCAYzNXW.js → closed-issue-reaper-LoMnnjtJ.js} +9 -9
  37. package/server/codex-DxLivxri.js +3 -0
  38. package/server/{codex-parser-mFYZh8vR.js → codex-parser-DboQnEXN.js} +2 -2
  39. package/server/{codex-BbqIRZjd.js → codex-sgWVCGUd.js} +43 -18
  40. package/server/{config-Dj6N8EP9.js → config-6MCHOZ2N.js} +1 -1
  41. package/server/{config-DVLdmnMJ.js → config-DfaUXr6r.js} +2 -2
  42. package/server/{config-yaml-cNOZcEww.js → config-yaml-CqaAyn8y.js} +74 -74
  43. package/server/{conflict-gate-BMKm_5DV.js → conflict-gate-BF_zhcmb.js} +3 -3
  44. package/server/{conflict-gate-CuXUv-bP.js → conflict-gate-BubJprtD.js} +1 -1
  45. package/server/{context-layers-c0JqYHcS.js → context-layers-BFrxfl0l.js} +17 -3
  46. package/server/{context-layers-CeAwSYNt.js → context-layers-DWL_8HhY.js} +2 -2
  47. package/server/{control-settings-D4EFsRBd.js → control-settings-BguNQ1F_.js} +4 -4
  48. package/server/{conversation-compaction-kHVfVRg3.js → conversation-compaction-CRKAf2qP.js} +1 -1
  49. package/server/{conversation-compaction-BCggyih4.js → conversation-compaction-DxSXl0pT.js} +8 -8
  50. package/server/{conversation-service-BTzObqGi.js → conversation-service-DzuY9qoH.js} +1 -1
  51. package/server/{conversation-service-B8LFQQm1.js → conversation-service-mFVFdDQK.js} +6 -6
  52. package/server/{conversations-B-lcHv-5.js → conversations-BX5aD-6F.js} +4 -4
  53. package/server/{conversations-BM7zlXjr.js → conversations-BajHQ60c.js} +1 -1
  54. package/server/{cost-D9kPIY_5.js → cost-BoqD1Pxz.js} +2 -2
  55. package/server/{cost-BcpRQ-7o.js → cost-DuZ5vlv-.js} +3 -3
  56. package/server/{cost-sync-DF6odxK9.js → cost-sync-BYnmnMkY.js} +3 -3
  57. package/server/{dag-DKI3sOmX.js → dag-C6kYyF17.js} +7 -243
  58. package/server/{dangerous-git-ops-Bn18PEcN.js → dangerous-git-ops-q5OPtXMd.js} +1 -1
  59. package/server/dashboard-db-worker.js +6 -6
  60. package/server/{deacon-DONuopff.js → deacon-CwCiNuEZ.js} +3 -3
  61. package/server/{deacon-DdARMjZq.js → deacon-Dru5onpk.js} +233 -162
  62. package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-ilDfxrhK.js} +1 -1
  63. package/server/{deacon-swarm-BNGkmYR_.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-C-34Sxyz.js → devcontainer-renderer-BqGNCzvN.js} +3 -3
  67. package/server/{dist-BMXvKiZP.js → dist-BwlEiLCU.js} +1 -1
  68. package/server/dist-Bx4KkgYL.js +3 -0
  69. package/server/{dist-src-BgGUblXg.js → dist-src-BE0Denfs.js} +1 -1
  70. package/server/{docker-apZ9pBYw.js → docker-CNjXS72x.js} +2 -2
  71. package/server/{ensure-devcontainer-Bqi1EF1P.js → ensure-devcontainer-5e9xOve4.js} +4 -4
  72. package/server/{ensure-devcontainer-Dq3KoOIl.js → ensure-devcontainer-C6gyUQdE.js} +1 -1
  73. package/server/{esm-shims-BEjvINX3.js → esm-shims-Cso7IGBC.js} +1 -1
  74. package/server/{event-store-CqDgfbAs.js → event-store-D9UhQyMS.js} +1 -1
  75. package/server/{event-store-D89fMfXS.js → event-store-KZnWUKWh.js} +3 -3
  76. package/server/{events-S_C0pvl6.js → events-2eFUPdqz.js} +3 -3
  77. package/server/{events-rIGncmP1.js → events-BYbvqZky.js} +1 -1
  78. package/server/{factory-DV18m0rc.js → factory-BtaRsHFC.js} +20 -17
  79. package/server/{feature-registry-population-CqZSnqQi.js → feature-registry-population-Ca2UaV0U.js} +4 -4
  80. package/server/{feature-registry-storage-BeXmNBwK.js → feature-registry-storage-DaP-bQxO.js} +2 -2
  81. package/server/{features-u5XeMaOK.js → features-DqvaoQoa.js} +2 -2
  82. package/server/{feedback-target-CwyWf0Dg.js → feedback-target-BXWdOiYI.js} +9 -7
  83. package/server/{feedback-target-DDG1PWl3.js → feedback-target-BblmMe9P.js} +1 -1
  84. package/server/{feedback-writer-BsJiw5aT.js → feedback-writer-CULeOOY4.js} +1 -1
  85. package/server/{feedback-writer-D20HSXre.js → feedback-writer-Dn8o9ZyE.js} +4 -4
  86. package/server/{flywheel-RCnHAgc4.js → flywheel-BUWdcfhq.js} +1 -1
  87. package/server/{flywheel-Dczmgchd.js → flywheel-CqkO3cDj.js} +15 -28
  88. package/server/{flywheel-9Y1X7IM-.js → flywheel-D9r1mw2U.js} +13 -13
  89. package/server/{flywheel-merge-order-DEtEd3aK.js → flywheel-merge-order-LDzQDwSg.js} +1 -1
  90. package/server/{flywheel-merge-order-CtCYsFJP.js → flywheel-merge-order-VtjUweEb.js} +6 -6
  91. package/server/forge-DJy3Zx4s.js +2 -0
  92. package/server/{forge-DFDThFil.js → forge-wEollMCi.js} +22 -12
  93. package/server/{from-NSJypkI8.js → from-B2tOYhYV.js} +1 -1
  94. package/server/{fts-db-C5A_TTOM.js → fts-db-Bgzn2RO7.js} +2 -2
  95. package/server/{fts-operations-DvCSimfU.js → fts-operations-Bj8yutnR.js} +2 -2
  96. package/server/{git-utils-Dr0L7mFk.js → git-utils-GxlL0tmt.js} +2 -2
  97. package/server/{git-utils-C0neHvQx.js → git-utils-q8jNoBts.js} +1 -1
  98. package/server/{github-app-Bwt9lK4A.js → github-app-BrYwK_Gb.js} +1 -1
  99. package/server/{github-app-u9-SX7Gc.js → github-app-tUbb8Ldr.js} +8 -3
  100. package/server/{github-client-Btyy3uan.js → github-client-BwBU41jK.js} +3 -3
  101. package/server/{github-client-Do3k-N1W.js → github-client-D6CNsftm.js} +1 -1
  102. package/server/{github-pr-lookup-DOF1U2WW.js → github-pr-lookup-BS5PqkJb.js} +2 -2
  103. package/server/{harness-resolve-C6g2R0Cd.js → harness-resolve-Dx8hUsvC.js} +3 -3
  104. package/server/{health-events-B4u-2a9m.js → health-events-2DLp-5Xp.js} +2 -2
  105. package/server/{health-events-Bos3sk5g.js → health-events-B0mj6Iae.js} +1 -1
  106. package/server/{hooks-uEr8WTx_.js → hooks-BDcQJDUe.js} +1 -1
  107. package/server/{hooks-BCoOjL_R.js → hooks-BS_JrvYP.js} +3 -3
  108. package/server/hume-B4seN95Y.js +3 -0
  109. package/server/{hume-BqxYKbUf.js → hume-BRhNKyXQ.js} +2 -2
  110. package/server/{idle-stack-reaper-DbZ8ukMd.js → idle-stack-reaper-BCITXNW5.js} +2 -2
  111. package/server/{idle-stack-reaper-H0W6XtHh.js → idle-stack-reaper-C1ymihno.js} +1 -1
  112. package/server/{infra-Ba9mS6e6.js → infra-_Kx1m9pm.js} +9 -4
  113. package/server/{injection-C1DKXeIZ.js → injection-Bvhyg_MV.js} +1 -1
  114. package/server/{injection-yrMBxzVq.js → injection-CCaYkofq.js} +7 -7
  115. package/server/{inspect-agent-B-mnb4uh.js → inspect-agent-BqyZ4pCo.js} +35 -67
  116. package/server/inspect-agent-DCJQm9Wu.js +2 -0
  117. package/server/{internal-token-BtqSbKTx.js → internal-token-Cl-1IxaE.js} +2 -2
  118. package/server/{internal-token-BPYEaXFh.js → internal-token-D-t28de5.js} +1 -1
  119. package/server/{io-VEGSAqsd.js → io-DkC4sFSy.js} +36 -43
  120. package/server/{issue-closed-BxcePXL-.js → issue-closed-Cpl4VDUM.js} +41 -6
  121. package/server/{issue-lifecycle--8MRxrG1.js → issue-lifecycle-CFR8TJ22.js} +22 -37
  122. package/server/{issue-lifecycle-CdMUauyb.js → issue-lifecycle-YNTy3OT3.js} +1 -1
  123. package/server/{issue-service-singleton-MZsDhAob.js → issue-service-singleton-D81mCts_.js} +1 -1
  124. package/server/{issue-service-singleton-CkTUI-eu.js → issue-service-singleton-ldvUUXi3.js} +29 -29
  125. package/server/{issues-CBAsuoAO.js → issues-DIEHt9sq.js} +2 -2
  126. package/server/{jsonl-parser-BUW5_sSK.js → jsonl-parser-Cd5jIqh7.js} +3 -3
  127. package/server/{label-cleanup-htK6fBRU.js → label-cleanup-Btny6Gyo.js} +3 -3
  128. package/server/{state-home-CEvD_v5F.js → launcher-generator-BXLM9f4b.js} +7 -127
  129. package/server/{layers-jjL16At6.js → layers-gCJlK62m.js} +2 -2
  130. package/server/lifecycle-D7aQUnTO.js +12 -0
  131. package/server/{lifecycle-io-DXv8Utct.js → lifecycle-io-DQBF-GHO.js} +1 -1
  132. package/server/{lifecycle-io-IehcRt2v.js → lifecycle-io-FfPUtz-y.js} +4 -4
  133. package/server/{linear-client-D9cSQfvD.js → linear-client-CDH2D6Qy.js} +3 -3
  134. package/server/{linear-client-By7hjwuN.js → linear-client-WrYrUIAH.js} +1 -1
  135. package/server/memory-fts-worker.js +1 -1
  136. package/server/{merge-BN8FGJ2q.js → merge-BsDgUxFz.js} +3 -3
  137. package/server/{merge-BLcEZNXz.js → merge-Dervs4BF.js} +1 -1
  138. package/server/{merge-agent-B3u2szOL.js → merge-agent-D6DNhe9j.js} +64 -51
  139. package/server/{merge-agent-ejC7Wos8.js → merge-agent-DMQTJMP0.js} +1 -1
  140. package/server/{merge-batch-DyqlgYGp.js → merge-batch-Bv6Z5K2H.js} +1 -1
  141. package/server/{merge-blockers-cq-aS2KG.js → merge-blockers-WWWi6Ur2.js} +2 -2
  142. package/server/merge-ops-h9OCnIVz.js +2 -0
  143. package/server/{merge-rebase-Dl7yIxtV.js → merge-rebase-Czth9ggm.js} +2 -2
  144. package/server/{merge-set-CZ9Nbay0.js → merge-set-DNc4zBqd.js} +3 -3
  145. package/server/{merge-set-Dy0D0r3i.js → merge-set-vuE3MEVt.js} +1 -1
  146. package/server/{merge-sync-D7jWLgCC.js → merge-sync-B2KSk54U.js} +2 -2
  147. package/server/{merge-sync-CG9kDCdT.js → merge-sync-B9nHdUGx.js} +1 -1
  148. package/server/{merge-train-CH33XJOH.js → merge-train-DJgr81tF.js} +3 -3
  149. package/server/{merge-train-deps-JoVdGnOg.js → merge-train-deps-B2OWS0k9.js} +4 -4
  150. package/server/{merge-verification-D4wTChdX.js → merge-verification-BBIXUEqa.js} +4 -4
  151. package/server/{multipart-parser-Csn8U-K9.js → multipart-parser-9DhuAkPd.js} +2 -2
  152. package/server/node_modules/.package-lock.json +11 -11
  153. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  154. package/server/node_modules/toml/README.md +54 -0
  155. package/server/node_modules/toml/index.d.ts +42 -1
  156. package/server/node_modules/toml/index.js +3 -3
  157. package/server/node_modules/toml/lib/compiler.js +35 -3
  158. package/server/node_modules/toml/lib/parser.js +224 -143
  159. package/server/node_modules/toml/package.json +3 -1
  160. package/server/node_modules/ws/lib/receiver.js +15 -32
  161. package/server/node_modules/ws/lib/websocket-server.js +4 -4
  162. package/server/node_modules/ws/lib/websocket.js +4 -4
  163. package/server/node_modules/ws/package.json +5 -1
  164. package/server/{orphan-proposed-reconciler-DI_IS1p_.js → orphan-proposed-reconciler-B8H41C4a.js} +14 -24
  165. package/server/{orphan-proposed-reconciler-BIcNu4tl.js → orphan-proposed-reconciler-DbTmT7qy.js} +1 -1
  166. package/server/package-lock.json +12 -12
  167. package/server/package.json +1 -1
  168. package/server/{pan-dir-CQIfKG8c.js → pan-dir-BTw4MdSe.js} +4 -4
  169. package/server/{paths-Blj6A9AJ.js → paths-Btkc8mzp.js} +2 -2
  170. package/server/{pipeline-notifier-BH4PAi-w.js → pipeline-notifier-3frIvSi3.js} +1 -1
  171. package/server/{pipeline-notifier-D_WYtEwl.js → pipeline-notifier-DTd19f18.js} +2 -2
  172. package/server/{project-pipelines-jMTitpeO.js → project-pipelines-B95fcAek.js} +2 -2
  173. package/server/projects-Dc9aoVoG.js +3 -0
  174. package/server/{prompts-B3njaImU.js → prompts-CIVmjHxn.js} +2 -2
  175. package/server/{providers-DnPxkHoG.js → providers-BLLk5IIb.js} +1 -1
  176. package/server/{providers-BbEyFhPX.js → providers-C-yWibCk.js} +7 -7
  177. package/server/public/assets/{chunk-BO2N2NFS-3qh9TUJi.js → chunk-BO2N2NFS-DzKZyoKY.js} +4 -4
  178. package/server/public/assets/{diagram-OG6HWLK6-D8UVTPj7.js → diagram-OG6HWLK6-Cx8mWUb8.js} +1 -1
  179. package/server/public/assets/{dist-BvLLn1YC.js → dist-BqccLhaw.js} +3 -3
  180. package/server/public/assets/{dist-CyubL7Wj.js → dist-rC3nAs_O.js} +1 -1
  181. package/server/public/assets/{ganttDiagram-6RSMTGT7-BI4E1LbQ.js → ganttDiagram-6RSMTGT7-DLYPLf5T.js} +1 -1
  182. package/server/public/assets/{highlighted-body-OFNGDK62-D_bapWkF.js → highlighted-body-OFNGDK62-D4DqixbV.js} +1 -1
  183. package/server/public/assets/index-CPcysUHk.js +796 -0
  184. package/server/public/assets/index-H5M0yhM4.css +1 -0
  185. package/server/public/assets/{linear-CEdobObr.js → linear-yqcXkDfj.js} +1 -1
  186. package/server/public/assets/mermaid-GHXKKRXX-CWdZ_heB.js +1 -0
  187. package/server/public/assets/{pieDiagram-4H26LBE5-DT79L01f.js → pieDiagram-4H26LBE5-DhraIOaV.js} +1 -1
  188. package/server/public/assets/{prod-CR_K2DFV.js → prod-DKUunUdN.js} +4 -4
  189. package/server/public/assets/{quadrantDiagram-W4KKPZXB-BEkKXXrL.js → quadrantDiagram-W4KKPZXB-DPiRcToa.js} +1 -1
  190. package/server/public/assets/{sankeyDiagram-5OEKKPKP-BxSCqn-j.js → sankeyDiagram-5OEKKPKP-3An5HNkZ.js} +1 -1
  191. package/server/public/assets/{xychartDiagram-2RQKCTM6-DicwJGG_.js → xychartDiagram-2RQKCTM6-lbEOjfqQ.js} +1 -1
  192. package/server/public/index.html +2 -2
  193. package/server/{pull-requests-43LPDfM8.js → pull-requests-D7AL5woD.js} +1 -1
  194. package/server/{pull-requests-DyUkQl4W.js → pull-requests-NDDNtqNq.js} +3 -3
  195. package/server/{agents-B9GwfCyp.js → queries-C0LCGG21.js} +710 -325
  196. package/server/{rally-BtWjybOa.js → rally-4oKvnxLG.js} +3 -3
  197. package/server/rally-DF5a3ioP.js +3 -0
  198. package/server/{rally-api-B-osULNL.js → rally-api-41tT6ikZ.js} +2 -2
  199. package/server/{rally-api-B-YA_oXx.js → rally-api-BsaQ8Vnz.js} +1 -1
  200. package/server/{rally-client-sErNQBO0.js → rally-client-Bo4hNcCZ.js} +5 -5
  201. package/server/{rally-client-CzFymP7P.js → rally-client-b5PT1x5L.js} +1 -1
  202. package/server/{reap-terminal-sessions-DnDQ7pf9.js → reap-terminal-sessions-BR39qflC.js} +1 -1
  203. package/server/{reap-terminal-sessions-2s-fvilz.js → reap-terminal-sessions-CFkuquQj.js} +1 -1
  204. package/server/{rebuild-stack-nGD_nPZo.js → rebuild-stack-C7JPUom6.js} +1 -1
  205. package/server/{rebuild-stack-CoU-HqZj.js → rebuild-stack-Ddv6W017.js} +5 -5
  206. package/server/{reconstruct-cache-Wj8GrYB0.js → reconstruct-cache-Gqhm---K.js} +6 -6
  207. package/server/record-DLOqfbkI.js +3 -0
  208. package/server/record-update-BltEmPge.js +168 -0
  209. package/server/record-update-CDp7aTaT.js +3 -0
  210. package/server/recovery-trip-Cn7KJVkS.js +44 -0
  211. package/server/{release-engine-CBLQXDlH.js → release-engine-BYzmIBf9.js} +5 -5
  212. package/server/{release-set-BNiqi7hy.js → release-set-7pnxFOWR.js} +3 -3
  213. package/server/{remote-DW_TWQnr.js → remote-Cvu4CSDk.js} +3 -3
  214. package/server/{remote-agents-C4cyxHQS.js → remote-agents-C2C6z9tj.js} +6 -33
  215. package/server/{remote-agents-Cv-U-_V8.js → remote-agents-DYY5fFpd.js} +1 -1
  216. package/server/{remote-completion-PhXGGFQy.js → remote-completion-2Kb4IDg_.js} +13 -13
  217. package/server/{remote-DcO9An_f.js → remote-rN0ecjHE.js} +3 -3
  218. package/server/resume-BFLl-yLn.js +3 -0
  219. package/server/{review-agent-Dn-yn7Zj.js → review-agent-BZvk0N5G.js} +31 -23
  220. package/server/{review-agent-u5q3ip7H.js → review-agent-CpSHLzed.js} +1 -1
  221. package/server/{review-artifacts-D4T04aYI.js → review-artifacts-PCo53YMn.js} +5 -19
  222. package/server/{review-context-Rc0VDLG_.js → review-context-M7QtJlJq.js} +8 -8
  223. package/server/{review-monitor-BC--miCO.js → review-monitor-BLC5mTTg.js} +2 -2
  224. package/server/{review-status-CG0iDuWa.js → review-status-77N3PoZr.js} +1 -1
  225. package/server/{review-status-Dc1l4dVz.js → review-status-DANr0t-v.js} +32 -58
  226. package/server/{review-status-enrichment-C1a1OG_1.js → review-status-enrichment-DwOg4UfL.js} +3 -3
  227. package/server/{review-status-sync-CfSixhhX.js → review-status-sync-Bd08OOFA.js} +1 -1
  228. package/server/{review-status-sync-CAr-hfnJ.js → review-status-sync-BjTUJ5fx.js} +2 -2
  229. package/server/{review-verdict-feedback-D2Q960wX.js → review-verdict-feedback-BsFLjN_6.js} +1 -1
  230. package/server/{review-verdict-feedback-CVDbIDBe.js → review-verdict-feedback-CBf-J_wS.js} +8 -8
  231. package/server/{rollup-DctoIu-A.js → rollup-Bu0f2EyN.js} +8 -8
  232. package/server/{rollup-CakjztPl.js → rollup-DTCCdEy4.js} +1 -1
  233. package/server/{scanner-BTM1jc_u.js → scanner-BlZ2vB7j.js} +7 -7
  234. package/server/{sequence-io-pnoIDGv4.js → sequence-io-ylyDtz2J.js} +4 -4
  235. package/server/{sequencer-agent-9Soi-WL-.js → sequencer-agent-DsWQ-87H.js} +6 -17
  236. package/server/server.js +4695 -4093
  237. package/server/{service-DfTVoqJg.js → service-CLVBC_1Y.js} +116 -90
  238. package/server/{session-fork-C4jAFHj8.js → session-fork-DlEIAhRy.js} +2 -2
  239. package/server/{session-history-DanhhiCw.js → session-history-bnOFKMwf.js} +4 -4
  240. package/server/settings-CP3GGon2.js +2 -0
  241. package/server/{settings-Cuc12oP_.js → settings-Cqa-8nyj.js} +2 -2
  242. package/server/{settings-DfT3f86D.js → settings-gJrdLZy2.js} +3 -3
  243. package/server/{shadow-engineering-bKuKTCn-.js → shadow-engineering-fq1YEKV3.js} +3 -3
  244. package/server/{shadow-state-CVHpRWlb.js → shadow-state-BqeFAygK.js} +1 -1
  245. package/server/{shadow-state-DJz6_pb_.js → shadow-state-RptE9Cau.js} +2 -2
  246. package/server/shadow-utils-BMWr5tRT.js +39 -0
  247. package/server/{ship-log-CwqPFfqx.js → ship-log-BRQQi2lU.js} +1 -1
  248. package/server/{smart-compaction-CiWfGfRZ.js → smart-compaction-CmoXpjeU.js} +7 -7
  249. package/server/{smart-compaction-B4KlpZGN.js → smart-compaction-DldUel4B.js} +1 -1
  250. package/server/{spawn-planning-session-CU-DwyDl.js → spawn-planning-session-CoS6LTc6.js} +16 -16
  251. package/server/{spawn-planning-session-D5N3RuLG.js → spawn-planning-session-DT2tSMxo.js} +1 -1
  252. package/server/{specialist-completion-CJcv-NXH.js → specialist-completion-pJtESo7m.js} +1 -1
  253. package/server/{specialist-context-B2HlbNxS.js → specialist-context-CspI4Eog.js} +5 -5
  254. package/server/{specialist-handoff-logger-CQyF1ygu.js → specialist-handoff-logger-Duz9RGvk.js} +2 -2
  255. package/server/{specialist-logs-CdcUpfjj.js → specialist-logs-DtSkPJZK.js} +3 -3
  256. package/server/{specialists-D7AcFi1u.js → specialists-CywEMwxk.js} +1 -1
  257. package/server/{specialists-k22_Btaq.js → specialists-D9-dMUtI.js} +1 -1
  258. package/server/{specialists-CFgw_0Q6.js → specialists-Dax7tqXC.js} +161 -448
  259. package/server/{specialists-CwzFdapR.js → specialists-GF42OOqd.js} +18 -18
  260. package/server/specs-VwcFtEDi.js +3 -0
  261. package/server/{src-B4TTzNSr.js → src-By3D85Ry.js} +6 -1
  262. package/server/{src-BvpMg4EB.js → src-CqyFg52C.js} +5 -5
  263. package/server/{src-D4YUZrwR.js → src-DhxM-eCb.js} +6 -6
  264. package/server/{stack-health-DVN7zRnL.js → stack-health-BsEVrJZ6.js} +1 -1
  265. package/server/{stack-health-CSgcYcr8.js → stack-health-C-SnpRHh.js} +2 -2
  266. package/server/stale-task-claims-vTxmRzLi.js +69 -0
  267. package/server/state-home-Bur1y4oH.js +213 -0
  268. package/server/{state-mapping-C13UaCL7.js → state-mapping-Ci0pkac4.js} +1 -1
  269. package/server/state-migrate-D3VveYfO.js +362 -0
  270. package/server/{stuck-remediation-CxsyxwFO.js → stuck-remediation-B699-p8v.js} +36 -41
  271. package/server/{stuck-remediation-nTIvhGOR.js → stuck-remediation-CaFYYTQW.js} +1 -1
  272. package/server/{summary-fork-CnRMPCYd.js → summary-fork-BxnF8Xh0.js} +2 -2
  273. package/server/{summary-fork-gKSoFAnK.js → summary-fork-COqYpVa3.js} +8 -8
  274. package/server/supervisor/{paths-3R6b989k.js → paths-Bk6hJRH9.js} +4 -3
  275. package/server/supervisor/pty-supervisor.js +2 -2
  276. package/server/supervisor/{pty-token-CScQ32Rj.js → pty-token-BZS5GYdG.js} +2 -2
  277. package/server/supervisor-eWAAmXKu.js +2 -0
  278. package/server/{supervisor-CZMs8s0M.js → supervisor-liMgIPDF.js} +2 -2
  279. package/server/{swarm-readiness-h6-pwY8w.js → swarm-readiness-sXB1vhzo.js} +3 -3
  280. package/server/{system-prerequisites-DZZTi2G6.js → system-prerequisites-Bz6KdkFJ.js} +1 -13
  281. package/server/{teardown-workspace-B4D-oCVg.js → teardown-workspace-DvzqnmUF.js} +14 -71
  282. package/server/{test-agent-queue-CnuYku4B.js → test-agent-queue-hAU1Ah08.js} +5 -5
  283. package/server/{tldr-daemon-CuA8hz21.js → tldr-daemon-Bam7Xhoo.js} +2 -2
  284. package/server/{tldr-daemon-CgZQ3jmZ.js → tldr-daemon-DhGwd88s.js} +1 -1
  285. package/server/tmux-C-rgxRDA.js +3 -0
  286. package/server/{tmux-C3g9VFcg.js → tmux-U55cNGFG.js} +92 -4
  287. package/server/{token-g_sJ19g3.js → token-Dsa-i36o.js} +2 -2
  288. package/server/{token-util-DiwnnbJo.js → token-util-BWNpH96m.js} +1 -1
  289. package/server/token-util-DRt0j2nQ.js +3 -0
  290. package/server/{tracker-config-dQxC15vH.js → tracker-config-OkdbaUCm.js} +2 -2
  291. package/server/{tracker-utils--z8FLSWn.js → tracker-utils-CghXMF3q.js} +2 -2
  292. package/server/{tracker-utils-DkKyRT0H.js → tracker-utils-DdzUiPNU.js} +1 -1
  293. package/server/{tunnel-BpWZs0Jy.js → tunnel-D1YxesBL.js} +3 -3
  294. package/server/{tunnel-CN2px87h.js → tunnel-DjlzgTl3.js} +1 -1
  295. package/server/typed-errors-CH4roFIj.js +3 -0
  296. package/server/{typed-errors-sLpGfegz.js → typed-errors-n_Tnb4Fh.js} +3 -4
  297. package/server/{types-BLS_Zbmd.js → types-DOjWNv3Z.js} +1 -1
  298. package/server/{types-tlXf80x3.js → types-DXBMm4mX.js} +1 -1
  299. package/server/{uat-train-utGVmqdm.js → uat-train-CaaWs9Rp.js} +1 -1
  300. package/server/{uat-train-BRo6DM7p.js → uat-train-CqN34zFx.js} +24 -25
  301. package/server/{validation-CsPVsoA0.js → validation-4-z2Cw4z.js} +70 -23
  302. package/server/validation-DpTNakM6.js +3 -0
  303. package/server/verification-artifact-DK1xb1zG.js +56 -0
  304. package/server/verification-artifact-JD_edpZ9.js +2 -0
  305. package/server/{verification-runner-CMT5WRMS.js → verification-runner-BjHN80pJ.js} +338 -58
  306. package/server/verification-runner-ShYu5Ph3.js +2 -0
  307. package/server/{vtt-parser-C_XPlifj.js → vtt-parser-QnRfcjiU.js} +1 -1
  308. package/server/{work-agent-prompt-ZTAb2Hyf.js → work-agent-prompt-BiJ43Der.js} +12 -88
  309. package/server/workflows-B4C3lY9E.js +2 -0
  310. package/server/{workflows-CXRwhw_o.js → workflows-DkTotz_m.js} +17 -24
  311. package/server/{workspace-CNfuj1-5.js → workspace-CuN0ev4Z.js} +3 -3
  312. package/server/{workspace-9UEsKuiP.js → workspace-DQ4vVivd.js} +1 -1
  313. package/server/{workspace-config-ChWOECy0.js → workspace-config-C77NKnsV.js} +1 -1
  314. package/server/{workspace-manager-BO-6k3sP.js → workspace-manager-B1mYn0lN.js} +1 -1
  315. package/server/{workspace-manager-D8AByFIT.js → workspace-manager-Beeo2aKF.js} +23 -48
  316. package/server/{workspace-metadata-CvC268MN.js → workspace-metadata-BZC5BmoP.js} +2 -2
  317. package/server/{workspace-metadata-DZiJtnuF.js → workspace-metadata-Cy7_ZACL.js} +1 -1
  318. package/server/{workspaces-D-uIoqbg.js → workspaces-CGuzW1Ia.js} +182 -152
  319. package/sync-sources/hooks/codex-notify-hook +64 -8
  320. package/sync-sources/hooks/record-cost-event.js +1109 -36
  321. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  322. package/sync-sources/hooks/statusline.sh +2 -2
  323. package/sync-sources/hooks/work-agent-stop-hook +1 -2
  324. package/server/acceptance-criteria-BZ_nQS1f.js +0 -33
  325. package/server/agent-state-lGvgPP4m.js +0 -3
  326. package/server/agents-CEcaxSkR.js +0 -3
  327. package/server/auto-commit-IW-eik_b.js +0 -3
  328. package/server/bd-process-lock-XAXAet9O.js +0 -390
  329. package/server/beads-B1u04n3o.js +0 -2
  330. package/server/beads-BeSMEjGT.js +0 -649
  331. package/server/beads-query-Dl4FhT8J.js +0 -95
  332. package/server/beads-restore-BUItPOjI.js +0 -23
  333. package/server/cli-D9cUTbBr.js +0 -3
  334. package/server/codex-BYPz6ZdF.js +0 -3
  335. package/server/compact-beads-CyJtoXJi.js +0 -94
  336. package/server/compact-beads-N00E4EVa.js +0 -3
  337. package/server/deacon-swarm-CvdFekIO.js +0 -2
  338. package/server/dist-BNwrgsUO.js +0 -3
  339. package/server/export-BJHSVwKP.js +0 -87
  340. package/server/forge-8y6aEPTB.js +0 -2
  341. package/server/hume-CerGi2RH.js +0 -3
  342. package/server/inspect-agent-CWkeAB7J.js +0 -2
  343. package/server/lifecycle-Ck2UR27D.js +0 -14
  344. package/server/merge-ops-CFkQtXEj.js +0 -2
  345. package/server/projects-CrBE6IhN.js +0 -3
  346. package/server/public/assets/index-BAZxZ-8I.js +0 -796
  347. package/server/public/assets/index-FBG3JBfq.css +0 -1
  348. package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +0 -1
  349. package/server/rally-oggyp4cs.js +0 -3
  350. package/server/record-lEYK__LD.js +0 -3
  351. package/server/recovery-trip-BT7nb9OV.js +0 -98
  352. package/server/resolver-C7dLn8OK.js +0 -158
  353. package/server/resume-BYZBIab-.js +0 -3
  354. package/server/settings-Cy7SCFO9.js +0 -2
  355. package/server/specs-RzcDgozr.js +0 -3
  356. package/server/supervisor-CfX192ma.js +0 -2
  357. package/server/tmux-By8E_Yv_.js +0 -3
  358. package/server/token-util-C9u4An3K.js +0 -3
  359. package/server/tracker-config-BzfVj41Z.js +0 -3
  360. package/server/typed-errors-CrN1AByg.js +0 -3
  361. package/server/validation-Dq_wwcw3.js +0 -3
  362. package/server/verification-runner-D0Uh-9jc.js +0 -2
  363. package/server/workflows-BLwxUMP7.js +0 -2
  364. package/server/writer-BUweuRPx.js +0 -3
  365. package/server/writer-CrP2xuBn.js +0 -251
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { xr as init_errors, yr as TrackerError } from "./config-yaml-cNOZcEww.js";
3
- import { a as TrackerAuthError, n as init_rally_api, o as init_interface, r as IssueNotFoundError, t as RallyRestApi } from "./rally-api-B-osULNL.js";
2
+ import { Sr as init_errors, br as TrackerError } from "./config-yaml-CqaAyn8y.js";
3
+ import { a as TrackerAuthError, n as init_rally_api, o as init_interface, r as IssueNotFoundError, t as RallyRestApi } from "./rally-api-41tT6ikZ.js";
4
4
  import { Effect } from "effect";
5
5
  //#region ../../lib/tracker/rally.ts
6
6
  /**
@@ -504,4 +504,4 @@ var init_rally = __esmMin((() => {
504
504
  //#endregion
505
505
  export { init_rally as n, RallyTracker as t };
506
506
 
507
- //# sourceMappingURL=rally-BtWjybOa.js.map
507
+ //# sourceMappingURL=rally-4oKvnxLG.js.map
@@ -0,0 +1,3 @@
1
+ import { n as init_rally, t as RallyTracker } from "./rally-4oKvnxLG.js";
2
+ init_rally();
3
+ export { RallyTracker };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { xr as init_errors, yr as TrackerError } from "./config-yaml-cNOZcEww.js";
2
+ import { Sr as init_errors, br as TrackerError } from "./config-yaml-CqaAyn8y.js";
3
3
  import { Data, Effect } from "effect";
4
4
  //#region ../../lib/tracker/interface.ts
5
5
  /**
@@ -162,4 +162,4 @@ var init_rally_api = __esmMin((() => {
162
162
  //#endregion
163
163
  export { TrackerAuthError as a, NotImplementedError as i, init_rally_api as n, init_interface as o, IssueNotFoundError as r, RallyRestApi as t };
164
164
 
165
- //# sourceMappingURL=rally-api-B-osULNL.js.map
165
+ //# sourceMappingURL=rally-api-41tT6ikZ.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_rally_api, t as RallyRestApi } from "./rally-api-B-osULNL.js";
1
+ import { n as init_rally_api, t as RallyRestApi } from "./rally-api-41tT6ikZ.js";
2
2
  init_rally_api();
3
3
  export { RallyRestApi };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { a as init_tracker_config, r as getRallyConfig } from "./tracker-config-dQxC15vH.js";
3
- import { c as TrackerNotConfigured, d as init_typed_errors, i as IssueNotFound, o as RateLimited, s as TrackerApiError } from "./typed-errors-sLpGfegz.js";
2
+ import { a as init_tracker_config, r as getRallyConfig } from "./tracker-config-OkdbaUCm.js";
3
+ import { a as RateLimited, o as TrackerApiError, r as IssueNotFound, s as TrackerNotConfigured, u as init_typed_errors } from "./typed-errors-n_Tnb4Fh.js";
4
4
  import { Context, Effect, Layer } from "effect";
5
5
  //#region services/rally-client.ts
6
6
  /**
@@ -46,7 +46,7 @@ function makeRallyClientImpl(config) {
46
46
  let tracker = null;
47
47
  async function getTracker() {
48
48
  if (!tracker) {
49
- const { RallyTracker } = await import("./rally-oggyp4cs.js");
49
+ const { RallyTracker } = await import("./rally-DF5a3ioP.js");
50
50
  tracker = new RallyTracker({
51
51
  apiKey: config.apiKey,
52
52
  server: config.server,
@@ -106,7 +106,7 @@ var init_rally_client = __esmMin((() => {
106
106
  RallyClientLive = Layer.effect(RallyClient, Effect.gen(function* () {
107
107
  const config = getRallyConfig();
108
108
  if (!config) return yield* Effect.fail(new TrackerNotConfigured({ tracker: "rally" }));
109
- const { RallyTracker } = yield* Effect.promise(() => import("./rally-oggyp4cs.js"));
109
+ const { RallyTracker } = yield* Effect.promise(() => import("./rally-DF5a3ioP.js"));
110
110
  const tracker = new RallyTracker({
111
111
  apiKey: config.apiKey,
112
112
  server: config.server,
@@ -158,4 +158,4 @@ var init_rally_client = __esmMin((() => {
158
158
  //#endregion
159
159
  export { init_rally_client as i, RallyClientLive as n, RallyClientOptionalLive as r, RallyClient as t };
160
160
 
161
- //# sourceMappingURL=rally-client-sErNQBO0.js.map
161
+ //# sourceMappingURL=rally-client-Bo4hNcCZ.js.map
@@ -1,3 +1,3 @@
1
- import { i as init_rally_client, n as RallyClientLive, r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-sErNQBO0.js";
1
+ import { i as init_rally_client, n as RallyClientLive, r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-Bo4hNcCZ.js";
2
2
  init_rally_client();
3
3
  export { RallyClient, RallyClientLive, RallyClientOptionalLive };
@@ -1,3 +1,3 @@
1
- import { a as selectAwaitingTestWorkSessions, c as selectNonMergedTerminalAdvancingSessions, r as isRoleTerminal, s as selectMergedWorkSessions, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-2s-fvilz.js";
1
+ import { a as selectAwaitingTestWorkSessions, c as selectNonMergedTerminalAdvancingSessions, r as isRoleTerminal, s as selectMergedWorkSessions, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-CFkuquQj.js";
2
2
  init_reap_terminal_sessions();
3
3
  export { isRoleTerminal, selectAwaitingTestWorkSessions, selectMergedWorkSessions, selectNonMergedTerminalAdvancingSessions };
@@ -145,4 +145,4 @@ var init_reap_terminal_sessions = __esmMin((() => {
145
145
  //#endregion
146
146
  export { selectAwaitingTestWorkSessions as a, selectNonMergedTerminalAdvancingSessions as c, isWorkReapable as i, sessionsToReapForRole as l, isAwaitingTestReapable as n, selectMergedAdvancingSessions as o, isRoleTerminal as r, selectMergedWorkSessions as s, init_reap_terminal_sessions as t };
147
147
 
148
- //# sourceMappingURL=reap-terminal-sessions-2s-fvilz.js.map
148
+ //# sourceMappingURL=reap-terminal-sessions-CFkuquQj.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_rebuild_stack, r as rebuildWorkspaceStack } from "./rebuild-stack-CoU-HqZj.js";
1
+ import { n as init_rebuild_stack, r as rebuildWorkspaceStack } from "./rebuild-stack-Ddv6W017.js";
2
2
  init_rebuild_stack();
3
3
  export { rebuildWorkspaceStack };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Fn as init_projects, kn as getProjectSync, qn as resolveProjectFromIssueSync } from "./config-yaml-cNOZcEww.js";
3
- import { a as init_stack_health, c as init_docker_stats, l as recordDockerContainerLifecycleSnapshot, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-CSgcYcr8.js";
4
- import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-BxcePXL-.js";
2
+ import { Fn as init_projects, kn as getProjectSync, qn as resolveProjectFromIssueSync } from "./config-yaml-CqaAyn8y.js";
3
+ import { a as init_stack_health, c as init_docker_stats, l as recordDockerContainerLifecycleSnapshot, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-C-SnpRHh.js";
4
+ import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-Cpl4VDUM.js";
5
5
  import { n as reconcileTraefikNetworks, t as init_traefik_connect } from "./traefik-connect-CZYB3dlm.js";
6
- import { n as ensureDevcontainerSync, r as init_ensure_devcontainer } from "./ensure-devcontainer-Bqi1EF1P.js";
6
+ import { n as ensureDevcontainerSync, r as init_ensure_devcontainer } from "./ensure-devcontainer-5e9xOve4.js";
7
7
  import { dirname, join } from "node:path";
8
8
  import { Effect } from "effect";
9
9
  import { existsSync, readFileSync, rmSync } from "node:fs";
@@ -184,4 +184,4 @@ var init_rebuild_stack = __esmMin((() => {
184
184
  //#endregion
185
185
  export { init_rebuild_stack as n, rebuildWorkspaceStack as r, composeProjectNameForWorkspace as t };
186
186
 
187
- //# sourceMappingURL=rebuild-stack-CoU-HqZj.js.map
187
+ //# sourceMappingURL=rebuild-stack-Ddv6W017.js.map
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Fn as init_projects, It as resolveProjectForIssue, Mt as readIssueRecord, kt as init_record, zn as listProjectsSync } from "./config-yaml-cNOZcEww.js";
3
- import { c as backfillAgentsSync, d as init_agents, p as listAllAgentsSync } from "./briefing-freshness-DESTCWo-.js";
4
- import { Z as listRunningAgents, t as init_agents$1 } from "./agents-B9GwfCyp.js";
2
+ import { Fn as init_projects, It as resolveProjectForIssue, Mt as readIssueRecord, kt as init_record, zn as listProjectsSync } from "./config-yaml-CqaAyn8y.js";
3
+ import { c as listAllAgentsSync, o as init_agents, r as backfillAgentsSync } from "./agents-BHBxr8c9.js";
4
+ import { i as listRunningAgents, s as init_agents$1 } from "./queries-C0LCGG21.js";
5
5
  import { join } from "node:path";
6
6
  import { Effect } from "effect";
7
7
  import { readdir } from "node:fs/promises";
@@ -194,7 +194,7 @@ function isIssueClosed(issue) {
194
194
  return false;
195
195
  }
196
196
  async function loadInFlightIssueIds(projects) {
197
- const { getSharedIssueService, startSharedIssueService } = await import("./issue-service-singleton-MZsDhAob.js");
197
+ const { getSharedIssueService, startSharedIssueService } = await import("./issue-service-singleton-D81mCts_.js");
198
198
  const issueService = getSharedIssueService();
199
199
  await startSharedIssueService({ skipPolling: true });
200
200
  const issues = issueService.getIssues({ includeCompleted: true });
@@ -209,7 +209,7 @@ async function loadInFlightIssueIds(projects) {
209
209
  return enumerateInFlightIssuesFromSources(projects, openIssueIds);
210
210
  }
211
211
  async function fetchPrState(issueId) {
212
- const { fetchIssuePullRequest } = await import("./pull-requests-43LPDfM8.js");
212
+ const { fetchIssuePullRequest } = await import("./pull-requests-D7AL5woD.js");
213
213
  const result = await fetchIssuePullRequest(issueId);
214
214
  if (!result.pr) return {
215
215
  hasPr: false,
@@ -340,4 +340,4 @@ __esmMin((() => {
340
340
  }))();
341
341
  export { reconstructCache, reconstructCacheAuto };
342
342
 
343
- //# sourceMappingURL=reconstruct-cache-Wj8GrYB0.js.map
343
+ //# sourceMappingURL=reconstruct-cache-Gqhm---K.js.map
@@ -0,0 +1,3 @@
1
+ import { At as markRecordPipelineClosedOutSync, Bt as writeIssueRecordSync, Ct as ensureIssueRecordSync, Dt as getIssueWorkspacePath, Et as getIssueRecordPathForWorkspace, Ft as readRecordContinueViewSync, Gt as writeRecordResumePoint, Ht as writeRecordDecisionsSync, It as resolveProjectForIssue, Jt as writeRecordTieredExecutionOverride, Kt as writeRecordResumePointSync, Lt as writeAgentHarnessModel, Mt as readIssueRecord, Nt as readIssueRecordForWorkspaceSync, Ot as getProjectConfigFromWorkspacePath, Pt as readIssueRecordSync, Qt as writeStatusOverridesSync, Rt as writeAgentHarnessModelSync, St as ensureIssueRecord, Tt as getIssueRecordPath, Ut as writeRecordHazards, Vt as writeRecordDecisions, Wt as writeRecordHazardsSync, Xt as writeStatusOverride, Yt as writeRecordTieredExecutionOverrideSync, Zt as writeStatusOverrideSync, _t as appendSessionEntrySync, bt as clearIssueOwner, ft as RECORD_DIRNAME, gt as appendSessionEntry, ht as appendFeedbackEntrySync, jt as queueIssueRecordCommit, kt as init_record, mt as appendFeedbackEntry, pt as RECORD_SCHEMA_VERSION, qt as writeRecordScopeDriftSync, vt as buildOwnUri, wt as getIssueRecordBasePath, xt as clearRecordFeedbackSync, yt as claimIssueOwner, zt as writeIssueRecordForWorkspaceSync } from "./config-yaml-CqaAyn8y.js";
2
+ init_record();
3
+ export { RECORD_DIRNAME, RECORD_SCHEMA_VERSION, appendFeedbackEntry, appendFeedbackEntrySync, appendSessionEntry, appendSessionEntrySync, buildOwnUri, claimIssueOwner, clearIssueOwner, clearRecordFeedbackSync, ensureIssueRecord, ensureIssueRecordSync, getIssueRecordBasePath, getIssueRecordPath, getIssueRecordPathForWorkspace, getIssueWorkspacePath, getProjectConfigFromWorkspacePath, markRecordPipelineClosedOutSync, queueIssueRecordCommit, readIssueRecord, readIssueRecordForWorkspaceSync, readIssueRecordSync, readRecordContinueViewSync, resolveProjectForIssue, writeAgentHarnessModel, writeAgentHarnessModelSync, writeIssueRecordForWorkspaceSync, writeIssueRecordSync, writeRecordDecisions, writeRecordDecisionsSync, writeRecordHazards, writeRecordHazardsSync, writeRecordResumePoint, writeRecordResumePointSync, writeRecordScopeDriftSync, writeRecordTieredExecutionOverride, writeRecordTieredExecutionOverrideSync, writeStatusOverride, writeStatusOverrideSync, writeStatusOverridesSync };
@@ -0,0 +1,168 @@
1
+ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
+ import { Bt as writeIssueRecordSync, Ct as ensureIssueRecordSync, Fn as init_projects, It as resolveProjectForIssue, Jr as getOverdeckHome, Ot as getProjectConfigFromWorkspacePath, Pt as readIssueRecordSync, Tt as getIssueRecordPath, Yr as init_paths, jt as queueIssueRecordCommit, kt as init_record, nn as init_auto_commit, tn as flushAutoCommits, zn as listProjectsSync } from "./config-yaml-CqaAyn8y.js";
3
+ import { dirname, join } from "node:path";
4
+ import { Effect } from "effect";
5
+ import { hostname } from "node:os";
6
+ import { mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
7
+ //#region ../../lib/pan-dir/fs-lock.ts
8
+ /** Cross-process per-issue record locking (PAN-2648 CD-2). */
9
+ function safeSegment(value) {
10
+ return value.trim().toLowerCase().replace(/[^a-z0-9._-]+/g, "-");
11
+ }
12
+ function recordLockPath(project, issueId) {
13
+ const configuredKey = listProjectsSync().find(({ config }) => config.path === project.path)?.key;
14
+ const projectKey = safeSegment(configuredKey ?? project.name ?? project.path) || "unknown-project";
15
+ return join(getOverdeckHome(), "locks", "records", projectKey, `${issueId.toUpperCase()}.lock`);
16
+ }
17
+ function isPidDead(pid) {
18
+ if (!pid || pid <= 0 || pid === process.pid) return false;
19
+ try {
20
+ process.kill(pid, 0);
21
+ return false;
22
+ } catch (error) {
23
+ return error.code === "ESRCH";
24
+ }
25
+ }
26
+ async function sweepRecordTmpFiles(recordPath) {
27
+ try {
28
+ const dir = dirname(recordPath);
29
+ const base = recordPath.slice(dir.length + 1);
30
+ const entries = await readdir(dir);
31
+ await Promise.all(entries.filter((entry) => entry.startsWith(`${base}.`) && entry.endsWith(".tmp")).map((entry) => rm(join(dir, entry), { force: true })));
32
+ } catch {}
33
+ }
34
+ async function readOwner(lockPath) {
35
+ try {
36
+ const owner = JSON.parse(await readFile(join(lockPath, "owner.json"), "utf8"));
37
+ return {
38
+ description: `${owner.writerId ?? "unknown writer"} pid=${owner.pid ?? "unknown"} acquiredAt=${owner.acquiredAt ?? "unknown"}`,
39
+ pid: owner.pid
40
+ };
41
+ } catch {
42
+ return { description: "unknown writer" };
43
+ }
44
+ }
45
+ async function acquireRecordLock(lockPath, options) {
46
+ await mkdir(dirname(lockPath), {
47
+ recursive: true,
48
+ mode: 448
49
+ });
50
+ const delays = options.retryDelaysMs ?? RECORD_LOCK_RETRY_DELAYS_MS;
51
+ let lastOwner = "unknown writer";
52
+ for (let attempt = 0; attempt <= delays.length; attempt += 1) {
53
+ try {
54
+ await mkdir(lockPath, { mode: 448 });
55
+ const owner = {
56
+ writerId: options.writerId,
57
+ pid: process.pid,
58
+ acquiredAt: (/* @__PURE__ */ new Date()).toISOString()
59
+ };
60
+ try {
61
+ await writeFile(join(lockPath, "owner.json"), JSON.stringify(owner, null, 2), "utf8");
62
+ } catch (error) {
63
+ try {
64
+ await rm(lockPath, {
65
+ recursive: true,
66
+ force: true
67
+ });
68
+ } catch {}
69
+ throw error;
70
+ }
71
+ await sweepRecordTmpFiles(options.recordPath);
72
+ return owner;
73
+ } catch (error) {
74
+ if (error.code !== "EEXIST") throw error;
75
+ const owner = await readOwner(lockPath);
76
+ lastOwner = owner.description;
77
+ if (isPidDead(owner.pid)) {
78
+ await rm(lockPath, {
79
+ recursive: true,
80
+ force: true
81
+ });
82
+ continue;
83
+ }
84
+ }
85
+ const delay = delays[attempt];
86
+ if (delay === void 0) break;
87
+ await new Promise((resolve) => setTimeout(resolve, delay));
88
+ }
89
+ throw new RecordLockError(lockPath, lastOwner);
90
+ }
91
+ async function releaseRecordLock(lockPath) {
92
+ await rm(lockPath, {
93
+ recursive: true,
94
+ force: true
95
+ });
96
+ }
97
+ async function withRecordFsLock(project, issueId, options, operation) {
98
+ const lockPath = recordLockPath(project, issueId);
99
+ await acquireRecordLock(lockPath, options);
100
+ try {
101
+ return await operation();
102
+ } finally {
103
+ await releaseRecordLock(lockPath);
104
+ }
105
+ }
106
+ var RECORD_LOCK_RETRY_DELAYS_MS, RecordLockError;
107
+ var init_fs_lock = __esmMin((() => {
108
+ init_paths();
109
+ init_projects();
110
+ RECORD_LOCK_RETRY_DELAYS_MS = [
111
+ 5,
112
+ 10,
113
+ 20,
114
+ 40,
115
+ 80,
116
+ 160,
117
+ 320,
118
+ 360
119
+ ];
120
+ RecordLockError = class extends Error {
121
+ constructor(lockPath, owner) {
122
+ super(`The per-issue record lock at ${lockPath} is held by ${owner}. Retry the command after that writer finishes.`);
123
+ this.lockPath = lockPath;
124
+ this.owner = owner;
125
+ this.name = "RecordLockError";
126
+ }
127
+ };
128
+ }));
129
+ //#endregion
130
+ //#region ../../lib/pan-dir/record-update.ts
131
+ /** The single locked read-modify-write door for per-issue records. */
132
+ function updateIssueRecordForWorkspace(workspacePath, issueId, mutator, options = {}) {
133
+ return updateIssueRecord(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId, mutator, options);
134
+ }
135
+ async function updateIssueRecord(project, issueId, mutator, options = {}) {
136
+ const normalizedIssueId = issueId.toUpperCase();
137
+ const recordPath = getIssueRecordPath(project, normalizedIssueId);
138
+ const writerId = options.writerId ?? process.env.OVERDECK_AGENT_ID ?? `process-${process.pid}@${hostname()}`;
139
+ const commit = { flush: void 0 };
140
+ const record = await withRecordFsLock(project, normalizedIssueId, {
141
+ writerId,
142
+ recordPath
143
+ }, async () => {
144
+ const current = readIssueRecordSync(project, normalizedIssueId) ?? ensureIssueRecordSync(project, normalizedIssueId);
145
+ const next = await mutator(current) ?? current;
146
+ const path = writeIssueRecordSync(project, normalizedIssueId, next);
147
+ if (options.autoCommit !== false) {
148
+ const commitRoot = queueIssueRecordCommit(project, normalizedIssueId, path);
149
+ commit.flush = Effect.runPromise(flushAutoCommits(commitRoot));
150
+ }
151
+ return readIssueRecordSync(project, normalizedIssueId) ?? next;
152
+ });
153
+ if (commit.flush) {
154
+ const flushed = await commit.flush;
155
+ if (flushed.pushed === false) throw new Error(`Failed to push ${normalizedIssueId} state: ${flushed.reason ?? "unknown push failure"}`);
156
+ if (!flushed.committed && !["no diff", "no pending"].includes(flushed.reason ?? "")) throw new Error(`Failed to commit ${normalizedIssueId} state: ${flushed.reason ?? "unknown commit failure"}`);
157
+ }
158
+ return record;
159
+ }
160
+ var init_record_update = __esmMin((() => {
161
+ init_auto_commit();
162
+ init_fs_lock();
163
+ init_record();
164
+ }));
165
+ //#endregion
166
+ export { isPidDead as a, init_fs_lock as i, updateIssueRecord as n, updateIssueRecordForWorkspace as r, init_record_update as t };
167
+
168
+ //# sourceMappingURL=record-update-BltEmPge.js.map
@@ -0,0 +1,3 @@
1
+ import { n as updateIssueRecord, t as init_record_update } from "./record-update-BltEmPge.js";
2
+ init_record_update();
3
+ export { updateIssueRecord };
@@ -0,0 +1,44 @@
1
+ import { r as updateIssueRecordForWorkspace, t as init_record_update } from "./record-update-BltEmPge.js";
2
+ //#region ../../lib/cloister/recovery-trip.ts
3
+ init_record_update();
4
+ async function recordRecoveryFailure(workspacePath, issue, recoveryPath, obligationGeneration, threshold = 25, now = /* @__PURE__ */ new Date()) {
5
+ const normalized = issue.toUpperCase();
6
+ let outcome;
7
+ await updateIssueRecordForWorkspace(workspacePath, normalized, (record) => {
8
+ const trips = [...record.recoveryTrips ?? []];
9
+ const index = trips.findIndex((trip) => trip.issue === normalized && trip.recoveryPath === recoveryPath && trip.obligationGeneration === obligationGeneration);
10
+ const prior = index >= 0 ? trips[index] : void 0;
11
+ if (prior?.open) {
12
+ outcome = {
13
+ trip: prior,
14
+ emitNeedsYou: false
15
+ };
16
+ return record;
17
+ }
18
+ const tripCount = (prior?.tripCount ?? 0) + 1;
19
+ const emitNeedsYou = tripCount >= threshold;
20
+ const trip = {
21
+ issue: normalized,
22
+ recoveryPath,
23
+ obligationGeneration,
24
+ tripCount,
25
+ open: emitNeedsYou,
26
+ ...prior?.needsYouEmittedAt ? { needsYouEmittedAt: prior.needsYouEmittedAt } : emitNeedsYou ? { needsYouEmittedAt: now.toISOString() } : {}
27
+ };
28
+ if (index >= 0) trips[index] = trip;
29
+ else trips.push(trip);
30
+ outcome = {
31
+ trip,
32
+ emitNeedsYou
33
+ };
34
+ return {
35
+ ...record,
36
+ recoveryTrips: trips
37
+ };
38
+ });
39
+ return outcome;
40
+ }
41
+ //#endregion
42
+ export { recordRecoveryFailure as t };
43
+
44
+ //# sourceMappingURL=recovery-trip-Cn7KJVkS.js.map
@@ -1,8 +1,8 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Fn as init_projects, Sn as findProjectByPathSync, kn as getProjectSync } from "./config-yaml-cNOZcEww.js";
3
- import { c as init_review_status, y as setReviewStatusSync } from "./review-status-Dc1l4dVz.js";
4
- import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-CZ9Nbay0.js";
5
- import { i as withComponentStateSync, n as init_release_set, r as upsertReleaseSetSync } from "./release-set-BNiqi7hy.js";
2
+ import { Fn as init_projects, Sn as findProjectByPathSync, kn as getProjectSync } from "./config-yaml-CqaAyn8y.js";
3
+ import { c as init_review_status, y as setReviewStatusSync } from "./review-status-DANr0t-v.js";
4
+ import { i as init_merge_set, r as getMergeSetSync } from "./merge-set-DNc4zBqd.js";
5
+ import { i as withComponentStateSync, n as init_release_set, r as upsertReleaseSetSync } from "./release-set-7pnxFOWR.js";
6
6
  import { exec } from "node:child_process";
7
7
  import { promisify } from "node:util";
8
8
  //#region ../../lib/release/release-plan.ts
@@ -303,4 +303,4 @@ __esmMin((() => {
303
303
  }))();
304
304
  export { runRelease };
305
305
 
306
- //# sourceMappingURL=release-engine-CBLQXDlH.js.map
306
+ //# sourceMappingURL=release-engine-BYzmIBf9.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { nr as init_issue_id, or as resolveIssueIdSync } from "./config-yaml-cNOZcEww.js";
3
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-Ba9mS6e6.js";
2
+ import { rr as init_issue_id, sr as resolveIssueIdSync } from "./config-yaml-CqaAyn8y.js";
3
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-_Kx1m9pm.js";
4
4
  import "effect";
5
5
  //#region ../../lib/overdeck/release-sync.ts
6
6
  function isoFromMillis(value) {
@@ -122,4 +122,4 @@ var init_release_set = __esmMin((() => {
122
122
  //#endregion
123
123
  export { withComponentStateSync as i, init_release_set as n, upsertReleaseSetSync as r, getReleaseSetSync as t };
124
124
 
125
- //# sourceMappingURL=release-set-BNiqi7hy.js.map
125
+ //# sourceMappingURL=release-set-7pnxFOWR.js.map
@@ -1,4 +1,4 @@
1
- import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync, n as deleteWorkspaceMetadataSync, o as saveWorkspaceMetadataSync, r as findRemoteWorkspaceMetadataSync, t as WORKSPACES_DIR } from "./workspace-metadata-CvC268MN.js";
2
- import { S as createFlyProvider, d as killRemoteAgent, g as refreshHostHeartbeatForEphemeralVms, h as pollRemoteAgentStatus, m as loadRemoteAgentState, o as getRemoteAgentOutput, p as listRemoteAgents, r as checkRemoteSpendCap, u as isRemoteAgentRunning, v as sendToRemoteAgent, x as FlyProvider, y as spawnRemoteAgent } from "./remote-agents-C4cyxHQS.js";
3
- import { n as getRemoteProvider, r as isRemoteAvailable, t as createFlyProviderFromConfig } from "./remote-DcO9An_f.js";
1
+ import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync, n as deleteWorkspaceMetadataSync, o as saveWorkspaceMetadataSync, r as findRemoteWorkspaceMetadataSync, t as WORKSPACES_DIR } from "./workspace-metadata-BZC5BmoP.js";
2
+ import { S as createFlyProvider, d as killRemoteAgent, g as refreshHostHeartbeatForEphemeralVms, h as pollRemoteAgentStatus, m as loadRemoteAgentState, o as getRemoteAgentOutput, p as listRemoteAgents, r as checkRemoteSpendCap, u as isRemoteAgentRunning, v as sendToRemoteAgent, x as FlyProvider, y as spawnRemoteAgent } from "./remote-agents-C2C6z9tj.js";
3
+ import { n as getRemoteProvider, r as isRemoteAvailable, t as createFlyProviderFromConfig } from "./remote-rN0ecjHE.js";
4
4
  export { FlyProvider, WORKSPACES_DIR, checkRemoteSpendCap, createFlyProvider, createFlyProviderFromConfig, deleteWorkspaceMetadataSync, findRemoteWorkspaceMetadataSync, getRemoteAgentOutput, getRemoteProvider, isRemoteAgentRunning, isRemoteAvailable, killRemoteAgent, listRemoteAgents, listWorkspaceMetadataSync, loadRemoteAgentState, loadWorkspaceMetadataSync, pollRemoteAgentStatus, refreshHostHeartbeatForEphemeralVms, saveWorkspaceMetadataSync, sendToRemoteAgent, spawnRemoteAgent };
@@ -1,8 +1,9 @@
1
1
  import { n as __esmMin, o as __toESM } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { It as resolveProjectForIssue, kt as init_record, sr as require_dist, xr as init_errors } from "./config-yaml-cNOZcEww.js";
3
- import { g as getManagedTmuxSocketName, x as init_tmux } from "./tmux-C3g9VFcg.js";
4
- import { a as init_launcher_generator, i as generateLauncherScriptSync, n as init_state_home, r as isStateMigrated } from "./state-home-CEvD_v5F.js";
5
- import { a as init_claude_permissions, i as getClaudePermissionFlagsSync, n as buildClaudeUserSettingsSync, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-CThLgf8d.js";
2
+ import { It as resolveProjectForIssue, Sr as init_errors, cr as require_dist, kt as init_record } from "./config-yaml-CqaAyn8y.js";
3
+ import { S as init_tmux, _ as getManagedTmuxSocketName } from "./tmux-U55cNGFG.js";
4
+ import { n as init_launcher_generator, t as generateLauncherScriptSync } from "./launcher-generator-BXLM9f4b.js";
5
+ import { a as init_claude_permissions, i as getClaudePermissionFlagsSync, n as buildClaudeUserSettingsSync, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-BB6agcOZ.js";
6
+ import { c as isStateMigrated, o as init_state_home } from "./state-home-Bur1y4oH.js";
6
7
  import { Data, Effect, Stream } from "effect";
7
8
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
8
9
  import { join } from "path";
@@ -607,19 +608,6 @@ var init_fly_provider = __esmMin((() => {
607
608
  github
608
609
  };
609
610
  }
610
- /** Install beads CLI (bd) on a remote VM */
611
- async installBeads(vmName) {
612
- const check = await this.sshImpl(vmName, "which bd 2>/dev/null");
613
- if (check.exitCode === 0 && check.stdout.trim()) return true;
614
- if ((await this.sshImpl(vmName, "curl -sSL https://raw.githubusercontent.com/gastownhall/beads/main/scripts/install.sh | bash 2>&1")).exitCode !== 0) return false;
615
- const verify = await this.sshImpl(vmName, "which bd 2>/dev/null");
616
- return verify.exitCode === 0 && verify.stdout.trim().length > 0;
617
- }
618
- /** Initialize beads in a workspace on a remote VM */
619
- async initBeads(vmName, workspacePath = "/workspace") {
620
- await this.sshImpl(vmName, `cd ${workspacePath} && [ -f .beads/config.yaml ] && sed -i 's|^sync.remote:|# vm-local (keyless): sync.remote:|' .beads/config.yaml || true`);
621
- return (await this.sshImpl(vmName, `cd ${workspacePath} && (bd init --prefix PAN --from-jsonl --non-interactive --skip-agents 2>&1 || bd init --from-jsonl --non-interactive --skip-agents 2>&1)`)).exitCode === 0;
622
- }
623
611
  /** Configure Claude Code on a VM for autonomous operation */
624
612
  async configureClaudeCode(vmName) {
625
613
  await this.sshImpl(vmName, "mkdir -p ~/.claude");
@@ -666,21 +654,6 @@ with open(path, "w") as f:
666
654
  }
667
655
  } catch {}
668
656
  }
669
- /** Sync beads from remote VM to git: exports JSONL, commits, and pushes */
670
- async syncBeadsToGit(vmName, workspacePath = "/workspace", commitMessage) {
671
- const msg = commitMessage ?? "chore: sync beads from remote";
672
- if ((await this.sshImpl(vmName, `cd ${workspacePath} && bd export --output .beads/issues.jsonl 2>&1`)).exitCode !== 0) return false;
673
- return (await this.sshImpl(vmName, `cd ${workspacePath} && git add .beads/ && git diff --cached --quiet || (git commit -m ${JSON.stringify(msg)} && git push origin HEAD) 2>&1`)).exitCode === 0;
674
- }
675
- /** Query beads on a remote VM via bd search */
676
- async queryBeads(vmName, searchTerm, workspacePath = "/workspace") {
677
- const result = await this.sshImpl(vmName, `cd ${workspacePath} && bd search ${JSON.stringify(searchTerm)} --json 2>/dev/null || echo '[]'`);
678
- try {
679
- return JSON.parse(result.stdout.trim() || "[]");
680
- } catch {
681
- return [];
682
- }
683
- }
684
657
  /** Get the configured app name */
685
658
  getAppName() {
686
659
  return this.config.app;
@@ -1259,4 +1232,4 @@ var init_remote_agents = __esmMin((() => {
1259
1232
  //#endregion
1260
1233
  export { init_fly_provider as C, createFlyProvider as S, saveRemoteAgentState as _, generatePushDaemonScript as a, writeRemoteFile as b, installEphemeralWatchdog as c, killRemoteAgent as d, listActiveRemoteAgentStates as f, refreshHostHeartbeatForEphemeralVms as g, pollRemoteAgentStatus as h, generateEphemeralWatchdogScript as i, installPushDaemon as l, loadRemoteAgentState as m, checkRemoteDurabilityPreflight as n, getRemoteAgentOutput as o, listRemoteAgents as p, checkRemoteSpendCap as r, init_remote_agents as s, assertFlyRemoteStateSupported as t, isRemoteAgentRunning as u, sendToRemoteAgent as v, FlyProvider as x, spawnRemoteAgent as y };
1261
1234
 
1262
- //# sourceMappingURL=remote-agents-C4cyxHQS.js.map
1235
+ //# sourceMappingURL=remote-agents-C2C6z9tj.js.map
@@ -1,3 +1,3 @@
1
- import { _ as saveRemoteAgentState, a as generatePushDaemonScript, b as writeRemoteFile, c as installEphemeralWatchdog, d as killRemoteAgent, f as listActiveRemoteAgentStates, g as refreshHostHeartbeatForEphemeralVms, h as pollRemoteAgentStatus, i as generateEphemeralWatchdogScript, l as installPushDaemon, m as loadRemoteAgentState, n as checkRemoteDurabilityPreflight, o as getRemoteAgentOutput, p as listRemoteAgents, r as checkRemoteSpendCap, s as init_remote_agents, t as assertFlyRemoteStateSupported, u as isRemoteAgentRunning, v as sendToRemoteAgent, y as spawnRemoteAgent } from "./remote-agents-C4cyxHQS.js";
1
+ import { _ as saveRemoteAgentState, a as generatePushDaemonScript, b as writeRemoteFile, c as installEphemeralWatchdog, d as killRemoteAgent, f as listActiveRemoteAgentStates, g as refreshHostHeartbeatForEphemeralVms, h as pollRemoteAgentStatus, i as generateEphemeralWatchdogScript, l as installPushDaemon, m as loadRemoteAgentState, n as checkRemoteDurabilityPreflight, o as getRemoteAgentOutput, p as listRemoteAgents, r as checkRemoteSpendCap, s as init_remote_agents, t as assertFlyRemoteStateSupported, u as isRemoteAgentRunning, v as sendToRemoteAgent, y as spawnRemoteAgent } from "./remote-agents-C2C6z9tj.js";
2
2
  init_remote_agents();
3
3
  export { assertFlyRemoteStateSupported, checkRemoteDurabilityPreflight, checkRemoteSpendCap, generateEphemeralWatchdogScript, generatePushDaemonScript, getRemoteAgentOutput, installEphemeralWatchdog, installPushDaemon, isRemoteAgentRunning, killRemoteAgent, listActiveRemoteAgentStates, listRemoteAgents, loadRemoteAgentState, pollRemoteAgentStatus, refreshHostHeartbeatForEphemeralVms, saveRemoteAgentState, sendToRemoteAgent, spawnRemoteAgent, writeRemoteFile };
@@ -1,10 +1,10 @@
1
- import { Fn as init_projects, bn as extractTeamPrefix, qn as resolveProjectFromIssueSync, wn as findProjectByTeamSync } from "./config-yaml-cNOZcEww.js";
2
- import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME } from "./types-BLS_Zbmd.js";
3
- import { f as init_config, m as loadConfigSync } from "./config-DVLdmnMJ.js";
4
- import { t as init_pan_dir } from "./pan-dir-CQIfKG8c.js";
5
- import { r as init_workspace_manager, t as createWorkspace } from "./workspace-manager-D8AByFIT.js";
6
- import { _ as saveRemoteAgentState, f as listActiveRemoteAgentStates, m as loadRemoteAgentState, o as getRemoteAgentOutput, s as init_remote_agents, u as isRemoteAgentRunning, v as sendToRemoteAgent } from "./remote-agents-C4cyxHQS.js";
7
- import { t as createFlyProviderFromConfig } from "./remote-DcO9An_f.js";
1
+ import { Fn as init_projects, bn as extractTeamPrefix, qn as resolveProjectFromIssueSync, wn as findProjectByTeamSync } from "./config-yaml-CqaAyn8y.js";
2
+ import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME } from "./types-DOjWNv3Z.js";
3
+ import { f as init_config, m as loadConfigSync } from "./config-DfaUXr6r.js";
4
+ import { t as init_pan_dir } from "./pan-dir-BTw4MdSe.js";
5
+ import { r as init_workspace_manager, t as createWorkspace } from "./workspace-manager-Beeo2aKF.js";
6
+ import { _ as saveRemoteAgentState, f as listActiveRemoteAgentStates, m as loadRemoteAgentState, o as getRemoteAgentOutput, s as init_remote_agents, u as isRemoteAgentRunning, v as sendToRemoteAgent } from "./remote-agents-C2C6z9tj.js";
7
+ import { t as createFlyProviderFromConfig } from "./remote-rN0ecjHE.js";
8
8
  import { Effect } from "effect";
9
9
  import { existsSync, mkdirSync, statSync, unlinkSync, writeFileSync } from "fs";
10
10
  import { basename, join } from "path";
@@ -309,7 +309,7 @@ async function reapCompletedRemoteAgents(opts = {}) {
309
309
  } catch {
310
310
  details.push("No continue.json retrieved from VM (skipped)");
311
311
  }
312
- const { getAgentStateSync, saveAgentStateSync } = await import("./agents-CEcaxSkR.js");
312
+ const { getAgentStateSync, saveAgentStateSync } = await import("./agents-BA15AQqo.js");
313
313
  const existing = getAgentStateSync(agentId);
314
314
  if (existing) {
315
315
  existing.workspace = existing.workspace || workspacePath;
@@ -327,8 +327,8 @@ async function reapCompletedRemoteAgents(opts = {}) {
327
327
  startedAt: remoteState.startedAt,
328
328
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
329
329
  });
330
- const { createReviewArtifactsForIssue } = await import("./review-artifacts-D4T04aYI.js");
331
- const { setReviewStatusSync } = await import("./review-status-CG0iDuWa.js");
330
+ const { createReviewArtifactsForIssue } = await import("./review-artifacts-PCo53YMn.js");
331
+ const { setReviewStatusSync } = await import("./review-status-77N3PoZr.js");
332
332
  const primaryArtifact = (await Effect.runPromise(createReviewArtifactsForIssue(issueId, workspacePath))).mergeSet?.repos.find((repo) => !!repo.artifactUrl);
333
333
  if (primaryArtifact?.artifactUrl) {
334
334
  setReviewStatusSync(issueId, { prUrl: primaryArtifact.artifactUrl });
@@ -349,7 +349,7 @@ async function reapCompletedRemoteAgents(opts = {}) {
349
349
  try {
350
350
  const fly = createFlyProviderFromConfig(loadConfigSync().remote);
351
351
  if (sessionAlive) {
352
- const { killRemoteAgent } = await import("./remote-agents-Cv-U-_V8.js");
352
+ const { killRemoteAgent } = await import("./remote-agents-DYY5fFpd.js");
353
353
  await killRemoteAgent(agentId, vmName).catch(() => void 0);
354
354
  }
355
355
  await Effect.runPromise(fly.deleteVm(vmName));
@@ -357,7 +357,7 @@ async function reapCompletedRemoteAgents(opts = {}) {
357
357
  } catch (err) {
358
358
  details.push(`Warning: could not destroy machine: ${err.message}`);
359
359
  }
360
- const { deleteWorkspaceMetadataSync } = await import("./workspace-metadata-DZiJtnuF.js");
360
+ const { deleteWorkspaceMetadataSync } = await import("./workspace-metadata-Cy7_ZACL.js");
361
361
  deleteWorkspaceMetadataSync(issueId);
362
362
  details.push("Removed remote workspace metadata (pipeline is local from here)");
363
363
  saveRemoteAgentState({
@@ -386,4 +386,4 @@ async function reapCompletedRemoteAgents(opts = {}) {
386
386
  //#endregion
387
387
  export { reapCompletedRemoteAgents, refreshClaudeCredentialsForActiveRemoteAgents };
388
388
 
389
- //# sourceMappingURL=remote-completion-PhXGGFQy.js.map
389
+ //# sourceMappingURL=remote-completion-2Kb4IDg_.js.map
@@ -1,5 +1,5 @@
1
- import "./workspace-metadata-CvC268MN.js";
2
- import { C as init_fly_provider, S as createFlyProvider, s as init_remote_agents } from "./remote-agents-C4cyxHQS.js";
1
+ import "./workspace-metadata-BZC5BmoP.js";
2
+ import { C as init_fly_provider, S as createFlyProvider, s as init_remote_agents } from "./remote-agents-C2C6z9tj.js";
3
3
  import { Effect } from "effect";
4
4
  //#region ../../lib/remote/index.ts
5
5
  init_fly_provider();
@@ -52,4 +52,4 @@ function createFlyProviderFromConfig(remoteConfig, tierOverride) {
52
52
  //#endregion
53
53
  export { getRemoteProvider as n, isRemoteAvailable as r, createFlyProviderFromConfig as t };
54
54
 
55
- //# sourceMappingURL=remote-DcO9An_f.js.map
55
+ //# sourceMappingURL=remote-rN0ecjHE.js.map
@@ -0,0 +1,3 @@
1
+ import { M as resumeAgent, j as init_resume } from "./queries-C0LCGG21.js";
2
+ init_resume();
3
+ export { resumeAgent };