@cleocode/cleo 2026.9.5 → 2026.9.7
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 +32 -3
- package/dist/cli/index.js.map +1 -1
- package/package.json +13 -13
- package/scripts/copy-studio-dist.mjs +97 -3
- package/studio-dist/client/_app/immutable/chunks/BGmpyfzD.js +1 -0
- package/studio-dist/client/_app/immutable/chunks/{CKXdW4mW.js → DVHIxkgs.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{DrfFUIvQ.js → TX-23QW3.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{C7UP-KLT.js → eK8hf4s7.js} +1 -1
- package/studio-dist/client/_app/immutable/entry/{app.BwkUGH1B.js → app.BoQ7cgT2.js} +2 -2
- package/studio-dist/client/_app/immutable/entry/start.Cg1v8DU4.js +1 -0
- package/studio-dist/client/_app/immutable/nodes/{0.DcUJW-xi.js → 0.CZzEEyVh.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.DyTt_cQs.js → 1.Bj3Opbua.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.LRqqoueS.js → 15.BfXgiwMC.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16.-hGPNXOI.js → 16.mEwy9cqh.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.ChMxgTIY.js → 17.DP2QtQGn.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.B9zeITVb.js → 18.Bu0054sX.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.BHg5roNq.js → 20.B1AIHdkP.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.B_s9aY5m.js → 24.BUoUu37z.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{25.DZXkDxw_.js → 25.ddZ1_EFk.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{26.BBRbdwIG.js → 26.6OcmQbLV.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.DMYcrZeG.js → 3.Dyir4xXj.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/{0-CM4iQVYP.js → 0-CvsKDxQ6.js} +3 -3
- package/studio-dist/server/chunks/{1-BQFD-dx6.js → 1-ck_x2Hf0.js} +3 -3
- package/studio-dist/server/chunks/{15-Cng10n82.js → 15-BvUNl3KL.js} +3 -3
- package/studio-dist/server/chunks/{16-u3KwU3N4.js → 16-De6EzPSa.js} +3 -3
- package/studio-dist/server/chunks/{17-BDtxQX9n.js → 17-CZNsiZhi.js} +3 -3
- package/studio-dist/server/chunks/{18-wwUoSO4F.js → 18-CbxxjZox.js} +3 -3
- package/studio-dist/server/chunks/{20-B-0CBvqY.js → 20-DVU22np7.js} +3 -3
- package/studio-dist/server/chunks/{24-BeVcofpU.js → 24-CVlymvLF.js} +3 -3
- package/studio-dist/server/chunks/{25-DIuzTPOu.js → 25-CAg6Xcmn.js} +3 -3
- package/studio-dist/server/chunks/{26-CY8x0KNI.js → 26-_nfVTvNi.js} +3 -3
- package/studio-dist/server/chunks/{3-p3RwD-FY.js → 3-B8KhfvHp.js} +3 -3
- package/studio-dist/server/chunks/{_layout.svelte-rswfOTDe.js → _layout.svelte-BEIGQcIv.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-DaYxqOUS.js → _page.svelte-2cgtvHwW.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-BT1YF8j2.js → _page.svelte-9OQphlnm.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-CiIYIPG9.js → _page.svelte-BIlhmugm.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-C9twD2l1.js → _page.svelte-BgwL2Gyu.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DKVwBmIp.js → _page.svelte-C_VSL8NW.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-CHH1vmfg.js → _page.svelte-DOWw416I.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-D8NhlkPD.js → _page.svelte-Wfx7ww_h.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DZEnHo1L.js → _page.svelte-l4Z_xjl9.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DmTXiXKT.js → _page.svelte-tYN7_LXI.js} +3 -3
- package/studio-dist/server/chunks/{client-ym-URLFs.js → client-CgX38JBu.js} +2 -2
- package/studio-dist/server/chunks/{error.svelte-Bt1EbBZe.js → error.svelte-CplNulnS.js} +3 -3
- package/studio-dist/server/chunks/{internal-D3i_4gCl.js → internal-D6eWgsHJ.js} +2 -2
- package/studio-dist/server/chunks/{stores-ByevKXL9.js → stores-5DmdjPCH.js} +2 -2
- package/studio-dist/server/index.js +1 -1
- package/studio-dist/server/manifest.js +12 -12
- package/studio-dist/client/_app/immutable/assets/ort-wasm-simd-threaded.asyncify.BrebZMa_.wasm +0 -0
- package/studio-dist/client/_app/immutable/chunks/9yrFrmKZ.js +0 -1
- package/studio-dist/client/_app/immutable/entry/start.BcsID0Sf.js +0 -1
- package/studio-dist/server/chunks/0-CM4iQVYP.js.map +0 -1
- package/studio-dist/server/chunks/1-BQFD-dx6.js.map +0 -1
- package/studio-dist/server/chunks/10-DvOD4ksa.js.map +0 -1
- package/studio-dist/server/chunks/11-DMnBZ02H.js.map +0 -1
- package/studio-dist/server/chunks/12-CCyRyRWX.js.map +0 -1
- package/studio-dist/server/chunks/13-Dx1c3a_X.js.map +0 -1
- package/studio-dist/server/chunks/14-Bo-dTCaZ.js.map +0 -1
- package/studio-dist/server/chunks/15-Cng10n82.js.map +0 -1
- package/studio-dist/server/chunks/16-u3KwU3N4.js.map +0 -1
- package/studio-dist/server/chunks/17-BDtxQX9n.js.map +0 -1
- package/studio-dist/server/chunks/18-wwUoSO4F.js.map +0 -1
- package/studio-dist/server/chunks/19-DqHyladS.js.map +0 -1
- package/studio-dist/server/chunks/2-COvmA-ZA.js.map +0 -1
- package/studio-dist/server/chunks/20-B-0CBvqY.js.map +0 -1
- package/studio-dist/server/chunks/21-DXK9ptAC.js.map +0 -1
- package/studio-dist/server/chunks/22-DD5CLWJC.js.map +0 -1
- package/studio-dist/server/chunks/23-D_tUnnoc.js.map +0 -1
- package/studio-dist/server/chunks/24-BeVcofpU.js.map +0 -1
- package/studio-dist/server/chunks/25-DIuzTPOu.js.map +0 -1
- package/studio-dist/server/chunks/26-CY8x0KNI.js.map +0 -1
- package/studio-dist/server/chunks/27-C9edghG4.js.map +0 -1
- package/studio-dist/server/chunks/28-VemTJGyc.js.map +0 -1
- package/studio-dist/server/chunks/29-CXP-m29t.js.map +0 -1
- package/studio-dist/server/chunks/3-p3RwD-FY.js.map +0 -1
- package/studio-dist/server/chunks/30-QiM1S4cJ.js.map +0 -1
- package/studio-dist/server/chunks/31-BwdY9NnB.js.map +0 -1
- package/studio-dist/server/chunks/4-CSaG4HjO.js.map +0 -1
- package/studio-dist/server/chunks/5-i5ry4y3C.js.map +0 -1
- package/studio-dist/server/chunks/6-DR1GWBMT.js.map +0 -1
- package/studio-dist/server/chunks/7-DSNwn3aQ.js.map +0 -1
- package/studio-dist/server/chunks/8-Bj0bx07K.js.map +0 -1
- package/studio-dist/server/chunks/9-B3Tz0mZq.js.map +0 -1
- package/studio-dist/server/chunks/AwsRestJsonProtocol-BZuoNBmL.js.map +0 -1
- package/studio-dist/server/chunks/HeroHeader-v4Q9vaGr.js.map +0 -1
- package/studio-dist/server/chunks/Sparkline-BJ-GuhRd.js.map +0 -1
- package/studio-dist/server/chunks/StatBlock-DHJMmOCx.js.map +0 -1
- package/studio-dist/server/chunks/Tabs-DzG6Bn9a.js.map +0 -1
- package/studio-dist/server/chunks/UnionSerde-BflIkhKj.js.map +0 -1
- package/studio-dist/server/chunks/_dispatch-ncuRztUQ.js.map +0 -1
- package/studio-dist/server/chunks/_lafs-C3_fBF_X.js.map +0 -1
- package/studio-dist/server/chunks/_layout.svelte-rswfOTDe.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-BT1YF8j2.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-BVVTrzTL.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-BXyoMME1.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-B_pq-Z98.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-Byz2djto.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-C3aIui4o.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-C9twD2l1.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-CCoTp89s.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-CHH1vmfg.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-CHzXuw2Q.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-CYDjW1R0.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-CiIYIPG9.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-Clbkk1gm.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-CophUar3.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-D8NhlkPD.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-DKVwBmIp.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-DUWbZjC7.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-DYNorA0S.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-DZEnHo1L.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-DaYxqOUS.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-DmTXiXKT.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-EkXO_YfN.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-M5D2QnMS.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-UYiF7YBK.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-al08ovKm.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-bGhsrIjS.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-ksTJUXce.js.map +0 -1
- package/studio-dist/server/chunks/_page.svelte-nzffIbBP.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-4NyKAneX.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-4p6cp9ke.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-7hGdxdEI.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-B2E7fxo9.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-B5g3eScF.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-B6b3b-yA.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-BOgGqaZp.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-BPcErnS0.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-BT0Uq2yq.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-BV1HiKZ0.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-BWp3g6Cr.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-BdN4AJ6o.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-Bfr4u3EP.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-Bw7A4zgb.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-C3Jo-ju8.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-C4BcDGqS.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-C5NF-UgC.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-CDMurH5m.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-CGiAXy5i.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-CJA1djzJ.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-COJHCgbq.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-CShsBkeE.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-CUl-Utkt.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-CboRJY0Q.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-CkoJ2HCW.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-CpmMp5D8.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-Cq60m8Pw.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-Cz0zgaUV.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-D0GAFJRb.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-DA6p3pmi.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-DRVz9D-J.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-DSAv66wD.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-DSzRdt1U.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-DThYFaZj.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-DV6pzF-M.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-D_3Pm0gr.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-DcHxdMsm.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-DgbY5EB3.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-Dlfadh2I.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-DnE0f-iC.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-Do9RIPRo.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-DwTRjS4y.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-JallJnps.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-NEFTbJpM.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-ZS1_yMwR.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-_RJXtmfi.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-d-2NvRwX.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-hL92cV7Z.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-k2fApwOp.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-lPlBUIJX.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-rUWMLkIw.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-sv4pA808.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-tKMjUFUP.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-uUx7uT2Y.js.map +0 -1
- package/studio-dist/server/chunks/_server.ts-ujoDR2_g.js.map +0 -1
- package/studio-dist/server/chunks/abort-events-CDRAJSqb.js.map +0 -1
- package/studio-dist/server/chunks/adapters-BkMgPNUM.js.map +0 -1
- package/studio-dist/server/chunks/adapters2-CQ3PzoaK.js.map +0 -1
- package/studio-dist/server/chunks/api-mode2-3W-I1-XO.js.map +0 -1
- package/studio-dist/server/chunks/api2-CmNQzb0b.js.map +0 -1
- package/studio-dist/server/chunks/attention-consolidate-CidG1jfH.js.map +0 -1
- package/studio-dist/server/chunks/audit-log-BXVi9iyE.js.map +0 -1
- package/studio-dist/server/chunks/audit3-DMO_fUGp.js.map +0 -1
- package/studio-dist/server/chunks/auto-extract-B84La1Vs.js.map +0 -1
- package/studio-dist/server/chunks/brain-CXR7ZT7S.js.map +0 -1
- package/studio-dist/server/chunks/brain-consolidator-JGm6mzFf.js.map +0 -1
- package/studio-dist/server/chunks/brain-doctor-Dc2WqVbs.js.map +0 -1
- package/studio-dist/server/chunks/brain-embedding-Djw9ekXu.js.map +0 -1
- package/studio-dist/server/chunks/brain-lifecycle-BOOa876K.js.map +0 -1
- package/studio-dist/server/chunks/brain-maintenance-U6VvsvmK.js.map +0 -1
- package/studio-dist/server/chunks/brain-maintenance2-CwVSmfDT.js.map +0 -1
- package/studio-dist/server/chunks/brain-retrieval2-exR8mdgh.js.map +0 -1
- package/studio-dist/server/chunks/brain-search-CpSh-SNi.js.map +0 -1
- package/studio-dist/server/chunks/brain-search2-CwI2cXgg.js.map +0 -1
- package/studio-dist/server/chunks/brain-similarity-DI4yzm9e.js.map +0 -1
- package/studio-dist/server/chunks/brain-stdp2-BxSBIlSr.js.map +0 -1
- package/studio-dist/server/chunks/brain-writer-handlers-Dwu0QCAA.js.map +0 -1
- package/studio-dist/server/chunks/brain-writer-thread-6n7wI7Gy.js.map +0 -1
- package/studio-dist/server/chunks/branch-lock-Cq7zzmFK.js.map +0 -1
- package/studio-dist/server/chunks/branch-lock2-CmDc4CZW.js.map +0 -1
- package/studio-dist/server/chunks/cancelled-child-waiver-audit-DkesrN83.js.map +0 -1
- package/studio-dist/server/chunks/catalog-model-resolver-Bas9qnoP.js.map +0 -1
- package/studio-dist/server/chunks/catalog-model-resolver2-Cexk2TN0.js.map +0 -1
- package/studio-dist/server/chunks/catalog-resolver-CLot3XJO.js.map +0 -1
- package/studio-dist/server/chunks/catalog-resolver2-JmKb91kY.js.map +0 -1
- package/studio-dist/server/chunks/chunk-DDP5xfzh.js.map +0 -1
- package/studio-dist/server/chunks/cleo-home-CCfe6kAQ.js.map +0 -1
- package/studio-dist/server/chunks/cli-action-DQcaqcfn.js.map +0 -1
- package/studio-dist/server/chunks/client-ym-URLFs.js.map +0 -1
- package/studio-dist/server/chunks/concrete-session2-bb_vxJ2N.js.map +0 -1
- package/studio-dist/server/chunks/config-DHj9CcFs.js.map +0 -1
- package/studio-dist/server/chunks/config2-F6PPIn7D.js.map +0 -1
- package/studio-dist/server/chunks/connections-BMGJVYcS.js.map +0 -1
- package/studio-dist/server/chunks/connections2-mi7mZqJM.js.map +0 -1
- package/studio-dist/server/chunks/credential-pool-vF6NdtT9.js.map +0 -1
- package/studio-dist/server/chunks/credentials-C7EJFf5O.js.map +0 -1
- package/studio-dist/server/chunks/credentials-store-CFygIuB2.js.map +0 -1
- package/studio-dist/server/chunks/cross-db-cleanup-1LWTUKPi.js.map +0 -1
- package/studio-dist/server/chunks/data-accessor-CWgVndbR.js.map +0 -1
- package/studio-dist/server/chunks/data-safety-central-DaFxK27G.js.map +0 -1
- package/studio-dist/server/chunks/decisions-CmVXV2-H.js.map +0 -1
- package/studio-dist/server/chunks/decisions2-XQsSYdxa.js.map +0 -1
- package/studio-dist/server/chunks/depends-waiver-audit-CUmlBYHx.js.map +0 -1
- package/studio-dist/server/chunks/dev-BNpEUZI3.js.map +0 -1
- package/studio-dist/server/chunks/dialectic-evaluator2-BOyyXhdI.js.map +0 -1
- package/studio-dist/server/chunks/dist-es2-DQy2Mjn_.js.map +0 -1
- package/studio-dist/server/chunks/dist-es3-CBygU4n5.js.map +0 -1
- package/studio-dist/server/chunks/dist-es4-CavbNu4B.js.map +0 -1
- package/studio-dist/server/chunks/dist-es5-Crpm8Wsl.js.map +0 -1
- package/studio-dist/server/chunks/dist-es6-CgePHzh4.js.map +0 -1
- package/studio-dist/server/chunks/dist-es7-k6c5GEd7.js.map +0 -1
- package/studio-dist/server/chunks/dist-es8-Bd9v0_pE.js.map +0 -1
- package/studio-dist/server/chunks/dist3-23bsJhRw.js.map +0 -1
- package/studio-dist/server/chunks/dist4-DmC1zSXi.js.map +0 -1
- package/studio-dist/server/chunks/dual-scope-db-DKnWu1KM.js.map +0 -1
- package/studio-dist/server/chunks/dual-scope-db2-Dht3luRw.js.map +0 -1
- package/studio-dist/server/chunks/duplicate-bypass-audit-BN5w1H2y.js.map +0 -1
- package/studio-dist/server/chunks/duplicate-detector-CaVFMKdE.js.map +0 -1
- package/studio-dist/server/chunks/edge-types-CgBvb0w1.js.map +0 -1
- package/studio-dist/server/chunks/embedding-local-xEnym8Ho.js.map +0 -1
- package/studio-dist/server/chunks/error.svelte-Bt1EbBZe.js.map +0 -1
- package/studio-dist/server/chunks/event-streams-Bi2p_fVo.js.map +0 -1
- package/studio-dist/server/chunks/execution-learning-BVCw7Plq.js.map +0 -1
- package/studio-dist/server/chunks/exodus-BBuuN6aA.js.map +0 -1
- package/studio-dist/server/chunks/explorer-loader-BN_mkt3_.js.map +0 -1
- package/studio-dist/server/chunks/externalDataInterceptor-C3C4cObe.js.map +0 -1
- package/studio-dist/server/chunks/extraction-gate-DDNBq7gu.js.map +0 -1
- package/studio-dist/server/chunks/extraction-gate2-D77EZBQ6.js.map +0 -1
- package/studio-dist/server/chunks/getSSOTokenFromFile-yZAJxDci.js.map +0 -1
- package/studio-dist/server/chunks/governor2-CtfV3wfX.js.map +0 -1
- package/studio-dist/server/chunks/graph-auto-populate-Dmsr9ZJM.js.map +0 -1
- package/studio-dist/server/chunks/graph-auto-populate2-Cz0qeebM.js.map +0 -1
- package/studio-dist/server/chunks/graph-memory-bridge-CY8ft_d7.js.map +0 -1
- package/studio-dist/server/chunks/graph-memory-bridge2-Cd0XZwqc.js.map +0 -1
- package/studio-dist/server/chunks/handler-helpers-AANBGA_p.js.map +0 -1
- package/studio-dist/server/chunks/hash-Cm6yMET4.js.map +0 -1
- package/studio-dist/server/chunks/health-monitor-FepUZN1m.js.map +0 -1
- package/studio-dist/server/chunks/hooks.server-DBsyphiX.js.map +0 -1
- package/studio-dist/server/chunks/http-CRTZe306.js.map +0 -1
- package/studio-dist/server/chunks/identity-DRpurt56.js.map +0 -1
- package/studio-dist/server/chunks/identity2-DeAB5RXE.js.map +0 -1
- package/studio-dist/server/chunks/index-61916rmV.js.map +0 -1
- package/studio-dist/server/chunks/index-DAgVDouG.js.map +0 -1
- package/studio-dist/server/chunks/index-Dtt_h58T.js.map +0 -1
- package/studio-dist/server/chunks/index-server-DocJvixA.js.map +0 -1
- package/studio-dist/server/chunks/indexes-DZ52grq6.js.map +0 -1
- package/studio-dist/server/chunks/internal-D3i_4gCl.js.map +0 -1
- package/studio-dist/server/chunks/json-Bfixam3g.js.map +0 -1
- package/studio-dist/server/chunks/lane-transition-lM2ngbbc.js.map +0 -1
- package/studio-dist/server/chunks/learnings-D6Y3YGMU.js.map +0 -1
- package/studio-dist/server/chunks/learnings2-MwBdR9vb.js.map +0 -1
- package/studio-dist/server/chunks/lifecycle-ops2-V2CR5-7X.js.map +0 -1
- package/studio-dist/server/chunks/list-BhObczvn.js.map +0 -1
- package/studio-dist/server/chunks/living-brain2-j0B_Ir8j.js.map +0 -1
- package/studio-dist/server/chunks/llm-backend-resolver-D4ANvUPL.js.map +0 -1
- package/studio-dist/server/chunks/llm-extraction-DVCu4heR.js.map +0 -1
- package/studio-dist/server/chunks/loadSharedConfigFiles-umvW7kuz.js.map +0 -1
- package/studio-dist/server/chunks/loadSso-iidd5iKx.js.map +0 -1
- package/studio-dist/server/chunks/local-model-fit-B0TxifnX.js.map +0 -1
- package/studio-dist/server/chunks/local-model-fit2-BMqo6GJm.js.map +0 -1
- package/studio-dist/server/chunks/lock-CA7d6lj7.js.map +0 -1
- package/studio-dist/server/chunks/logger-DQIoyZbq.js.map +0 -1
- package/studio-dist/server/chunks/memory-BUbicBbE.js.map +0 -1
- package/studio-dist/server/chunks/memory-accessor-i3P-RHSg.js.map +0 -1
- package/studio-dist/server/chunks/memory-accessor2-B981tHDR.js.map +0 -1
- package/studio-dist/server/chunks/memory-bridge-BOlEWg9w.js.map +0 -1
- package/studio-dist/server/chunks/memory-sqlite2-B7dq8doO.js.map +0 -1
- package/studio-dist/server/chunks/memory2-Cgc_4D5q.js.map +0 -1
- package/studio-dist/server/chunks/model-runner2-B71xjp4y.js.map +0 -1
- package/studio-dist/server/chunks/mvi-helpers-BNsJ8ZpQ.js.map +0 -1
- package/studio-dist/server/chunks/nexus-adapter-9EL_VlGI.js.map +0 -1
- package/studio-dist/server/chunks/nexus-plasticity-BTfU8cW_.js.map +0 -1
- package/studio-dist/server/chunks/nexus-risk-audit-p379-TU5.js.map +0 -1
- package/studio-dist/server/chunks/nexus-schema-zeygY8OD.js.map +0 -1
- package/studio-dist/server/chunks/nexus-schema2-DP0Qd7CA.js.map +0 -1
- package/studio-dist/server/chunks/nexus-sqlite-BVNIpwc7.js.map +0 -1
- package/studio-dist/server/chunks/nexus-sqlite2-BBfY2xnY.js.map +0 -1
- package/studio-dist/server/chunks/no-face-up-DcejJLy-.js.map +0 -1
- package/studio-dist/server/chunks/node-http-handler-CJI8kn7X.js.map +0 -1
- package/studio-dist/server/chunks/observe-Bo9veHGe.js.map +0 -1
- package/studio-dist/server/chunks/observe2-wzO0MaMY.js.map +0 -1
- package/studio-dist/server/chunks/observer-reflector-BwNOuq1d.js.map +0 -1
- package/studio-dist/server/chunks/observer-reflector2-ggtC1hmk.js.map +0 -1
- package/studio-dist/server/chunks/on-open-Wpcw7DV4.js.map +0 -1
- package/studio-dist/server/chunks/open-cleo-db--8sYNaYY.js.map +0 -1
- package/studio-dist/server/chunks/parseKnownFiles-Dg0pMFcT.js.map +0 -1
- package/studio-dist/server/chunks/parseUrl-qgGfl-Vh.js.map +0 -1
- package/studio-dist/server/chunks/paths-CV7S5-Zm.js.map +0 -1
- package/studio-dist/server/chunks/patterns-lh5kn13I.js.map +0 -1
- package/studio-dist/server/chunks/patterns2-CzIcT-ai.js.map +0 -1
- package/studio-dist/server/chunks/pipeline-stage-IB_pOft-.js.map +0 -1
- package/studio-dist/server/chunks/prediction-D1lSGJ4c.js.map +0 -1
- package/studio-dist/server/chunks/premature-close-audit-VG09uAco.js.map +0 -1
- package/studio-dist/server/chunks/project-context-BjiqfEBi.js.map +0 -1
- package/studio-dist/server/chunks/provider-registry2-Cu7rAF0R.js.map +0 -1
- package/studio-dist/server/chunks/quality-feedback-CuCGEI6S.js.map +0 -1
- package/studio-dist/server/chunks/quality-scoring-CCPuRQmJ.js.map +0 -1
- package/studio-dist/server/chunks/query-ops-DCrjbZb9.js.map +0 -1
- package/studio-dist/server/chunks/query-promise-BkPmGPJy.js.map +0 -1
- package/studio-dist/server/chunks/readFile-CxwXhymG.js.map +0 -1
- package/studio-dist/server/chunks/registry-CL2gN1zd.js.map +0 -1
- package/studio-dist/server/chunks/registry2-DoPYJnUW.js.map +0 -1
- package/studio-dist/server/chunks/registry3-BajEb-ll.js.map +0 -1
- package/studio-dist/server/chunks/registry4-DCqffZkT.js.map +0 -1
- package/studio-dist/server/chunks/retry-B3oEKYpp.js.map +0 -1
- package/studio-dist/server/chunks/role-executor-CC8BU54L.js.map +0 -1
- package/studio-dist/server/chunks/role-resolver-D9QaDT0e.js.map +0 -1
- package/studio-dist/server/chunks/role-resolver2-nkhzS1oy.js.map +0 -1
- package/studio-dist/server/chunks/rollup-CiefjN_Y.js.map +0 -1
- package/studio-dist/server/chunks/safety-data-accessor-CniDmGJO.js.map +0 -1
- package/studio-dist/server/chunks/service-connections-accessor-yBCdcgU-.js.map +0 -1
- package/studio-dist/server/chunks/session-factory-vbengc42.js.map +0 -1
- package/studio-dist/server/chunks/session-grade-BF4ZZtN_.js.map +0 -1
- package/studio-dist/server/chunks/session-journal-Bvey70Ur.js.map +0 -1
- package/studio-dist/server/chunks/session-narrative-BirZINSU.js.map +0 -1
- package/studio-dist/server/chunks/session-store--N_xHxUH.js.map +0 -1
- package/studio-dist/server/chunks/session-store2-DAM-eVTH.js.map +0 -1
- package/studio-dist/server/chunks/sessions-33DD4hkt.js.map +0 -1
- package/studio-dist/server/chunks/sessions2-BHswKRDP.js.map +0 -1
- package/studio-dist/server/chunks/sigil-B-RznFXz.js.map +0 -1
- package/studio-dist/server/chunks/sigil2-jRMG5DuR.js.map +0 -1
- package/studio-dist/server/chunks/signin-BAsW3mM8.js.map +0 -1
- package/studio-dist/server/chunks/sleep-consolidation-BnSwXrvq.js.map +0 -1
- package/studio-dist/server/chunks/spawn-cli-wI1lBJhm.js.map +0 -1
- package/studio-dist/server/chunks/specialists-B_ZbpQlK.js.map +0 -1
- package/studio-dist/server/chunks/sqlite-Bm5LzbPs.js.map +0 -1
- package/studio-dist/server/chunks/sqlite-backup-CFG1-b2e.js.map +0 -1
- package/studio-dist/server/chunks/sqlite-data-accessor-DD_RFX6r.js.map +0 -1
- package/studio-dist/server/chunks/sqlite-data-accessor2-CRmgNBnq.js.map +0 -1
- package/studio-dist/server/chunks/sqlite-native-BwlIqtbs.js.map +0 -1
- package/studio-dist/server/chunks/sqlite2-CUPut2fh.js.map +0 -1
- package/studio-dist/server/chunks/src-BUqGet2c.js.map +0 -1
- package/studio-dist/server/chunks/src2-DK8DKufK.js.map +0 -1
- package/studio-dist/server/chunks/src3-BJjf7XRG.js.map +0 -1
- package/studio-dist/server/chunks/src4-DNleK_t_.js.map +0 -1
- package/studio-dist/server/chunks/sso-oidc-eUvwseuL.js.map +0 -1
- package/studio-dist/server/chunks/storage-B9UA3BHR.js.map +0 -1
- package/studio-dist/server/chunks/stores-ByevKXL9.js.map +0 -1
- package/studio-dist/server/chunks/sts-g7LDMLEd.js.map +0 -1
- package/studio-dist/server/chunks/surprisal-CwTfWQi8.js.map +0 -1
- package/studio-dist/server/chunks/surprisal-tree-7dfHsuw1.js.map +0 -1
- package/studio-dist/server/chunks/system-resolver2-Bzhue_zQ.js.map +0 -1
- package/studio-dist/server/chunks/tasks-SHX7UPGY.js.map +0 -1
- package/studio-dist/server/chunks/tasks-schema2-CTMoQKQy.js.map +0 -1
- package/studio-dist/server/chunks/tasks2-Bf9VHrv-.js.map +0 -1
- package/studio-dist/server/chunks/temporal-supersession-DP4GPG_B.js.map +0 -1
- package/studio-dist/server/chunks/token-cAhAD9f9.js.map +0 -1
- package/studio-dist/server/chunks/token-util-D6drEz8_.js.map +0 -1
- package/studio-dist/server/chunks/token-util2-8UPSGvbb.js.map +0 -1
- package/studio-dist/server/chunks/transcript-scanner-kJWhWmlg.js.map +0 -1
- package/studio-dist/server/chunks/transformers.node-_xbxmK5p.js.map +0 -1
- package/studio-dist/server/chunks/typed-query-l1D_QElt.js.map +0 -1
- package/studio-dist/server/chunks/ui-DR8zOSpC.js.map +0 -1
- package/studio-dist/server/chunks/unique-constraint-BZrrwgwc.js.map +0 -1
- package/studio-dist/server/chunks/update-B2YVBZG0.js.map +0 -1
- package/studio-dist/server/chunks/user-profile-B61ZhVmC.js.map +0 -1
- package/studio-dist/server/chunks/utils-BPSZyajG.js.map +0 -1
- package/studio-dist/server/chunks/validation-rules-CE27rtoF.js.map +0 -1
- package/studio-dist/server/chunks/zod-DsAeKNLm.js.map +0 -1
- package/studio-dist/server/index.js.map +0 -1
- package/studio-dist/server/manifest.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"patterns-lh5kn13I.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"patterns2-CzIcT-ai.js","sources":["../../../.svelte-kit/adapter-node/chunks/patterns2.js"],"sourcesContent":["import { n as getBrainAccessor } from \"./memory-accessor2.js\";\nimport { r as upsertGraphNode } from \"./graph-auto-populate2.js\";\nimport { a as computePatternQuality } from \"./quality-scoring.js\";\nimport { n as supersedeMemory, t as detectSupersession } from \"./temporal-supersession.js\";\nimport { createHash, randomBytes } from \"node:crypto\";\n//#region ../core/dist/memory/patterns.js\n/**\n* Pattern Memory system for CLEO BRAIN.\n*\n* Extracts, stores, and queries workflow/blocker/success/failure/optimization\n* patterns from completed tasks and epics.\n*\n* Storage: SQLite brain_patterns table per ADR-009 Section 3.2.\n*\n* @task T4768, T5241\n* @epic T4763\n*/\n/**\n* Generate a pattern ID.\n*/\nfunction generatePatternId() {\n\treturn `P-${randomBytes(4).toString(\"hex\")}`;\n}\n/**\n* Store a new pattern.\n* If a similar pattern already exists (same type + matching text), increments frequency.\n* @task T4768, T5241\n*/\nasync function storePattern(projectRoot, params) {\n\tif (!params.pattern?.trim()) throw new Error(\"Pattern description is required\");\n\tif (!params.context?.trim()) throw new Error(\"Pattern context is required\");\n\tif (!params._skipGate) {\n\t\tconst { verifyCandidate } = await import(\"./extraction-gate.js\");\n\t\tconst sourceConf = params.source?.startsWith(\"auto\") ?? false ? \"speculative\" : \"agent\";\n\t\tconst gateResult = await verifyCandidate(projectRoot, {\n\t\t\ttext: params.pattern.trim(),\n\t\t\ttitle: params.context.trim().slice(0, 120),\n\t\t\tmemoryType: \"procedural\",\n\t\t\ttier: \"medium\",\n\t\t\tconfidence: .6,\n\t\t\tsource: \"transcript\",\n\t\t\tsourceConfidence: sourceConf\n\t\t});\n\t\tif (gateResult.action !== \"stored\") {\n\t\t\tconst existing = gateResult.id ? await (await getBrainAccessor(projectRoot)).getPattern(gateResult.id).catch(() => null) : null;\n\t\t\tif (existing) return {\n\t\t\t\t...existing,\n\t\t\t\texamples: JSON.parse(existing.examplesJson || \"[]\")\n\t\t\t};\n\t\t\tconst now = (/* @__PURE__ */ new Date()).toISOString().replace(\"T\", \" \").slice(0, 19);\n\t\t\treturn {\n\t\t\t\tid: gateResult.id ?? \"\",\n\t\t\t\ttype: params.type,\n\t\t\t\tpattern: params.pattern.trim(),\n\t\t\t\tcontext: params.context.trim(),\n\t\t\t\tfrequency: 1,\n\t\t\t\tsuccessRate: params.successRate ?? null,\n\t\t\t\timpact: params.impact ?? null,\n\t\t\t\tantiPattern: params.antiPattern ?? null,\n\t\t\t\tmitigation: params.mitigation ?? null,\n\t\t\t\texamplesJson: \"[]\",\n\t\t\t\texamples: [],\n\t\t\t\textractedAt: now,\n\t\t\t\tqualityScore: 0,\n\t\t\t\tmemoryTier: \"medium\",\n\t\t\t\tmemoryType: \"procedural\",\n\t\t\t\tsourceConfidence: sourceConf,\n\t\t\t\tverified: false,\n\t\t\t\tcontentHash: \"\",\n\t\t\t\ttierPromotedAt: null,\n\t\t\t\ttierPromotionReason: null,\n\t\t\t\tinvalidAt: null,\n\t\t\t\tpruneCandidateAt: null,\n\t\t\t\tcitationCount: 0,\n\t\t\t\tpruneCandidate: false\n\t\t\t};\n\t\t}\n\t}\n\tconst accessor = await getBrainAccessor(projectRoot);\n\tconst existingPatterns = await accessor.findPatterns({ type: params.type });\n\tconst normalizedInput = params.pattern.trim().toLowerCase();\n\tconst duplicate = existingPatterns.find((e) => e.pattern.trim().toLowerCase() === normalizedInput);\n\tconst now = (/* @__PURE__ */ new Date()).toISOString().replace(\"T\", \" \").slice(0, 19);\n\tif (duplicate) {\n\t\tconst existingExamples = JSON.parse(duplicate.examplesJson || \"[]\");\n\t\tconst newExamples = params.examples ?? [];\n\t\tconst mergedExamples = Array.from(new Set([...existingExamples, ...newExamples]));\n\t\tawait accessor.updatePattern(duplicate.id, {\n\t\t\tfrequency: duplicate.frequency + 1,\n\t\t\textractedAt: now,\n\t\t\texamplesJson: JSON.stringify(mergedExamples)\n\t\t});\n\t\tconst updated = await accessor.getPattern(duplicate.id);\n\t\tupsertGraphNode(projectRoot, `pattern:${duplicate.id}`, \"pattern\", duplicate.pattern.substring(0, 200), duplicate.qualityScore ?? .5, duplicate.pattern + duplicate.context, {\n\t\t\ttype: duplicate.type,\n\t\t\timpact: duplicate.impact ?? void 0,\n\t\t\tfrequency: duplicate.frequency + 1\n\t\t}).catch(() => {});\n\t\treturn {\n\t\t\t...updated,\n\t\t\texamples: mergedExamples\n\t\t};\n\t}\n\tconst memoryTier = \"medium\";\n\tconst memoryType = \"procedural\";\n\tconst sourceConfidence = params.source?.startsWith(\"auto\") ? \"speculative\" : \"agent\";\n\tconst verified = false;\n\tconst examplesJson = params.examples ? JSON.stringify(params.examples) : \"[]\";\n\tconst qualityScore = computePatternQuality({\n\t\ttype: params.type,\n\t\tpattern: params.pattern.trim(),\n\t\tcontext: params.context.trim(),\n\t\texamples_json: examplesJson,\n\t\tsourceConfidence,\n\t\tmemoryTier\n\t});\n\tconst contentHashValue = createHash(\"sha256\").update(params.pattern.trim().toLowerCase()).digest(\"hex\").slice(0, 16);\n\tconst entry = {\n\t\tid: generatePatternId(),\n\t\ttype: params.type,\n\t\tpattern: params.pattern.trim(),\n\t\tcontext: params.context.trim(),\n\t\tfrequency: 1,\n\t\tsuccessRate: params.successRate ?? null,\n\t\timpact: params.impact ?? null,\n\t\tantiPattern: params.antiPattern ?? null,\n\t\tmitigation: params.mitigation ?? null,\n\t\texamplesJson,\n\t\textractedAt: now,\n\t\tqualityScore,\n\t\tmemoryTier,\n\t\tmemoryType,\n\t\tsourceConfidence,\n\t\tverified,\n\t\tcontentHash: contentHashValue\n\t};\n\tconst saved = await accessor.addPattern(entry);\n\tupsertGraphNode(projectRoot, `pattern:${saved.id}`, \"pattern\", saved.pattern.substring(0, 200), qualityScore, saved.pattern + saved.context, {\n\t\ttype: saved.type,\n\t\timpact: saved.impact ?? void 0\n\t}).catch(() => {});\n\tif (sourceConfidence === \"owner\" || sourceConfidence === \"task-outcome\") detectSupersession(projectRoot, {\n\t\tid: saved.id,\n\t\ttext: saved.pattern + \" \" + saved.context,\n\t\tcreatedAt: saved.extractedAt ?? (/* @__PURE__ */ new Date()).toISOString().replace(\"T\", \" \").slice(0, 19)\n\t}).then((candidates) => {\n\t\tfor (const candidate of candidates) supersedeMemory(projectRoot, candidate.existingId, saved.id, \"auto:pattern-supersedes — high overlap detected at store time\").catch(() => {});\n\t}).catch(() => {});\n\treturn {\n\t\t...saved,\n\t\texamples: JSON.parse(saved.examplesJson || \"[]\")\n\t};\n}\n/**\n* Search patterns by criteria.\n* @task T4768, T5241\n*/\nasync function searchPatterns(projectRoot, params = {}) {\n\tlet entries = await (await getBrainAccessor(projectRoot)).findPatterns({\n\t\ttype: params.type,\n\t\timpact: params.impact,\n\t\tminFrequency: params.minFrequency,\n\t\tlimit: params.limit\n\t});\n\tif (params.query) {\n\t\tconst q = params.query.toLowerCase();\n\t\tentries = entries.filter((e) => e.pattern.toLowerCase().includes(q) || e.context.toLowerCase().includes(q) || e.antiPattern?.toLowerCase().includes(q) || e.mitigation?.toLowerCase().includes(q));\n\t}\n\treturn entries.map((e) => ({\n\t\t...e,\n\t\texamples: JSON.parse(e.examplesJson || \"[]\")\n\t}));\n}\n//#endregion\nexport { storePattern as n, searchPatterns as t };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-stage-IB_pOft-.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prediction-D1lSGJ4c.js","sources":["../../../.svelte-kit/adapter-node/chunks/prediction2.js"],"sourcesContent":["//#region ../core/dist/intelligence/prediction.js\n/**\n* Quality Prediction module for the CLEO Intelligence dimension.\n*\n* Provides risk scoring for tasks based on complexity, historical patterns,\n* and blocking analysis. Also predicts lifecycle gate validation outcomes\n* using brain_patterns and brain_learnings data.\n*\n* Uses the existing BrainDataAccessor and DataAccessor — no new tables.\n*\n* @task Wave3A\n* @epic T5149\n*/\n/** Risk factor weights — tuned to prioritize blocking risk and complexity. */\nvar RISK_WEIGHTS = {\n\tcomplexity: .25,\n\thistoricalFailure: .25,\n\tblockingRisk: .3,\n\tdependencyDepth: .2\n};\n/** Thresholds for risk level recommendations. */\nvar RISK_THRESHOLDS = {\n\tlow: .3,\n\tmedium: .6,\n\thigh: .8\n};\n/** Size-to-complexity mapping (0-1 scale). */\nvar SIZE_COMPLEXITY = {\n\tsmall: .2,\n\tmedium: .5,\n\tlarge: .8\n};\n/**\n* Calculate the risk score for a task based on multiple contributing factors.\n*\n* Factors considered:\n* - Task complexity (size, dependency count, hierarchy depth)\n* - Historical patterns (similar tasks' failure rates from brain_patterns)\n* - Blocking risk (does this task block others?)\n* - Dependency depth (how deep in the dependency chain)\n*\n* @param taskId - The task to assess\n* @param taskAccessor - DataAccessor for tasks.db\n* @param brainAccessor - BrainDataAccessor for brain.db\n* @returns A complete risk assessment with score, confidence, factors, and recommendation\n*/\nasync function calculateTaskRisk(taskId, taskAccessor, brainAccessor) {\n\tconst task = await taskAccessor.loadSingleTask(taskId);\n\tif (!task) return {\n\t\ttaskId,\n\t\triskScore: 0,\n\t\tconfidence: 0,\n\t\tfactors: [],\n\t\trecommendation: `Task ${taskId} not found — cannot assess risk.`\n\t};\n\tconst factors = [];\n\tlet dataPoints = 0;\n\tconst complexityFactor = await computeComplexityFactor(task, taskAccessor);\n\tfactors.push(complexityFactor);\n\tdataPoints += 1;\n\tconst historicalFactor = await computeHistoricalFailureFactor(task, brainAccessor);\n\tfactors.push(historicalFactor);\n\tif (historicalFactor.value > 0) dataPoints += 1;\n\tconst blockingFactor = await computeBlockingFactor(task, taskAccessor);\n\tfactors.push(blockingFactor);\n\tdataPoints += 1;\n\tconst depthFactor = await computeDependencyDepthFactor(task, taskAccessor);\n\tfactors.push(depthFactor);\n\tdataPoints += 1;\n\tconst riskScore = computeWeightedScore(factors);\n\tconst confidence = Math.min(1, .25 + dataPoints / 4 * .75);\n\tconst recommendation = generateRecommendation(riskScore, factors);\n\treturn {\n\t\ttaskId,\n\t\triskScore: Math.round(riskScore * 1e3) / 1e3,\n\t\tconfidence: Math.round(confidence * 1e3) / 1e3,\n\t\tfactors,\n\t\trecommendation\n\t};\n}\nasync function computeComplexityFactor(task, accessor) {\n\tconst depCount = task.depends?.length ?? 0;\n\tlet childCount = 0;\n\ttry {\n\t\tchildCount = await accessor.countChildren(task.id);\n\t} catch {}\n\tconst sizeValue = SIZE_COMPLEXITY[task.size ?? \"medium\"] ?? .5;\n\tconst depNormalized = Math.min(depCount / 10, 1);\n\tconst childNormalized = Math.min(childCount / 20, 1);\n\tconst value = sizeValue * .4 + depNormalized * .3 + childNormalized * .3;\n\tconst parts = [];\n\tif (task.size) parts.push(`size=${task.size}`);\n\tif (depCount > 0) parts.push(`${depCount} dependencies`);\n\tif (childCount > 0) parts.push(`${childCount} children`);\n\treturn {\n\t\tname: \"complexity\",\n\t\tweight: RISK_WEIGHTS.complexity,\n\t\tvalue: Math.round(value * 1e3) / 1e3,\n\t\tdescription: parts.length > 0 ? `Task complexity based on ${parts.join(\", \")}` : \"Default complexity (no size/deps/children data)\"\n\t};\n}\nasync function computeHistoricalFailureFactor(task, brainAccessor) {\n\tconst failurePatterns = await brainAccessor.findPatterns({\n\t\ttype: \"failure\",\n\t\tlimit: 50\n\t});\n\tconst blockerPatterns = await brainAccessor.findPatterns({\n\t\ttype: \"blocker\",\n\t\tlimit: 50\n\t});\n\tconst allNegativePatterns = [...failurePatterns, ...blockerPatterns];\n\tif (allNegativePatterns.length === 0) return {\n\t\tname: \"historical_failure\",\n\t\tweight: RISK_WEIGHTS.historicalFailure,\n\t\tvalue: 0,\n\t\tdescription: \"No historical failure patterns found in brain.db\"\n\t};\n\tlet matchCount = 0;\n\tlet totalFailureRate = 0;\n\tconst taskLabels = new Set((task.labels ?? []).map((l) => l.toLowerCase()));\n\tconst taskTitle = task.title.toLowerCase();\n\tconst taskDesc = (task.description ?? \"\").toLowerCase();\n\tfor (const p of allNegativePatterns) {\n\t\tconst patternText = p.pattern.toLowerCase();\n\t\tconst contextText = p.context.toLowerCase();\n\t\tconst hasLabelMatch = taskLabels.size > 0 && [...taskLabels].some((l) => patternText.includes(l) || contextText.includes(l));\n\t\tconst hasTitleMatch = patternText.includes(taskTitle) || taskTitle.includes(patternText.slice(0, 20));\n\t\tconst hasDescMatch = taskDesc.length > 10 && (patternText.includes(taskDesc.slice(0, 30)) || taskDesc.includes(patternText.slice(0, 30)));\n\t\tif (hasLabelMatch || hasTitleMatch || hasDescMatch) {\n\t\t\tmatchCount++;\n\t\t\tconst failureRate = p.successRate !== null ? 1 - p.successRate : .5;\n\t\t\ttotalFailureRate += failureRate;\n\t\t}\n\t}\n\tif (matchCount === 0) return {\n\t\tname: \"historical_failure\",\n\t\tweight: RISK_WEIGHTS.historicalFailure,\n\t\tvalue: 0,\n\t\tdescription: \"No matching historical failure patterns for this task\"\n\t};\n\tconst avgFailureRate = totalFailureRate / matchCount;\n\treturn {\n\t\tname: \"historical_failure\",\n\t\tweight: RISK_WEIGHTS.historicalFailure,\n\t\tvalue: Math.round(avgFailureRate * 1e3) / 1e3,\n\t\tdescription: `${matchCount} matching failure/blocker pattern(s) with avg failure rate ${Math.round(avgFailureRate * 100)}%`\n\t};\n}\nasync function computeBlockingFactor(task, accessor) {\n\tlet blockedCount = 0;\n\ttry {\n\t\tconst { tasks: allTasks } = await accessor.queryTasks({ status: [\n\t\t\t\"pending\",\n\t\t\t\"active\",\n\t\t\t\"blocked\"\n\t\t] });\n\t\tfor (const t of allTasks) if (t.depends?.includes(task.id)) blockedCount++;\n\t} catch {}\n\tconst value = Math.min(blockedCount / 5, 1);\n\treturn {\n\t\tname: \"blocking_risk\",\n\t\tweight: RISK_WEIGHTS.blockingRisk,\n\t\tvalue: Math.round(value * 1e3) / 1e3,\n\t\tdescription: blockedCount > 0 ? `This task blocks ${blockedCount} other task(s)` : \"This task does not block any other tasks\"\n\t};\n}\nasync function computeDependencyDepthFactor(task, accessor) {\n\tlet depth = 0;\n\tconst visited = /* @__PURE__ */ new Set();\n\tlet current = task;\n\twhile (current.depends && current.depends.length > 0 && depth < 10) {\n\t\tconst firstDep = current.depends[0];\n\t\tif (visited.has(firstDep)) break;\n\t\tvisited.add(firstDep);\n\t\tconst depTask = await accessor.loadSingleTask(firstDep);\n\t\tif (!depTask) break;\n\t\tdepth++;\n\t\tcurrent = depTask;\n\t}\n\tlet hierarchyDepth = 0;\n\tlet parentId = task.parentId;\n\tconst visitedParents = /* @__PURE__ */ new Set();\n\twhile (parentId && hierarchyDepth < 10) {\n\t\tif (visitedParents.has(parentId)) break;\n\t\tvisitedParents.add(parentId);\n\t\tconst parent = await accessor.loadSingleTask(parentId);\n\t\tif (!parent) break;\n\t\thierarchyDepth++;\n\t\tparentId = parent.parentId;\n\t}\n\tconst totalDepth = depth + hierarchyDepth;\n\tconst value = Math.min(totalDepth / 8, 1);\n\treturn {\n\t\tname: \"dependency_depth\",\n\t\tweight: RISK_WEIGHTS.dependencyDepth,\n\t\tvalue: Math.round(value * 1e3) / 1e3,\n\t\tdescription: `Dependency chain depth: ${depth}, hierarchy depth: ${hierarchyDepth}`\n\t};\n}\nfunction computeWeightedScore(factors) {\n\tlet totalWeight = 0;\n\tlet weightedSum = 0;\n\tfor (const f of factors) {\n\t\tweightedSum += f.weight * f.value;\n\t\ttotalWeight += f.weight;\n\t}\n\treturn totalWeight > 0 ? weightedSum / totalWeight : 0;\n}\nfunction generateRecommendation(score, factors) {\n\tif (score <= RISK_THRESHOLDS.low) return \"Low risk. Proceed with normal workflow.\";\n\tif (score <= RISK_THRESHOLDS.medium) return `Moderate risk (${factors.filter((f) => f.value > .4).sort((a, b) => b.value * b.weight - a.value * a.weight).slice(0, 2).map((f) => f.name).join(\", \")}). Consider extra review or decomposition.`;\n\tif (score <= RISK_THRESHOLDS.high) return \"High risk. Recommend decomposition, additional testing, or pair review before proceeding.\";\n\treturn \"Critical risk. Strongly recommend breaking this task into smaller units and addressing blockers first.\";\n}\n//#endregion\nexport { calculateTaskRisk as t };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"premature-close-audit-VG09uAco.js","sources":["../../../.svelte-kit/adapter-node/chunks/premature-close-audit.js"],"sourcesContent":["import { u as getProjectRoot } from \"./paths.js\";\nimport { join } from \"node:path\";\nimport { appendFile, mkdir } from \"node:fs/promises\";\n//#region ../core/dist/tasks/premature-close-audit.js\n/**\n* Premature-close audit trail.\n*\n* Records override entries to `.cleo/audit/premature-close.jsonl` when a caller\n* bypasses the `E_EPIC_HAS_PENDING_CHILDREN` guard via `--override-reason`.\n*\n* Pattern mirrors `nexus-risk-audit.ts` (T1073) — one JSONL file per audit\n* concern, created on demand, appended atomically.\n*\n* @epic T1627\n* @task T1632\n*/\n/**\n* Append a premature-close override entry to the audit file.\n*\n* Creates `.cleo/audit/` if it does not exist and atomically appends a\n* single-line JSON record to `.cleo/audit/premature-close.jsonl`.\n*\n* @param entry - The audit entry to append.\n* @param projectRoot - Absolute path to the project root (defaults to `getProjectRoot()`).\n*/\nasync function appendPrematureCloseAudit(entry, projectRoot) {\n\tconst auditDir = join(projectRoot ?? getProjectRoot(), \".cleo\", \"audit\");\n\tawait mkdir(auditDir, { recursive: true });\n\tawait appendFile(join(auditDir, \"premature-close.jsonl\"), `${JSON.stringify(entry)}\\n`, { encoding: \"utf8\" });\n}\n//#endregion\nexport { appendPrematureCloseAudit };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE;AAC7D,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,cAAc,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC;AACzE,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9G;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-context-BjiqfEBi.js","sources":["../../../.svelte-kit/adapter-node/chunks/project-context.js"],"sourcesContent":["import \"./dist4.js\";\nimport { n as openCleoDbSnapshot } from \"./open-cleo-db.js\";\nimport { i as getCleoProjectDir, r as getCleoHome } from \"./cleo-home.js\";\nimport { existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\n//#region src/lib/server/project-context.ts\n/**\n* Project context resolution for CLEO Studio.\n*\n* The active project is stored as a cookie (`cleo_project_id`).\n* When a project is selected, the studio resolves the project's\n* brain.db and tasks.db paths from the global nexus.db registry,\n* injecting them into database connections for the page load.\n*\n* nexus.db is always global (single instance); brain.db and tasks.db\n* are per-project.\n*\n* @task T622\n*/\n/** Cookie name used to persist the active project selection. */\nvar PROJECT_COOKIE = \"cleo_project_id\";\n/** How long the project context cookie lives (7 days). */\nvar COOKIE_MAX_AGE = 3600 * 24 * 7;\n/**\n* Read the active project ID from the request cookie.\n* Returns null if no project is selected.\n*/\nfunction getActiveProjectId(cookies) {\n\treturn cookies.get(\"cleo_project_id\") ?? null;\n}\n/**\n* Set the active project context cookie.\n*/\nfunction setActiveProjectId(cookies, projectId) {\n\tcookies.set(PROJECT_COOKIE, projectId, {\n\t\tpath: \"/\",\n\t\tmaxAge: COOKIE_MAX_AGE,\n\t\thttpOnly: false,\n\t\tsameSite: \"lax\"\n\t});\n}\n/**\n* Clear the active project context cookie.\n*/\nfunction clearActiveProjectId(cookies) {\n\tcookies.delete(PROJECT_COOKIE, { path: \"/\" });\n}\n/**\n* Resolve the project context from the nexus.db registry for a given project ID.\n*\n* Returns null if the project is not registered or the DB rows are missing.\n* Falls back to deriving paths from the project_path column if brain_db_path\n* or tasks_db_path are not set in the registry.\n*/\nfunction resolveProjectContext(projectId) {\n\ttry {\n\t\tconst globalDbPath = join(getCleoHome(), \"cleo.db\");\n\t\tif (!existsSync(globalDbPath)) return null;\n\t\tconst snap = openCleoDbSnapshot(globalDbPath);\n\t\ttry {\n\t\t\tconst row = snap.db.prepare(\"SELECT project_id, name, project_path, brain_db_path, tasks_db_path FROM nexus_project_registry WHERE project_id = ?\").get(projectId);\n\t\t\tif (!row) return null;\n\t\t\tconst brainDbPath = row.brain_db_path ?? join(row.project_path, \".cleo\", \"brain.db\");\n\t\t\tconst tasksDbPath = row.tasks_db_path ?? join(row.project_path, \".cleo\", \"tasks.db\");\n\t\t\treturn {\n\t\t\t\tprojectId: row.project_id,\n\t\t\t\tname: row.name,\n\t\t\t\tprojectPath: row.project_path,\n\t\t\t\tbrainDbPath,\n\t\t\t\ttasksDbPath,\n\t\t\t\tbrainDbExists: existsSync(brainDbPath),\n\t\t\t\ttasksDbExists: existsSync(tasksDbPath)\n\t\t\t};\n\t\t} finally {\n\t\t\tsnap.close();\n\t\t}\n\t} catch {\n\t\treturn null;\n\t}\n}\n/**\n* Resolve the default project context (current project from CLEO_ROOT / cwd).\n* Used as fallback when no project cookie is set.\n*/\nfunction resolveDefaultProjectContext() {\n\tconst projectDir = getCleoProjectDir();\n\tconst projectPath = projectDir.replace(/\\/.cleo$/, \"\");\n\tconst brainDbPath = join(projectDir, \"brain.db\");\n\tconst tasksDbPath = join(projectDir, \"tasks.db\");\n\treturn {\n\t\tprojectId: \"\",\n\t\tname: projectPath.split(\"/\").pop() ?? \"default\",\n\t\tprojectPath,\n\t\tbrainDbPath,\n\t\ttasksDbPath,\n\t\tbrainDbExists: existsSync(brainDbPath),\n\t\ttasksDbExists: existsSync(tasksDbPath)\n\t};\n}\n/**\n* List all registered projects from nexus.db.\n* Returns an empty array if nexus.db is unavailable.\n*/\nfunction listRegisteredProjects() {\n\ttry {\n\t\tconst globalDbPath = join(getCleoHome(), \"cleo.db\");\n\t\tif (!existsSync(globalDbPath)) return [];\n\t\tconst snap = openCleoDbSnapshot(globalDbPath);\n\t\ttry {\n\t\t\tconst rows = snap.db.prepare(`SELECT\n project_id,\n name,\n project_path,\n brain_db_path,\n tasks_db_path,\n last_indexed,\n task_count,\n stats_json,\n last_seen,\n health_status\n FROM nexus_project_registry\n ORDER BY last_seen DESC`).all();\n\t\t\t/**\n\t\t\t* Strict server-side exclusion: any project whose path contains a `.temp/`\n\t\t\t* segment is filtered out before reaching the client. This rule is\n\t\t\t* non-negotiable (cannot be revealed via UI toggle) — `.temp/` is reserved\n\t\t\t* for ephemeral fixture/scratch state that must never appear in the\n\t\t\t* project switcher.\n\t\t\t*/\n\t\t\tconst TEMP_PATH_PATTERN = /(^|\\/)\\.temp(\\/|$)/;\n\t\t\treturn rows.filter((row) => !TEMP_PATH_PATTERN.test(row.project_path)).map((row) => {\n\t\t\t\tlet nodeCount = 0;\n\t\t\t\tlet relationCount = 0;\n\t\t\t\tlet fileCount = 0;\n\t\t\t\ttry {\n\t\t\t\t\tconst stats = JSON.parse(row.stats_json ?? \"{}\");\n\t\t\t\t\tnodeCount = stats.nodeCount ?? 0;\n\t\t\t\t\trelationCount = stats.relationCount ?? 0;\n\t\t\t\t\tfileCount = stats.fileCount ?? 0;\n\t\t\t\t} catch {}\n\t\t\t\treturn {\n\t\t\t\t\tprojectId: row.project_id,\n\t\t\t\t\tname: row.name,\n\t\t\t\t\tprojectPath: row.project_path,\n\t\t\t\t\tbrainDbPath: row.brain_db_path ?? null,\n\t\t\t\t\ttasksDbPath: row.tasks_db_path ?? null,\n\t\t\t\t\tlastIndexed: row.last_indexed ?? null,\n\t\t\t\t\ttaskCount: row.task_count ?? 0,\n\t\t\t\t\tnodeCount,\n\t\t\t\t\trelationCount,\n\t\t\t\t\tfileCount,\n\t\t\t\t\tlastSeen: row.last_seen,\n\t\t\t\t\thealthStatus: row.health_status\n\t\t\t\t};\n\t\t\t});\n\t\t} finally {\n\t\t\tsnap.close();\n\t\t}\n\t} catch {\n\t\treturn [];\n\t}\n}\n//#endregion\nexport { resolveDefaultProjectContext as a, listRegisteredProjects as i, clearActiveProjectId as n, resolveProjectContext as o, getActiveProjectId as r, setActiveProjectId as s, PROJECT_COOKIE as t };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-registry2-Cu7rAF0R.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quality-feedback-CuCGEI6S.js","sources":["../../../.svelte-kit/adapter-node/chunks/quality-feedback2.js"],"sourcesContent":["import { t as typedAll } from \"./typed-query.js\";\n//#region ../core/dist/memory/quality-feedback.js\n/**\n* Memory Quality Feedback Loop — BRAIN self-improvement system.\n*\n* Closes the retrieval→usage→outcome loop so that memory quality scores\n* reflect real-world utility, not just insert-time heuristics.\n*\n* Three operations:\n*\n* 1. trackMemoryUsage — record whether a retrieved memory was actually used\n* by an agent after task completion.\n*\n* 2. correlateOutcomes — scan the retrieval log, join against task outcomes,\n* and apply quality adjustments:\n* - Memory retrieved before a successful task completion: +0.05\n* - Memory retrieved before a failed task: -0.05\n* - Memory never retrieved in 30 days: flagged for pruning\n*\n* 3. getMemoryQualityReport — dashboard metrics over the entire brain.db.\n*\n* Schema addition: brain_usage_log (entry_id, task_id, used, outcome, created_at).\n* The table is self-healing — created on first access.\n*\n* @task T555\n*/\n/**\n* Ensure brain_usage_log exists. Safe to call multiple times — uses\n* CREATE TABLE IF NOT EXISTS. Returns silently on error (best-effort).\n*/\nasync function ensureUsageLogTable(projectRoot) {\n\tconst { getBrainDb, getBrainNativeDb } = await import(\"./memory-sqlite2.js\");\n\tawait getBrainDb(projectRoot);\n\tconst nativeDb = getBrainNativeDb(projectRoot);\n\tif (!nativeDb) return;\n\ttry {\n\t\tnativeDb.prepare(`CREATE TABLE IF NOT EXISTS brain_usage_log (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n entry_id TEXT NOT NULL,\n task_id TEXT,\n used INTEGER NOT NULL DEFAULT 0,\n outcome TEXT NOT NULL DEFAULT 'unknown',\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n )`).run();\n\t\tnativeDb.prepare(`CREATE INDEX IF NOT EXISTS idx_brain_usage_log_entry_id\n ON brain_usage_log(entry_id)`).run();\n\t\tnativeDb.prepare(`CREATE INDEX IF NOT EXISTS idx_brain_usage_log_task_id\n ON brain_usage_log(task_id)`).run();\n\t} catch {}\n}\n/**\n* Ensure prune_candidate column exists on all typed brain tables.\n* Added lazily so existing schemas are not broken.\n*/\nasync function ensurePruneCandidateColumn(projectRoot) {\n\tconst { getBrainDb, getBrainNativeDb } = await import(\"./memory-sqlite2.js\");\n\tawait getBrainDb(projectRoot);\n\tconst nativeDb = getBrainNativeDb(projectRoot);\n\tif (!nativeDb) return;\n\tfor (const tbl of [\n\t\t\"brain_decisions\",\n\t\t\"brain_patterns\",\n\t\t\"brain_learnings\",\n\t\t\"brain_observations\"\n\t]) try {\n\t\tnativeDb.prepare(`ALTER TABLE ${tbl} ADD COLUMN prune_candidate INTEGER DEFAULT 0`).run();\n\t} catch {}\n}\n/**\n* Resolve the table name for a brain entry based on its ID prefix.\n*/\nfunction tableForId(id) {\n\tif (id.startsWith(\"D-\") || /^D\\d/.test(id)) return \"brain_decisions\";\n\tif (id.startsWith(\"P-\") || /^P\\d/.test(id)) return \"brain_patterns\";\n\tif (id.startsWith(\"L-\") || /^L\\d/.test(id)) return \"brain_learnings\";\n\tif (id.startsWith(\"O-\") || id.startsWith(\"CM-\") || /^O/.test(id)) return \"brain_observations\";\n\treturn null;\n}\n/**\n* Apply a quality delta (+0.05 or -0.05) to a brain entry, clamped to [0.0, 1.0].\n*/\nfunction applyQualityDelta(nativeDb, table, id, delta, now) {\n\tif (!nativeDb) return;\n\ttry {\n\t\tnativeDb.prepare(`UPDATE ${table}\n SET quality_score = MAX(0.0, MIN(1.0, COALESCE(quality_score, 0.5) + ?)),\n updated_at = ?\n WHERE id = ?`).run(delta, now, id);\n\t} catch {}\n}\n/**\n* Analyse the retrieval log and usage log against task outcomes, then\n* adjust quality scores to reflect real-world utility.\n*\n* Algorithm:\n* 1. Read brain_usage_log where outcome != 'unknown' — these are rows\n* already tagged with a definitive outcome.\n* 2. For success rows: boost quality_score by +0.05 for each entry used.\n* 3. For failure rows: penalise quality_score by -0.05 for each entry used.\n* 4. Flag entries whose citation_count = 0 AND last retrieval (if any) is\n* older than 30 days as prune candidates.\n*\n* This is designed to be idempotent — running it twice on the same data\n* applies the delta twice (small, intentional drift toward ground truth).\n* Callers should schedule it once per session end or per task batch.\n*\n* @param projectRoot - Project root directory\n* @returns Summary of changes made\n*/\nasync function correlateOutcomes(projectRoot) {\n\tawait ensureUsageLogTable(projectRoot);\n\tawait ensurePruneCandidateColumn(projectRoot);\n\tconst { getBrainDb, getBrainNativeDb } = await import(\"./memory-sqlite2.js\");\n\tawait getBrainDb(projectRoot);\n\tconst nativeDb = getBrainNativeDb(projectRoot);\n\tconst ranAt = (/* @__PURE__ */ new Date()).toISOString();\n\tif (!nativeDb) return {\n\t\tboosted: 0,\n\t\tpenalized: 0,\n\t\tflaggedForPruning: 0,\n\t\tranAt\n\t};\n\tconst now = ranAt.replace(\"T\", \" \").slice(0, 19);\n\tlet boosted = 0;\n\tlet penalized = 0;\n\tlet usageRows = [];\n\ttry {\n\t\tusageRows = typedAll(nativeDb.prepare(`SELECT entry_id, outcome, SUM(used) AS used_count\n FROM brain_usage_log\n WHERE outcome IN ('success', 'failure')\n GROUP BY entry_id, outcome`));\n\t} catch {\n\t\tusageRows = [];\n\t}\n\tfor (const row of usageRows) {\n\t\tconst table = tableForId(row.entry_id);\n\t\tif (!table) continue;\n\t\tif (row.outcome === \"success\" && row.used_count > 0) {\n\t\t\tapplyQualityDelta(nativeDb, table, row.entry_id, .05, now);\n\t\t\tboosted++;\n\t\t} else if (row.outcome === \"failure\" && row.used_count > 0) {\n\t\t\tapplyQualityDelta(nativeDb, table, row.entry_id, -.05, now);\n\t\t\tpenalized++;\n\t\t}\n\t}\n\tconst cutoffDate = (/* @__PURE__ */ new Date(Date.now() - 720 * 60 * 60 * 1e3)).toISOString().replace(\"T\", \" \").slice(0, 19);\n\tlet flaggedForPruning = 0;\n\tfor (const { table, dateCol } of [\n\t\t{\n\t\t\ttable: \"brain_decisions\",\n\t\t\tdateCol: \"created_at\"\n\t\t},\n\t\t{\n\t\t\ttable: \"brain_patterns\",\n\t\t\tdateCol: \"extracted_at\"\n\t\t},\n\t\t{\n\t\t\ttable: \"brain_learnings\",\n\t\t\tdateCol: \"created_at\"\n\t\t},\n\t\t{\n\t\t\ttable: \"brain_observations\",\n\t\t\tdateCol: \"created_at\"\n\t\t}\n\t]) try {\n\t\tconst result = nativeDb.prepare(`UPDATE ${table}\n SET prune_candidate = 1\n WHERE COALESCE(citation_count, 0) = 0\n AND ${dateCol} < ?`).run(cutoffDate);\n\t\tflaggedForPruning += result.changes ?? 0;\n\t} catch {}\n\treturn {\n\t\tboosted,\n\t\tpenalized,\n\t\tflaggedForPruning,\n\t\tranAt\n\t};\n}\n/**\n* Return dashboard-level quality metrics for the BRAIN memory system.\n*\n* Aggregates across all four typed tables (decisions, patterns, learnings,\n* observations) and the retrieval log to produce a single report object.\n*\n* @param projectRoot - Project root directory\n* @returns Quality metrics report\n*/\nasync function getMemoryQualityReport(projectRoot) {\n\tawait ensureUsageLogTable(projectRoot);\n\tconst { getBrainDb, getBrainNativeDb } = await import(\"./memory-sqlite2.js\");\n\tawait getBrainDb(projectRoot);\n\tconst nativeDb = getBrainNativeDb(projectRoot);\n\tconst emptyReport = {\n\t\ttotalRetrievals: 0,\n\t\tuniqueEntriesRetrieved: 0,\n\t\tusageRate: 0,\n\t\ttopRetrieved: [],\n\t\tneverRetrieved: [],\n\t\tqualityDistribution: {\n\t\t\tlow: 0,\n\t\t\tmedium: 0,\n\t\t\thigh: 0\n\t\t},\n\t\ttierDistribution: {\n\t\t\tshort: 0,\n\t\t\tmedium: 0,\n\t\t\tlong: 0,\n\t\t\tunknown: 0\n\t\t},\n\t\tnoiseRatio: 0\n\t};\n\tif (!nativeDb) return emptyReport;\n\tlet totalRetrievals = 0;\n\tlet uniqueEntriesRetrieved = 0;\n\ttry {\n\t\ttotalRetrievals = typedAll(nativeDb.prepare(\"SELECT COUNT(*) AS cnt FROM brain_retrieval_log\"))[0]?.cnt ?? 0;\n\t\tuniqueEntriesRetrieved = typedAll(nativeDb.prepare(`SELECT COUNT(DISTINCT je.value) AS cnt\n FROM brain_retrieval_log AS l,\n json_each(\n CASE\n WHEN json_valid(l.entry_ids) THEN l.entry_ids\n ELSE '[\"' || replace(l.entry_ids, ',', '\",\"') || '\"]'\n END\n ) AS je`))[0]?.cnt ?? 0;\n\t} catch {}\n\tlet usageRate = 0;\n\ttry {\n\t\tconst totalUsage = typedAll(nativeDb.prepare(\"SELECT COUNT(*) AS cnt FROM brain_usage_log\"));\n\t\tconst usedCount = typedAll(nativeDb.prepare(\"SELECT COUNT(*) AS cnt FROM brain_usage_log WHERE used = 1\"));\n\t\tconst total = totalUsage[0]?.cnt ?? 0;\n\t\tconst used = usedCount[0]?.cnt ?? 0;\n\t\tusageRate = total > 0 ? used / total : 0;\n\t} catch {}\n\tconst topRetrieved = [];\n\ttry {\n\t\tconst rows = typedAll(nativeDb.prepare(`SELECT id,\n 'decision' AS type,\n decision AS title,\n COALESCE(citation_count, 0) AS citation_count\n FROM brain_decisions\n UNION ALL\n SELECT id,\n 'pattern' AS type,\n pattern AS title,\n COALESCE(citation_count, 0) AS citation_count\n FROM brain_patterns\n UNION ALL\n SELECT id,\n 'learning' AS type,\n insight AS title,\n COALESCE(citation_count, 0) AS citation_count\n FROM brain_learnings\n UNION ALL\n SELECT id,\n 'observation' AS type,\n title AS title,\n COALESCE(citation_count, 0) AS citation_count\n FROM brain_observations\n ORDER BY citation_count DESC\n LIMIT 10`));\n\t\tfor (const r of rows) topRetrieved.push({\n\t\t\tid: r.id,\n\t\t\ttype: r.type,\n\t\t\ttitle: String(r.title ?? \"\").slice(0, 120),\n\t\t\tcitationCount: r.citation_count\n\t\t});\n\t} catch {}\n\tconst neverRetrieved = [];\n\ttry {\n\t\tconst rows = typedAll(nativeDb.prepare(`SELECT id,\n 'decision' AS type,\n decision AS title,\n COALESCE(quality_score, 0.5) AS quality_score\n FROM brain_decisions\n WHERE COALESCE(citation_count, 0) = 0\n UNION ALL\n SELECT id,\n 'pattern' AS type,\n pattern AS title,\n COALESCE(quality_score, 0.5) AS quality_score\n FROM brain_patterns\n WHERE COALESCE(citation_count, 0) = 0\n UNION ALL\n SELECT id,\n 'learning' AS type,\n insight AS title,\n COALESCE(quality_score, 0.5) AS quality_score\n FROM brain_learnings\n WHERE COALESCE(citation_count, 0) = 0\n UNION ALL\n SELECT id,\n 'observation' AS type,\n title AS title,\n COALESCE(quality_score, 0.5) AS quality_score\n FROM brain_observations\n WHERE COALESCE(citation_count, 0) = 0\n ORDER BY quality_score ASC\n LIMIT 10`));\n\t\tfor (const r of rows) neverRetrieved.push({\n\t\t\tid: r.id,\n\t\t\ttype: r.type,\n\t\t\ttitle: String(r.title ?? \"\").slice(0, 120),\n\t\t\tqualityScore: r.quality_score\n\t\t});\n\t} catch {}\n\tlet qualityDistribution = {\n\t\tlow: 0,\n\t\tmedium: 0,\n\t\thigh: 0\n\t};\n\ttry {\n\t\tconst rows = typedAll(nativeDb.prepare(`SELECT\n SUM(CASE WHEN qs < 0.3 THEN 1 ELSE 0 END) AS low,\n SUM(CASE WHEN qs >= 0.3 AND qs <= 0.6 THEN 1 ELSE 0 END) AS medium,\n SUM(CASE WHEN qs > 0.6 THEN 1 ELSE 0 END) AS high\n FROM (\n SELECT COALESCE(quality_score, 0.5) AS qs FROM brain_decisions\n UNION ALL\n SELECT COALESCE(quality_score, 0.5) AS qs FROM brain_patterns\n UNION ALL\n SELECT COALESCE(quality_score, 0.5) AS qs FROM brain_learnings\n UNION ALL\n SELECT COALESCE(quality_score, 0.5) AS qs FROM brain_observations\n )`));\n\t\tif (rows[0]) qualityDistribution = {\n\t\t\tlow: rows[0].low ?? 0,\n\t\t\tmedium: rows[0].medium ?? 0,\n\t\t\thigh: rows[0].high ?? 0\n\t\t};\n\t} catch {}\n\tconst tierDistribution = {\n\t\tshort: 0,\n\t\tmedium: 0,\n\t\tlong: 0,\n\t\tunknown: 0\n\t};\n\ttry {\n\t\tconst rows = typedAll(nativeDb.prepare(`SELECT memory_tier AS tier, COUNT(*) AS cnt\n FROM (\n SELECT memory_tier FROM brain_decisions\n UNION ALL\n SELECT memory_tier FROM brain_patterns\n UNION ALL\n SELECT memory_tier FROM brain_learnings\n UNION ALL\n SELECT memory_tier FROM brain_observations\n )\n GROUP BY memory_tier`));\n\t\tfor (const r of rows) {\n\t\t\tconst tier = r.tier?.toLowerCase() ?? \"unknown\";\n\t\t\tif (tier === \"short\" || tier === \"medium\" || tier === \"long\") tierDistribution[tier] += r.cnt;\n\t\t\telse tierDistribution.unknown += r.cnt;\n\t\t}\n\t} catch {}\n\tconst totalEntries = qualityDistribution.low + qualityDistribution.medium + qualityDistribution.high;\n\tconst noiseRatio = totalEntries > 0 ? qualityDistribution.low / totalEntries : 0;\n\treturn {\n\t\ttotalRetrievals,\n\t\tuniqueEntriesRetrieved,\n\t\tusageRate,\n\t\ttopRetrieved,\n\t\tneverRetrieved,\n\t\tqualityDistribution,\n\t\ttierDistribution,\n\t\tnoiseRatio\n\t};\n}\n//#endregion\nexport { getMemoryQualityReport as n, correlateOutcomes as t };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quality-scoring-CCPuRQmJ.js","sources":["../../../.svelte-kit/adapter-node/chunks/quality-scoring.js"],"sourcesContent":["//#region ../core/dist/memory/quality-scoring.js\n/**\n* Quality scoring for CLEO BRAIN memory entries.\n*\n* Computes a 0.0–1.0 quality score at insert time for each typed brain table entry.\n* Entries with a score below the minimum threshold are excluded from search results.\n*\n* Score formula per CA1 spec Section 3: source reliability * content richness * recency signals.\n* Each helper clamps the result to [0.0, 1.0].\n*\n* T549 Wave 1-B: source confidence multipliers and memory tier bonuses are applied\n* on top of the existing base formulas. The base formulas are unchanged; the\n* multiplier and tier bonus are additive final transforms.\n*\n* Exported for use in backfill (T530) and future scoring hooks.\n*\n* @task T531 T549\n* @epic T523\n*/\n/** Minimum quality score for inclusion in search results. */\nvar QUALITY_SCORE_THRESHOLD = .3;\n/**\n* Quality multiplier per source confidence level (T549 §3.1.5 and §5.3).\n*\n* Applied as a final multiplicative transform on top of the existing base score.\n* Separate from content richness — captures trustworthiness of the source.\n*\n* | Level | Meaning | Multiplier |\n* |---------------|-----------------------------------------|------------|\n* | owner | Owner explicitly stated this fact | 1.0 |\n* | task-outcome | Verified by completed task with result | 0.90 |\n* | agent | Agent-inferred during work (default) | 0.70 |\n* | speculative | Agent hypothesis, not yet corroborated | 0.40 |\n*/\nvar SOURCE_MULTIPLIERS = {\n\towner: 1,\n\t\"task-outcome\": .9,\n\tagent: .7,\n\tspeculative: .4\n};\n/**\n* Tier bonus applied after the source multiplier (T549 Wave 1-B).\n*\n* Short-term entries get no bonus (they are new and unproven).\n* Medium-term entries get a small bonus (survived session consolidation).\n* Long-term entries get a larger bonus (architecturally proven).\n*/\nvar TIER_BONUS = {\n\tshort: 0,\n\tmedium: .05,\n\tlong: .1\n};\n/**\n* Apply the source confidence multiplier and optional memory tier bonus.\n*\n* This is the final transform in every compute function. It multiplies the\n* raw content-richness score by the source multiplier, then adds the tier\n* bonus, then clamps to [0.0, 1.0].\n*\n* @param rawScore - Score from the base content-richness formula\n* @param sourceConfidence - Source reliability level (defaults to 'agent')\n* @param memoryTier - Memory retention tier (defaults to 'short' = no bonus)\n*/\nfunction applySourceMultiplier(rawScore, sourceConfidence = \"agent\", memoryTier = \"short\") {\n\treturn clamp(rawScore * SOURCE_MULTIPLIERS[sourceConfidence] + TIER_BONUS[memoryTier]);\n}\n/**\n* Compute quality score for a brain_patterns row.\n*\n* Base: 0.4 (auto-generated patterns start lower).\n* Bonuses:\n* +0.10 for 'workflow' type (structured operational knowledge)\n* +0.05 for 'success' type (validated positive pattern)\n* +0.10 if pattern text exceeds 100 chars (richer description)\n* +0.10 if context exceeds 50 chars (contextual detail present)\n* +0.10 if examples_json contains more than 3 items (empirically validated)\n*\n* T549 Wave 1-B: raw score is then multiplied by the source confidence multiplier\n* and the memory tier bonus is added. Result clamped to [0.0, 1.0].\n*/\nfunction computePatternQuality(params) {\n\tlet score = .4;\n\tif (params.type === \"workflow\") score += .1;\n\tif (params.type === \"success\") score += .05;\n\tif (params.pattern.length > 100) score += .1;\n\tif (params.context && params.context.length > 50) score += .1;\n\tif (params.examples_json) try {\n\t\tconst examples = JSON.parse(params.examples_json);\n\t\tif (Array.isArray(examples) && examples.length > 3) score += .1;\n\t} catch {}\n\treturn applySourceMultiplier(score, params.sourceConfidence, params.memoryTier);\n}\n/**\n* Compute quality score for a brain_learnings row.\n*\n* Base: confidence value (already 0.0–1.0, caller-provided).\n* Bonuses:\n* +0.10 if actionable (directly applicable guidance)\n* +0.10 if insight text exceeds 100 chars (detailed insight)\n* +0.10 if application exceeds 20 chars (concrete application context)\n*\n* T549 Wave 1-B: raw score is then multiplied by the source confidence multiplier\n* and the memory tier bonus is added. Result clamped to [0.0, 1.0].\n*/\nfunction computeLearningQuality(params) {\n\tlet score = params.confidence ?? .5;\n\tif (params.actionable) score += .1;\n\tif (params.insight.length > 100) score += .1;\n\tif (params.application && params.application.length > 20) score += .1;\n\treturn applySourceMultiplier(score, params.sourceConfidence, params.memoryTier);\n}\n/** Numeric value map from confidence level. */\nvar CONFIDENCE_SCORE_MAP = {\n\thigh: .9,\n\tmedium: .7,\n\tlow: .5\n};\n/**\n* Compute quality score for a brain_decisions row.\n*\n* Base: mapped from confidence level (high=0.9, medium=0.7, low=0.5).\n* Bonuses:\n* +0.10 if rationale exceeds 50 chars (substantiated reasoning)\n* +0.05 if linked to a specific task (anchored in real work)\n*\n* T549 Wave 1-B: raw score is then multiplied by the source confidence multiplier\n* and the memory tier bonus is added. Result clamped to [0.0, 1.0].\n*/\nfunction computeDecisionQuality(params) {\n\tlet score = CONFIDENCE_SCORE_MAP[params.confidence] ?? .5;\n\tif (params.rationale && params.rationale.length > 50) score += .1;\n\tif (params.contextTaskId) score += .05;\n\treturn applySourceMultiplier(score, params.sourceConfidence, params.memoryTier);\n}\n/**\n* Compute quality score for a brain_observations row.\n*\n* Base: 0.6 (manual observations start higher than auto-extracted entries).\n* Bonuses:\n* +0.10 if text exceeds 200 chars (rich narrative)\n* +0.05 if title exceeds 10 chars (meaningful label)\n*\n* T549 Wave 1-B: raw score is then multiplied by the source confidence multiplier\n* and the memory tier bonus is added. Result clamped to [0.0, 1.0].\n*/\nfunction computeObservationQuality(params) {\n\tlet score = .6;\n\tif (params.text && params.text.length > 200) score += .1;\n\tif (params.title && params.title.length > 10) score += .05;\n\treturn applySourceMultiplier(score, params.sourceConfidence, params.memoryTier);\n}\n/**\n* Clamp a score to the valid [0.0, 1.0] range.\n*/\nfunction clamp(score) {\n\treturn Math.min(1, Math.max(0, score));\n}\n//#endregion\nexport { computePatternQuality as a, computeObservationQuality as i, computeDecisionQuality as n, computeLearningQuality as r, QUALITY_SCORE_THRESHOLD as t };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query-ops-DCrjbZb9.js","sources":["../../../.svelte-kit/adapter-node/chunks/query-ops.js"],"sourcesContent":["import { t as applyPerfPragmas } from \"./sqlite-pragmas.js\";\nimport { t as getLogger } from \"./logger.js\";\nimport \"./dist2.js\";\nimport \"./errors.js\";\nimport { o as getCleoHome } from \"./paths.js\";\nimport \"./data-accessor2.js\";\nimport \"./lifecycle.js\";\nimport { n as ensureConduitDb, r as getConduitDbPath } from \"./conduit-sqlite.js\";\nimport { c as ensureGlobalAgentRegistryDb, d as getGlobalAgentRegistryNativeDb } from \"./agent-registry-store2.js\";\nimport { n as getGlobalSalt } from \"./global-salt.js\";\nimport \"./dist5.js\";\nimport \"./engine-result.js\";\nimport \"./config.js\";\nimport \"./classify-readiness.js\";\nimport \"./audit.js\";\nimport \"./registry5.js\";\nimport \"./governor.js\";\nimport { createRequire } from \"node:module\";\nimport { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport \"node:child_process\";\nimport { createHmac, randomBytes } from \"node:crypto\";\nimport \"node:url\";\nimport \"node:fs/promises\";\n//#region ../core/dist/store/api-key-kdf.js\n/**\n* API key derivation functions for the T310 conduit/signaldock separation.\n*\n* New KDF (T310):\n* HMAC-SHA256(machineKey || globalSalt, utf8(agentId)) → 32 bytes\n*\n* Legacy KDF (pre-T310, migration use only):\n* HMAC-SHA256(machineKey, utf8(projectPath)) → 32 bytes\n*\n* The new scheme binds each key to machine + per-machine salt + agent identity,\n* replacing the project-path scheme that does not generalise to global-tier identity.\n*\n* T355 will compose these primitives with `getGlobalSalt()` (T348).\n* This module has NO runtime dependency on global-salt.ts.\n*\n* @task T349\n* @epic T310\n* @see ADR-037 §5 — KDF contract\n* @module store/api-key-kdf\n*/\n/**\n* Derives a 32-byte API key using the new T310 KDF:\n*\n* HMAC-SHA256(machineKey || globalSalt, utf8(agentId)) → 32 bytes\n*\n* Binds the key to machine + per-machine salt + agent identity. Replaces\n* the pre-T310 `HMAC-SHA256(machineKey, projectPath)` scheme, which does\n* not generalise to global-tier identity.\n*\n* @param input - The derivation input parameters.\n* @returns A 32-byte Buffer containing the derived API key.\n* @throws {Error} If machineKey is empty, globalSalt is not exactly 32 bytes,\n* or agentId is empty.\n*\n* @task T349\n* @epic T310\n*/\nfunction deriveApiKey(input) {\n\tif (input.machineKey.length === 0) throw new Error(\"deriveApiKey: machineKey cannot be empty\");\n\tif (input.globalSalt.length !== 32) throw new Error(`deriveApiKey: globalSalt must be exactly 32 bytes, got ${input.globalSalt.length}`);\n\tif (input.agentId.length === 0) throw new Error(\"deriveApiKey: agentId cannot be empty\");\n\tconst hmac = createHmac(\"sha256\", Buffer.concat([input.machineKey, input.globalSalt]));\n\thmac.update(input.agentId, \"utf8\");\n\treturn hmac.digest();\n}\n//#endregion\n//#region ../core/dist/store/agent-registry-accessor.js\n/**\n* Agent Registry Accessor — cross-DB CRUD for agent data.\n*\n* Post-T11622 cutover (folds T11578 AC2), agent identity lives in the GLOBAL\n* PREFIXED `agent_registry_agents` table (+ `agent_registry_capabilities` /\n* `agent_registry_skills` / `agent_registry_agent_capabilities` /\n* `agent_registry_agent_skills`); per-project visibility and overrides live in the\n* PROJECT `conduit_project_agent_refs` table (T11578 · AC4 — conduit namespace\n* cutover). The bare legacy `agents` shape is no longer read or written.\n*\n* Post-E6-L5 (T11525) / E6-L6 (T11526), both tables are hosted inside the\n* CONSOLIDATED dual-scope `cleo.db` files (global `$XDG_DATA_HOME/cleo/cleo.db`\n* and project `.cleo/cleo.db`) — the standalone `signaldock.db` / `conduit.db`\n* files are gone. The global `agent_registry_*` tables are owned by the\n* consolidated cleo-global migration (T11622 rename of `signaldock_*`);\n* `ensureGlobalAgentRegistryDb()` opens the shared consolidated handle. The\n* prefixed conduit `conduit_project_agent_refs` table is created by the\n* consolidated cleo-project migration (T11578 · AC4) and `ensureConduitDb()`\n* ensures the project `cleo.db` is open. The read path MUST therefore go through\n* those `ensure*` calls so it shares the same handle as the write path (T11562 —\n* agents read/write path divergence regression).\n*\n* The consolidated `agent_registry_agents` table carries TEXT ISO-8601 timestamps\n* (`created_at` / `updated_at` / `last_used_at`, each with a GLOB CHECK) — every\n* write path below stamps ISO strings, not the legacy epoch integers (T11622\n* write-path constraint reconciliation).\n*\n* This module provides three module-level functions that perform the in-memory\n* cross-DB join, plus the backward-compatible `AgentRegistryAccessor` class that\n* wraps them.\n*\n* Architecture:\n* global cleo.db — canonical identity `agent_registry_agents` (openGlobalDb → ensureGlobalAgentRegistryDb)\n* project cleo.db — `conduit_project_agent_refs` (openConduitDb)\n* Join performed in Node (SQLite cannot cross-file-handle JOIN).\n*\n* @see .cleo/rcasd/T310/specification/T310-specification.md §3.5\n* @see .cleo/adrs/ADR-037-conduit-signaldock-separation.md\n* @task T355\n* @task T11562\n* @task T11622\n* @epic T310\n* @epic T11249\n*/\nvar { DatabaseSync } = createRequire(import.meta.url)(\"node:sqlite\");\n/** Machine-key constants. */\nvar MACHINE_KEY_LENGTH = 32;\n/**\n* Read or auto-generate the machine key (32 bytes).\n* Machine key lives at `getCleoHome()/machine-key` (same XDG root as the global salt).\n*\n* @returns A 32-byte Buffer.\n* @task T355\n* @epic T310\n*/\nfunction readMachineKey() {\n\tconst keyPath = join(getCleoHome(), \"machine-key\");\n\tif (!existsSync(keyPath)) {\n\t\tconst cleoHome = getCleoHome();\n\t\tif (!existsSync(cleoHome)) mkdirSync(cleoHome, { recursive: true });\n\t\tconst key = randomBytes(MACHINE_KEY_LENGTH);\n\t\twriteFileSync(keyPath, key, { mode: 384 });\n\t\treturn key;\n\t}\n\tif (process.platform !== \"win32\") {\n\t\tconst mode = statSync(keyPath).mode & 511;\n\t\tif (mode !== 384) throw new Error(`Machine key at ${keyPath} has wrong permissions: expected 0o600, got 0o${mode.toString(8)}. Fix with: chmod 600 ${keyPath}`);\n\t}\n\tconst key = readFileSync(keyPath);\n\tif (key.length !== MACHINE_KEY_LENGTH) throw new Error(`Machine key at ${keyPath} has wrong length: expected ${MACHINE_KEY_LENGTH} bytes, got ${key.length}.`);\n\treturn key;\n}\n/**\n* Convert a project_agent_refs row to a `ProjectAgentRef` contract object.\n*\n* @param row - Raw SQLite row from conduit.db:project_agent_refs.\n* @returns Typed `ProjectAgentRef` object.\n* @task T355\n* @epic T310\n*/\nfunction rowToProjectRef(row) {\n\treturn {\n\t\tagentId: row.agent_id,\n\t\tattachedAt: row.attached_at,\n\t\trole: row.role,\n\t\tcapabilitiesOverride: row.capabilities_override,\n\t\tlastUsedAt: row.last_used_at,\n\t\tenabled: row.enabled\n\t};\n}\n/**\n* Convert a global cleo.db:agent_registry_agents row to an `AgentCredential`.\n* API key is stored as binary (derived via KDF) — returned as hex string.\n* Legacy encrypted values (pre-T310) are left as-is; the reauth flag handles\n* forced re-authentication at the CLI layer.\n*\n* @param row - Raw SQLite row from global cleo.db:agent_registry_agents.\n* @returns Typed `AgentCredential` (apiKey is hex-encoded derived bytes or empty).\n* @task T355\n* @epic T310\n*/\nfunction rowToCredential(row) {\n\treturn {\n\t\tagentId: row.agent_id,\n\t\tdisplayName: row.name,\n\t\tapiKey: row.api_key_encrypted ? Buffer.from(row.api_key_encrypted).toString(\"hex\") : \"\",\n\t\tapiBaseUrl: row.api_base_url,\n\t\tclassification: row.classification ?? void 0,\n\t\tprivacyTier: row.privacy_tier,\n\t\tcapabilities: JSON.parse(row.capabilities),\n\t\tskills: JSON.parse(row.skills),\n\t\ttransportType: row.transport_type ?? \"http\",\n\t\ttransportConfig: JSON.parse(row.transport_config),\n\t\tisActive: row.is_active === 1,\n\t\tlastUsedAt: row.last_used_at ?? void 0,\n\t\tcreatedAt: row.created_at,\n\t\tupdatedAt: row.updated_at\n\t};\n}\n/**\n* Merge a global agent row with an optional project_agent_refs row into an\n* `AgentWithProjectOverride` object.\n*\n* @param agentRow - Row from global cleo.db:agent_registry_agents.\n* @param refRow - Row from conduit.db:project_agent_refs, or null.\n* @returns Merged `AgentWithProjectOverride`.\n* @task T355\n* @epic T310\n*/\nfunction mergeToAgentWithOverride(agentRow, refRow) {\n\treturn {\n\t\t...rowToCredential(agentRow),\n\t\tprojectRef: refRow ? rowToProjectRef(refRow) : null\n\t};\n}\n/**\n* Acquire the SHARED, fully-migrated handle to the GLOBAL agent identity DB —\n* the consolidated dual-scope global `cleo.db` (post-E6-L5 / T11525).\n*\n* Routes through {@link ensureGlobalAgentRegistryDb}, which opens the consolidated\n* `cleo.db` via `openDualScopeDb('global')` (whose consolidated cleo-global\n* migration creates the prefixed `agent_registry_*` tables this accessor's raw SQL\n* now queries, post-T11622 cutover), reconciles the health-probe ledger, and\n* stores the native handle for reuse. The returned handle is the SAME one the\n* write path uses — reads and writes are aligned to `cleo.db` (T11562).\n*\n* Replaces the previous `new DatabaseSync(getGlobalAgentRegistryDbPath())` raw-open,\n* which diverged from the write path (T11562).\n*\n* The handle is SHARED and co-owned by the nexus / skills global domains — its\n* lifecycle is owned by `openDualScopeDb`. Callers MUST NOT call `db.close()` on\n* it (doing so would break in-flight sibling queries). This is why every former\n* `globalDb.close()` in this module was removed (T11562).\n*\n* @returns The shared consolidated global `cleo.db` native handle.\n* @throws {Error} If the shared handle is unexpectedly absent after ensure.\n* @task T355\n* @task T11562\n* @epic T310\n* @epic T11249\n*/\nasync function openGlobalDb() {\n\tawait ensureGlobalAgentRegistryDb();\n\tconst db = getGlobalAgentRegistryNativeDb();\n\tif (!db) throw new Error(\"openGlobalDb: ensureGlobalAgentRegistryDb() did not yield a shared global cleo.db handle (getGlobalAgentRegistryNativeDb() returned null). This indicates the dual-scope global chokepoint failed to initialize — fix the caller, do not suppress.\");\n\treturn db;\n}\n/**\n* Open a short-lived read/write handle to the PROJECT conduit.db.\n* Caller MUST call `db.close()` when done.\n*\n* @param projectRoot - Absolute path to the project root directory.\n* @task T355\n* @epic T310\n*/\nfunction openConduitDb(projectRoot) {\n\tconst db = new DatabaseSync(getConduitDbPath(projectRoot));\n\tapplyPerfPragmas(db);\n\treturn db;\n}\n/**\n* Sync capabilities/skills to junction tables in global cleo.db (Agent Registry).\n* Junction tables are the SSoT — JSON columns are a materialized cache.\n*\n* @param db - Open handle to global cleo.db (Agent Registry).\n* @param agentUuid - The `id` (UUID primary key) from the agents row.\n* @param capabilities - Array of capability slugs.\n* @param skills - Array of skill slugs.\n* @task T355\n* @epic T310\n*/\nfunction syncJunctionTables(db, agentUuid, capabilities, skills) {\n\tdb.prepare(\"DELETE FROM agent_registry_agent_capabilities WHERE agent_id = ?\").run(agentUuid);\n\tdb.prepare(\"DELETE FROM agent_registry_agent_skills WHERE agent_id = ?\").run(agentUuid);\n\tfor (const cap of capabilities) {\n\t\tconst capRow = db.prepare(\"SELECT id FROM agent_registry_capabilities WHERE slug = ?\").get(cap);\n\t\tif (capRow) db.prepare(\"INSERT OR IGNORE INTO agent_registry_agent_capabilities (agent_id, capability_id) VALUES (?, ?)\").run(agentUuid, capRow.id);\n\t}\n\tfor (const skill of skills) {\n\t\tconst skillRow = db.prepare(\"SELECT id FROM agent_registry_skills WHERE slug = ?\").get(skill);\n\t\tif (skillRow) db.prepare(\"INSERT OR IGNORE INTO agent_registry_agent_skills (agent_id, skill_id) VALUES (?, ?)\").run(agentUuid, skillRow.id);\n\t}\n}\n/**\n* Cross-DB agent lookup. Opens both the global cleo.db (Agent Registry) and the\n* current project's conduit.db, joins project_agent_refs ⨝ agents by\n* agentId, and returns the merged view.\n*\n* Default (includeGlobal=false): returns null if no project_agent_refs row\n* exists, even if the agent exists globally. An enabled=0 row is also treated\n* as absent.\n*\n* includeGlobal=true: returns the global agent with `projectRef: null` if no\n* project attachment row exists.\n*\n* Dangling soft-FK detection: if a project_agent_refs row exists but the\n* referenced global agent does not, logs a WARN and returns null.\n*\n* Both `agents` (global) and `project_agent_refs` (project) tables are\n* materialized into their consolidated `cleo.db` files lazily, so this function\n* ensures both DBs (via the shared `openGlobalDb` / `ensureConduitDb`\n* chokepoints) before reading — keeping the read path aligned with the write\n* path (T11562). It is therefore async.\n*\n* @param projectRoot - Absolute path to the project root directory.\n* @param agentId - Agent business identifier.\n* @param opts.includeGlobal - When true, returns global identity even without project ref.\n* @returns Merged agent record or null if not found.\n*\n* @task T355\n* @task T11562\n* @epic T310\n* @epic T11249\n*/\nasync function lookupAgent(projectRoot, agentId, opts) {\n\tconst includeGlobal = opts?.includeGlobal ?? false;\n\tawait ensureConduitDb(projectRoot);\n\tconst globalDb = await openGlobalDb();\n\tconst conduitDb = openConduitDb(projectRoot);\n\ttry {\n\t\tconst agentRow = globalDb.prepare(\"SELECT * FROM agent_registry_agents WHERE agent_id = ?\").get(agentId);\n\t\tconst refRow = conduitDb.prepare(\"SELECT * FROM conduit_project_agent_refs WHERE agent_id = ?\").get(agentId);\n\t\tif (refRow && !agentRow) {\n\t\t\tconsole.warn(`[agent-registry-accessor] WARN: dangling project_agent_refs row for agent_id=\"${agentId}\". No matching row in global cleo.db:agents. Row will be ignored.`);\n\t\t\treturn null;\n\t\t}\n\t\tif (!agentRow) return null;\n\t\tif (!includeGlobal) {\n\t\t\tif (!refRow || refRow.enabled === 0) return null;\n\t\t\treturn mergeToAgentWithOverride(agentRow, refRow);\n\t\t}\n\t\treturn mergeToAgentWithOverride(agentRow, refRow && refRow.enabled === 1 ? refRow : null);\n\t} finally {\n\t\tconduitDb.close();\n\t}\n}\n/**\n* Lists agents visible in the current project.\n*\n* Default (includeGlobal=false): INNER JOIN on project_agent_refs (enabled=1)\n* — only agents explicitly attached to this project are returned.\n*\n* includeGlobal=true: returns all global agents regardless of project\n* attachment, with projectRef populated for attached ones and null for the rest.\n*\n* includeDisabled=true: also returns agents with enabled=0 in project_agent_refs.\n* Ignored when includeGlobal=true (all global agents are returned regardless).\n*\n* Both `agents` (global) and `project_agent_refs` (project) tables are\n* materialized into their consolidated `cleo.db` files lazily, so this function\n* ensures both DBs (via the shared `openGlobalDb` / `ensureConduitDb`\n* chokepoints) before reading — keeping the read path aligned with the write\n* path (T11562). It is therefore async.\n*\n* @param projectRoot - Absolute path to the project root directory.\n* @param opts.includeGlobal - Include all global agents (bypasses project filter).\n* @param opts.includeDisabled - Include agents with enabled=0 in project_agent_refs.\n* @returns Array of merged agent records.\n*\n* @task T355\n* @task T11562\n* @epic T310\n* @epic T11249\n*/\nasync function listAgentsForProject(projectRoot, opts) {\n\tconst includeGlobal = opts?.includeGlobal ?? false;\n\tconst includeDisabled = opts?.includeDisabled ?? false;\n\tawait ensureConduitDb(projectRoot);\n\tconst globalDb = await openGlobalDb();\n\tconst conduitDb = openConduitDb(projectRoot);\n\ttry {\n\t\tconst allAgents = globalDb.prepare(\"SELECT * FROM agent_registry_agents ORDER BY name ASC\").all();\n\t\tconst allRefs = conduitDb.prepare(\"SELECT * FROM conduit_project_agent_refs\").all();\n\t\tconst refMap = /* @__PURE__ */ new Map();\n\t\tfor (const ref of allRefs) refMap.set(ref.agent_id, ref);\n\t\tconst result = [];\n\t\tfor (const agentRow of allAgents) {\n\t\t\tconst ref = refMap.get(agentRow.agent_id);\n\t\t\tif (includeGlobal) {\n\t\t\t\tconst effectiveRef = ref && ref.enabled === 1 ? ref : null;\n\t\t\t\tresult.push(mergeToAgentWithOverride(agentRow, effectiveRef));\n\t\t\t} else {\n\t\t\t\tif (!ref) continue;\n\t\t\t\tif (!includeDisabled && ref.enabled === 0) continue;\n\t\t\t\tresult.push(mergeToAgentWithOverride(agentRow, ref));\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t} finally {\n\t\tconduitDb.close();\n\t}\n}\n/**\n* Creates a new agent: writes identity row to global cleo.db (Agent Registry) AND attaches\n* it to the current project via conduit.db:project_agent_refs.\n*\n* Write order: global first, then project ref. If the project ref write fails,\n* the global row remains (recoverable via `cleo agent attach <id>`).\n*\n* API key derivation: HMAC-SHA256(machineKey || globalSalt, agentId) per ADR-037 §5.\n*\n* @param projectRoot - Absolute path to the project root directory.\n* @param spec - Agent creation spec (without createdAt/updatedAt).\n* @returns Merged agent record including the new project ref.\n*\n* @task T355\n* @epic T310\n*/\nasync function createProjectAgent(projectRoot, spec) {\n\tawait ensureGlobalAgentRegistryDb();\n\tawait ensureConduitDb(projectRoot);\n\tconst nowTs = Math.floor(Date.now() / 1e3);\n\tconst nowIso = (/* @__PURE__ */ new Date(nowTs * 1e3)).toISOString();\n\tconst apiKeyEncrypted = deriveApiKey({\n\t\tmachineKey: readMachineKey(),\n\t\tglobalSalt: getGlobalSalt(),\n\t\tagentId: spec.agentId\n\t}).toString(\"hex\");\n\tconst globalDb = await openGlobalDb();\n\t{\n\t\tconst existing = globalDb.prepare(\"SELECT id FROM agent_registry_agents WHERE agent_id = ?\").get(spec.agentId);\n\t\tlet agentUuid;\n\t\tif (!existing) {\n\t\t\tagentUuid = crypto.randomUUID();\n\t\t\tglobalDb.prepare(`INSERT INTO agent_registry_agents (id, agent_id, name, class, privacy_tier, capabilities, skills,\n transport_type, api_key_encrypted, api_base_url, classification, transport_config,\n is_active, last_used_at, status, created_at, updated_at, requires_reauth)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'online', ?, ?, 0)`).run(agentUuid, spec.agentId, spec.displayName, spec.classification ?? \"custom\", spec.privacyTier, JSON.stringify(spec.capabilities), JSON.stringify(spec.skills), spec.transportType ?? \"http\", apiKeyEncrypted, spec.apiBaseUrl, spec.classification ?? null, JSON.stringify(spec.transportConfig), spec.isActive ? 1 : 0, spec.lastUsedAt ? new Date(spec.lastUsedAt).toISOString() : null, nowIso, nowIso);\n\t\t\tsyncJunctionTables(globalDb, agentUuid, spec.capabilities, spec.skills);\n\t\t} else {\n\t\t\tagentUuid = existing.id;\n\t\t\tglobalDb.prepare(`UPDATE agent_registry_agents SET name = ?, class = ?, privacy_tier = ?, capabilities = ?, skills = ?,\n transport_type = ?, api_key_encrypted = ?, api_base_url = ?, classification = ?,\n transport_config = ?, is_active = ?, updated_at = ? WHERE agent_id = ?`).run(spec.displayName, spec.classification ?? \"custom\", spec.privacyTier, JSON.stringify(spec.capabilities), JSON.stringify(spec.skills), spec.transportType ?? \"http\", apiKeyEncrypted, spec.apiBaseUrl, spec.classification ?? null, JSON.stringify(spec.transportConfig), spec.isActive ? 1 : 0, nowIso, spec.agentId);\n\t\t\tsyncJunctionTables(globalDb, agentUuid, spec.capabilities, spec.skills);\n\t\t}\n\t}\n\tconst conduitDb = openConduitDb(projectRoot);\n\ttry {\n\t\tconst existingRef = conduitDb.prepare(\"SELECT agent_id, enabled FROM conduit_project_agent_refs WHERE agent_id = ?\").get(spec.agentId);\n\t\tif (!existingRef) conduitDb.prepare(`INSERT INTO conduit_project_agent_refs (agent_id, attached_at, role, capabilities_override, last_used_at, enabled)\n VALUES (?, ?, NULL, NULL, NULL, 1)`).run(spec.agentId, nowIso);\n\t\telse if (existingRef.enabled === 0) conduitDb.prepare(`UPDATE conduit_project_agent_refs SET enabled = 1, attached_at = ? WHERE agent_id = ?`).run(nowIso, spec.agentId);\n\t} finally {\n\t\tconduitDb.close();\n\t}\n\tconst result = await lookupAgent(projectRoot, spec.agentId, { includeGlobal: false });\n\tif (!result) throw new Error(`createProjectAgent: failed to retrieve agent after creation: ${spec.agentId}`);\n\treturn result;\n}\n/**\n* AgentRegistryAccessor — backward-compatible CRUD wrapper around the\n* cross-DB module-level functions.\n*\n* Post-T310 (ADR-037), the constructor accepts the project root (same\n* semantics as `projectPath` in the pre-T310 version). All operations are\n* routed through the cross-DB functions above.\n*\n* @task T355\n* @epic T310\n*/\nvar AgentRegistryAccessor = class {\n\tprojectPath;\n\t/**\n\t* @param projectPath - Absolute path to the project root directory.\n\t* Used as the `projectRoot` argument for all cross-DB operations.\n\t* @task T355\n\t* @epic T310\n\t*/\n\tconstructor(projectPath) {\n\t\tthis.projectPath = projectPath;\n\t}\n\t/**\n\t* Ensure both databases exist with their full schemas before any operation.\n\t*\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync ensureDbs() {\n\t\tawait ensureGlobalAgentRegistryDb();\n\t\tawait ensureConduitDb(this.projectPath);\n\t}\n\t/**\n\t* Register (create or update) an agent in global cleo.db (Agent Registry) and attach\n\t* it to the current project via conduit.db:project_agent_refs.\n\t*\n\t* @param credential - Agent spec (without createdAt/updatedAt).\n\t* @returns The registered agent credential.\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync register(credential) {\n\t\tawait this.ensureDbs();\n\t\treturn createProjectAgent(this.projectPath, credential);\n\t}\n\t/**\n\t* Get agent by agentId. Project-scoped by default (INNER JOIN).\n\t*\n\t* @param agentId - Agent business identifier.\n\t* @param opts.includeGlobal - When true, returns global identity even without project ref.\n\t* @returns The agent credential, or null if not found.\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync get(agentId, opts) {\n\t\tawait this.ensureDbs();\n\t\treturn lookupAgent(this.projectPath, agentId, opts);\n\t}\n\t/**\n\t* Lists project-scoped agents (INNER JOIN on project_agent_refs with enabled=1).\n\t*\n\t* @param filter - Optional filter (active field maps to is_active in global agents).\n\t* @returns Array of agent credentials visible in this project.\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync list(filter) {\n\t\tawait this.ensureDbs();\n\t\tconst results = await listAgentsForProject(this.projectPath, { includeGlobal: false });\n\t\tif (filter?.active !== void 0) return results.filter((a) => a.isActive === filter.active);\n\t\treturn results;\n\t}\n\t/**\n\t* Lists all global agents (no project filter). Exposed for `--global` CLI flag.\n\t*\n\t* @param filter - Optional filter (active field maps to is_active in global agents).\n\t* @returns Array of all globally registered agent credentials.\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync listGlobal(filter) {\n\t\tawait this.ensureDbs();\n\t\tconst globalDb = await openGlobalDb();\n\t\treturn (filter?.active !== void 0 ? globalDb.prepare(\"SELECT * FROM agent_registry_agents WHERE is_active = ? ORDER BY name ASC\").all(filter.active ? 1 : 0) : globalDb.prepare(\"SELECT * FROM agent_registry_agents ORDER BY name ASC\").all()).map(rowToCredential);\n\t}\n\t/**\n\t* Update agent identity fields in global cleo.db (Agent Registry).\n\t* Project-specific fields (role, capabilitiesOverride) require direct\n\t* conduit.db manipulation (not yet exposed by this method).\n\t*\n\t* @param agentId - Agent business identifier.\n\t* @param updates - Partial set of fields to update.\n\t* @returns The updated agent credential (project-scoped lookup).\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync update(agentId, updates) {\n\t\tawait this.ensureDbs();\n\t\tconst existing = await this.get(agentId, { includeGlobal: true });\n\t\tif (!existing) throw new Error(`Agent not found: ${agentId}`);\n\t\tconst nowIso = (/* @__PURE__ */ new Date()).toISOString();\n\t\tconst globalDb = await openGlobalDb();\n\t\t{\n\t\t\tconst sets = [\"updated_at = ?\"];\n\t\t\tconst params = [nowIso];\n\t\t\tif (updates.displayName !== void 0) {\n\t\t\t\tsets.push(\"name = ?\");\n\t\t\t\tparams.push(updates.displayName);\n\t\t\t}\n\t\t\tif (updates.apiBaseUrl !== void 0) {\n\t\t\t\tsets.push(\"api_base_url = ?\");\n\t\t\t\tparams.push(updates.apiBaseUrl);\n\t\t\t}\n\t\t\tif (updates.classification !== void 0) {\n\t\t\t\tsets.push(\"classification = ?\");\n\t\t\t\tparams.push(updates.classification);\n\t\t\t}\n\t\t\tif (updates.privacyTier !== void 0) {\n\t\t\t\tsets.push(\"privacy_tier = ?\");\n\t\t\t\tparams.push(updates.privacyTier);\n\t\t\t}\n\t\t\tif (updates.capabilities !== void 0) {\n\t\t\t\tsets.push(\"capabilities = ?\");\n\t\t\t\tparams.push(JSON.stringify(updates.capabilities));\n\t\t\t}\n\t\t\tif (updates.skills !== void 0) {\n\t\t\t\tsets.push(\"skills = ?\");\n\t\t\t\tparams.push(JSON.stringify(updates.skills));\n\t\t\t}\n\t\t\tif (updates.transportType !== void 0) {\n\t\t\t\tsets.push(\"transport_type = ?\");\n\t\t\t\tparams.push(updates.transportType);\n\t\t\t}\n\t\t\tif (updates.transportConfig !== void 0) {\n\t\t\t\tsets.push(\"transport_config = ?\");\n\t\t\t\tparams.push(JSON.stringify(updates.transportConfig));\n\t\t\t}\n\t\t\tif (updates.isActive !== void 0) {\n\t\t\t\tsets.push(\"is_active = ?\");\n\t\t\t\tparams.push(updates.isActive ? 1 : 0);\n\t\t\t}\n\t\t\tif (updates.apiKey !== void 0) {\n\t\t\t\tconst derivedKey = deriveApiKey({\n\t\t\t\t\tmachineKey: readMachineKey(),\n\t\t\t\t\tglobalSalt: getGlobalSalt(),\n\t\t\t\t\tagentId\n\t\t\t\t});\n\t\t\t\tsets.push(\"api_key_encrypted = ?\");\n\t\t\t\tparams.push(derivedKey.toString(\"hex\"));\n\t\t\t}\n\t\t\tparams.push(agentId);\n\t\t\tglobalDb.prepare(`UPDATE agent_registry_agents SET ${sets.join(\", \")} WHERE agent_id = ?`).run(...params);\n\t\t\tif (updates.capabilities !== void 0 || updates.skills !== void 0) {\n\t\t\t\tconst agentRow = globalDb.prepare(\"SELECT id FROM agent_registry_agents WHERE agent_id = ?\").get(agentId);\n\t\t\t\tif (agentRow) syncJunctionTables(globalDb, agentRow.id, updates.capabilities ?? existing.capabilities, updates.skills ?? existing.skills);\n\t\t\t}\n\t\t}\n\t\tconst result = await this.get(agentId, { includeGlobal: true });\n\t\tif (!result) throw new Error(`Agent not found after update: ${agentId}`);\n\t\treturn result;\n\t}\n\t/**\n\t* Remove agent from current project (sets project_agent_refs.enabled=0).\n\t* Does NOT delete from global cleo.db (Agent Registry) (per ADR-037 §6 / Q4=C).\n\t*\n\t* @param agentId - Agent business identifier.\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync remove(agentId) {\n\t\tawait this.ensureDbs();\n\t\tconst conduitDb = openConduitDb(this.projectPath);\n\t\ttry {\n\t\t\tif (!conduitDb.prepare(\"SELECT agent_id FROM conduit_project_agent_refs WHERE agent_id = ?\").get(agentId)) throw new Error(`Agent not found in current project: ${agentId}`);\n\t\t\tconduitDb.prepare(\"UPDATE conduit_project_agent_refs SET enabled = 0 WHERE agent_id = ?\").run(agentId);\n\t\t} finally {\n\t\t\tconduitDb.close();\n\t\t}\n\t}\n\t/**\n\t* Remove agent from global cleo.db (Agent Registry).\n\t* Requires explicit opt-in. Warns if cross-project refs may exist.\n\t*\n\t* @param agentId - Agent business identifier.\n\t* @param opts.force - Skip the global-delete warning when refs exist.\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync removeGlobal(agentId, opts) {\n\t\tawait this.ensureDbs();\n\t\tconst globalDb = await openGlobalDb();\n\t\tif (!globalDb.prepare(\"SELECT id FROM agent_registry_agents WHERE agent_id = ?\").get(agentId)) throw new Error(`Agent not found globally: ${agentId}`);\n\t\tif (!opts?.force) {\n\t\t\tconst conduitDb = openConduitDb(this.projectPath);\n\t\t\ttry {\n\t\t\t\tif (conduitDb.prepare(\"SELECT agent_id FROM conduit_project_agent_refs WHERE agent_id = ? AND enabled = 1\").get(agentId)) throw new Error(`Agent \"${agentId}\" still has project references in the current project. Use removeGlobal(id, { force: true }) to skip this check.`);\n\t\t\t} finally {\n\t\t\t\tconduitDb.close();\n\t\t\t}\n\t\t}\n\t\tglobalDb.prepare(\"DELETE FROM agent_registry_agents WHERE agent_id = ?\").run(agentId);\n\t}\n\t/**\n\t* Rotate API key via cloud endpoint and re-encrypt with the new T310 KDF\n\t* in global cleo.db (Agent Registry).\n\t*\n\t* @param agentId - Agent business identifier.\n\t* @returns Object with agentId and a redacted new API key string.\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync rotateKey(agentId) {\n\t\tawait this.ensureDbs();\n\t\tconst credential = await this.get(agentId, { includeGlobal: true });\n\t\tif (!credential) throw new Error(`Agent not found: ${agentId}`);\n\t\tconst response = await fetch(`${credential.apiBaseUrl}/agents/${agentId}/rotate-key`, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${credential.apiKey}`,\n\t\t\t\t\"X-Agent-Id\": agentId\n\t\t\t}\n\t\t});\n\t\tif (!response.ok) throw new Error(`Failed to rotate key on cloud: ${response.status} ${response.statusText}`);\n\t\tconst newApiKey = (await response.json()).data?.apiKey;\n\t\tif (!newApiKey) throw new Error(\"Cloud API did not return a new API key\");\n\t\tconst derivedKey = deriveApiKey({\n\t\t\tmachineKey: readMachineKey(),\n\t\t\tglobalSalt: getGlobalSalt(),\n\t\t\tagentId\n\t\t});\n\t\tconst nowIso = (/* @__PURE__ */ new Date()).toISOString();\n\t\t(await openGlobalDb()).prepare(\"UPDATE agent_registry_agents SET api_key_encrypted = ?, updated_at = ?, requires_reauth = 0 WHERE agent_id = ?\").run(derivedKey.toString(\"hex\"), nowIso, agentId);\n\t\treturn {\n\t\t\tagentId,\n\t\t\tnewApiKey: `${newApiKey.substring(0, 8)}...rotated`\n\t\t};\n\t}\n\t/**\n\t* Get the most recently used active agent in the current project.\n\t*\n\t* @returns The most-recently-used active agent, or null if none found.\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync getActive() {\n\t\tawait this.ensureDbs();\n\t\tconst globalDb = await openGlobalDb();\n\t\tconst conduitDb = openConduitDb(this.projectPath);\n\t\ttry {\n\t\t\tconst enabledRefs = conduitDb.prepare(\"SELECT agent_id, last_used_at FROM conduit_project_agent_refs WHERE enabled = 1 ORDER BY last_used_at DESC\").all();\n\t\t\tfor (const ref of enabledRefs) {\n\t\t\t\tconst agentRow = globalDb.prepare(\"SELECT * FROM agent_registry_agents WHERE agent_id = ? AND is_active = 1\").get(ref.agent_id);\n\t\t\t\tif (agentRow) return rowToCredential(agentRow);\n\t\t\t}\n\t\t\tconst row = globalDb.prepare(\"SELECT * FROM agent_registry_agents WHERE is_active = 1 ORDER BY last_used_at DESC, created_at DESC LIMIT 1\").get();\n\t\t\tif (!row) return null;\n\t\t\treturn rowToCredential(row);\n\t\t} finally {\n\t\t\tconduitDb.close();\n\t\t}\n\t}\n\t/**\n\t* Update last_used_at in both global cleo.db:agent_registry_agents and\n\t* conduit.db:project_agent_refs.\n\t*\n\t* @param agentId - Agent business identifier.\n\t* @task T355\n\t* @epic T310\n\t*/\n\tasync markUsed(agentId) {\n\t\tawait this.ensureDbs();\n\t\tconst nowIso = (/* @__PURE__ */ new Date()).toISOString();\n\t\t(await openGlobalDb()).prepare(\"UPDATE agent_registry_agents SET last_used_at = ?, updated_at = ? WHERE agent_id = ?\").run(nowIso, nowIso, agentId);\n\t\tconst conduitDb = openConduitDb(this.projectPath);\n\t\ttry {\n\t\t\tconduitDb.prepare(\"UPDATE conduit_project_agent_refs SET last_used_at = ? WHERE agent_id = ?\").run(nowIso, agentId);\n\t\t} finally {\n\t\t\tconduitDb.close();\n\t\t}\n\t}\n};\ngetLogger(\"worktree:sentinel-index\");\nvar { DatabaseSync: _DatabaseSync } = createRequire(import.meta.url)(\"node:sqlite\");\nObject.freeze({});\n//#endregion\n//#region ../core/dist/orchestration/validate-spawn.js\n/**\n* Spawn readiness validation.\n*\n* @task T4784\n* @task T894 Atomic task enforcement (worker role rejects >3 files or no file scope)\n* @task T1933 Universal-tier wired into spawn validator pre-flight (ADR-068 Decision 6)\n*/\nvar { DatabaseSync: _DatabaseSyncCtor } = createRequire(import.meta.url)(\"node:sqlite\");\n//#endregion\nexport { lookupAgent as i, createProjectAgent as n, listAgentsForProject as r, AgentRegistryAccessor as t };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAsEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;AA+lBpE,SAAS,CAAC,yBAAyB,CAAC;AACpC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;AAEnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query-promise-BkPmGPJy.js","sources":["../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/alias.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/errors.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sql/expressions/conditions.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/sql/expressions/select.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/relations.js","../../../../../node_modules/.pnpm/drizzle-orm@1.0.0-rc.4_@opentelemetry+api@1.9.0_@sinclair+typebox@0.34.49_@types+mssql@_b4e81f2ea693a7363d3e5dc2205249c6/node_modules/drizzle-orm/query-promise.js"],"sourcesContent":["import { entityKind, is } from \"./entity.js\";\nimport { OriginalColumn } from \"./column-common.js\";\nimport { Column } from \"./column.js\";\nimport { Table } from \"./table.js\";\nimport { SQL, View, isSQLWrapper, sql } from \"./sql/sql.js\";\nimport { Subquery } from \"./subquery.js\";\nimport { ViewBaseConfig } from \"./view-common.js\";\n\n//#region src/alias.ts\nvar ColumnTableAliasProxyHandler = class {\n\tstatic [entityKind] = \"ColumnTableAliasProxyHandler\";\n\tconstructor(table, ignoreColumnAlias) {\n\t\tthis.table = table;\n\t\tthis.ignoreColumnAlias = ignoreColumnAlias;\n\t}\n\tget(columnObj, prop) {\n\t\tif (prop === \"table\") return this.table;\n\t\tif (prop === \"isAlias\" && this.ignoreColumnAlias) return false;\n\t\treturn columnObj[prop];\n\t}\n};\nvar ViewSelectionAliasProxyHandler = class {\n\tstatic [entityKind] = \"ViewSelectionAliasProxyHandler\";\n\tconstructor(view, selection, ignoreColumnAlias) {\n\t\tthis.view = view;\n\t\tthis.selection = selection;\n\t\tthis.ignoreColumnAlias = ignoreColumnAlias;\n\t}\n\tget(selection, prop) {\n\t\tconst value = selection[prop];\n\t\tif (is(value, Column)) return new Proxy(value, new ColumnTableAliasProxyHandler(this.view, this.ignoreColumnAlias));\n\t\tif (is(value, Subquery) || is(value, SQL) || is(value, SQL.Aliased) || isSQLWrapper(value) || typeof value !== \"object\" || value === null) return value;\n\t\treturn new Proxy(value, this);\n\t}\n};\nvar TableAliasProxyHandler = class {\n\tstatic [entityKind] = \"TableAliasProxyHandler\";\n\tconstructor(alias, replaceOriginalName, ignoreColumnAlias) {\n\t\tthis.alias = alias;\n\t\tthis.replaceOriginalName = replaceOriginalName;\n\t\tthis.ignoreColumnAlias = ignoreColumnAlias;\n\t}\n\tget(target, prop) {\n\t\tif (prop === Table.Symbol.IsAlias) return true;\n\t\tif (prop === Table.Symbol.Name) return this.alias;\n\t\tif (this.replaceOriginalName && prop === Table.Symbol.OriginalName) return this.alias;\n\t\tif (prop === ViewBaseConfig) return {\n\t\t\t...target[ViewBaseConfig],\n\t\t\tname: this.alias,\n\t\t\tisAlias: true,\n\t\t\tselectedFields: new Proxy(target[ViewBaseConfig].selectedFields, new ViewSelectionAliasProxyHandler(new Proxy(target, this), target[ViewBaseConfig].selectedFields, this.ignoreColumnAlias))\n\t\t};\n\t\tif (prop === Table.Symbol.Columns) {\n\t\t\tconst columns = target[Table.Symbol.Columns];\n\t\t\tif (!columns) return columns;\n\t\t\tif (is(target, View)) return new Proxy(target[Table.Symbol.Columns], new ViewSelectionAliasProxyHandler(new Proxy(target, this), target[Table.Symbol.Columns], this.ignoreColumnAlias));\n\t\t\tconst proxiedColumns = {};\n\t\t\tObject.keys(columns).map((key) => {\n\t\t\t\tproxiedColumns[key] = new Proxy(columns[key], new ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias));\n\t\t\t});\n\t\t\treturn proxiedColumns;\n\t\t}\n\t\tconst value = target[prop];\n\t\tif (is(value, Column)) return new Proxy(value, new ColumnTableAliasProxyHandler(new Proxy(target, this), this.ignoreColumnAlias));\n\t\treturn value;\n\t}\n};\nvar ColumnAliasProxyHandler = class {\n\tstatic [entityKind] = \"ColumnAliasProxyHandler\";\n\tconstructor(alias) {\n\t\tthis.alias = alias;\n\t}\n\tget(target, prop) {\n\t\tif (prop === \"isAlias\") return true;\n\t\tif (prop === \"name\") return this.alias;\n\t\tif (prop === \"keyAsName\") return false;\n\t\tif (prop === OriginalColumn) return () => target;\n\t\treturn target[prop];\n\t}\n};\nvar RelationTableAliasProxyHandler = class {\n\tstatic [entityKind] = \"RelationTableAliasProxyHandler\";\n\tconstructor(alias) {\n\t\tthis.alias = alias;\n\t}\n\tget(target, prop) {\n\t\tif (prop === \"sourceTable\") return aliasedTable(target.sourceTable, this.alias);\n\t\treturn target[prop];\n\t}\n};\nfunction aliasedTable(table, tableAlias) {\n\treturn new Proxy(table, new TableAliasProxyHandler(tableAlias, false, false));\n}\nfunction aliasedColumn(column, alias) {\n\treturn new Proxy(column, new ColumnAliasProxyHandler(alias));\n}\nfunction aliasedRelation(relation, tableAlias) {\n\treturn new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));\n}\nfunction aliasedTableColumn(column, tableAlias) {\n\treturn new Proxy(column, new ColumnTableAliasProxyHandler(new Proxy(column.table, new TableAliasProxyHandler(tableAlias, false, false)), false));\n}\nfunction mapColumnsInAliasedSQLToAlias(query, alias) {\n\treturn new SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);\n}\nfunction mapColumnsInSQLToAlias(query, alias) {\n\treturn sql.join(query.queryChunks.map((c) => {\n\t\tif (is(c, Column)) return aliasedTableColumn(c, alias);\n\t\tif (is(c, SQL)) return mapColumnsInSQLToAlias(c, alias);\n\t\tif (is(c, SQL.Aliased)) return mapColumnsInAliasedSQLToAlias(c, alias);\n\t\treturn c;\n\t}));\n}\nColumn.prototype.as = function(alias) {\n\treturn aliasedColumn(this, alias);\n};\nfunction getOriginalColumnFromAlias(column) {\n\treturn column[OriginalColumn]();\n}\n\n//#endregion\nexport { ColumnAliasProxyHandler, ColumnTableAliasProxyHandler, RelationTableAliasProxyHandler, TableAliasProxyHandler, ViewSelectionAliasProxyHandler, aliasedColumn, aliasedRelation, aliasedTable, aliasedTableColumn, getOriginalColumnFromAlias, mapColumnsInAliasedSQLToAlias, mapColumnsInSQLToAlias };\n//# sourceMappingURL=alias.js.map","import { entityKind } from \"./entity.js\";\n\n//#region src/errors.ts\nvar DrizzleError = class extends Error {\n\tstatic [entityKind] = \"DrizzleError\";\n\tconstructor({ message, cause }) {\n\t\tsuper(message);\n\t\tthis.name = \"DrizzleError\";\n\t\tthis.cause = cause;\n\t}\n};\nvar DrizzleQueryError = class DrizzleQueryError extends Error {\n\tstatic [entityKind] = \"DrizzleQueryError\";\n\tconstructor(query, params, cause) {\n\t\tsuper(`Failed query: ${query}\\nparams: ${params}`);\n\t\tthis.query = query;\n\t\tthis.params = params;\n\t\tthis.cause = cause;\n\t\tthis.name = \"DrizzleQueryError\";\n\t\tError.captureStackTrace(this, DrizzleQueryError);\n\t\tif (cause) this.cause = cause;\n\t}\n};\nvar TransactionRollbackError = class extends DrizzleError {\n\tstatic [entityKind] = \"TransactionRollbackError\";\n\tconstructor() {\n\t\tsuper({ message: \"Rollback\" });\n\t\tthis.name = \"TransactionRollbackError\";\n\t}\n};\n\n//#endregion\nexport { DrizzleError, DrizzleQueryError, TransactionRollbackError };\n//# sourceMappingURL=errors.js.map","import { Param, Placeholder, SQL, StringChunk, View, isDriverValueEncoder, isSQLWrapper, sql } from \"../sql.js\";\nimport { is } from \"../../entity.js\";\nimport { Table } from \"../../table.js\";\nimport { Column } from \"../../column.js\";\n\n//#region src/sql/expressions/conditions.ts\nfunction bindIfParam(value, column) {\n\tif (isDriverValueEncoder(column) && !isSQLWrapper(value) && !is(value, Param) && !is(value, Placeholder) && !is(value, Column) && !is(value, Table) && !is(value, View)) return new Param(value, column);\n\treturn value;\n}\n/**\n* Test that two values are equal.\n*\n* Remember that the SQL standard dictates that\n* two NULL values are not equal, so if you want to test\n* whether a value is null, you may want to use\n* `isNull` instead.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made by Ford\n* db.select().from(cars)\n* .where(eq(cars.make, 'Ford'))\n* ```\n*\n* @see isNull for a way to test equality to NULL.\n*/\nconst eq = (left, right) => {\n\treturn sql`${left} = ${bindIfParam(right, left)}`;\n};\n/**\n* Test that two values are not equal.\n*\n* Remember that the SQL standard dictates that\n* two NULL values are not equal, so if you want to test\n* whether a value is not null, you may want to use\n* `isNotNull` instead.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars not made by Ford\n* db.select().from(cars)\n* .where(ne(cars.make, 'Ford'))\n* ```\n*\n* @see isNotNull for a way to test whether a value is not null.\n*/\nconst ne = (left, right) => {\n\treturn sql`${left} <> ${bindIfParam(right, left)}`;\n};\nfunction and(...unfilteredConditions) {\n\tconst conditions = unfilteredConditions.filter((c) => c !== void 0);\n\tif (conditions.length === 0) return;\n\tif (conditions.length === 1) return new SQL(conditions);\n\treturn new SQL([\n\t\tnew StringChunk(\"(\"),\n\t\tsql.join(conditions.map((c) => sql`(${c})`), new StringChunk(\" and \")),\n\t\tnew StringChunk(\")\")\n\t]);\n}\nfunction or(...unfilteredConditions) {\n\tconst conditions = unfilteredConditions.filter((c) => c !== void 0);\n\tif (conditions.length === 0) return;\n\tif (conditions.length === 1) return new SQL(conditions);\n\treturn new SQL([\n\t\tnew StringChunk(\"(\"),\n\t\tsql.join(conditions.map((c) => sql`(${c})`), new StringChunk(\" or \")),\n\t\tnew StringChunk(\")\")\n\t]);\n}\n/**\n* Negate the meaning of an expression using the `not` keyword.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars _not_ made by GM or Ford.\n* db.select().from(cars)\n* .where(not(inArray(cars.make, ['GM', 'Ford'])))\n* ```\n*/\nfunction not(condition) {\n\treturn is(condition, SQL) ? sql`not (${condition})` : sql`not ${condition}`;\n}\n/**\n* Test that the first expression passed is greater than\n* the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made after 2000.\n* db.select().from(cars)\n* .where(gt(cars.year, 2000))\n* ```\n*\n* @see gte for greater-than-or-equal\n*/\nconst gt = (left, right) => {\n\treturn sql`${left} > ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is greater than\n* or equal to the second expression. Use `gt` to\n* test whether an expression is strictly greater\n* than another.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made on or after 2000.\n* db.select().from(cars)\n* .where(gte(cars.year, 2000))\n* ```\n*\n* @see gt for a strictly greater-than condition\n*/\nconst gte = (left, right) => {\n\treturn sql`${left} >= ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is less than\n* the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made before 2000.\n* db.select().from(cars)\n* .where(lt(cars.year, 2000))\n* ```\n*\n* @see lte for less-than-or-equal\n*/\nconst lt = (left, right) => {\n\treturn sql`${left} < ${bindIfParam(right, left)}`;\n};\n/**\n* Test that the first expression passed is less than\n* or equal to the second expression.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars made before 2000.\n* db.select().from(cars)\n* .where(lte(cars.year, 2000))\n* ```\n*\n* @see lt for a strictly less-than condition\n*/\nconst lte = (left, right) => {\n\treturn sql`${left} <= ${bindIfParam(right, left)}`;\n};\nfunction inArray(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) return sql`false`;\n\t\treturn sql`${column} in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\treturn sql`${column} in ${bindIfParam(values, column)}`;\n}\nfunction notInArray(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) return sql`true`;\n\t\treturn sql`${column} not in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\treturn sql`${column} not in ${bindIfParam(values, column)}`;\n}\n/**\n* Test whether an expression is NULL. By the SQL standard,\n* NULL is neither equal nor not equal to itself, so\n* it's recommended to use `isNull` and `notIsNull` for\n* comparisons to NULL.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars that have no discontinuedAt date.\n* db.select().from(cars)\n* .where(isNull(cars.discontinuedAt))\n* ```\n*\n* @see isNotNull for the inverse of this test\n*/\nfunction isNull(value) {\n\treturn sql`(${value} is null)`;\n}\n/**\n* Test whether an expression is not NULL. By the SQL standard,\n* NULL is neither equal nor not equal to itself, so\n* it's recommended to use `isNull` and `notIsNull` for\n* comparisons to NULL.\n*\n* ## Examples\n*\n* ```ts\n* // Select cars that have been discontinued.\n* db.select().from(cars)\n* .where(isNotNull(cars.discontinuedAt))\n* ```\n*\n* @see isNull for the inverse of this test\n*/\nfunction isNotNull(value) {\n\treturn sql`(${value} is not null)`;\n}\n/**\n* Test whether a subquery evaluates to have any rows.\n*\n* ## Examples\n*\n* ```ts\n* // Users whose `homeCity` column has a match in a cities\n* // table.\n* db\n* .select()\n* .from(users)\n* .where(\n* exists(db.select()\n* .from(cities)\n* .where(eq(users.homeCity, cities.id))),\n* );\n* ```\n*\n* @see notExists for the inverse of this test\n*/\nfunction exists(subquery) {\n\treturn sql`exists ${subquery}`;\n}\n/**\n* Test whether a subquery doesn't include any result\n* rows.\n*\n* ## Examples\n*\n* ```ts\n* // Users whose `homeCity` column doesn't match\n* // a row in the cities table.\n* db\n* .select()\n* .from(users)\n* .where(\n* notExists(db.select()\n* .from(cities)\n* .where(eq(users.homeCity, cities.id))),\n* );\n* ```\n*\n* @see exists for the inverse of this test\n*/\nfunction notExists(subquery) {\n\treturn sql`not exists ${subquery}`;\n}\nfunction between(column, min, max) {\n\treturn sql`${column} between ${bindIfParam(min, column)} and ${bindIfParam(max, column)}`;\n}\nfunction notBetween(column, min, max) {\n\treturn sql`${column} not between ${bindIfParam(min, column)} and ${bindIfParam(max, column)}`;\n}\n/**\n* Compare a column to a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars with 'Turbo' in their names.\n* db.select().from(cars)\n* .where(like(cars.name, '%Turbo%'))\n* ```\n*\n* @see ilike for a case-insensitive version of this condition\n*/\nfunction like(column, value) {\n\treturn sql`${column} like ${value}`;\n}\n/**\n* The inverse of like - this tests that a given column\n* does not match a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars that don't have \"ROver\" in their name.\n* db.select().from(cars)\n* .where(notLike(cars.name, '%Rover%'))\n* ```\n*\n* @see like for the inverse condition\n* @see notIlike for a case-insensitive version of this condition\n*/\nfunction notLike(column, value) {\n\treturn sql`${column} not like ${value}`;\n}\n/**\n* Case-insensitively compare a column to a pattern,\n* which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* Unlike like, this performs a case-insensitive comparison.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars with 'Turbo' in their names.\n* db.select().from(cars)\n* .where(ilike(cars.name, '%Turbo%'))\n* ```\n*\n* @see like for a case-sensitive version of this condition\n*/\nfunction ilike(column, value) {\n\treturn sql`${column} ilike ${value}`;\n}\n/**\n* The inverse of ilike - this case-insensitively tests that a given column\n* does not match a pattern, which can include `%` and `_`\n* characters to match multiple variations. Including `%`\n* in the pattern matches zero or more characters, and including\n* `_` will match a single character.\n*\n* ## Examples\n*\n* ```ts\n* // Select all cars that don't have \"Rover\" in their name.\n* db.select().from(cars)\n* .where(notLike(cars.name, '%Rover%'))\n* ```\n*\n* @see ilike for the inverse condition\n* @see notLike for a case-sensitive version of this condition\n*/\nfunction notIlike(column, value) {\n\treturn sql`${column} not ilike ${value}`;\n}\nfunction arrayContains(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayContains requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} @> ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} @> ${bindIfParam(values, column)}`;\n}\nfunction arrayContained(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayContained requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} <@ ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} <@ ${bindIfParam(values, column)}`;\n}\nfunction arrayOverlaps(column, values) {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) throw new Error(\"arrayOverlaps requires at least one value\");\n\t\tconst par = bindIfParam(values, column);\n\t\treturn sql`${column} && ${sql`${Array.isArray(par) ? new Param(par) : par}`}`;\n\t}\n\treturn sql`${column} && ${bindIfParam(values, column)}`;\n}\n\n//#endregion\nexport { and, arrayContained, arrayContains, arrayOverlaps, between, bindIfParam, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or };\n//# sourceMappingURL=conditions.js.map","import { sql } from \"../sql.js\";\n\n//#region src/sql/expressions/select.ts\n/**\n* Used in sorting, this specifies that the given\n* column or expression should be sorted in ascending\n* order. By the SQL standard, ascending order is the\n* default, so it is not usually necessary to specify\n* ascending sort order.\n*\n* ## Examples\n*\n* ```ts\n* // Return cars, starting with the oldest models\n* // and going in ascending order to the newest.\n* db.select().from(cars)\n* .orderBy(asc(cars.year));\n* ```\n*\n* @see desc to sort in descending order\n*/\nfunction asc(column) {\n\treturn sql`${column} asc`;\n}\n/**\n* Used in sorting, this specifies that the given\n* column or expression should be sorted in descending\n* order.\n*\n* ## Examples\n*\n* ```ts\n* // Select users, with the most recently created\n* // records coming first.\n* db.select().from(users)\n* .orderBy(desc(users.createdAt));\n* ```\n*\n* @see asc to sort in ascending order\n*/\nfunction desc(column) {\n\treturn sql`${column} desc`;\n}\n\n//#endregion\nexport { asc, desc };\n//# sourceMappingURL=select.js.map","import { entityKind, is } from \"./entity.js\";\nimport { Column } from \"./column.js\";\nimport { Placeholder, SQL, View, noopDecoder, sql } from \"./sql/sql.js\";\nimport { DrizzleError } from \"./errors.js\";\nimport { and, arrayContained, arrayContains, arrayOverlaps, between, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or } from \"./sql/expressions/conditions.js\";\nimport { asc, desc } from \"./sql/expressions/select.js\";\nimport { aliasedTable } from \"./alias.js\";\nimport { FnConstructor, getColumnFromDecoder } from \"./utils.js\";\nimport { IsAlias, OriginalName, Table, TableColumns, TableSchema } from \"./table.js\";\n\n//#region src/relations.ts\nfunction processRelations(tablesConfig, tables) {\n\tfor (const tableConfig of Object.values(tablesConfig)) for (const [relationFieldName, relation] of Object.entries(tableConfig.relations)) {\n\t\tif (!is(relation, Relation)) continue;\n\t\trelation.sourceTable = tableConfig.table;\n\t\trelation.fieldName = relationFieldName;\n\t}\n\tfor (const [sourceTableName, tableConfig] of Object.entries(tablesConfig)) for (const [relationFieldName, relation] of Object.entries(tableConfig.relations)) {\n\t\tif (!is(relation, Relation)) continue;\n\t\tlet reverseRelation;\n\t\tconst { targetTableName, alias, sourceColumns, targetColumns, throughTable, sourceTable, through, where, sourceColumnTableNames, targetColumnTableNames } = relation;\n\t\tconst relationPrintName = `relations -> ${tableConfig.name}: { ${relationFieldName}: r.${is(relation, One) ? \"one\" : \"many\"}.${targetTableName}(...) }`;\n\t\tif (relationFieldName in tableConfig.table[TableColumns]) throw new Error(`${relationPrintName}: relation name collides with column \"${relationFieldName}\" of table \"${tableConfig.name}\"`);\n\t\tif (typeof alias === \"string\" && !alias) throw new Error(`${relationPrintName}: \"alias\" cannot be an empty string - omit it if you don't need it`);\n\t\tif (sourceColumns?.length === 0) throw new Error(`${relationPrintName}: \"from\" cannot be empty`);\n\t\tif (targetColumns?.length === 0) throw new Error(`${relationPrintName}: \"to\" cannot be empty`);\n\t\tif (sourceColumns && targetColumns) {\n\t\t\tif (sourceColumns.length !== targetColumns.length && !throughTable) throw new Error(`${relationPrintName}: \"from\" and \"to\" fields without \"through\" must have the same length`);\n\t\t\tfor (const sName of sourceColumnTableNames) if (sName !== sourceTableName) throw new Error(`${relationPrintName}: all \"from\" columns must belong to table \"${sourceTableName}\", found column of table \"${sName}\"`);\n\t\t\tfor (const tName of targetColumnTableNames) if (tName !== targetTableName) throw new Error(`${relationPrintName}: all \"to\" columns must belong to table \"${targetTableName}\", found column of table \"${tName}\"`);\n\t\t\tif (through) {\n\t\t\t\tif (through.source.length !== sourceColumns.length || through.target.length !== targetColumns.length) throw new Error(`${relationPrintName}: \".through(column)\" must be used either on all columns in \"from\" and \"to\" or not defined on any of them`);\n\t\t\t\tfor (const column of through.source) if (tables[column._.tableName] !== throughTable) throw new Error(`${relationPrintName}: \".through(column)\" must be used on the same table by all columns of the relation`);\n\t\t\t\tfor (const column of through.target) if (tables[column._.tableName] !== throughTable) throw new Error(`${relationPrintName}: \".through(column)\" must be used on the same table by all columns of the relation`);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (sourceColumns || targetColumns) throw new Error(`${relationPrintName}: relation must have either both \"from\" and \"to\" defined, or none of them`);\n\t\tconst reverseTableConfig = tablesConfig[targetTableName];\n\t\tif (!reverseTableConfig) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and no reverse relations of table \"${targetTableName}\" were found\"`);\n\t\tif (alias) {\n\t\t\tconst reverseRelations = Object.values(reverseTableConfig.relations).filter((it) => is(it, Relation) && it.alias === alias && it !== relation);\n\t\t\tif (reverseRelations.length > 1) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and multiple relations with alias \"${alias}\" found in table \"${targetTableName}\": ${reverseRelations.map((it) => `\"${it.fieldName}\"`).join(\", \")}`);\n\t\t\treverseRelation = reverseRelations[0];\n\t\t\tif (!reverseRelation) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and there is no reverse relation of table \"${targetTableName}\" with alias \"${alias}\"`);\n\t\t} else {\n\t\t\tconst reverseRelations = Object.values(reverseTableConfig.relations).filter((it) => is(it, Relation) && it.targetTable === sourceTable && !it.alias && it !== relation);\n\t\t\tif (reverseRelations.length > 1) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and multiple relations between \"${targetTableName}\" and \"${sourceTableName}\" were found.\\nHint: you can specify \"alias\" on both sides of the relation with the same value`);\n\t\t\treverseRelation = reverseRelations[0];\n\t\t\tif (!reverseRelation) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and no reverse relation of table \"${targetTableName}\" with target table \"${sourceTableName}\" was found`);\n\t\t}\n\t\tif (!reverseRelation.sourceColumns || !reverseRelation.targetColumns) throw new Error(`${relationPrintName}: not enough data provided to build the relation - \"from\"/\"to\" are not defined, and reverse relation \"${targetTableName}.${reverseRelation.fieldName}\" does not have \"from\"/\"to\" defined`);\n\t\trelation.sourceColumns = reverseRelation.targetColumns;\n\t\trelation.targetColumns = reverseRelation.sourceColumns;\n\t\trelation.through = reverseRelation.through ? {\n\t\t\tsource: reverseRelation.through.target,\n\t\t\ttarget: reverseRelation.through.source\n\t\t} : void 0;\n\t\trelation.throughTable = reverseRelation.throughTable;\n\t\trelation.isReversed = !where;\n\t\trelation.where = where ?? reverseRelation.where;\n\t}\n\treturn tablesConfig;\n}\n/** Builds relational config for every table in schema */\nfunction buildRelations(tables, config) {\n\tconst tablesConfig = {};\n\tfor (const [tsName, table] of Object.entries(tables)) tablesConfig[tsName] = {\n\t\ttable,\n\t\tname: tsName,\n\t\trelations: config[tsName] ?? {}\n\t};\n\treturn processRelations(tablesConfig, tables);\n}\n/** Builds relational config only for tables present in relational config */\nfunction buildRelationsParts(tables, config) {\n\tconst tablesConfig = {};\n\tfor (const [tsName, relations] of Object.entries(config)) {\n\t\tif (!relations || !tables[tsName]) continue;\n\t\ttablesConfig[tsName] = {\n\t\t\ttable: tables[tsName],\n\t\t\tname: tsName,\n\t\t\trelations\n\t\t};\n\t}\n\treturn processRelations(tablesConfig, tables);\n}\nvar Relation = class {\n\tstatic [entityKind] = \"RelationV2\";\n\tfieldName;\n\tsourceColumns;\n\ttargetColumns;\n\talias;\n\twhere;\n\tsourceTable;\n\ttargetTable;\n\tthrough;\n\tthroughTable;\n\tisReversed;\n\t/** @internal */\n\tsourceColumnTableNames = [];\n\t/** @internal */\n\ttargetColumnTableNames = [];\n\tconstructor(targetTable, targetTableName) {\n\t\tthis.targetTableName = targetTableName;\n\t\tthis.targetTable = targetTable;\n\t}\n};\nvar One = class extends Relation {\n\tstatic [entityKind] = \"OneV2\";\n\trelationType = \"one\";\n\toptional;\n\tconstructor(tables, targetTable, targetTableName, config) {\n\t\tsuper(targetTable, targetTableName);\n\t\tthis.alias = config?.alias;\n\t\tthis.where = config?.where;\n\t\tif (config?.from) this.sourceColumns = (Array.isArray(config.from) ? config.from : [config.from]).map((it) => {\n\t\t\tthis.throughTable ??= it._.through ? tables[it._.through._.tableName] : void 0;\n\t\t\tthis.sourceColumnTableNames.push(it._.tableName);\n\t\t\treturn it._.column;\n\t\t});\n\t\tif (config?.to) this.targetColumns = (Array.isArray(config.to) ? config.to : [config.to]).map((it) => {\n\t\t\tthis.throughTable ??= it._.through ? tables[it._.through._.tableName] : void 0;\n\t\t\tthis.targetColumnTableNames.push(it._.tableName);\n\t\t\treturn it._.column;\n\t\t});\n\t\tif (this.throughTable) this.through = {\n\t\t\tsource: (Array.isArray(config?.from) ? config.from : config?.from ? [config.from] : []).map((c) => c._.through),\n\t\t\ttarget: (Array.isArray(config?.to) ? config.to : config?.to ? [config.to] : []).map((c) => c._.through)\n\t\t};\n\t\tthis.optional = config?.optional ?? true;\n\t}\n};\nvar Many = class extends Relation {\n\tstatic [entityKind] = \"ManyV2\";\n\trelationType = \"many\";\n\tconstructor(tables, targetTable, targetTableName, config) {\n\t\tsuper(targetTable, targetTableName);\n\t\tthis.config = config;\n\t\tthis.alias = config?.alias;\n\t\tthis.where = config?.where;\n\t\tif (config?.from) this.sourceColumns = (Array.isArray(config.from) ? config.from : [config.from]).map((it) => {\n\t\t\tthis.throughTable ??= it._.through ? tables[it._.through._.tableName] : void 0;\n\t\t\tthis.sourceColumnTableNames.push(it._.tableName);\n\t\t\treturn it._.column;\n\t\t});\n\t\tif (config?.to) this.targetColumns = (Array.isArray(config.to) ? config.to : [config.to]).map((it) => {\n\t\t\tthis.throughTable ??= it._.through ? tables[it._.through._.tableName] : void 0;\n\t\t\tthis.targetColumnTableNames.push(it._.tableName);\n\t\t\treturn it._.column;\n\t\t});\n\t\tif (this.throughTable) this.through = {\n\t\t\tsource: (Array.isArray(config?.from) ? config.from : config?.from ? [config.from] : []).map((c) => c._.through),\n\t\t\ttarget: (Array.isArray(config?.to) ? config.to : config?.to ? [config.to] : []).map((c) => c._.through)\n\t\t};\n\t}\n};\nvar AggregatedField = class {\n\tstatic [entityKind] = \"AggregatedField\";\n\ttable;\n\tonTable(table) {\n\t\tthis.table = table;\n\t\treturn this;\n\t}\n};\nvar Count = class extends AggregatedField {\n\tstatic [entityKind] = \"AggregatedFieldCount\";\n\tquery;\n\tgetSQL() {\n\t\tif (!this.query) {\n\t\t\tif (!this.table) throw new Error(\"Table must be set before building aggregate field\");\n\t\t\tthis.query = sql`select count(*) as ${sql.identifier(\"r\")} from ${getTableAsAliasSQL(this.table)}`.mapWith(Number);\n\t\t}\n\t\treturn this.query;\n\t}\n};\nconst operators = {\n\tand,\n\tbetween,\n\teq,\n\texists,\n\tgt,\n\tgte,\n\tilike,\n\tinArray,\n\tarrayContains,\n\tarrayContained,\n\tarrayOverlaps,\n\tisNull,\n\tisNotNull,\n\tlike,\n\tlt,\n\tlte,\n\tne,\n\tnot,\n\tnotBetween,\n\tnotExists,\n\tnotLike,\n\tnotIlike,\n\tnotInArray,\n\tor,\n\tsql\n};\nconst orderByOperators = {\n\tsql,\n\tasc,\n\tdesc\n};\nfunction getOrderByOperators() {\n\treturn orderByOperators;\n}\nfunction mapRelationalRow(rows, isOne, buildQueryResultSelection, parseJson = false, parseJsonIfString = false, useJsonMappers = true) {\n\tconst maxIdx = isOne ? 1 : rows.length;\n\tconst decoders = buildQueryResultSelection.map(({ field, codec, arrayDimensions }) => {\n\t\tlet decoder;\n\t\tif (is(field, Column)) decoder = field;\n\t\telse if (is(field, SQL)) decoder = field.decoder;\n\t\telse if (is(field, SQL.Aliased)) decoder = field.sql.decoder;\n\t\telse if (is(field, Table) || is(field, View)) decoder = noopDecoder;\n\t\telse decoder = field.getSQL().decoder;\n\t\tif (useJsonMappers && field.mapFromJsonValue) return (v) => field.mapFromJsonValue(v);\n\t\treturn decoder.mapFromDriverValue.isNoop ? codec ? (value) => codec(value, arrayDimensions) : void 0 : codec ? (value) => decoder.mapFromDriverValue(codec(value, arrayDimensions)) : (value) => decoder.mapFromDriverValue(value);\n\t});\n\tfor (let i = 0; i < maxIdx; ++i) {\n\t\tconst row = isOne ? rows : rows[i];\n\t\tfor (let selectionItemIdx = 0; selectionItemIdx < buildQueryResultSelection.length; ++selectionItemIdx) {\n\t\t\tconst selectionItem = buildQueryResultSelection[selectionItemIdx];\n\t\t\tif (selectionItem.selection) {\n\t\t\t\tif (row[selectionItem.key] === null) continue;\n\t\t\t\tif (parseJson) {\n\t\t\t\t\trow[selectionItem.key] = JSON.parse(row[selectionItem.key]);\n\t\t\t\t\tif (row[selectionItem.key] === null) continue;\n\t\t\t\t} else if (parseJsonIfString && typeof row[selectionItem.key] === \"string\") row[selectionItem.key] = JSON.parse(row[selectionItem.key]);\n\t\t\t\tif (selectionItem.isArray) {\n\t\t\t\t\tmapRelationalRow(row[selectionItem.key], false, selectionItem.selection, false, parseJsonIfString);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tmapRelationalRow(row[selectionItem.key], true, selectionItem.selection, false, parseJsonIfString);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (row[selectionItem.key] === null) continue;\n\t\t\tconst decoder = decoders[selectionItemIdx];\n\t\t\tif (!decoder) continue;\n\t\t\trow[selectionItem.key] = decoder(row[selectionItem.key]);\n\t\t}\n\t}\n\treturn rows;\n}\nfunction mapRelationalRowFromArrays(rows, isOne, buildQueryResultSelection, parseJson = false, parseJsonIfString = false) {\n\tconst maxIdx = isOne ? 1 : rows.length;\n\tconst decoders = buildQueryResultSelection.map(({ field, codec, arrayDimensions }) => {\n\t\tlet decoder;\n\t\tif (is(field, Column)) decoder = field;\n\t\telse if (is(field, SQL)) decoder = field.decoder;\n\t\telse if (is(field, SQL.Aliased)) decoder = field.sql.decoder;\n\t\telse if (is(field, Table) || is(field, View)) decoder = noopDecoder;\n\t\telse decoder = field.getSQL().decoder;\n\t\treturn decoder.mapFromDriverValue.isNoop ? codec ? (value) => codec(value, arrayDimensions) : void 0 : codec ? (value) => decoder.mapFromDriverValue(codec(value, arrayDimensions)) : (value) => decoder.mapFromDriverValue(value);\n\t});\n\tconst results = Array.from({ length: maxIdx });\n\tfor (let i = 0; i < maxIdx; ++i) {\n\t\tconst row = isOne ? rows : rows[i];\n\t\tconst result = {};\n\t\tfor (let selectionItemIdx = 0; selectionItemIdx < buildQueryResultSelection.length; ++selectionItemIdx) {\n\t\t\tconst selectionItem = buildQueryResultSelection[selectionItemIdx];\n\t\t\tlet value = row[selectionItemIdx];\n\t\t\tif (selectionItem.selection) {\n\t\t\t\tif (value === null) {\n\t\t\t\t\tresult[selectionItem.key] = null;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (parseJson) {\n\t\t\t\t\tvalue = JSON.parse(value);\n\t\t\t\t\tif (value === null) {\n\t\t\t\t\t\tresult[selectionItem.key] = null;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (parseJsonIfString && typeof value === \"string\") value = JSON.parse(value);\n\t\t\t\tif (selectionItem.isArray) mapRelationalRow(value, false, selectionItem.selection, false, parseJsonIfString);\n\t\t\t\telse mapRelationalRow(value, true, selectionItem.selection, false, parseJsonIfString);\n\t\t\t\tresult[selectionItem.key] = value;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value === null) {\n\t\t\t\tresult[selectionItem.key] = null;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst decoder = decoders[selectionItemIdx];\n\t\t\tresult[selectionItem.key] = decoder ? decoder(value) : value;\n\t\t}\n\t\tresults[i] = result;\n\t}\n\treturn isOne ? results[0] : results;\n}\nfunction makeDefaultRqbMapper({ selection, isFirst, parseJson, parseJsonIfString, rootJsonMappers, arrayModeRoot }) {\n\treturn ((rows) => {\n\t\tif (isFirst && !rows[0]) return rows[0];\n\t\treturn arrayModeRoot ? mapRelationalRowFromArrays(isFirst ? rows[0] : rows, isFirst, selection, parseJson, parseJsonIfString) : mapRelationalRow(isFirst ? rows[0] : rows, isFirst, selection, parseJson, parseJsonIfString, rootJsonMappers);\n\t});\n}\nfunction makeJitRqbMapperInner(selection, rowExpr, selectionVar, parseJson, parseJsonIfString, useJsonMappers, preFn, counter, accessByIdx) {\n\tconst bodyStmts = [];\n\tconst literalEntries = [];\n\tlet hasWork = false;\n\tconst fieldVars = selection.map(() => `c${counter.n++}`);\n\tconst destructurePieces = selection.map((item, idx) => accessByIdx ? fieldVars[idx] : `${JSON.stringify(item.key)}: ${fieldVars[idx]}`);\n\tbodyStmts.push(accessByIdx ? `let [ ${destructurePieces.join(\", \")} ] = ${rowExpr};` : `let { ${destructurePieces.join(\", \")} } = ${rowExpr};`);\n\tfor (const [idx, { field, key, codec, isArray, selection: innerSelection, arrayDimensions }] of selection.entries()) {\n\t\tconst sel = `${selectionVar}[${idx}]`;\n\t\tconst keyStr = JSON.stringify(key);\n\t\tconst slot = fieldVars[idx];\n\t\tif (innerSelection) {\n\t\t\tif (parseJson) {\n\t\t\t\tbodyStmts.push(`if (${slot} !== null) ${slot} = JSON.parse(${slot});`);\n\t\t\t\thasWork = true;\n\t\t\t} else if (parseJsonIfString) {\n\t\t\t\tbodyStmts.push(`if (typeof ${slot} === 'string') ${slot} = JSON.parse(${slot});`);\n\t\t\t\thasWork = true;\n\t\t\t}\n\t\t\tconst nestedSelVar = `s${counter.n++}`;\n\t\t\tconst savedPreFnLen = preFn.length;\n\t\t\tpreFn.push(`const { selection: ${nestedSelVar} } = ${sel};`);\n\t\t\tif (isArray) {\n\t\t\t\tconst j = `j${counter.n++}`;\n\t\t\t\tconst inner = makeJitRqbMapperInner(innerSelection, `${slot}[${j}]`, nestedSelVar, false, parseJsonIfString, true, preFn, counter, false);\n\t\t\t\tif (inner.hasWork) {\n\t\t\t\t\thasWork = true;\n\t\t\t\t\tbodyStmts.push(`if (${slot} !== null) {`);\n\t\t\t\t\tbodyStmts.push(`\\tfor (let ${j} = 0; ${j} < ${slot}.length; ++${j}) {`);\n\t\t\t\t\tfor (const s of inner.bodyStmts) bodyStmts.push(`\\t\\t${s}`);\n\t\t\t\t\tbodyStmts.push(`\\t\\t${slot}[${j}] = ${inner.literal};`);\n\t\t\t\t\tbodyStmts.push(`\\t}`);\n\t\t\t\t\tbodyStmts.push(`}`);\n\t\t\t\t} else preFn.splice(savedPreFnLen, 1);\n\t\t\t} else {\n\t\t\t\tconst inner = makeJitRqbMapperInner(innerSelection, slot, nestedSelVar, false, parseJsonIfString, true, preFn, counter, false);\n\t\t\t\tif (inner.hasWork) {\n\t\t\t\t\thasWork = true;\n\t\t\t\t\tbodyStmts.push(`if (${slot} !== null) {`);\n\t\t\t\t\tfor (const s of inner.bodyStmts) bodyStmts.push(`\\t${s}`);\n\t\t\t\t\tbodyStmts.push(`\\t${slot} = ${inner.literal};`);\n\t\t\t\t\tbodyStmts.push(`}`);\n\t\t\t\t} else preFn.splice(savedPreFnLen, 1);\n\t\t\t}\n\t\t\tliteralEntries.push(`${keyStr}: ${slot}`);\n\t\t\tcontinue;\n\t\t}\n\t\tlet decoderExpr = \"\";\n\t\tlet destructure = \"\";\n\t\tlet bypassCodecs = false;\n\t\tif (is(field, Column)) {\n\t\t\tif (useJsonMappers && field.mapFromJsonValue) {\n\t\t\t\tbypassCodecs = true;\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: dec${id}`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromJsonValue`;\n\t\t\t} else if (!field.mapFromDriverValue.isNoop) {\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: dec${id}`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromDriverValue`;\n\t\t\t}\n\t\t} else if (is(field, SQL)) {\n\t\t\tif (useJsonMappers && field.decoder.mapFromJsonValue) {\n\t\t\t\tbypassCodecs = true;\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: { decoder: dec${id} }`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromJsonValue`;\n\t\t\t} else if (!field.decoder.mapFromDriverValue.isNoop) {\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: { decoder: dec${id} }`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromDriverValue`;\n\t\t\t}\n\t\t} else if (is(field, SQL.Aliased)) {\n\t\t\tif (useJsonMappers && field.sql.decoder.mapFromJsonValue) {\n\t\t\t\tbypassCodecs = true;\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: { sql: { decoder: dec${id} } }`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromJsonValue`;\n\t\t\t} else if (!field.sql.decoder.mapFromDriverValue.isNoop) {\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tdestructure = `field: { sql: { decoder: dec${id} } }`;\n\t\t\t\tdecoderExpr = `dec${id}.mapFromDriverValue`;\n\t\t\t}\n\t\t} else if (is(field, Table) || is(field, View)) {} else {\n\t\t\tconst sqlExpr = field.getSQL();\n\t\t\tif (useJsonMappers && sqlExpr.decoder.mapFromJsonValue) {\n\t\t\t\tbypassCodecs = true;\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tpreFn.push(`const dec${id} = ${sel}.field.getSQL().decoder;`);\n\t\t\t\tdecoderExpr = `dec${id}.mapFromJsonValue`;\n\t\t\t} else if (!sqlExpr.decoder.mapFromDriverValue.isNoop) {\n\t\t\t\tconst id = counter.n++;\n\t\t\t\tpreFn.push(`const dec${id} = ${sel}.field.getSQL().decoder;`);\n\t\t\t\tdecoderExpr = `dec${id}.mapFromDriverValue`;\n\t\t\t}\n\t\t}\n\t\tlet codecVar = \"\";\n\t\tif (!bypassCodecs && codec) codecVar = `codec${counter.n++}`;\n\t\tif (destructure || codecVar) {\n\t\t\tconst parts = [];\n\t\t\tif (destructure) parts.push(destructure);\n\t\t\tif (codecVar) parts.push(`codec: ${codecVar}`);\n\t\t\tpreFn.push(`const { ${parts.join(\", \")} } = ${sel};`);\n\t\t}\n\t\tif (decoderExpr || codecVar) {\n\t\t\thasWork = true;\n\t\t\tlet decoded = slot;\n\t\t\tif (codecVar) decoded = `${codecVar}(${decoded}, ${arrayDimensions})`;\n\t\t\tif (decoderExpr) decoded = `${decoderExpr}(${decoded})`;\n\t\t\tliteralEntries.push(`${keyStr}: ${slot} === null ? null : ${decoded}`);\n\t\t} else literalEntries.push(`${keyStr}: ${slot}`);\n\t}\n\treturn {\n\t\tbodyStmts,\n\t\tliteral: `{ ${literalEntries.join(\", \")} }`,\n\t\thasWork\n\t};\n}\nfunction makeJitRqbMapper({ selection, isFirst, parseJson, parseJsonIfString, rootJsonMappers, arrayModeRoot }) {\n\tconst preFn = [];\n\tconst inner = makeJitRqbMapperInner(selection, \"row\", \"selection\", parseJson, parseJsonIfString, arrayModeRoot ? false : rootJsonMappers, preFn, { n: 0 }, !!arrayModeRoot);\n\tconst lines = [];\n\tlines.push(`\\t\"use strict\";\n\tconst { selection } = this;`);\n\tfor (const p of preFn) lines.push(`\\t${p}`);\n\tif (arrayModeRoot) if (isFirst) {\n\t\tlines.push(`\\tconst row = rows[0];`);\n\t\tlines.push(`\\tif (!row) return undefined;`);\n\t\tfor (const s of inner.bodyStmts) lines.push(`\\t${s}`);\n\t\tlines.push(`\\treturn ${inner.literal};`);\n\t} else {\n\t\tlines.push(`\\tconst { length } = rows;`);\n\t\tlines.push(`\\tconst mapped = Array.from({ length });`);\n\t\tlines.push(`\\tfor (let i = 0; i < length; ++i) {`);\n\t\tlines.push(`\\t\\tconst row = rows[i];`);\n\t\tfor (const s of inner.bodyStmts) lines.push(`\\t\\t${s}`);\n\t\tlines.push(`\\t\\tmapped[i] = ${inner.literal};`);\n\t\tlines.push(`\\t}`);\n\t\tlines.push(`\\treturn mapped;`);\n\t}\n\telse if (!inner.hasWork) lines.push(isFirst ? `\\treturn rows[0];` : `\\treturn rows;`);\n\telse if (isFirst) {\n\t\tlines.push(`\\tconst row = rows[0];`);\n\t\tlines.push(`\\tif (!row) return undefined;`);\n\t\tfor (const s of inner.bodyStmts) lines.push(`\\t${s}`);\n\t\tlines.push(`\\trows[0] = ${inner.literal};`);\n\t\tlines.push(`\\treturn rows[0];`);\n\t} else {\n\t\tlines.push(`\\tfor (let i = 0; i < rows.length; ++i) {`);\n\t\tlines.push(`\\t\\tconst row = rows[i];`);\n\t\tfor (const s of inner.bodyStmts) lines.push(`\\t\\t${s}`);\n\t\tlines.push(`\\t\\trows[i] = ${inner.literal};`);\n\t\tlines.push(`\\t}`);\n\t\tlines.push(`\\treturn rows;`);\n\t}\n\tlines.push(\"\t//# sourceURL=drizzle:jit-relational-query-mapper\");\n\tconst compiled = lines.join(\"\\n\");\n\treturn Object.assign(new FnConstructor(\"rows\", compiled).bind({ selection }), { body: `function jitRqbMapper (rows) {\\n${compiled}\\n}` });\n}\nvar RelationsBuilderTable = class {\n\tstatic [entityKind] = \"RelationsBuilderTable\";\n\t_;\n\tconstructor(table, name) {\n\t\tthis._ = {\n\t\t\tname,\n\t\t\ttable\n\t\t};\n\t}\n};\nvar RelationsBuilderColumn = class {\n\tstatic [entityKind] = \"RelationsBuilderColumn\";\n\t_;\n\tconstructor(column, tableName, key) {\n\t\tthis._ = {\n\t\t\ttableName,\n\t\t\tcolumn,\n\t\t\tkey\n\t\t};\n\t}\n\tthrough(column) {\n\t\treturn new RelationsBuilderJunctionColumn(this._.column, this._.tableName, this._.key, column);\n\t}\n};\nvar RelationsBuilderJunctionColumn = class {\n\tstatic [entityKind] = \"RelationsBuilderColumn\";\n\t_;\n\tconstructor(column, tableName, key, through) {\n\t\tthis._ = {\n\t\t\ttableName,\n\t\t\tcolumn,\n\t\t\tthrough,\n\t\t\tkey\n\t\t};\n\t}\n};\nvar RelationsHelperStatic = class {\n\tstatic [entityKind] = \"RelationsHelperStatic\";\n\t_;\n\tconstructor(tables) {\n\t\tthis._ = { tables };\n\t\tconst one = {};\n\t\tconst many = {};\n\t\tfor (const [tableName, table] of Object.entries(tables)) {\n\t\t\tone[tableName] = (config) => {\n\t\t\t\treturn new One(tables, table, tableName, config);\n\t\t\t};\n\t\t\tmany[tableName] = (config) => {\n\t\t\t\treturn new Many(tables, table, tableName, config);\n\t\t\t};\n\t\t}\n\t\tthis.one = one;\n\t\tthis.many = many;\n\t}\n\tone;\n\tmany;\n\t/** @internal - to be reworked */\n\taggs = { count() {\n\t\treturn new Count();\n\t} };\n};\nfunction createRelationsHelper(tables) {\n\tconst helperStatic = new RelationsHelperStatic(tables);\n\tconst relationsTables = Object.entries(tables).reduce((acc, [tKey, value]) => {\n\t\tconst rTable = new RelationsBuilderTable(value, tKey);\n\t\tconst columns = Object.entries(value[TableColumns]).reduce((acc, [cKey, column]) => {\n\t\t\tacc[cKey] = new RelationsBuilderColumn(column, tKey, cKey);\n\t\t\treturn acc;\n\t\t}, {});\n\t\tacc[tKey] = Object.assign(rTable, columns);\n\t\treturn acc;\n\t}, {});\n\treturn Object.assign(helperStatic, relationsTables);\n}\nfunction extractTablesFromSchema(schema) {\n\treturn Object.fromEntries(Object.entries(schema).filter(([_, e]) => is(e, Table) || is(e, View)));\n}\nfunction defineRelations(schema, relations) {\n\tconst tables = extractTablesFromSchema(schema);\n\treturn buildRelations(tables, relations ? relations(createRelationsHelper(tables)) : {});\n}\nfunction defineRelationsPart(schema, relations) {\n\tconst tables = extractTablesFromSchema(schema);\n\treturn buildRelationsParts(tables, relations ? relations(createRelationsHelper(tables)) : Object.fromEntries(Object.keys(tables).map((k) => [k, {}])));\n}\n/** @internal */\nfunction fieldSelectionToSQL(table, target) {\n\tconst field = table[TableColumns][target];\n\treturn field ? is(field, Column) ? field : is(field, SQL.Aliased) ? sql`${table}.${sql.identifier(field.fieldAlias)}` : sql`${table}.${sql.identifier(target)}` : sql`${table}.${sql.identifier(target)}`;\n}\nfunction relationsFieldFilterToSQL(column, filter) {\n\tif (typeof filter !== \"object\" || is(filter, Placeholder)) return eq(column, filter);\n\tconst entries = Object.entries(filter);\n\tif (!entries.length) return void 0;\n\tconst parts = [];\n\tfor (const [target, value] of entries) {\n\t\tif (value === void 0) continue;\n\t\tswitch (target) {\n\t\t\tcase \"NOT\": {\n\t\t\t\tconst res = relationsFieldFilterToSQL(column, value);\n\t\t\t\tif (!res) continue;\n\t\t\t\tparts.push(not(res));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcase \"OR\":\n\t\t\t\tif (!value.length) continue;\n\t\t\t\tparts.push(or(...value.map((subFilter) => relationsFieldFilterToSQL(column, subFilter))));\n\t\t\t\tcontinue;\n\t\t\tcase \"AND\":\n\t\t\t\tif (!value.length) continue;\n\t\t\t\tparts.push(and(...value.map((subFilter) => relationsFieldFilterToSQL(column, subFilter))));\n\t\t\t\tcontinue;\n\t\t\tcase \"isNotNull\":\n\t\t\tcase \"isNull\":\n\t\t\t\tif (!value) continue;\n\t\t\t\tparts.push(operators[target](column));\n\t\t\t\tcontinue;\n\t\t\tcase \"in\":\n\t\t\t\tparts.push(operators.inArray(column, value));\n\t\t\t\tcontinue;\n\t\t\tcase \"notIn\":\n\t\t\t\tparts.push(operators.notInArray(column, value));\n\t\t\t\tcontinue;\n\t\t\tdefault:\n\t\t\t\tparts.push(operators[target](column, value));\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\tif (!parts.length) return void 0;\n\treturn and(...parts);\n}\nfunction relationsFilterToSQL(table, filter, tableRelations = {}, tablesRelations = {}, depth = 0) {\n\tconst entries = Object.entries(filter);\n\tif (!entries.length) return void 0;\n\tconst parts = [];\n\tfor (const [target, value] of entries) {\n\t\tif (value === void 0) continue;\n\t\tswitch (target) {\n\t\t\tcase \"RAW\": {\n\t\t\t\tconst processed = typeof value === \"function\" ? value(table, operators) : value.getSQL();\n\t\t\t\tparts.push(processed);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcase \"OR\":\n\t\t\t\tif (!value?.length) continue;\n\t\t\t\tparts.push(or(...value.map((subFilter) => relationsFilterToSQL(table, subFilter, tableRelations, tablesRelations, depth))));\n\t\t\t\tcontinue;\n\t\t\tcase \"AND\":\n\t\t\t\tif (!value?.length) continue;\n\t\t\t\tparts.push(and(...value.map((subFilter) => relationsFilterToSQL(table, subFilter, tableRelations, tablesRelations, depth))));\n\t\t\t\tcontinue;\n\t\t\tcase \"NOT\": {\n\t\t\t\tif (value === void 0) continue;\n\t\t\t\tconst built = relationsFilterToSQL(table, value, tableRelations, tablesRelations, depth);\n\t\t\t\tif (!built) continue;\n\t\t\t\tparts.push(not(built));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tif (table[TableColumns][target]) {\n\t\t\t\t\tconst colFilter = relationsFieldFilterToSQL(fieldSelectionToSQL(table, target), value);\n\t\t\t\t\tif (colFilter) parts.push(colFilter);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst relation = tableRelations[target];\n\t\t\t\tif (!relation) throw new DrizzleError({ message: `Unknown relational filter field: \"${target}\"` });\n\t\t\t\tconst targetTable = aliasedTable(relation.targetTable, `f${depth}`);\n\t\t\t\tconst throughTable = relation.throughTable ? aliasedTable(relation.throughTable, `ft${depth}`) : void 0;\n\t\t\t\tconst targetConfig = tablesRelations[relation.targetTableName];\n\t\t\t\tconst { filter: relationFilter, joinCondition } = relationToSQL(relation, table, targetTable, throughTable);\n\t\t\t\tconst filter = and(relationFilter, typeof value === \"boolean\" ? void 0 : relationsFilterToSQL(targetTable, value, targetConfig.relations, tablesRelations, depth + 1));\n\t\t\t\tconst subquery = throughTable ? sql`(select * from ${getTableAsAliasSQL(targetTable)} inner join ${getTableAsAliasSQL(throughTable)} on ${joinCondition}${sql` where ${filter}`.if(filter)} limit 1)` : sql`(select * from ${getTableAsAliasSQL(targetTable)}${sql` where ${filter}`.if(filter)} limit 1)`;\n\t\t\t\tif (filter) parts.push((value ? exists : notExists)(subquery));\n\t\t\t}\n\t\t}\n\t}\n\treturn and(...parts);\n}\nfunction relationsOrderToSQL(table, orders) {\n\tif (typeof orders === \"function\") {\n\t\tconst data = orders(table, orderByOperators);\n\t\treturn is(data, SQL) ? data : Array.isArray(data) ? data.length ? sql.join(data.map((o) => is(o, SQL) ? o : asc(o)), sql`, `) : void 0 : is(data, Column) ? asc(data) : void 0;\n\t}\n\tconst entries = Object.entries(orders).filter(([_, value]) => value);\n\tif (!entries.length) return void 0;\n\treturn sql.join(entries.map(([target, value]) => (value === \"asc\" ? asc : desc)(fieldSelectionToSQL(table, target))), sql`, `);\n}\nfunction relationExtrasToSQL(table, extras, codecs, inJson) {\n\tconst subqueries = [];\n\tconst selection = [];\n\tfor (const [key, field] of Object.entries(extras)) {\n\t\tif (!field) continue;\n\t\tconst subq = (typeof field === \"function\" ? field(table, { sql: operators.sql }) : field).getSQL();\n\t\tconst column = codecs ? getColumnFromDecoder(subq) : void 0;\n\t\tconst query = column && (!inJson || !column.jsonSelectIdentifier) ? sql`${codecs.apply(column, inJson ? \"castInJson\" : \"cast\", sql`(${subq})`)} as ${sql.identifier(key)}` : sql`(${subq}) as ${sql.identifier(key)}`;\n\t\tquery.decoder = subq.decoder;\n\t\tsubqueries.push(query);\n\t\tselection.push(column && (!inJson || !column.mapFromJsonValue) ? {\n\t\t\tkey,\n\t\t\tfield: query,\n\t\t\tcodec: codecs.get(column, inJson ? \"normalizeInJson\" : \"normalize\"),\n\t\t\tarrayDimensions: column.dimensions\n\t\t} : {\n\t\t\tkey,\n\t\t\tfield: query\n\t\t});\n\t}\n\treturn {\n\t\tsql: subqueries.length ? sql.join(subqueries, sql`, `) : void 0,\n\t\tselection\n\t};\n}\nfunction relationToSQL(relation, sourceTable, targetTable, throughTable) {\n\tif (relation.through) {\n\t\tconst outerColumnWhere = relation.sourceColumns.map((s, i) => {\n\t\t\tconst t = relation.through.source[i];\n\t\t\treturn eq(sql`${sourceTable}.${sql.identifier(s.name)}`, sql`${throughTable}.${sql.identifier(is(t._.column, Column) ? t._.column.name : t._.key)}`);\n\t\t});\n\t\tconst innerColumnWhere = relation.targetColumns.map((s, i) => {\n\t\t\tconst t = relation.through.target[i];\n\t\t\treturn eq(sql`${throughTable}.${sql.identifier(is(t._.column, Column) ? t._.column.name : t._.key)}`, sql`${targetTable}.${sql.identifier(s.name)}`);\n\t\t});\n\t\treturn {\n\t\t\tfilter: and(relation.where ? relationsFilterToSQL(relation.isReversed ? sourceTable : targetTable, relation.where) : void 0, ...outerColumnWhere),\n\t\t\tjoinCondition: and(...innerColumnWhere)\n\t\t};\n\t}\n\treturn { filter: and(...relation.sourceColumns.map((s, i) => {\n\t\tconst t = relation.targetColumns[i];\n\t\treturn eq(sql`${sourceTable}.${sql.identifier(s.name)}`, sql`${targetTable}.${sql.identifier(t.name)}`);\n\t}), relation.where ? relationsFilterToSQL(relation.isReversed ? sourceTable : targetTable, relation.where) : void 0) };\n}\nfunction getTableAsAliasSQL(table) {\n\treturn sql`${table[IsAlias] ? sql`${sql`${sql.identifier(table[TableSchema] ?? \"\")}.`.if(table[TableSchema])}${sql.identifier(table[OriginalName])} as ${table}` : table}`;\n}\n\n//#endregion\nexport { AggregatedField, Count, Many, One, Relation, RelationsBuilderColumn, RelationsBuilderJunctionColumn, RelationsBuilderTable, RelationsHelperStatic, buildRelations, buildRelationsParts, createRelationsHelper, defineRelations, defineRelationsPart, extractTablesFromSchema, fieldSelectionToSQL, getOrderByOperators, getTableAsAliasSQL, makeDefaultRqbMapper, makeJitRqbMapper, mapRelationalRow, mapRelationalRowFromArrays, operators, orderByOperators, processRelations, relationExtrasToSQL, relationToSQL, relationsFilterToSQL, relationsOrderToSQL };\n//# sourceMappingURL=relations.js.map","import { entityKind } from \"./entity.js\";\n\n//#region src/query-promise.ts\nvar QueryPromise = class {\n\tstatic [entityKind] = \"QueryPromise\";\n\t[Symbol.toStringTag] = \"QueryPromise\";\n\tcatch(onRejected) {\n\t\treturn this.then(void 0, onRejected);\n\t}\n\tfinally(onFinally) {\n\t\treturn this.then((value) => {\n\t\t\tonFinally?.();\n\t\t\treturn value;\n\t\t}, (reason) => {\n\t\t\tonFinally?.();\n\t\t\tthrow reason;\n\t\t});\n\t}\n\tthen(onFulfilled, onRejected) {\n\t\treturn this.execute().then(onFulfilled, onRejected);\n\t}\n};\n\n//#endregion\nexport { QueryPromise };\n//# sourceMappingURL=query-promise.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"readFile-CxwXhymG.js","sources":["../../../.svelte-kit/adapter-node/chunks/readFile.js"],"sourcesContent":["import { sep } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { readFile } from \"node:fs/promises\";\n//#region ../../node_modules/.pnpm/@smithy+core@3.24.3/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/getHomeDir.js\nvar homeDirCache = {};\nvar getHomeDirCacheKey = () => {\n\tif (process && process.geteuid) return `${process.geteuid()}`;\n\treturn \"DEFAULT\";\n};\nvar getHomeDir = () => {\n\tconst { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${sep}` } = process.env;\n\tif (HOME) return HOME;\n\tif (USERPROFILE) return USERPROFILE;\n\tif (HOMEPATH) return `${HOMEDRIVE}${HOMEPATH}`;\n\tconst homeDirCacheKey = getHomeDirCacheKey();\n\tif (!homeDirCache[homeDirCacheKey]) homeDirCache[homeDirCacheKey] = homedir();\n\treturn homeDirCache[homeDirCacheKey];\n};\n//#endregion\n//#region ../../node_modules/.pnpm/@smithy+core@3.24.3/node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/readFile.js\nvar filePromises = {};\nvar fileIntercept = {};\nvar readFile$1 = (path, options) => {\n\tif (fileIntercept[path] !== void 0) return fileIntercept[path];\n\tif (!filePromises[path] || options?.ignoreCache) filePromises[path] = readFile(path, \"utf8\");\n\treturn filePromises[path];\n};\n//#endregion\nexport { readFile$1 as n, getHomeDir as r, fileIntercept as t };\n"],"names":[],"mappings":";;;;AAGA;AACA,IAAI,YAAY,GAAG,EAAE;AACrB,IAAI,kBAAkB,GAAG,MAAM;AAC/B,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9D,CAAC,OAAO,SAAS;AACjB,CAAC;AACE,IAAC,UAAU,GAAG,MAAM;AACvB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG;AAC5E,CAAC,IAAI,IAAI,EAAE,OAAO,IAAI;AACtB,CAAC,IAAI,WAAW,EAAE,OAAO,WAAW;AACpC,CAAC,IAAI,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC,MAAM,eAAe,GAAG,kBAAkB,EAAE;AAC7C,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,OAAO,EAAE;AAC9E,CAAC,OAAO,YAAY,CAAC,eAAe,CAAC;AACrC;AACA;AACA;AACA,IAAI,YAAY,GAAG,EAAE;AAClB,IAAC,aAAa,GAAG;AACjB,IAAC,UAAU,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AACpC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,OAAO,aAAa,CAAC,IAAI,CAAC;AAC/D,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7F,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC;AAC1B;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry-CL2gN1zd.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry2-DoPYJnUW.js","sources":["../../../.svelte-kit/adapter-node/chunks/registry2.js"],"sourcesContent":["import { t as getLogger } from \"./logger.js\";\n//#region ../core/dist/hooks/registry.js\n/**\n* Hook Registry System - Phase 2C of T5237\n*\n* Central registry for managing hook handlers with priority-based execution,\n* async dispatch, and best-effort error handling. Integrates with CAAMP 1.9.1\n* canonical event definitions while providing CLEO's execution engine.\n*\n* @module @cleocode/cleo/hooks/registry\n*/\n/** Map from old `on`-prefix event names to new canonical names. Used for backward compat. */\nvar LEGACY_EVENT_MAP = {\n\tonSessionStart: \"SessionStart\",\n\tonSessionEnd: \"SessionEnd\",\n\tonToolStart: \"PreToolUse\",\n\tonToolComplete: \"PostToolUse\",\n\tonFileChange: \"Notification\",\n\tonError: \"PostToolUseFailure\",\n\tonPromptSubmit: \"PromptSubmit\",\n\tonResponseComplete: \"ResponseComplete\"\n};\n/**\n* Default configuration for the hook system.\n* All events are enabled by default.\n*/\nvar DEFAULT_HOOK_CONFIG = {\n\tenabled: true,\n\tevents: {\n\t\tSessionStart: true,\n\t\tSessionEnd: true,\n\t\tPromptSubmit: true,\n\t\tResponseComplete: true,\n\t\tPreToolUse: true,\n\t\tPostToolUse: true,\n\t\tPostToolUseFailure: true,\n\t\tPermissionRequest: true,\n\t\tSubagentStart: true,\n\t\tSubagentStop: true,\n\t\tPreModel: true,\n\t\tPostModel: true,\n\t\tPreCompact: true,\n\t\tPostCompact: true,\n\t\tNotification: true,\n\t\tConfigChange: true,\n\t\tonWorkAvailable: true,\n\t\tonAgentSpawn: true,\n\t\tonAgentComplete: true,\n\t\tonCascadeStart: true,\n\t\tonPatrol: true\n\t}\n};\n/**\n* Central registry for hook handlers.\n*\n* Manages registration, priority-based ordering, and async dispatch\n* of hook handlers. Provides best-effort execution where errors in\n* one handler do not block others.\n*\n* Backward compatibility: handlers registered with legacy `on`-prefix\n* event names (e.g. `onSessionStart`) are automatically remapped to their\n* canonical equivalents (e.g. `SessionStart`) with a deprecation warning.\n*/\nvar HookRegistry = class {\n\thandlers = /* @__PURE__ */ new Map();\n\tconfig = DEFAULT_HOOK_CONFIG;\n\t/**\n\t* Resolve a potentially-legacy event name to its canonical equivalent.\n\t*\n\t* If the event name matches a known legacy `on`-prefix name, it is\n\t* remapped and a deprecation warning is logged. Unknown names pass through\n\t* unchanged so callers using the new canonical names are unaffected.\n\t*/\n\tresolveEvent(event) {\n\t\tconst canonical = LEGACY_EVENT_MAP[event];\n\t\tif (canonical) {\n\t\t\tgetLogger(\"hooks\").warn({\n\t\t\t\tlegacyEvent: event,\n\t\t\t\tcanonicalEvent: canonical\n\t\t\t}, `[DEPRECATED] Hook event '${event}' has been renamed to '${canonical}'. Update your handler registration.`);\n\t\t\treturn canonical;\n\t\t}\n\t\treturn event;\n\t}\n\t/**\n\t* Register a hook handler for a specific event.\n\t*\n\t* Handlers are sorted by priority (highest first) and executed\n\t* in parallel when the event is dispatched.\n\t*\n\t* Backward compatibility: legacy `on`-prefix event names are automatically\n\t* remapped to their canonical equivalents.\n\t*\n\t* @param registration - The hook registration containing event, handler, priority, and ID\n\t* @returns A function to unregister the handler\n\t*\n\t* @example\n\t* ```typescript\n\t* const unregister = hooks.register({\n\t* id: 'my-handler',\n\t* event: 'SessionStart',\n\t* handler: async (root, payload) => { console.log('Session started'); },\n\t* priority: 100\n\t* });\n\t*\n\t* // Later: unregister()\n\t* ```\n\t*/\n\tregister(registration) {\n\t\tconst resolvedEvent = this.resolveEvent(registration.event);\n\t\tconst resolvedRegistration = {\n\t\t\t...registration,\n\t\t\tevent: resolvedEvent\n\t\t};\n\t\tconst list = this.handlers.get(resolvedEvent) || [];\n\t\tlist.push(resolvedRegistration);\n\t\tlist.sort((a, b) => b.priority - a.priority);\n\t\tthis.handlers.set(resolvedEvent, list);\n\t\treturn () => {\n\t\t\tconst handlers = this.handlers.get(resolvedEvent);\n\t\t\tif (handlers) {\n\t\t\t\tconst idx = handlers.findIndex((h) => h.id === registration.id);\n\t\t\t\tif (idx !== -1) handlers.splice(idx, 1);\n\t\t\t}\n\t\t};\n\t}\n\t/**\n\t* Dispatch an event to all registered handlers.\n\t*\n\t* Executes handlers in parallel using Promise.allSettled for best-effort\n\t* execution. Errors in individual handlers are logged but do not block\n\t* other handlers or propagate to the caller.\n\t*\n\t* Backward compatibility: legacy `on`-prefix event names are automatically\n\t* remapped to their canonical equivalents.\n\t*\n\t* @param event - The CAAMP canonical hook event to dispatch\n\t* @param projectRoot - The project root directory path\n\t* @param payload - The event payload (typed by event)\n\t* @returns Promise that resolves when all handlers have completed\n\t*\n\t* @example\n\t* ```typescript\n\t* await hooks.dispatch('SessionStart', '/project', {\n\t* timestamp: new Date().toISOString(),\n\t* sessionId: 'sess-123',\n\t* name: 'My Session',\n\t* scope: 'feature'\n\t* });\n\t* ```\n\t*/\n\tasync dispatch(event, projectRoot, payload) {\n\t\tif (!this.config.enabled) return;\n\t\tconst resolvedEvent = this.resolveEvent(event);\n\t\tif (!this.config.events[resolvedEvent]) return;\n\t\tconst handlers = this.handlers.get(resolvedEvent);\n\t\tif (!handlers || handlers.length === 0) return;\n\t\tawait Promise.allSettled(handlers.map(async (reg) => {\n\t\t\ttry {\n\t\t\t\tawait reg.handler(projectRoot, payload);\n\t\t\t} catch (error) {\n\t\t\t\tgetLogger(\"hooks\").warn({\n\t\t\t\t\terr: error,\n\t\t\t\t\thookId: reg.id,\n\t\t\t\t\tevent: resolvedEvent\n\t\t\t\t}, \"Hook handler failed\");\n\t\t\t}\n\t\t}));\n\t}\n\t/**\n\t* Check if a specific event is currently enabled.\n\t*\n\t* Both the global enabled flag and the per-event flag must be true.\n\t* Automatically resolves legacy `on`-prefix event names.\n\t*\n\t* @param event - The CAAMP hook event to check\n\t* @returns True if the event is enabled\n\t*/\n\tisEnabled(event) {\n\t\tconst resolvedEvent = this.resolveEvent(event);\n\t\treturn this.config.enabled && this.config.events[resolvedEvent];\n\t}\n\t/**\n\t* Update the hook system configuration.\n\t*\n\t* Merges the provided config with the existing config.\n\t*\n\t* @param config - Partial configuration to apply\n\t*\n\t* @example\n\t* ```typescript\n\t* hooks.setConfig({ enabled: false }); // Disable all hooks\n\t* hooks.setConfig({ events: { PostToolUseFailure: false } }); // Disable specific event\n\t* ```\n\t*/\n\tsetConfig(config) {\n\t\tthis.config = {\n\t\t\t...this.config,\n\t\t\t...config\n\t\t};\n\t}\n\t/**\n\t* Get the current hook configuration.\n\t*\n\t* @returns A copy of the current configuration\n\t*/\n\tgetConfig() {\n\t\treturn { ...this.config };\n\t}\n\t/**\n\t* List all registered handlers for a specific event.\n\t*\n\t* Returns handlers in priority order (highest first).\n\t* Automatically resolves legacy `on`-prefix event names.\n\t*\n\t* @param event - The CAAMP hook event\n\t* @returns Array of hook registrations\n\t*/\n\tlistHandlers(event) {\n\t\tconst resolvedEvent = this.resolveEvent(event);\n\t\treturn [...this.handlers.get(resolvedEvent) || []];\n\t}\n};\n/**\n* Singleton instance of the HookRegistry.\n*\n* Use this instance for all hook operations throughout the application.\n*/\nvar hooks = new HookRegistry();\n//#endregion\nexport { hooks as n, HookRegistry as t };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry3-BajEb-ll.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|