@overdeck/desktop 0.45.21 → 0.45.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-CJIFA8Vg.js → acceptance-criteria-BH7ac_1G.js} +2 -2
  3. package/server/{advancing-selfheal-CPOBO5ZS.js → advancing-selfheal-cSvXNZLZ.js} +6 -6
  4. package/server/{agent-gc-D6PUckBB.js → agent-gc-Dj2gncak.js} +4 -4
  5. package/server/{agent-state-BV_6RHnO.js → agent-state-Co5Sy2Fw.js} +1 -1
  6. package/server/{agent-state-service-DHwemt96.js → agent-state-service-CsQ07Pxe.js} +1 -1
  7. package/server/{agent-state-service-6MFQqnFy.js → agent-state-service-DistflNn.js} +5 -5
  8. package/server/{agents-DbrHWunF.js → agents-DXdHmRTC.js} +4 -4
  9. package/server/{agents-Czz6R57Z.js → agents-DyHKlq1I.js} +1 -1
  10. package/server/{archive-planning-BOnwJq8M.js → archive-planning-BvDuWNMo.js} +5 -5
  11. package/server/{archive-planning-MPpvQJL4.js → archive-planning-Cp_DC1j-.js} +1 -1
  12. package/server/{artifact-index-jobs-BOoySTKD.js → artifact-index-jobs-CDBFL4OU.js} +2 -2
  13. package/server/{backlog-auto-trigger-BUaFI44J.js → backlog-auto-trigger-DmA1IbYf.js} +3 -3
  14. package/server/{behavior-Dg-D8eBG.js → behavior-CGj16clS.js} +2 -2
  15. package/server/{briefing-freshness-OouGbJ7d.js → briefing-freshness-C12WgkaB.js} +2 -2
  16. package/server/{build-info-Cv6CI7Gu.js → build-info-BRpqQvNd.js} +1 -1
  17. package/server/{build-info-27NlbKhV.js → build-info-NU3KbXYw.js} +3 -3
  18. package/server/{checkpoint-manager-D64fCC4p.js → checkpoint-manager-CTPjAmtH.js} +2 -2
  19. package/server/{checkpoint-manager-C7mFCY_E.js → checkpoint-manager-rOgT98WY.js} +1 -1
  20. package/server/checkpoint-worker.js +1 -1
  21. package/server/{checkpoints-DwZqT2qQ.js → checkpoints-B5jFNi2G.js} +1 -1
  22. package/server/{checkpoints-Vh-J15ge.js → checkpoints-BJum14fs.js} +2 -2
  23. package/server/{claude-hooks-provision-CS5W_dhI.js → claude-hooks-provision-BhwWK-TQ.js} +1 -1
  24. package/server/{claude-hooks-provision-BVLGfHrv.js → claude-hooks-provision-D7p5WcKZ.js} +2 -2
  25. package/server/{claude-permissions-C2OrLYKL.js → claude-permissions-nSFKH78M.js} +2 -2
  26. package/server/{claude-settings-overlay-DX-fMFpC.js → claude-settings-overlay-BI_UIke0.js} +2 -2
  27. package/server/{claude-settings-overlay-DWXjafJh.js → claude-settings-overlay-DHBwjS1X.js} +1 -1
  28. package/server/cli-BRORS9qY.js +3 -0
  29. package/server/{cli-mvpEOb3w.js → cli-CbKNkFE5.js} +9 -9
  30. package/server/{cliproxy-Dvsr4ZkW.js → cliproxy-Brf_5MuG.js} +2 -2
  31. package/server/{cliproxy-7g1nObvB.js → cliproxy-bONZDBbC.js} +1 -1
  32. package/server/{close-issue-8F6uawYj.js → close-issue-CxReRxIc.js} +5 -5
  33. package/server/{closed-issue-reaper-BaYQYF6w.js → closed-issue-reaper-CQ3kqha7.js} +9 -9
  34. package/server/{closed-issue-reaper-BhV-r-tC.js → closed-issue-reaper-DXP2Xyv3.js} +1 -1
  35. package/server/{codex-D_UBEOwL.js → codex-CbmztVcc.js} +9 -6
  36. package/server/{codex-BBeZ8c3s.js → codex-DNyiQDKW.js} +1 -1
  37. package/server/{codex-parser-BTzlOZiV.js → codex-parser-jl8AeAmB.js} +2 -2
  38. package/server/{config-nAB_F-Gp.js → config-BJKocXKd.js} +1 -1
  39. package/server/{config-G1TOMJZA.js → config-DeTsoZdR.js} +2 -2
  40. package/server/{config-CrduXs4a.js → config-q4Gvd8dq.js} +2 -2
  41. package/server/{config-yaml-Ciyp2mYe.js → config-yaml-ig8Nwtiw.js} +124 -27
  42. package/server/{conflict-gate-BLUNMs1i.js → conflict-gate-CFqPVxEg.js} +3 -3
  43. package/server/{conflict-gate-BKalpcjL.js → conflict-gate-CHU9K1vU.js} +1 -1
  44. package/server/{context-layers-Cg9ZgVfx.js → context-layers-15gDOk20.js} +3 -3
  45. package/server/{context-layers-YNpf6Q_I.js → context-layers-DlQKkHH2.js} +2 -2
  46. package/server/{control-settings-D_79A6gp.js → control-settings-D_odMIaC.js} +4 -4
  47. package/server/{conversation-compaction-DiuZbIUB.js → conversation-compaction-B6YSRLda.js} +8 -8
  48. package/server/{conversation-compaction-CMIeWW4_.js → conversation-compaction-CN4-5YYt.js} +1 -1
  49. package/server/{conversation-service-DQybSPUK.js → conversation-service-C3avRVEr.js} +6 -6
  50. package/server/{conversation-service-CWk8mEym.js → conversation-service-Dq33SYEj.js} +1 -1
  51. package/server/{conversations-BJ-t3BRm.js → conversations-H9if0bCQ.js} +1 -1
  52. package/server/{conversations-BUgGvqVL.js → conversations-bYpM9-kZ.js} +4 -4
  53. package/server/{cost-Drm7qeD5.js → cost-Codk1pc2.js} +2 -2
  54. package/server/{cost-sync-DzHP6zaR.js → cost-sync-D_cre6WM.js} +3 -3
  55. package/server/{cost-jJ2cgDcG.js → cost-wH46-WsJ.js} +3 -3
  56. package/server/{dag-DIji6O2b.js → dag-CJpgf9A3.js} +2 -2
  57. package/server/{dangerous-git-ops-BebB-61h.js → dangerous-git-ops-D6AF-Hg_.js} +1 -1
  58. package/server/dashboard-db-worker.js +7 -7
  59. package/server/{deacon-pleYrvIm.js → deacon-B8HbQdqU.js} +3 -3
  60. package/server/{deacon-1s7bM5zn.js → deacon-CkT_kznS.js} +1377 -407
  61. package/server/{deacon-nudge-log-C5VCKtyi.js → deacon-nudge-log-D6K9K-rE.js} +3 -3
  62. package/server/{deacon-swarm-DmA3rJ7k.js → deacon-swarm-BryRr6AO.js} +13 -13
  63. package/server/deacon-swarm-CV54eNmU.js +2 -0
  64. package/server/deacon.js +8 -8
  65. package/server/{deploy-patrol-DmM6F-yw.js → deploy-patrol-1IrZxicY.js} +6 -6
  66. package/server/{deploy-window-ClLq1RYf.js → deploy-window-7ZYHh7Zp.js} +1 -1
  67. package/server/{deploy-window-jw4S_Y-c.js → deploy-window-wDf4UgHt.js} +6 -6
  68. package/server/{dev-supervisor-Do2Stz49.js → dev-supervisor-C7p9kEpc.js} +2 -2
  69. package/server/{devcontainer-renderer-D8ylupco.js → devcontainer-renderer-CNmQy0pL.js} +3 -3
  70. package/server/{dist-yfR7G1BL.js → dist-D-Ed5yVw.js} +1 -1
  71. package/server/dist-j64RzSrQ.js +3 -0
  72. package/server/{docker-ClwPQaba.js → docker-BCZ89M9X.js} +2 -2
  73. package/server/{dod-BLphkhjs.js → dod-DbJLYcHv.js} +1 -1
  74. package/server/{ensure-devcontainer-BA3bICoY.js → ensure-devcontainer-Cs6W9Yzj.js} +1 -1
  75. package/server/{ensure-devcontainer-CFpQatOc.js → ensure-devcontainer-V5JWaAva.js} +4 -4
  76. package/server/{esm-shims-BZw-fTQ6.js → esm-shims-dTeNdq7X.js} +1 -1
  77. package/server/{event-store-DABarGNz.js → event-store-CpBGsO6_.js} +1 -1
  78. package/server/{event-store-BVnON3vf.js → event-store-TnWdydfB.js} +3 -3
  79. package/server/{events-CmERlnwn.js → events-DSUdR-04.js} +3 -3
  80. package/server/{events-LGeUehYW.js → events-Dsuv6qyB.js} +1 -1
  81. package/server/{factory-CQNprtHe.js → factory-BMrK4TrE.js} +4 -4
  82. package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B-CI9hgE.js} +4 -4
  83. package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-B972ph_A.js} +2 -2
  84. package/server/{features--fOza5g5.js → features-Bc-Bmiye.js} +2 -2
  85. package/server/{feedback-target-Dn9vfPpz.js → feedback-target-DS6NUuSs.js} +1 -1
  86. package/server/{feedback-target-Dqik2WTe.js → feedback-target-DZ-iAnAa.js} +7 -7
  87. package/server/{feedback-writer-Wlq5-qgS.js → feedback-writer-BXP6g75N.js} +4 -4
  88. package/server/{feedback-writer-DDQNV8uc.js → feedback-writer-Bx5z11mF.js} +1 -1
  89. package/server/{flywheel-DPUc8r3V.js → flywheel-6WHU4O7A.js} +14 -14
  90. package/server/{flywheel-1Wd8WDlh.js → flywheel-COR0mbRI.js} +12 -12
  91. package/server/{flywheel-Q-38YhZG.js → flywheel-Ctr5uuvo.js} +1 -1
  92. package/server/{flywheel-merge-order-CeBuX0EJ.js → flywheel-merge-order-CNKAY489.js} +1 -1
  93. package/server/{flywheel-merge-order-4SqOXFAr.js → flywheel-merge-order-CTgHeg-W.js} +7 -7
  94. package/server/forge-B0_opi-V.js +2 -0
  95. package/server/{forge-DBbDpiYc.js → forge-B1S_KZv4.js} +2 -2
  96. package/server/{from-hh6vTBGl.js → from-DpwQ-sc3.js} +1 -1
  97. package/server/{fts-db-6ponMie2.js → fts-db-DmAcuCkV.js} +2 -2
  98. package/server/{fts-operations-KIRK165y.js → fts-operations-7d_RkmWp.js} +2 -2
  99. package/server/git-utils-Cc3FHDKd.js +198 -0
  100. package/server/{git-utils-DmF5xkj8.js → git-utils-CsKGnzFA.js} +1 -1
  101. package/server/{github-app-B3yfECo8.js → github-app-CDPtGF7J.js} +2 -2
  102. package/server/{github-app-CeSVFL6C.js → github-app-CU14oYzP.js} +1 -1
  103. package/server/{github-client-4A6FgA8O.js → github-client-CwBZZ3t7.js} +1 -1
  104. package/server/{github-client-Dslipypz.js → github-client-XjTJbBm7.js} +2 -2
  105. package/server/{github-pr-lookup-DBP0YHMr.js → github-pr-lookup-CFGeVhqv.js} +2 -2
  106. package/server/harness-binary-B2CTcD84.js +106 -0
  107. package/server/{harness-resolve-BGpO-OVM.js → harness-resolve-D5FVQTmy.js} +9 -15
  108. package/server/{health-events-CnwV_SSz.js → health-events-C1whmd58.js} +1 -1
  109. package/server/{health-events-CZGZ5I-A.js → health-events-DREeevle.js} +2 -2
  110. package/server/{hooks-DvX33gY_.js → hooks-B-HItBiS.js} +1 -1
  111. package/server/{hooks-CoNscX84.js → hooks-yxRsjk-z.js} +2 -2
  112. package/server/hume-BmhvfVbV.js +3 -0
  113. package/server/{hume-DSJt5eA_.js → hume-Dz_OymXE.js} +2 -2
  114. package/server/{idle-stack-reaper-5DVRoY6P.js → idle-stack-reaper-DrCv0OAG.js} +1 -1
  115. package/server/{idle-stack-reaper-BfL8HqYy.js → idle-stack-reaper-Yf34xXxY.js} +2 -2
  116. package/server/{in-flight-guard-tVGiI5ee.js → in-flight-guard-BoWm66Kh.js} +2 -2
  117. package/server/{infra-DN2wSxle.js → infra-D4iNWMA5.js} +4 -4
  118. package/server/{injection-DK9zh_HL.js → injection-BVNa4MQW.js} +1 -1
  119. package/server/{injection-DtlT8Akv.js → injection-D7T75Pye.js} +7 -7
  120. package/server/{inspect-agent-DKByUS_F.js → inspect-agent-BXCgNeZ4.js} +13 -9
  121. package/server/inspect-agent-Dq0z1k3H.js +2 -0
  122. package/server/{internal-token-7bYL5v6K.js → internal-token-C9DdEOKY.js} +1 -1
  123. package/server/{internal-token-DhfFiwW7.js → internal-token-CXsfxslp.js} +2 -2
  124. package/server/{io-BiM-7Zsx.js → io-DQR9PMgS.js} +3 -3
  125. package/server/{issue-closed-Dfw3QDyZ.js → issue-closed-DtmJM0D0.js} +7 -7
  126. package/server/{issue-lifecycle-ytsEdDlK.js → issue-lifecycle-8PSS9Anq.js} +1 -1
  127. package/server/{issue-lifecycle-B7HZWnTA.js → issue-lifecycle-CeyW_HoD.js} +21 -21
  128. package/server/{issue-service-singleton-D5EB5eYr.js → issue-service-singleton-DBZabEl7.js} +1 -1
  129. package/server/{issue-service-singleton-CPESc4Or.js → issue-service-singleton-D_RVYBuL.js} +8 -8
  130. package/server/{issues-XYtFMxrH.js → issues-pDW9VUNz.js} +2 -2
  131. package/server/{jsonl-parser-DJV2eZUP.js → jsonl-parser-C3HVNR5d.js} +3 -3
  132. package/server/{label-cleanup-CJ4m8iRU.js → label-cleanup-DPwiZlWo.js} +3 -3
  133. package/server/{label-reconciler-CNf3Ylm3.js → label-reconciler-Df1ZduPH.js} +4 -4
  134. package/server/{launcher-generator-5DJRiovn.js → launcher-generator-COgR2By1.js} +6 -6
  135. package/server/{layers-cZx7ibtV.js → layers-Cp1To4L8.js} +2 -2
  136. package/server/{lifecycle-CE7619Xw.js → lifecycle-CtPDcZ9u.js} +6 -6
  137. package/server/{lifecycle-io-CUpsxG0p.js → lifecycle-io-DmY2qwCn.js} +1 -1
  138. package/server/{lifecycle-io-DMurK4oM.js → lifecycle-io-taIb0PoH.js} +4 -4
  139. package/server/{linear-client-BLyN-NiP.js → linear-client-DsFkIxee.js} +2 -2
  140. package/server/{linear-client-Bj1l4FOA.js → linear-client-YwZMDIwQ.js} +1 -1
  141. package/server/memory-fts-worker.js +1 -1
  142. package/server/{merge-CwX2_AWm.js → merge-BwsyNRJV.js} +1 -1
  143. package/server/{merge-hSC2BENe.js → merge-C1t-bspg.js} +3 -3
  144. package/server/{merge-agent-CnORPiri.js → merge-agent-B-SnXOoc.js} +1 -1
  145. package/server/{merge-agent-DnBsms_V.js → merge-agent-DDiIjzk-.js} +369 -213
  146. package/server/{merge-batch-C2w2U2eK.js → merge-batch-Byt-QnEl.js} +1 -1
  147. package/server/{merge-blockers-DhRgh76x.js → merge-blockers-BYjeXrVN.js} +2 -2
  148. package/server/merge-ops-DwWCkSgo.js +2 -0
  149. package/server/{merge-rebase-CE-ZyOMY.js → merge-rebase-Cm6fXaZN.js} +2 -2
  150. package/server/{merge-set-DHkzPCJU.js → merge-set-6LEglm6o.js} +1 -1
  151. package/server/{merge-set-D7YNU1ZB.js → merge-set-DiISXcC-.js} +3 -3
  152. package/server/{merge-sync-CpGA9Kg7.js → merge-sync-B95_4in_.js} +1 -1
  153. package/server/{merge-sync-De1FYva5.js → merge-sync-Do8_q32h.js} +2 -2
  154. package/server/{merge-train-SvkRJZ-k.js → merge-train-CKana8EH.js} +3 -3
  155. package/server/{merge-train-deps-CECJTElu.js → merge-train-deps-BgmqwIfA.js} +4 -4
  156. package/server/{merge-verification-B3meGcXF.js → merge-verification-CqnUzGEK.js} +4 -4
  157. package/server/{multipart-parser-ByTMgYV5.js → multipart-parser-tdOQDJ3o.js} +2 -2
  158. package/server/{no-resume-mode-BnInAFKs.js → no-resume-mode-BWOSZjWd.js} +1 -1
  159. package/server/node_modules/.package-lock.json +5 -5
  160. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +3 -3
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
  162. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +2 -2
  163. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
  164. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +5 -5
  165. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +6 -8
  166. package/server/{orphan-proposed-reconciler-CAfuWTA1.js → orphan-proposed-reconciler-DSvsJ5M7.js} +1 -1
  167. package/server/{orphan-proposed-reconciler-AxAGUouN.js → orphan-proposed-reconciler-xklgvNA7.js} +19 -12
  168. package/server/package-lock.json +6 -6
  169. package/server/package.json +1 -1
  170. package/server/{pan-dir-Rw17YjT1.js → pan-dir-DOcf6ug3.js} +4 -4
  171. package/server/{paths-FP8v3lTz.js → paths-DooHpt9p.js} +2 -2
  172. package/server/{pickup-xi3KTLaJ.js → pickup-CaskQ7j6.js} +2 -2
  173. package/server/{pipeline-membership-BtKMNY7v.js → pipeline-membership-1LGRjo-k.js} +11 -8
  174. package/server/{pipeline-notifier-BM2HLF7B.js → pipeline-notifier-B6FVsYF9.js} +2 -2
  175. package/server/{pipeline-notifier-dQ-U4NSb.js → pipeline-notifier-CZsrU_nj.js} +1 -1
  176. package/server/{project-pipelines-B59NfN44.js → project-pipelines-CtNG_rvs.js} +2 -2
  177. package/server/projects-BKkwpH6q.js +3 -0
  178. package/server/{prompts-CbqaVjbe.js → prompts-EvhMeeHG.js} +2 -2
  179. package/server/{providers-d3pwXGVE.js → providers-BDDPULlp.js} +7 -7
  180. package/server/providers-DNSQqy2V.js +3 -0
  181. package/server/public/assets/{chunk-BO2N2NFS-BxYSL7J-.js → chunk-BO2N2NFS-sym_ufXe.js} +4 -4
  182. package/server/public/assets/{diagram-OG6HWLK6-C_F9Q2as.js → diagram-OG6HWLK6-CQJPBNBu.js} +1 -1
  183. package/server/public/assets/{dist-DQNg4CiF.js → dist-Bio7THQU.js} +1 -1
  184. package/server/public/assets/{dist-CLSlc6cV.js → dist-DukGS2YZ.js} +3 -3
  185. package/server/public/assets/{ganttDiagram-6RSMTGT7-Cq0my-0C.js → ganttDiagram-6RSMTGT7-D4lWwte3.js} +1 -1
  186. package/server/public/assets/{highlighted-body-OFNGDK62-eZC03dGh.js → highlighted-body-OFNGDK62-CaLboCt5.js} +1 -1
  187. package/server/public/assets/{index-C6NLz_1S.css → index-Bdc4V9ba.css} +1 -1
  188. package/server/public/assets/{index-SLYGA8AQ.js → index-Bwejq-5s.js} +147 -145
  189. package/server/public/assets/{linear-6Fi3qnGg.js → linear-qUWmMZ-c.js} +1 -1
  190. package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +1 -0
  191. package/server/public/assets/{pieDiagram-4H26LBE5-Dpmc6xsv.js → pieDiagram-4H26LBE5-C4zYulEm.js} +1 -1
  192. package/server/public/assets/{prod-ojHllFvN.js → prod-C8VtLuWC.js} +4 -4
  193. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Ulr9gON5.js → quadrantDiagram-W4KKPZXB-qP04zyZC.js} +1 -1
  194. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CwdHGXfL.js → sankeyDiagram-5OEKKPKP-eMPTX_cG.js} +1 -1
  195. package/server/public/assets/{xychartDiagram-2RQKCTM6-r-bEDzJh.js → xychartDiagram-2RQKCTM6-Dme1PIt6.js} +1 -1
  196. package/server/public/index.html +54 -10
  197. package/server/{pull-requests-CjjPj7v6.js → pull-requests-8z2N1UOV.js} +3 -3
  198. package/server/{pull-requests-D3N6HQzI.js → pull-requests-By_BteaL.js} +1 -1
  199. package/server/{queries-B5hl7lMQ.js → queries-ZABd5aXP.js} +95 -71
  200. package/server/rally-OSJXdiHK.js +3 -0
  201. package/server/{rally-api-DGaFz5L5.js → rally-api-DqKqIMNR.js} +2 -2
  202. package/server/{rally-api-CKr0O4DJ.js → rally-api-xHazRk0d.js} +1 -1
  203. package/server/{rally-client-Cqf6EX_r.js → rally-client-CGWEHaPd.js} +1 -1
  204. package/server/{rally-client-SVbjGvqj.js → rally-client-COYz1vYR.js} +4 -4
  205. package/server/{rally-Dp0Gb1DN.js → rally-i_goYmiA.js} +3 -3
  206. package/server/reap-terminal-sessions-CaMkFOIH.js +4 -0
  207. package/server/{reap-terminal-sessions-CjqRAGw7.js → reap-terminal-sessions-DG9eiMVz.js} +11 -28
  208. package/server/{rebuild-stack-DjdpALr1.js → rebuild-stack-CKjJAI8L.js} +1 -1
  209. package/server/{rebuild-stack-DHqCLvLX.js → rebuild-stack-JUm0jqYP.js} +6 -6
  210. package/server/{reconstruct-cache-BqrCQt0o.js → reconstruct-cache-wU79aCee.js} +6 -6
  211. package/server/record-rwK-nKv_.js +3 -0
  212. package/server/{record-update-RviRDSNs.js → record-update-Crz74r-6.js} +2 -2
  213. package/server/{record-update-BlB8mpKO.js → record-update-D3N6WMFR.js} +1 -1
  214. package/server/{recovery-trip-l1Hsi37x.js → recovery-trip-DkzJSej9.js} +2 -2
  215. package/server/{release-engine-CSI4K6Oj.js → release-engine-DMINVN8S.js} +5 -5
  216. package/server/{release-set-BywwggrE.js → release-set-DeUSOEHy.js} +3 -3
  217. package/server/{remote-DYziAkiZ.js → remote-Dr5kGYSZ.js} +3 -3
  218. package/server/{remote-agents-CZ2rc8I0.js → remote-agents-Ct_WOyke.js} +6 -6
  219. package/server/{remote-agents-BNORDWAX.js → remote-agents-D6O_zETW.js} +1 -1
  220. package/server/{remote-cnoeuDWn.js → remote-b-c5bOce.js} +3 -3
  221. package/server/{remote-completion-W67FNQ-A.js → remote-completion-Dca3hAaa.js} +13 -13
  222. package/server/resume-wZZsWtzz.js +3 -0
  223. package/server/{review-agent-CSswH985.js → review-agent-CCum8sGe.js} +1 -1
  224. package/server/{review-agent-CqSqSHkU.js → review-agent-CThvgK2r.js} +23 -23
  225. package/server/{review-artifacts-BBgnd5df.js → review-artifacts-CXywD0F2.js} +5 -5
  226. package/server/{review-context-Ctp9BdNJ.js → review-context-OYfKUprb.js} +8 -8
  227. package/server/{review-status-DXeqFpk5.js → review-status-Bnh-rdkY.js} +1 -1
  228. package/server/{review-status-CCgPVK1h.js → review-status-DFRjDFef.js} +21 -37
  229. package/server/{review-status-enrichment-DtDRGpst.js → review-status-enrichment-crNAtIpL.js} +3 -3
  230. package/server/review-status-source-CxuEjLGg.js +39 -0
  231. package/server/{review-status-sync-C792ksoJ.js → review-status-sync-D60PJWNL.js} +1 -1
  232. package/server/{review-status-sync-jnLgd04F.js → review-status-sync-DpAMD_WO.js} +2 -2
  233. package/server/{review-verdict-feedback-CMsIpTpy.js → review-verdict-feedback-CpUZl5aE.js} +7 -7
  234. package/server/{review-verdict-feedback-D5lW0o3k.js → review-verdict-feedback-JImjut0z.js} +1 -1
  235. package/server/{rollup-B3kQmNpl.js → rollup-CZ02qgxk.js} +1 -1
  236. package/server/{rollup-CLj_AK9f.js → rollup-SyuF09e4.js} +8 -8
  237. package/server/{scanner-C4NeC4FE.js → scanner-Br0Z5S6R.js} +7 -7
  238. package/server/{sequence-io-Ce-6grIY.js → sequence-io-fxU0DlwW.js} +4 -4
  239. package/server/{sequencer-agent-Bpz0yGmG.js → sequencer-agent-B5YC5XVP.js} +5 -5
  240. package/server/server.js +583 -387
  241. package/server/{service-CqAY8Kmk.js → service-Bagb90KZ.js} +150 -47
  242. package/server/{session-fork-uNo4rMRA.js → session-fork-BqQxd-V6.js} +2 -2
  243. package/server/{session-history-DUehL3KN.js → session-history-XdS0JKp3.js} +4 -4
  244. package/server/{settings-DP2OYLXL.js → settings-BNbocWOg.js} +3 -3
  245. package/server/settings-BlUsVaUc.js +2 -0
  246. package/server/{settings-D9grjmaP.js → settings-uLc6DEYI.js} +2 -2
  247. package/server/{shadow-engineering-Bi_oIMtF.js → shadow-engineering-D4X_s3fA.js} +3 -3
  248. package/server/{shadow-state-a_ztFBJe.js → shadow-state-C_NkP-sa.js} +2 -2
  249. package/server/{shadow-state-CDxEuPlE.js → shadow-state-CbvsN3qG.js} +1 -1
  250. package/server/{shadow-utils-CyOg6_Xq.js → shadow-utils-CYMRPeRT.js} +2 -2
  251. package/server/{ship-log-DDcueaIR.js → ship-log-__QtAFXG.js} +1 -1
  252. package/server/{smart-compaction--Oj65Uov.js → smart-compaction-CLZOWin1.js} +7 -7
  253. package/server/{smart-compaction-C1_VVLEd.js → smart-compaction-jdMkG1vo.js} +1 -1
  254. package/server/{spawn-planning-session-LFtK2QCE.js → spawn-planning-session-8D6mE033.js} +1 -1
  255. package/server/{spawn-planning-session-AiUSsBnH.js → spawn-planning-session-D5OXo8pT.js} +19 -15
  256. package/server/{specialist-completion-qOgqdqXH.js → specialist-completion-CqmduO92.js} +1 -1
  257. package/server/{specialist-context-gjj8Z4Ii.js → specialist-context-CJ-QjFR-.js} +5 -5
  258. package/server/{specialist-handoff-logger-BsBNvVZv.js → specialist-handoff-logger-Dnjlwt7g.js} +2 -2
  259. package/server/{specialist-logs-CSLtvPx6.js → specialist-logs-CQnKzuZs.js} +3 -3
  260. package/server/{specialists-DAegTvRt.js → specialists-Bg9v4z3F.js} +122 -94
  261. package/server/{specialists-CYRwELzc.js → specialists-CwZHb5cb.js} +18 -18
  262. package/server/{specialists-D0VBf8g_.js → specialists-D0gGXMZx.js} +1 -1
  263. package/server/{specialists-C6WkeKFK.js → specialists-Dqe6_HE5.js} +1 -1
  264. package/server/specs-BhOKBzqk.js +3 -0
  265. package/server/{src-OLoJhUiJ.js → src-BMMoA_ba.js} +6 -6
  266. package/server/{src-BqTcrfO_.js → src-Bqdtd6po.js} +3 -3
  267. package/server/{src-Dpq1yFIl.js → src-k039WVYY.js} +337 -4
  268. package/server/{stack-health-I713ELld.js → stack-health-Bd06frFn.js} +1 -1
  269. package/server/{stack-health-DV_f-lK0.js → stack-health-C-ifC7b0.js} +2 -2
  270. package/server/{stale-task-claims-CQSKZVq0.js → stale-task-claims-L7pJkQFL.js} +4 -4
  271. package/server/{staleness-BbsGxmF2.js → staleness-BID1BKdr.js} +1 -1
  272. package/server/{staleness-zGp4P1hd.js → staleness-_Tr-GwdA.js} +1 -1
  273. package/server/{state-home-DixkE-up.js → state-home-CONQvZR0.js} +36 -23
  274. package/server/state-migrate-BeBW0KXA.js +478 -0
  275. package/server/{stuck-remediation-BWkK_O7A.js → stuck-remediation-CKnIryGT.js} +20 -18
  276. package/server/{stuck-remediation-CTPRC2S5.js → stuck-remediation-CsGD5Ksb.js} +1 -1
  277. package/server/{substrate-bug-weights-service-DXd0ID83.js → substrate-bug-weights-service-CpIZILj9.js} +3 -3
  278. package/server/{summary-fork-CdLn8Chr.js → summary-fork-agEMsPSo.js} +2 -2
  279. package/server/{summary-fork-f3DpgjXh.js → summary-fork-bX6ax6X7.js} +8 -8
  280. package/server/supervisor-COVHrBTg.js +2 -0
  281. package/server/{supervisor-Ch8CDuoF.js → supervisor-Ctt4eRYz.js} +3 -3
  282. package/server/{swarm-readiness-C9P2iPap.js → swarm-readiness-DdmJVX7y.js} +3 -3
  283. package/server/{system-prerequisites-DkoQBn1q.js → system-prerequisites-DSXBvffY.js} +24 -44
  284. package/server/{teardown-workspace-D-5yMyit.js → teardown-workspace-DDCf5n-a.js} +15 -15
  285. package/server/{test-agent-queue-BwpUpu-o.js → test-agent-queue-BJZ9Nfcc.js} +6 -6
  286. package/server/{test-verdict-BRiSu7eW.js → test-verdict-Cp5tljlJ.js} +1 -1
  287. package/server/{test-verdict-BQ1yx7d4.js → test-verdict-D_-sXIz_.js} +1 -1
  288. package/server/{tldr-daemon-BJA7TkqS.js → tldr-daemon-B8_oT5gx.js} +1 -1
  289. package/server/{tldr-daemon-DjxP5g6Y.js → tldr-daemon-BQFmmFp0.js} +2 -2
  290. package/server/{tmux-HQLgwo_C.js → tmux-BAvtac_u.js} +1 -1
  291. package/server/{tmux-y1blSxks.js → tmux-L5LgvGLp.js} +2 -2
  292. package/server/{token-LUrbM9sU.js → token-BkQLy4yS.js} +2 -2
  293. package/server/token-util-BArZLN6w.js +3 -0
  294. package/server/{token-util-BZaDAQ8S.js → token-util-DI8sGlmF.js} +1 -1
  295. package/server/{tracker-config-DSFZBdXP.js → tracker-config-DdT-nUAM.js} +2 -2
  296. package/server/{tracker-utils-DiceZN3a.js → tracker-utils-CawsPSS2.js} +2 -2
  297. package/server/{tracker-utils-WtP_V-yn.js → tracker-utils-DV3h1FYG.js} +1 -1
  298. package/server/{traefik-connect-BXqfOP4-.js → traefik-connect-C6mJckNs.js} +1 -1
  299. package/server/{tunnel-WcJImbAC.js → tunnel-BIFl98rc.js} +1 -1
  300. package/server/{tunnel-DTng1rfQ.js → tunnel-IdK1iTHx.js} +3 -3
  301. package/server/{types-BjaZ1oqH.js → types-7-GnJn0t.js} +1 -1
  302. package/server/{types-DqeBMmJN.js → types-hraoaQIp.js} +1 -1
  303. package/server/{uat-train-Wismge7h.js → uat-train-0Ujk8GCv.js} +1 -1
  304. package/server/{uat-train-BpLnp7Cx.js → uat-train-j0cPeMSj.js} +25 -25
  305. package/server/{validation-BA4e5EGm.js → validation-CabEISJT.js} +4 -4
  306. package/server/{validation-CUWamZ4X.js → validation-DcAgXTQp.js} +1 -1
  307. package/server/{verification-artifact-Dr_0g9nb.js → verification-artifact-BuTA1QbL.js} +1 -1
  308. package/server/{verification-artifact-CrbI4tJE.js → verification-artifact-Ck1tefmz.js} +1 -1
  309. package/server/{verification-runner-Dcksl_P-.js → verification-runner-DlJezzef.js} +1 -1
  310. package/server/{verification-runner-gAzh3cVD.js → verification-runner-FiuAZ-H2.js} +15 -14
  311. package/server/{vtt-parser-3VZKsmSm.js → vtt-parser-BnRsYzcz.js} +1 -1
  312. package/server/{work-agent-prompt-ULdcANl5.js → work-agent-prompt-DLthEPAq.js} +12 -11
  313. package/server/{workflows-B8ROFlfw.js → workflows-BZNNYkGC.js} +18 -18
  314. package/server/workflows-C4mR0Reb.js +2 -0
  315. package/server/{workspace-DSjUJaJN.js → workspace-3IC-UkAi.js} +1 -1
  316. package/server/{workspace-DhTDA8nB.js → workspace-D9ppycdg.js} +3 -3
  317. package/server/{workspace-config-BAAsAv-o.js → workspace-config-Bigl_-Lk.js} +1 -1
  318. package/server/{workspace-manager-CcujONCR.js → workspace-manager-B1WOfKvB.js} +1 -1
  319. package/server/{workspace-manager-DsN52IMG.js → workspace-manager-ClkCIWTe.js} +13 -13
  320. package/server/{workspace-metadata-CftOpNLs.js → workspace-metadata-BE0efUv_.js} +1 -1
  321. package/server/{workspace-metadata-DIL5_U4c.js → workspace-metadata-tiSRIWJP.js} +2 -2
  322. package/server/{workspaces-Dmlh1YXm.js → workspaces-CFPcL0vl.js} +96 -96
  323. package/sync-sources/skills/pan-start/SKILL.md +23 -0
  324. package/server/cli-ChErG518.js +0 -3
  325. package/server/deacon-swarm-uudlSCLM.js +0 -2
  326. package/server/dist-BEDL2alY.js +0 -3
  327. package/server/forge-DbhJyH6u.js +0 -2
  328. package/server/git-utils-Bkxzr1Xf.js +0 -129
  329. package/server/hume-BrA1tUuk.js +0 -3
  330. package/server/inspect-agent-CyXNo9fM.js +0 -2
  331. package/server/merge-ops-BpTtuO8x.js +0 -2
  332. package/server/projects-IRHJIPYC.js +0 -3
  333. package/server/providers-BqCdTryq.js +0 -3
  334. package/server/public/assets/mermaid-GHXKKRXX-BNwFoQsf.js +0 -1
  335. package/server/rally-DGimSRBQ.js +0 -3
  336. package/server/reap-terminal-sessions-C1mfzoZo.js +0 -3
  337. package/server/record-us0YECMO.js +0 -3
  338. package/server/resume-OyN3dEXE.js +0 -3
  339. package/server/settings-BaPXXJsT.js +0 -2
  340. package/server/specs-BsNcum0h.js +0 -3
  341. package/server/state-migrate-_zJJ6XKE.js +0 -362
  342. package/server/supervisor-Qy1QecAs.js +0 -2
  343. package/server/token-util-Cg-QnowA.js +0 -3
  344. package/server/workflows-C5c-RPsY.js +0 -2
@@ -7768,7 +7768,7 @@ function isAutoCommitExcludedPath(relativePath) {
7768
7768
  return false;
7769
7769
  }
7770
7770
  /** Run a git subcommand. Fails with GitError on non-zero exit. */
7771
- function runGit(args, cwd) {
7771
+ function runGitRaw(args, cwd) {
7772
7772
  return Effect.gen(function* () {
7773
7773
  const handle = yield* ChildProcess.make("git", [...args], {
7774
7774
  cwd,
@@ -7788,10 +7788,13 @@ function runGit(args, cwd) {
7788
7788
  stderr: stderrBuf.toString("utf-8"),
7789
7789
  exitCode
7790
7790
  };
7791
- }).pipe(Effect.scoped, Effect.provide(spawnerLayer), Effect.catchCause((cause) => Effect.fail(causeToGitError(cause, args))));
7791
+ }).pipe(Effect.scoped, Effect.provide(spawnerLayer));
7792
+ }
7793
+ function runGit(args, cwd) {
7794
+ return runGitWithTimeout(args, cwd, parsePositiveInteger(process.env.OVERDECK_STATE_GIT_TIMEOUT_MS, DEFAULT_STATE_GIT_TIMEOUT_MS));
7792
7795
  }
7793
7796
  function runGitWithTimeout(args, cwd, timeoutMs) {
7794
- return runGit(args, cwd).pipe(Effect.timeout(Duration.millis(timeoutMs)), Effect.catchCause((cause) => Effect.fail(causeToGitError(cause, args))));
7797
+ return runGitRaw(args, cwd).pipe(Effect.timeout(Duration.millis(timeoutMs)), Effect.catchCause((cause) => Effect.fail(causeToGitError(cause, args))));
7795
7798
  }
7796
7799
  function causeToGitError(cause, args) {
7797
7800
  const squashed = Cause.squash(cause);
@@ -7885,11 +7888,13 @@ function reconcileStatePlaneDrift(projectRoot) {
7885
7888
  });
7886
7889
  }
7887
7890
  /**
7888
- * Force a flush of any pending commits for `projectRoot`. Returns an Effect that
7889
- * resolves after the commit attempt (success or no-op).
7891
+ * Force a flush of every pending or active commit that targets the same Git
7892
+ * checkout as `projectRoot`. Callers may pass either a logical project root or
7893
+ * the effective Git root; the Effect resolves only after every matching writer
7894
+ * has settled.
7890
7895
  */
7891
- function flushAutoCommits(projectRoot) {
7892
- return Effect.promise(() => flushPromise(projectRoot));
7896
+ function flushAutoCommits(projectRoot, signal) {
7897
+ return Effect.promise(() => flushPromise(projectRoot, signal));
7893
7898
  }
7894
7899
  /**
7895
7900
  * Force a flush of every project root with a pending auto-commit. Used during
@@ -7898,29 +7903,116 @@ function flushAutoCommits(projectRoot) {
7898
7903
  */
7899
7904
  function flushAllPendingAutoCommits() {
7900
7905
  return Effect.promise(() => {
7901
- const projectRoots = Array.from(pending.keys());
7906
+ const projectRoots = [...new Set([...pending.keys(), ...active.keys()])];
7902
7907
  return Promise.all(projectRoots.map((projectRoot) => flushPromise(projectRoot)));
7903
7908
  });
7904
7909
  }
7905
- function flushPromise(projectRoot) {
7906
- const batch = pending.get(projectRoot);
7907
- if (!batch) return Promise.resolve({
7908
- committed: false,
7909
- reason: "no pending"
7910
- });
7911
- clearTimeout(batch.timer);
7912
- return flushInner(projectRoot);
7910
+ function flushPromise(projectRoot, signal) {
7911
+ const gitRoot = pending.get(projectRoot)?.repoRoot ?? active.get(projectRoot)?.gitRoot ?? projectRoot;
7912
+ const matching = /* @__PURE__ */ new Set();
7913
+ for (const [queuedProjectRoot, batch] of pending) {
7914
+ if ((batch.repoRoot ?? queuedProjectRoot) !== gitRoot) continue;
7915
+ clearTimeout(batch.timer);
7916
+ const started = flushInner(queuedProjectRoot);
7917
+ if (started) matching.add(started);
7918
+ }
7919
+ for (const activeFlush of active.values()) if (activeFlush.gitRoot === gitRoot) matching.add(activeFlush);
7920
+ if (matching.size === 0) {
7921
+ signal?.throwIfAborted();
7922
+ return Promise.resolve({
7923
+ committed: false,
7924
+ reason: "no pending"
7925
+ });
7926
+ }
7927
+ return waitForFlushes(gitRoot, [...matching], signal);
7913
7928
  }
7914
7929
  function flushInner(projectRoot) {
7915
7930
  const batch = pending.get(projectRoot);
7916
- if (!batch) return Promise.resolve({
7917
- committed: false,
7918
- reason: "no pending"
7919
- });
7931
+ if (!batch) return active.get(projectRoot);
7920
7932
  pending.delete(projectRoot);
7921
- const task = serializer.then(() => Effect.runPromise(doCommit(projectRoot, batch)));
7922
- serializer = task.catch(() => void 0);
7923
- return task;
7933
+ return startSerializedFlush(projectRoot, batch.repoRoot ?? projectRoot, doBoundedCommit(projectRoot, batch));
7934
+ }
7935
+ function startSerializedFlush(projectRoot, gitRoot, operation) {
7936
+ const prior = serializers.get(gitRoot) ?? Promise.resolve();
7937
+ const controller = new AbortController();
7938
+ const promise = prior.then(() => {
7939
+ controller.signal.throwIfAborted();
7940
+ return Effect.runPromise(operation, { signal: controller.signal });
7941
+ });
7942
+ const activeFlush = {
7943
+ controller,
7944
+ gitRoot,
7945
+ promise
7946
+ };
7947
+ active.set(projectRoot, activeFlush);
7948
+ const tail = promise.catch(() => void 0);
7949
+ serializers.set(gitRoot, tail);
7950
+ promise.then(() => clearActiveFlush(projectRoot, activeFlush, tail), () => clearActiveFlush(projectRoot, activeFlush, tail));
7951
+ return activeFlush;
7952
+ }
7953
+ async function waitForFlushes(gitRoot, activeFlushes, signal) {
7954
+ const completion = Promise.all(activeFlushes.map((flush) => flush.promise)).then(combineFlushResults);
7955
+ if (!signal) return completion;
7956
+ if (signal.aborted) {
7957
+ await abortAndSettleGitRoot(gitRoot, signal.reason);
7958
+ throw signal.reason;
7959
+ }
7960
+ return new Promise((resolve, reject) => {
7961
+ let completed = false;
7962
+ const onAbort = () => {
7963
+ if (completed) return;
7964
+ completed = true;
7965
+ signal.removeEventListener("abort", onAbort);
7966
+ abortAndSettleGitRoot(gitRoot, signal.reason).then(() => reject(signal.reason), reject);
7967
+ };
7968
+ signal.addEventListener("abort", onAbort, { once: true });
7969
+ completion.then((result) => {
7970
+ if (completed) return;
7971
+ completed = true;
7972
+ signal.removeEventListener("abort", onAbort);
7973
+ resolve(result);
7974
+ }, (error) => {
7975
+ if (completed) return;
7976
+ completed = true;
7977
+ signal.removeEventListener("abort", onAbort);
7978
+ reject(error);
7979
+ });
7980
+ if (signal.aborted) onAbort();
7981
+ });
7982
+ }
7983
+ function combineFlushResults(results) {
7984
+ if (results.length === 1) return results[0];
7985
+ const combined = { committed: results.some((result) => result.committed) };
7986
+ const committed = results.filter((result) => result.committed);
7987
+ if (committed.some((result) => result.pushed === false)) combined.pushed = false;
7988
+ else if (committed.length > 0 && committed.every((result) => result.pushed === true)) combined.pushed = true;
7989
+ if (results.some((result) => result.errored)) combined.errored = true;
7990
+ const reasons = results.flatMap((result) => result.reason ? [result.reason] : []);
7991
+ if (reasons.length > 0) combined.reason = reasons.join("; ");
7992
+ return combined;
7993
+ }
7994
+ async function abortAndSettleGitRoot(gitRoot, reason) {
7995
+ const matching = [...active.values()].filter((flush) => flush.gitRoot === gitRoot);
7996
+ for (const flush of matching) flush.controller.abort(reason);
7997
+ await Promise.allSettled(matching.map((flush) => flush.promise));
7998
+ }
7999
+ function clearActiveFlush(projectRoot, activeFlush, tail) {
8000
+ if (active.get(projectRoot) === activeFlush) active.delete(projectRoot);
8001
+ if (serializers.get(activeFlush.gitRoot) === tail) serializers.delete(activeFlush.gitRoot);
8002
+ }
8003
+ function doBoundedCommit(projectRoot, batch) {
8004
+ return boundStateFlush(doCommit(projectRoot, batch));
8005
+ }
8006
+ function boundStateFlush(operation, timeoutMs = parsePositiveInteger(process.env.OVERDECK_STATE_FLUSH_TIMEOUT_MS, DEFAULT_STATE_FLUSH_TIMEOUT_MS)) {
8007
+ return operation.pipe(Effect.timeout(Duration.millis(timeoutMs)), Effect.catchCause((cause) => {
8008
+ const reason = `state writer timed out after ${timeoutMs / 1e3}s: ${String(Cause.squash(cause))}`;
8009
+ console.warn(`[pan-dir/auto-commit] ${reason}`);
8010
+ return Effect.succeed({
8011
+ committed: false,
8012
+ errored: true,
8013
+ reason
8014
+ });
8015
+ }));
7924
8016
  }
7925
8017
  function doCommit(projectRoot, batch) {
7926
8018
  const gitRoot = batch.repoRoot ?? projectRoot;
@@ -8174,7 +8266,7 @@ function relativizeToRoot(absOrRel, projectRoot) {
8174
8266
  if (absOrRel.startsWith(rootPrefix)) return absOrRel.slice(rootPrefix.length);
8175
8267
  return absOrRel;
8176
8268
  }
8177
- var spawnerLayer, DEFAULT_STATE_PUSH_TIMEOUT_MS, AUTO_COMMIT_EXCLUDED_PATHS, pending, serializer;
8269
+ var spawnerLayer, DEFAULT_STATE_GIT_TIMEOUT_MS, DEFAULT_STATE_PUSH_TIMEOUT_MS, DEFAULT_STATE_FLUSH_TIMEOUT_MS, AUTO_COMMIT_EXCLUDED_PATHS, pending, active, serializers;
8178
8270
  var init_auto_commit = __esmMin((() => {
8179
8271
  init_errors();
8180
8272
  init_projects();
@@ -8182,7 +8274,9 @@ var init_auto_commit = __esmMin((() => {
8182
8274
  init_state_migration_lock();
8183
8275
  init_state_plane();
8184
8276
  spawnerLayer = NodeChildProcessSpawner.layer.pipe(Layer.provide(Layer.mergeAll(NodeFileSystem.layer, NodePath.layer)));
8277
+ DEFAULT_STATE_GIT_TIMEOUT_MS = 3e4;
8185
8278
  DEFAULT_STATE_PUSH_TIMEOUT_MS = 3e4;
8279
+ DEFAULT_STATE_FLUSH_TIMEOUT_MS = 6e4;
8186
8280
  AUTO_COMMIT_EXCLUDED_PATHS = [
8187
8281
  ".pan/kickoff.md",
8188
8282
  ".pan/continue.json",
@@ -8192,7 +8286,8 @@ var init_auto_commit = __esmMin((() => {
8192
8286
  ".claude/skills/"
8193
8287
  ];
8194
8288
  pending = /* @__PURE__ */ new Map();
8195
- serializer = Promise.resolve();
8289
+ active = /* @__PURE__ */ new Map();
8290
+ serializers = /* @__PURE__ */ new Map();
8196
8291
  }));
8197
8292
  //#endregion
8198
8293
  //#region ../../lib/pan-dir/record.ts
@@ -10127,6 +10222,7 @@ function validateRoleFields(role, roleConfig) {
10127
10222
  if (!Number.isInteger(entry.weight) || entry.weight <= 0) throw new Error(`config.yaml: roles.${role}.model[${i}].weight must be a positive integer`);
10128
10223
  }
10129
10224
  }
10225
+ if (roleConfig.autonomousModel !== void 0 && typeof roleConfig.autonomousModel !== "string") throw new Error(`config.yaml: roles.${role}.autonomousModel must be a scalar model reference`);
10130
10226
  if (roleConfig.harness !== void 0 && roleConfig.harness !== "claude-code" && roleConfig.harness !== "ohmypi" && roleConfig.harness !== "codex") throw new Error(`config.yaml: roles.${role}.harness must be claude-code, ohmypi, or codex`);
10131
10227
  if (roleConfig.effort !== void 0 && !ROLE_EFFORTS.includes(roleConfig.effort)) throw new Error(`config.yaml: roles.${role}.effort must be one of ${ROLE_EFFORTS.join(", ")}`);
10132
10228
  if (roleConfig.mode !== void 0 && roleConfig.mode !== "quick" && roleConfig.mode !== "full" && roleConfig.mode !== "none") throw new Error(`config.yaml: roles.${role}.mode must be quick, full, or none`);
@@ -10144,6 +10240,7 @@ function validateRoleModelRefs(config) {
10144
10240
  }
10145
10241
  for (const [role, roleConfig] of Object.entries(config.roles ?? {})) {
10146
10242
  validateRoleFields(role, roleConfig);
10243
+ if (typeof roleConfig.autonomousModel === "string") derefWorkhorse(roleConfig.autonomousModel, config, `roles.${role}.autonomousModel`);
10147
10244
  if (Array.isArray(roleConfig.model)) for (let i = 0; i < roleConfig.model.length; i++) derefWorkhorse(roleConfig.model[i].model, config, `roles.${role}.model[${i}].model`);
10148
10245
  else if (roleConfig.model) {
10149
10246
  const resolvedModel = derefWorkhorse(roleConfig.model, config, `roles.${role}.model`);
@@ -14733,6 +14830,6 @@ var init_config_yaml = __esmMin((() => {
14733
14830
  init_load();
14734
14831
  }));
14735
14832
  //#endregion
14736
- export { MODEL_CAPABILITIES as $, resolveProjectFromIssueSync as $n, getLegacyHome as $r, writeStatusOverride as $t, init_harness_policy as A, getIssuePrefix as An, ARCHIVES_DIR as Ar, init_record as At, init_providers as B, initializeProjectsConfig as Bn, PROJECT_PRDS_ACTIVE_SUBDIR as Br, writeCloseOutDodGate as Bt, init_tier_table as C, createDefaultProjectsConfig as Cn, MergeConflictError as Cr, ensureIssueRecord as Ct, validateTieredExecutionConfig as D, findProjectByTeam as Dn, VcsError as Dr, getIssueRecordPathForWorkspace as Dt, resolveTieredExecutionEnabledForIssue as E, findProjectByPathSync as En, TrackerError as Er, getIssueRecordPath as Et, clearCredentialFileAuthSync as F, getSpecialistPromptOverride as Fn, CONFIG_FILE as Fr, readIssueRecordSync as Ft, init_openai_compatible_proxy as G, loadProjectsConfigSync as Gn, SYNC_SOURCES as Gr, writeRecordDecisionsSync as Gt, qualifyPiModel as H, listProjects as Hn, PROJECT_PRDS_PLANNED_SUBDIR as Hr, writeIssueRecordForWorkspaceSync as Ht, getBuiltInDefaultHarness as I, getSpecialistRetention as In, COSTS_DIR as Ir, readRecordContinueViewSync as It, DEFAULT_ROLES as J, registerProjectSync as Jn, getDocsBudgetStatePath as Jr, writeRecordResumePoint as Jt, defaultBackgroundAiFeatures as K, projects_exports as Kn, TRAEFIK_DIR as Kr, writeRecordHazards as Kt, getKimiAnthropicBaseUrl as L, hasProjects as Ln, LOGS_DIR as Lr, resolveProjectForIssue as Lt, KIMI_PLATFORM_BASE_URL as M, getProjectSwarmHotspots as Mn, CACHE_AGENTS_DIR as Mr, queueIssueRecordCommit as Mt, PROVIDERS as N, getProjectSync as Nn, CACHE_RULES_DIR as Nr, readIssueRecord as Nt, canUseHarnessSync as O, findProjectByTeamSync as On, init_errors as Or, getIssueWorkspacePath as Ot, UnknownModelError as P, getSpecialistConfig as Pn, CLAUDE_DIR as Pr, readIssueRecordForWorkspaceSync as Pt, resolveModel as Q, resolveProjectFromIssue as Qn, getHandoffsDir as Qr, writeRecordTieredExecutionOverrideSync as Qt, getProviderEnvSync as R, hasProjectsSync as Rn, OVERDECK_HOME as Rr, writeAgentHarnessModel as Rt, TieredExecutionConfigError as S, ProjectRenameError as Sn, LinearApiError as Sr, clearRecordFeedbackSync as St, resolveTieredExecutionEnabled as T, findProjectByPath as Tn, TmuxError as Tr, getIssueRecordBasePath as Tt, setupCredentialFileAuthSync as U, listProjectsSync as Un, PROJECT_PRDS_SUBDIR as Ur, writeIssueRecordSync as Ut, piProviderForModel as V, initializeProjectsConfigSync as Vn, PROJECT_PRDS_COMPLETED_SUBDIR as Vr, writeCloseOutDodGateSync as Vt, ensureOpenAICompatibleProxyRunning as W, loadProjectsConfig as Wn, SKILLS_DIR as Wr, writeRecordDecisions as Wt, computeModelOrigin as X, renameProjectSync as Xn, getDocsIndexPath as Xr, writeRecordScopeDriftSync as Xt, DEFAULT_WORKHORSES as Y, renameProject as Yn, getDocsDisableStatePath as Yr, writeRecordResumePointSync as Yt, init_roles as Z, resolveInfraRepo as Zn, getDocsTelemetryPath as Zr, writeRecordTieredExecutionOverride as Zt, getDefaultDocsConfig as _, resolveStateReadHomeSync as _n, ConfigError as _r, appendSessionEntry as _t, getConversationsConfigSync as a, sessionFilePath as ai, init_auto_commit as an, unregisterProject as ar, modelSupportsImagesSync as at, DEFAULT_TIERED_EXECUTION_CONFIG as b, projectKey as bn, GitHubApiError as br, claimIssueOwner as bt, isClaudeCodeChannelsEnabled as c, STATE_BRANCH_PATHS as cn, extractPrefixSync as cr, fnv1a32 as ct, loadConfigNoMigration as d, init_state_plane as dn, parseIssueIdSync as dr, PARENT_MODEL_REF as dt, getOverdeckHome as ei, writeStatusOverrideSync as en, resolveProjectPath as er, MODEL_DEPRECATIONS as et, loadConfigSync as f, isStatePlaneOnlyStatus as fn, resolveBareNumericIdSync as fr, ROLE_EFFORTS as ft, mergeConfigs as g, init_state_read_home as gn, ClaudeCredentialParseError as gr, appendFeedbackEntrySync as gt, jsYaml as h, init_state_migration_lock as hn, CheckpointError as hr, appendFeedbackEntry as ht, getConversationsConfig as i, resolveOhmypiExtensionPath as ii, flushAutoCommits as in, setProjectSwarmPolicySync as ir, init_model_capabilities as it, KIMI_CODING_BASE_URL as j, getProject as jn, BIN_DIR as jr, markRecordPipelineClosedOutSync as jt, canUseModelWithAuthSync as k, findProjectsByRallyProject as kn, AGENTS_DIR as kr, getProjectConfigFromWorkspacePath as kt, isClaudeCodeChannelsMcpEnabled as l, STATE_PLANE_PATHS as ln, init_issue_id as lr, init_percent as lt, init_js_yaml as m, acquireStateMigrationLock as mn, require_dist as mr, RECORD_SCHEMA_VERSION as mt, clearConfigCache as n, isDevMode as ni, deriveProjectRoot as nn, saveProjectsConfigSync as nr, getModelEffortLevelsSync as nt, getGlobalConfigPath as o, queueAutoCommit as on, unregisterProjectSync as or, resolveModelIdSync as ot, updateConversationsConfig as p, isStatePlanePath as pn, resolveIssueIdSync as pr, RECORD_DIRNAME as pt, init_registry as q, registerProject as qn, encodeClaudeProjectDir as qr, writeRecordHazardsSync as qt, getConversationSearchConfigSync as r, packageRoot as ri, flushAllPendingAutoCommits as rn, setProjectAutoMergeDefaultSync as rr, hasModelCapabilitySync as rt, init_load as s, reconcileStatePlaneDrift as sn, extractNumberSync as sr, fmix32 as st, init_config_yaml as t, init_paths as ti, writeStatusOverridesSync as tn, saveProjectsConfig as tr, getModelCapabilitySync as tt, isTldrEnabledSync as u, getMainDivergence as un, normalizeIssueIdSync as ur, COMPLIANCE_MODES as ut, getDefaultTtsDaemonConfig as v, shouldCommitLegacyWorkspaceArtifacts as vn, FsError as vr, appendSessionEntrySync as vt, resolveTieredExecutionBlock as w, extractTeamPrefix as wn, ProcessSpawnError as wr, ensureIssueRecordSync as wt, TIERED_EXECUTION_DIFFICULTIES as x, PROJECTS_CONFIG_FILE as xn, InvalidAgentIdError as xr, clearIssueOwner as xt, mergeTtsDaemonConfigs as y, init_project_key as yn, GitError as yr, buildOwnUri as yt, getProviderForModelSync as z, init_projects as zn, PROJECT_DOCS_SUBDIR as zr, writeAgentHarnessModelSync as zt };
14833
+ export { derefWorkhorse as $, renameProjectSync as $n, getDocsIndexPath as $r, writeRecordScopeDriftSync as $t, canUseHarnessSync as A, findProjectByTeam as An, VcsError as Ar, getIssueRecordPathForWorkspace as At, getProviderEnvSync as B, hasProjects as Bn, LOGS_DIR as Br, resolveProjectForIssue as Bt, TIERED_EXECUTION_DIFFICULTIES as C, projectKey as Cn, GitHubApiError as Cr, claimIssueOwner as Ct, resolveTieredExecutionEnabled as D, extractTeamPrefix as Dn, ProcessSpawnError as Dr, ensureIssueRecordSync as Dt, resolveTieredExecutionBlock as E, createDefaultProjectsConfig as En, MergeConflictError as Er, ensureIssueRecord as Et, PROVIDERS as F, getProjectSwarmHotspots as Fn, CACHE_AGENTS_DIR as Fr, queueIssueRecordCommit as Ft, setupCredentialFileAuthSync as G, listProjects as Gn, PROJECT_PRDS_PLANNED_SUBDIR as Gr, writeIssueRecordForWorkspaceSync as Gt, init_providers as H, init_projects as Hn, PROJECT_DOCS_SUBDIR as Hr, writeAgentHarnessModelSync as Ht, UnknownModelError as I, getProjectSync as In, CACHE_RULES_DIR as Ir, readIssueRecord as It, defaultBackgroundAiFeatures as J, loadProjectsConfigSync as Jn, SYNC_SOURCES as Jr, writeRecordDecisionsSync as Jt, ensureOpenAICompatibleProxyRunning as K, listProjectsSync as Kn, PROJECT_PRDS_SUBDIR as Kr, writeIssueRecordSync as Kt, clearCredentialFileAuthSync as L, getSpecialistConfig as Ln, CLAUDE_DIR as Lr, readIssueRecordForWorkspaceSync as Lt, init_harness_policy as M, findProjectsByRallyProject as Mn, AGENTS_DIR as Mr, getProjectConfigFromWorkspacePath as Mt, KIMI_CODING_BASE_URL as N, getIssuePrefix as Nn, ARCHIVES_DIR as Nr, init_record as Nt, resolveTieredExecutionEnabledForIssue as O, findProjectByPath as On, TmuxError as Or, getIssueRecordBasePath as Ot, KIMI_PLATFORM_BASE_URL as P, getProject as Pn, BIN_DIR as Pr, markRecordPipelineClosedOutSync as Pt, computeModelOrigin as Q, renameProject as Qn, getDocsDisableStatePath as Qr, writeRecordResumePointSync as Qt, getBuiltInDefaultHarness as R, getSpecialistPromptOverride as Rn, CONFIG_FILE as Rr, readIssueRecordSync as Rt, DEFAULT_TIERED_EXECUTION_CONFIG as S, init_project_key as Sn, GitError as Sr, buildOwnUri as St, init_tier_table as T, ProjectRenameError as Tn, LinearApiError as Tr, clearRecordFeedbackSync as Tt, piProviderForModel as U, initializeProjectsConfig as Un, PROJECT_PRDS_ACTIVE_SUBDIR as Ur, writeCloseOutDodGate as Ut, getProviderForModelSync as V, hasProjectsSync as Vn, OVERDECK_HOME as Vr, writeAgentHarnessModel as Vt, qualifyPiModel as W, initializeProjectsConfigSync as Wn, PROJECT_PRDS_COMPLETED_SUBDIR as Wr, writeCloseOutDodGateSync as Wt, DEFAULT_ROLES as X, registerProject as Xn, encodeClaudeProjectDir as Xr, writeRecordHazardsSync as Xt, init_registry as Y, projects_exports as Yn, TRAEFIK_DIR as Yr, writeRecordHazards as Yt, DEFAULT_WORKHORSES as Z, registerProjectSync as Zn, getDocsBudgetStatePath as Zr, writeRecordResumePoint as Zt, getDefaultDocsConfig as _, acquireStateMigrationLock as _n, require_dist as _r, RECORD_SCHEMA_VERSION as _t, getConversationsConfigSync as a, isDevMode as ai, deriveProjectRoot as an, saveProjectsConfigSync as ar, getModelEffortLevelsSync as at, DEFAULT_CONFIG as b, resolveStateReadHomeSync as bn, ConfigError as br, appendSessionEntry as bt, isClaudeCodeChannelsEnabled as c, sessionFilePath as ci, init_auto_commit as cn, unregisterProject as cr, modelSupportsImagesSync as ct, loadConfigNoMigration as d, STATE_BRANCH_PATHS as dn, extractPrefixSync as dr, fnv1a32 as dt, getDocsTelemetryPath as ei, writeRecordTieredExecutionOverride as en, resolveInfraRepo as er, init_roles as et, loadConfigSync as f, STATE_PLANE_PATHS as fn, init_issue_id as fr, init_percent as ft, mergeConfigs as g, isStatePlanePath as gn, resolveIssueIdSync as gr, RECORD_DIRNAME as gt, jsYaml as h, isStatePlaneOnlyStatus as hn, resolveBareNumericIdSync as hr, ROLE_EFFORTS as ht, getConversationsConfig as i, init_paths as ii, writeStatusOverridesSync as in, saveProjectsConfig as ir, getModelCapabilitySync as it, canUseModelWithAuthSync as j, findProjectByTeamSync as jn, init_errors as jr, getIssueWorkspacePath as jt, validateTieredExecutionConfig as k, findProjectByPathSync as kn, TrackerError as kr, getIssueRecordPath as kt, isClaudeCodeChannelsMcpEnabled as l, queueAutoCommit as ln, unregisterProjectSync as lr, resolveModelIdSync as lt, init_js_yaml as m, init_state_plane as mn, parseIssueIdSync as mr, PARENT_MODEL_REF as mt, clearConfigCache as n, getLegacyHome as ni, writeStatusOverride as nn, resolveProjectFromIssueSync as nr, MODEL_CAPABILITIES as nt, getGlobalConfigPath as o, packageRoot as oi, flushAllPendingAutoCommits as on, setProjectAutoMergeDefaultSync as or, hasModelCapabilitySync as ot, updateConversationsConfig as p, getMainDivergence as pn, normalizeIssueIdSync as pr, COMPLIANCE_MODES as pt, init_openai_compatible_proxy as q, loadProjectsConfig as qn, SKILLS_DIR as qr, writeRecordDecisions as qt, getConversationSearchConfigSync as r, getOverdeckHome as ri, writeStatusOverrideSync as rn, resolveProjectPath as rr, MODEL_DEPRECATIONS as rt, init_load as s, resolveOhmypiExtensionPath as si, flushAutoCommits as sn, setProjectSwarmPolicySync as sr, init_model_capabilities as st, init_config_yaml as t, getHandoffsDir as ti, writeRecordTieredExecutionOverrideSync as tn, resolveProjectFromIssue as tr, resolveModel as tt, isTldrEnabledSync as u, reconcileStatePlaneDrift as un, extractNumberSync as ur, fmix32 as ut, getDefaultTtsDaemonConfig as v, init_state_migration_lock as vn, CheckpointError as vr, appendFeedbackEntry as vt, TieredExecutionConfigError as w, PROJECTS_CONFIG_FILE as wn, InvalidAgentIdError as wr, clearIssueOwner as wt, init_defaults as x, shouldCommitLegacyWorkspaceArtifacts as xn, FsError as xr, appendSessionEntrySync as xt, mergeTtsDaemonConfigs as y, init_state_read_home as yn, ClaudeCredentialParseError as yr, appendFeedbackEntrySync as yt, getKimiAnthropicBaseUrl as z, getSpecialistRetention as zn, COSTS_DIR as zr, readRecordContinueViewSync as zt };
14737
14834
 
14738
- //# sourceMappingURL=config-yaml-Ciyp2mYe.js.map
14835
+ //# sourceMappingURL=config-yaml-ig8Nwtiw.js.map
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
2
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
3
- import { c as init_review_status, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-CCgPVK1h.js";
4
- import { L as messageAgent, Z as spawnRun, s as init_agents } from "./queries-B5hl7lMQ.js";
3
+ import { c as init_review_status, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-DFRjDFef.js";
4
+ import { L as messageAgent, Z as spawnRun, s as init_agents } from "./queries-ZABd5aXP.js";
5
5
  import { exec } from "node:child_process";
6
6
  import { promisify } from "node:util";
7
7
  //#region ../../lib/cloister/conflict-gate.ts
@@ -230,4 +230,4 @@ var init_conflict_gate = __esmMin((() => {
230
230
  //#endregion
231
231
  export { resolveConflictGate as a, init_conflict_gate as i, checkBranchMergeability as n, getCachedConflictGateMergeability as r, buildRealConflictGateDeps as t };
232
232
 
233
- //# sourceMappingURL=conflict-gate-BLUNMs1i.js.map
233
+ //# sourceMappingURL=conflict-gate-CFqPVxEg.js.map
@@ -1,3 +1,3 @@
1
- import { a as resolveConflictGate, i as init_conflict_gate, t as buildRealConflictGateDeps } from "./conflict-gate-BLUNMs1i.js";
1
+ import { a as resolveConflictGate, i as init_conflict_gate, t as buildRealConflictGateDeps } from "./conflict-gate-CFqPVxEg.js";
2
2
  init_conflict_gate();
3
3
  export { buildRealConflictGateDeps, resolveConflictGate };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Or as init_errors, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
3
- import { o as init_layers } from "./layers-cZx7ibtV.js";
2
+ import { ii as init_paths, jr as init_errors } from "./config-yaml-ig8Nwtiw.js";
3
+ import { o as init_layers } from "./layers-Cp1To4L8.js";
4
4
  import "effect";
5
5
  import "fs";
6
6
  import "path";
@@ -162,4 +162,4 @@ var init_context_layers = __esmMin((() => {
162
162
  //#endregion
163
163
  export { init_render as a, KNOWN_HARNESS_MARKERS as c, validateTemplate as d, hasManagedRegion as i, init_harness as l, REGION_BEGIN as n, userContentOutsideRegion as o, REGION_END as r, HARNESS_MARKERS as s, init_context_layers as t, renderForHarness as u };
164
164
 
165
- //# sourceMappingURL=context-layers-Cg9ZgVfx.js.map
165
+ //# sourceMappingURL=context-layers-15gDOk20.js.map
@@ -1,4 +1,4 @@
1
- import { l as piGlobalContextFile, n as codexGlobalContextFile } from "./layers-cZx7ibtV.js";
2
- import { t as init_context_layers } from "./context-layers-Cg9ZgVfx.js";
1
+ import { l as piGlobalContextFile, n as codexGlobalContextFile } from "./layers-Cp1To4L8.js";
2
+ import { t as init_context_layers } from "./context-layers-15gDOk20.js";
3
3
  init_context_layers();
4
4
  export { codexGlobalContextFile, piGlobalContextFile };
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Gn as loadProjectsConfigSync, Nn as getProjectSync, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
3
- import { _ as integer, a as EventBus, d as getOverdeckDatabaseSync, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-DN2wSxle.js";
4
- import { n as init_issues, t as IssueId } from "./issues-XYtFMxrH.js";
2
+ import { Hn as init_projects, In as getProjectSync, Jn as loadProjectsConfigSync } from "./config-yaml-ig8Nwtiw.js";
3
+ import { _ as integer, a as EventBus, d as getOverdeckDatabaseSync, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-D4iNWMA5.js";
4
+ import { n as init_issues, t as IssueId } from "./issues-pDW9VUNz.js";
5
5
  import { Context, Effect, Layer, Schema } from "effect";
6
6
  import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
7
7
  //#region ../../lib/overdeck/control-settings.ts
@@ -403,4 +403,4 @@ var init_control_settings = __esmMin((() => {
403
403
  //#endregion
404
404
  export { setMergeTrainEnabled as C, setFlywheelRequireUatBeforeMerge as S, stampBootReconciliation as T, setDeaconGloballyPaused as _, getFlywheelActiveRunIdSync as a, setFlywheelAutoPickupBacklog as b, isCloisterSpawnsPausedSync as c, isFlywheelAutoPickupBacklog as d, isFlywheelGloballyPaused as f, setCloisterSpawnsPausedSync as g, setBootReconciliationDecision as h, getFlywheelActiveRunId as i, isDeaconGloballyPaused as l, isMergeTrainEnabled as m, FLYWHEEL_GLOBAL_PAUSE_KEY as n, getSetting as o, isFlywheelRequireUatBeforeMerge as p, getBootReconciliationState as r, init_control_settings as s, FLYWHEEL_ACTIVE_RUN_ID_KEY as t, isDeaconGloballyPausedSync as u, setDeaconGloballyPausedSync as v, setSetting as w, setFlywheelGloballyPaused as x, setFlywheelActiveRunId as y };
405
405
 
406
- //# sourceMappingURL=control-settings-D_79A6gp.js.map
406
+ //# sourceMappingURL=control-settings-D_odMIaC.js.map
@@ -1,11 +1,11 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-Ciyp2mYe.js";
3
- import { a as init_event_store, n as getEventStore } from "./event-store-BVnON3vf.js";
4
- import { Ht as getAgentRuntimeBaseCommand, s as init_agents, sn as getProviderExportsForModel } from "./queries-B5hl7lMQ.js";
5
- import { n as isBackgroundFeatureEnabled, t as init_features } from "./features--fOza5g5.js";
6
- import { t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-DQybSPUK.js";
7
- import { r as init_smart_compaction, t as generateSmartSummary } from "./smart-compaction--Oj65Uov.js";
8
- import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-f3DpgjXh.js";
2
+ import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-ig8Nwtiw.js";
3
+ import { a as init_event_store, n as getEventStore } from "./event-store-TnWdydfB.js";
4
+ import { Ht as getAgentRuntimeBaseCommand, s as init_agents, sn as getProviderExportsForModel } from "./queries-ZABd5aXP.js";
5
+ import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-Bc-Bmiye.js";
6
+ import { t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-C3avRVEr.js";
7
+ import { r as init_smart_compaction, t as generateSmartSummary } from "./smart-compaction-CLZOWin1.js";
8
+ import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-bX6ax6X7.js";
9
9
  import { dirname, join } from "node:path";
10
10
  import { Effect } from "effect";
11
11
  import { existsSync } from "node:fs";
@@ -179,4 +179,4 @@ var init_conversation_compaction = __esmMin((() => {
179
179
  //#endregion
180
180
  export { init_conversation_compaction as a, shouldInterceptManualCompact as c, getConversationCompactionSettings as i, compactConversationNative as n, isCompacting as o, estimateContextTokens as r, maybeCompactBeforeRespawn as s, buildCompactionRuntimeInfo as t };
181
181
 
182
- //# sourceMappingURL=conversation-compaction-DiuZbIUB.js.map
182
+ //# sourceMappingURL=conversation-compaction-B6YSRLda.js.map
@@ -1,3 +1,3 @@
1
- import { a as init_conversation_compaction, c as shouldInterceptManualCompact, i as getConversationCompactionSettings, n as compactConversationNative, o as isCompacting, r as estimateContextTokens, s as maybeCompactBeforeRespawn, t as buildCompactionRuntimeInfo } from "./conversation-compaction-DiuZbIUB.js";
1
+ import { a as init_conversation_compaction, c as shouldInterceptManualCompact, i as getConversationCompactionSettings, n as compactConversationNative, o as isCompacting, r as estimateContextTokens, s as maybeCompactBeforeRespawn, t as buildCompactionRuntimeInfo } from "./conversation-compaction-B6YSRLda.js";
2
2
  init_conversation_compaction();
3
3
  export { buildCompactionRuntimeInfo, compactConversationNative, estimateContextTokens, getConversationCompactionSettings, isCompacting, maybeCompactBeforeRespawn, shouldInterceptManualCompact };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $ as MODEL_CAPABILITIES, it as init_model_capabilities, ot as resolveModelIdSync, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
3
- import { a as getHarnessBehavior } from "./src-Dpq1yFIl.js";
4
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-Drm7qeD5.js";
5
- import { r as parseCodexSessionSync, t as init_codex_parser } from "./codex-parser-BTzlOZiV.js";
6
- import { t as init_behavior } from "./behavior-Dg-D8eBG.js";
2
+ import { ii as init_paths, lt as resolveModelIdSync, nt as MODEL_CAPABILITIES, st as init_model_capabilities } from "./config-yaml-ig8Nwtiw.js";
3
+ import { o as getHarnessBehavior } from "./src-k039WVYY.js";
4
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-Codk1pc2.js";
5
+ import { r as parseCodexSessionSync, t as init_codex_parser } from "./codex-parser-jl8AeAmB.js";
6
+ import { t as init_behavior } from "./behavior-CGj16clS.js";
7
7
  import "node:path";
8
8
  import "node:os";
9
9
  import { open, readFile, stat, watch } from "node:fs/promises";
@@ -1751,4 +1751,4 @@ var init_conversation_service = __esmMin((() => {
1751
1751
  //#endregion
1752
1752
  export { init_codex_conversation_parser as _, contextUsageFromParseResult as a, parseEntireConversation as c, init_pi_conversation_parser as d, isPiSessionFile as f, parseOhmypiConversationMessages as g, isOhmypiSessionFile as h, computeContextUsage as i, parseFromLastCompactBoundary as l, init_ohmypi_conversation_parser as m, gateSnapshotEmission as n, summarizeConversationActivity as o, parsePiConversationMessages as p, watchConversation as r, parseConversationMessages as s, init_conversation_service as t, findLastCompactBoundary as u, parseCodexConversationMessages as v };
1753
1753
 
1754
- //# sourceMappingURL=conversation-service-DQybSPUK.js.map
1754
+ //# sourceMappingURL=conversation-service-C3avRVEr.js.map
@@ -1,3 +1,3 @@
1
- import { i as computeContextUsage, t as init_conversation_service } from "./conversation-service-DQybSPUK.js";
1
+ import { i as computeContextUsage, t as init_conversation_service } from "./conversation-service-C3avRVEr.js";
2
2
  init_conversation_service();
3
3
  export { computeContextUsage };
@@ -1,3 +1,3 @@
1
- import { M as listConversations, k as init_conversations } from "./conversations-BUgGvqVL.js";
1
+ import { M as listConversations, k as init_conversations } from "./conversations-bYpM9-kZ.js";
2
2
  init_conversations();
3
3
  export { listConversations };
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { ei as getOverdeckHome, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
3
- import { T as isNull, _ as integer, a as EventBus, b as and, d as getOverdeckDatabaseSync, f as init_infra, g as real, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, w as isNotNull, x as eq } from "./infra-DN2wSxle.js";
4
- import { a as init_event_store, n as getEventStore } from "./event-store-BVnON3vf.js";
2
+ import { ii as init_paths, ri as getOverdeckHome } from "./config-yaml-ig8Nwtiw.js";
3
+ import { T as isNull, _ as integer, a as EventBus, b as and, d as getOverdeckDatabaseSync, f as init_infra, g as real, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, w as isNotNull, x as eq } from "./infra-D4iNWMA5.js";
4
+ import { a as init_event_store, n as getEventStore } from "./event-store-TnWdydfB.js";
5
5
  import { join } from "node:path";
6
6
  import { Context, Effect, Layer, Schema, Stream } from "effect";
7
7
  import { readFileSync } from "node:fs";
@@ -1585,4 +1585,4 @@ var init_conversations = __esmMin((() => {
1585
1585
  //#endregion
1586
1586
  export { updateConversationForkFallbackReason as $, isAgentConversationName as A, removeFavorite as B, getConversationByTmuxSession as C, searchFtsSessions as Ct, importLegacyConversation as D, hasOtherActiveConversationOnTmuxSession as E, upsertDiscoveredSession as Et, markConversationEnded as F, setConversationHarness as G, setClearedToConvId as H, markConversationRunning as I, setForkRequest as J, setConversationModel as K, normalizeHarness as L, listConversations as M, listFavoritedIds as N, incrementForkRetryCount as O, markConversationActive as P, updateConversationDeliveryMethod as Q, reactivateConversationForSpawn as R, getConversationByName as S, markEnrichmentFailed as St, getStuckForks as T, updateEnrichment as Tt, setConversationClaudeSessionId as U, resolveLiveSessionId as V, setConversationEffort as W, unarchiveConversation as X, setImportedConversationLinks as Y, updateConversationCost as Z, canRefineTitle as _, getDiscoveredStats as _t, ConversationName as a, aggregateDiscoveredSessionCost as at, getConversationByClaudeSessionId as b, insertEmbedding as bt, ConversationsResolver as c, countDiscoveredSessions as ct, TitleSource as d, findDiscoveredSessionIds as dt, updateConversationTitle as et, Transcript as f, findDiscoveredSessions as ft, backfillConversationModel as g, getDiscoveredSessionBySessionId as gt, archiveConversation as h, getDiscoveredSessionByJsonlPath as ht, ConversationId as i, findConversationForCostSessionSync as it, listArchivedConversationsWithEnrichment as j, init_conversations as k, Harness as l, countFtsSessions as lt, TranscriptsWriter as m, getDiscoveredSessionById as mt, BackingFile as n, updateLastAttached as nt, ConversationNotFound as o, aggregateDiscoveredSessionCostBy as ot, TranscriptsResolver as p, findEnrichedSessionIdsMissingEmbedding as pt, setFavorite as q, Conversation as r, updateSpawnError as rt, ConversationWriter as s, buildFilterSql as st, AlreadyArchived as t, updateForkStatus as tt, NotArchived as u, ensureDiscoveredSessionsSchema as ut, canReplaceTitle as v, getEmbedding as vt, getConversationLedgerCosts as w, topKCosine as wt, getConversationById as x, loadEmbeddings as xt, createConversation as y, init_discovered_sessions as yt, recordConversationHandoff as z };
1587
1587
 
1588
- //# sourceMappingURL=conversations-BUgGvqVL.js.map
1588
+ //# sourceMappingURL=conversations-bYpM9-kZ.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Ir as COSTS_DIR, Or as init_errors, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
2
+ import { ii as init_paths, jr as init_errors, zr as COSTS_DIR } from "./config-yaml-ig8Nwtiw.js";
3
3
  import "effect";
4
4
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -464,4 +464,4 @@ var init_cost = __esmMin((() => {
464
464
  //#endregion
465
465
  export { getAllBudgetsSync as a, deleteBudgetSync as i, checkBudgetSync as n, getPricingSync as o, createBudgetSync as r, init_cost as s, calculateCostSync as t };
466
466
 
467
- //# sourceMappingURL=cost-Drm7qeD5.js.map
467
+ //# sourceMappingURL=cost-Codk1pc2.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { ei as getOverdeckHome, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
3
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DN2wSxle.js";
2
+ import { ii as init_paths, ri as getOverdeckHome } from "./config-yaml-ig8Nwtiw.js";
3
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-D4iNWMA5.js";
4
4
  import { join } from "path";
5
5
  import { appendFile, mkdir } from "fs/promises";
6
6
  //#region ../../lib/agents/tier-metrics.ts
@@ -398,4 +398,4 @@ var init_cost_sync = __esmMin((() => {
398
398
  //#endregion
399
399
  export { init_tier_metrics as _, getCostForIssueAggregateSync as a, getDailyTrendsSync as c, init_cost_sync as d, insertCostEventSync as f, estimateFeedDeliveryTokens as g, deriveTieredAgentCostRole as h, getCostBreakdownByStageAndModelSync as i, getModelRollupSync as l, queryMemoryExtractionCostUsdSync as m, getBackgroundCostBySourceSync as n, getCostForIssueSync as o, queryCostEventsSync as p, getCavemanExperimentDataSync as r, getCostsByIssueSync as s, getAgentDailyCostSync as t, getTodayCostSync as u, recordTierFeedDelivery as v };
400
400
 
401
- //# sourceMappingURL=cost-sync-DzHP6zaR.js.map
401
+ //# sourceMappingURL=cost-sync-D_cre6WM.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { o as getPricingSync, s as init_cost$1, t as calculateCostSync } from "./cost-Drm7qeD5.js";
3
- import { i as init_events, t as appendCostEventSync } from "./events-CmERlnwn.js";
2
+ import { o as getPricingSync, s as init_cost$1, t as calculateCostSync } from "./cost-Codk1pc2.js";
3
+ import { i as init_events, t as appendCostEventSync } from "./events-DSUdR-04.js";
4
4
  //#region ../../lib/background-ai/cost.ts
5
5
  /** The cost-source tag prefix used for every background AI event. */
6
6
  function backgroundCostSource(feature) {
@@ -52,4 +52,4 @@ var init_cost = __esmMin((() => {
52
52
  //#endregion
53
53
  export { recordBackgroundAiCost as n, init_cost as t };
54
54
 
55
- //# sourceMappingURL=cost-jJ2cgDcG.js.map
55
+ //# sourceMappingURL=cost-wH46-WsJ.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { o as init_io, v as init_types, y as subItemsOf } from "./io-BiM-7Zsx.js";
2
+ import { o as init_io, v as init_types, y as subItemsOf } from "./io-DQR9PMgS.js";
3
3
  import { Data } from "effect";
4
4
  import "fs/promises";
5
5
  //#region ../../lib/vbrief/dag.ts
@@ -379,4 +379,4 @@ var init_dag = __esmMin((() => {
379
379
  //#endregion
380
380
  export { criticalPath as a, hasFileOverlap as c, createActiveSlice as i, init_dag as l, blockingParentCount as n, getDispatchableItems as o, compileGlob as r, groupItemsByWave as s, actionableDoc as t };
381
381
 
382
- //# sourceMappingURL=dag-DIji6O2b.js.map
382
+ //# sourceMappingURL=dag-CJpgf9A3.js.map
@@ -108,4 +108,4 @@ const runGitResetHard = (opts) => Effect.tryPromise({
108
108
  //#endregion
109
109
  export { runGitResetHard };
110
110
 
111
- //# sourceMappingURL=dangerous-git-ops-BebB-61h.js.map
111
+ //# sourceMappingURL=dangerous-git-ops-D6AF-Hg_.js.map
@@ -1,7 +1,7 @@
1
- import { S as getConversationByName, _t as getDiscoveredStats, at as aggregateDiscoveredSessionCost, ct as countDiscoveredSessions, ft as findDiscoveredSessions, k as init_conversations, mt as getDiscoveredSessionById, ot as aggregateDiscoveredSessionCostBy, yt as init_discovered_sessions } from "./conversations-BUgGvqVL.js";
2
- import { o as getSetting, s as init_control_settings, w as setSetting } from "./control-settings-D_79A6gp.js";
3
- import { a as enrichSessions, c as searchSessions, i as CostThresholdError, n as getSessionsFeedFacets, o as embedSessions, r as listSessionsFeed, t as scan } from "./scanner-C4NeC4FE.js";
4
- import { t as listSubstrateBugWeights } from "./substrate-bug-weights-service-DXd0ID83.js";
1
+ import { S as getConversationByName, _t as getDiscoveredStats, at as aggregateDiscoveredSessionCost, ct as countDiscoveredSessions, ft as findDiscoveredSessions, k as init_conversations, mt as getDiscoveredSessionById, ot as aggregateDiscoveredSessionCostBy, yt as init_discovered_sessions } from "./conversations-bYpM9-kZ.js";
2
+ import { o as getSetting, s as init_control_settings, w as setSetting } from "./control-settings-D_odMIaC.js";
3
+ import { a as enrichSessions, c as searchSessions, i as CostThresholdError, n as getSessionsFeedFacets, o as embedSessions, r as listSessionsFeed, t as scan } from "./scanner-Br0Z5S6R.js";
4
+ import { t as listSubstrateBugWeights } from "./substrate-bug-weights-service-CpIZILj9.js";
5
5
  import { parentPort } from "node:worker_threads";
6
6
  //#region services/dashboard-db-worker.ts
7
7
  init_discovered_sessions();
@@ -67,15 +67,15 @@ async function runJob(id, operation, payload) {
67
67
  });
68
68
  }
69
69
  case "getArtifactBySlug": {
70
- const { getArtifactBySlugJob } = await import("./artifact-index-jobs-BOoySTKD.js");
70
+ const { getArtifactBySlugJob } = await import("./artifact-index-jobs-CDBFL4OU.js");
71
71
  return getArtifactBySlugJob(payload);
72
72
  }
73
73
  case "listArtifactsForWorkspaceOrIssue": {
74
- const { listArtifactsForWorkspaceOrIssueJob } = await import("./artifact-index-jobs-BOoySTKD.js");
74
+ const { listArtifactsForWorkspaceOrIssueJob } = await import("./artifact-index-jobs-CDBFL4OU.js");
75
75
  return listArtifactsForWorkspaceOrIssueJob(payload);
76
76
  }
77
77
  case "unshareArtifactBySlug": {
78
- const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-BOoySTKD.js");
78
+ const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-CDBFL4OU.js");
79
79
  return unshareArtifactBySlugJob(payload);
80
80
  }
81
81
  }
@@ -1,4 +1,4 @@
1
- import "./config-yaml-Ciyp2mYe.js";
2
- import { E as handleAgentStoppedForOrphanReviewerSessions, T as handleAgentStoppedEvent, ft as handleReviewCoordinatorDied, pt as handleWorkCompleted, w as handleAgentHeartbeatDeadEvent } from "./deacon-1s7bM5zn.js";
3
- import "./deacon-swarm-DmA3rJ7k.js";
1
+ import "./config-yaml-ig8Nwtiw.js";
2
+ import { E as handleAgentStoppedForOrphanReviewerSessions, T as handleAgentStoppedEvent, mt as handleWorkCompleted, pt as handleReviewCoordinatorDied, w as handleAgentHeartbeatDeadEvent } from "./deacon-CkT_kznS.js";
3
+ import "./deacon-swarm-BryRr6AO.js";
4
4
  export { handleAgentHeartbeatDeadEvent, handleAgentStoppedEvent, handleAgentStoppedForOrphanReviewerSessions, handleReviewCoordinatorDied, handleWorkCompleted };