@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,716 +0,0 @@
|
|
|
1
|
-
import { g as getBrainAccessor } from './memory-accessor2-B981tHDR.js';
|
|
2
|
-
import { t as typedAll } from './typed-query-l1D_QElt.js';
|
|
3
|
-
import { Q as QUALITY_SCORE_THRESHOLD } from './quality-scoring-CCPuRQmJ.js';
|
|
4
|
-
import { s as searchSimilar } from './brain-similarity-DI4yzm9e.js';
|
|
5
|
-
|
|
6
|
-
//#region ../core/dist/memory/brain-search.js
|
|
7
|
-
/**
|
|
8
|
-
* Full-text search across BRAIN memory using SQLite FTS5.
|
|
9
|
-
* Uses raw SQL via nativeDb because drizzle doesn't support FTS5 virtual tables.
|
|
10
|
-
*
|
|
11
|
-
* Falls back to LIKE queries if FTS5 is not available (some SQLite builds lack it).
|
|
12
|
-
*
|
|
13
|
-
* @task T5130
|
|
14
|
-
* @epic T5149
|
|
15
|
-
*/
|
|
16
|
-
/** Track whether FTS5 is available in the current SQLite build. */
|
|
17
|
-
var _fts5Available = null;
|
|
18
|
-
/**
|
|
19
|
-
* Track WHICH brain database has had its FTS tables created and index rebuilt
|
|
20
|
-
* this session — keyed by the resolved `cleo.db` file PATH, NOT a process-wide
|
|
21
|
-
* boolean (and deliberately not by `DatabaseSync` handle identity: a cached
|
|
22
|
-
* handle reference is exactly the per-domain DB singleton the T12041 DB Open
|
|
23
|
-
* Guard exists to prevent).
|
|
24
|
-
*
|
|
25
|
-
* The dual-scope cache guarantees one `DatabaseSync` per `cleo.db` path, so a
|
|
26
|
-
* different path means a different database whose FTS index may not yet
|
|
27
|
-
* contain rows inserted before the content-sync triggers existed. The old
|
|
28
|
-
* process-wide boolean skipped the rebuild for every database after the
|
|
29
|
-
* first: in a multi-project process — and in vitest `--retry` re-attempts,
|
|
30
|
-
* which mint a fresh temp DB per attempt while module state survives —
|
|
31
|
-
* `memory find` then returned zero hits for committed rows (T12101, macOS CI
|
|
32
|
-
* shard 1 flake on PRs #1188/#1191/#1202).
|
|
33
|
-
*
|
|
34
|
-
* Same-path file recreation (close + delete + recreate one `cleo.db` in a
|
|
35
|
-
* single process) is the one case path-keying cannot distinguish; tests that
|
|
36
|
-
* do this already call {@link resetFts5Cache} explicitly.
|
|
37
|
-
*
|
|
38
|
-
* Naming note: the identifier must NOT contain `Db`/`Database`/`Connection`/
|
|
39
|
-
* `Handle` — the T12041 gate regexes module-level `let … = null` declarations
|
|
40
|
-
* for exactly those tokens (scripts/lint-no-domain-db-singleton.mjs).
|
|
41
|
-
*
|
|
42
|
-
* @task T12101
|
|
43
|
-
*/
|
|
44
|
-
var _fts5RebuiltForPath = null;
|
|
45
|
-
/**
|
|
46
|
-
* Check if FTS5 is available in the current SQLite build.
|
|
47
|
-
*/
|
|
48
|
-
function checkFts5Available(nativeDb) {
|
|
49
|
-
if (_fts5Available !== null) return _fts5Available;
|
|
50
|
-
try {
|
|
51
|
-
nativeDb.prepare("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(test)").run();
|
|
52
|
-
nativeDb.prepare("DROP TABLE IF EXISTS _fts5_check").run();
|
|
53
|
-
_fts5Available = true;
|
|
54
|
-
} catch {
|
|
55
|
-
_fts5Available = false;
|
|
56
|
-
}
|
|
57
|
-
return _fts5Available;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Execute a DDL statement using the native database.
|
|
61
|
-
* Wraps nativeDb.prepare().run() for consistent usage.
|
|
62
|
-
*/
|
|
63
|
-
function execDDL(nativeDb, sql) {
|
|
64
|
-
nativeDb.prepare(sql).run();
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Create FTS5 virtual tables and content-sync triggers if they don't exist.
|
|
68
|
-
*
|
|
69
|
-
* Uses content= to sync from main tables, so inserts to main tables
|
|
70
|
-
* auto-populate FTS. UPDATE/DELETE require triggers.
|
|
71
|
-
*
|
|
72
|
-
* @task T5130
|
|
73
|
-
*/
|
|
74
|
-
function ensureFts5Tables(nativeDb) {
|
|
75
|
-
if (!checkFts5Available(nativeDb)) return false;
|
|
76
|
-
execDDL(nativeDb, `
|
|
77
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS brain_decisions_fts
|
|
78
|
-
USING fts5(id, decision, rationale, content=brain_decisions, content_rowid=rowid)
|
|
79
|
-
`);
|
|
80
|
-
execDDL(nativeDb, `
|
|
81
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS brain_patterns_fts
|
|
82
|
-
USING fts5(id, pattern, context, content=brain_patterns, content_rowid=rowid)
|
|
83
|
-
`);
|
|
84
|
-
execDDL(nativeDb, `
|
|
85
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS brain_learnings_fts
|
|
86
|
-
USING fts5(id, insight, source, content=brain_learnings, content_rowid=rowid)
|
|
87
|
-
`);
|
|
88
|
-
execDDL(nativeDb, `
|
|
89
|
-
CREATE TRIGGER IF NOT EXISTS brain_decisions_ai AFTER INSERT ON brain_decisions BEGIN
|
|
90
|
-
INSERT INTO brain_decisions_fts(rowid, id, decision, rationale)
|
|
91
|
-
VALUES (new.rowid, new.id, new.decision, new.rationale);
|
|
92
|
-
END
|
|
93
|
-
`);
|
|
94
|
-
execDDL(nativeDb, `
|
|
95
|
-
CREATE TRIGGER IF NOT EXISTS brain_decisions_ad AFTER DELETE ON brain_decisions BEGIN
|
|
96
|
-
INSERT INTO brain_decisions_fts(brain_decisions_fts, rowid, id, decision, rationale)
|
|
97
|
-
VALUES('delete', old.rowid, old.id, old.decision, old.rationale);
|
|
98
|
-
END
|
|
99
|
-
`);
|
|
100
|
-
execDDL(nativeDb, `
|
|
101
|
-
CREATE TRIGGER IF NOT EXISTS brain_decisions_au AFTER UPDATE ON brain_decisions BEGIN
|
|
102
|
-
INSERT INTO brain_decisions_fts(brain_decisions_fts, rowid, id, decision, rationale)
|
|
103
|
-
VALUES('delete', old.rowid, old.id, old.decision, old.rationale);
|
|
104
|
-
INSERT INTO brain_decisions_fts(rowid, id, decision, rationale)
|
|
105
|
-
VALUES (new.rowid, new.id, new.decision, new.rationale);
|
|
106
|
-
END
|
|
107
|
-
`);
|
|
108
|
-
execDDL(nativeDb, `
|
|
109
|
-
CREATE TRIGGER IF NOT EXISTS brain_patterns_ai AFTER INSERT ON brain_patterns BEGIN
|
|
110
|
-
INSERT INTO brain_patterns_fts(rowid, id, pattern, context)
|
|
111
|
-
VALUES (new.rowid, new.id, new.pattern, new.context);
|
|
112
|
-
END
|
|
113
|
-
`);
|
|
114
|
-
execDDL(nativeDb, `
|
|
115
|
-
CREATE TRIGGER IF NOT EXISTS brain_patterns_ad AFTER DELETE ON brain_patterns BEGIN
|
|
116
|
-
INSERT INTO brain_patterns_fts(brain_patterns_fts, rowid, id, pattern, context)
|
|
117
|
-
VALUES('delete', old.rowid, old.id, old.pattern, old.context);
|
|
118
|
-
END
|
|
119
|
-
`);
|
|
120
|
-
execDDL(nativeDb, `
|
|
121
|
-
CREATE TRIGGER IF NOT EXISTS brain_patterns_au AFTER UPDATE ON brain_patterns BEGIN
|
|
122
|
-
INSERT INTO brain_patterns_fts(brain_patterns_fts, rowid, id, pattern, context)
|
|
123
|
-
VALUES('delete', old.rowid, old.id, old.pattern, old.context);
|
|
124
|
-
INSERT INTO brain_patterns_fts(rowid, id, pattern, context)
|
|
125
|
-
VALUES (new.rowid, new.id, new.pattern, new.context);
|
|
126
|
-
END
|
|
127
|
-
`);
|
|
128
|
-
execDDL(nativeDb, `
|
|
129
|
-
CREATE TRIGGER IF NOT EXISTS brain_learnings_ai AFTER INSERT ON brain_learnings BEGIN
|
|
130
|
-
INSERT INTO brain_learnings_fts(rowid, id, insight, source)
|
|
131
|
-
VALUES (new.rowid, new.id, new.insight, new.source);
|
|
132
|
-
END
|
|
133
|
-
`);
|
|
134
|
-
execDDL(nativeDb, `
|
|
135
|
-
CREATE TRIGGER IF NOT EXISTS brain_learnings_ad AFTER DELETE ON brain_learnings BEGIN
|
|
136
|
-
INSERT INTO brain_learnings_fts(brain_learnings_fts, rowid, id, insight, source)
|
|
137
|
-
VALUES('delete', old.rowid, old.id, old.insight, old.source);
|
|
138
|
-
END
|
|
139
|
-
`);
|
|
140
|
-
execDDL(nativeDb, `
|
|
141
|
-
CREATE TRIGGER IF NOT EXISTS brain_learnings_au AFTER UPDATE ON brain_learnings BEGIN
|
|
142
|
-
INSERT INTO brain_learnings_fts(brain_learnings_fts, rowid, id, insight, source)
|
|
143
|
-
VALUES('delete', old.rowid, old.id, old.insight, old.source);
|
|
144
|
-
INSERT INTO brain_learnings_fts(rowid, id, insight, source)
|
|
145
|
-
VALUES (new.rowid, new.id, new.insight, new.source);
|
|
146
|
-
END
|
|
147
|
-
`);
|
|
148
|
-
execDDL(nativeDb, `
|
|
149
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS brain_observations_fts
|
|
150
|
-
USING fts5(id, title, narrative, content=brain_observations, content_rowid=rowid)
|
|
151
|
-
`);
|
|
152
|
-
execDDL(nativeDb, `
|
|
153
|
-
CREATE TRIGGER IF NOT EXISTS brain_observations_ai AFTER INSERT ON brain_observations BEGIN
|
|
154
|
-
INSERT INTO brain_observations_fts(rowid, id, title, narrative)
|
|
155
|
-
VALUES (new.rowid, new.id, new.title, new.narrative);
|
|
156
|
-
END
|
|
157
|
-
`);
|
|
158
|
-
execDDL(nativeDb, `
|
|
159
|
-
CREATE TRIGGER IF NOT EXISTS brain_observations_ad AFTER DELETE ON brain_observations BEGIN
|
|
160
|
-
INSERT INTO brain_observations_fts(brain_observations_fts, rowid, id, title, narrative)
|
|
161
|
-
VALUES('delete', old.rowid, old.id, old.title, old.narrative);
|
|
162
|
-
END
|
|
163
|
-
`);
|
|
164
|
-
execDDL(nativeDb, `
|
|
165
|
-
CREATE TRIGGER IF NOT EXISTS brain_observations_au AFTER UPDATE ON brain_observations BEGIN
|
|
166
|
-
INSERT INTO brain_observations_fts(brain_observations_fts, rowid, id, title, narrative)
|
|
167
|
-
VALUES('delete', old.rowid, old.id, old.title, old.narrative);
|
|
168
|
-
INSERT INTO brain_observations_fts(rowid, id, title, narrative)
|
|
169
|
-
VALUES (new.rowid, new.id, new.title, new.narrative);
|
|
170
|
-
END
|
|
171
|
-
`);
|
|
172
|
-
return true;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Rebuild FTS5 indexes from the content tables.
|
|
176
|
-
* Useful after bulk inserts that bypass triggers.
|
|
177
|
-
*
|
|
178
|
-
* @task T5130
|
|
179
|
-
*/
|
|
180
|
-
function rebuildFts5Index(nativeDb) {
|
|
181
|
-
if (!checkFts5Available(nativeDb)) return;
|
|
182
|
-
nativeDb.prepare("INSERT INTO brain_decisions_fts(brain_decisions_fts) VALUES('rebuild')").run();
|
|
183
|
-
nativeDb.prepare("INSERT INTO brain_patterns_fts(brain_patterns_fts) VALUES('rebuild')").run();
|
|
184
|
-
nativeDb.prepare("INSERT INTO brain_learnings_fts(brain_learnings_fts) VALUES('rebuild')").run();
|
|
185
|
-
try {
|
|
186
|
-
nativeDb.prepare("INSERT INTO brain_observations_fts(brain_observations_fts) VALUES('rebuild')").run();
|
|
187
|
-
} catch {}
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Unified search across all BRAIN memory tables.
|
|
191
|
-
*
|
|
192
|
-
* Uses FTS5 MATCH for full-text search with BM25 ranking when available,
|
|
193
|
-
* falls back to LIKE queries otherwise.
|
|
194
|
-
*
|
|
195
|
-
* @task T5130
|
|
196
|
-
*/
|
|
197
|
-
async function searchBrain(projectRoot, query, options) {
|
|
198
|
-
if (!query?.trim()) return {
|
|
199
|
-
decisions: [],
|
|
200
|
-
patterns: [],
|
|
201
|
-
learnings: [],
|
|
202
|
-
observations: []
|
|
203
|
-
};
|
|
204
|
-
const { getBrainDb, getBrainDbPath, getBrainNativeDb } = await import('./memory-sqlite2-B7dq8doO.js');
|
|
205
|
-
await getBrainDb(projectRoot);
|
|
206
|
-
const nativeDb = getBrainNativeDb(projectRoot);
|
|
207
|
-
if (!nativeDb) return {
|
|
208
|
-
decisions: [],
|
|
209
|
-
patterns: [],
|
|
210
|
-
learnings: [],
|
|
211
|
-
observations: []
|
|
212
|
-
};
|
|
213
|
-
const limit = options?.limit ?? 10;
|
|
214
|
-
const tables = options?.tables ?? [
|
|
215
|
-
"decisions",
|
|
216
|
-
"patterns",
|
|
217
|
-
"learnings",
|
|
218
|
-
"observations"
|
|
219
|
-
];
|
|
220
|
-
const peerId = options?.peerId;
|
|
221
|
-
const includeGlobal = options?.includeGlobal ?? true;
|
|
222
|
-
if (ensureFts5Tables(nativeDb)) {
|
|
223
|
-
if (_fts5RebuiltForPath !== getBrainDbPath(projectRoot)) {
|
|
224
|
-
_fts5RebuiltForPath = getBrainDbPath(projectRoot);
|
|
225
|
-
rebuildFts5Index(nativeDb);
|
|
226
|
-
}
|
|
227
|
-
return searchWithFts5(nativeDb, query, tables, limit, peerId, includeGlobal);
|
|
228
|
-
}
|
|
229
|
-
return searchWithLike(nativeDb, query, tables, limit, peerId, includeGlobal);
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Build a SQL peer isolation clause and the corresponding bind parameters.
|
|
233
|
-
*
|
|
234
|
-
* When `peerId` is undefined the clause is empty string (no filter applied).
|
|
235
|
-
* When `peerId` is provided and `includeGlobal` is true (default), the clause
|
|
236
|
-
* is `AND (t.peer_id = ? OR t.peer_id = 'global')`.
|
|
237
|
-
* When `includeGlobal` is false, the clause is `AND t.peer_id = ?`.
|
|
238
|
-
*
|
|
239
|
-
* The `tableAlias` must match the alias used for the main table in the query.
|
|
240
|
-
*
|
|
241
|
-
* @internal
|
|
242
|
-
*/
|
|
243
|
-
function buildPeerClause(tableAlias, peerId, includeGlobal) {
|
|
244
|
-
if (!peerId) return {
|
|
245
|
-
clause: "",
|
|
246
|
-
params: []
|
|
247
|
-
};
|
|
248
|
-
if (includeGlobal) return {
|
|
249
|
-
clause: ` AND (${tableAlias}.peer_id = ? OR ${tableAlias}.peer_id = 'global')`,
|
|
250
|
-
params: [peerId]
|
|
251
|
-
};
|
|
252
|
-
return {
|
|
253
|
-
clause: ` AND ${tableAlias}.peer_id = ?`,
|
|
254
|
-
params: [peerId]
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Search using FTS5 MATCH with BM25 ranking.
|
|
259
|
-
*/
|
|
260
|
-
function searchWithFts5(nativeDb, query, tables, limit, peerId, includeGlobal = true) {
|
|
261
|
-
const result = {
|
|
262
|
-
decisions: [],
|
|
263
|
-
patterns: [],
|
|
264
|
-
learnings: [],
|
|
265
|
-
observations: []
|
|
266
|
-
};
|
|
267
|
-
const fts5Queries = buildFts5Queries(query);
|
|
268
|
-
if (tables.includes("decisions")) {
|
|
269
|
-
const { clause, params } = buildPeerClause("d", peerId, includeGlobal);
|
|
270
|
-
try {
|
|
271
|
-
const stmt = nativeDb.prepare(`
|
|
272
|
-
SELECT d.*
|
|
273
|
-
FROM brain_decisions_fts fts
|
|
274
|
-
JOIN brain_decisions d ON d.rowid = fts.rowid
|
|
275
|
-
WHERE brain_decisions_fts MATCH ?
|
|
276
|
-
AND (d.quality_score IS NULL OR d.quality_score >= ?)
|
|
277
|
-
${clause}
|
|
278
|
-
ORDER BY bm25(brain_decisions_fts)
|
|
279
|
-
LIMIT ?
|
|
280
|
-
`);
|
|
281
|
-
result.decisions = matchConjunctiveFirst((matchExpr) => typedAll(stmt, matchExpr, QUALITY_SCORE_THRESHOLD, ...params, limit), fts5Queries);
|
|
282
|
-
} catch {
|
|
283
|
-
result.decisions = likeSearchDecisions(nativeDb, query, limit, peerId, includeGlobal);
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
if (tables.includes("patterns")) {
|
|
287
|
-
const { clause, params } = buildPeerClause("p", peerId, includeGlobal);
|
|
288
|
-
try {
|
|
289
|
-
const stmt = nativeDb.prepare(`
|
|
290
|
-
SELECT p.*
|
|
291
|
-
FROM brain_patterns_fts fts
|
|
292
|
-
JOIN brain_patterns p ON p.rowid = fts.rowid
|
|
293
|
-
WHERE brain_patterns_fts MATCH ?
|
|
294
|
-
AND (p.quality_score IS NULL OR p.quality_score >= ?)
|
|
295
|
-
${clause}
|
|
296
|
-
ORDER BY bm25(brain_patterns_fts)
|
|
297
|
-
LIMIT ?
|
|
298
|
-
`);
|
|
299
|
-
result.patterns = matchConjunctiveFirst((matchExpr) => typedAll(stmt, matchExpr, QUALITY_SCORE_THRESHOLD, ...params, limit), fts5Queries);
|
|
300
|
-
} catch {
|
|
301
|
-
result.patterns = likeSearchPatterns(nativeDb, query, limit, peerId, includeGlobal);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
if (tables.includes("learnings")) {
|
|
305
|
-
const { clause, params } = buildPeerClause("l", peerId, includeGlobal);
|
|
306
|
-
try {
|
|
307
|
-
const stmt = nativeDb.prepare(`
|
|
308
|
-
SELECT l.*
|
|
309
|
-
FROM brain_learnings_fts fts
|
|
310
|
-
JOIN brain_learnings l ON l.rowid = fts.rowid
|
|
311
|
-
WHERE brain_learnings_fts MATCH ?
|
|
312
|
-
AND (l.quality_score IS NULL OR l.quality_score >= ?)
|
|
313
|
-
${clause}
|
|
314
|
-
ORDER BY bm25(brain_learnings_fts)
|
|
315
|
-
LIMIT ?
|
|
316
|
-
`);
|
|
317
|
-
result.learnings = matchConjunctiveFirst((matchExpr) => typedAll(stmt, matchExpr, QUALITY_SCORE_THRESHOLD, ...params, limit), fts5Queries);
|
|
318
|
-
} catch {
|
|
319
|
-
result.learnings = likeSearchLearnings(nativeDb, query, limit, peerId, includeGlobal);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
if (tables.includes("observations")) {
|
|
323
|
-
const { clause, params } = buildPeerClause("o", peerId, includeGlobal);
|
|
324
|
-
try {
|
|
325
|
-
const stmt = nativeDb.prepare(`
|
|
326
|
-
SELECT o.*
|
|
327
|
-
FROM brain_observations_fts fts
|
|
328
|
-
JOIN brain_observations o ON o.rowid = fts.rowid
|
|
329
|
-
WHERE brain_observations_fts MATCH ?
|
|
330
|
-
AND (o.quality_score IS NULL OR o.quality_score >= ?)
|
|
331
|
-
${clause}
|
|
332
|
-
ORDER BY bm25(brain_observations_fts)
|
|
333
|
-
LIMIT ?
|
|
334
|
-
`);
|
|
335
|
-
result.observations = matchConjunctiveFirst((matchExpr) => typedAll(stmt, matchExpr, QUALITY_SCORE_THRESHOLD, ...params, limit), fts5Queries);
|
|
336
|
-
} catch {
|
|
337
|
-
result.observations = likeSearchObservations(nativeDb, query, limit, peerId, includeGlobal);
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
return result;
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Search using LIKE queries as fallback when FTS5 is unavailable.
|
|
344
|
-
*/
|
|
345
|
-
function searchWithLike(nativeDb, query, tables, limit, peerId, includeGlobal = true) {
|
|
346
|
-
const result = {
|
|
347
|
-
decisions: [],
|
|
348
|
-
patterns: [],
|
|
349
|
-
learnings: [],
|
|
350
|
-
observations: []
|
|
351
|
-
};
|
|
352
|
-
if (tables.includes("decisions")) result.decisions = likeSearchDecisions(nativeDb, query, limit, peerId, includeGlobal);
|
|
353
|
-
if (tables.includes("patterns")) result.patterns = likeSearchPatterns(nativeDb, query, limit, peerId, includeGlobal);
|
|
354
|
-
if (tables.includes("learnings")) result.learnings = likeSearchLearnings(nativeDb, query, limit, peerId, includeGlobal);
|
|
355
|
-
if (tables.includes("observations")) result.observations = likeSearchObservations(nativeDb, query, limit, peerId, includeGlobal);
|
|
356
|
-
return result;
|
|
357
|
-
}
|
|
358
|
-
function likeSearchDecisions(nativeDb, query, limit, peerId, includeGlobal = true) {
|
|
359
|
-
const likePattern = `%${query}%`;
|
|
360
|
-
const { clause, params } = buildPeerClause("brain_decisions", peerId, includeGlobal);
|
|
361
|
-
return typedAll(nativeDb.prepare(`
|
|
362
|
-
SELECT * FROM brain_decisions
|
|
363
|
-
WHERE (decision LIKE ? OR rationale LIKE ?)
|
|
364
|
-
AND (quality_score IS NULL OR quality_score >= ?)
|
|
365
|
-
${clause}
|
|
366
|
-
ORDER BY created_at DESC
|
|
367
|
-
LIMIT ?
|
|
368
|
-
`), likePattern, likePattern, QUALITY_SCORE_THRESHOLD, ...params, limit);
|
|
369
|
-
}
|
|
370
|
-
function likeSearchPatterns(nativeDb, query, limit, peerId, includeGlobal = true) {
|
|
371
|
-
const likePattern = `%${query}%`;
|
|
372
|
-
const { clause, params } = buildPeerClause("brain_patterns", peerId, includeGlobal);
|
|
373
|
-
return typedAll(nativeDb.prepare(`
|
|
374
|
-
SELECT * FROM brain_patterns
|
|
375
|
-
WHERE (pattern LIKE ? OR context LIKE ?)
|
|
376
|
-
AND (quality_score IS NULL OR quality_score >= ?)
|
|
377
|
-
${clause}
|
|
378
|
-
ORDER BY frequency DESC
|
|
379
|
-
LIMIT ?
|
|
380
|
-
`), likePattern, likePattern, QUALITY_SCORE_THRESHOLD, ...params, limit);
|
|
381
|
-
}
|
|
382
|
-
function likeSearchLearnings(nativeDb, query, limit, peerId, includeGlobal = true) {
|
|
383
|
-
const likePattern = `%${query}%`;
|
|
384
|
-
const { clause, params } = buildPeerClause("brain_learnings", peerId, includeGlobal);
|
|
385
|
-
return typedAll(nativeDb.prepare(`
|
|
386
|
-
SELECT * FROM brain_learnings
|
|
387
|
-
WHERE (insight LIKE ? OR source LIKE ?)
|
|
388
|
-
AND (quality_score IS NULL OR quality_score >= ?)
|
|
389
|
-
${clause}
|
|
390
|
-
ORDER BY confidence DESC
|
|
391
|
-
LIMIT ?
|
|
392
|
-
`), likePattern, likePattern, QUALITY_SCORE_THRESHOLD, ...params, limit);
|
|
393
|
-
}
|
|
394
|
-
function likeSearchObservations(nativeDb, query, limit, peerId, includeGlobal = true) {
|
|
395
|
-
const likePattern = `%${query}%`;
|
|
396
|
-
const { clause, params } = buildPeerClause("brain_observations", peerId, includeGlobal);
|
|
397
|
-
return typedAll(nativeDb.prepare(`
|
|
398
|
-
SELECT * FROM brain_observations
|
|
399
|
-
WHERE (title LIKE ? OR narrative LIKE ?)
|
|
400
|
-
AND (quality_score IS NULL OR quality_score >= ?)
|
|
401
|
-
${clause}
|
|
402
|
-
ORDER BY created_at DESC
|
|
403
|
-
LIMIT ?
|
|
404
|
-
`), likePattern, likePattern, QUALITY_SCORE_THRESHOLD, ...params, limit);
|
|
405
|
-
}
|
|
406
|
-
/**
|
|
407
|
-
* Build the AND and OR MATCH expressions for a natural-language query.
|
|
408
|
-
*
|
|
409
|
-
* ## Why both, and why prefixes (T12073)
|
|
410
|
-
*
|
|
411
|
-
* The previous builder emitted `"tok1" OR "tok2"` — quoted terms joined by OR.
|
|
412
|
-
* Measured against the live 6,985-observation corpus, that has two failure
|
|
413
|
-
* modes that together make recall useless for anything but an exact rare token:
|
|
414
|
-
*
|
|
415
|
-
* **Quoted terms are exact, so morphological variants are invisible.** A search
|
|
416
|
-
* for `orphan` matched 113 documents; `orphan*` matched 189. Seventy-six
|
|
417
|
-
* documents saying "orphaned" or "orphans" could not be found by searching for
|
|
418
|
-
* "orphan". SQLite FTS5 has no stemmer on the `unicode61` tokenizer, so a
|
|
419
|
-
* prefix wildcard is the available substitute — and it is a good one, because
|
|
420
|
-
* it costs nothing on a prefix-indexed b-tree.
|
|
421
|
-
*
|
|
422
|
-
* **Pure OR plus BM25 ranks by term rarity, not by term coverage.** A short
|
|
423
|
-
* document matching ONE query term outranks a long one matching ALL of them,
|
|
424
|
-
* because BM25 normalises for length. On this corpus that is catastrophic:
|
|
425
|
-
* 30% of observations are sub-60-character auto-capture stubs, so the
|
|
426
|
-
* shortest, emptiest records win. Searching `nexus_symbols_fts orphan` under
|
|
427
|
-
* the old builder returned *"Consolidated: change observations (5 entries)"*
|
|
428
|
-
* as the top hit — a record with no content at all — while the conjunctive
|
|
429
|
-
* form returns only documents about orphans in nexus.
|
|
430
|
-
*
|
|
431
|
-
* So: require all terms first, and fall back to ANY only when the conjunction
|
|
432
|
-
* finds nothing. That preserves the recall the OR form was introduced for
|
|
433
|
-
* (T553: non-word tokens like em dashes zeroing out an implicit-AND query)
|
|
434
|
-
* without letting it dominate the common case.
|
|
435
|
-
*
|
|
436
|
-
* @param query - the raw user query.
|
|
437
|
-
* @returns AND/OR MATCH expressions and the usable term count.
|
|
438
|
-
*
|
|
439
|
-
* @example
|
|
440
|
-
* ```ts
|
|
441
|
-
* const q = buildFts5Queries('nexus_symbols_fts orphan');
|
|
442
|
-
* // q.and === 'nexus_symbols_fts* AND orphan*'
|
|
443
|
-
* // q.or === 'nexus_symbols_fts* OR orphan*'
|
|
444
|
-
* ```
|
|
445
|
-
*
|
|
446
|
-
* @task T553
|
|
447
|
-
* @task T12073
|
|
448
|
-
*/
|
|
449
|
-
function buildFts5Queries(query) {
|
|
450
|
-
const rawTokens = query.trim().split(/\s+/).filter(Boolean);
|
|
451
|
-
const seen = /* @__PURE__ */ new Set();
|
|
452
|
-
const terms = [];
|
|
453
|
-
for (const t of rawTokens) {
|
|
454
|
-
const stripped = t.replace(/^\W+|\W+$/g, "");
|
|
455
|
-
if (stripped.length < 2) continue;
|
|
456
|
-
if (!/\w/.test(stripped)) continue;
|
|
457
|
-
const lower = stripped.toLowerCase();
|
|
458
|
-
if (seen.has(lower)) continue;
|
|
459
|
-
seen.add(lower);
|
|
460
|
-
terms.push(`"${stripped.replace(/"/g, "\"\"")}"*`);
|
|
461
|
-
}
|
|
462
|
-
if (terms.length === 0) return {
|
|
463
|
-
and: "\"\"",
|
|
464
|
-
or: "\"\"",
|
|
465
|
-
termCount: 0
|
|
466
|
-
};
|
|
467
|
-
return {
|
|
468
|
-
and: terms.join(" AND "),
|
|
469
|
-
or: terms.join(" OR "),
|
|
470
|
-
termCount: terms.length
|
|
471
|
-
};
|
|
472
|
-
}
|
|
473
|
-
/**
|
|
474
|
-
* Run an FTS5-backed query conjunctively, falling back to disjunctive.
|
|
475
|
-
*
|
|
476
|
-
* Single-term queries skip the fallback entirely (AND and OR are identical).
|
|
477
|
-
*
|
|
478
|
-
* @param run - executes one MATCH expression and returns its rows.
|
|
479
|
-
* @param queries - the pair from {@link buildFts5Queries}.
|
|
480
|
-
* @returns conjunctive rows when non-empty, else disjunctive rows.
|
|
481
|
-
*
|
|
482
|
-
* @task T12073
|
|
483
|
-
*/
|
|
484
|
-
function matchConjunctiveFirst(run, queries) {
|
|
485
|
-
const conjunctive = run(queries.and);
|
|
486
|
-
if (conjunctive.length > 0 || queries.termCount < 2) return conjunctive;
|
|
487
|
-
return run(queries.or);
|
|
488
|
-
}
|
|
489
|
-
/**
|
|
490
|
-
* Round-robin interleave several independently-ranked lists.
|
|
491
|
-
*
|
|
492
|
-
* Takes rank 1 from every list, then rank 2 from every list, and so on, so a
|
|
493
|
-
* downstream consumer that scores by array position does not systematically
|
|
494
|
-
* favour whichever list happened to be concatenated first.
|
|
495
|
-
*
|
|
496
|
-
* @param lists - per-source lists, each already ordered best-first.
|
|
497
|
-
* @returns a single list preserving each source's internal order.
|
|
498
|
-
*
|
|
499
|
-
* @example
|
|
500
|
-
* ```ts
|
|
501
|
-
* interleaveRanked([['a1', 'a2'], ['b1'], ['c1', 'c2', 'c3']]);
|
|
502
|
-
* // ['a1', 'b1', 'c1', 'a2', 'c2', 'c3']
|
|
503
|
-
* ```
|
|
504
|
-
*
|
|
505
|
-
* @task T12073
|
|
506
|
-
*/
|
|
507
|
-
function interleaveRanked(lists) {
|
|
508
|
-
const out = [];
|
|
509
|
-
const longest = lists.reduce((max, l) => Math.max(max, l.length), 0);
|
|
510
|
-
for (let i = 0; i < longest; i++) for (const list of lists) {
|
|
511
|
-
const item = list[i];
|
|
512
|
-
if (item !== void 0) out.push(item);
|
|
513
|
-
}
|
|
514
|
-
return out;
|
|
515
|
-
}
|
|
516
|
-
/**
|
|
517
|
-
* Fuse ranked lists from multiple retrieval sources using Reciprocal Rank Fusion.
|
|
518
|
-
*
|
|
519
|
-
* Implements the RRF algorithm from Cormack, Clarke & Buettcher (SIGIR 2009):
|
|
520
|
-
*
|
|
521
|
-
* score(d) = Σ 1 / (k + rank(d, list)) for each list containing d
|
|
522
|
-
*
|
|
523
|
-
* where k=60 is the research-proven smoothing constant.
|
|
524
|
-
*
|
|
525
|
-
* Properties:
|
|
526
|
-
* - Rank-based: actual scores from each source are ignored (only rank matters).
|
|
527
|
-
* - Additive: items appearing in multiple lists accumulate higher scores.
|
|
528
|
-
* - Robust: the +60 constant prevents rank-1 items from dominating.
|
|
529
|
-
*
|
|
530
|
-
* @param sources - Named arrays of ranked hits (order = rank, index 0 = best)
|
|
531
|
-
* @param k - RRF smoothing constant (default: RRF_K = 60)
|
|
532
|
-
* @returns Array of fused results sorted by rrfScore descending
|
|
533
|
-
*
|
|
534
|
-
* @example
|
|
535
|
-
* ```ts
|
|
536
|
-
* const fused = reciprocalRankFusion([
|
|
537
|
-
* { source: 'fts', hits: ftsHits },
|
|
538
|
-
* { source: 'vec', hits: vecHits },
|
|
539
|
-
* ]);
|
|
540
|
-
* ```
|
|
541
|
-
*/
|
|
542
|
-
function reciprocalRankFusion(sources, k = 60) {
|
|
543
|
-
const accum = /* @__PURE__ */ new Map();
|
|
544
|
-
for (const { source, hits } of sources) for (let rank = 0; rank < hits.length; rank++) {
|
|
545
|
-
const hit = hits[rank];
|
|
546
|
-
const contribution = 1 / (k + rank);
|
|
547
|
-
const existing = accum.get(hit.id);
|
|
548
|
-
if (existing) {
|
|
549
|
-
existing.rrfScore += contribution;
|
|
550
|
-
existing.sources.add(source);
|
|
551
|
-
if (source === "fts") existing.ftsRank = rank;
|
|
552
|
-
if (source === "vec") existing.vecRank = rank;
|
|
553
|
-
} else accum.set(hit.id, {
|
|
554
|
-
rrfScore: contribution,
|
|
555
|
-
type: hit.type,
|
|
556
|
-
title: hit.title,
|
|
557
|
-
text: hit.text,
|
|
558
|
-
sources: new Set([source]),
|
|
559
|
-
ftsRank: source === "fts" ? rank : void 0,
|
|
560
|
-
vecRank: source === "vec" ? rank : void 0
|
|
561
|
-
});
|
|
562
|
-
}
|
|
563
|
-
return [...accum.entries()].map(([id, data]) => ({
|
|
564
|
-
id,
|
|
565
|
-
rrfScore: data.rrfScore,
|
|
566
|
-
type: data.type,
|
|
567
|
-
title: data.title,
|
|
568
|
-
text: data.text,
|
|
569
|
-
sources: [...data.sources],
|
|
570
|
-
ftsRank: data.ftsRank,
|
|
571
|
-
vecRank: data.vecRank
|
|
572
|
-
})).sort((a, b) => b.rrfScore - a.rrfScore);
|
|
573
|
-
}
|
|
574
|
-
/**
|
|
575
|
-
* Hybrid search across FTS5, vector similarity, graph neighbors, and optionally code symbols.
|
|
576
|
-
* Uses Reciprocal Rank Fusion (RRF) for result combination.
|
|
577
|
-
*
|
|
578
|
-
* Algorithm:
|
|
579
|
-
* 1. Run FTS5 search, vector similarity search, and optionally code symbol search in parallel.
|
|
580
|
-
* 2. Optionally expand via graph neighbors (best-effort).
|
|
581
|
-
* 3. Fuse all ranked lists with RRF: score = Σ 1/(rank+rrfK).
|
|
582
|
-
* 4. Return top-N sorted by fused RRF score.
|
|
583
|
-
*
|
|
584
|
-
* Graceful degradation: vector, graph, and code sources are silently skipped when
|
|
585
|
-
* unavailable — RRF naturally handles partial source lists.
|
|
586
|
-
*
|
|
587
|
-
* @param query - Search query text
|
|
588
|
-
* @param projectRoot - Project root directory
|
|
589
|
-
* @param options - Limit, RRF tuning, and includeCode flag for code symbol search
|
|
590
|
-
* @returns Array of hybrid results ranked by RRF score descending
|
|
591
|
-
*
|
|
592
|
-
* @task T5130 (hybrid search), T1058 (code symbol integration)
|
|
593
|
-
*/
|
|
594
|
-
async function hybridSearch(query, projectRoot, options) {
|
|
595
|
-
if (!query?.trim()) return [];
|
|
596
|
-
const maxResults = options?.limit ?? 10;
|
|
597
|
-
const rrfK = options?.rrfK ?? 60;
|
|
598
|
-
const includeCode = options?.includeCode ?? false;
|
|
599
|
-
const searches = [searchBrain(projectRoot, query, { limit: maxResults * 3 }).catch(() => ({
|
|
600
|
-
decisions: [],
|
|
601
|
-
patterns: [],
|
|
602
|
-
learnings: [],
|
|
603
|
-
observations: []
|
|
604
|
-
})), searchSimilar(query, projectRoot, maxResults * 3).catch(() => [])];
|
|
605
|
-
let codeSearchPromise = null;
|
|
606
|
-
if (includeCode) {
|
|
607
|
-
codeSearchPromise = (async () => {
|
|
608
|
-
try {
|
|
609
|
-
const { smartSearch } = await import('./src4-DNleK_t_.js');
|
|
610
|
-
return smartSearch(query, {
|
|
611
|
-
maxResults: maxResults * 2,
|
|
612
|
-
rootDir: projectRoot
|
|
613
|
-
}).map((r) => ({
|
|
614
|
-
id: `code:${r.symbol.filePath}:${r.symbol.name}:${r.symbol.startLine}`,
|
|
615
|
-
title: r.symbol.name,
|
|
616
|
-
kind: r.symbol.kind,
|
|
617
|
-
score: r.score
|
|
618
|
-
}));
|
|
619
|
-
} catch {
|
|
620
|
-
return [];
|
|
621
|
-
}
|
|
622
|
-
})();
|
|
623
|
-
searches.push(codeSearchPromise);
|
|
624
|
-
}
|
|
625
|
-
const allResults = await Promise.all(searches);
|
|
626
|
-
const ftsResults = allResults[0];
|
|
627
|
-
const vecResults = allResults[1];
|
|
628
|
-
const codeResults = includeCode ? allResults[2] ?? [] : [];
|
|
629
|
-
const ftsHits = interleaveRanked([
|
|
630
|
-
ftsResults.decisions.map((d) => ({
|
|
631
|
-
id: d.id,
|
|
632
|
-
type: "decision",
|
|
633
|
-
title: d.decision,
|
|
634
|
-
text: `${d.decision} — ${d.rationale}`
|
|
635
|
-
})),
|
|
636
|
-
ftsResults.patterns.map((p) => ({
|
|
637
|
-
id: p.id,
|
|
638
|
-
type: "pattern",
|
|
639
|
-
title: p.pattern,
|
|
640
|
-
text: `${p.pattern} — ${p.context}`
|
|
641
|
-
})),
|
|
642
|
-
ftsResults.learnings.map((l) => ({
|
|
643
|
-
id: l.id,
|
|
644
|
-
type: "learning",
|
|
645
|
-
title: l.insight,
|
|
646
|
-
text: `${l.insight} (source: ${l.source})`
|
|
647
|
-
})),
|
|
648
|
-
ftsResults.observations.map((o) => ({
|
|
649
|
-
id: o.id,
|
|
650
|
-
type: "observation",
|
|
651
|
-
title: o.title,
|
|
652
|
-
text: o.narrative ?? o.title
|
|
653
|
-
}))
|
|
654
|
-
]);
|
|
655
|
-
const vecHits = vecResults.map((r) => ({
|
|
656
|
-
id: r.id,
|
|
657
|
-
type: r.type,
|
|
658
|
-
title: r.title,
|
|
659
|
-
text: r.text
|
|
660
|
-
}));
|
|
661
|
-
const codeHits = codeResults.map((r) => ({
|
|
662
|
-
id: r.id,
|
|
663
|
-
type: "code-symbol",
|
|
664
|
-
title: r.title,
|
|
665
|
-
text: `${r.title} (${r.kind})`
|
|
666
|
-
}));
|
|
667
|
-
const rrfSources = [];
|
|
668
|
-
if (ftsHits.length > 0) rrfSources.push({
|
|
669
|
-
source: "fts",
|
|
670
|
-
hits: ftsHits
|
|
671
|
-
});
|
|
672
|
-
if (vecHits.length > 0) rrfSources.push({
|
|
673
|
-
source: "vec",
|
|
674
|
-
hits: vecHits
|
|
675
|
-
});
|
|
676
|
-
if (codeHits.length > 0) rrfSources.push({
|
|
677
|
-
source: "code",
|
|
678
|
-
hits: codeHits
|
|
679
|
-
});
|
|
680
|
-
try {
|
|
681
|
-
const accessor = await getBrainAccessor(projectRoot);
|
|
682
|
-
const possibleNodeIds = [
|
|
683
|
-
`concept:${query.toLowerCase().replace(/\s+/g, "-")}`,
|
|
684
|
-
`task:${query}`,
|
|
685
|
-
`doc:${query}`
|
|
686
|
-
];
|
|
687
|
-
const graphHits = [];
|
|
688
|
-
for (const nodeId of possibleNodeIds) {
|
|
689
|
-
if (!await accessor.getPageNode(nodeId)) continue;
|
|
690
|
-
const neighbors = await accessor.getNeighbors(nodeId);
|
|
691
|
-
for (const neighbor of neighbors) graphHits.push({
|
|
692
|
-
id: neighbor.id,
|
|
693
|
-
type: neighbor.nodeType,
|
|
694
|
-
title: neighbor.label,
|
|
695
|
-
text: neighbor.label
|
|
696
|
-
});
|
|
697
|
-
}
|
|
698
|
-
if (graphHits.length > 0) rrfSources.push({
|
|
699
|
-
source: "graph",
|
|
700
|
-
hits: graphHits
|
|
701
|
-
});
|
|
702
|
-
} catch {}
|
|
703
|
-
return reciprocalRankFusion(rrfSources, rrfK).slice(0, maxResults).map((r) => ({
|
|
704
|
-
id: r.id,
|
|
705
|
-
score: r.rrfScore,
|
|
706
|
-
type: r.type,
|
|
707
|
-
title: r.title,
|
|
708
|
-
text: r.text,
|
|
709
|
-
sources: r.sources,
|
|
710
|
-
ftsRank: r.ftsRank,
|
|
711
|
-
vecRank: r.vecRank
|
|
712
|
-
}));
|
|
713
|
-
}
|
|
714
|
-
|
|
715
|
-
export { buildFts5Queries as b, ensureFts5Tables as e, hybridSearch as h, matchConjunctiveFirst as m, searchBrain as s };
|
|
716
|
-
//# sourceMappingURL=brain-search2-CwI2cXgg.js.map
|