@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.
- package/drizzle/overdeck/0000_overdeck_init.sql +2 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-BH7ac_1G.js → acceptance-criteria-DDCnXF58.js} +5 -5
- package/server/{advancing-selfheal-cSvXNZLZ.js → advancing-selfheal-BVwW4qRn.js} +6 -6
- package/server/{agent-gc-Dj2gncak.js → agent-gc-CHcnvonI.js} +4 -4
- package/server/agent-state-Bc3tzUC8.js +3 -0
- package/server/{agent-state-service-DistflNn.js → agent-state-service-BsgWxZuB.js} +5 -5
- package/server/{agent-state-service-CsQ07Pxe.js → agent-state-service-D5UGKIJL.js} +1 -1
- package/server/{agents-DXdHmRTC.js → agents-EbI0zCJl.js} +4 -4
- package/server/agents-wi9NWzs2.js +3 -0
- package/server/{archive-planning-Cp_DC1j-.js → archive-planning-BZDgzoEj.js} +1 -1
- package/server/{archive-planning-BvDuWNMo.js → archive-planning-Du25Jtst.js} +30 -6
- package/server/{artifact-index-jobs-CDBFL4OU.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
- package/server/assemble-J2ZZ2C15.js +339 -0
- package/server/{backlog-auto-trigger-DmA1IbYf.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
- package/server/{behavior-CGj16clS.js → behavior-B3exJ42O.js} +2 -2
- package/server/{briefing-freshness-C12WgkaB.js → briefing-freshness-D1wzUIWv.js} +2 -2
- package/server/{build-info-BRpqQvNd.js → build-info-CZk_TITh.js} +1 -1
- package/server/{build-info-NU3KbXYw.js → build-info-Ie_D0_BT.js} +3 -3
- package/server/{checkpoint-manager-CTPjAmtH.js → checkpoint-manager-BI1Wxoku.js} +2 -2
- package/server/{checkpoint-manager-rOgT98WY.js → checkpoint-manager-DwbQoqrC.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-B5jFNi2G.js → checkpoints-BJIs5QIA.js} +1 -1
- package/server/{checkpoints-BJum14fs.js → checkpoints-CQB1h765.js} +2 -2
- package/server/{claude-hooks-provision-BhwWK-TQ.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
- package/server/{claude-hooks-provision-D7p5WcKZ.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
- package/server/{claude-permissions-nSFKH78M.js → claude-permissions-DNWEVV6z.js} +2 -2
- package/server/{claude-settings-overlay-BI_UIke0.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
- package/server/{claude-settings-overlay-DHBwjS1X.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
- package/server/cli-B86rejVV.js +3 -0
- package/server/{cli-CbKNkFE5.js → cli-RoOx5DUf.js} +9 -9
- package/server/{cliproxy-Brf_5MuG.js → cliproxy-C8a1vtTU.js} +2 -2
- package/server/{cliproxy-bONZDBbC.js → cliproxy-fHfIeiGd.js} +1 -1
- package/server/{close-issue-CxReRxIc.js → close-issue-DoOifFIK.js} +5 -5
- package/server/{closed-issue-reaper-CQ3kqha7.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
- package/server/{closed-issue-reaper-DXP2Xyv3.js → closed-issue-reaper-CktPXo8m.js} +1 -1
- package/server/{codex-CbmztVcc.js → codex-BZXGhUVB.js} +27 -8
- package/server/codex-GcHuUF-k.js +3 -0
- package/server/{codex-parser-jl8AeAmB.js → codex-parser-CFZ1_1Jl.js} +2 -2
- package/server/{config-q4Gvd8dq.js → config-BZ0sHTju.js} +2 -2
- package/server/{config-DeTsoZdR.js → config-CKxYiCmX.js} +2 -2
- package/server/{config-BJKocXKd.js → config-DzV30TOm.js} +1 -1
- package/server/{config-yaml-ig8Nwtiw.js → config-yaml-DySPNmKN.js} +77 -194
- package/server/{conflict-gate-CFqPVxEg.js → conflict-gate-BaCVrH-N.js} +3 -3
- package/server/{conflict-gate-CHU9K1vU.js → conflict-gate-BhAY7TUd.js} +1 -1
- package/server/context-layers-BrPmE__h.js +4 -0
- package/server/context-layers-igZ4FI4_.js +37 -0
- package/server/{control-settings-D_odMIaC.js → control-settings-BQp7_4uD.js} +4 -4
- package/server/{conversation-compaction-B6YSRLda.js → conversation-compaction-CgrR8YYp.js} +8 -8
- package/server/{conversation-compaction-CN4-5YYt.js → conversation-compaction-eQB5CkOe.js} +1 -1
- package/server/{conversation-service-Dq33SYEj.js → conversation-service-BLd3MYsG.js} +1 -1
- package/server/{conversation-service-C3avRVEr.js → conversation-service-DPJ71F33.js} +329 -19
- package/server/{conversations-bYpM9-kZ.js → conversations-6AfUfbwc.js} +5 -5
- package/server/{conversations-H9if0bCQ.js → conversations-CAsJF9kh.js} +1 -1
- package/server/{cost-Codk1pc2.js → cost-B2ddP6wq.js} +18 -2
- package/server/{cost-wH46-WsJ.js → cost-R-m6Yi-W.js} +3 -3
- package/server/{cost-sync-D_cre6WM.js → cost-sync-BsN6ER0n.js} +3 -3
- package/server/{dag-CJpgf9A3.js → dag-B1ucnjDU.js} +9 -9
- package/server/{dangerous-git-ops-D6AF-Hg_.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/{deacon-CkT_kznS.js → deacon-CU_cAYSR.js} +406 -607
- package/server/{deacon-B8HbQdqU.js → deacon-kiQrb4ZT.js} +3 -3
- package/server/{deacon-nudge-log-D6K9K-rE.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
- package/server/{deacon-swarm-BryRr6AO.js → deacon-swarm-BXZZ1Z2-.js} +17 -17
- package/server/deacon-swarm-C-GwfjJy.js +2 -0
- package/server/deacon.js +8 -8
- package/server/{deploy-patrol-1IrZxicY.js → deploy-patrol-AiFoP8dw.js} +136 -19
- package/server/{deploy-window-wDf4UgHt.js → deploy-window-C3F-tihF.js} +77 -10
- package/server/{deploy-window-7ZYHh7Zp.js → deploy-window-DkZraDyj.js} +1 -1
- package/server/{dev-supervisor-C7p9kEpc.js → dev-supervisor-bcOWqdQE.js} +2 -2
- package/server/{devcontainer-renderer-CNmQy0pL.js → devcontainer-renderer-_d6XhyND.js} +3 -3
- package/server/dist-Bzy0y69j.js +3 -0
- package/server/{dist-D-Ed5yVw.js → dist-Cb_0uvpS.js} +1 -1
- package/server/{docker-BCZ89M9X.js → docker-DcMTFTUC.js} +2 -2
- package/server/{dod-DbJLYcHv.js → dod-C6n9RV3G.js} +1 -1
- package/server/{ensure-devcontainer-Cs6W9Yzj.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
- package/server/{ensure-devcontainer-V5JWaAva.js → ensure-devcontainer-DNi-ono3.js} +4 -4
- package/server/{esm-shims-dTeNdq7X.js → esm-shims-OSHAYaS1.js} +1 -1
- package/server/{event-store-TnWdydfB.js → event-store-CQL6NeqB.js} +3 -3
- package/server/{event-store-CpBGsO6_.js → event-store-EV2cMiXj.js} +1 -1
- package/server/{events-Dsuv6qyB.js → events-BTdrdEq8.js} +1 -1
- package/server/{events-DSUdR-04.js → events-DTfAe4My.js} +3 -3
- package/server/{factory-BMrK4TrE.js → factory-CFibJuaw.js} +50 -13
- package/server/{feature-registry-population-B-CI9hgE.js → feature-registry-population-DKZFMbFt.js} +4 -4
- package/server/{feature-registry-storage-B972ph_A.js → feature-registry-storage-BdPuLcBX.js} +2 -2
- package/server/{features-Bc-Bmiye.js → features-ez2271oH.js} +2 -2
- package/server/{feedback-target-DZ-iAnAa.js → feedback-target-7mqqwrX6.js} +7 -7
- package/server/{feedback-target-DS6NUuSs.js → feedback-target-CoFDHiM8.js} +1 -1
- package/server/{feedback-writer-BXP6g75N.js → feedback-writer-CY5L1lB7.js} +6 -5
- package/server/{feedback-writer-Bx5z11mF.js → feedback-writer-D3a22RCd.js} +1 -1
- package/server/flywheel-DHrgCphM.js +1084 -0
- package/server/flywheel-DzGtWnJ1.js +477 -0
- package/server/flywheel-SVF02Jpq.js +2 -0
- package/server/{flywheel-merge-order-CTgHeg-W.js → flywheel-merge-order-UU0tiUld.js} +10 -9
- package/server/{flywheel-merge-order-CNKAY489.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
- package/server/{forge-B1S_KZv4.js → forge-CNFnyqps.js} +2 -2
- package/server/forge-DXnS_YFH.js +2 -0
- package/server/{from-DpwQ-sc3.js → from-kNxT0bZC.js} +1 -1
- package/server/{fts-db-DmAcuCkV.js → fts-db-CE46vDkZ.js} +2 -2
- package/server/{fts-operations-7d_RkmWp.js → fts-operations-CqY6zl-i.js} +2 -2
- package/server/{git-utils-Cc3FHDKd.js → git-utils-CRw2zLPC.js} +68 -3
- package/server/git-utils-D0_yhCgF.js +3 -0
- package/server/{github-app-CDPtGF7J.js → github-app-C3QrAUd0.js} +27 -8
- package/server/{github-app-CU14oYzP.js → github-app-ClZ2lk8D.js} +1 -1
- package/server/{github-client-XjTJbBm7.js → github-client-BnIsSrEN.js} +2 -2
- package/server/{github-client-CwBZZ3t7.js → github-client-DfQYVUaw.js} +1 -1
- package/server/{github-pr-lookup-CFGeVhqv.js → github-pr-lookup-D16NGsSO.js} +2 -2
- package/server/{harness-binary-B2CTcD84.js → harness-binary-DPUi-Pv8.js} +32 -6
- package/server/{harness-resolve-D5FVQTmy.js → harness-resolve-3lNZkyT4.js} +18 -9
- package/server/{health-events-DREeevle.js → health-events-BBcTYQKU.js} +2 -2
- package/server/{health-events-C1whmd58.js → health-events-BDOHby5Q.js} +1 -1
- package/server/{hooks-yxRsjk-z.js → hooks-CKZgXlJb.js} +2 -2
- package/server/{hooks-B-HItBiS.js → hooks-DPVX1rwQ.js} +1 -1
- package/server/{hume-Dz_OymXE.js → hume-Cz8igP9E.js} +2 -2
- package/server/hume-ccTf4wTX.js +3 -0
- package/server/{idle-stack-reaper-DrCv0OAG.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
- package/server/{idle-stack-reaper-Yf34xXxY.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
- package/server/{in-flight-guard-BoWm66Kh.js → in-flight-guard-CAAkqPLu.js} +2 -2
- package/server/{infra-D4iNWMA5.js → infra-BEqFxlJc.js} +14 -4
- package/server/{injection-D7T75Pye.js → injection-C8aiVJrF.js} +191 -183
- package/server/{injection-BVNa4MQW.js → injection-CPUIqNhI.js} +1 -1
- package/server/{inspect-agent-BXCgNeZ4.js → inspect-agent-BLuJ1AkT.js} +137 -81
- package/server/inspect-agent-Brtz0URj.js +2 -0
- package/server/{internal-token-C9DdEOKY.js → internal-token-BrcU6qfe.js} +1 -1
- package/server/{internal-token-CXsfxslp.js → internal-token-s0-oKybJ.js} +2 -2
- package/server/{io-DQR9PMgS.js → io-C9kF1wtJ.js} +160 -184
- package/server/{issue-closed-DtmJM0D0.js → issue-closed-CDJk4pIp.js} +7 -7
- package/server/{issue-lifecycle-8PSS9Anq.js → issue-lifecycle-B8sZHVHh.js} +1 -1
- package/server/{issue-lifecycle-CeyW_HoD.js → issue-lifecycle-ojZAzDBP.js} +22 -22
- package/server/{issue-service-singleton-DBZabEl7.js → issue-service-singleton-BvJ09SaR.js} +1 -1
- package/server/{issue-service-singleton-D_RVYBuL.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
- package/server/{issues-pDW9VUNz.js → issues-BMmP_77e.js} +2 -2
- package/server/{jsonl-parser-C3HVNR5d.js → jsonl-parser-BXSlHwEh.js} +3 -3
- package/server/{label-cleanup-DPwiZlWo.js → label-cleanup-B0UJwnv5.js} +3 -3
- package/server/{label-reconciler-Df1ZduPH.js → label-reconciler-B4iOAjlC.js} +4 -4
- package/server/{launcher-generator-COgR2By1.js → launcher-generator-BBWG_SiS.js} +105 -10
- package/server/{lifecycle-io-taIb0PoH.js → lifecycle-io-BREGpnLk.js} +37 -37
- package/server/lifecycle-io-DPo7x11I.js +3 -0
- package/server/{lifecycle-CtPDcZ9u.js → lifecycle-xmBfK2GJ.js} +6 -6
- package/server/lifecycle-yPd___5E.js +121 -0
- package/server/{linear-client-DsFkIxee.js → linear-client-BsuUvkdA.js} +2 -2
- package/server/{linear-client-YwZMDIwQ.js → linear-client-CTskEeT_.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-BwsyNRJV.js → merge-B1DiziGU.js} +1 -1
- package/server/{merge-C1t-bspg.js → merge-CefQNAnq.js} +3 -3
- package/server/{merge-agent-DDiIjzk-.js → merge-agent-4WOWlSYA.js} +28 -28
- package/server/{merge-agent-B-SnXOoc.js → merge-agent-CKkgIBPB.js} +1 -1
- package/server/{merge-batch-Byt-QnEl.js → merge-batch-ClFn2T-y.js} +1 -1
- package/server/merge-ops-CR44oU9-.js +2 -0
- package/server/{merge-rebase-Cm6fXaZN.js → merge-rebase-BfaTyXsw.js} +2 -2
- package/server/merge-set-DJ8-UErs.js +83 -0
- package/server/{merge-set-6LEglm6o.js → merge-set-bUqbm3yc.js} +1 -1
- package/server/{merge-sync-B95_4in_.js → merge-sync-BJYeOODr.js} +1 -1
- package/server/{merge-sync-Do8_q32h.js → merge-sync-VPV28g0g.js} +2 -2
- package/server/{merge-train-CKana8EH.js → merge-train-CHopycP0.js} +3 -3
- package/server/{merge-train-deps-BgmqwIfA.js → merge-train-deps-D1cOZzy2.js} +4 -4
- package/server/{merge-verification-CqnUzGEK.js → merge-verification-BkaOqPsw.js} +4 -4
- package/server/{multipart-parser-tdOQDJ3o.js → multipart-parser-duPAfSBw.js} +2 -2
- package/server/{no-resume-mode-BWOSZjWd.js → no-resume-mode-Nw29vaFb.js} +11 -8
- package/server/node_modules/.package-lock.json +8 -8
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
- package/server/node_modules/undici/README.md +5 -0
- package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
- package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
- package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
- package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
- package/server/node_modules/undici/docs/docs/index.md +5 -0
- package/server/node_modules/undici/lib/core/request.js +1 -1
- package/server/node_modules/undici/lib/core/util.js +6 -1
- package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +31 -6
- package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
- package/server/node_modules/undici/lib/handler/cache-handler.js +93 -5
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
- package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
- package/server/node_modules/undici/lib/handler/retry-handler.js +6 -4
- package/server/node_modules/undici/lib/interceptor/cache.js +21 -4
- package/server/node_modules/undici/lib/interceptor/decompress.js +4 -0
- package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
- package/server/node_modules/undici/lib/util/cache.js +49 -7
- package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
- package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/server/node_modules/undici/package.json +2 -2
- package/server/node_modules/undici/types/client.d.ts +2 -2
- package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
- package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/server/{orphan-proposed-reconciler-xklgvNA7.js → orphan-proposed-reconciler-BvKkWMJQ.js} +15 -13
- package/server/{orphan-proposed-reconciler-DSvsJ5M7.js → orphan-proposed-reconciler-CTSGcK8p.js} +1 -1
- package/server/package-lock.json +9 -9
- package/server/package.json +1 -1
- package/server/{pan-dir-DOcf6ug3.js → pan-dir-B0c3w0Ya.js} +78 -58
- package/server/{paths-DooHpt9p.js → paths-D-xWGHdh.js} +2 -2
- package/server/{pickup-CaskQ7j6.js → pickup-DUCLWrJY.js} +17 -16
- package/server/{pipeline-membership-1LGRjo-k.js → pipeline-membership-mY3GprlK.js} +186 -67
- package/server/{pipeline-notifier-CZsrU_nj.js → pipeline-notifier-BJr8gQX6.js} +1 -1
- package/server/{pipeline-notifier-B6FVsYF9.js → pipeline-notifier-BXkJzDC4.js} +2 -2
- package/server/{project-pipelines-CtNG_rvs.js → project-pipelines-C0MWUeCU.js} +2 -2
- package/server/project-repos-B6GycDh9.js +94 -0
- package/server/project-repos-DXKQsc_m.js +3 -0
- package/server/projects-vjjcmiN8.js +3 -0
- package/server/{prompts-EvhMeeHG.js → prompts-DxzFXuLl.js} +2 -2
- package/server/{providers-BDDPULlp.js → providers-qQAwGQDW.js} +7 -7
- package/server/{providers-DNSQqy2V.js → providers-u4Ga0jOr.js} +1 -1
- package/server/public/assets/{chunk-BO2N2NFS-sym_ufXe.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-CQJPBNBu.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
- package/server/public/assets/{dist-DukGS2YZ.js → dist-ByIuzMQW.js} +3 -3
- package/server/public/assets/{dist-Bio7THQU.js → dist-D7zYSEA6.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-D4lWwte3.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-CaLboCt5.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
- package/server/public/assets/{index-Bwejq-5s.js → index-CWeMerGO.js} +147 -144
- package/server/public/assets/index-CenuJ3Cw.css +1 -0
- package/server/public/assets/{linear-qUWmMZ-c.js → linear-BBbArIcK.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-C4zYulEm.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
- package/server/public/assets/{prod-C8VtLuWC.js → prod-B8vYiu52.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-qP04zyZC.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-eMPTX_cG.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-Dme1PIt6.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests-By_BteaL.js → pull-requests-7N8WKseP.js} +1 -1
- package/server/{pull-requests-8z2N1UOV.js → pull-requests-_lHueOHW.js} +13 -11
- package/server/{queries-ZABd5aXP.js → queries-CjNIf-Ub.js} +1200 -201
- package/server/{rally-i_goYmiA.js → rally-CyWT_lNO.js} +3 -3
- package/server/{rally-api-DqKqIMNR.js → rally-api-C8e_1JRi.js} +2 -2
- package/server/{rally-api-xHazRk0d.js → rally-api-ClOSd-Tt.js} +1 -1
- package/server/{rally-client-COYz1vYR.js → rally-client-lc-nokqr.js} +4 -4
- package/server/{rally-client-CGWEHaPd.js → rally-client-sgtVqzNU.js} +1 -1
- package/server/rally-zhhtXuDP.js +3 -0
- package/server/{reap-terminal-sessions-CaMkFOIH.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
- package/server/{reap-terminal-sessions-DG9eiMVz.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
- package/server/rebuild-stack-CFvcBHsS.js +4 -0
- package/server/{rebuild-stack-JUm0jqYP.js → rebuild-stack-lwtsW0GO.js} +26 -35
- package/server/{reconstruct-cache-wU79aCee.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
- package/server/record-CN0pj4_5.js +3 -0
- package/server/{record-update-D3N6WMFR.js → record-update-bLJxAXH4.js} +1 -1
- package/server/record-update-dE1Aw83j.js +310 -0
- package/server/{recovery-trip-DkzJSej9.js → recovery-trip-BvRWfUXM.js} +2 -2
- package/server/{release-engine-DMINVN8S.js → release-engine-Cx48W7z8.js} +5 -5
- package/server/{release-set-DeUSOEHy.js → release-set-CQfuN9-v.js} +3 -3
- package/server/{remote-b-c5bOce.js → remote-C_2hasl7.js} +3 -3
- package/server/{remote-Dr5kGYSZ.js → remote-ChgimyYa.js} +3 -3
- package/server/{remote-agents-Ct_WOyke.js → remote-agents-By1ige5O.js} +6 -6
- package/server/{remote-agents-D6O_zETW.js → remote-agents-CA3Ihlxj.js} +1 -1
- package/server/{remote-completion-Dca3hAaa.js → remote-completion-fVe9e_3u.js} +12 -12
- package/server/resume-BFv1PGpA.js +3 -0
- package/server/{review-agent-CThvgK2r.js → review-agent-CIGOQYBD.js} +29 -25
- package/server/{review-agent-CCum8sGe.js → review-agent-DNboMyW4.js} +1 -1
- package/server/{review-artifacts-CXywD0F2.js → review-artifacts-nRDPuMxd.js} +5 -5
- package/server/{review-context-OYfKUprb.js → review-context-2uj-YQ8J.js} +70 -26
- package/server/review-status-btEYlaxA.js +3 -0
- package/server/{review-status-enrichment-crNAtIpL.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
- package/server/{review-status-DFRjDFef.js → review-status-kZj_KyCk.js} +77 -28
- package/server/{review-status-sync-DpAMD_WO.js → review-status-sync-BTOpxtTC.js} +10 -5
- package/server/{review-status-sync-D60PJWNL.js → review-status-sync-DSDK3OMy.js} +1 -1
- package/server/{review-verdict-feedback-CpUZl5aE.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
- package/server/{review-verdict-feedback-JImjut0z.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
- package/server/{rollup-CZ02qgxk.js → rollup-BKQC7jp4.js} +1 -1
- package/server/{rollup-SyuF09e4.js → rollup-FGsKki9R.js} +8 -8
- package/server/{scanner-Br0Z5S6R.js → scanner-CnqEZeDy.js} +45 -14
- package/server/{sequence-io-fxU0DlwW.js → sequence-io-D909zgeH.js} +4 -4
- package/server/{sequencer-agent-B5YC5XVP.js → sequencer-agent-CzkcK6P5.js} +5 -5
- package/server/server.js +2961 -919
- package/server/{service-Bagb90KZ.js → service-CLeAoU6G.js} +55 -54
- package/server/{session-fork-BqQxd-V6.js → session-fork-CHI1XvL9.js} +2 -2
- package/server/{session-history-XdS0JKp3.js → session-history-BT3IvqhC.js} +4 -4
- package/server/settings-66A6uvIA.js +2 -0
- package/server/{settings-BNbocWOg.js → settings-BTMvpNFU.js} +3 -3
- package/server/{settings-uLc6DEYI.js → settings-C0zgxOGf.js} +2 -2
- package/server/{shadow-engineering-D4X_s3fA.js → shadow-engineering-BJfgm-hX.js} +2 -2
- package/server/{shadow-state-C_NkP-sa.js → shadow-state-7a-524T8.js} +2 -2
- package/server/{shadow-state-CbvsN3qG.js → shadow-state-DnDyjujH.js} +1 -1
- package/server/{shadow-utils-CYMRPeRT.js → shadow-utils-Db3oroFG.js} +2 -2
- package/server/{ship-log-__QtAFXG.js → ship-log-D9MlVzYU.js} +1 -1
- package/server/{smart-compaction-jdMkG1vo.js → smart-compaction-CV2ukKND.js} +1 -1
- package/server/{smart-compaction-CLZOWin1.js → smart-compaction-KCYScAU1.js} +7 -7
- package/server/{spawn-planning-session-D5OXo8pT.js → spawn-planning-session-DKpdFyOC.js} +35 -27
- package/server/{spawn-planning-session-8D6mE033.js → spawn-planning-session-qUC2VWu3.js} +1 -1
- package/server/{specialist-completion-CqmduO92.js → specialist-completion-Ky9wCDpb.js} +1 -1
- package/server/{specialist-context-CJ-QjFR-.js → specialist-context-Bn3dCGS2.js} +5 -5
- package/server/{specialist-handoff-logger-Dnjlwt7g.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
- package/server/{specialist-logs-CQnKzuZs.js → specialist-logs-C5p8G7tx.js} +3 -3
- package/server/{specialists-Bg9v4z3F.js → specialists-CC4r-c2s.js} +1015 -460
- package/server/{specialists-D0gGXMZx.js → specialists-CShuVGWT.js} +1 -1
- package/server/specialists-DM6bWjsi.js +3 -0
- package/server/{specialists-CwZHb5cb.js → specialists-jiuuyVkp.js} +66 -74
- package/server/specs-C8Wsn2XO.js +3 -0
- package/server/{src-BMMoA_ba.js → src-CXmtj0im.js} +6 -6
- package/server/{src-Bqdtd6po.js → src-CdmnTM2m.js} +5 -5
- package/server/{src-k039WVYY.js → src-DtcUOZCq.js} +112 -18
- package/server/stack-health-Bn3o8FBX.js +3 -0
- package/server/{stack-health-C-ifC7b0.js → stack-health-DxSdG9cW.js} +63 -9
- package/server/{stale-task-claims-L7pJkQFL.js → stale-task-claims-KJKxxiiQ.js} +4 -4
- package/server/{staleness-_Tr-GwdA.js → staleness-CT34nwr9.js} +1 -1
- package/server/{staleness-BID1BKdr.js → staleness-DPm7ClwA.js} +15 -3
- package/server/{state-home-CONQvZR0.js → state-home-Cn_Qu8IX.js} +96 -44
- package/server/{state-migrate-BeBW0KXA.js → state-migrate-BGg2ZaOt.js} +12 -3
- package/server/{stuck-remediation-CKnIryGT.js → stuck-remediation-DYuPRYYw.js} +307 -26
- package/server/{stuck-remediation-CsGD5Ksb.js → stuck-remediation-s9_2qfi6.js} +1 -1
- package/server/{substrate-bug-weights-service-CpIZILj9.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
- package/server/{summary-fork-bX6ax6X7.js → summary-fork-D1RAk9rJ.js} +78 -12
- package/server/{summary-fork-agEMsPSo.js → summary-fork-DpcxN9tf.js} +2 -2
- package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-Csw5tqfJ.js} +2 -41
- package/server/supervisor/pty-supervisor.js +2 -1
- package/server/supervisor/pty-token-x-ea28Us.js +43 -0
- package/server/supervisor-FTJAIsAK.js +2 -0
- package/server/{supervisor-Ctt4eRYz.js → supervisor-wM4ooB5O.js} +3 -3
- package/server/{swarm-readiness-DdmJVX7y.js → swarm-readiness-DlP_UjHq.js} +4 -4
- package/server/{system-prerequisites-DSXBvffY.js → system-prerequisites-DUDj1YHf.js} +56 -29
- package/server/{teardown-workspace-DDCf5n-a.js → teardown-workspace-DeTTImn-.js} +15 -15
- package/server/{test-agent-queue-BJZ9Nfcc.js → test-agent-queue-MbxX5vqq.js} +7 -7
- package/server/{test-verdict-Cp5tljlJ.js → test-verdict-bWYBtqBg.js} +1 -1
- package/server/{test-verdict-D_-sXIz_.js → test-verdict-gscuksPv.js} +1 -1
- package/server/{tldr-daemon-B8_oT5gx.js → tldr-daemon-BYFkts95.js} +1 -1
- package/server/{tldr-daemon-BQFmmFp0.js → tldr-daemon-C-69c3OI.js} +2 -2
- package/server/tmux-B6z7h_vZ.js +3 -0
- package/server/{tmux-L5LgvGLp.js → tmux-R7N7y-Mh.js} +76 -44
- package/server/{token-BkQLy4yS.js → token-BK6t8BIT.js} +2 -2
- package/server/token-util-DuPuNriz.js +3 -0
- package/server/{token-util-DI8sGlmF.js → token-util-DxXu-vd1.js} +1 -1
- package/server/{tracker-config-DdT-nUAM.js → tracker-config-G6latr8C.js} +2 -2
- package/server/{tracker-utils-DV3h1FYG.js → tracker-utils-B4ylXZQK.js} +1 -1
- package/server/{tracker-utils-CawsPSS2.js → tracker-utils-DHv5pSDT.js} +2 -2
- package/server/{traefik-connect-C6mJckNs.js → traefik-connect-Df2uXPsQ.js} +1 -1
- package/server/{tunnel-IdK1iTHx.js → tunnel-CDVKJpRv.js} +3 -3
- package/server/{tunnel-BIFl98rc.js → tunnel-DGdUkGoZ.js} +1 -1
- package/server/{types-7-GnJn0t.js → types-5M0lupud.js} +1 -1
- package/server/{uat-train-0Ujk8GCv.js → uat-train-B05BWkp-.js} +1 -1
- package/server/{uat-train-j0cPeMSj.js → uat-train-DDSrSoV1.js} +28 -28
- package/server/validate-IfDGkaVR.js +177 -0
- package/server/{validation-DcAgXTQp.js → validation-CC9OPqJZ.js} +1 -1
- package/server/{validation-CabEISJT.js → validation-Dw1pzDzr.js} +259 -9
- package/server/{verification-artifact-Ck1tefmz.js → verification-artifact-B3itKTxu.js} +1 -1
- package/server/{verification-artifact-BuTA1QbL.js → verification-artifact-TVFSz_q1.js} +1 -1
- package/server/{verification-runner-DlJezzef.js → verification-runner-BW4HOKAz.js} +1 -1
- package/server/{verification-runner-FiuAZ-H2.js → verification-runner-CkgX6EtI.js} +174 -124
- package/server/{vtt-parser-BnRsYzcz.js → vtt-parser-DYPbKcIJ.js} +1 -1
- package/server/{work-agent-prompt-DLthEPAq.js → work-agent-prompt-Du8Vh2aJ.js} +13 -13
- package/server/workflows-BQu4RFQ-.js +2 -0
- package/server/{workflows-BZNNYkGC.js → workflows-mbQzh6mQ.js} +39 -77
- package/server/{workspace-3IC-UkAi.js → workspace--8tnhDI0.js} +1 -1
- package/server/{workspace-D9ppycdg.js → workspace-BPUws1-_.js} +3 -3
- package/server/{workspace-config-Bigl_-Lk.js → workspace-config-CIVWZOQr.js} +1 -1
- package/server/{workspace-manager-ClkCIWTe.js → workspace-manager-CBhNdzE4.js} +76 -18
- package/server/workspace-manager-CWT55qeI.js +3 -0
- package/server/{workspace-metadata-BE0efUv_.js → workspace-metadata-BzHnwwX4.js} +1 -1
- package/server/{workspace-metadata-tiSRIWJP.js → workspace-metadata-_WygnyoX.js} +2 -2
- package/server/{workspaces-CFPcL0vl.js → workspaces-Do_9J0LQ.js} +309 -124
- package/sync-sources/agents/pan-inspect-agent.md +1 -1
- package/sync-sources/agents/pan-merge-agent.md +1 -1
- package/sync-sources/agents/pan-planning-agent.md +4 -4
- package/sync-sources/agents/pan-work-agent.md +1 -1
- package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
- package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
- package/sync-sources/hooks/record-cost-event.js +369 -75
- package/sync-sources/hooks/session-start-hook +7 -0
- package/sync-sources/hooks/work-agent-stop-hook +1 -1
- package/sync-sources/rules/per-bead-durability.md +1 -1
- package/sync-sources/rules/prd-authoring.md +1 -1
- package/sync-sources/skills/feature-work/SKILL.md +1 -1
- package/sync-sources/skills/okf/README.md +11 -3
- package/sync-sources/skills/okf/SKILL.md +12 -1
- package/sync-sources/skills/okf/docs/USAGE.md +15 -0
- package/sync-sources/skills/okf/references/overdeck.md +28 -0
- package/sync-sources/skills/pan/SKILL.md +2 -2
- package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
- package/sync-sources/skills/pan-approve/SKILL.md +1 -1
- package/sync-sources/skills/pan-close/SKILL.md +1 -1
- package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
- package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
- package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
- package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
- package/sync-sources/skills/pan-orders/SKILL.md +33 -0
- package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
- package/sync-sources/skills/pan-plan/SKILL.md +6 -6
- package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
- package/sync-sources/skills/pan-recap/SKILL.md +2 -2
- package/sync-sources/skills/pan-review/SKILL.md +1 -1
- package/sync-sources/skills/pan-start/SKILL.md +7 -3
- package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
- package/sync-sources/skills/pan-sync/SKILL.md +1 -1
- package/sync-sources/skills/pan-task/SKILL.md +2 -2
- package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
- package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
- package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
- package/sync-sources/skills/plan/SKILL.md +11 -11
- package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
- package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
- package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
- package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
- package/server/agent-state-Co5Sy2Fw.js +0 -3
- package/server/agents-DyHKlq1I.js +0 -3
- package/server/cli-BRORS9qY.js +0 -3
- package/server/codex-DNyiQDKW.js +0 -3
- package/server/context-layers-15gDOk20.js +0 -165
- package/server/context-layers-DlQKkHH2.js +0 -4
- package/server/deacon-swarm-CV54eNmU.js +0 -2
- package/server/dist-j64RzSrQ.js +0 -3
- package/server/flywheel-6WHU4O7A.js +0 -207
- package/server/flywheel-COR0mbRI.js +0 -522
- package/server/flywheel-Ctr5uuvo.js +0 -2
- package/server/forge-B0_opi-V.js +0 -2
- package/server/git-utils-CsKGnzFA.js +0 -3
- package/server/hume-BmhvfVbV.js +0 -3
- package/server/inspect-agent-Dq0z1k3H.js +0 -2
- package/server/layers-Cp1To4L8.js +0 -93
- package/server/lifecycle-io-DmY2qwCn.js +0 -3
- package/server/merge-blockers-BYjeXrVN.js +0 -41
- package/server/merge-ops-DwWCkSgo.js +0 -2
- package/server/merge-set-DiISXcC-.js +0 -139
- package/server/projects-BKkwpH6q.js +0 -3
- package/server/public/assets/index-Bdc4V9ba.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +0 -1
- package/server/rally-OSJXdiHK.js +0 -3
- package/server/rebuild-stack-CKjJAI8L.js +0 -3
- package/server/record-rwK-nKv_.js +0 -3
- package/server/record-update-Crz74r-6.js +0 -168
- package/server/resume-wZZsWtzz.js +0 -3
- package/server/review-status-Bnh-rdkY.js +0 -3
- package/server/settings-BlUsVaUc.js +0 -2
- package/server/specialists-Dqe6_HE5.js +0 -3
- package/server/specs-BhOKBzqk.js +0 -3
- package/server/stack-health-Bd06frFn.js +0 -3
- package/server/supervisor-COVHrBTg.js +0 -2
- package/server/tmux-BAvtac_u.js +0 -3
- package/server/token-util-BArZLN6w.js +0 -3
- package/server/workflows-C4mR0Reb.js +0 -2
- 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 {
|
|
3
|
-
import { o as getHarnessBehavior } from "./src-
|
|
4
|
-
import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-
|
|
5
|
-
import { r as parseCodexSessionSync, t as init_codex_parser } from "./codex-parser-
|
|
6
|
-
import { t as init_behavior } from "./behavior-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
2064
|
+
//# sourceMappingURL=conversation-service-DPJ71F33.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
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-
|
|
4
|
-
import { a as init_event_store, n as getEventStore } from "./event-store-
|
|
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-
|
|
1588
|
+
//# sourceMappingURL=conversations-6AfUfbwc.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
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-
|
|
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-
|
|
3
|
-
import { i as init_events, t as appendCostEventSync } from "./events-
|
|
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-
|
|
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 {
|
|
3
|
-
import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-
|
|
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-
|
|
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-
|
|
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/
|
|
5
|
+
//#region ../../lib/xbrief/dag.ts
|
|
6
6
|
/**
|
|
7
|
-
* Groups actionable
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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("
|
|
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-
|
|
382
|
+
//# sourceMappingURL=dag-B1ucnjDU.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-
|
|
2
|
-
import { o as getSetting, s as init_control_settings, w as setSetting } from "./control-settings-
|
|
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-
|
|
4
|
-
import { t as listSubstrateBugWeights } from "./substrate-bug-weights-service-
|
|
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-
|
|
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-
|
|
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-
|
|
78
|
+
const { unshareArtifactBySlugJob } = await import("./artifact-index-jobs-CbEDfCDu.js");
|
|
79
79
|
return unshareArtifactBySlugJob(payload);
|
|
80
80
|
}
|
|
81
81
|
}
|