@cleocode/cleo 2026.9.7 → 2026.9.10
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/dist/cli/index.js +3873 -2234
- package/package.json +14 -13
- package/scripts/check-cleo-tarball-size.mjs +105 -0
- package/scripts/copy-studio-dist.mjs +33 -9
- package/studio-dist/client/_app/immutable/chunks/{wI_OOyoh.js → BB7zPpV2.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{D8NsLz6i.js → BOnrCZaR.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{eK8hf4s7.js → BSRBuVG3.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/C6jhAnil.js +1 -0
- package/studio-dist/client/_app/immutable/chunks/C87Q3uxm.js +1 -0
- package/studio-dist/client/_app/immutable/chunks/{DVHIxkgs.js → CLZBEpLY.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{CqF5Lomf.js → CTLGzgdN.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{o1PZ6Kzq.js → CY3heNub.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{RptFUp2P.js → Cge6qiwc.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{BRgWBQlV.js → CnwXLaZJ.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{Bxz2A0ZC.js → DEH43YwF.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/DGftG5oL.js +3 -0
- package/studio-dist/client/_app/immutable/chunks/DX_JOBSO.js +1 -0
- package/studio-dist/client/_app/immutable/chunks/{CEqOYim7.js → DZrdToAH.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/EZwHPWle.js +2 -0
- package/studio-dist/client/_app/immutable/chunks/cWVw9W0E.js +3 -0
- package/studio-dist/client/_app/immutable/chunks/{B9psmq5-.js → rB_71s8h.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{JPJd4fEI.js → rUtW7Hx6.js} +1 -1
- package/studio-dist/client/_app/immutable/entry/app.tvu3-wbp.js +2 -0
- package/studio-dist/client/_app/immutable/entry/start.BS-rpdjH.js +1 -0
- package/studio-dist/client/_app/immutable/nodes/{0.CZzEEyVh.js → 0.DMP7swbx.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.Bj3Opbua.js → 1.CYZMFpIp.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{10.xe_Mc2Ko.js → 10.3rxHNnSx.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{11.DuKPA7JD.js → 11.B6jWv3Kz.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{12.BoZ_QrUS.js → 12.BrDHeTEq.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{13.DFJiUiv8.js → 13.CE5bd4JV.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{14.eaAlFU4w.js → 14.DgXD2LRx.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.BfXgiwMC.js → 15.Cz1KI9Fv.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16.mEwy9cqh.js → 16.K9wYQPhb.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.DP2QtQGn.js → 17.CtUmdfMg.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.Bu0054sX.js → 18.mtosd0sL.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{19.UWt6QbCm.js → 19.su55K8y_.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{2.y5jKpHiR.js → 2.mqgFVWFQ.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.B1AIHdkP.js → 20.NJuHLxuS.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{21.CpAN71H8.js → 21.BhwhdQCq.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{22.CrYKrN4c.js → 22.BmJEWwER.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{23.pGRaHQjq.js → 23.CAVIJEH-.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.BUoUu37z.js → 24.CMuXs5Sy.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/25.DhMBJYAo.js +39 -0
- package/studio-dist/client/_app/immutable/nodes/26.CJ4FA5FS.js +1 -0
- package/studio-dist/client/_app/immutable/nodes/{28.DcmYM7lb.js → 28.D64RBcfs.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{29.lbHbMqNO.js → 29.yfuBeH1x.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.Dyir4xXj.js → 3.y115j1d5.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{30.DXj0Wm2A.js → 30.1WUv5bh9.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/4.D6vXYBoQ.js +1 -0
- package/studio-dist/client/_app/immutable/nodes/{5.VWSdP7oc.js → 5.hjw2O-4e.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{6.Dl-XLwOj.js → 6.CAoDfDt6.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{7.CFuC5L-y.js → 7.CLgPSQ8Z.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{8.BCJ0DhOb.js → 8.zuaO1Hik.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{9.Bq4SUzL9.js → 9.Cdsd85m2.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/0-BQvtFOrC.js +41 -0
- package/studio-dist/server/chunks/1-Bx2_yoiK.js +9 -0
- package/studio-dist/server/chunks/{10-DvOD4ksa.js → 10-CYLc3d5x.js} +3 -3
- package/studio-dist/server/chunks/{11-DMnBZ02H.js → 11-DcIYR5vm.js} +3 -3
- package/studio-dist/server/chunks/{12-CCyRyRWX.js → 12-WE1u104t.js} +3 -3
- package/studio-dist/server/chunks/{13-Dx1c3a_X.js → 13-joBDoxhK.js} +3 -3
- package/studio-dist/server/chunks/{14-Bo-dTCaZ.js → 14-Doj5F4uJ.js} +3 -3
- package/studio-dist/server/chunks/{15-BvUNl3KL.js → 15-nQTeHGD1.js} +3 -3
- package/studio-dist/server/chunks/{16-De6EzPSa.js → 16-CcTN0e8k.js} +5 -4
- package/studio-dist/server/chunks/{17-CZNsiZhi.js → 17-DWiFnzES.js} +10 -93
- package/studio-dist/server/chunks/{18-CbxxjZox.js → 18-Dcc9GnPo.js} +5 -4
- package/studio-dist/server/chunks/{19-DqHyladS.js → 19-BAQHPrMB.js} +3 -3
- package/studio-dist/server/chunks/{2-COvmA-ZA.js → 2-DXSVVaej.js} +10 -93
- package/studio-dist/server/chunks/20-DfQlGHPW.js +57 -0
- package/studio-dist/server/chunks/{21-DXK9ptAC.js → 21-qhGjkW41.js} +4 -31
- package/studio-dist/server/chunks/{22-DD5CLWJC.js → 22-Byy16hFA.js} +3 -3
- package/studio-dist/server/chunks/23-CZpFrGp4.js +97 -0
- package/studio-dist/server/chunks/24-EEysaT9T.js +67 -0
- package/studio-dist/server/chunks/{25-CAg6Xcmn.js → 25-CgiYn70L.js} +15 -96
- package/studio-dist/server/chunks/{26-_nfVTvNi.js → 26-Cfd6BaUb.js} +12 -93
- package/studio-dist/server/chunks/{27-C9edghG4.js → 27-Cqzlh9gZ.js} +3 -2
- package/studio-dist/server/chunks/{28-VemTJGyc.js → 28-DeYe2rpm.js} +8 -62
- package/studio-dist/server/chunks/{29-CXP-m29t.js → 29-6pjLM0Z1.js} +10 -93
- package/studio-dist/server/chunks/{3-B8KhfvHp.js → 3-E_fWDAkq.js} +9 -25
- package/studio-dist/server/chunks/{30-QiM1S4cJ.js → 30-Dw317sSW.js} +10 -93
- package/studio-dist/server/chunks/{31-BwdY9NnB.js → 31-Q4kHbp8j.js} +3 -2
- package/studio-dist/server/chunks/{4-CSaG4HjO.js → 4-C9BMSh4K.js} +4 -3
- package/studio-dist/server/chunks/{5-i5ry4y3C.js → 5-C0CF4WKG.js} +3 -3
- package/studio-dist/server/chunks/{6-DR1GWBMT.js → 6-BWyOJust.js} +3 -3
- package/studio-dist/server/chunks/{7-DSNwn3aQ.js → 7-CK4MK5gy.js} +3 -3
- package/studio-dist/server/chunks/{8-Bj0bx07K.js → 8-CiX7Xk9k.js} +3 -3
- package/studio-dist/server/chunks/{9-B3Tz0mZq.js → 9-Be5118w4.js} +3 -3
- package/studio-dist/server/chunks/{HeroHeader-v4Q9vaGr.js → HeroHeader-BrGN5WPw.js} +2 -2
- package/studio-dist/server/chunks/{Sparkline-BJ-GuhRd.js → Sparkline-DU_NVxz9.js} +2 -2
- package/studio-dist/server/chunks/{StatBlock-DHJMmOCx.js → StatBlock-jNsxycS1.js} +2 -2
- package/studio-dist/server/chunks/{Tabs-DzG6Bn9a.js → Tabs-DQKDflnT.js} +2 -2
- package/studio-dist/server/chunks/_dispatch-DTWViLGL.js +145 -0
- package/studio-dist/server/chunks/{_layout.svelte-BEIGQcIv.js → _layout.svelte-CL6GfET2.js} +7 -9
- package/studio-dist/server/chunks/{_page.svelte-al08ovKm.js → _page.svelte-6iMiGR11.js} +5 -5
- package/studio-dist/server/chunks/{_page.svelte-Byz2djto.js → _page.svelte-B-YXGvAW.js} +5 -5
- package/studio-dist/server/chunks/{_page.svelte-tYN7_LXI.js → _page.svelte-B5E6RqVb.js} +9 -11
- package/studio-dist/server/chunks/{_page.svelte-UYiF7YBK.js → _page.svelte-BCRyjlk2.js} +5 -5
- package/studio-dist/server/chunks/{_page.svelte-CCoTp89s.js → _page.svelte-BoYafqft.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-nzffIbBP.js → _page.svelte-C7Wm6_HB.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-C_VSL8NW.js → _page.svelte-Cgqt7ucn.js} +13 -71
- package/studio-dist/server/chunks/{_page.svelte-CophUar3.js → _page.svelte-CqI6hqMm.js} +5 -5
- package/studio-dist/server/chunks/{_page.svelte-BgwL2Gyu.js → _page.svelte-CvQ2rZZ1.js} +11 -13
- package/studio-dist/server/chunks/{_page.svelte-l4Z_xjl9.js → _page.svelte-CvTyJEyS.js} +9 -11
- package/studio-dist/server/chunks/{_page.svelte-DOWw416I.js → _page.svelte-CvzAttO9.js} +11 -13
- package/studio-dist/server/chunks/{_page.svelte-DYNorA0S.js → _page.svelte-Cx9Ptecp.js} +10 -67
- package/studio-dist/server/chunks/{_page.svelte-Wfx7ww_h.js → _page.svelte-Cx9dPjsT.js} +11 -13
- package/studio-dist/server/chunks/{_page.svelte-2cgtvHwW.js → _page.svelte-DGN5j-At.js} +13 -71
- package/studio-dist/server/chunks/{_page.svelte-BVVTrzTL.js → _page.svelte-DaheDIRs.js} +5 -5
- package/studio-dist/server/chunks/{_page.svelte-M5D2QnMS.js → _page.svelte-Dm8y5a8S.js} +10 -67
- package/studio-dist/server/chunks/{_page.svelte-B_pq-Z98.js → _page.svelte-DqXxyNsF.js} +7 -7
- package/studio-dist/server/chunks/{_page.svelte-C3aIui4o.js → _page.svelte-DqsbnAhk.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-ksTJUXce.js → _page.svelte-Dt0_c1T-.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-bGhsrIjS.js → _page.svelte-Dv6iwhu7.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-BXyoMME1.js → _page.svelte-GPiHej3P.js} +5 -5
- package/studio-dist/server/chunks/{_page.svelte-CYDjW1R0.js → _page.svelte-LuRm8XxE.js} +5 -5
- package/studio-dist/server/chunks/{_page.svelte-Clbkk1gm.js → _page.svelte-Z7nL9SC-.js} +8 -9
- package/studio-dist/server/chunks/{_page.svelte-DUWbZjC7.js → _page.svelte-_kntHS6v.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-BIlhmugm.js → _page.svelte-eiomv6Pa.js} +11 -13
- package/studio-dist/server/chunks/{_page.svelte-9OQphlnm.js → _page.svelte-jXJbd8Mx.js} +14 -69
- package/studio-dist/server/chunks/{_page.svelte-CHzXuw2Q.js → _page.svelte-me5SUosG.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-DSzRdt1U.js → _server.ts--2m_U4SL.js} +11 -94
- package/studio-dist/server/chunks/{_server.ts-ujoDR2_g.js → _server.ts--sGLmBsz.js} +10 -92
- package/studio-dist/server/chunks/{_server.ts-k2fApwOp.js → _server.ts-0ukyuE0I.js} +5 -60
- package/studio-dist/server/chunks/_server.ts-1eW2mTeh.js +40 -0
- package/studio-dist/server/chunks/{_server.ts-Bfr4u3EP.js → _server.ts-3LzqLzt0.js} +10 -92
- package/studio-dist/server/chunks/_server.ts-40h9Y46Y.js +122 -0
- package/studio-dist/server/chunks/_server.ts-5euivmMj.js +38 -0
- package/studio-dist/server/chunks/{_server.ts-CShsBkeE.js → _server.ts-B0uoay97.js} +7 -23
- package/studio-dist/server/chunks/{_server.ts-hL92cV7Z.js → _server.ts-B5vYKkI6.js} +9 -63
- package/studio-dist/server/chunks/{_server.ts-_RJXtmfi.js → _server.ts-B8dTbPHd.js} +8 -23
- package/studio-dist/server/chunks/{_server.ts-C3Jo-ju8.js → _server.ts-BA8Xdegq.js} +10 -92
- package/studio-dist/server/chunks/_server.ts-BBClE0n9.js +54 -0
- package/studio-dist/server/chunks/{_server.ts-ZS1_yMwR.js → _server.ts-BDwMoyZ_.js} +6 -32
- package/studio-dist/server/chunks/{_server.ts-sv4pA808.js → _server.ts-BE-Uhx4N.js} +5 -46
- package/studio-dist/server/chunks/{_server.ts-DV6pzF-M.js → _server.ts-BSHADOUJ.js} +4 -3
- package/studio-dist/server/chunks/_server.ts-BcsqAqXt.js +67 -0
- package/studio-dist/server/chunks/_server.ts-Bl9tMqwZ.js +159 -0
- package/studio-dist/server/chunks/_server.ts-BlzDnRI0.js +51 -0
- package/studio-dist/server/chunks/{_server.ts-DnE0f-iC.js → _server.ts-BtuemCsf.js} +4 -3
- package/studio-dist/server/chunks/{_server.ts-BPcErnS0.js → _server.ts-C2nYqbd9.js} +10 -92
- package/studio-dist/server/chunks/{_server.ts-4p6cp9ke.js → _server.ts-C6IDM_3I.js} +10 -92
- package/studio-dist/server/chunks/_server.ts-C8Z32vuL.js +45 -0
- package/studio-dist/server/chunks/_server.ts-CBXyadsy.js +26 -0
- package/studio-dist/server/chunks/{_server.ts-Do9RIPRo.js → _server.ts-CE6h2ATE.js} +5 -32
- package/studio-dist/server/chunks/_server.ts-CH06JVqZ.js +65 -0
- package/studio-dist/server/chunks/_server.ts-CNqcws-M.js +29 -0
- package/studio-dist/server/chunks/{_server.ts-CJA1djzJ.js → _server.ts-CPf8necd.js} +8 -92
- package/studio-dist/server/chunks/{_server.ts-uUx7uT2Y.js → _server.ts-CYv5YuHd.js} +6 -43
- package/studio-dist/server/chunks/{_server.ts-B2E7fxo9.js → _server.ts-CZ5GZRWX.js} +6 -91
- package/studio-dist/server/chunks/{_server.ts-DSAv66wD.js → _server.ts-CbThsyhY.js} +4 -3
- package/studio-dist/server/chunks/{_server.ts-DgbY5EB3.js → _server.ts-CeQolQOK.js} +10 -92
- package/studio-dist/server/chunks/_server.ts-ChoGyX5C.js +61 -0
- package/studio-dist/server/chunks/_server.ts-CjJYkLJH.js +61 -0
- package/studio-dist/server/chunks/{_server.ts-lPlBUIJX.js → _server.ts-CtjArzxf.js} +5 -60
- package/studio-dist/server/chunks/{_server.ts-Cq60m8Pw.js → _server.ts-D3QWZwt_.js} +4 -3
- package/studio-dist/server/chunks/{_server.ts-CkoJ2HCW.js → _server.ts-D6wP5bCh.js} +10 -92
- package/studio-dist/server/chunks/{_server.ts-DwTRjS4y.js → _server.ts-D7JwQTun.js} +10 -93
- package/studio-dist/server/chunks/_server.ts-DKFJdXPK.js +97 -0
- package/studio-dist/server/chunks/_server.ts-DNAPGKEF.js +55 -0
- package/studio-dist/server/chunks/_server.ts-DQiTiY3E.js +78 -0
- package/studio-dist/server/chunks/{_server.ts-BT0Uq2yq.js → _server.ts-DUyeSXbV.js} +10 -92
- package/studio-dist/server/chunks/{_server.ts-DRVz9D-J.js → _server.ts-DY7BwZCv.js} +9 -24
- package/studio-dist/server/chunks/{_server.ts-Cz0zgaUV.js → _server.ts-D_E276ms.js} +3 -2
- package/studio-dist/server/chunks/{_server.ts-B5g3eScF.js → _server.ts-DgtmTAp5.js} +5 -60
- package/studio-dist/server/chunks/{_server.ts-CboRJY0Q.js → _server.ts-DhTKaw7h.js} +10 -63
- package/studio-dist/server/chunks/_server.ts-DqKBSCPT.js +31 -0
- package/studio-dist/server/chunks/{_server.ts-CpmMp5D8.js → _server.ts-DyXBNnRD.js} +4 -3
- package/studio-dist/server/chunks/_server.ts-DzjUpduu.js +25 -0
- package/studio-dist/server/chunks/{_server.ts-CGiAXy5i.js → _server.ts-Dznqw6Dg.js} +8 -23
- package/studio-dist/server/chunks/{_server.ts-tKMjUFUP.js → _server.ts-EVwS7UXb.js} +4 -3
- package/studio-dist/server/chunks/_server.ts-J17j25VG.js +62 -0
- package/studio-dist/server/chunks/{_server.ts-BdN4AJ6o.js → _server.ts-VQchZxXq.js} +10 -91
- package/studio-dist/server/chunks/{_server.ts-C4BcDGqS.js → _server.ts-XLV5SvjH.js} +7 -63
- package/studio-dist/server/chunks/_server.ts-jZgqFIJz.js +45 -0
- package/studio-dist/server/chunks/{_server.ts-Bw7A4zgb.js → _server.ts-lyiGGv7w.js} +5 -3
- package/studio-dist/server/chunks/{brain-CXR7ZT7S.js → brain-xt_NeshR.js} +2 -2
- package/studio-dist/server/chunks/cleo-home-_XIqkZaL.js +109 -0
- package/studio-dist/server/chunks/{cli-action-DQcaqcfn.js → cli-action-VJPEn1pY.js} +2 -2
- package/studio-dist/server/chunks/{client-CgX38JBu.js → client-D71MZ7Vi.js} +5 -6
- package/studio-dist/server/chunks/cluster-label-layer-CysRMvhi.js +6721 -0
- package/studio-dist/server/chunks/connections-CWLPjwBP.js +15 -0
- package/studio-dist/server/chunks/{connections2-mi7mZqJM.js → connections2-DHVs5ytW.js} +32 -19
- package/studio-dist/server/chunks/{dev-BNpEUZI3.js → dev-Br5zieNA.js} +2 -2
- package/studio-dist/server/chunks/dist-BzgWhfUR.js +18748 -0
- package/studio-dist/server/chunks/{error.svelte-CplNulnS.js → error.svelte-BIToUowC.js} +6 -8
- package/studio-dist/server/chunks/{explorer-loader-BN_mkt3_.js → explorer-loader-B_uCSs9_.js} +2 -2
- package/studio-dist/server/chunks/exports-Dg-gdPPq.js +124 -0
- package/studio-dist/server/chunks/{hooks.server-DBsyphiX.js → hooks.server-CWBRp8NI.js} +10 -93
- package/studio-dist/server/chunks/{http-CRTZe306.js → http-DPU3HHl2.js} +3 -4
- package/studio-dist/server/chunks/{index-server-DocJvixA.js → index-server-BgfA6C0S.js} +17 -4
- package/studio-dist/server/chunks/{internal-D6eWgsHJ.js → internal-DPnIJYMs.js} +56 -92
- package/studio-dist/server/chunks/{memory2-Cgc_4D5q.js → memory-BZHnDZzu.js} +4 -4
- package/studio-dist/server/chunks/{nexus-adapter-9EL_VlGI.js → nexus-adapter-D1ryYG1Z.js} +5 -5
- package/studio-dist/server/chunks/{no-face-up-DcejJLy-.js → no-face-up-B_3h6Hgs.js} +2 -2
- package/studio-dist/server/chunks/project-context-BAXQmgch.js +188 -0
- package/studio-dist/server/chunks/{src-BUqGet2c.js → src-D2rW9bIF.js} +422 -5
- package/studio-dist/server/chunks/{stores-5DmdjPCH.js → stores-BZdYTyl7.js} +3 -3
- package/studio-dist/server/chunks/{tasks2-Bf9VHrv-.js → tasks-sWuEmiGW.js} +2349 -9
- package/studio-dist/server/chunks/{ui-DR8zOSpC.js → ui-CkQ-pCs3.js} +2 -2
- package/studio-dist/server/chunks/utils-g564cUMV.js +151 -0
- package/studio-dist/server/index.js +5 -16
- package/studio-dist/server/manifest.js +88 -88
- package/dist/cli/index.js.map +0 -6
- package/studio-dist/client/_app/immutable/assets/parse-worker.CSEr67Qi.js +0 -1127
- package/studio-dist/client/_app/immutable/chunks/2mEksghu2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/3KebaI-z.js +0 -53
- package/studio-dist/client/_app/immutable/chunks/3y2yNYEk2.js +0 -3
- package/studio-dist/client/_app/immutable/chunks/7UXYlaI1.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/83VLmCvk.js +0 -4
- package/studio-dist/client/_app/immutable/chunks/84Rhmi6r.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/9CV9TXTg2.js +0 -92
- package/studio-dist/client/_app/immutable/chunks/9LFtcz24.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/9bLMgKwu2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/9kKqohVR2.js +0 -37
- package/studio-dist/client/_app/immutable/chunks/B-Ye28EY.js +0 -7
- package/studio-dist/client/_app/immutable/chunks/B-jnUl7o.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/B0ORuy8x2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/B0xCM1wN2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/B0zCN4sX.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/B1wt-iGW.js +0 -7
- package/studio-dist/client/_app/immutable/chunks/B2F3KUIU.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/B2_6RrlL2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/B2qKEYxA2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/B2u2rNyI2.js +0 -8
- package/studio-dist/client/_app/immutable/chunks/B3_X3Lhd2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/B3sNtbqf.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/B4NQP1Ax2.js +0 -6
- package/studio-dist/client/_app/immutable/chunks/BAtZg5v5.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BB6WKLm82.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BBX8UDtn.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BBs1U1iU.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BEli_4Jp2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BEt2wIUt.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BEyM8qSW2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BFZA3Dsk2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BGdPweG1.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BGiusSqE.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BGmpyfzD.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BH5rhSIR.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BHciFt922.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BHnFwTQY.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BIvye3XP2.js +0 -59
- package/studio-dist/client/_app/immutable/chunks/BJ8mcpQA2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BK17qSHw.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BLkgUtyb.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BMUko3r62.js +0 -5
- package/studio-dist/client/_app/immutable/chunks/BMwzdEaa.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BQZx6brg.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BUPJTTTd.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BVNGAeZe2.js +0 -146
- package/studio-dist/client/_app/immutable/chunks/BWfLryGm.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BXIfeogw.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BXTfFyUU.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BYJC6_MM.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BZV1ZJzH.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BZu9rehd.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Bbzm48C52.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BfGnlwjH.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Bfjb9LPp.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BieFfu-R.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Bmv63uXe2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BtBW1A0u.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/BxISGQCl2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/ByNR_KvT.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BzjhD6Hr2.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/BzpWnq0c2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/C-yJVcyI2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/C0cQ-8kS2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/C1vWmhYe.js +0 -48
- package/studio-dist/client/_app/immutable/chunks/C1w6bBje.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/C243sn7r.js +0 -4
- package/studio-dist/client/_app/immutable/chunks/C2oZaDvt.js +0 -67
- package/studio-dist/client/_app/immutable/chunks/C3OziSQx.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/C3hFPbMK.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/C4P9oFvU2.js +0 -6
- package/studio-dist/client/_app/immutable/chunks/C5Nlanei.js +0 -8
- package/studio-dist/client/_app/immutable/chunks/C6KBAXPl.js +0 -15
- package/studio-dist/client/_app/immutable/chunks/C8MZnWta.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CAoan3K12.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CBpcINYH.js +0 -29
- package/studio-dist/client/_app/immutable/chunks/CE7phgWq.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CFb4Co_K.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/CGWoRK3t2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CH3t4xo1.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CHJgk6g-.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CHgPjuDQ.js +0 -17
- package/studio-dist/client/_app/immutable/chunks/CHkCZrnr.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CI_91WUN.js +0 -4
- package/studio-dist/client/_app/immutable/chunks/CJ7-hP0H.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CKIrNnkY2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CKoQ7Ko5.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CM8O4zqs.js +0 -56
- package/studio-dist/client/_app/immutable/chunks/CMz3AVRO.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CNToUR3P.js +0 -13
- package/studio-dist/client/_app/immutable/chunks/CNuQG1yl2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CQLIZtxj.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/CQYVNgM0.js +0 -20
- package/studio-dist/client/_app/immutable/chunks/CQeVOmFO2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CSPHHq09.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CTJEdbIn.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CTTT3wYw.js +0 -35
- package/studio-dist/client/_app/immutable/chunks/CV4ck7fz.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/CXQrVnHf.js +0 -11
- package/studio-dist/client/_app/immutable/chunks/CXTCtOUQ.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/C_CsU7Qq.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/C_IZx3682.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/CbTnu2Po2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Cba8RZ1a2.js +0 -8
- package/studio-dist/client/_app/immutable/chunks/Cc8xxDr5.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CdPxoldu.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CdqDTozW.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CdsmcCfC.js +0 -25
- package/studio-dist/client/_app/immutable/chunks/CeYPAoY9.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Cf4kGS9y.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CfWEqXtJ2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Cg7Wj2b9.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/CgTpKZfi2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Chpy9ca7.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/CiLKuLrQ.js +0 -4
- package/studio-dist/client/_app/immutable/chunks/CjNDJjwu.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Cjde0ZKr2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Cjgnade02.js +0 -3
- package/studio-dist/client/_app/immutable/chunks/Ckp90om52.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/ClAPVhCD.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/ClT89UdO.js +0 -11
- package/studio-dist/client/_app/immutable/chunks/CnJf5tML.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CpF4Rrcc2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CqCka5yX2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CqtqZrOl.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CrJdywQt.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Cs0zC2l2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CsMn5fBs.js +0 -141
- package/studio-dist/client/_app/immutable/chunks/CsvKLHQQ2.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/Ctaresvj.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Ctetf8vc2.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/Cv7yW6MG.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CxRIz-Zd.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CxbvtjIH.js +0 -3
- package/studio-dist/client/_app/immutable/chunks/CxfeoXkZ.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/CySLscL2.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/D0PKQAbM.js +0 -87
- package/studio-dist/client/_app/immutable/chunks/D0WQsLTu.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/D1LBVx6r2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/D1NlFXu9.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/D1QfC4hu2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/D1yrHAn72.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/D2pa4reh.js +0 -7
- package/studio-dist/client/_app/immutable/chunks/D3QsWcIw2.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/D4OkQuPl2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/D6UDnATk2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/D7w7HllH.js +0 -38
- package/studio-dist/client/_app/immutable/chunks/D93KpglN.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/D99fQj2G2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DB5ifLM-.js +0 -3
- package/studio-dist/client/_app/immutable/chunks/DBhP8ifO2.js +0 -15
- package/studio-dist/client/_app/immutable/chunks/DF_4OWhj.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/DFpNK1vs2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DGRYMk-W.js +0 -142
- package/studio-dist/client/_app/immutable/chunks/DH3CcQwq.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DHQfJeLU.js +0 -4
- package/studio-dist/client/_app/immutable/chunks/DL89yEDy2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DLRku_0p2.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/DMZkjPYT2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DNP72foU.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DO2GztVm.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DOVNXmCK2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DOqzs8kl2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DQnR63hh2.js +0 -7
- package/studio-dist/client/_app/immutable/chunks/DTxtWPkw.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DVDgCC9A2.js +0 -20
- package/studio-dist/client/_app/immutable/chunks/DVVCJYjz.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DWRhYUMj2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DWavBJBI.js +0 -4
- package/studio-dist/client/_app/immutable/chunks/DXDSWRw-.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DXoHaH4a.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/DXpCX2Hi.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DYP3EJMY.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DYQphR_V.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DYUlIivP.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DYo2ye8X2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DYxFu8yV.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DZ66sRb6.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/D_XTiylm2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DaRv9jn22.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DaXb9i_E.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Dccf4VP2.js +0 -24
- package/studio-dist/client/_app/immutable/chunks/DdODs-Sb.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DdekYWer.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/DeHaovsF.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DeRRkRO52.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DeWI5qCn.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DfivR-Md.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DgmxpSo7.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DhPLWrun2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DhhrVdfi.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/Djr2dbcc2.js +0 -37
- package/studio-dist/client/_app/immutable/chunks/DjuRo5vv.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Djz4EDzO.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DkRfaw-K2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DksB5g4W2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Dmqenb5z2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DnbToVyf.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/DpGZwlmj.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Dq0lE5C32.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Dq54XqHT2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DqK84mbb.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DqjFtSJD.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/DrKWWDpL.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DsQIgu-4.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DsqdgJHS2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DtNkZUkq.js +0 -17
- package/studio-dist/client/_app/immutable/chunks/DutIls4V2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DvxYFW4C.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Dwp-76GQ.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/DxSZd548.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DxiUMhk0.js +0 -5
- package/studio-dist/client/_app/immutable/chunks/DxslLswf.js +0 -23
- package/studio-dist/client/_app/immutable/chunks/Dy7EjGgb2.js +0 -9
- package/studio-dist/client/_app/immutable/chunks/DyGQ_VXC.js +0 -3
- package/studio-dist/client/_app/immutable/chunks/DySe3kTV2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DyzE2Uxw.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DzhuJaxE2.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/FmMHyrh6.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Gxs0J274.js +0 -5
- package/studio-dist/client/_app/immutable/chunks/HwtzDYxN.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/ITRz_Q7H2.js +0 -15
- package/studio-dist/client/_app/immutable/chunks/KDNP98XY2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/LmVjFhpk2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/MiAejGV_.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Ml4JR6Jz2.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/NU5S3nNs2.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/Oh5zPjv3.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/QZkvJ9vi.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Rbn8UpBm.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/SPX3gYwn2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/TX-23QW3.js +0 -3
- package/studio-dist/client/_app/immutable/chunks/UyeQuL132.js +0 -12
- package/studio-dist/client/_app/immutable/chunks/VQszoXcV.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/VtZsEMxD.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/W2IeK61p2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Wadww7ZG.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/WgfA1zWk2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/WxIgAS1f.js +0 -21
- package/studio-dist/client/_app/immutable/chunks/XrsBoOj9.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/Y3PX4poR.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/YxfwqiF32.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/Z7uO1YaO.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/_4ykQk_8.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/_kRcZFVn.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/aQNM7eVA2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/bHKz_Fb2.js +0 -45
- package/studio-dist/client/_app/immutable/chunks/bJRyRGSZ.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/dlzF6lnR.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/fjRbpfEr2.js +0 -26
- package/studio-dist/client/_app/immutable/chunks/imLk4if5.js +0 -3
- package/studio-dist/client/_app/immutable/chunks/lgRG0R-32.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/mFhCjxQJ2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/mgnH6qYg.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/n6M_5LoW.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/nLIOiDZp2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/nab7WB3u2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/orUmAKoW2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/p-fLQDfY2.js +0 -63
- package/studio-dist/client/_app/immutable/chunks/s0-WkOGk2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/sPuXfbUF.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/t4h0vrqR2.js +0 -2
- package/studio-dist/client/_app/immutable/chunks/uE83FKL-.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/uzhXlm0g2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/vTrEsGlD2.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/xJgCk3dx2.js +0 -28
- package/studio-dist/client/_app/immutable/chunks/z0Mt579s2.js +0 -13
- package/studio-dist/client/_app/immutable/entry/app.BoQ7cgT2.js +0 -2
- package/studio-dist/client/_app/immutable/entry/start.Cg1v8DU4.js +0 -1
- package/studio-dist/client/_app/immutable/nodes/25.ddZ1_EFk.js +0 -1
- package/studio-dist/client/_app/immutable/nodes/26.6OcmQbLV.js +0 -1
- package/studio-dist/client/_app/immutable/nodes/4.CCjOEwVU.js +0 -1
- package/studio-dist/server/chunks/0-CvsKDxQ6.js +0 -126
- package/studio-dist/server/chunks/1-ck_x2Hf0.js +0 -9
- package/studio-dist/server/chunks/20-DVU22np7.js +0 -142
- package/studio-dist/server/chunks/23-D_tUnnoc.js +0 -181
- package/studio-dist/server/chunks/24-CVlymvLF.js +0 -151
- package/studio-dist/server/chunks/AwsRestJsonProtocol-BZuoNBmL.js +0 -416
- package/studio-dist/server/chunks/UnionSerde-BflIkhKj.js +0 -2653
- package/studio-dist/server/chunks/_dispatch-ncuRztUQ.js +0 -5597
- package/studio-dist/server/chunks/_server.ts-4NyKAneX.js +0 -116
- package/studio-dist/server/chunks/_server.ts-7hGdxdEI.js +0 -136
- package/studio-dist/server/chunks/_server.ts-B6b3b-yA.js +0 -131
- package/studio-dist/server/chunks/_server.ts-BOgGqaZp.js +0 -144
- package/studio-dist/server/chunks/_server.ts-BV1HiKZ0.js +0 -120
- package/studio-dist/server/chunks/_server.ts-BWp3g6Cr.js +0 -110
- package/studio-dist/server/chunks/_server.ts-C5NF-UgC.js +0 -122
- package/studio-dist/server/chunks/_server.ts-CDMurH5m.js +0 -2301
- package/studio-dist/server/chunks/_server.ts-COJHCgbq.js +0 -127
- package/studio-dist/server/chunks/_server.ts-CUl-Utkt.js +0 -148
- package/studio-dist/server/chunks/_server.ts-D0GAFJRb.js +0 -156
- package/studio-dist/server/chunks/_server.ts-DA6p3pmi.js +0 -117
- package/studio-dist/server/chunks/_server.ts-DThYFaZj.js +0 -160
- package/studio-dist/server/chunks/_server.ts-D_3Pm0gr.js +0 -179
- package/studio-dist/server/chunks/_server.ts-DcHxdMsm.js +0 -144
- package/studio-dist/server/chunks/_server.ts-Dlfadh2I.js +0 -144
- package/studio-dist/server/chunks/_server.ts-JallJnps.js +0 -240
- package/studio-dist/server/chunks/_server.ts-NEFTbJpM.js +0 -142
- package/studio-dist/server/chunks/_server.ts-d-2NvRwX.js +0 -122
- package/studio-dist/server/chunks/_server.ts-rUWMLkIw.js +0 -146
- package/studio-dist/server/chunks/abort-events-CDRAJSqb.js +0 -30
- package/studio-dist/server/chunks/adapters-BkMgPNUM.js +0 -359
- package/studio-dist/server/chunks/adapters2-CQ3PzoaK.js +0 -28
- package/studio-dist/server/chunks/api-mode2-3W-I1-XO.js +0 -36
- package/studio-dist/server/chunks/api2-CmNQzb0b.js +0 -96
- package/studio-dist/server/chunks/attention-consolidate-CidG1jfH.js +0 -485
- package/studio-dist/server/chunks/audit3-DMO_fUGp.js +0 -52
- package/studio-dist/server/chunks/auto-extract-B84La1Vs.js +0 -34
- package/studio-dist/server/chunks/brain-consolidator-JGm6mzFf.js +0 -373
- package/studio-dist/server/chunks/brain-doctor-Dc2WqVbs.js +0 -311
- package/studio-dist/server/chunks/brain-embedding-Djw9ekXu.js +0 -42
- package/studio-dist/server/chunks/brain-lifecycle-BOOa876K.js +0 -969
- package/studio-dist/server/chunks/brain-maintenance-U6VvsvmK.js +0 -133
- package/studio-dist/server/chunks/brain-maintenance2-CwVSmfDT.js +0 -43
- package/studio-dist/server/chunks/brain-retrieval2-exR8mdgh.js +0 -751
- package/studio-dist/server/chunks/brain-search-CpSh-SNi.js +0 -48
- package/studio-dist/server/chunks/brain-search2-CwI2cXgg.js +0 -716
- package/studio-dist/server/chunks/brain-similarity-DI4yzm9e.js +0 -113
- package/studio-dist/server/chunks/brain-stdp2-BxSBIlSr.js +0 -960
- package/studio-dist/server/chunks/brain-writer-handlers-Dwu0QCAA.js +0 -188
- package/studio-dist/server/chunks/brain-writer-thread-6n7wI7Gy.js +0 -360
- package/studio-dist/server/chunks/branch-lock-Cq7zzmFK.js +0 -1118
- package/studio-dist/server/chunks/branch-lock2-CmDc4CZW.js +0 -45
- package/studio-dist/server/chunks/cancelled-child-waiver-audit-DkesrN83.js +0 -54
- package/studio-dist/server/chunks/catalog-model-resolver-Bas9qnoP.js +0 -9
- package/studio-dist/server/chunks/catalog-model-resolver2-Cexk2TN0.js +0 -237
- package/studio-dist/server/chunks/catalog-resolver-CLot3XJO.js +0 -260
- package/studio-dist/server/chunks/catalog-resolver2-JmKb91kY.js +0 -33
- package/studio-dist/server/chunks/chunk-DDP5xfzh.js +0 -39
- package/studio-dist/server/chunks/cleo-home-CCfe6kAQ.js +0 -64
- package/studio-dist/server/chunks/concrete-session2-bb_vxJ2N.js +0 -43
- package/studio-dist/server/chunks/config-DHj9CcFs.js +0 -386
- package/studio-dist/server/chunks/config2-F6PPIn7D.js +0 -35
- package/studio-dist/server/chunks/connections-BMGJVYcS.js +0 -98
- package/studio-dist/server/chunks/credential-pool-vF6NdtT9.js +0 -4600
- package/studio-dist/server/chunks/credentials-C7EJFf5O.js +0 -35
- package/studio-dist/server/chunks/credentials-store-CFygIuB2.js +0 -35
- package/studio-dist/server/chunks/cross-db-cleanup-1LWTUKPi.js +0 -147
- package/studio-dist/server/chunks/data-accessor-CWgVndbR.js +0 -72
- package/studio-dist/server/chunks/data-safety-central-DaFxK27G.js +0 -683
- package/studio-dist/server/chunks/decisions-CmVXV2-H.js +0 -574
- package/studio-dist/server/chunks/decisions2-XQsSYdxa.js +0 -48
- package/studio-dist/server/chunks/depends-waiver-audit-CUmlBYHx.js +0 -56
- package/studio-dist/server/chunks/dialectic-evaluator2-BOyyXhdI.js +0 -96
- package/studio-dist/server/chunks/dist-es2-DQy2Mjn_.js +0 -43
- package/studio-dist/server/chunks/dist-es3-CBygU4n5.js +0 -365
- package/studio-dist/server/chunks/dist-es4-CavbNu4B.js +0 -162
- package/studio-dist/server/chunks/dist-es5-Crpm8Wsl.js +0 -465
- package/studio-dist/server/chunks/dist-es6-CgePHzh4.js +0 -99
- package/studio-dist/server/chunks/dist-es7-k6c5GEd7.js +0 -311
- package/studio-dist/server/chunks/dist-es8-Bd9v0_pE.js +0 -91
- package/studio-dist/server/chunks/dist3-23bsJhRw.js +0 -27
- package/studio-dist/server/chunks/dist4-DmC1zSXi.js +0 -35618
- package/studio-dist/server/chunks/dual-scope-db-DKnWu1KM.js +0 -5672
- package/studio-dist/server/chunks/dual-scope-db2-Dht3luRw.js +0 -31
- package/studio-dist/server/chunks/duplicate-bypass-audit-BN5w1H2y.js +0 -36
- package/studio-dist/server/chunks/duplicate-detector-CaVFMKdE.js +0 -692
- package/studio-dist/server/chunks/edge-types-CgBvb0w1.js +0 -28
- package/studio-dist/server/chunks/embedding-local-xEnym8Ho.js +0 -92
- package/studio-dist/server/chunks/event-streams-Bi2p_fVo.js +0 -232
- package/studio-dist/server/chunks/execution-learning-BVCw7Plq.js +0 -278
- package/studio-dist/server/chunks/exodus-BBuuN6aA.js +0 -2594
- package/studio-dist/server/chunks/externalDataInterceptor-C3C4cObe.js +0 -21
- package/studio-dist/server/chunks/extraction-gate-DDNBq7gu.js +0 -48
- package/studio-dist/server/chunks/extraction-gate2-D77EZBQ6.js +0 -375
- package/studio-dist/server/chunks/getSSOTokenFromFile-yZAJxDci.js +0 -21
- package/studio-dist/server/chunks/governor2-CtfV3wfX.js +0 -923
- package/studio-dist/server/chunks/graph-auto-populate-Dmsr9ZJM.js +0 -42
- package/studio-dist/server/chunks/graph-auto-populate2-Cz0qeebM.js +0 -156
- package/studio-dist/server/chunks/graph-memory-bridge-CY8ft_d7.js +0 -43
- package/studio-dist/server/chunks/graph-memory-bridge2-Cd0XZwqc.js +0 -429
- package/studio-dist/server/chunks/handler-helpers-AANBGA_p.js +0 -49
- package/studio-dist/server/chunks/hash-Cm6yMET4.js +0 -14
- package/studio-dist/server/chunks/health-monitor-FepUZN1m.js +0 -106
- package/studio-dist/server/chunks/identity-DRpurt56.js +0 -30
- package/studio-dist/server/chunks/identity2-DeAB5RXE.js +0 -114
- package/studio-dist/server/chunks/index-61916rmV.js +0 -632
- package/studio-dist/server/chunks/index-DAgVDouG.js +0 -268
- package/studio-dist/server/chunks/index-Dtt_h58T.js +0 -2116
- package/studio-dist/server/chunks/indexes-DZ52grq6.js +0 -615
- package/studio-dist/server/chunks/json-Bfixam3g.js +0 -126
- package/studio-dist/server/chunks/learnings-D6Y3YGMU.js +0 -47
- package/studio-dist/server/chunks/learnings2-MwBdR9vb.js +0 -171
- package/studio-dist/server/chunks/lifecycle-ops2-V2CR5-7X.js +0 -121
- package/studio-dist/server/chunks/list-BhObczvn.js +0 -229
- package/studio-dist/server/chunks/living-brain2-j0B_Ir8j.js +0 -285
- package/studio-dist/server/chunks/llm-backend-resolver-D4ANvUPL.js +0 -295
- package/studio-dist/server/chunks/llm-extraction-DVCu4heR.js +0 -408
- package/studio-dist/server/chunks/loadSharedConfigFiles-umvW7kuz.js +0 -73
- package/studio-dist/server/chunks/loadSso-iidd5iKx.js +0 -599
- package/studio-dist/server/chunks/local-model-fit-B0TxifnX.js +0 -53
- package/studio-dist/server/chunks/local-model-fit2-BMqo6GJm.js +0 -2664
- package/studio-dist/server/chunks/lock-CA7d6lj7.js +0 -57
- package/studio-dist/server/chunks/logger-DQIoyZbq.js +0 -34
- package/studio-dist/server/chunks/memory-BUbicBbE.js +0 -618
- package/studio-dist/server/chunks/memory-accessor-i3P-RHSg.js +0 -42
- package/studio-dist/server/chunks/memory-accessor2-B981tHDR.js +0 -467
- package/studio-dist/server/chunks/memory-bridge-BOlEWg9w.js +0 -424
- package/studio-dist/server/chunks/memory-sqlite2-B7dq8doO.js +0 -42
- package/studio-dist/server/chunks/model-runner2-B71xjp4y.js +0 -43
- package/studio-dist/server/chunks/mvi-helpers-BNsJ8ZpQ.js +0 -59
- package/studio-dist/server/chunks/nexus-plasticity-BTfU8cW_.js +0 -269
- package/studio-dist/server/chunks/nexus-risk-audit-p379-TU5.js +0 -54
- package/studio-dist/server/chunks/nexus-schema-zeygY8OD.js +0 -11
- package/studio-dist/server/chunks/nexus-schema2-DP0Qd7CA.js +0 -444
- package/studio-dist/server/chunks/nexus-sqlite-BVNIpwc7.js +0 -36
- package/studio-dist/server/chunks/nexus-sqlite2-BBfY2xnY.js +0 -1103
- package/studio-dist/server/chunks/node-http-handler-CJI8kn7X.js +0 -386
- package/studio-dist/server/chunks/observe-Bo9veHGe.js +0 -47
- package/studio-dist/server/chunks/observe2-wzO0MaMY.js +0 -245
- package/studio-dist/server/chunks/observer-reflector-BwNOuq1d.js +0 -62
- package/studio-dist/server/chunks/observer-reflector2-ggtC1hmk.js +0 -478
- package/studio-dist/server/chunks/on-open-Wpcw7DV4.js +0 -740
- package/studio-dist/server/chunks/open-cleo-db--8sYNaYY.js +0 -70
- package/studio-dist/server/chunks/parseKnownFiles-Dg0pMFcT.js +0 -18
- package/studio-dist/server/chunks/parseUrl-qgGfl-Vh.js +0 -120
- package/studio-dist/server/chunks/paths-CV7S5-Zm.js +0 -30012
- package/studio-dist/server/chunks/patterns-lh5kn13I.js +0 -48
- package/studio-dist/server/chunks/patterns2-CzIcT-ai.js +0 -177
- package/studio-dist/server/chunks/pipeline-stage-IB_pOft-.js +0 -63
- package/studio-dist/server/chunks/prediction-D1lSGJ4c.js +0 -217
- package/studio-dist/server/chunks/premature-close-audit-VG09uAco.js +0 -53
- package/studio-dist/server/chunks/project-context-BjiqfEBi.js +0 -166
- package/studio-dist/server/chunks/provider-registry2-Cu7rAF0R.js +0 -35
- package/studio-dist/server/chunks/quality-feedback-CuCGEI6S.js +0 -371
- package/studio-dist/server/chunks/quality-scoring-CCPuRQmJ.js +0 -160
- package/studio-dist/server/chunks/query-ops-DCrjbZb9.js +0 -78
- package/studio-dist/server/chunks/query-promise-BkPmGPJy.js +0 -1257
- package/studio-dist/server/chunks/readFile-CxwXhymG.js +0 -31
- package/studio-dist/server/chunks/registry-CL2gN1zd.js +0 -27
- package/studio-dist/server/chunks/registry2-DoPYJnUW.js +0 -233
- package/studio-dist/server/chunks/registry3-BajEb-ll.js +0 -42
- package/studio-dist/server/chunks/registry4-DCqffZkT.js +0 -142
- package/studio-dist/server/chunks/retry-B3oEKYpp.js +0 -105
- package/studio-dist/server/chunks/role-executor-CC8BU54L.js +0 -25379
- package/studio-dist/server/chunks/role-resolver-D9QaDT0e.js +0 -6544
- package/studio-dist/server/chunks/role-resolver2-nkhzS1oy.js +0 -37
- package/studio-dist/server/chunks/rollup-CiefjN_Y.js +0 -194
- package/studio-dist/server/chunks/safety-data-accessor-CniDmGJO.js +0 -276
- package/studio-dist/server/chunks/service-connections-accessor-yBCdcgU-.js +0 -282
- package/studio-dist/server/chunks/session-factory-vbengc42.js +0 -96
- package/studio-dist/server/chunks/session-grade-BF4ZZtN_.js +0 -244
- package/studio-dist/server/chunks/session-journal-Bvey70Ur.js +0 -235
- package/studio-dist/server/chunks/session-narrative-BirZINSU.js +0 -304
- package/studio-dist/server/chunks/session-store--N_xHxUH.js +0 -557
- package/studio-dist/server/chunks/session-store2-DAM-eVTH.js +0 -43
- package/studio-dist/server/chunks/sessions-33DD4hkt.js +0 -2273
- package/studio-dist/server/chunks/sessions2-BHswKRDP.js +0 -50
- package/studio-dist/server/chunks/sigil-B-RznFXz.js +0 -33
- package/studio-dist/server/chunks/sigil2-jRMG5DuR.js +0 -47
- package/studio-dist/server/chunks/signin-BAsW3mM8.js +0 -644
- package/studio-dist/server/chunks/sleep-consolidation-BnSwXrvq.js +0 -823
- package/studio-dist/server/chunks/specialists-B_ZbpQlK.js +0 -441
- package/studio-dist/server/chunks/sqlite-Bm5LzbPs.js +0 -5977
- package/studio-dist/server/chunks/sqlite-backup-CFG1-b2e.js +0 -42
- package/studio-dist/server/chunks/sqlite-data-accessor-DD_RFX6r.js +0 -987
- package/studio-dist/server/chunks/sqlite-data-accessor2-CRmgNBnq.js +0 -44
- package/studio-dist/server/chunks/sqlite-native-BwlIqtbs.js +0 -42
- package/studio-dist/server/chunks/sqlite2-CUPut2fh.js +0 -42
- package/studio-dist/server/chunks/src2-DK8DKufK.js +0 -290
- package/studio-dist/server/chunks/src3-BJjf7XRG.js +0 -798
- package/studio-dist/server/chunks/src4-DNleK_t_.js +0 -28
- package/studio-dist/server/chunks/sso-oidc-eUvwseuL.js +0 -861
- package/studio-dist/server/chunks/storage-B9UA3BHR.js +0 -198
- package/studio-dist/server/chunks/sts-g7LDMLEd.js +0 -4655
- package/studio-dist/server/chunks/surprisal-CwTfWQi8.js +0 -224
- package/studio-dist/server/chunks/surprisal-tree-7dfHsuw1.js +0 -230
- package/studio-dist/server/chunks/system-resolver2-Bzhue_zQ.js +0 -53
- package/studio-dist/server/chunks/tasks-SHX7UPGY.js +0 -19694
- package/studio-dist/server/chunks/tasks-schema2-CTMoQKQy.js +0 -42
- package/studio-dist/server/chunks/temporal-supersession-DP4GPG_B.js +0 -298
- package/studio-dist/server/chunks/token-cAhAD9f9.js +0 -139
- package/studio-dist/server/chunks/token-util-D6drEz8_.js +0 -353
- package/studio-dist/server/chunks/token-util2-8UPSGvbb.js +0 -97
- package/studio-dist/server/chunks/transcript-scanner-kJWhWmlg.js +0 -53
- package/studio-dist/server/chunks/transformers.node-_xbxmK5p.js +0 -38475
- package/studio-dist/server/chunks/typed-query-l1D_QElt.js +0 -18
- package/studio-dist/server/chunks/unique-constraint-BZrrwgwc.js +0 -88
- package/studio-dist/server/chunks/update-B2YVBZG0.js +0 -1594
- package/studio-dist/server/chunks/user-profile-B61ZhVmC.js +0 -89
- package/studio-dist/server/chunks/utils-BPSZyajG.js +0 -1176
- package/studio-dist/server/chunks/validation-rules-CE27rtoF.js +0 -44
- package/studio-dist/server/chunks/zod-DsAeKNLm.js +0 -141
- /package/studio-dist/client/_app/immutable/chunks/{CQCxd1p9.js → B8WnZMYa.js} +0 -0
- /package/studio-dist/client/_app/immutable/chunks/{D13Quv9e2.js → B_0_YCYG.js} +0 -0
- /package/studio-dist/client/_app/immutable/chunks/{djL6V-tr.js → CqgtdAx_.js} +0 -0
- /package/studio-dist/client/_app/immutable/chunks/{_FU7h_8p2.js → KrUPZzXZ.js} +0 -0
|
@@ -1,1118 +0,0 @@
|
|
|
1
|
-
import { b as getLogger, K as GATE_EVIDENCE_REQUIREMENTS, M as resolveWorktreeRootForHash, N as computeProjectHash } from './paths-CV7S5-Zm.js';
|
|
2
|
-
import { d as attachments } from './sqlite-Bm5LzbPs.js';
|
|
3
|
-
import { join, resolve } from 'node:path';
|
|
4
|
-
import 'node:crypto';
|
|
5
|
-
import 'node:fs/promises';
|
|
6
|
-
import { e as eq } from './query-promise-BkPmGPJy.js';
|
|
7
|
-
import './src2-DK8DKufK.js';
|
|
8
|
-
import { mkdirSync, appendFileSync, existsSync, readFileSync, rmSync, readdirSync, cpSync } from 'node:fs';
|
|
9
|
-
import { homedir } from 'node:os';
|
|
10
|
-
import './index-Dtt_h58T.js';
|
|
11
|
-
import { execFileSync, execFile } from 'node:child_process';
|
|
12
|
-
import { e as __esmMin } from './chunk-DDP5xfzh.js';
|
|
13
|
-
import { createRequire } from 'node:module';
|
|
14
|
-
import { fileURLToPath } from 'node:url';
|
|
15
|
-
import { promisify } from 'node:util';
|
|
16
|
-
|
|
17
|
-
Promise.resolve();
|
|
18
|
-
/**
|
|
19
|
-
* Derive 3 alternative slug candidates that are NOT currently in use.
|
|
20
|
-
*
|
|
21
|
-
* Strategy (per Epic T9627 design guidance):
|
|
22
|
-
* 1. `<slug>-N` where N is the count-of-existing-rows + 1
|
|
23
|
-
* 2. `<slug>-v2`
|
|
24
|
-
* 3. `<slug>-new` (or `-alt` if `-new` is also taken)
|
|
25
|
-
*
|
|
26
|
-
* If a primary candidate is also taken, walk forward until a free one is
|
|
27
|
-
* found. The lookup is bounded by a maximum of 32 probes per candidate so
|
|
28
|
-
* a pathological dataset can never block the request.
|
|
29
|
-
*
|
|
30
|
-
* Re-exported under {@link deriveSlugSuggestionsForAllocator} for the
|
|
31
|
-
* central slug allocator (T10392) so both the late-bound
|
|
32
|
-
* `SlugCollisionError` path and the early-bound `reserveSlug` path emit
|
|
33
|
-
* the SAME suggestion shape.
|
|
34
|
-
*
|
|
35
|
-
* @task T9636
|
|
36
|
-
*/
|
|
37
|
-
async function deriveSlugSuggestions(db, base) {
|
|
38
|
-
const taken = /* @__PURE__ */ new Set();
|
|
39
|
-
const probes = [];
|
|
40
|
-
const startCount = await db.$count(attachments);
|
|
41
|
-
probes.push(`${base}-${startCount + 1}`);
|
|
42
|
-
probes.push(`${base}-v2`);
|
|
43
|
-
probes.push(`${base}-new`);
|
|
44
|
-
const out = [];
|
|
45
|
-
for (let idx = 0; idx < probes.length; idx++) {
|
|
46
|
-
let candidate = probes[idx];
|
|
47
|
-
let walk = 0;
|
|
48
|
-
while (walk < 32) {
|
|
49
|
-
if (taken.has(candidate)) {
|
|
50
|
-
walk++;
|
|
51
|
-
candidate = `${candidate}-x`;
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
if (!await db.select().from(attachments).where(eq(attachments.slug, candidate)).get()) {
|
|
55
|
-
out.push(candidate);
|
|
56
|
-
taken.add(candidate);
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
taken.add(candidate);
|
|
60
|
-
walk++;
|
|
61
|
-
candidate = idx === 2 ? `${base}-alt-${walk}` : `${candidate}-x`;
|
|
62
|
-
}
|
|
63
|
-
if (out.length === idx + 1) continue;
|
|
64
|
-
out.push(`${base}-${startCount + idx + 100}`);
|
|
65
|
-
}
|
|
66
|
-
return out.slice(0, 3);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Re-export of {@link deriveSlugSuggestions} for the central slug
|
|
70
|
-
* allocator (T10392).
|
|
71
|
-
*
|
|
72
|
-
* Lives in this module rather than the allocator so the suggestion
|
|
73
|
-
* algorithm has exactly ONE implementation. Both the late-bound
|
|
74
|
-
* `SlugCollisionError` path inside `attachmentStore.put` and the
|
|
75
|
-
* early-bound `reserveSlug` chokepoint use the same helper, so the
|
|
76
|
-
* suggestion shape is uniform regardless of which layer caught the
|
|
77
|
-
* conflict.
|
|
78
|
-
*
|
|
79
|
-
* Loose typing on `db` matches the internal `DrizzleDb` alias so
|
|
80
|
-
* cross-package consumers do not have to import drizzle types.
|
|
81
|
-
*
|
|
82
|
-
* @task T10392
|
|
83
|
-
* @internal
|
|
84
|
-
*/
|
|
85
|
-
async function deriveSlugSuggestionsForAllocator(db, base) {
|
|
86
|
-
return deriveSlugSuggestions(db, base);
|
|
87
|
-
}
|
|
88
|
-
getLogger("lifecycle:ivtr");
|
|
89
|
-
|
|
90
|
-
//#region ../core/dist/lifecycle/stages.js
|
|
91
|
-
/**
|
|
92
|
-
* Pipeline Stage Definitions and Transitions
|
|
93
|
-
*
|
|
94
|
-
* Defines the 9-stage RCASD-IVTR pipeline with stage metadata,
|
|
95
|
-
* transition rules, and prerequisite mappings.
|
|
96
|
-
*
|
|
97
|
-
* Stages (in order):
|
|
98
|
-
* 1. Research - Information gathering and exploration
|
|
99
|
-
* 2. Consensus - Multi-agent decisions and validation
|
|
100
|
-
* 3. Architecture Decision - Architecture Decision Records
|
|
101
|
-
* 4. Specification - Specification and documentation
|
|
102
|
-
* 5. Decomposition - Task breakdown and planning
|
|
103
|
-
* 6. Implementation - Code execution and building
|
|
104
|
-
* 7. Validation - Static analysis, type checking, quality gates
|
|
105
|
-
* 8. Testing - Test execution and coverage
|
|
106
|
-
* 9. Release - Version management and publishing
|
|
107
|
-
*
|
|
108
|
-
* @task T4800 - Implement Canonical SQLite Pipeline State Machine
|
|
109
|
-
* @epic T4798 - Lifecycle persistence improvements
|
|
110
|
-
* @audit T4799 - Unified stage names (replaces scattered definitions)
|
|
111
|
-
*
|
|
112
|
-
* NOTE: This file provides the canonical stage definitions. All other
|
|
113
|
-
* stage definitions in the codebase should reference these.
|
|
114
|
-
* Stage names MUST match the DB CHECK constraint in lifecycle_stages.stage_name.
|
|
115
|
-
*/
|
|
116
|
-
var PIPELINE_STAGES = [
|
|
117
|
-
"research",
|
|
118
|
-
"consensus",
|
|
119
|
-
"architecture_decision",
|
|
120
|
-
"specification",
|
|
121
|
-
"decomposition",
|
|
122
|
-
"implementation",
|
|
123
|
-
"validation",
|
|
124
|
-
"testing",
|
|
125
|
-
"release"
|
|
126
|
-
];
|
|
127
|
-
/**
|
|
128
|
-
* Canonical stage definitions with complete metadata.
|
|
129
|
-
*
|
|
130
|
-
* @task T4800
|
|
131
|
-
* @audit T4799 - Replaces legacy STAGE_DEFINITIONS from index.ts
|
|
132
|
-
*/
|
|
133
|
-
var STAGE_DEFINITIONS = {
|
|
134
|
-
research: {
|
|
135
|
-
stage: "research",
|
|
136
|
-
name: "Research",
|
|
137
|
-
description: "Information gathering, exploration, and knowledge acquisition",
|
|
138
|
-
order: 1,
|
|
139
|
-
category: "planning",
|
|
140
|
-
skippable: false,
|
|
141
|
-
defaultTimeoutHours: 48,
|
|
142
|
-
requiredGates: ["prerequisites-met"],
|
|
143
|
-
expectedArtifacts: ["research-report", "findings-document"]
|
|
144
|
-
},
|
|
145
|
-
consensus: {
|
|
146
|
-
stage: "consensus",
|
|
147
|
-
name: "Consensus",
|
|
148
|
-
description: "Multi-agent decision making and validation of research findings",
|
|
149
|
-
order: 2,
|
|
150
|
-
category: "decision",
|
|
151
|
-
skippable: true,
|
|
152
|
-
defaultTimeoutHours: 24,
|
|
153
|
-
requiredGates: ["research-complete", "agreement-reached"],
|
|
154
|
-
expectedArtifacts: ["consensus-record", "decision-log"]
|
|
155
|
-
},
|
|
156
|
-
architecture_decision: {
|
|
157
|
-
stage: "architecture_decision",
|
|
158
|
-
name: "Architecture Decision",
|
|
159
|
-
description: "Architecture Decision Records - documenting significant technical decisions",
|
|
160
|
-
order: 3,
|
|
161
|
-
category: "decision",
|
|
162
|
-
skippable: true,
|
|
163
|
-
defaultTimeoutHours: 24,
|
|
164
|
-
requiredGates: ["decisions-documented", "review-completed"],
|
|
165
|
-
expectedArtifacts: ["adr-document"]
|
|
166
|
-
},
|
|
167
|
-
specification: {
|
|
168
|
-
stage: "specification",
|
|
169
|
-
name: "Specification",
|
|
170
|
-
description: "Specification writing - RFC-style documentation of requirements and design",
|
|
171
|
-
order: 4,
|
|
172
|
-
category: "planning",
|
|
173
|
-
skippable: false,
|
|
174
|
-
defaultTimeoutHours: 72,
|
|
175
|
-
requiredGates: ["spec-complete", "spec-reviewed"],
|
|
176
|
-
expectedArtifacts: [
|
|
177
|
-
"spec-document",
|
|
178
|
-
"api-spec",
|
|
179
|
-
"design-doc"
|
|
180
|
-
]
|
|
181
|
-
},
|
|
182
|
-
decomposition: {
|
|
183
|
-
stage: "decomposition",
|
|
184
|
-
name: "Decomposition",
|
|
185
|
-
description: "Task breakdown - splitting work into atomic, executable tasks",
|
|
186
|
-
order: 5,
|
|
187
|
-
category: "planning",
|
|
188
|
-
skippable: false,
|
|
189
|
-
defaultTimeoutHours: 24,
|
|
190
|
-
requiredGates: ["tasks-created", "dependencies-mapped"],
|
|
191
|
-
expectedArtifacts: ["task-breakdown", "dependency-graph"]
|
|
192
|
-
},
|
|
193
|
-
implementation: {
|
|
194
|
-
stage: "implementation",
|
|
195
|
-
name: "Implementation",
|
|
196
|
-
description: "Implementation - writing code and building features",
|
|
197
|
-
order: 6,
|
|
198
|
-
category: "execution",
|
|
199
|
-
skippable: false,
|
|
200
|
-
defaultTimeoutHours: null,
|
|
201
|
-
requiredGates: ["code-complete", "lint-passing"],
|
|
202
|
-
expectedArtifacts: ["source-code", "implementation-notes"]
|
|
203
|
-
},
|
|
204
|
-
validation: {
|
|
205
|
-
stage: "validation",
|
|
206
|
-
name: "Validation",
|
|
207
|
-
description: "Verification - static analysis, type checking, and quality gates",
|
|
208
|
-
order: 7,
|
|
209
|
-
category: "validation",
|
|
210
|
-
skippable: false,
|
|
211
|
-
defaultTimeoutHours: 12,
|
|
212
|
-
requiredGates: ["static-analysis-pass", "type-check-pass"],
|
|
213
|
-
expectedArtifacts: ["verification-report"]
|
|
214
|
-
},
|
|
215
|
-
testing: {
|
|
216
|
-
stage: "testing",
|
|
217
|
-
name: "Testing",
|
|
218
|
-
description: "Testing - running test suites and ensuring coverage",
|
|
219
|
-
order: 8,
|
|
220
|
-
category: "validation",
|
|
221
|
-
skippable: false,
|
|
222
|
-
defaultTimeoutHours: 24,
|
|
223
|
-
requiredGates: ["tests-pass", "coverage-met"],
|
|
224
|
-
expectedArtifacts: ["test-results", "coverage-report"]
|
|
225
|
-
},
|
|
226
|
-
release: {
|
|
227
|
-
stage: "release",
|
|
228
|
-
name: "Release",
|
|
229
|
-
description: "Release - versioning, publishing, and deployment",
|
|
230
|
-
order: 9,
|
|
231
|
-
category: "delivery",
|
|
232
|
-
skippable: true,
|
|
233
|
-
defaultTimeoutHours: 4,
|
|
234
|
-
requiredGates: [
|
|
235
|
-
"version-bumped",
|
|
236
|
-
"changelog-updated",
|
|
237
|
-
"artifacts-published"
|
|
238
|
-
],
|
|
239
|
-
expectedArtifacts: [
|
|
240
|
-
"version-tag",
|
|
241
|
-
"release-notes",
|
|
242
|
-
"published-package"
|
|
243
|
-
]
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
|
-
/**
|
|
247
|
-
* Stage order mapping for quick lookups.
|
|
248
|
-
*
|
|
249
|
-
* @task T4800
|
|
250
|
-
*/
|
|
251
|
-
var STAGE_ORDER = {
|
|
252
|
-
research: 1,
|
|
253
|
-
consensus: 2,
|
|
254
|
-
architecture_decision: 3,
|
|
255
|
-
specification: 4,
|
|
256
|
-
decomposition: 5,
|
|
257
|
-
implementation: 6,
|
|
258
|
-
validation: 7,
|
|
259
|
-
testing: 8,
|
|
260
|
-
release: 9
|
|
261
|
-
};
|
|
262
|
-
/**
|
|
263
|
-
* Prerequisites for each stage - which stages must be completed before entering.
|
|
264
|
-
*
|
|
265
|
-
* @task T4800
|
|
266
|
-
* @audit T4799 - Canonical prerequisite map
|
|
267
|
-
*/
|
|
268
|
-
var STAGE_PREREQUISITES = {
|
|
269
|
-
research: [],
|
|
270
|
-
consensus: ["research"],
|
|
271
|
-
architecture_decision: ["research", "consensus"],
|
|
272
|
-
specification: [
|
|
273
|
-
"research",
|
|
274
|
-
"consensus",
|
|
275
|
-
"architecture_decision"
|
|
276
|
-
],
|
|
277
|
-
decomposition: ["research", "specification"],
|
|
278
|
-
implementation: [
|
|
279
|
-
"research",
|
|
280
|
-
"specification",
|
|
281
|
-
"decomposition"
|
|
282
|
-
],
|
|
283
|
-
validation: ["implementation"],
|
|
284
|
-
testing: ["implementation", "validation"],
|
|
285
|
-
release: [
|
|
286
|
-
"implementation",
|
|
287
|
-
"validation",
|
|
288
|
-
"testing"
|
|
289
|
-
]
|
|
290
|
-
};
|
|
291
|
-
/**
|
|
292
|
-
* Accepted shorthand aliases mapped to their canonical stage names.
|
|
293
|
-
*
|
|
294
|
-
* These allow users to type shorter names like `architecture` instead of
|
|
295
|
-
* `architecture_decision` on the CLI without breaking the state machine.
|
|
296
|
-
* The canonical name is always what gets persisted to the database.
|
|
297
|
-
*
|
|
298
|
-
* @task T929
|
|
299
|
-
*/
|
|
300
|
-
var STAGE_ALIASES = {
|
|
301
|
-
architecture: "architecture_decision",
|
|
302
|
-
adr: "architecture_decision",
|
|
303
|
-
spec: "specification",
|
|
304
|
-
decompose: "decomposition",
|
|
305
|
-
implement: "implementation",
|
|
306
|
-
verify: "validation",
|
|
307
|
-
validate: "validation",
|
|
308
|
-
test: "testing"
|
|
309
|
-
};
|
|
310
|
-
/**
|
|
311
|
-
* Resolve a stage name or alias to the canonical stage name.
|
|
312
|
-
*
|
|
313
|
-
* If `stage` is already a canonical stage name it is returned unchanged.
|
|
314
|
-
* If it is a known alias the canonical name is returned.
|
|
315
|
-
* Otherwise the original string is returned (callers should validate after).
|
|
316
|
-
*
|
|
317
|
-
* @param stage - Stage name or alias to resolve
|
|
318
|
-
* @returns Canonical stage name
|
|
319
|
-
*
|
|
320
|
-
* @task T929
|
|
321
|
-
* @example
|
|
322
|
-
* resolveStageAlias('architecture') // => 'architecture_decision'
|
|
323
|
-
* resolveStageAlias('architecture_decision') // => 'architecture_decision'
|
|
324
|
-
* resolveStageAlias('unknown') // => 'unknown'
|
|
325
|
-
*/
|
|
326
|
-
function resolveStageAlias(stage) {
|
|
327
|
-
return STAGE_ALIASES[stage] ?? stage;
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Check if a stage name is valid.
|
|
331
|
-
*
|
|
332
|
-
* @param stage - Stage name to validate
|
|
333
|
-
* @returns True if valid stage name
|
|
334
|
-
*
|
|
335
|
-
* @task T4800
|
|
336
|
-
*/
|
|
337
|
-
function isValidStage(stage) {
|
|
338
|
-
return PIPELINE_STAGES.includes(stage);
|
|
339
|
-
}
|
|
340
|
-
/**
|
|
341
|
-
* Get stages by category.
|
|
342
|
-
*
|
|
343
|
-
* @param category - Category to filter by
|
|
344
|
-
* @returns Array of stages in that category
|
|
345
|
-
*
|
|
346
|
-
* @task T4800
|
|
347
|
-
*/
|
|
348
|
-
function getStagesByCategory(category) {
|
|
349
|
-
return PIPELINE_STAGES.filter((stage) => STAGE_DEFINITIONS[stage].category === category);
|
|
350
|
-
}
|
|
351
|
-
getStagesByCategory("planning");
|
|
352
|
-
getStagesByCategory("decision");
|
|
353
|
-
getStagesByCategory("execution");
|
|
354
|
-
getStagesByCategory("validation");
|
|
355
|
-
getStagesByCategory("delivery");
|
|
356
|
-
|
|
357
|
-
//#endregion
|
|
358
|
-
//#region ../core/dist/tasks/tool-resolver.js
|
|
359
|
-
/**
|
|
360
|
-
* Canonical (project-agnostic) tool names accepted by `cleo verify
|
|
361
|
-
* --evidence "tool:<name>"`.
|
|
362
|
-
*
|
|
363
|
-
* Each canonical name maps to a project-specific command via
|
|
364
|
-
* {@link resolveToolCommand}. Adding a new canonical tool requires:
|
|
365
|
-
*
|
|
366
|
-
* 1. Adding the name here.
|
|
367
|
-
* 2. Adding a default for each {@link ProjectType} in `LANGUAGE_DEFAULTS`.
|
|
368
|
-
* 3. Updating {@link checkGateEvidenceMinimum} if the new tool can satisfy
|
|
369
|
-
* a verification gate.
|
|
370
|
-
*/
|
|
371
|
-
var CANONICAL_TOOLS = [
|
|
372
|
-
"test",
|
|
373
|
-
"build",
|
|
374
|
-
"lint",
|
|
375
|
-
"typecheck",
|
|
376
|
-
"audit",
|
|
377
|
-
"security-scan",
|
|
378
|
-
"nexus-impact-full"
|
|
379
|
-
];
|
|
380
|
-
/**
|
|
381
|
-
* Mapping of legacy hardcoded tool names → canonical name.
|
|
382
|
-
*
|
|
383
|
-
* @task T1534
|
|
384
|
-
*/
|
|
385
|
-
var LEGACY_TOOL_ALIASES = {
|
|
386
|
-
"pnpm-test": "test",
|
|
387
|
-
"npm-test": "test",
|
|
388
|
-
"yarn-test": "test",
|
|
389
|
-
"bun-test": "test",
|
|
390
|
-
vitest: "test",
|
|
391
|
-
jest: "test",
|
|
392
|
-
pytest: "test",
|
|
393
|
-
"cargo-test": "test",
|
|
394
|
-
"go-test": "test",
|
|
395
|
-
"pnpm-build": "build",
|
|
396
|
-
"npm-build": "build",
|
|
397
|
-
"yarn-build": "build",
|
|
398
|
-
"bun-build": "build",
|
|
399
|
-
"cargo-build": "build",
|
|
400
|
-
"go-build": "build",
|
|
401
|
-
biome: "lint",
|
|
402
|
-
eslint: "lint",
|
|
403
|
-
prettier: "lint",
|
|
404
|
-
ruff: "lint",
|
|
405
|
-
clippy: "lint",
|
|
406
|
-
tsc: "typecheck",
|
|
407
|
-
mypy: "typecheck",
|
|
408
|
-
pyright: "typecheck",
|
|
409
|
-
audit: "audit",
|
|
410
|
-
"pnpm-audit": "audit",
|
|
411
|
-
"npm-audit": "audit",
|
|
412
|
-
"cargo-audit": "audit"
|
|
413
|
-
};
|
|
414
|
-
/**
|
|
415
|
-
* Set of all valid `tool:<name>` payloads — canonical names plus legacy
|
|
416
|
-
* aliases. Returned by {@link listValidToolNames} for help / validation
|
|
417
|
-
* surfaces.
|
|
418
|
-
*
|
|
419
|
-
* @task T1534
|
|
420
|
-
*/
|
|
421
|
-
function listValidToolNames() {
|
|
422
|
-
return [...new Set([...CANONICAL_TOOLS, ...Object.keys(LEGACY_TOOL_ALIASES)])].sort();
|
|
423
|
-
}
|
|
424
|
-
Object.freeze(listValidToolNames());
|
|
425
|
-
Object.freeze(Object.fromEntries(Object.entries(GATE_EVIDENCE_REQUIREMENTS).map(([gate, spec]) => [gate, spec.oneOf.map((set) => [...set])])));
|
|
426
|
-
|
|
427
|
-
//#region ../worktree/dist/napi-binding.js
|
|
428
|
-
/**
|
|
429
|
-
* ESM-friendly bridge to the bundled worktree Node-API native addon.
|
|
430
|
-
*
|
|
431
|
-
* The napi-rs loader staged into `native/worktree-napi.cjs` exposes its surface as
|
|
432
|
-
* `module.exports = nativeBinding` — Node.js's CJS-to-ESM interop cannot
|
|
433
|
-
* statically detect named exports from a dynamic require(), so consumers route
|
|
434
|
-
* through this bridge instead of importing the native loader directly.
|
|
435
|
-
*
|
|
436
|
-
* This module wraps the native binding via `createRequire` so the import looks
|
|
437
|
-
* like a regular dynamic require from a CJS context. All consumers in this
|
|
438
|
-
* package import napi functions from THIS module, never directly from the
|
|
439
|
-
* native loader.
|
|
440
|
-
*
|
|
441
|
-
* Resolution order (first hit wins):
|
|
442
|
-
*
|
|
443
|
-
* 1. Bundled loader at `../native/worktree-napi.cjs` (published
|
|
444
|
-
* `@cleocode/worktree` tarball).
|
|
445
|
-
* 2. Repo-local crate loader at `../../../crates/worktree-napi/index.cjs`
|
|
446
|
-
* (source-tree execution after a local napi build).
|
|
447
|
-
* 3. **Core-managed cache** (T11580 · R10-L1): the host-triple `.node`
|
|
448
|
-
* resolved by the shared `@cleocode/core` postinstall picker under
|
|
449
|
-
* `<cache>/cleo/napi-bin/<version>/worktree-napi.<triple>.node`. This is
|
|
450
|
-
* the Distribution Pattern P2 runtime hand-off — the picker downloads +
|
|
451
|
-
* sha256-verifies the addon; this loader simply `require()`s the cached
|
|
452
|
-
* file (the `.node` exports `module.exports = nativeBinding`, so no `.cjs`
|
|
453
|
-
* wrapper is needed). Picked newest-version-first.
|
|
454
|
-
*
|
|
455
|
-
* @task T9982
|
|
456
|
-
* @task T11580
|
|
457
|
-
*/
|
|
458
|
-
/**
|
|
459
|
-
* Resolve the platform triple for the current host, mirroring the napi loader's
|
|
460
|
-
* `tripleName()` and the core picker's `resolveTriple()`. Returns `null` for
|
|
461
|
-
* unsupported platform/arch (e.g. macOS x64, for which no prebuild ships).
|
|
462
|
-
*
|
|
463
|
-
* @returns The host triple, or `null` when unsupported.
|
|
464
|
-
*/
|
|
465
|
-
function resolveHostTriple() {
|
|
466
|
-
const { platform, arch } = process;
|
|
467
|
-
if (platform === "linux" && arch === "x64") return "linux-x64-gnu";
|
|
468
|
-
if (platform === "linux" && arch === "arm64") return "linux-arm64-gnu";
|
|
469
|
-
if (platform === "darwin" && arch === "arm64") return "darwin-arm64";
|
|
470
|
-
if (platform === "win32" && arch === "x64") return "win32-x64-msvc";
|
|
471
|
-
return null;
|
|
472
|
-
}
|
|
473
|
-
/**
|
|
474
|
-
* Base cache directory holding the per-version `napi-bin` subdirs that the
|
|
475
|
-
* `@cleocode/core` picker writes to. Mirrors `cacheDir()` in
|
|
476
|
-
* `packages/core/scripts/napi-binary-picker.mjs` (env-paths('cleo').cache /
|
|
477
|
-
* napi-bin) without importing `@cleocode/core` (a devDependency only).
|
|
478
|
-
*
|
|
479
|
-
* @returns Absolute path to `<cache>/cleo/napi-bin`.
|
|
480
|
-
*/
|
|
481
|
-
function napiBinCacheRoot() {
|
|
482
|
-
const p = process.platform;
|
|
483
|
-
if (p === "win32") return join(process.env.LOCALAPPDATA ?? join(homedir(), "AppData", "Local"), "cleo", "Cache", "napi-bin");
|
|
484
|
-
if (p === "darwin") return join(homedir(), "Library", "Caches", "cleo", "napi-bin");
|
|
485
|
-
const xdg = process.env.XDG_CACHE_HOME;
|
|
486
|
-
return join(xdg?.startsWith("/") ? xdg : join(homedir(), ".cache"), "cleo", "napi-bin");
|
|
487
|
-
}
|
|
488
|
-
/**
|
|
489
|
-
* Find the core-managed cached `worktree-napi.<triple>.node` for the host,
|
|
490
|
-
* preferring the newest version directory. Returns `null` when no cached addon
|
|
491
|
-
* exists (the common case in a fully-bundled install — tiers 1/2 win first).
|
|
492
|
-
*
|
|
493
|
-
* @returns Absolute path to the cached `.node`, or `null`.
|
|
494
|
-
*/
|
|
495
|
-
function resolveCoreManagedNapiPath() {
|
|
496
|
-
const triple = resolveHostTriple();
|
|
497
|
-
if (triple === null) return null;
|
|
498
|
-
const root = napiBinCacheRoot();
|
|
499
|
-
if (!existsSync(root)) return null;
|
|
500
|
-
let versions;
|
|
501
|
-
try {
|
|
502
|
-
versions = readdirSync(root).sort().reverse();
|
|
503
|
-
} catch {
|
|
504
|
-
return null;
|
|
505
|
-
}
|
|
506
|
-
for (const version of versions) {
|
|
507
|
-
const candidate = join(root, version, `worktree-napi.${triple}.node`);
|
|
508
|
-
if (existsSync(candidate)) return candidate;
|
|
509
|
-
}
|
|
510
|
-
return null;
|
|
511
|
-
}
|
|
512
|
-
function getNative() {
|
|
513
|
-
if (nativeBinding !== null) return nativeBinding;
|
|
514
|
-
if (existsSync(bundledNativeLoaderPath)) {
|
|
515
|
-
nativeBinding = require_(bundledNativeLoaderPath);
|
|
516
|
-
return nativeBinding;
|
|
517
|
-
}
|
|
518
|
-
if (existsSync(repoLocalNativeLoaderPath)) try {
|
|
519
|
-
nativeBinding = require_(repoLocalNativeLoaderPath);
|
|
520
|
-
return nativeBinding;
|
|
521
|
-
} catch {
|
|
522
|
-
if (isTestRuntime()) {
|
|
523
|
-
nativeBinding = createTestFallbackNativeModule();
|
|
524
|
-
return nativeBinding;
|
|
525
|
-
}
|
|
526
|
-
throw new Error(`@cleocode/worktree: failed to load repo-local native loader at ${repoLocalNativeLoaderPath}. Run \`pnpm dlx @napi-rs/cli@3 build --release\` inside \`crates/worktree-napi/\` for source-tree execution.`);
|
|
527
|
-
}
|
|
528
|
-
const coreManagedNapiPath = resolveCoreManagedNapiPath();
|
|
529
|
-
if (coreManagedNapiPath !== null) try {
|
|
530
|
-
nativeBinding = require_(coreManagedNapiPath);
|
|
531
|
-
return nativeBinding;
|
|
532
|
-
} catch {
|
|
533
|
-
if (isTestRuntime()) {
|
|
534
|
-
nativeBinding = createTestFallbackNativeModule();
|
|
535
|
-
return nativeBinding;
|
|
536
|
-
}
|
|
537
|
-
throw new Error(`@cleocode/worktree: failed to load core-managed native addon at ${coreManagedNapiPath}. The @cleocode/core postinstall picker resolved a cached binary that could not be loaded — reinstall @cleocode/core or clear the napi-bin cache.`);
|
|
538
|
-
}
|
|
539
|
-
if (isTestRuntime()) {
|
|
540
|
-
nativeBinding = createTestFallbackNativeModule();
|
|
541
|
-
return nativeBinding;
|
|
542
|
-
}
|
|
543
|
-
throw new Error(`@cleocode/worktree: missing bundled native loader at ${bundledNativeLoaderPath}. The release package must include native/worktree-napi.cjs and worktree-napi.<triple>.node files, or @cleocode/core must resolve worktree-napi via its postinstall picker (Pattern P2).`);
|
|
544
|
-
}
|
|
545
|
-
function isTestRuntime() {
|
|
546
|
-
return process.env.NODE_ENV === "test" || process.env.VITEST !== void 0;
|
|
547
|
-
}
|
|
548
|
-
function createTestFallbackNativeModule() {
|
|
549
|
-
const copyPathsParallelFallback = (srcDir, destDir, paths, opts) => {
|
|
550
|
-
let copiedCount = 0;
|
|
551
|
-
const failedPaths = [];
|
|
552
|
-
for (const relativePath of paths) {
|
|
553
|
-
const source = join(srcDir, relativePath);
|
|
554
|
-
const destination = join(destDir, relativePath);
|
|
555
|
-
if (opts.rootGuard !== void 0) {
|
|
556
|
-
const guardedRoot = resolve(opts.rootGuard);
|
|
557
|
-
if (!resolve(destination).startsWith(guardedRoot)) {
|
|
558
|
-
failedPaths.push(relativePath);
|
|
559
|
-
continue;
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
try {
|
|
563
|
-
cpSync(source, destination, {
|
|
564
|
-
recursive: true,
|
|
565
|
-
force: opts.force
|
|
566
|
-
});
|
|
567
|
-
copiedCount += 1;
|
|
568
|
-
} catch {
|
|
569
|
-
failedPaths.push(relativePath);
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
return {
|
|
573
|
-
copiedCount,
|
|
574
|
-
skippedCount: paths.length - copiedCount,
|
|
575
|
-
failedPaths,
|
|
576
|
-
totalBytes: 0
|
|
577
|
-
};
|
|
578
|
-
};
|
|
579
|
-
return {
|
|
580
|
-
copyPathsParallel: copyPathsParallelFallback,
|
|
581
|
-
destroyWorktree() {
|
|
582
|
-
return {
|
|
583
|
-
removed: false,
|
|
584
|
-
branchDeleted: false
|
|
585
|
-
};
|
|
586
|
-
},
|
|
587
|
-
readWorktreeInclude(repoRoot) {
|
|
588
|
-
const includePath = join(repoRoot, ".worktreeinclude");
|
|
589
|
-
if (!existsSync(includePath)) return [];
|
|
590
|
-
return readFileSync(includePath, "utf-8").split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#")).map((line) => ({
|
|
591
|
-
pattern: line.startsWith("!") ? line.slice(1) : line,
|
|
592
|
-
isNegation: line.startsWith("!")
|
|
593
|
-
}));
|
|
594
|
-
},
|
|
595
|
-
applyInclude(patterns, srcDir, destDir, opts) {
|
|
596
|
-
return copyPathsParallelFallback(srcDir, destDir, patterns.filter((pattern) => !pattern.isNegation).map((pattern) => pattern.pattern), opts);
|
|
597
|
-
},
|
|
598
|
-
listWorktrees() {
|
|
599
|
-
return [];
|
|
600
|
-
},
|
|
601
|
-
pruneWorktrees(opts) {
|
|
602
|
-
return {
|
|
603
|
-
integrationTarget: opts.integrationTarget,
|
|
604
|
-
candidates: []
|
|
605
|
-
};
|
|
606
|
-
},
|
|
607
|
-
removeDir(opts) {
|
|
608
|
-
rmSync(opts.path, {
|
|
609
|
-
recursive: true,
|
|
610
|
-
force: true
|
|
611
|
-
});
|
|
612
|
-
return {
|
|
613
|
-
files: 0,
|
|
614
|
-
bytes: 0
|
|
615
|
-
};
|
|
616
|
-
},
|
|
617
|
-
provisionWorktree(_opts) {
|
|
618
|
-
return {
|
|
619
|
-
path: "",
|
|
620
|
-
branch: "",
|
|
621
|
-
head: ""
|
|
622
|
-
};
|
|
623
|
-
},
|
|
624
|
-
integrateWorktree(_opts) {
|
|
625
|
-
return {
|
|
626
|
-
taskId: "",
|
|
627
|
-
targetBranch: "",
|
|
628
|
-
merged: false,
|
|
629
|
-
mergeCommit: "",
|
|
630
|
-
commitCount: 0,
|
|
631
|
-
rebased: false,
|
|
632
|
-
error: "integrateWorktree not available in test fallback"
|
|
633
|
-
};
|
|
634
|
-
}
|
|
635
|
-
};
|
|
636
|
-
}
|
|
637
|
-
var require_, bundledNativeLoaderPath, repoLocalNativeLoaderPath, nativeBinding, destroyWorktree, integrateWorktree;
|
|
638
|
-
var init_napi_binding = __esmMin((() => {
|
|
639
|
-
require_ = createRequire(import.meta.url);
|
|
640
|
-
bundledNativeLoaderPath = fileURLToPath(new URL("../native/worktree-napi.cjs", import.meta.url));
|
|
641
|
-
repoLocalNativeLoaderPath = fileURLToPath(new URL("../../../crates/worktree-napi/index.cjs", import.meta.url));
|
|
642
|
-
nativeBinding = null;
|
|
643
|
-
destroyWorktree = (opts) => getNative().destroyWorktree(opts);
|
|
644
|
-
integrateWorktree = (opts) => getNative().integrateWorktree(opts);
|
|
645
|
-
}));
|
|
646
|
-
//#endregion
|
|
647
|
-
//#region ../worktree/dist/copy-on-write.js
|
|
648
|
-
init_napi_binding();
|
|
649
|
-
promisify(execFile);
|
|
650
|
-
/**
|
|
651
|
-
* Run a git command synchronously and return trimmed stdout.
|
|
652
|
-
*
|
|
653
|
-
* @param args - Git argument array (do NOT include "git" as first element).
|
|
654
|
-
* @param cwd - Working directory for the git command.
|
|
655
|
-
* @param timeoutMs - Optional timeout override in milliseconds. Defaults to
|
|
656
|
-
* {@link DEFAULT_GIT_TIMEOUT_MS}. Pass `0` to disable (NOT recommended).
|
|
657
|
-
* @returns Trimmed stdout string.
|
|
658
|
-
* @throws Error if the command exits non-zero or exceeds the timeout.
|
|
659
|
-
* @task T9545
|
|
660
|
-
*/
|
|
661
|
-
function gitSync(args, cwd, timeoutMs) {
|
|
662
|
-
return execFileSync("git", args, {
|
|
663
|
-
cwd,
|
|
664
|
-
encoding: "utf-8",
|
|
665
|
-
stdio: [
|
|
666
|
-
"pipe",
|
|
667
|
-
"pipe",
|
|
668
|
-
"pipe"
|
|
669
|
-
],
|
|
670
|
-
timeout: 18e4
|
|
671
|
-
}).trim();
|
|
672
|
-
}
|
|
673
|
-
/**
|
|
674
|
-
* Run a git command synchronously, returning false instead of throwing on error.
|
|
675
|
-
*
|
|
676
|
-
* Useful for best-effort cleanup operations where failure is non-fatal.
|
|
677
|
-
*
|
|
678
|
-
* @param args - Git argument array.
|
|
679
|
-
* @param cwd - Working directory.
|
|
680
|
-
* @param timeoutMs - Optional timeout override in milliseconds. Defaults to
|
|
681
|
-
* {@link DEFAULT_GIT_TIMEOUT_MS}.
|
|
682
|
-
* @returns true on exit 0, false otherwise (including timeout).
|
|
683
|
-
* @task T9545
|
|
684
|
-
*/
|
|
685
|
-
function gitSilent(args, cwd, timeoutMs) {
|
|
686
|
-
try {
|
|
687
|
-
execFileSync("git", args, {
|
|
688
|
-
cwd,
|
|
689
|
-
stdio: "pipe",
|
|
690
|
-
timeout: timeoutMs ?? 18e4
|
|
691
|
-
});
|
|
692
|
-
return true;
|
|
693
|
-
} catch {
|
|
694
|
-
return false;
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
/**
|
|
698
|
-
* Determine the git root directory for a given project path.
|
|
699
|
-
*
|
|
700
|
-
* @param projectRoot - Absolute path to start the search from.
|
|
701
|
-
* @returns Absolute path to the git root.
|
|
702
|
-
* @throws Error if not inside a git repository.
|
|
703
|
-
*/
|
|
704
|
-
function getGitRoot(projectRoot) {
|
|
705
|
-
try {
|
|
706
|
-
return gitSync(["rev-parse", "--show-toplevel"], projectRoot);
|
|
707
|
-
} catch {
|
|
708
|
-
throw new Error(`Not a git repository: ${projectRoot}`);
|
|
709
|
-
}
|
|
710
|
-
}
|
|
711
|
-
//#endregion
|
|
712
|
-
//#region ../worktree/dist/worktree-include.js
|
|
713
|
-
init_napi_binding();
|
|
714
|
-
//#endregion
|
|
715
|
-
//#region ../worktree/dist/worktree-destroy.js
|
|
716
|
-
init_napi_binding();
|
|
717
|
-
//#endregion
|
|
718
|
-
//#region ../worktree/dist/worktree-list.js
|
|
719
|
-
init_napi_binding();
|
|
720
|
-
//#endregion
|
|
721
|
-
//#region ../worktree/dist/worktree-prune.js
|
|
722
|
-
init_napi_binding();
|
|
723
|
-
//#endregion
|
|
724
|
-
//#region ../worktree/dist/index.js
|
|
725
|
-
init_napi_binding();
|
|
726
|
-
//#endregion
|
|
727
|
-
//#region ../core/dist/spawn/branch-lock.js
|
|
728
|
-
/**
|
|
729
|
-
* Resolve the worktree root directory for a project.
|
|
730
|
-
*
|
|
731
|
-
* Delegates to the canonical paths-SSoT helpers in `@cleocode/paths`. The
|
|
732
|
-
* resolved directory follows the XDG canonical layout per D029:
|
|
733
|
-
*
|
|
734
|
-
* Linux: ~/.local/share/cleo/worktrees/<projectHash>/
|
|
735
|
-
* macOS: ~/Library/Application Support/cleo/worktrees/<projectHash>/
|
|
736
|
-
* Windows: %LOCALAPPDATA%\cleo\Data\worktrees\<projectHash>\
|
|
737
|
-
*
|
|
738
|
-
* T9984: previously hand-rolled `createHash('sha256').update(projectRoot)` +
|
|
739
|
-
* `process.env['XDG_DATA_HOME']` — both violations of the paths-SSoT lint
|
|
740
|
-
* (`packages/paths/` is the only legitimate source of these computations).
|
|
741
|
-
* Now routes through `computeProjectHash` and `resolveWorktreeRootForHash`.
|
|
742
|
-
*
|
|
743
|
-
* @param projectRoot - Absolute path to the project root.
|
|
744
|
-
* @returns Absolute path to the worktree root directory.
|
|
745
|
-
*
|
|
746
|
-
* @task T1118
|
|
747
|
-
* @task T1120
|
|
748
|
-
* @task T9984
|
|
749
|
-
*/
|
|
750
|
-
function resolveAgentWorktreeRoot(projectRoot) {
|
|
751
|
-
return resolveWorktreeRootForHash(computeProjectHash(projectRoot));
|
|
752
|
-
}
|
|
753
|
-
/**
|
|
754
|
-
* Prune the worktree for a single completed or cancelled task.
|
|
755
|
-
*
|
|
756
|
-
* This function does NOT integrate commits — it is called after
|
|
757
|
-
* {@link completeAgentWorktreeViaMerge} (or `cleo complete`) has already
|
|
758
|
-
* recorded the task as done. It simply removes the worktree filesystem entry
|
|
759
|
-
* and the `task/<taskId>` branch if the branch has no commits ahead of the
|
|
760
|
-
* base ref.
|
|
761
|
-
*
|
|
762
|
-
* Behaviour:
|
|
763
|
-
* - Returns `{ status: 'skipped' }` when no worktree exists for the task.
|
|
764
|
-
* - Unlocks the worktree before removing (handles locked worktrees created by spawn).
|
|
765
|
-
* - Falls back to `rmSync` if `git worktree remove` fails.
|
|
766
|
-
* - Deletes `task/<taskId>` branch only when it has 0 commits ahead of the
|
|
767
|
-
* current HEAD (i.e. the branch has already been merged or is empty).
|
|
768
|
-
* When commits are still present the branch is left in place and reported in
|
|
769
|
-
* the result — callers should use `completeAgentWorktreeViaMerge` first.
|
|
770
|
-
* - Always writes a `--force` remove with an audit log entry (`.cleo/audit/worktree-prune.jsonl`)
|
|
771
|
-
* when the worktree is detected as dirty.
|
|
772
|
-
* - Never throws — failures are returned in `{ status: 'error', error }`.
|
|
773
|
-
*
|
|
774
|
-
* @param taskId - The CLEO task ID (e.g. "T1462").
|
|
775
|
-
* @param projectRoot - Absolute path to the project root.
|
|
776
|
-
* @param opts.auditLogPath - Override path for the audit JSONL (testing).
|
|
777
|
-
* @returns Prune outcome.
|
|
778
|
-
*
|
|
779
|
-
* @task T1462
|
|
780
|
-
* @adr ADR-055
|
|
781
|
-
*/
|
|
782
|
-
function pruneWorktree(taskId, projectRoot, opts = {}) {
|
|
783
|
-
const branch = `task/${taskId}`;
|
|
784
|
-
let gitRoot;
|
|
785
|
-
try {
|
|
786
|
-
gitRoot = getGitRoot(projectRoot);
|
|
787
|
-
} catch (err) {
|
|
788
|
-
return {
|
|
789
|
-
taskId,
|
|
790
|
-
status: "error",
|
|
791
|
-
worktreeRemoved: false,
|
|
792
|
-
branchDeleted: false,
|
|
793
|
-
wasDirty: false,
|
|
794
|
-
error: `Not a git repo: ${err instanceof Error ? err.message : String(err)}`
|
|
795
|
-
};
|
|
796
|
-
}
|
|
797
|
-
const worktreePath = join(resolveAgentWorktreeRoot(projectRoot), taskId);
|
|
798
|
-
if (!existsSync(worktreePath)) {
|
|
799
|
-
let branchDeleted = false;
|
|
800
|
-
try {
|
|
801
|
-
if (gitSync([
|
|
802
|
-
"branch",
|
|
803
|
-
"--list",
|
|
804
|
-
branch
|
|
805
|
-
], gitRoot)) {
|
|
806
|
-
gitSync([
|
|
807
|
-
"branch",
|
|
808
|
-
"-D",
|
|
809
|
-
branch
|
|
810
|
-
], gitRoot);
|
|
811
|
-
branchDeleted = true;
|
|
812
|
-
} else branchDeleted = true;
|
|
813
|
-
} catch {}
|
|
814
|
-
return {
|
|
815
|
-
taskId,
|
|
816
|
-
status: "skipped",
|
|
817
|
-
worktreeRemoved: false,
|
|
818
|
-
branchDeleted,
|
|
819
|
-
wasDirty: false
|
|
820
|
-
};
|
|
821
|
-
}
|
|
822
|
-
let wasDirty = false;
|
|
823
|
-
try {
|
|
824
|
-
wasDirty = gitSync(["status", "--porcelain"], worktreePath).length > 0;
|
|
825
|
-
} catch {}
|
|
826
|
-
if (wasDirty) try {
|
|
827
|
-
const auditDir = opts.auditLogPath ? opts.auditLogPath.split("/").slice(0, -1).join("/") : join(projectRoot, ".cleo", "audit");
|
|
828
|
-
mkdirSync(auditDir, { recursive: true });
|
|
829
|
-
appendFileSync(opts.auditLogPath ?? join(auditDir, "worktree-prune.jsonl"), JSON.stringify({
|
|
830
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
831
|
-
taskId,
|
|
832
|
-
worktreePath,
|
|
833
|
-
action: "force-remove-dirty",
|
|
834
|
-
agent: process.env["CLEO_AGENT_ID"] ?? "cleo"
|
|
835
|
-
}) + "\n", "utf-8");
|
|
836
|
-
} catch {}
|
|
837
|
-
let worktreeRemoved = false;
|
|
838
|
-
try {
|
|
839
|
-
worktreeRemoved = destroyWorktree({
|
|
840
|
-
repoRoot: gitRoot,
|
|
841
|
-
worktreePath,
|
|
842
|
-
force: true
|
|
843
|
-
}).removed;
|
|
844
|
-
if (worktreeRemoved && existsSync(worktreePath)) worktreeRemoved = false;
|
|
845
|
-
} catch {}
|
|
846
|
-
if (!worktreeRemoved) {
|
|
847
|
-
gitSilent([
|
|
848
|
-
"worktree",
|
|
849
|
-
"unlock",
|
|
850
|
-
worktreePath
|
|
851
|
-
], gitRoot);
|
|
852
|
-
try {
|
|
853
|
-
rmSync(worktreePath, {
|
|
854
|
-
recursive: true,
|
|
855
|
-
force: true
|
|
856
|
-
});
|
|
857
|
-
gitSilent(["worktree", "prune"], gitRoot);
|
|
858
|
-
worktreeRemoved = true;
|
|
859
|
-
} catch (err) {
|
|
860
|
-
return {
|
|
861
|
-
taskId,
|
|
862
|
-
status: "error",
|
|
863
|
-
worktreeRemoved: false,
|
|
864
|
-
branchDeleted: false,
|
|
865
|
-
wasDirty,
|
|
866
|
-
error: `Failed to remove worktree: ${err instanceof Error ? err.message : String(err)}`
|
|
867
|
-
};
|
|
868
|
-
}
|
|
869
|
-
}
|
|
870
|
-
let branchDeleted = false;
|
|
871
|
-
try {
|
|
872
|
-
if (gitSync([
|
|
873
|
-
"branch",
|
|
874
|
-
"--list",
|
|
875
|
-
branch
|
|
876
|
-
], gitRoot)) {
|
|
877
|
-
let baseRef;
|
|
878
|
-
try {
|
|
879
|
-
baseRef = gitSync([
|
|
880
|
-
"rev-parse",
|
|
881
|
-
"--abbrev-ref",
|
|
882
|
-
"HEAD"
|
|
883
|
-
], gitRoot);
|
|
884
|
-
} catch {
|
|
885
|
-
baseRef = "main";
|
|
886
|
-
}
|
|
887
|
-
if (gitSync([
|
|
888
|
-
"log",
|
|
889
|
-
"--format=%H",
|
|
890
|
-
`${baseRef}..${branch}`
|
|
891
|
-
], gitRoot).split("\n").map((s) => s.trim()).filter(Boolean).length === 0) {
|
|
892
|
-
gitSync([
|
|
893
|
-
"branch",
|
|
894
|
-
"-D",
|
|
895
|
-
branch
|
|
896
|
-
], gitRoot);
|
|
897
|
-
branchDeleted = true;
|
|
898
|
-
} else branchDeleted = false;
|
|
899
|
-
} else branchDeleted = true;
|
|
900
|
-
} catch {}
|
|
901
|
-
return {
|
|
902
|
-
taskId,
|
|
903
|
-
status: "pruned",
|
|
904
|
-
worktreeRemoved,
|
|
905
|
-
branchDeleted,
|
|
906
|
-
wasDirty
|
|
907
|
-
};
|
|
908
|
-
}
|
|
909
|
-
/**
|
|
910
|
-
* Probe order for default-branch fallback when neither config nor
|
|
911
|
-
* `origin/HEAD` resolves. Order matches industry convention frequency.
|
|
912
|
-
*/
|
|
913
|
-
var DEFAULT_BRANCH_PROBE_ORDER = [
|
|
914
|
-
"main",
|
|
915
|
-
"master",
|
|
916
|
-
"develop",
|
|
917
|
-
"trunk"
|
|
918
|
-
];
|
|
919
|
-
/**
|
|
920
|
-
* Resolve the project's default integration branch in a project-agnostic way.
|
|
921
|
-
*
|
|
922
|
-
* Resolution order (per ADR-062):
|
|
923
|
-
*
|
|
924
|
-
* 1. `.cleo/config.json::git.defaultBranch` (explicit override).
|
|
925
|
-
* 2. `git symbolic-ref refs/remotes/origin/HEAD` (what the remote calls
|
|
926
|
-
* default — works for `master`, `main`, `trunk`, etc.).
|
|
927
|
-
* 3. Probe local branches in order: `main`, `master`, `develop`, `trunk`.
|
|
928
|
-
* 4. Fallback to `'main'`.
|
|
929
|
-
*
|
|
930
|
-
* @param projectRoot - Absolute path to the project root.
|
|
931
|
-
* @returns The resolved default branch name (never throws).
|
|
932
|
-
*
|
|
933
|
-
* @task T1587
|
|
934
|
-
* @adr ADR-062
|
|
935
|
-
*/
|
|
936
|
-
function getDefaultBranch(projectRoot) {
|
|
937
|
-
const configPath = join(projectRoot, ".cleo", "config.json");
|
|
938
|
-
if (existsSync(configPath)) try {
|
|
939
|
-
const raw = readFileSync(configPath, "utf-8");
|
|
940
|
-
const fromCfg = JSON.parse(raw).git?.defaultBranch;
|
|
941
|
-
if (typeof fromCfg === "string" && fromCfg.length > 0) return fromCfg;
|
|
942
|
-
} catch {}
|
|
943
|
-
let gitRoot;
|
|
944
|
-
try {
|
|
945
|
-
gitRoot = getGitRoot(projectRoot);
|
|
946
|
-
} catch {
|
|
947
|
-
return "main";
|
|
948
|
-
}
|
|
949
|
-
try {
|
|
950
|
-
const stripped = gitSync(["symbolic-ref", "refs/remotes/origin/HEAD"], gitRoot).replace(/^refs\/remotes\/origin\//, "").trim();
|
|
951
|
-
if (stripped.length > 0) return stripped;
|
|
952
|
-
} catch {}
|
|
953
|
-
for (const candidate of DEFAULT_BRANCH_PROBE_ORDER) try {
|
|
954
|
-
if (gitSync([
|
|
955
|
-
"branch",
|
|
956
|
-
"--list",
|
|
957
|
-
candidate
|
|
958
|
-
], gitRoot).length > 0) return candidate;
|
|
959
|
-
} catch {}
|
|
960
|
-
return "main";
|
|
961
|
-
}
|
|
962
|
-
/**
|
|
963
|
-
* Complete a worker task's worktree via `git merge --no-ff` (ADR-062).
|
|
964
|
-
*
|
|
965
|
-
* Canonical worktree integration per ADR-062. Preserves the full agent
|
|
966
|
-
* commit graph instead of rewriting SHAs, so `git log --grep "T<id>"`
|
|
967
|
-
* returns the originating commits with their original authorship.
|
|
968
|
-
*
|
|
969
|
-
* Steps performed inside the worktree at
|
|
970
|
-
* `~/.local/share/cleo/worktrees/<projectHash>/<taskId>/`:
|
|
971
|
-
*
|
|
972
|
-
* 1. Resolve target branch via {@link getDefaultBranch} (or `opts.targetBranch`
|
|
973
|
-
* override). NEVER hardcodes "main".
|
|
974
|
-
* 2. `git fetch origin` then `git rebase origin/<targetBranch>` inside the
|
|
975
|
-
* worktree. Conflicts cause an early non-fatal return — the agent must
|
|
976
|
-
* re-resolve before completion.
|
|
977
|
-
* 3. From the project's git root on `<targetBranch>`, run
|
|
978
|
-
* `git merge --no-ff task/<taskId> -m "Merge T<id>: <title>"` so the
|
|
979
|
-
* merge commit subject is `git log --grep`-friendly.
|
|
980
|
-
* 4. Capture the merge commit SHA and report it.
|
|
981
|
-
* 5. Delegate worktree+branch removal to {@link pruneWorktree} (T1462).
|
|
982
|
-
*
|
|
983
|
-
* Project-agnostic: no string in this function hardcodes "main", "master",
|
|
984
|
-
* or any other branch name. Test fixtures pass arbitrary `targetBranch`.
|
|
985
|
-
*
|
|
986
|
-
* @param taskId - The CLEO task ID (e.g. `"T1587"`).
|
|
987
|
-
* @param projectRoot - Absolute path to the project root.
|
|
988
|
-
* @param opts.targetBranch - Override the resolved default branch.
|
|
989
|
-
* @param opts.taskTitle - Task title used in the merge commit message subject.
|
|
990
|
-
* @param opts.skipFetch - Skip the `git fetch origin` step (test fixtures).
|
|
991
|
-
* @returns Merge integration result.
|
|
992
|
-
*
|
|
993
|
-
* @task T1587
|
|
994
|
-
* @adr ADR-062
|
|
995
|
-
*/
|
|
996
|
-
function completeAgentWorktreeViaMerge(taskId, projectRoot, opts = {}) {
|
|
997
|
-
const branch = `task/${taskId}`;
|
|
998
|
-
const targetBranch = opts.targetBranch ?? getDefaultBranch(projectRoot);
|
|
999
|
-
let gitRoot;
|
|
1000
|
-
try {
|
|
1001
|
-
gitRoot = getGitRoot(projectRoot);
|
|
1002
|
-
} catch (err) {
|
|
1003
|
-
return {
|
|
1004
|
-
taskId,
|
|
1005
|
-
targetBranch,
|
|
1006
|
-
merged: false,
|
|
1007
|
-
mergeCommit: "",
|
|
1008
|
-
commitCount: 0,
|
|
1009
|
-
rebased: false,
|
|
1010
|
-
worktreeRemoved: false,
|
|
1011
|
-
branchDeleted: false,
|
|
1012
|
-
error: `Not a git repo: ${err instanceof Error ? err.message : String(err)}`
|
|
1013
|
-
};
|
|
1014
|
-
}
|
|
1015
|
-
const worktreePath = join(resolveAgentWorktreeRoot(projectRoot), taskId);
|
|
1016
|
-
if (!(gitSync([
|
|
1017
|
-
"branch",
|
|
1018
|
-
"--list",
|
|
1019
|
-
branch
|
|
1020
|
-
], gitRoot).trim().length > 0) && !existsSync(worktreePath)) return {
|
|
1021
|
-
taskId,
|
|
1022
|
-
targetBranch,
|
|
1023
|
-
merged: false,
|
|
1024
|
-
mergeCommit: "",
|
|
1025
|
-
commitCount: 0,
|
|
1026
|
-
rebased: false,
|
|
1027
|
-
worktreeRemoved: false,
|
|
1028
|
-
branchDeleted: false,
|
|
1029
|
-
error: `no task branch '${branch}' and no worktree — nothing to integrate`,
|
|
1030
|
-
nothingToIntegrate: true
|
|
1031
|
-
};
|
|
1032
|
-
const result = integrateWorktree({
|
|
1033
|
-
repoRoot: gitRoot,
|
|
1034
|
-
worktreePath,
|
|
1035
|
-
branch,
|
|
1036
|
-
targetBranch,
|
|
1037
|
-
taskTitle: opts.taskTitle,
|
|
1038
|
-
skipFetch: opts.skipFetch ?? false
|
|
1039
|
-
});
|
|
1040
|
-
if (!result.merged) return {
|
|
1041
|
-
taskId,
|
|
1042
|
-
targetBranch,
|
|
1043
|
-
merged: false,
|
|
1044
|
-
mergeCommit: "",
|
|
1045
|
-
commitCount: result.commitCount,
|
|
1046
|
-
rebased: result.rebased,
|
|
1047
|
-
worktreeRemoved: false,
|
|
1048
|
-
branchDeleted: false,
|
|
1049
|
-
error: result.error
|
|
1050
|
-
};
|
|
1051
|
-
const pruneResult = pruneWorktree(taskId, projectRoot);
|
|
1052
|
-
return {
|
|
1053
|
-
taskId,
|
|
1054
|
-
targetBranch,
|
|
1055
|
-
merged: true,
|
|
1056
|
-
mergeCommit: result.mergeCommit,
|
|
1057
|
-
commitCount: result.commitCount,
|
|
1058
|
-
rebased: result.rebased,
|
|
1059
|
-
worktreeRemoved: pruneResult.worktreeRemoved,
|
|
1060
|
-
branchDeleted: pruneResult.branchDeleted,
|
|
1061
|
-
error: pruneResult.error
|
|
1062
|
-
};
|
|
1063
|
-
}
|
|
1064
|
-
/**
|
|
1065
|
-
* Complete a worker task's worktree integration via merge, cleanup, and audit log.
|
|
1066
|
-
*
|
|
1067
|
-
* This is the orchestrator-facing convenience wrapper around
|
|
1068
|
-
* `completeAgentWorktreeViaMerge`. In addition to the merge+prune steps it:
|
|
1069
|
-
*
|
|
1070
|
-
* 1. Delegates all merge and cleanup to `completeAgentWorktreeViaMerge`.
|
|
1071
|
-
* 2. Appends a structured entry to `.cleo/audit/worktree-integration.jsonl`
|
|
1072
|
-
* recording the merge commit, task ID, and cleanup outcome.
|
|
1073
|
-
*
|
|
1074
|
-
* Orchestrators MUST call this (not `completeAgentWorktreeViaMerge` directly)
|
|
1075
|
-
* so every integration is auditable.
|
|
1076
|
-
*
|
|
1077
|
-
* @param taskId - The CLEO task ID (e.g. `"T1587"`).
|
|
1078
|
-
* @param projectRoot - Absolute path to the project root.
|
|
1079
|
-
* @param opts.targetBranch - Override the resolved default branch.
|
|
1080
|
-
* @param opts.taskTitle - Task title used in the merge commit message subject.
|
|
1081
|
-
* @param opts.skipFetch - Skip the `git fetch origin` step (test fixtures).
|
|
1082
|
-
* @param opts.auditLogPath - Override the audit JSONL path (testing).
|
|
1083
|
-
* @returns Integration result including audit log path.
|
|
1084
|
-
*
|
|
1085
|
-
* @task T9043
|
|
1086
|
-
* @adr ADR-062
|
|
1087
|
-
*/
|
|
1088
|
-
function completeAgentWorktreeIntegration(taskId, projectRoot, opts = {}) {
|
|
1089
|
-
const mergeResult = completeAgentWorktreeViaMerge(taskId, projectRoot, {
|
|
1090
|
-
targetBranch: opts.targetBranch,
|
|
1091
|
-
taskTitle: opts.taskTitle,
|
|
1092
|
-
skipFetch: opts.skipFetch
|
|
1093
|
-
});
|
|
1094
|
-
let auditLogEntry = null;
|
|
1095
|
-
try {
|
|
1096
|
-
const auditDir = opts.auditLogPath ? opts.auditLogPath.split("/").slice(0, -1).join("/") : join(projectRoot, ".cleo", "audit");
|
|
1097
|
-
mkdirSync(auditDir, { recursive: true });
|
|
1098
|
-
const logPath = opts.auditLogPath ?? join(auditDir, "worktree-integration.jsonl");
|
|
1099
|
-
appendFileSync(logPath, JSON.stringify({
|
|
1100
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1101
|
-
taskId,
|
|
1102
|
-
mergeCommit: mergeResult.mergeCommit,
|
|
1103
|
-
merged: mergeResult.merged,
|
|
1104
|
-
worktreeRemoved: mergeResult.worktreeRemoved,
|
|
1105
|
-
branchDeleted: mergeResult.branchDeleted,
|
|
1106
|
-
error: mergeResult.error ?? null,
|
|
1107
|
-
agent: process.env["CLEO_AGENT_ID"] ?? "cleo"
|
|
1108
|
-
}) + "\n", "utf-8");
|
|
1109
|
-
auditLogEntry = logPath;
|
|
1110
|
-
} catch {}
|
|
1111
|
-
return {
|
|
1112
|
-
...mergeResult,
|
|
1113
|
-
auditLogEntry
|
|
1114
|
-
};
|
|
1115
|
-
}
|
|
1116
|
-
|
|
1117
|
-
export { PIPELINE_STAGES as P, STAGE_PREREQUISITES as S, STAGE_ORDER as a, STAGE_DEFINITIONS as b, completeAgentWorktreeIntegration as c, deriveSlugSuggestionsForAllocator as d, isValidStage as i, resolveStageAlias as r };
|
|
1118
|
-
//# sourceMappingURL=branch-lock-Cq7zzmFK.js.map
|