@overdeck/desktop 0.45.22 → 0.45.24

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 (429) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +2 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-BH7ac_1G.js → acceptance-criteria-DDCnXF58.js} +5 -5
  4. package/server/{advancing-selfheal-cSvXNZLZ.js → advancing-selfheal-BVwW4qRn.js} +6 -6
  5. package/server/{agent-gc-Dj2gncak.js → agent-gc-CHcnvonI.js} +4 -4
  6. package/server/agent-state-Bc3tzUC8.js +3 -0
  7. package/server/{agent-state-service-DistflNn.js → agent-state-service-BsgWxZuB.js} +5 -5
  8. package/server/{agent-state-service-CsQ07Pxe.js → agent-state-service-D5UGKIJL.js} +1 -1
  9. package/server/{agents-DXdHmRTC.js → agents-EbI0zCJl.js} +4 -4
  10. package/server/agents-wi9NWzs2.js +3 -0
  11. package/server/{archive-planning-Cp_DC1j-.js → archive-planning-BZDgzoEj.js} +1 -1
  12. package/server/{archive-planning-BvDuWNMo.js → archive-planning-Du25Jtst.js} +30 -6
  13. package/server/{artifact-index-jobs-CDBFL4OU.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
  14. package/server/assemble-J2ZZ2C15.js +339 -0
  15. package/server/{backlog-auto-trigger-DmA1IbYf.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
  16. package/server/{behavior-CGj16clS.js → behavior-B3exJ42O.js} +2 -2
  17. package/server/{briefing-freshness-C12WgkaB.js → briefing-freshness-D1wzUIWv.js} +2 -2
  18. package/server/{build-info-BRpqQvNd.js → build-info-CZk_TITh.js} +1 -1
  19. package/server/{build-info-NU3KbXYw.js → build-info-Ie_D0_BT.js} +3 -3
  20. package/server/{checkpoint-manager-CTPjAmtH.js → checkpoint-manager-BI1Wxoku.js} +2 -2
  21. package/server/{checkpoint-manager-rOgT98WY.js → checkpoint-manager-DwbQoqrC.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-B5jFNi2G.js → checkpoints-BJIs5QIA.js} +1 -1
  24. package/server/{checkpoints-BJum14fs.js → checkpoints-CQB1h765.js} +2 -2
  25. package/server/{claude-hooks-provision-BhwWK-TQ.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
  26. package/server/{claude-hooks-provision-D7p5WcKZ.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
  27. package/server/{claude-permissions-nSFKH78M.js → claude-permissions-DNWEVV6z.js} +2 -2
  28. package/server/{claude-settings-overlay-BI_UIke0.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
  29. package/server/{claude-settings-overlay-DHBwjS1X.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
  30. package/server/cli-B86rejVV.js +3 -0
  31. package/server/{cli-CbKNkFE5.js → cli-RoOx5DUf.js} +9 -9
  32. package/server/{cliproxy-Brf_5MuG.js → cliproxy-C8a1vtTU.js} +2 -2
  33. package/server/{cliproxy-bONZDBbC.js → cliproxy-fHfIeiGd.js} +1 -1
  34. package/server/{close-issue-CxReRxIc.js → close-issue-DoOifFIK.js} +5 -5
  35. package/server/{closed-issue-reaper-CQ3kqha7.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
  36. package/server/{closed-issue-reaper-DXP2Xyv3.js → closed-issue-reaper-CktPXo8m.js} +1 -1
  37. package/server/{codex-CbmztVcc.js → codex-BZXGhUVB.js} +27 -8
  38. package/server/codex-GcHuUF-k.js +3 -0
  39. package/server/{codex-parser-jl8AeAmB.js → codex-parser-CFZ1_1Jl.js} +2 -2
  40. package/server/{config-q4Gvd8dq.js → config-BZ0sHTju.js} +2 -2
  41. package/server/{config-DeTsoZdR.js → config-CKxYiCmX.js} +2 -2
  42. package/server/{config-BJKocXKd.js → config-DzV30TOm.js} +1 -1
  43. package/server/{config-yaml-ig8Nwtiw.js → config-yaml-DySPNmKN.js} +77 -194
  44. package/server/{conflict-gate-CFqPVxEg.js → conflict-gate-BaCVrH-N.js} +3 -3
  45. package/server/{conflict-gate-CHU9K1vU.js → conflict-gate-BhAY7TUd.js} +1 -1
  46. package/server/context-layers-BrPmE__h.js +4 -0
  47. package/server/context-layers-igZ4FI4_.js +37 -0
  48. package/server/{control-settings-D_odMIaC.js → control-settings-BQp7_4uD.js} +4 -4
  49. package/server/{conversation-compaction-B6YSRLda.js → conversation-compaction-CgrR8YYp.js} +8 -8
  50. package/server/{conversation-compaction-CN4-5YYt.js → conversation-compaction-eQB5CkOe.js} +1 -1
  51. package/server/{conversation-service-Dq33SYEj.js → conversation-service-BLd3MYsG.js} +1 -1
  52. package/server/{conversation-service-C3avRVEr.js → conversation-service-DPJ71F33.js} +329 -19
  53. package/server/{conversations-bYpM9-kZ.js → conversations-6AfUfbwc.js} +5 -5
  54. package/server/{conversations-H9if0bCQ.js → conversations-CAsJF9kh.js} +1 -1
  55. package/server/{cost-Codk1pc2.js → cost-B2ddP6wq.js} +18 -2
  56. package/server/{cost-wH46-WsJ.js → cost-R-m6Yi-W.js} +3 -3
  57. package/server/{cost-sync-D_cre6WM.js → cost-sync-BsN6ER0n.js} +3 -3
  58. package/server/{dag-CJpgf9A3.js → dag-B1ucnjDU.js} +9 -9
  59. package/server/{dangerous-git-ops-D6AF-Hg_.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
  60. package/server/dashboard-db-worker.js +7 -7
  61. package/server/{deacon-CkT_kznS.js → deacon-CU_cAYSR.js} +406 -607
  62. package/server/{deacon-B8HbQdqU.js → deacon-kiQrb4ZT.js} +3 -3
  63. package/server/{deacon-nudge-log-D6K9K-rE.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
  64. package/server/{deacon-swarm-BryRr6AO.js → deacon-swarm-BXZZ1Z2-.js} +17 -17
  65. package/server/deacon-swarm-C-GwfjJy.js +2 -0
  66. package/server/deacon.js +8 -8
  67. package/server/{deploy-patrol-1IrZxicY.js → deploy-patrol-AiFoP8dw.js} +136 -19
  68. package/server/{deploy-window-wDf4UgHt.js → deploy-window-C3F-tihF.js} +77 -10
  69. package/server/{deploy-window-7ZYHh7Zp.js → deploy-window-DkZraDyj.js} +1 -1
  70. package/server/{dev-supervisor-C7p9kEpc.js → dev-supervisor-bcOWqdQE.js} +2 -2
  71. package/server/{devcontainer-renderer-CNmQy0pL.js → devcontainer-renderer-_d6XhyND.js} +3 -3
  72. package/server/dist-Bzy0y69j.js +3 -0
  73. package/server/{dist-D-Ed5yVw.js → dist-Cb_0uvpS.js} +1 -1
  74. package/server/{docker-BCZ89M9X.js → docker-DcMTFTUC.js} +2 -2
  75. package/server/{dod-DbJLYcHv.js → dod-C6n9RV3G.js} +1 -1
  76. package/server/{ensure-devcontainer-Cs6W9Yzj.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
  77. package/server/{ensure-devcontainer-V5JWaAva.js → ensure-devcontainer-DNi-ono3.js} +4 -4
  78. package/server/{esm-shims-dTeNdq7X.js → esm-shims-OSHAYaS1.js} +1 -1
  79. package/server/{event-store-TnWdydfB.js → event-store-CQL6NeqB.js} +3 -3
  80. package/server/{event-store-CpBGsO6_.js → event-store-EV2cMiXj.js} +1 -1
  81. package/server/{events-Dsuv6qyB.js → events-BTdrdEq8.js} +1 -1
  82. package/server/{events-DSUdR-04.js → events-DTfAe4My.js} +3 -3
  83. package/server/{factory-BMrK4TrE.js → factory-CFibJuaw.js} +50 -13
  84. package/server/{feature-registry-population-B-CI9hgE.js → feature-registry-population-DKZFMbFt.js} +4 -4
  85. package/server/{feature-registry-storage-B972ph_A.js → feature-registry-storage-BdPuLcBX.js} +2 -2
  86. package/server/{features-Bc-Bmiye.js → features-ez2271oH.js} +2 -2
  87. package/server/{feedback-target-DZ-iAnAa.js → feedback-target-7mqqwrX6.js} +7 -7
  88. package/server/{feedback-target-DS6NUuSs.js → feedback-target-CoFDHiM8.js} +1 -1
  89. package/server/{feedback-writer-BXP6g75N.js → feedback-writer-CY5L1lB7.js} +6 -5
  90. package/server/{feedback-writer-Bx5z11mF.js → feedback-writer-D3a22RCd.js} +1 -1
  91. package/server/flywheel-DHrgCphM.js +1084 -0
  92. package/server/flywheel-DzGtWnJ1.js +477 -0
  93. package/server/flywheel-SVF02Jpq.js +2 -0
  94. package/server/{flywheel-merge-order-CTgHeg-W.js → flywheel-merge-order-UU0tiUld.js} +10 -9
  95. package/server/{flywheel-merge-order-CNKAY489.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
  96. package/server/{forge-B1S_KZv4.js → forge-CNFnyqps.js} +2 -2
  97. package/server/forge-DXnS_YFH.js +2 -0
  98. package/server/{from-DpwQ-sc3.js → from-kNxT0bZC.js} +1 -1
  99. package/server/{fts-db-DmAcuCkV.js → fts-db-CE46vDkZ.js} +2 -2
  100. package/server/{fts-operations-7d_RkmWp.js → fts-operations-CqY6zl-i.js} +2 -2
  101. package/server/{git-utils-Cc3FHDKd.js → git-utils-CRw2zLPC.js} +68 -3
  102. package/server/git-utils-D0_yhCgF.js +3 -0
  103. package/server/{github-app-CDPtGF7J.js → github-app-C3QrAUd0.js} +27 -8
  104. package/server/{github-app-CU14oYzP.js → github-app-ClZ2lk8D.js} +1 -1
  105. package/server/{github-client-XjTJbBm7.js → github-client-BnIsSrEN.js} +2 -2
  106. package/server/{github-client-CwBZZ3t7.js → github-client-DfQYVUaw.js} +1 -1
  107. package/server/{github-pr-lookup-CFGeVhqv.js → github-pr-lookup-D16NGsSO.js} +2 -2
  108. package/server/{harness-binary-B2CTcD84.js → harness-binary-DPUi-Pv8.js} +32 -6
  109. package/server/{harness-resolve-D5FVQTmy.js → harness-resolve-3lNZkyT4.js} +18 -9
  110. package/server/{health-events-DREeevle.js → health-events-BBcTYQKU.js} +2 -2
  111. package/server/{health-events-C1whmd58.js → health-events-BDOHby5Q.js} +1 -1
  112. package/server/{hooks-yxRsjk-z.js → hooks-CKZgXlJb.js} +2 -2
  113. package/server/{hooks-B-HItBiS.js → hooks-DPVX1rwQ.js} +1 -1
  114. package/server/{hume-Dz_OymXE.js → hume-Cz8igP9E.js} +2 -2
  115. package/server/hume-ccTf4wTX.js +3 -0
  116. package/server/{idle-stack-reaper-DrCv0OAG.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
  117. package/server/{idle-stack-reaper-Yf34xXxY.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
  118. package/server/{in-flight-guard-BoWm66Kh.js → in-flight-guard-CAAkqPLu.js} +2 -2
  119. package/server/{infra-D4iNWMA5.js → infra-BEqFxlJc.js} +14 -4
  120. package/server/{injection-D7T75Pye.js → injection-C8aiVJrF.js} +191 -183
  121. package/server/{injection-BVNa4MQW.js → injection-CPUIqNhI.js} +1 -1
  122. package/server/{inspect-agent-BXCgNeZ4.js → inspect-agent-BLuJ1AkT.js} +137 -81
  123. package/server/inspect-agent-Brtz0URj.js +2 -0
  124. package/server/{internal-token-C9DdEOKY.js → internal-token-BrcU6qfe.js} +1 -1
  125. package/server/{internal-token-CXsfxslp.js → internal-token-s0-oKybJ.js} +2 -2
  126. package/server/{io-DQR9PMgS.js → io-C9kF1wtJ.js} +160 -184
  127. package/server/{issue-closed-DtmJM0D0.js → issue-closed-CDJk4pIp.js} +7 -7
  128. package/server/{issue-lifecycle-8PSS9Anq.js → issue-lifecycle-B8sZHVHh.js} +1 -1
  129. package/server/{issue-lifecycle-CeyW_HoD.js → issue-lifecycle-ojZAzDBP.js} +22 -22
  130. package/server/{issue-service-singleton-DBZabEl7.js → issue-service-singleton-BvJ09SaR.js} +1 -1
  131. package/server/{issue-service-singleton-D_RVYBuL.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
  132. package/server/{issues-pDW9VUNz.js → issues-BMmP_77e.js} +2 -2
  133. package/server/{jsonl-parser-C3HVNR5d.js → jsonl-parser-BXSlHwEh.js} +3 -3
  134. package/server/{label-cleanup-DPwiZlWo.js → label-cleanup-B0UJwnv5.js} +3 -3
  135. package/server/{label-reconciler-Df1ZduPH.js → label-reconciler-B4iOAjlC.js} +4 -4
  136. package/server/{launcher-generator-COgR2By1.js → launcher-generator-BBWG_SiS.js} +105 -10
  137. package/server/{lifecycle-io-taIb0PoH.js → lifecycle-io-BREGpnLk.js} +37 -37
  138. package/server/lifecycle-io-DPo7x11I.js +3 -0
  139. package/server/{lifecycle-CtPDcZ9u.js → lifecycle-xmBfK2GJ.js} +6 -6
  140. package/server/lifecycle-yPd___5E.js +121 -0
  141. package/server/{linear-client-DsFkIxee.js → linear-client-BsuUvkdA.js} +2 -2
  142. package/server/{linear-client-YwZMDIwQ.js → linear-client-CTskEeT_.js} +1 -1
  143. package/server/memory-fts-worker.js +1 -1
  144. package/server/{merge-BwsyNRJV.js → merge-B1DiziGU.js} +1 -1
  145. package/server/{merge-C1t-bspg.js → merge-CefQNAnq.js} +3 -3
  146. package/server/{merge-agent-DDiIjzk-.js → merge-agent-4WOWlSYA.js} +28 -28
  147. package/server/{merge-agent-B-SnXOoc.js → merge-agent-CKkgIBPB.js} +1 -1
  148. package/server/{merge-batch-Byt-QnEl.js → merge-batch-ClFn2T-y.js} +1 -1
  149. package/server/merge-ops-CR44oU9-.js +2 -0
  150. package/server/{merge-rebase-Cm6fXaZN.js → merge-rebase-BfaTyXsw.js} +2 -2
  151. package/server/merge-set-DJ8-UErs.js +83 -0
  152. package/server/{merge-set-6LEglm6o.js → merge-set-bUqbm3yc.js} +1 -1
  153. package/server/{merge-sync-B95_4in_.js → merge-sync-BJYeOODr.js} +1 -1
  154. package/server/{merge-sync-Do8_q32h.js → merge-sync-VPV28g0g.js} +2 -2
  155. package/server/{merge-train-CKana8EH.js → merge-train-CHopycP0.js} +3 -3
  156. package/server/{merge-train-deps-BgmqwIfA.js → merge-train-deps-D1cOZzy2.js} +4 -4
  157. package/server/{merge-verification-CqnUzGEK.js → merge-verification-BkaOqPsw.js} +4 -4
  158. package/server/{multipart-parser-tdOQDJ3o.js → multipart-parser-duPAfSBw.js} +2 -2
  159. package/server/{no-resume-mode-BWOSZjWd.js → no-resume-mode-Nw29vaFb.js} +11 -8
  160. package/server/node_modules/.package-lock.json +8 -8
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  162. package/server/node_modules/undici/README.md +5 -0
  163. package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
  164. package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
  165. package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
  166. package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
  167. package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
  168. package/server/node_modules/undici/docs/docs/index.md +5 -0
  169. package/server/node_modules/undici/lib/core/request.js +1 -1
  170. package/server/node_modules/undici/lib/core/util.js +6 -1
  171. package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
  172. package/server/node_modules/undici/lib/dispatcher/client-h1.js +31 -6
  173. package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
  174. package/server/node_modules/undici/lib/handler/cache-handler.js +93 -5
  175. package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  176. package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
  177. package/server/node_modules/undici/lib/handler/retry-handler.js +6 -4
  178. package/server/node_modules/undici/lib/interceptor/cache.js +21 -4
  179. package/server/node_modules/undici/lib/interceptor/decompress.js +4 -0
  180. package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  181. package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
  182. package/server/node_modules/undici/lib/util/cache.js +49 -7
  183. package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
  184. package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
  185. package/server/node_modules/undici/package.json +2 -2
  186. package/server/node_modules/undici/types/client.d.ts +2 -2
  187. package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
  188. package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  189. package/server/{orphan-proposed-reconciler-xklgvNA7.js → orphan-proposed-reconciler-BvKkWMJQ.js} +15 -13
  190. package/server/{orphan-proposed-reconciler-DSvsJ5M7.js → orphan-proposed-reconciler-CTSGcK8p.js} +1 -1
  191. package/server/package-lock.json +9 -9
  192. package/server/package.json +1 -1
  193. package/server/{pan-dir-DOcf6ug3.js → pan-dir-B0c3w0Ya.js} +78 -58
  194. package/server/{paths-DooHpt9p.js → paths-D-xWGHdh.js} +2 -2
  195. package/server/{pickup-CaskQ7j6.js → pickup-DUCLWrJY.js} +17 -16
  196. package/server/{pipeline-membership-1LGRjo-k.js → pipeline-membership-mY3GprlK.js} +186 -67
  197. package/server/{pipeline-notifier-CZsrU_nj.js → pipeline-notifier-BJr8gQX6.js} +1 -1
  198. package/server/{pipeline-notifier-B6FVsYF9.js → pipeline-notifier-BXkJzDC4.js} +2 -2
  199. package/server/{project-pipelines-CtNG_rvs.js → project-pipelines-C0MWUeCU.js} +2 -2
  200. package/server/project-repos-B6GycDh9.js +94 -0
  201. package/server/project-repos-DXKQsc_m.js +3 -0
  202. package/server/projects-vjjcmiN8.js +3 -0
  203. package/server/{prompts-EvhMeeHG.js → prompts-DxzFXuLl.js} +2 -2
  204. package/server/{providers-BDDPULlp.js → providers-qQAwGQDW.js} +7 -7
  205. package/server/{providers-DNSQqy2V.js → providers-u4Ga0jOr.js} +1 -1
  206. package/server/public/assets/{chunk-BO2N2NFS-sym_ufXe.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
  207. package/server/public/assets/{diagram-OG6HWLK6-CQJPBNBu.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
  208. package/server/public/assets/{dist-DukGS2YZ.js → dist-ByIuzMQW.js} +3 -3
  209. package/server/public/assets/{dist-Bio7THQU.js → dist-D7zYSEA6.js} +1 -1
  210. package/server/public/assets/{ganttDiagram-6RSMTGT7-D4lWwte3.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
  211. package/server/public/assets/{highlighted-body-OFNGDK62-CaLboCt5.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
  212. package/server/public/assets/{index-Bwejq-5s.js → index-CWeMerGO.js} +147 -144
  213. package/server/public/assets/index-CenuJ3Cw.css +1 -0
  214. package/server/public/assets/{linear-qUWmMZ-c.js → linear-BBbArIcK.js} +1 -1
  215. package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
  216. package/server/public/assets/{pieDiagram-4H26LBE5-C4zYulEm.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
  217. package/server/public/assets/{prod-C8VtLuWC.js → prod-B8vYiu52.js} +4 -4
  218. package/server/public/assets/{quadrantDiagram-W4KKPZXB-qP04zyZC.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
  219. package/server/public/assets/{sankeyDiagram-5OEKKPKP-eMPTX_cG.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
  220. package/server/public/assets/{xychartDiagram-2RQKCTM6-Dme1PIt6.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
  221. package/server/public/index.html +2 -2
  222. package/server/{pull-requests-By_BteaL.js → pull-requests-7N8WKseP.js} +1 -1
  223. package/server/{pull-requests-8z2N1UOV.js → pull-requests-_lHueOHW.js} +13 -11
  224. package/server/{queries-ZABd5aXP.js → queries-CjNIf-Ub.js} +1200 -201
  225. package/server/{rally-i_goYmiA.js → rally-CyWT_lNO.js} +3 -3
  226. package/server/{rally-api-DqKqIMNR.js → rally-api-C8e_1JRi.js} +2 -2
  227. package/server/{rally-api-xHazRk0d.js → rally-api-ClOSd-Tt.js} +1 -1
  228. package/server/{rally-client-COYz1vYR.js → rally-client-lc-nokqr.js} +4 -4
  229. package/server/{rally-client-CGWEHaPd.js → rally-client-sgtVqzNU.js} +1 -1
  230. package/server/rally-zhhtXuDP.js +3 -0
  231. package/server/{reap-terminal-sessions-CaMkFOIH.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
  232. package/server/{reap-terminal-sessions-DG9eiMVz.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
  233. package/server/rebuild-stack-CFvcBHsS.js +4 -0
  234. package/server/{rebuild-stack-JUm0jqYP.js → rebuild-stack-lwtsW0GO.js} +26 -35
  235. package/server/{reconstruct-cache-wU79aCee.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
  236. package/server/record-CN0pj4_5.js +3 -0
  237. package/server/{record-update-D3N6WMFR.js → record-update-bLJxAXH4.js} +1 -1
  238. package/server/record-update-dE1Aw83j.js +310 -0
  239. package/server/{recovery-trip-DkzJSej9.js → recovery-trip-BvRWfUXM.js} +2 -2
  240. package/server/{release-engine-DMINVN8S.js → release-engine-Cx48W7z8.js} +5 -5
  241. package/server/{release-set-DeUSOEHy.js → release-set-CQfuN9-v.js} +3 -3
  242. package/server/{remote-b-c5bOce.js → remote-C_2hasl7.js} +3 -3
  243. package/server/{remote-Dr5kGYSZ.js → remote-ChgimyYa.js} +3 -3
  244. package/server/{remote-agents-Ct_WOyke.js → remote-agents-By1ige5O.js} +6 -6
  245. package/server/{remote-agents-D6O_zETW.js → remote-agents-CA3Ihlxj.js} +1 -1
  246. package/server/{remote-completion-Dca3hAaa.js → remote-completion-fVe9e_3u.js} +12 -12
  247. package/server/resume-BFv1PGpA.js +3 -0
  248. package/server/{review-agent-CThvgK2r.js → review-agent-CIGOQYBD.js} +29 -25
  249. package/server/{review-agent-CCum8sGe.js → review-agent-DNboMyW4.js} +1 -1
  250. package/server/{review-artifacts-CXywD0F2.js → review-artifacts-nRDPuMxd.js} +5 -5
  251. package/server/{review-context-OYfKUprb.js → review-context-2uj-YQ8J.js} +70 -26
  252. package/server/review-status-btEYlaxA.js +3 -0
  253. package/server/{review-status-enrichment-crNAtIpL.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
  254. package/server/{review-status-DFRjDFef.js → review-status-kZj_KyCk.js} +77 -28
  255. package/server/{review-status-sync-DpAMD_WO.js → review-status-sync-BTOpxtTC.js} +10 -5
  256. package/server/{review-status-sync-D60PJWNL.js → review-status-sync-DSDK3OMy.js} +1 -1
  257. package/server/{review-verdict-feedback-CpUZl5aE.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
  258. package/server/{review-verdict-feedback-JImjut0z.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
  259. package/server/{rollup-CZ02qgxk.js → rollup-BKQC7jp4.js} +1 -1
  260. package/server/{rollup-SyuF09e4.js → rollup-FGsKki9R.js} +8 -8
  261. package/server/{scanner-Br0Z5S6R.js → scanner-CnqEZeDy.js} +45 -14
  262. package/server/{sequence-io-fxU0DlwW.js → sequence-io-D909zgeH.js} +4 -4
  263. package/server/{sequencer-agent-B5YC5XVP.js → sequencer-agent-CzkcK6P5.js} +5 -5
  264. package/server/server.js +2961 -919
  265. package/server/{service-Bagb90KZ.js → service-CLeAoU6G.js} +55 -54
  266. package/server/{session-fork-BqQxd-V6.js → session-fork-CHI1XvL9.js} +2 -2
  267. package/server/{session-history-XdS0JKp3.js → session-history-BT3IvqhC.js} +4 -4
  268. package/server/settings-66A6uvIA.js +2 -0
  269. package/server/{settings-BNbocWOg.js → settings-BTMvpNFU.js} +3 -3
  270. package/server/{settings-uLc6DEYI.js → settings-C0zgxOGf.js} +2 -2
  271. package/server/{shadow-engineering-D4X_s3fA.js → shadow-engineering-BJfgm-hX.js} +2 -2
  272. package/server/{shadow-state-C_NkP-sa.js → shadow-state-7a-524T8.js} +2 -2
  273. package/server/{shadow-state-CbvsN3qG.js → shadow-state-DnDyjujH.js} +1 -1
  274. package/server/{shadow-utils-CYMRPeRT.js → shadow-utils-Db3oroFG.js} +2 -2
  275. package/server/{ship-log-__QtAFXG.js → ship-log-D9MlVzYU.js} +1 -1
  276. package/server/{smart-compaction-jdMkG1vo.js → smart-compaction-CV2ukKND.js} +1 -1
  277. package/server/{smart-compaction-CLZOWin1.js → smart-compaction-KCYScAU1.js} +7 -7
  278. package/server/{spawn-planning-session-D5OXo8pT.js → spawn-planning-session-DKpdFyOC.js} +35 -27
  279. package/server/{spawn-planning-session-8D6mE033.js → spawn-planning-session-qUC2VWu3.js} +1 -1
  280. package/server/{specialist-completion-CqmduO92.js → specialist-completion-Ky9wCDpb.js} +1 -1
  281. package/server/{specialist-context-CJ-QjFR-.js → specialist-context-Bn3dCGS2.js} +5 -5
  282. package/server/{specialist-handoff-logger-Dnjlwt7g.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
  283. package/server/{specialist-logs-CQnKzuZs.js → specialist-logs-C5p8G7tx.js} +3 -3
  284. package/server/{specialists-Bg9v4z3F.js → specialists-CC4r-c2s.js} +1015 -460
  285. package/server/{specialists-D0gGXMZx.js → specialists-CShuVGWT.js} +1 -1
  286. package/server/specialists-DM6bWjsi.js +3 -0
  287. package/server/{specialists-CwZHb5cb.js → specialists-jiuuyVkp.js} +66 -74
  288. package/server/specs-C8Wsn2XO.js +3 -0
  289. package/server/{src-BMMoA_ba.js → src-CXmtj0im.js} +6 -6
  290. package/server/{src-Bqdtd6po.js → src-CdmnTM2m.js} +5 -5
  291. package/server/{src-k039WVYY.js → src-DtcUOZCq.js} +112 -18
  292. package/server/stack-health-Bn3o8FBX.js +3 -0
  293. package/server/{stack-health-C-ifC7b0.js → stack-health-DxSdG9cW.js} +63 -9
  294. package/server/{stale-task-claims-L7pJkQFL.js → stale-task-claims-KJKxxiiQ.js} +4 -4
  295. package/server/{staleness-_Tr-GwdA.js → staleness-CT34nwr9.js} +1 -1
  296. package/server/{staleness-BID1BKdr.js → staleness-DPm7ClwA.js} +15 -3
  297. package/server/{state-home-CONQvZR0.js → state-home-Cn_Qu8IX.js} +96 -44
  298. package/server/{state-migrate-BeBW0KXA.js → state-migrate-BGg2ZaOt.js} +12 -3
  299. package/server/{stuck-remediation-CKnIryGT.js → stuck-remediation-DYuPRYYw.js} +307 -26
  300. package/server/{stuck-remediation-CsGD5Ksb.js → stuck-remediation-s9_2qfi6.js} +1 -1
  301. package/server/{substrate-bug-weights-service-CpIZILj9.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
  302. package/server/{summary-fork-bX6ax6X7.js → summary-fork-D1RAk9rJ.js} +78 -12
  303. package/server/{summary-fork-agEMsPSo.js → summary-fork-DpcxN9tf.js} +2 -2
  304. package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-Csw5tqfJ.js} +2 -41
  305. package/server/supervisor/pty-supervisor.js +2 -1
  306. package/server/supervisor/pty-token-x-ea28Us.js +43 -0
  307. package/server/supervisor-FTJAIsAK.js +2 -0
  308. package/server/{supervisor-Ctt4eRYz.js → supervisor-wM4ooB5O.js} +3 -3
  309. package/server/{swarm-readiness-DdmJVX7y.js → swarm-readiness-DlP_UjHq.js} +4 -4
  310. package/server/{system-prerequisites-DSXBvffY.js → system-prerequisites-DUDj1YHf.js} +56 -29
  311. package/server/{teardown-workspace-DDCf5n-a.js → teardown-workspace-DeTTImn-.js} +15 -15
  312. package/server/{test-agent-queue-BJZ9Nfcc.js → test-agent-queue-MbxX5vqq.js} +7 -7
  313. package/server/{test-verdict-Cp5tljlJ.js → test-verdict-bWYBtqBg.js} +1 -1
  314. package/server/{test-verdict-D_-sXIz_.js → test-verdict-gscuksPv.js} +1 -1
  315. package/server/{tldr-daemon-B8_oT5gx.js → tldr-daemon-BYFkts95.js} +1 -1
  316. package/server/{tldr-daemon-BQFmmFp0.js → tldr-daemon-C-69c3OI.js} +2 -2
  317. package/server/tmux-B6z7h_vZ.js +3 -0
  318. package/server/{tmux-L5LgvGLp.js → tmux-R7N7y-Mh.js} +76 -44
  319. package/server/{token-BkQLy4yS.js → token-BK6t8BIT.js} +2 -2
  320. package/server/token-util-DuPuNriz.js +3 -0
  321. package/server/{token-util-DI8sGlmF.js → token-util-DxXu-vd1.js} +1 -1
  322. package/server/{tracker-config-DdT-nUAM.js → tracker-config-G6latr8C.js} +2 -2
  323. package/server/{tracker-utils-DV3h1FYG.js → tracker-utils-B4ylXZQK.js} +1 -1
  324. package/server/{tracker-utils-CawsPSS2.js → tracker-utils-DHv5pSDT.js} +2 -2
  325. package/server/{traefik-connect-C6mJckNs.js → traefik-connect-Df2uXPsQ.js} +1 -1
  326. package/server/{tunnel-IdK1iTHx.js → tunnel-CDVKJpRv.js} +3 -3
  327. package/server/{tunnel-BIFl98rc.js → tunnel-DGdUkGoZ.js} +1 -1
  328. package/server/{types-7-GnJn0t.js → types-5M0lupud.js} +1 -1
  329. package/server/{uat-train-0Ujk8GCv.js → uat-train-B05BWkp-.js} +1 -1
  330. package/server/{uat-train-j0cPeMSj.js → uat-train-DDSrSoV1.js} +28 -28
  331. package/server/validate-IfDGkaVR.js +177 -0
  332. package/server/{validation-DcAgXTQp.js → validation-CC9OPqJZ.js} +1 -1
  333. package/server/{validation-CabEISJT.js → validation-Dw1pzDzr.js} +259 -9
  334. package/server/{verification-artifact-Ck1tefmz.js → verification-artifact-B3itKTxu.js} +1 -1
  335. package/server/{verification-artifact-BuTA1QbL.js → verification-artifact-TVFSz_q1.js} +1 -1
  336. package/server/{verification-runner-DlJezzef.js → verification-runner-BW4HOKAz.js} +1 -1
  337. package/server/{verification-runner-FiuAZ-H2.js → verification-runner-CkgX6EtI.js} +174 -124
  338. package/server/{vtt-parser-BnRsYzcz.js → vtt-parser-DYPbKcIJ.js} +1 -1
  339. package/server/{work-agent-prompt-DLthEPAq.js → work-agent-prompt-Du8Vh2aJ.js} +13 -13
  340. package/server/workflows-BQu4RFQ-.js +2 -0
  341. package/server/{workflows-BZNNYkGC.js → workflows-mbQzh6mQ.js} +39 -77
  342. package/server/{workspace-3IC-UkAi.js → workspace--8tnhDI0.js} +1 -1
  343. package/server/{workspace-D9ppycdg.js → workspace-BPUws1-_.js} +3 -3
  344. package/server/{workspace-config-Bigl_-Lk.js → workspace-config-CIVWZOQr.js} +1 -1
  345. package/server/{workspace-manager-ClkCIWTe.js → workspace-manager-CBhNdzE4.js} +76 -18
  346. package/server/workspace-manager-CWT55qeI.js +3 -0
  347. package/server/{workspace-metadata-BE0efUv_.js → workspace-metadata-BzHnwwX4.js} +1 -1
  348. package/server/{workspace-metadata-tiSRIWJP.js → workspace-metadata-_WygnyoX.js} +2 -2
  349. package/server/{workspaces-CFPcL0vl.js → workspaces-Do_9J0LQ.js} +309 -124
  350. package/sync-sources/agents/pan-inspect-agent.md +1 -1
  351. package/sync-sources/agents/pan-merge-agent.md +1 -1
  352. package/sync-sources/agents/pan-planning-agent.md +4 -4
  353. package/sync-sources/agents/pan-work-agent.md +1 -1
  354. package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
  355. package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
  356. package/sync-sources/hooks/record-cost-event.js +369 -75
  357. package/sync-sources/hooks/session-start-hook +7 -0
  358. package/sync-sources/hooks/work-agent-stop-hook +1 -1
  359. package/sync-sources/rules/per-bead-durability.md +1 -1
  360. package/sync-sources/rules/prd-authoring.md +1 -1
  361. package/sync-sources/skills/feature-work/SKILL.md +1 -1
  362. package/sync-sources/skills/okf/README.md +11 -3
  363. package/sync-sources/skills/okf/SKILL.md +12 -1
  364. package/sync-sources/skills/okf/docs/USAGE.md +15 -0
  365. package/sync-sources/skills/okf/references/overdeck.md +28 -0
  366. package/sync-sources/skills/pan/SKILL.md +2 -2
  367. package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
  368. package/sync-sources/skills/pan-approve/SKILL.md +1 -1
  369. package/sync-sources/skills/pan-close/SKILL.md +1 -1
  370. package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
  371. package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
  372. package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
  373. package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
  374. package/sync-sources/skills/pan-orders/SKILL.md +33 -0
  375. package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
  376. package/sync-sources/skills/pan-plan/SKILL.md +6 -6
  377. package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
  378. package/sync-sources/skills/pan-recap/SKILL.md +2 -2
  379. package/sync-sources/skills/pan-review/SKILL.md +1 -1
  380. package/sync-sources/skills/pan-start/SKILL.md +7 -3
  381. package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
  382. package/sync-sources/skills/pan-sync/SKILL.md +1 -1
  383. package/sync-sources/skills/pan-task/SKILL.md +2 -2
  384. package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
  385. package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
  386. package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
  387. package/sync-sources/skills/plan/SKILL.md +11 -11
  388. package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
  389. package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
  390. package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
  391. package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
  392. package/server/agent-state-Co5Sy2Fw.js +0 -3
  393. package/server/agents-DyHKlq1I.js +0 -3
  394. package/server/cli-BRORS9qY.js +0 -3
  395. package/server/codex-DNyiQDKW.js +0 -3
  396. package/server/context-layers-15gDOk20.js +0 -165
  397. package/server/context-layers-DlQKkHH2.js +0 -4
  398. package/server/deacon-swarm-CV54eNmU.js +0 -2
  399. package/server/dist-j64RzSrQ.js +0 -3
  400. package/server/flywheel-6WHU4O7A.js +0 -207
  401. package/server/flywheel-COR0mbRI.js +0 -522
  402. package/server/flywheel-Ctr5uuvo.js +0 -2
  403. package/server/forge-B0_opi-V.js +0 -2
  404. package/server/git-utils-CsKGnzFA.js +0 -3
  405. package/server/hume-BmhvfVbV.js +0 -3
  406. package/server/inspect-agent-Dq0z1k3H.js +0 -2
  407. package/server/layers-Cp1To4L8.js +0 -93
  408. package/server/lifecycle-io-DmY2qwCn.js +0 -3
  409. package/server/merge-blockers-BYjeXrVN.js +0 -41
  410. package/server/merge-ops-DwWCkSgo.js +0 -2
  411. package/server/merge-set-DiISXcC-.js +0 -139
  412. package/server/projects-BKkwpH6q.js +0 -3
  413. package/server/public/assets/index-Bdc4V9ba.css +0 -1
  414. package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +0 -1
  415. package/server/rally-OSJXdiHK.js +0 -3
  416. package/server/rebuild-stack-CKjJAI8L.js +0 -3
  417. package/server/record-rwK-nKv_.js +0 -3
  418. package/server/record-update-Crz74r-6.js +0 -168
  419. package/server/resume-wZZsWtzz.js +0 -3
  420. package/server/review-status-Bnh-rdkY.js +0 -3
  421. package/server/settings-BlUsVaUc.js +0 -2
  422. package/server/specialists-Dqe6_HE5.js +0 -3
  423. package/server/specs-BhOKBzqk.js +0 -3
  424. package/server/stack-health-Bd06frFn.js +0 -3
  425. package/server/supervisor-COVHrBTg.js +0 -2
  426. package/server/tmux-BAvtac_u.js +0 -3
  427. package/server/token-util-BArZLN6w.js +0 -3
  428. package/server/workflows-C4mR0Reb.js +0 -2
  429. package/server/workspace-manager-B1WOfKvB.js +0 -3
@@ -1,12 +1,304 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.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";
2
+ import { Vr as init_paths, lt as resolveModelIdSync, nt as MODEL_CAPABILITIES, st as init_model_capabilities } from "./config-yaml-DySPNmKN.js";
3
+ import { o as getHarnessBehavior } from "./src-DtcUOZCq.js";
4
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-B2ddP6wq.js";
5
+ import { r as parseCodexSessionSync, t as init_codex_parser } from "./codex-parser-CFZ1_1Jl.js";
6
+ import { t as init_behavior } from "./behavior-B3exJ42O.js";
7
7
  import "node:path";
8
8
  import "node:os";
9
9
  import { open, readFile, stat, watch } from "node:fs/promises";
10
+ //#region services/acp-conversation-parser.ts
11
+ function touchParserCache(sessionFile, cache) {
12
+ parserCache.delete(sessionFile);
13
+ parserCache.set(sessionFile, cache);
14
+ while (parserCache.size > 16) {
15
+ const oldest = parserCache.keys().next().value;
16
+ if (!oldest) break;
17
+ parserCache.delete(oldest);
18
+ }
19
+ }
20
+ function truncateToolMetadata(value) {
21
+ if (!value) return void 0;
22
+ return value.length > TOOL_METADATA_MAX_CHARS ? `${value.slice(0, TOOL_METADATA_MAX_CHARS)}…` : value;
23
+ }
24
+ function isTranscriptEntry(value) {
25
+ if (!value || typeof value !== "object") return false;
26
+ const entry = value;
27
+ return typeof entry["timestamp"] === "string" && typeof entry["content"] === "string" && (entry["role"] === "user" || entry["role"] === "assistant" || entry["role"] === "tool" || entry["role"] === "system");
28
+ }
29
+ function isToolCall(value) {
30
+ return Boolean(value) && typeof value === "object" && typeof value["toolCallId"] === "string";
31
+ }
32
+ function toToolEntry(toolCall, content, createdAt, sequence) {
33
+ const label = truncateToolMetadata(toolCall.title) ?? truncateToolMetadata(toolCall.kind) ?? "Tool";
34
+ const detail = truncateToolMetadata(toolCall.detail) ?? truncateToolMetadata(content);
35
+ const command = truncateToolMetadata(toolCall.command);
36
+ const terminal = toolCall.status === "completed" || toolCall.status === "failed";
37
+ return {
38
+ id: toolCall.toolCallId,
39
+ createdAt,
40
+ label,
41
+ toolTitle: label,
42
+ tone: toolCall.status === "failed" ? "error" : "tool",
43
+ sequence,
44
+ ...command ? { command } : {},
45
+ ...detail && !terminal ? { detail } : {},
46
+ ...detail && terminal ? { result: detail } : {}
47
+ };
48
+ }
49
+ function createParserState() {
50
+ return {
51
+ messages: [],
52
+ workLog: [],
53
+ toolIndex: /* @__PURE__ */ new Map(),
54
+ pendingToolUse: /* @__PURE__ */ new Map(),
55
+ sequence: 0,
56
+ lastRole: null,
57
+ currentTurnAssistantIndex: void 0,
58
+ lastTurnCompletedAt: void 0
59
+ };
60
+ }
61
+ function processTranscriptEntry(state, entry) {
62
+ const createdAt = entry.timestamp;
63
+ if (entry.event === "prompt_queued") return;
64
+ if (entry.event === "turn_completed" || entry.event === "prompt_failed") {
65
+ state.lastTurnCompletedAt = createdAt;
66
+ if (state.currentTurnAssistantIndex !== void 0) {
67
+ const assistant = state.messages[state.currentTurnAssistantIndex];
68
+ if (assistant?.role === "assistant") state.messages[state.currentTurnAssistantIndex] = {
69
+ ...assistant,
70
+ completedAt: createdAt,
71
+ streaming: false
72
+ };
73
+ }
74
+ state.pendingToolUse.clear();
75
+ if (entry.event === "turn_completed") return;
76
+ }
77
+ if (entry.role === "assistant") {
78
+ if (!entry.content) return;
79
+ const previousIndex = state.messages.length - 1;
80
+ const previous = state.lastRole === "assistant" ? state.messages[previousIndex] : void 0;
81
+ if (previous?.role === "assistant") state.messages[previousIndex] = {
82
+ ...previous,
83
+ text: previous.text + entry.content
84
+ };
85
+ else {
86
+ state.sequence += 1;
87
+ state.messages.push({
88
+ id: `acp-assistant-${state.sequence}`,
89
+ role: "assistant",
90
+ text: entry.content,
91
+ createdAt,
92
+ streaming: false,
93
+ sequence: state.sequence
94
+ });
95
+ }
96
+ state.currentTurnAssistantIndex = state.messages.length - 1;
97
+ state.lastRole = entry.role;
98
+ return;
99
+ }
100
+ if (entry.role === "user" || entry.role === "system") {
101
+ if (entry.role === "user") {
102
+ state.currentTurnAssistantIndex = void 0;
103
+ state.lastTurnCompletedAt = void 0;
104
+ }
105
+ const text = entry.content.trim();
106
+ if (!text) return;
107
+ state.sequence += 1;
108
+ state.messages.push({
109
+ id: `acp-${entry.role}-${state.sequence}`,
110
+ role: entry.role,
111
+ text,
112
+ createdAt,
113
+ completedAt: createdAt,
114
+ streaming: false,
115
+ sequence: state.sequence
116
+ });
117
+ state.lastRole = entry.role;
118
+ return;
119
+ }
120
+ const toolCalls = Array.isArray(entry.toolCalls) ? entry.toolCalls.filter(isToolCall) : [];
121
+ for (const toolCall of toolCalls) {
122
+ const existingIndex = state.toolIndex.get(toolCall.toolCallId);
123
+ if (existingIndex === void 0) {
124
+ state.sequence += 1;
125
+ const workEntry = toToolEntry(toolCall, entry.content, createdAt, state.sequence);
126
+ state.toolIndex.set(toolCall.toolCallId, state.workLog.length);
127
+ state.workLog.push(workEntry);
128
+ } else {
129
+ const existing = state.workLog[existingIndex];
130
+ state.workLog[existingIndex] = {
131
+ ...toToolEntry(toolCall, entry.content, existing.createdAt, existing.sequence ?? 0),
132
+ id: existing.id
133
+ };
134
+ }
135
+ const current = state.workLog[state.toolIndex.get(toolCall.toolCallId)];
136
+ if (toolCall.status === "pending" || toolCall.status === "inProgress") state.pendingToolUse.set(toolCall.toolCallId, current);
137
+ else state.pendingToolUse.delete(toolCall.toolCallId);
138
+ }
139
+ state.lastRole = entry.role;
140
+ }
141
+ function processAppendedBytes(cache, appended) {
142
+ const combined = cache.pendingTail.length > 0 ? Buffer.concat([cache.pendingTail, appended]) : appended;
143
+ let lineStart = 0;
144
+ for (let index = 0; index < combined.length; index += 1) {
145
+ if (combined[index] !== 10) continue;
146
+ const line = combined.subarray(lineStart, index).toString("utf-8").trim();
147
+ lineStart = index + 1;
148
+ if (!line) continue;
149
+ try {
150
+ const parsed = JSON.parse(line);
151
+ if (isTranscriptEntry(parsed)) processTranscriptEntry(cache.state, parsed);
152
+ } catch {}
153
+ }
154
+ cache.pendingTail = Buffer.from(combined.subarray(lineStart));
155
+ }
156
+ async function readRange(path, start, length) {
157
+ if (length <= 0) return Buffer.alloc(0);
158
+ const handle = await open(path, "r");
159
+ try {
160
+ const buffer = Buffer.allocUnsafe(length);
161
+ let offset = 0;
162
+ while (offset < length) {
163
+ const result = await handle.read(buffer, offset, length - offset, start + offset);
164
+ if (result.bytesRead === 0) break;
165
+ offset += result.bytesRead;
166
+ }
167
+ return offset === length ? buffer : buffer.subarray(0, offset);
168
+ } finally {
169
+ await handle.close();
170
+ }
171
+ }
172
+ function stateIsStreaming(state, mtimeMs) {
173
+ const lastMessage = state.messages[state.messages.length - 1];
174
+ return state.lastTurnCompletedAt === void 0 && state.lastRole === "assistant" && lastMessage?.role === "assistant" && Date.now() - mtimeMs < STREAMING_RECENCY_MS;
175
+ }
176
+ function snapshotResult(cache, fileSize, mtimeMs) {
177
+ const { state } = cache;
178
+ const messages = state.messages.map((message) => ({ ...message }));
179
+ const workLog = state.workLog.map((entry) => ({ ...entry }));
180
+ cache.snapshotEntriesProjected += messages.length + workLog.length;
181
+ const workLogById = new Map(workLog.map((entry) => [entry.id, entry]));
182
+ const lastMessage = messages[messages.length - 1];
183
+ const streaming = stateIsStreaming(state, mtimeMs);
184
+ if (lastMessage?.role === "assistant" && state.lastTurnCompletedAt === void 0) messages[messages.length - 1] = streaming ? {
185
+ ...lastMessage,
186
+ streaming: true
187
+ } : {
188
+ ...lastMessage,
189
+ completedAt: lastMessage.createdAt
190
+ };
191
+ return {
192
+ messages,
193
+ workLog,
194
+ byteOffset: fileSize,
195
+ streaming,
196
+ ...state.lastTurnCompletedAt ? { lastTurnCompletedAt: state.lastTurnCompletedAt } : {},
197
+ totalCost: 0,
198
+ totalTokens: 0,
199
+ latestAssistantUsage: null,
200
+ contextBoundaryOffset: 0,
201
+ contextActiveBytes: fileSize,
202
+ pendingToolUse: new Map([...state.pendingToolUse].map(([id, entry]) => [id, workLogById.get(id) ?? { ...entry }])),
203
+ unresolvedResults: /* @__PURE__ */ new Map(),
204
+ lastSequence: state.sequence,
205
+ mtimeMs,
206
+ planToolUseIds: /* @__PURE__ */ new Set(),
207
+ compactBoundaries: [],
208
+ fileEditsByAssistantId: /* @__PURE__ */ new Map()
209
+ };
210
+ }
211
+ async function updateAcpParserCache(sessionFile) {
212
+ const fileStats = await stat(sessionFile);
213
+ const identity = `${fileStats.dev}:${fileStats.ino}`;
214
+ let cache = parserCache.get(sessionFile);
215
+ const rewrittenAtSameSize = cache && fileStats.size === cache.byteOffset && fileStats.mtimeMs !== cache.mtimeMs;
216
+ if (!cache || cache.identity !== identity || fileStats.size < cache.byteOffset || rewrittenAtSameSize) {
217
+ cache = {
218
+ state: createParserState(),
219
+ identity,
220
+ byteOffset: 0,
221
+ pendingTail: Buffer.alloc(0),
222
+ mtimeMs: fileStats.mtimeMs,
223
+ bytesRead: 0,
224
+ snapshotEntriesProjected: 0,
225
+ activityProjections: 0
226
+ };
227
+ touchParserCache(sessionFile, cache);
228
+ }
229
+ if (fileStats.size > cache.byteOffset) {
230
+ const appended = await readRange(sessionFile, cache.byteOffset, fileStats.size - cache.byteOffset);
231
+ processAppendedBytes(cache, appended);
232
+ cache.byteOffset += appended.length;
233
+ cache.bytesRead += appended.length;
234
+ }
235
+ cache.mtimeMs = fileStats.mtimeMs;
236
+ touchParserCache(sessionFile, cache);
237
+ return {
238
+ cache,
239
+ fileSize: fileStats.size,
240
+ mtimeMs: fileStats.mtimeMs
241
+ };
242
+ }
243
+ async function withParserQueue(sessionFile, operation) {
244
+ const previous = parserQueue.get(sessionFile) ?? Promise.resolve();
245
+ let result;
246
+ const queued = previous.then(async () => {
247
+ result = await operation();
248
+ });
249
+ const settled = queued.then(() => void 0, () => void 0);
250
+ parserQueue.set(sessionFile, settled);
251
+ try {
252
+ await queued;
253
+ return result;
254
+ } finally {
255
+ if (parserQueue.get(sessionFile) === settled) parserQueue.delete(sessionFile);
256
+ }
257
+ }
258
+ /**
259
+ * Incrementally parse the append-only ACP transcript into the full snapshot
260
+ * requested by the stopped-agent conversation endpoint. Parser state is shared
261
+ * by file path, so callers read and decode each appended byte only once.
262
+ */
263
+ async function parseAcpConversationMessages(sessionFile) {
264
+ return withParserQueue(sessionFile, async () => {
265
+ const { cache, fileSize, mtimeMs } = await updateAcpParserCache(sessionFile);
266
+ return snapshotResult(cache, fileSize, mtimeMs);
267
+ });
268
+ }
269
+ /**
270
+ * Project only the tail state needed by live activity enrichment. This avoids
271
+ * rebuilding a full message/work-log snapshot on every transcript append.
272
+ */
273
+ async function projectAcpConversationActivity(sessionFile) {
274
+ return withParserQueue(sessionFile, async () => {
275
+ const { cache, mtimeMs } = await updateAcpParserCache(sessionFile);
276
+ const { state } = cache;
277
+ cache.activityProjections += 1;
278
+ let currentTool = null;
279
+ let maxSequence = -1;
280
+ for (const entry of state.pendingToolUse.values()) if (entry.toolTitle && (entry.sequence ?? -1) > maxSequence) {
281
+ maxSequence = entry.sequence ?? -1;
282
+ currentTool = entry.toolTitle;
283
+ }
284
+ return {
285
+ messages: state.messages,
286
+ streaming: stateIsStreaming(state, mtimeMs),
287
+ lastTurnCompletedAt: state.lastTurnCompletedAt,
288
+ pendingToolCount: state.pendingToolUse.size,
289
+ currentTool,
290
+ mtimeMs
291
+ };
292
+ });
293
+ }
294
+ var TOOL_METADATA_MAX_CHARS, STREAMING_RECENCY_MS, parserCache, parserQueue;
295
+ var init_acp_conversation_parser = __esmMin((() => {
296
+ TOOL_METADATA_MAX_CHARS = 500;
297
+ STREAMING_RECENCY_MS = 3e4;
298
+ parserCache = /* @__PURE__ */ new Map();
299
+ parserQueue = /* @__PURE__ */ new Map();
300
+ }));
301
+ //#endregion
10
302
  //#region services/codex-conversation-parser.ts
11
303
  /**
12
304
  * OpenAI Codex → chat panel adapter (PAN-1520).
@@ -1439,19 +1731,45 @@ var init_parser = __esmMin((() => {
1439
1731
  }));
1440
1732
  //#endregion
1441
1733
  //#region services/conversation/activity-summary.ts
1734
+ function cacheActivitySummary(cacheKey, mtimeMs, size, summary) {
1735
+ activitySummaryCache.set(cacheKey, {
1736
+ mtimeMs,
1737
+ size,
1738
+ summary
1739
+ });
1740
+ if (activitySummaryCache.size > ACTIVITY_SUMMARY_CACHE_MAX) {
1741
+ const firstKey = activitySummaryCache.keys().next().value;
1742
+ if (firstKey !== void 0) activitySummaryCache.delete(firstKey);
1743
+ }
1744
+ return summary;
1745
+ }
1442
1746
  async function summarizeConversationActivity(sessionFile, options = {}) {
1443
1747
  const fileStats = await stat(sessionFile);
1444
1748
  const cacheKey = `${options.harness ?? "claude-code"}:${sessionFile}`;
1445
1749
  const behavior = getHarnessBehavior(options.harness);
1446
1750
  const cached = activitySummaryCache.get(cacheKey);
1447
1751
  if (cached && cached.mtimeMs === fileStats.mtimeMs && cached.size === fileStats.size) return cached.summary;
1448
- const { messages, streaming, pendingToolUse, workLog, mtimeMs } = behavior.transcriptKind === "codex-rollout-jsonl" ? await parseCodexConversationMessages(sessionFile) : behavior.transcriptKind === "ohmypi-jsonl" || isOhmypiSessionFile(sessionFile) ? await parseOhmypiConversationMessages(sessionFile) : isPiSessionFile(sessionFile) ? await parsePiConversationMessages(sessionFile) : await parseFromLastCompactBoundary(sessionFile, {
1752
+ if (behavior.transcriptKind === "acp-jsonl") {
1753
+ const projected = await projectAcpConversationActivity(sessionFile);
1754
+ const workingFileRecent = Date.now() - projected.mtimeMs < WORKING_STALENESS_MS;
1755
+ const lastMsg = projected.messages[projected.messages.length - 1];
1756
+ const isWorking = workingFileRecent && !projected.lastTurnCompletedAt && (projected.streaming || projected.pendingToolCount > 0 || projected.messages.length === 0 || lastMsg?.role === "user" || lastMsg?.role === "assistant" && !lastMsg.completedAt);
1757
+ const fileRecent = Date.now() - projected.mtimeMs < 3e4;
1758
+ const summary = {
1759
+ messages: projected.messages,
1760
+ streaming: projected.streaming,
1761
+ isWorking,
1762
+ currentTool: fileRecent ? projected.currentTool : null
1763
+ };
1764
+ return cacheActivitySummary(cacheKey, fileStats.mtimeMs, fileStats.size, summary);
1765
+ }
1766
+ const { messages, streaming, lastTurnCompletedAt, pendingToolUse, workLog, mtimeMs } = behavior.transcriptKind === "codex-rollout-jsonl" ? await parseCodexConversationMessages(sessionFile) : behavior.transcriptKind === "ohmypi-jsonl" || isOhmypiSessionFile(sessionFile) ? await parseOhmypiConversationMessages(sessionFile) : isPiSessionFile(sessionFile) ? await parsePiConversationMessages(sessionFile) : await parseFromLastCompactBoundary(sessionFile, {
1449
1767
  pendingToolUse: /* @__PURE__ */ new Map(),
1450
1768
  unresolvedResults: /* @__PURE__ */ new Map(),
1451
1769
  lastSequence: 0
1452
1770
  });
1453
1771
  const lastMsg = messages[messages.length - 1];
1454
- const isWorking = Date.now() - mtimeMs < WORKING_STALENESS_MS && (messages.length === 0 || lastMsg?.role === "user" || lastMsg?.role === "assistant" && !lastMsg.completedAt);
1772
+ const isWorking = Date.now() - mtimeMs < WORKING_STALENESS_MS && !lastTurnCompletedAt && (streaming || pendingToolUse.size > 0 || messages.length === 0 || lastMsg?.role === "user" || lastMsg?.role === "assistant" && !lastMsg.completedAt);
1455
1773
  const fileRecent = Date.now() - mtimeMs < 3e4;
1456
1774
  let currentTool = null;
1457
1775
  if (fileRecent) {
@@ -1473,20 +1791,12 @@ async function summarizeConversationActivity(sessionFile, options = {}) {
1473
1791
  isWorking,
1474
1792
  currentTool
1475
1793
  };
1476
- activitySummaryCache.set(cacheKey, {
1477
- mtimeMs,
1478
- size: fileStats.size,
1479
- summary
1480
- });
1481
- if (activitySummaryCache.size > ACTIVITY_SUMMARY_CACHE_MAX) {
1482
- const firstKey = activitySummaryCache.keys().next().value;
1483
- if (firstKey !== void 0) activitySummaryCache.delete(firstKey);
1484
- }
1485
- return summary;
1794
+ return cacheActivitySummary(cacheKey, mtimeMs, fileStats.size, summary);
1486
1795
  }
1487
1796
  var WORKING_STALENESS_MS, ACTIVITY_SUMMARY_CACHE_MAX, activitySummaryCache;
1488
1797
  var init_activity_summary = __esmMin((() => {
1489
1798
  init_behavior();
1799
+ init_acp_conversation_parser();
1490
1800
  init_codex_conversation_parser();
1491
1801
  init_ohmypi_conversation_parser();
1492
1802
  init_pi_conversation_parser();
@@ -1749,6 +2059,6 @@ var init_conversation_service = __esmMin((() => {
1749
2059
  init_watch();
1750
2060
  }));
1751
2061
  //#endregion
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 };
2062
+ export { init_codex_conversation_parser as _, contextUsageFromParseResult as a, parseAcpConversationMessages as b, 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, init_acp_conversation_parser as y };
1753
2063
 
1754
- //# sourceMappingURL=conversation-service-C3avRVEr.js.map
2064
+ //# sourceMappingURL=conversation-service-DPJ71F33.js.map
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.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";
2
+ import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DySPNmKN.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-BEqFxlJc.js";
4
+ import { a as init_event_store, n as getEventStore } from "./event-store-CQL6NeqB.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";
@@ -672,7 +672,7 @@ function toMillis(value = /* @__PURE__ */ new Date()) {
672
672
  /** Map a raw DB harness string to a canonical RuntimeName, normalizing legacy 'pi' to 'ohmypi' on read. */
673
673
  function normalizeHarness(harness) {
674
674
  if (harness === "pi" || harness === "ohmypi") return "ohmypi";
675
- if (harness === "claude-code" || harness === "codex") return harness;
675
+ if (harness === "claude-code" || harness === "codex" || harness === "acp") return harness;
676
676
  return null;
677
677
  }
678
678
  function legacyRowIdForConversationId(id) {
@@ -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-bYpM9-kZ.js.map
1588
+ //# sourceMappingURL=conversations-6AfUfbwc.js.map
@@ -1,3 +1,3 @@
1
- import { M as listConversations, k as init_conversations } from "./conversations-bYpM9-kZ.js";
1
+ import { M as listConversations, k as init_conversations } from "./conversations-6AfUfbwc.js";
2
2
  init_conversations();
3
3
  export { listConversations };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { ii as init_paths, jr as init_errors, zr as COSTS_DIR } from "./config-yaml-ig8Nwtiw.js";
2
+ import { Sr as COSTS_DIR, Vr as init_paths, mr as init_errors } from "./config-yaml-DySPNmKN.js";
3
3
  import "effect";
4
4
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -457,6 +457,22 @@ var init_cost = __esmMin((() => {
457
457
  outputPer1k: .004,
458
458
  cacheReadPer1k: 19e-5,
459
459
  currency: "USD"
460
+ },
461
+ {
462
+ provider: "custom",
463
+ model: "k3",
464
+ inputPer1k: .003,
465
+ outputPer1k: .015,
466
+ cacheReadPer1k: 3e-4,
467
+ currency: "USD"
468
+ },
469
+ {
470
+ provider: "custom",
471
+ model: "k3[1m]",
472
+ inputPer1k: .003,
473
+ outputPer1k: .015,
474
+ cacheReadPer1k: 3e-4,
475
+ currency: "USD"
460
476
  }
461
477
  ];
462
478
  BUDGETS_FILE = join(COSTS_DIR, "budgets.json");
@@ -464,4 +480,4 @@ var init_cost = __esmMin((() => {
464
480
  //#endregion
465
481
  export { getAllBudgetsSync as a, deleteBudgetSync as i, checkBudgetSync as n, getPricingSync as o, createBudgetSync as r, init_cost as s, calculateCostSync as t };
466
482
 
467
- //# sourceMappingURL=cost-Codk1pc2.js.map
483
+ //# sourceMappingURL=cost-B2ddP6wq.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-Codk1pc2.js";
3
- import { i as init_events, t as appendCostEventSync } from "./events-DSUdR-04.js";
2
+ import { o as getPricingSync, s as init_cost$1, t as calculateCostSync } from "./cost-B2ddP6wq.js";
3
+ import { i as init_events, t as appendCostEventSync } from "./events-DTfAe4My.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-wH46-WsJ.js.map
55
+ //# sourceMappingURL=cost-R-m6Yi-W.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.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";
2
+ import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DySPNmKN.js";
3
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BEqFxlJc.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-D_cre6WM.js.map
401
+ //# sourceMappingURL=cost-sync-BsN6ER0n.js.map
@@ -1,10 +1,10 @@
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-DQR9PMgS.js";
2
+ import { o as init_io, v as init_types, y as subItemsOf } from "./io-C9kF1wtJ.js";
3
3
  import { Data } from "effect";
4
4
  import "fs/promises";
5
- //#region ../../lib/vbrief/dag.ts
5
+ //#region ../../lib/xbrief/dag.ts
6
6
  /**
7
- * Groups actionable vBRIEF items into dependency waves using Kahn's algorithm.
7
+ * Groups actionable xBRIEF items into dependency waves using Kahn's algorithm.
8
8
  *
9
9
  * Wave 0 = items with no unresolved blockers (ready to start).
10
10
  * Wave N = items whose blockers all resolve in waves < N.
@@ -72,7 +72,7 @@ function groupItemsByWave(doc) {
72
72
  return waves;
73
73
  }
74
74
  /**
75
- * Computes the critical path of a vBRIEF plan using the longest-path
75
+ * Computes the critical path of an xBRIEF plan using the longest-path
76
76
  * algorithm on 'blocks' edges.
77
77
  *
78
78
  * All edges have weight 1 (one step). Returns an ordered list of item IDs
@@ -252,7 +252,7 @@ function renderItemLine(item) {
252
252
  }
253
253
  /**
254
254
  * Build the bounded active slice that work-agent prompts should receive by
255
- * default instead of the full vBRIEF. The slice includes the target/current work
255
+ * default instead of the full xBRIEF. The slice includes the target/current work
256
256
  * set, direct blockers, unlocks, nearby context, global constraints, acceptance
257
257
  * criteria, and optional persisted synthesis output for convergence points.
258
258
  */
@@ -273,7 +273,7 @@ function createActiveSlice(doc, options) {
273
273
  const acceptanceCriteria = subItemsOf(item);
274
274
  const synthesisContext = options.synthesisOutputs?.[item.id]?.contextUpdate;
275
275
  const globalConstraints = [doc.plan.narratives?.Constraint, doc.plan.narratives?.Risk].filter((value) => Boolean(value));
276
- const objective = doc.plan.narratives?.Problem ?? doc.plan.narratives?.Proposal ?? doc.vBRIEFInfo.description;
276
+ const objective = doc.plan.narratives?.Problem ?? doc.plan.narratives?.Proposal ?? doc.xBRIEFInfo.description;
277
277
  const prompt = renderActiveSlicePrompt({
278
278
  issueId: options.issueId,
279
279
  planId: doc.plan.id,
@@ -309,7 +309,7 @@ function createActiveSlice(doc, options) {
309
309
  };
310
310
  }
311
311
  function renderActiveSlicePrompt(slice) {
312
- const lines = [`# Active vBRIEF Slice: ${slice.issueId}`, `Plan: ${slice.planTitle} (${slice.planId}) @ sequence ${slice.planSequence}`];
312
+ const lines = [`# Active xBRIEF Slice: ${slice.issueId}`, `Plan: ${slice.planTitle} (${slice.planId}) @ sequence ${slice.planSequence}`];
313
313
  if (slice.objective) lines.push(``, `## Issue Objective`, slice.objective);
314
314
  if (slice.globalConstraints.length > 0) lines.push(``, `## Global Constraints`, ...slice.globalConstraints.map((c) => `- ${c}`));
315
315
  lines.push(``, `## Current Work Set`, ...slice.currentWorkSet.map(renderItemLine));
@@ -374,9 +374,9 @@ var init_dag = __esmMin((() => {
374
374
  "running",
375
375
  "blocked"
376
376
  ]);
377
- Data.TaggedError("VBriefDagError");
377
+ Data.TaggedError("XBriefDagError");
378
378
  }));
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-CJpgf9A3.js.map
382
+ //# sourceMappingURL=dag-B1ucnjDU.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-D6AF-Hg_.js.map
111
+ //# sourceMappingURL=dangerous-git-ops-BXqeWVSf.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-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";
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-6AfUfbwc.js";
2
+ import { o as getSetting, s as init_control_settings, w as setSetting } from "./control-settings-BQp7_4uD.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-CnqEZeDy.js";
4
+ import { t as listSubstrateBugWeights } from "./substrate-bug-weights-service-B-FwCs5V.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-CDBFL4OU.js");
70
+ const { getArtifactBySlugJob } = await import("./artifact-index-jobs-CbEDfCDu.js");
71
71
  return getArtifactBySlugJob(payload);
72
72
  }
73
73
  case "listArtifactsForWorkspaceOrIssue": {
74
- const { listArtifactsForWorkspaceOrIssueJob } = await import("./artifact-index-jobs-CDBFL4OU.js");
74
+ const { listArtifactsForWorkspaceOrIssueJob } = await import("./artifact-index-jobs-CbEDfCDu.js");
75
75
  return listArtifactsForWorkspaceOrIssueJob(payload);
76
76
  }
77
77
  case "unshareArtifactBySlug": {
78
- const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-CDBFL4OU.js");
78
+ const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-CbEDfCDu.js");
79
79
  return unshareArtifactBySlugJob(payload);
80
80
  }
81
81
  }