@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
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: write-xbrief
|
|
3
|
+
description: >
|
|
4
|
+
Write an xBRIEF spec and continue.json directly — without launching the interactive
|
|
5
|
+
planning agent. The workspace working copy deliberately remains .pan/spec.vbrief.json
|
|
6
|
+
for legacy compatibility. Use when the work is well-understood
|
|
7
|
+
and the agent can author the plan from the issue body and codebase alone.
|
|
8
|
+
Also use when you ARE the work agent and need to self-plan before implementing.
|
|
9
|
+
Covers the full xBRIEF v0.8 schema, continue.json format, task sizing rules,
|
|
10
|
+
inspection gates, and the `pan plan finalize` handoff command.
|
|
11
|
+
triggers:
|
|
12
|
+
- write xbrief
|
|
13
|
+
- create xbrief
|
|
14
|
+
- write spec.vbrief.json
|
|
15
|
+
- skip planning agent
|
|
16
|
+
- self-plan
|
|
17
|
+
- author plan
|
|
18
|
+
- create plan manually
|
|
19
|
+
- write plan without planning agent
|
|
20
|
+
allowed-tools:
|
|
21
|
+
- Bash
|
|
22
|
+
- Read
|
|
23
|
+
- Write
|
|
24
|
+
- Grep
|
|
25
|
+
- Glob
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Write xBRIEF — Direct Plan Authoring
|
|
29
|
+
|
|
30
|
+
Use this skill when you want to author an xBRIEF plan directly, bypassing the interactive planning agent. This is appropriate when:
|
|
31
|
+
|
|
32
|
+
- The work is well-scoped and doesn't need a Q&A discovery session
|
|
33
|
+
- You are a work agent that received an issue without a pre-existing plan
|
|
34
|
+
- The issue is small enough that a full planning session would cost more than the work itself
|
|
35
|
+
- You need to rewrite or patch a broken xBRIEF before continuing work
|
|
36
|
+
|
|
37
|
+
After writing the plan, run `pan plan finalize` to materialize xBRIEF tasks and promote the spec to the canonical state worktree.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Step 1 — Explore First
|
|
42
|
+
|
|
43
|
+
Before writing a single line of JSON, read the issue and explore the relevant code. A plan written without codebase context will have wrong file paths, wrong difficulty estimates, and spurious edges.
|
|
44
|
+
|
|
45
|
+
Minimum exploration:
|
|
46
|
+
- Read the issue body and the canonical PRD at `${OVERDECK_HOME}/state/<project>/drafts/<issue-id-lowercase>.md`
|
|
47
|
+
- Grep for the primary symbols, commands, or files the issue mentions
|
|
48
|
+
- Identify which subsystems are affected and how many files will change
|
|
49
|
+
- Check `${OVERDECK_HOME}/state/<project>/specs/` for an existing issue spec
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Step 2 — Write `.pan/spec.vbrief.json`
|
|
54
|
+
|
|
55
|
+
The file goes at `.pan/spec.vbrief.json` in the workspace root and MUST conform to xBRIEF v0.8. This workspace-only filename is a deliberate legacy-compatibility path; finalized canonical specs use the `.xbrief.json` extension.
|
|
56
|
+
|
|
57
|
+
### Full schema
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"xBRIEFInfo": {
|
|
62
|
+
"version": "0.8",
|
|
63
|
+
"created": "<ISO 8601 timestamp>",
|
|
64
|
+
"author": "overdeck/<VERSION>",
|
|
65
|
+
"description": "Plan for <ISSUE-ID>: <issue title>"
|
|
66
|
+
},
|
|
67
|
+
"plan": {
|
|
68
|
+
"id": "<issue-id-lowercase>",
|
|
69
|
+
"title": "<issue title>",
|
|
70
|
+
"status": "approved",
|
|
71
|
+
"uid": "<UUID v4>",
|
|
72
|
+
"author": "agent:<model-slug>",
|
|
73
|
+
"sequence": 1,
|
|
74
|
+
"created": "<ISO 8601 timestamp>",
|
|
75
|
+
"updated": "<ISO 8601 timestamp>",
|
|
76
|
+
"references": [
|
|
77
|
+
{ "uri": "<issue URL>", "label": "<ISSUE-ID>", "type": "issue" }
|
|
78
|
+
],
|
|
79
|
+
"tags": ["<relevant tags>"],
|
|
80
|
+
"narratives": {
|
|
81
|
+
"Problem": "<what problem this solves>",
|
|
82
|
+
"Proposal": "<the approach chosen>",
|
|
83
|
+
"NonGoals": "<explicitly out of scope; behaviors this issue must NOT introduce — one per line, prefixed '- '>"
|
|
84
|
+
},
|
|
85
|
+
"autoDecisions": [],
|
|
86
|
+
"items": [
|
|
87
|
+
{
|
|
88
|
+
"id": "<short-kebab-id>",
|
|
89
|
+
"title": "<task title>",
|
|
90
|
+
"status": "pending",
|
|
91
|
+
"priority": "medium",
|
|
92
|
+
"created": "<ISO 8601 timestamp>",
|
|
93
|
+
"metadata": {
|
|
94
|
+
"difficulty": "trivial|simple|medium|complex|expert",
|
|
95
|
+
"kind": "docs|api|backend|frontend|infra|test|refactor|design|spike",
|
|
96
|
+
"issueLabel": "<issue-id-lowercase>",
|
|
97
|
+
"requiresInspection": false,
|
|
98
|
+
"inspectionDepth": "fast",
|
|
99
|
+
"files_scope": ["src/path/to/file.ts"],
|
|
100
|
+
"files_scope_confidence": "high",
|
|
101
|
+
"verify_commands": ["npm run typecheck"],
|
|
102
|
+
"expected_outputs": ["typecheck completes without errors"],
|
|
103
|
+
"readiness": "ready",
|
|
104
|
+
"traces": ["FR-1", "NFR-2"]
|
|
105
|
+
},
|
|
106
|
+
"narrative": { "Action": "<what needs to be done>" },
|
|
107
|
+
"items": [
|
|
108
|
+
{
|
|
109
|
+
"id": "<parent-id>.ac1",
|
|
110
|
+
"title": "<specific testable acceptance criterion>",
|
|
111
|
+
"status": "pending",
|
|
112
|
+
"metadata": { "kind": "acceptance_criterion" }
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"edges": [
|
|
118
|
+
{ "from": "<source-item-id>", "to": "<target-item-id>", "type": "blocks" }
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Field rules
|
|
125
|
+
|
|
126
|
+
| Field | Rule |
|
|
127
|
+
|-------|------|
|
|
128
|
+
| `plan.id` | Issue ID in **lowercase** — e.g. `"pan-1234"`. Never `issueId`, never `issue_id`. |
|
|
129
|
+
| `plan.uid` | Fresh UUID v4. Generate with `node -e "console.log(crypto.randomUUID())"`. |
|
|
130
|
+
| `plan.status` | Must be `"approved"` when written by a self-planning agent (skip `draft`/`proposed`). |
|
|
131
|
+
| `items[].status` | One of: `draft`, `proposed`, `approved`, `pending`, `running`, `completed`, `blocked`, `cancelled`, `failed`. Use `"pending"` for new items. |
|
|
132
|
+
| `items[].metadata.kind` | Required routing category: `docs`, `api`, `backend`, `frontend`, `infra`, `test`, `refactor`, `design`, or `spike`. |
|
|
133
|
+
| `plan.narratives.NonGoals` | Required narrative. List everything discovery established as out of scope (`"none"` if genuinely nothing); review enforces these as must-not constraints. |
|
|
134
|
+
| `items[].metadata.requiresInspection` | **Required on every item.** See inspection rules below. |
|
|
135
|
+
| `items[].metadata.inspectionDepth` | `"fast"` (default) or `"deep"`. Only matters when `requiresInspection: true`. |
|
|
136
|
+
| `items[].metadata.files_scope` | Required `string[]` of files/globs this item is expected to touch. Use concrete paths or narrow globs, not broad repo-wide patterns. |
|
|
137
|
+
| `items[].metadata.files_scope_confidence` | Required confidence in `files_scope`: `"high"`, `"medium"`, or `"low"`. |
|
|
138
|
+
| `items[].metadata.verify_commands` | Required for slot-eligible items. List commands that verify this item before slot merge, e.g. `["npm run typecheck", "npx vitest run tests/unit/foo.test.ts"]`. |
|
|
139
|
+
| `items[].metadata.expected_outputs` | Required for slot-eligible items. List the observable evidence expected from `verify_commands`, e.g. `["foo.test.ts passes"]`. |
|
|
140
|
+
| `items[].metadata.readiness` | Required tri-state swarm readiness: `"ready"` for parallel-safe work, `"sequential"` for intentionally serialized work, `"needs_refinement"` when the item is not ready to dispatch. |
|
|
141
|
+
| `items[].metadata.traces` | Optional `string[]` of PRD requirement IDs (`FR-1`, `NFR-2`) this item satisfies. |
|
|
142
|
+
| nested `items` with `metadata.kind: "acceptance_criterion"` | Each item must have at least one acceptance-criterion child item. |
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Step 3 — Write `.pan/continue.json`
|
|
147
|
+
|
|
148
|
+
The continue file records decisions and hazards so the work agent (and review/test agents) have context that isn't in the xBRIEF narrative.
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"version": "1",
|
|
153
|
+
"issueId": "<ISSUE-ID-UPPERCASE>",
|
|
154
|
+
"created": "<ISO 8601 timestamp>",
|
|
155
|
+
"updated": "<ISO 8601 timestamp>",
|
|
156
|
+
"gitState": { "branch": "<current branch>", "sha": "<short sha>", "dirty": false },
|
|
157
|
+
"decisions": [
|
|
158
|
+
{ "id": "D1", "summary": "<decision text>", "recordedAt": "<ISO 8601 timestamp>" }
|
|
159
|
+
],
|
|
160
|
+
"hazards": [
|
|
161
|
+
{ "id": "H1", "summary": "<risk or edge case>", "mitigation": "<how to handle it>" }
|
|
162
|
+
],
|
|
163
|
+
"resumePoint": null,
|
|
164
|
+
"tasksMapping": {},
|
|
165
|
+
"agentModel": "agent:<model-slug>",
|
|
166
|
+
"sessionHistory": [
|
|
167
|
+
{
|
|
168
|
+
"timestamp": "<ISO 8601 timestamp>",
|
|
169
|
+
"reason": "planning",
|
|
170
|
+
"note": "Self-authored plan (no planning agent)",
|
|
171
|
+
"agentModel": "agent:<model-slug>"
|
|
172
|
+
}
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Rules:
|
|
178
|
+
- `version` must be `"1"`
|
|
179
|
+
- `issueId` must be uppercase (e.g. `"PAN-1234"`)
|
|
180
|
+
- `resumePoint` stays `null` — the work agent populates it when it begins
|
|
181
|
+
- `tasksMapping` stays `{}` — `pan plan finalize` populates it
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Step 4 — Finalize
|
|
186
|
+
|
|
187
|
+
From the workspace root, run:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
pan plan finalize
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
This atomically:
|
|
194
|
+
1. Reads the legacy-compatible workspace path `.pan/spec.vbrief.json`
|
|
195
|
+
2. Creates xBRIEF tasks through the canonical writer (one per `items[]` entry, edges respected)
|
|
196
|
+
3. Sets `plan.status` to `"proposed"`
|
|
197
|
+
4. Promotes the canonical spec to `${OVERDECK_HOME}/state/<project>/specs/<YYYY-MM-DD>-<ISSUE>-<slug>.xbrief.json`
|
|
198
|
+
5. Commits and pushes `overdeck-state`, then transitions the tracker issue to Planned
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Task sizing rules
|
|
204
|
+
|
|
205
|
+
Default to **many small xBRIEF tasks** over a few large ones. A well-sized task:
|
|
206
|
+
|
|
207
|
+
- Has one focused change (if you need "and" in the title, it's two xBRIEF tasks)
|
|
208
|
+
- Is independently reviewable from its diff alone
|
|
209
|
+
- Leaves the tree in a working state if merged alone
|
|
210
|
+
- Has a testable acceptance criterion
|
|
211
|
+
|
|
212
|
+
**Heuristics:**
|
|
213
|
+
- One renamed command = one task
|
|
214
|
+
- One moved file = one task (unless mechanically identical batch → sub-items under one task)
|
|
215
|
+
- One new API endpoint = one task
|
|
216
|
+
- One schema migration = one task
|
|
217
|
+
- One doc update = one task (or one per logical cluster, not "update all docs")
|
|
218
|
+
|
|
219
|
+
When in doubt, split. Too-small xBRIEF tasks: mild overhead. Too-large xBRIEF tasks: reviewers can't reason about them, agents deliver partial results, and the inspection gate can't verify mid-implementation.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Edge semantics
|
|
224
|
+
|
|
225
|
+
Add an edge only when there is a **real** dependency:
|
|
226
|
+
|
|
227
|
+
| When to add `blocks` edge | When NOT to add |
|
|
228
|
+
|---------------------------|-----------------|
|
|
229
|
+
| B consumes a file/type/value A produces | Narrative flow ("feels like it should come second") |
|
|
230
|
+
| Both items modify the same file | Readability preference |
|
|
231
|
+
| B can't start until A reaches a specific state | Defensive sequencing "just in case" |
|
|
232
|
+
|
|
233
|
+
Absent edges = permission for the work agent to run items in parallel. A spurious edge silently forces serialization that was never intended.
|
|
234
|
+
|
|
235
|
+
Edge types: `blocks` (hard), `informs` (soft/advisory), `invalidates`, `suggests`
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Inspection gate (`requiresInspection`)
|
|
240
|
+
|
|
241
|
+
Set `requiresInspection: true` **only** when a wrong implementation would cascade into downstream xBRIEF tasks before the verification gate catches it:
|
|
242
|
+
|
|
243
|
+
- **Foundation for downstream xBRIEF tasks** — subsequent xBRIEF tasks depend on this task's interfaces, types, or module boundaries
|
|
244
|
+
- **Architectural decision crystallizing in code** — naming a public API, choosing a library boundary, picking an event shape
|
|
245
|
+
- **Spec ambiguity risk** — the description is broad enough that two very different diffs could both look "done"
|
|
246
|
+
- **Security/auth surface** — defects here propagate into later xBRIEF tasks assuming the security posture
|
|
247
|
+
- **Cross-cutting protocol or schema** — wire format, DB migration, RPC contract, event payload
|
|
248
|
+
|
|
249
|
+
Set `requiresInspection: false` for:
|
|
250
|
+
- Mechanical changes (flag flip, rename, single-file tweak)
|
|
251
|
+
- Leaf xBRIEF tasks (no downstream task depends on their internals)
|
|
252
|
+
- Tests, docs, comment-only updates
|
|
253
|
+
- Wrongs that surface immediately at typecheck/lint
|
|
254
|
+
|
|
255
|
+
When `requiresInspection: true`, you **must** also set `metadata.foundationFor: ["<task-id>", ...]` listing the downstream xBRIEF tasks that would need to be redone if this one were wrong. An empty `foundationFor` on an inspection task is a planning error — flip it back to `false`.
|
|
256
|
+
|
|
257
|
+
Most plans have 0–2 inspection xBRIEF tasks. More than 3 suggests the xBRIEF tasks are too large.
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Difficulty rubric
|
|
262
|
+
|
|
263
|
+
| Level | When | Typical model |
|
|
264
|
+
|-------|------|---------------|
|
|
265
|
+
| `trivial` | Typo, comment, formatting only | haiku |
|
|
266
|
+
| `simple` | Bug fix, single file, obvious change | haiku |
|
|
267
|
+
| `medium` | New feature, 3–5 files, standard patterns | sonnet |
|
|
268
|
+
| `complex` | Refactor, migration, 6+ files, some risk | sonnet |
|
|
269
|
+
| `expert` | Architecture, security, performance, high risk | opus |
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Quick checklist
|
|
274
|
+
|
|
275
|
+
Before running `pan plan finalize`:
|
|
276
|
+
|
|
277
|
+
- [ ] `.pan/spec.vbrief.json` has exactly two top-level keys: `xBRIEFInfo` and `plan`
|
|
278
|
+
- [ ] `plan.id` is lowercase issue ID
|
|
279
|
+
- [ ] `plan.uid` is a fresh UUID v4
|
|
280
|
+
- [ ] `plan.status` is `"approved"`
|
|
281
|
+
- [ ] Every item has `metadata.kind` and `metadata.requiresInspection`
|
|
282
|
+
- [ ] Every item has `metadata.files_scope`, `metadata.files_scope_confidence`, and `metadata.readiness`
|
|
283
|
+
- [ ] Every slot-eligible item has `metadata.verify_commands` and `metadata.expected_outputs`
|
|
284
|
+
- [ ] Every item has at least one nested `items` AC entry
|
|
285
|
+
- [ ] `foundationFor` populated on every `requiresInspection: true` item
|
|
286
|
+
- [ ] No spurious edges
|
|
287
|
+
- [ ] `.pan/continue.json` written with at least one `decisions[]` entry
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## See also
|
|
292
|
+
|
|
293
|
+
- `docs/XBRIEF.md` — full schema reference and lifecycle states
|
|
294
|
+
- `/pan-plan` — start the interactive planning agent instead
|
|
295
|
+
- `pan plan finalize --help` — finalization flags
|
|
@@ -94,7 +94,7 @@ git push -u origin $(git branch --show-current)
|
|
|
94
94
|
# 4. Verify clean state
|
|
95
95
|
git status # Must show "nothing to commit"
|
|
96
96
|
|
|
97
|
-
# 5. Update
|
|
97
|
+
# 5. Update xBRIEF item state
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
**If ANY step fails, fix it before declaring work complete.**
|
|
@@ -30,6 +30,16 @@ http:
|
|
|
30
30
|
service: overdeck-api
|
|
31
31
|
tls: {}
|
|
32
32
|
|
|
33
|
+
# Origin-isolated OpenKnowledge viewers. The dashboard server derives the
|
|
34
|
+
# project from the hex-encoded host label and proxies every root-relative
|
|
35
|
+
# HTTP/WebSocket path to that project's viewer process.
|
|
36
|
+
overdeck-knowledge-viewer:
|
|
37
|
+
rule: "HostRegexp(`^knowledge-[a-f0-9]+\\.{{TRAEFIK_DOMAIN}}$`)"
|
|
38
|
+
entryPoints:
|
|
39
|
+
- websecure
|
|
40
|
+
service: overdeck-api
|
|
41
|
+
tls: {}
|
|
42
|
+
|
|
33
43
|
# Published HTML artifacts
|
|
34
44
|
overdeck-artifacts:
|
|
35
45
|
rule: "Host(`artifacts.{{TRAEFIK_DOMAIN}}`) && PathPrefix(`/a/`)"
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { Mn as init_agent_state, Sn as clearAgentPausedSync, jn as getAgentStateSync, qn as setAgentPausedSync, wn as clearAgentTroubledSync } from "./queries-ZABd5aXP.js";
|
|
2
|
-
init_agent_state();
|
|
3
|
-
export { clearAgentPausedSync, clearAgentTroubledSync, getAgentStateSync, setAgentPausedSync };
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { $ as stopAgent, A as buildCompactRecoverySeed, An as getAgentStateFilePath, B as appendActivity, Bn as recordAgentFailure, Bt as OHMYPI_AGENT_READY_TIMEOUT_SECONDS, Cn as clearAgentTroubled, D as detectCrashedAgents, Dn as getAgentDir, Dt as assertWorkspaceStackHealthyForSpawn, E as autoRecoverAgents, Fn as isRole, Gn as saveAgentStateSync, Gt as getProviderAuthMode, H as getLatestSessionId, Ht as getAgentRuntimeBaseCommand, Jn as setAgentYieldedSync, Jt as injectPiConversationMemory, K as saveSessionId, Kn as setAgentPaused, Kt as getRoleRuntimeBaseCommand, L as messageAgent, Ln as markAgentRunningState, M as resumeAgent, Mt as transitionIssueToInProgress, Nn as isAgentPaused, Nt as transitionIssueToInReview, O as recoverAgent, Ot as buildAgentLaunchConfig, Pn as isAgentTroubled, Rn as markAgentStoppedState, Sn as clearAgentPausedSync, Tn as clearYieldForResumeSync, U as getLatestSessionIdSync, Un as resetAgentFailureCount, V as getActivity, Vn as recordAgentFailureSync, Vt as describeOhmypiSpawnFailure, W as getSessionId, Wn as saveAgentState, X as spawnAgent, Xn as writeAgentStateJsonSync, Xt as waitForPromptReady, Yn as wipeAgentStateDirs, Yt as roleAgentDefinitionPath, Z as spawnRun, _n as writeChannelsBridgeMcpConfig, _t as deliverAgentPermissionDecision, a as listRunningAgentsSync, an as determineModel, ar as normalizeAgentId, bn as __testInternals, bt as setAgentDeliveryMethod, c as compactAtTierRunBoundary, cn as getProviderTmuxFlags, cr as waitForReadySignal, d as replayStandingAgent, et as stopAgentSync, f as shouldReplayCompactAtTierRunBoundary, fr as saveAgentRuntimeState, gn as dismissDevChannelsDialog, gt as deliverAgentMessage, hn as decideSupervisorForWorkAgent, i as listRunningAgents, in as buildSpawnEnvForModel, ir as isQualifiedAgentId, jn as getAgentStateSync, jt as retrieveSpawnTimeMemoryContext, k as restartAgent, kn as getAgentState, l as contextWindowForModel, lr as getAgentRuntimeState, mn as decideChannelsForWorkAgent, o as warnOnBareNumericIssueIds, on as getProviderEnvForModel, or as resolveAgentTargetSync, pn as buildDefaultResumeContinueMessage, qn as setAgentPausedSync, r as listAgentStates, rn as buildCavemanExports, rr as clearReadySignal, s as init_agents, sn as getProviderExportsForModel, sr as waitForAgentIdle, t as dropLegacyAgentStatesMissingRoleAsync, u as replayCrashedStandingAgent, ur as getAgentRuntimeStateSync, vn as GOVERNOR_SLOT_PAUSE_REASON_PREFIX, vt as deliverInitialPromptWithRetry, wn as clearAgentTroubledSync, xn as clearAgentPaused, yn as SESSION_EXITED_BEFORE_KICKOFF, yt as deliverResumeMessageWithTranscriptConfirmation, zn as markAgentTroubled } from "./queries-ZABd5aXP.js";
|
|
2
|
-
init_agents();
|
|
3
|
-
export { GOVERNOR_SLOT_PAUSE_REASON_PREFIX, OHMYPI_AGENT_READY_TIMEOUT_SECONDS, SESSION_EXITED_BEFORE_KICKOFF, __testInternals, appendActivity, assertWorkspaceStackHealthyForSpawn, autoRecoverAgents, buildAgentLaunchConfig, buildCavemanExports, buildCompactRecoverySeed, buildDefaultResumeContinueMessage, buildSpawnEnvForModel, clearAgentPaused, clearAgentPausedSync, clearAgentTroubled, clearAgentTroubledSync, clearReadySignal, clearYieldForResumeSync, compactAtTierRunBoundary, contextWindowForModel, decideChannelsForWorkAgent, decideSupervisorForWorkAgent, deliverAgentMessage, deliverAgentPermissionDecision, deliverInitialPromptWithRetry, deliverResumeMessageWithTranscriptConfirmation, describeOhmypiSpawnFailure, detectCrashedAgents, determineModel, dismissDevChannelsDialog, dropLegacyAgentStatesMissingRoleAsync, getActivity, getAgentDir, getAgentRuntimeBaseCommand, getAgentRuntimeState, getAgentRuntimeStateSync, getAgentState, getAgentStateFilePath, getAgentStateSync, getLatestSessionId, getLatestSessionIdSync, getProviderAuthMode, getProviderEnvForModel, getProviderExportsForModel, getProviderTmuxFlags, getRoleRuntimeBaseCommand, getSessionId, injectPiConversationMemory, isAgentPaused, isAgentTroubled, isQualifiedAgentId, isRole, listAgentStates, listRunningAgents, listRunningAgentsSync, markAgentRunningState, markAgentStoppedState, markAgentTroubled, messageAgent, normalizeAgentId, recordAgentFailure, recordAgentFailureSync, recoverAgent, replayCrashedStandingAgent, replayStandingAgent, resetAgentFailureCount, resolveAgentTargetSync, restartAgent, resumeAgent, retrieveSpawnTimeMemoryContext, roleAgentDefinitionPath, saveAgentRuntimeState, saveAgentState, saveAgentStateSync, saveSessionId, setAgentDeliveryMethod, setAgentPaused, setAgentPausedSync, setAgentYieldedSync, shouldReplayCompactAtTierRunBoundary, spawnAgent, spawnRun, stopAgent, stopAgentSync, transitionIssueToInProgress, transitionIssueToInReview, waitForAgentIdle, waitForPromptReady, waitForReadySignal, warnOnBareNumericIssueIds, wipeAgentStateDirs, writeAgentStateJsonSync, writeChannelsBridgeMcpConfig };
|
package/server/cli-BRORS9qY.js
DELETED
package/server/codex-DNyiQDKW.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { a as extractThreadIdFromRollout, c as initCodexHome, f as waitForCodexRollout, l as init_codex, o as findLatestRollout, p as writeThreadId, s as findRolloutPath } from "./codex-CbmztVcc.js";
|
|
2
|
-
init_codex();
|
|
3
|
-
export { extractThreadIdFromRollout, findLatestRollout, findRolloutPath, initCodexHome, waitForCodexRollout, writeThreadId };
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import { ii as init_paths, jr as init_errors } from "./config-yaml-ig8Nwtiw.js";
|
|
3
|
-
import { o as init_layers } from "./layers-Cp1To4L8.js";
|
|
4
|
-
import "effect";
|
|
5
|
-
import "fs";
|
|
6
|
-
import "path";
|
|
7
|
-
import "os";
|
|
8
|
-
//#region ../../lib/context-layers/harness.ts
|
|
9
|
-
/**
|
|
10
|
-
* Render a canonical layer body for a single harness.
|
|
11
|
-
*
|
|
12
|
-
* Strips every `{{#harness:*}}` / `{{/harness:*}}` marker and drops the spans
|
|
13
|
-
* that are not covered by the target harness. Runs of 3+ blank lines left by
|
|
14
|
-
* removed spans collapse to a single blank line so output stays tidy.
|
|
15
|
-
*/
|
|
16
|
-
function renderForHarness(content, harness) {
|
|
17
|
-
const target = HARNESS_MARKERS[harness];
|
|
18
|
-
const openCounts = /* @__PURE__ */ new Map();
|
|
19
|
-
let out = "";
|
|
20
|
-
let lastIndex = 0;
|
|
21
|
-
const emit = (text) => {
|
|
22
|
-
let covered = false;
|
|
23
|
-
let anyOpen = false;
|
|
24
|
-
for (const [name, count] of openCounts) if (count > 0) {
|
|
25
|
-
anyOpen = true;
|
|
26
|
-
if (name === target) covered = true;
|
|
27
|
-
}
|
|
28
|
-
if (!anyOpen || covered) out += text;
|
|
29
|
-
};
|
|
30
|
-
MARKER_RE.lastIndex = 0;
|
|
31
|
-
let m;
|
|
32
|
-
while ((m = MARKER_RE.exec(content)) !== null) {
|
|
33
|
-
emit(content.slice(lastIndex, m.index));
|
|
34
|
-
const [, kind, name] = m;
|
|
35
|
-
const delta = kind === "#" ? 1 : -1;
|
|
36
|
-
openCounts.set(name, (openCounts.get(name) ?? 0) + delta);
|
|
37
|
-
lastIndex = m.index + m[0].length;
|
|
38
|
-
}
|
|
39
|
-
emit(content.slice(lastIndex));
|
|
40
|
-
return out.replace(/\n{3,}/g, "\n\n");
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Lint a context-layer template for malformed harness blocks.
|
|
44
|
-
*
|
|
45
|
-
* Errors: an unclosed `{{#harness:x}}` or a stray `{{/harness:x}}` with no
|
|
46
|
-
* matching open. Warnings: a marker naming a harness Overdeck has no
|
|
47
|
-
* adapter for (allowed for forward compatibility, surfaced so typos —
|
|
48
|
-
* `{{#harness:clade}}` — do not pass silently).
|
|
49
|
-
*/
|
|
50
|
-
function validateTemplate(content) {
|
|
51
|
-
const issues = [];
|
|
52
|
-
const openCounts = /* @__PURE__ */ new Map();
|
|
53
|
-
const seen = /* @__PURE__ */ new Set();
|
|
54
|
-
MARKER_RE.lastIndex = 0;
|
|
55
|
-
let m;
|
|
56
|
-
while ((m = MARKER_RE.exec(content)) !== null) {
|
|
57
|
-
const [, kind, name] = m;
|
|
58
|
-
seen.add(name);
|
|
59
|
-
if (kind === "#") openCounts.set(name, (openCounts.get(name) ?? 0) + 1);
|
|
60
|
-
else {
|
|
61
|
-
const next = (openCounts.get(name) ?? 0) - 1;
|
|
62
|
-
openCounts.set(name, next);
|
|
63
|
-
if (next < 0) issues.push({
|
|
64
|
-
severity: "error",
|
|
65
|
-
message: `stray closing marker {{/harness:${name}}} with no matching {{#harness:${name}}}`
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
for (const [name, count] of openCounts) if (count > 0) issues.push({
|
|
70
|
-
severity: "error",
|
|
71
|
-
message: `unclosed block: {{#harness:${name}}} opened ${count} time(s) without a matching {{/harness:${name}}}`
|
|
72
|
-
});
|
|
73
|
-
for (const name of seen) if (!KNOWN_HARNESS_MARKERS.has(name)) issues.push({
|
|
74
|
-
severity: "warning",
|
|
75
|
-
message: `unknown harness "${name}" — Overdeck ships adapters for: ${[...KNOWN_HARNESS_MARKERS].join(", ")}`
|
|
76
|
-
});
|
|
77
|
-
return {
|
|
78
|
-
ok: !issues.some((i) => i.severity === "error"),
|
|
79
|
-
issues
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
var HARNESS_MARKERS, KNOWN_HARNESS_MARKERS, MARKER_RE;
|
|
83
|
-
var init_harness = __esmMin((() => {
|
|
84
|
-
HARNESS_MARKERS = {
|
|
85
|
-
"claude-code": "claude",
|
|
86
|
-
ohmypi: "ohmypi",
|
|
87
|
-
codex: "codex"
|
|
88
|
-
};
|
|
89
|
-
KNOWN_HARNESS_MARKERS = new Set([
|
|
90
|
-
"claude",
|
|
91
|
-
"pi",
|
|
92
|
-
"ohmypi",
|
|
93
|
-
"codex"
|
|
94
|
-
]);
|
|
95
|
-
MARKER_RE = /\{\{([#/])harness:([a-zA-Z0-9_-]+)\}\}/g;
|
|
96
|
-
}));
|
|
97
|
-
//#endregion
|
|
98
|
-
//#region ../../lib/context-layers/rules.ts
|
|
99
|
-
var init_rules = __esmMin((() => {
|
|
100
|
-
init_paths();
|
|
101
|
-
}));
|
|
102
|
-
//#endregion
|
|
103
|
-
//#region ../../lib/context-layers/render.ts
|
|
104
|
-
/** True when `existing` already contains a Overdeck-managed region. */
|
|
105
|
-
function hasManagedRegion(existing) {
|
|
106
|
-
const beginIdx = existing.indexOf(REGION_BEGIN);
|
|
107
|
-
const endIdx = existing.indexOf(REGION_END);
|
|
108
|
-
return beginIdx !== -1 && endIdx !== -1 && endIdx > beginIdx;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Return `existing` with the Overdeck-managed region removed — i.e. only the
|
|
112
|
-
* hand-authored content the user owns, trimmed. When there is no region, the
|
|
113
|
-
* whole (trimmed) file is the user's. Used to decide whether a target file has
|
|
114
|
-
* pre-existing content worth preserving and backing up before first injection.
|
|
115
|
-
*/
|
|
116
|
-
function userContentOutsideRegion(existing) {
|
|
117
|
-
const beginIdx = existing.indexOf(REGION_BEGIN);
|
|
118
|
-
const endIdx = existing.lastIndexOf(REGION_END);
|
|
119
|
-
if (beginIdx !== -1 && endIdx !== -1 && endIdx > beginIdx) return (existing.slice(0, beginIdx) + existing.slice(endIdx + 29)).trim();
|
|
120
|
-
return existing.trim();
|
|
121
|
-
}
|
|
122
|
-
var REGION_BEGIN, REGION_END;
|
|
123
|
-
var init_render = __esmMin((() => {
|
|
124
|
-
init_rules();
|
|
125
|
-
init_layers();
|
|
126
|
-
REGION_BEGIN = "<!-- BEGIN OVERDECK CONTEXT — managed by `pan sync`; edit the layer source, not this region -->";
|
|
127
|
-
REGION_END = "<!-- END OVERDECK CONTEXT -->";
|
|
128
|
-
}));
|
|
129
|
-
//#endregion
|
|
130
|
-
//#region ../../lib/context-layers/assemble.ts
|
|
131
|
-
var init_assemble = __esmMin((() => {
|
|
132
|
-
init_render();
|
|
133
|
-
}));
|
|
134
|
-
//#endregion
|
|
135
|
-
//#region ../../lib/backup.ts
|
|
136
|
-
var init_backup = __esmMin((() => {
|
|
137
|
-
init_paths();
|
|
138
|
-
init_errors();
|
|
139
|
-
}));
|
|
140
|
-
//#endregion
|
|
141
|
-
//#region ../../lib/context-layers/legacy-beads-cleanup.ts
|
|
142
|
-
var init_legacy_beads_cleanup = __esmMin((() => {
|
|
143
|
-
init_backup();
|
|
144
|
-
init_render();
|
|
145
|
-
}));
|
|
146
|
-
//#endregion
|
|
147
|
-
//#region ../../lib/context-layers/migrate.ts
|
|
148
|
-
var init_migrate = __esmMin((() => {
|
|
149
|
-
init_layers();
|
|
150
|
-
}));
|
|
151
|
-
//#endregion
|
|
152
|
-
//#region ../../lib/context-layers/index.ts
|
|
153
|
-
var init_context_layers = __esmMin((() => {
|
|
154
|
-
init_harness();
|
|
155
|
-
init_layers();
|
|
156
|
-
init_rules();
|
|
157
|
-
init_render();
|
|
158
|
-
init_assemble();
|
|
159
|
-
init_legacy_beads_cleanup();
|
|
160
|
-
init_migrate();
|
|
161
|
-
}));
|
|
162
|
-
//#endregion
|
|
163
|
-
export { init_render as a, KNOWN_HARNESS_MARKERS as c, validateTemplate as d, hasManagedRegion as i, init_harness as l, REGION_BEGIN as n, userContentOutsideRegion as o, REGION_END as r, HARNESS_MARKERS as s, init_context_layers as t, renderForHarness as u };
|
|
164
|
-
|
|
165
|
-
//# sourceMappingURL=context-layers-15gDOk20.js.map
|
package/server/dist-j64RzSrQ.js
DELETED