@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":"_page.svelte-ksTJUXce.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/brain/graph/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, n as attr_class, o as ensure_array_like, r as attr_style, s as head, u as stringify } from \"../../../../chunks/dev.js\";\nimport \"../../../../chunks/index-server.js\";\nimport { l as Button, o as EmptyState, u as Spinner } from \"../../../../chunks/ui.js\";\nimport { r as ALL_EDGE_KINDS } from \"../../../../chunks/no-face-up.js\";\nimport { t as ThreeBrainRenderer } from \"../../../../chunks/ThreeBrainRenderer.js\";\n//#region src/lib/components/BrainGraph.svelte\nfunction BrainGraph($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\t/**\n\t\t* Legacy node row shape — matches the SQL row returned by\n\t\t* `/api/memory/graph` (see `routes/api/memory/graph/+server.ts`).\n\t\t*/\n\t\t/** Legacy edge row shape — see {@link BrainNode}. */\n\t\t/** Props preserved verbatim from the pre-T990 component signature. */\n\t\t/** ISO date string — only show nodes created on or before this date. */\n\t\tlet { nodes, edges, filterDate = null } = $$props;\n\t\tconst VALID_EDGE_KINDS = new Set(ALL_EDGE_KINDS);\n\t\t/** Filter legacy nodes by the pre-T990 `created_at <= filterDate` rule. */\n\t\tconst visibleNodes = derived(() => filterDate ? nodes.filter((n) => n.created_at <= filterDate) : nodes);\n\t\t/** Project the legacy SQL shape onto the canonical {@link GraphNode}. */\n\t\tconst adaptedNodes = derived(() => visibleNodes().map((n) => ({\n\t\t\tid: n.id,\n\t\t\tsubstrate: \"brain\",\n\t\t\tkind: n.node_type,\n\t\t\tlabel: n.label,\n\t\t\tweight: n.quality_score,\n\t\t\tfreshness: .6,\n\t\t\tmeta: {\n\t\t\t\tcreatedAt: n.created_at,\n\t\t\t\traw: n.metadata_json\n\t\t\t}\n\t\t})));\n\t\t/** Project the legacy edge shape onto {@link GraphEdge}. */\n\t\tconst adaptedEdges = derived(() => {\n\t\t\tconst ids = new Set(adaptedNodes().map((n) => n.id));\n\t\t\treturn edges.filter((e) => ids.has(e.from_id) && ids.has(e.to_id)).map((e, i) => {\n\t\t\t\tconst kind = VALID_EDGE_KINDS.has(e.edge_type) ? e.edge_type : \"relates_to\";\n\t\t\t\treturn {\n\t\t\t\t\tid: `bg-${i}:${e.from_id}>${e.to_id}:${e.edge_type}`,\n\t\t\t\t\tsource: e.from_id,\n\t\t\t\t\ttarget: e.to_id,\n\t\t\t\t\tkind,\n\t\t\t\t\tweight: e.weight,\n\t\t\t\t\tdirectional: true\n\t\t\t\t};\n\t\t\t});\n\t\t});\n\t\tThreeBrainRenderer($$renderer, {\n\t\t\tnodes: adaptedNodes(),\n\t\t\tedges: adaptedEdges(),\n\t\t\theight: \"100%\"\n\t\t});\n\t});\n}\n//#endregion\n//#region src/routes/brain/graph/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet nodes = [];\n\t\tlet edges = [];\n\t\tlet totalNodes = 0;\n\t\tlet totalEdges = 0;\n\t\tlet loading = true;\n\t\tlet error = null;\n\t\tlet filterDate = null;\n\t\tlet useTimeSlider = false;\n\t\tconst NODE_TINT = {\n\t\t\tobservation: \"var(--info)\",\n\t\t\tdecision: \"var(--success)\",\n\t\t\tpattern: \"var(--accent)\",\n\t\t\tlearning: \"var(--warning)\",\n\t\t\ttask: \"var(--text-faint)\",\n\t\t\tsession: \"var(--text-faint)\",\n\t\t\tepic: \"var(--warning)\",\n\t\t\tsticky: \"var(--danger)\"\n\t\t};\n\t\tconst EDGE_TINT = {\n\t\t\tsupersedes: \"var(--danger)\",\n\t\t\tapplies_to: \"var(--info)\",\n\t\t\tderived_from: \"var(--success)\",\n\t\t\tpart_of: \"var(--accent)\",\n\t\t\tproduced_by: \"var(--warning)\",\n\t\t\treferences: \"var(--text-dim)\"\n\t\t};\n\t\tfunction nodeColor(type) {\n\t\t\treturn NODE_TINT[type] ?? \"var(--text-dim)\";\n\t\t}\n\t\tfunction edgeColor(type) {\n\t\t\treturn EDGE_TINT[type] ?? \"var(--text-faint)\";\n\t\t}\n\t\tasync function load() {\n\t\t\tloading = true;\n\t\t\terror = null;\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(\"/api/memory/graph\");\n\t\t\t\tif (!res.ok) throw new Error(`HTTP ${res.status}`);\n\t\t\t\tconst body = await res.json();\n\t\t\t\tnodes = body.nodes;\n\t\t\t\tedges = body.edges;\n\t\t\t\ttotalNodes = body.total_nodes;\n\t\t\t\ttotalEdges = body.total_edges;\n\t\t\t\t[...new Set(nodes.map((n) => n.created_at.slice(0, 10)))].sort().length - 1;\n\t\t\t\tfilterDate = null;\n\t\t\t} catch (e) {\n\t\t\t\terror = e instanceof Error ? e.message : \"Failed to load graph data\";\n\t\t\t} finally {\n\t\t\t\tloading = false;\n\t\t\t}\n\t\t}\n\t\tconst nodeTypeCounts = derived(() => Object.entries(nodes.reduce((acc, n) => {\n\t\t\tacc[n.node_type] = (acc[n.node_type] ?? 0) + 1;\n\t\t\treturn acc;\n\t\t}, {})).sort((a, b) => b[1] - a[1]));\n\t\tconst edgeTypeCounts = derived(() => Object.entries(edges.reduce((acc, e) => {\n\t\t\tacc[e.edge_type] = (acc[e.edge_type] ?? 0) + 1;\n\t\t\treturn acc;\n\t\t}, {})).sort((a, b) => b[1] - a[1]));\n\t\thead(\"16wa9bo\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>BRAIN Graph — CLEO Studio</title>`);\n\t\t\t});\n\t\t});\n\t\t$$renderer.push(`<section class=\"page svelte-16wa9bo\"><header class=\"page-head svelte-16wa9bo\"><div class=\"head-left svelte-16wa9bo\"><a class=\"back svelte-16wa9bo\" href=\"/brain/overview\">← Overview</a> <h1 class=\"title svelte-16wa9bo\">Knowledge graph</h1> `);\n\t\tif (!loading && !error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"count svelte-16wa9bo\"><span class=\"count-n svelte-16wa9bo\">${escape_html(totalNodes)}</span> <span class=\"count-div svelte-16wa9bo\">·</span> <span class=\"count-n svelte-16wa9bo\">${escape_html(totalEdges)}</span> <span class=\"count-label svelte-16wa9bo\">nodes · edges</span></span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div> <div class=\"head-right svelte-16wa9bo\"><button type=\"button\"${attr_class(\"toggle-btn svelte-16wa9bo\", void 0, { \"on\": useTimeSlider })}${attr(\"aria-pressed\", useTimeSlider)}>Time slider ${escape_html(\"off\")}</button> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div></header> `);\n\t\tif (loading) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"state svelte-16wa9bo\">`);\n\t\t\tSpinner($$renderer, { size: \"md\" });\n\t\t\t$$renderer.push(`<!----> <span>Loading graph data…</span></div>`);\n\t\t} else if (error) {\n\t\t\t$$renderer.push(\"<!--[1-->\");\n\t\t\t{\n\t\t\t\tfunction action($$renderer) {\n\t\t\t\t\tButton($$renderer, {\n\t\t\t\t\t\tvariant: \"secondary\",\n\t\t\t\t\t\tsize: \"sm\",\n\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\tload();\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: ($$renderer) => {\n\t\t\t\t\t\t\t$$renderer.push(`<!---->Retry`);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$$slots: { default: true }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tEmptyState($$renderer, {\n\t\t\t\t\ttitle: \"Couldn't load graph\",\n\t\t\t\t\tsubtitle: error,\n\t\t\t\t\tvariant: \"warning\",\n\t\t\t\t\taction,\n\t\t\t\t\t$$slots: { action: true }\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (nodes.length === 0) {\n\t\t\t$$renderer.push(\"<!--[2-->\");\n\t\t\tEmptyState($$renderer, {\n\t\t\t\ttitle: \"No graph data\",\n\t\t\t\tsubtitle: \"brain.db exists but the PageIndex graph is empty. Run a session to populate it.\"\n\t\t\t});\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<div class=\"graph-canvas svelte-16wa9bo\">`);\n\t\t\tBrainGraph($$renderer, {\n\t\t\t\tnodes,\n\t\t\t\tedges,\n\t\t\t\tfilterDate\n\t\t\t});\n\t\t\t$$renderer.push(`<!----></div> <div class=\"legend-bar svelte-16wa9bo\"><div class=\"legend-section svelte-16wa9bo\"><span class=\"legend-label svelte-16wa9bo\">Nodes</span> <!--[-->`);\n\t\t\tconst each_array = ensure_array_like(nodeTypeCounts());\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet [type, count] = each_array[$$index];\n\t\t\t\t$$renderer.push(`<span class=\"legend-item svelte-16wa9bo\"><span class=\"legend-dot svelte-16wa9bo\"${attr_style(`background:${stringify(nodeColor(type))}`)}></span> <span class=\"legend-text\">${escape_html(type)}</span> <span class=\"legend-count svelte-16wa9bo\">${escape_html(count)}</span></span>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div> <div class=\"legend-section svelte-16wa9bo\"><span class=\"legend-label svelte-16wa9bo\">Edges</span> <!--[-->`);\n\t\t\tconst each_array_1 = ensure_array_like(edgeTypeCounts());\n\t\t\tfor (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\tlet [type, count] = each_array_1[$$index_1];\n\t\t\t\t$$renderer.push(`<span class=\"legend-item svelte-16wa9bo\"><span class=\"legend-line svelte-16wa9bo\"${attr_style(`background:${stringify(edgeColor(type))}`)}></span> <span class=\"legend-text\">${escape_html(type)}</span> <span class=\"legend-count svelte-16wa9bo\">${escape_html(count)}</span></span>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div> <div class=\"legend-section svelte-16wa9bo\"><span class=\"legend-label svelte-16wa9bo\">Tiers</span> <span class=\"legend-item svelte-16wa9bo\"><span class=\"tier-ring thin solid svelte-16wa9bo\"></span> <span class=\"legend-text\">short</span></span> <span class=\"legend-item svelte-16wa9bo\"><span class=\"tier-ring medium dashed svelte-16wa9bo\"></span> <span class=\"legend-text\">medium</span></span> <span class=\"legend-item svelte-16wa9bo\"><span class=\"tier-ring thick solid svelte-16wa9bo\"></span> <span class=\"legend-text\">long</span></span></div></div>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></section>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;AAsDA;AACA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AAQtC,EAAE,IAAI,aAAa,GAAG,KAAK;AAoD3B,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,wCAAwC,CAAC,CAAC;AAC/D,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,+OAA+O,CAAC,CAAC;AACpQ,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,2EAA2E,EAAE,UAAU,CAAC,2BAA2B,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;AAC7P,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC7C,EAAe;AACf,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAAC,CAAC;AACxD,GAAG,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,8CAA8C,CAAC,CAAC;AACpE,EAAE;AAoDF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-nzffIbBP.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/brain/causal/_page.svelte.js"],"sourcesContent":["import { U as escape_html, a as derived, n as attr_class, o as ensure_array_like, r as attr_style, s as head, u as stringify } from \"../../../../chunks/dev.js\";\nimport \"../../../../chunks/index-server.js\";\nimport { a as Badge, r as Card } from \"../../../../chunks/Tabs.js\";\nimport { a as Input, l as Button, o as EmptyState } from \"../../../../chunks/ui.js\";\n//#region src/routes/brain/causal/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tlet taskId = data.initialTaskId;\n\t\tlet result = null;\n\t\tlet loading = false;\n\t\tlet error = null;\n\t\tasync function runTrace(id) {\n\t\t\tif (!id.trim()) {\n\t\t\t\tresult = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tloading = true;\n\t\t\terror = null;\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(`/api/memory/reason-why?taskId=${encodeURIComponent(id)}`);\n\t\t\t\tif (!res.ok) throw new Error(`HTTP ${res.status}`);\n\t\t\t\tresult = await res.json();\n\t\t\t} catch (e) {\n\t\t\t\terror = e instanceof Error ? e.message : \"Trace failed\";\n\t\t\t} finally {\n\t\t\t\tloading = false;\n\t\t\t}\n\t\t}\n\t\t/** Group blockers by depth so we can render a horizontally-stacked tier layout. */\n\t\tconst byDepth = derived(() => {\n\t\t\tif (!result) return /* @__PURE__ */ new Map();\n\t\t\tconst m = /* @__PURE__ */ new Map();\n\t\t\tfor (const b of result.blockers) {\n\t\t\t\tif (!m.has(b.depth)) m.set(b.depth, []);\n\t\t\t\tm.get(b.depth)?.push(b);\n\t\t\t}\n\t\t\treturn m;\n\t\t});\n\t\tconst depths = derived(() => [...byDepth().keys()].sort((a, b) => a - b));\n\t\tfunction isRootCause(taskId) {\n\t\t\treturn result?.rootCauses.includes(taskId) ?? false;\n\t\t}\n\t\thead(\"15q56h1\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>BRAIN Causal Trace — CLEO Studio</title>`);\n\t\t\t});\n\t\t});\n\t\t$$renderer.push(`<section class=\"page svelte-15q56h1\"><header class=\"page-head svelte-15q56h1\"><div class=\"head-left\"><a class=\"back svelte-15q56h1\" href=\"/brain/overview\">← Overview</a> <h1 class=\"title svelte-15q56h1\">Causal reasoning</h1> <span class=\"subtitle svelte-15q56h1\">Walk the blocker chain for a task — find the root cause that's gating progress</span></div></header> <form class=\"query-form svelte-15q56h1\"><div class=\"query-input svelte-15q56h1\">`);\n\t\tInput($$renderer, {\n\t\t\tvalue: taskId,\n\t\t\tlabel: \"Task ID\",\n\t\t\tplaceholder: \"Enter a task ID — e.g. T123\",\n\t\t\toninput: (e) => taskId = e.target.value\n\t\t});\n\t\t$$renderer.push(`<!----></div> `);\n\t\tButton($$renderer, {\n\t\t\tvariant: \"primary\",\n\t\t\ttype: \"submit\",\n\t\t\tloading,\n\t\t\tchildren: ($$renderer) => {\n\t\t\t\t$$renderer.push(`<!---->Trace causes`);\n\t\t\t},\n\t\t\t$$slots: { default: true }\n\t\t});\n\t\t$$renderer.push(`<!----></form> `);\n\t\tif (error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t{\n\t\t\t\tfunction action($$renderer) {\n\t\t\t\t\tButton($$renderer, {\n\t\t\t\t\t\tvariant: \"secondary\",\n\t\t\t\t\t\tsize: \"sm\",\n\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\trunTrace(taskId);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: ($$renderer) => {\n\t\t\t\t\t\t\t$$renderer.push(`<!---->Retry`);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$$slots: { default: true }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tEmptyState($$renderer, {\n\t\t\t\t\ttitle: \"Trace failed\",\n\t\t\t\t\tsubtitle: error,\n\t\t\t\t\tvariant: \"warning\",\n\t\t\t\t\taction,\n\t\t\t\t\t$$slots: { action: true }\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (!result) {\n\t\t\t$$renderer.push(\"<!--[1-->\");\n\t\t\tEmptyState($$renderer, {\n\t\t\t\ttitle: \"Ready to trace\",\n\t\t\t\tsubtitle: \"Paste a task ID above. We'll walk its unresolved dependencies and surface the root cause.\"\n\t\t\t});\n\t\t} else if (result.blockers.length === 0) {\n\t\t\t$$renderer.push(\"<!--[2-->\");\n\t\t\tEmptyState($$renderer, {\n\t\t\t\ttitle: `${result.taskId} has no unresolved blockers`,\n\t\t\t\tsubtitle: \"Either the task has no dependencies, all dependencies are completed, or the task doesn't exist.\"\n\t\t\t});\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\tconst r = result;\n\t\t\t{\n\t\t\t\tfunction header($$renderer) {\n\t\t\t\t\t$$renderer.push(`<div class=\"summary-head svelte-15q56h1\"><div class=\"summary-block svelte-15q56h1\"><span class=\"summary-label svelte-15q56h1\">Task</span> <code class=\"summary-val svelte-15q56h1\">${escape_html(r.taskId)}</code></div> <div class=\"summary-block svelte-15q56h1\"><span class=\"summary-label svelte-15q56h1\">Depth</span> <span class=\"summary-val svelte-15q56h1\">${escape_html(r.depth)}</span></div> <div class=\"summary-block svelte-15q56h1\"><span class=\"summary-label svelte-15q56h1\">Blockers</span> <span class=\"summary-val svelte-15q56h1\">${escape_html(r.blockers.length)}</span></div> <div class=\"summary-block svelte-15q56h1\"><span class=\"summary-label svelte-15q56h1\">Root causes</span> <span class=\"summary-val highlight svelte-15q56h1\">${escape_html(r.rootCauses.length)}</span></div></div>`);\n\t\t\t\t}\n\t\t\t\tCard($$renderer, {\n\t\t\t\t\theader,\n\t\t\t\t\tchildren: ($$renderer) => {\n\t\t\t\t\t\tif (r.rootCauses.length > 0) {\n\t\t\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t\t\t$$renderer.push(`<div class=\"root-causes svelte-15q56h1\"><span class=\"root-label svelte-15q56h1\">Root causes</span> <!--[-->`);\n\t\t\t\t\t\t\tconst each_array = ensure_array_like(r.rootCauses);\n\t\t\t\t\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\t\t\t\t\tlet rc = each_array[$$index];\n\t\t\t\t\t\t\t\t$$renderer.push(`<code class=\"rc-id svelte-15q56h1\">${escape_html(rc)}</code>`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$$renderer.push(`<!--]--></div>`);\n\t\t\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t\t\t$$renderer.push(`<!--]-->`);\n\t\t\t\t\t},\n\t\t\t\t\t$$slots: {\n\t\t\t\t\t\theader: true,\n\t\t\t\t\t\tdefault: true\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t$$renderer.push(`<!----> <div class=\"tree svelte-15q56h1\" aria-hidden=\"true\"><!--[-->`);\n\t\t\tconst each_array_1 = ensure_array_like(depths());\n\t\t\tfor (let $$index_2 = 0, $$length = each_array_1.length; $$index_2 < $$length; $$index_2++) {\n\t\t\t\tlet d = each_array_1[$$index_2];\n\t\t\t\tconst layer = byDepth().get(d) ?? [];\n\t\t\t\t$$renderer.push(`<div class=\"tier svelte-15q56h1\"><div class=\"tier-label svelte-15q56h1\"><span class=\"tier-num svelte-15q56h1\">${escape_html(d)}</span> <span class=\"tier-word svelte-15q56h1\">depth</span></div> <div class=\"tier-nodes svelte-15q56h1\"><!--[-->`);\n\t\t\t\tconst each_array_2 = ensure_array_like(layer);\n\t\t\t\tfor (let $$index_1 = 0, $$length = each_array_2.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\t\tlet b = each_array_2[$$index_1];\n\t\t\t\t\t$$renderer.push(`<div${attr_class(\"node svelte-15q56h1\", void 0, { \"root\": isRootCause(b.taskId) })}><code class=\"node-id svelte-15q56h1\">${escape_html(b.taskId)}</code> `);\n\t\t\t\t\tBadge($$renderer, {\n\t\t\t\t\t\ttone: b.status === \"blocked\" ? \"danger\" : b.status === \"pending\" ? \"warning\" : \"info\",\n\t\t\t\t\t\tsize: \"sm\",\n\t\t\t\t\t\tchildren: ($$renderer) => {\n\t\t\t\t\t\t\t$$renderer.push(`<!---->${escape_html(b.status)}`);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$$slots: { default: true }\n\t\t\t\t\t});\n\t\t\t\t\t$$renderer.push(`<!----> <span class=\"node-title svelte-15q56h1\">${escape_html(b.title)}</span> `);\n\t\t\t\t\tif (b.decisions.length > 0) {\n\t\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t\t$$renderer.push(`<span class=\"node-dec svelte-15q56h1\">${escape_html(b.decisions.length)} dec</span>`);\n\t\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t\t$$renderer.push(`<!--]--></div>`);\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]--></div></div>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div> <section class=\"list-fallback svelte-15q56h1\" aria-label=\"Causal chain (textual view)\"><h2 class=\"fallback-title svelte-15q56h1\">Causal chain</h2> <ol class=\"chain svelte-15q56h1\"><!--[-->`);\n\t\t\tconst each_array_3 = ensure_array_like(result.blockers);\n\t\t\tfor (let $$index_4 = 0, $$length = each_array_3.length; $$index_4 < $$length; $$index_4++) {\n\t\t\t\tlet b = each_array_3[$$index_4];\n\t\t\t\t$$renderer.push(`<li${attr_class(\"chain-item svelte-15q56h1\", void 0, { \"root\": isRootCause(b.taskId) })}${attr_style(`--indent:${stringify(b.depth - 1)}`)}><div class=\"chain-head svelte-15q56h1\"><code class=\"chain-id svelte-15q56h1\">${escape_html(b.taskId)}</code> `);\n\t\t\t\tBadge($$renderer, {\n\t\t\t\t\ttone: b.status === \"blocked\" ? \"danger\" : b.status === \"pending\" ? \"warning\" : \"info\",\n\t\t\t\t\tsize: \"sm\",\n\t\t\t\t\tchildren: ($$renderer) => {\n\t\t\t\t\t\t$$renderer.push(`<!---->${escape_html(b.status)}`);\n\t\t\t\t\t},\n\t\t\t\t\t$$slots: { default: true }\n\t\t\t\t});\n\t\t\t\t$$renderer.push(`<!----> `);\n\t\t\t\tif (isRootCause(b.taskId)) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\tBadge($$renderer, {\n\t\t\t\t\t\ttone: \"accent\",\n\t\t\t\t\t\tsize: \"sm\",\n\t\t\t\t\t\tchildren: ($$renderer) => {\n\t\t\t\t\t\t\t$$renderer.push(`<!---->root cause`);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$$slots: { default: true }\n\t\t\t\t\t});\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--> <span class=\"chain-depth svelte-15q56h1\">depth ${escape_html(b.depth)}</span></div> <p class=\"chain-title svelte-15q56h1\">${escape_html(b.title)}</p> `);\n\t\t\t\tif (b.decisions.length > 0) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<ul class=\"chain-decisions svelte-15q56h1\"><!--[-->`);\n\t\t\t\t\tconst each_array_4 = ensure_array_like(b.decisions);\n\t\t\t\t\tfor (let $$index_3 = 0, $$length = each_array_4.length; $$index_3 < $$length; $$index_3++) {\n\t\t\t\t\t\tlet d = each_array_4[$$index_3];\n\t\t\t\t\t\t$$renderer.push(`<li class=\"svelte-15q56h1\"><code class=\"dec-id svelte-15q56h1\">${escape_html(d.id)}</code> <span class=\"dec-text\">${escape_html(d.title)}</span></li>`);\n\t\t\t\t\t}\n\t\t\t\t\t$$renderer.push(`<!--]--></ul>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></li>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></ol></section>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></section>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;AAIA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AACxB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa;AAEjC,EAAE,IAAI,OAAO,GAAG,KAAK;AAiCrB,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,+CAA+C,CAAC,CAAC;AACtE,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,4bAA4b,CAAC,CAAC;AACjd,EAAE,KAAK,CAAC,UAAU,EAAE;AACpB,GAAG,KAAK,EAAE,MAAM;AAChB,GAAG,KAAK,EAAE,SAAS;AACnB,GAAG,WAAW,EAAE,6BAA6B;AAC7C,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACrC,GAAG,CAAC;AACJ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACnC,EAAE,MAAM,CAAC,UAAU,EAAE;AACrB,GAAG,OAAO,EAAE,SAAS;AACrB,GAAG,IAAI,EAAE,QAAQ;AACjB,GAAG,OAAO;AACV,GAAG,QAAQ,EAAE,CAAC,UAAU,KAAK;AAC7B,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC1C,GAAG,CAED,CAAC,CAAC;AACJ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;AACpC,EAwBsB;AACtB,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,GAAG,UAAU,CAAC,UAAU,EAAE;AAC1B,IAAI,KAAK,EAAE,gBAAgB;AAC3B,IAAI,QAAQ,EAAE;AACd,IAAI,CAAC;AACL,EAAE;AAqGF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-4NyKAneX.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/memory/decisions/_server.ts.js"],"sourcesContent":["import \"../../../../../chunks/dist4.js\";\nimport { r as getDecisions } from \"../../../../../chunks/memory.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/memory/decisions/+server.ts\nvar GET = async ({ locals }) => {\n\ttry {\n\t\tconst { decisions } = await getDecisions({\n\t\t\tprojectPath: locals.projectCtx.projectPath,\n\t\t\tlimit: 500\n\t\t});\n\t\treturn json({\n\t\t\tdecisions,\n\t\t\ttotal: decisions.length\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\tdecisions: [],\n\t\t\ttotal: 0\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAChC,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,YAAY,CAAC;AAC3C,GAAG,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW;AAC7C,GAAG,KAAK,EAAE;AACV,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,SAAS;AACZ,GAAG,KAAK,EAAE,SAAS,CAAC;AACpB,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,KAAK,EAAE;AACV,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-4p6cp9ke.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/memory/pattern-store/_server.ts.js"],"sourcesContent":["import { n as getBrainDb } from \"../../../../../chunks/connections2.js\";\nimport { a as optionalString, c as parseJsonBody, l as requireString, n as isParseError, o as optionalStringArray, r as ok, t as err, u as shortId } from \"../../../../../chunks/_lafs.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/memory/pattern-store/+server.ts\n/**\n* Memory pattern-store write endpoint (T990 Wave 1D).\n*\n* @remarks T9616 follow-up: `storePattern` from\n* `packages/core/src/memory/patterns.ts` is not yet promoted to the CORE\n* public API (`packages/core/src/memory/public-api.ts`). Once promoted, this\n* handler should be migrated to call `storePattern` rather than issuing raw\n* SQL. See docs/plans/E-CORE-FIRST-ARCH.md Task 2.\n*\n* POST /api/memory/pattern-store\n* body: {\n* pattern: string,\n* context: string,\n* type?: 'workflow' | 'blocker' | 'success' | 'failure' | 'optimization',\n* impact?: 'low' | 'medium' | 'high',\n* antiPattern?: string,\n* mitigation?: string,\n* examples?: string[]\n* }\n* → LAFS envelope { success, data: { id, deduplicated, createdAt } }\n*\n* Inserts a new row into `brain_patterns` (note: table uses\n* `extracted_at` rather than `created_at`). Dedup is best-effort —\n* match on lowercased-pattern + type; if hit, increment frequency and\n* return `deduplicated: true` without inserting.\n*\n* @task T990\n* @wave 1D\n*/\nvar VALID_TYPES = new Set([\n\t\"workflow\",\n\t\"blocker\",\n\t\"success\",\n\t\"failure\",\n\t\"optimization\"\n]);\nvar VALID_IMPACTS = new Set([\n\t\"low\",\n\t\"medium\",\n\t\"high\"\n]);\nvar POST = async ({ locals, request }) => {\n\tconst body = await parseJsonBody(request);\n\tif (isParseError(body)) return json(err(\"E_VALIDATION\", body._parseError), { status: 400 });\n\tconst patternR = requireString(body, \"pattern\", 2e3);\n\tif (!patternR.ok) return json(err(\"E_VALIDATION\", patternR.message), { status: 400 });\n\tconst contextR = requireString(body, \"context\", 4e3);\n\tif (!contextR.ok) return json(err(\"E_VALIDATION\", contextR.message), { status: 400 });\n\tconst typeIn = optionalString(body, \"type\") ?? \"workflow\";\n\tconst type = VALID_TYPES.has(typeIn) ? typeIn : \"workflow\";\n\tconst impactIn = optionalString(body, \"impact\") ?? \"medium\";\n\tconst impact = VALID_IMPACTS.has(impactIn) ? impactIn : \"medium\";\n\tconst antiPattern = optionalString(body, \"antiPattern\");\n\tconst mitigation = optionalString(body, \"mitigation\");\n\tconst examples = optionalStringArray(body, \"examples\");\n\tconst db = getBrainDb(locals.projectCtx);\n\tif (!db) return json(err(\"E_BRAIN_UNAVAILABLE\", \"brain.db is unavailable for this project\"), { status: 503 });\n\ttry {\n\t\tconst dupe = db.prepare(`SELECT id, frequency FROM brain_patterns\n WHERE LOWER(pattern) = LOWER(?) AND type = ?\n LIMIT 1`).get(patternR.value, type);\n\t\tconst createdAt = (/* @__PURE__ */ new Date()).toISOString();\n\t\tif (dupe) {\n\t\t\tdb.prepare(`UPDATE brain_patterns SET frequency = frequency + 1 WHERE id = ?`).run(dupe.id);\n\t\t\treturn json(ok({\n\t\t\t\tid: dupe.id,\n\t\t\t\tdeduplicated: true,\n\t\t\t\tcreatedAt\n\t\t\t}));\n\t\t}\n\t\tconst id = `P-${shortId()}`;\n\t\tdb.prepare(`INSERT INTO brain_patterns\n (id, type, pattern, context, impact, anti_pattern, mitigation, examples,\n frequency, memory_tier, verified, prune_candidate, extracted_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?,\n 1, 'short', 0, 0, ?)`).run(id, type, patternR.value, contextR.value, impact, antiPattern ?? null, mitigation ?? null, examples ? JSON.stringify(examples) : null, createdAt);\n\t\treturn json(ok({\n\t\t\tid,\n\t\t\tdeduplicated: false,\n\t\t\tcreatedAt\n\t\t}));\n\t} catch (e) {\n\t\treturn json(err(\"E_BRAIN_WRITE\", e instanceof Error ? e.message : \"Insert failed\"), { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-7hGdxdEI.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/memory/find/_server.ts.js"],"sourcesContent":["import \"../../../../../chunks/dist4.js\";\nimport { n as findMemoryEntries } from \"../../../../../chunks/memory.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/memory/find/+server.ts\nvar ALLOWED_TABLES = [\n\t\"observations\",\n\t\"decisions\",\n\t\"patterns\",\n\t\"learnings\"\n];\nvar GET = async ({ locals, url }) => {\n\tconst q = (url.searchParams.get(\"q\") ?? \"\").trim();\n\tconst tablesParam = url.searchParams.get(\"tables\");\n\tconst limitRaw = url.searchParams.get(\"limit\");\n\tconst limit = Math.max(1, Math.min(100, Number.parseInt(limitRaw ?? \"25\", 10) || 25));\n\tconst tables = tablesParam ? tablesParam.split(\",\").map((t) => t.trim()).filter((t) => ALLOWED_TABLES.includes(t)) : [...ALLOWED_TABLES];\n\tif (!q) return json({\n\t\tquery: \"\",\n\t\thits: [],\n\t\ttotal: 0\n\t});\n\ttry {\n\t\tconst result = await findMemoryEntries({\n\t\t\tquery: q,\n\t\t\ttables,\n\t\t\tlimit,\n\t\t\tprojectPath: locals.projectCtx.projectPath\n\t\t});\n\t\treturn json({\n\t\t\tquery: result.query,\n\t\t\thits: result.hits,\n\t\t\ttotal: result.total\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\tquery: q,\n\t\t\thits: [],\n\t\t\ttotal: 0\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,cAAc,GAAG;AACrB,CAAC,cAAc;AACf,CAAC,WAAW;AACZ,CAAC,UAAU;AACX,CAAC;AACD,CAAC;AACE,IAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AACrC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;AACnD,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnD,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/C,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AACtF,CAAC,MAAM,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;AACzI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AACrB,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,KAAK,EAAE;AACT,EAAE,CAAC;AACH,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;AACzC,GAAG,KAAK,EAAE,CAAC;AACX,GAAG,MAAM;AACT,GAAG,KAAK;AACR,GAAG,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;AAClC,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,KAAK,EAAE,MAAM,CAAC,KAAK;AACtB,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI;AACpB,GAAG,KAAK,EAAE,MAAM,CAAC;AACjB,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,KAAK,EAAE,CAAC;AACX,GAAG,IAAI,EAAE,EAAE;AACX,GAAG,KAAK,EAAE;AACV,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-B2E7fxo9.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/tasks/_id_/stream/_server.ts.js"],"sourcesContent":["import { n as createSseStream, t as SSE_HEADERS } from \"../../../../../../chunks/http.js\";\nimport { J as summarizeTokenUsage } from \"../../../../../../chunks/dist4.js\";\nimport { r as listSessions } from \"../../../../../../chunks/sessions.js\";\n//#region src/routes/api/tasks/[id]/stream/+server.ts\n/**\n* GET /api/tasks/[id]/stream — per-task LIVE WORKER stream for a Running-lane\n* card (T11929 · M5).\n*\n* A Running card on `/tasks/kanban` subscribes here to render the worker's\n* live output tail + a usage / cost meter + proof checkpoints. The wire mirrors\n* the existing `/api/tasks/events` SSE pattern (the shared `createSseStream`\n* primitive), so the board reuses ONE EventSource-per-card with the same\n* connected → frames → heartbeat cadence — no per-card polling.\n*\n* ## Source (gateway-ready, Studio-local today)\n*\n* The ratified realtime transport is the `/v1` gateway SSE\n* (`GET /v1/orchestrate/events`, T11921). That stream currently carries a\n* generic tick source until the daemon injects the real agent/worker/board\n* origin-tailing source. Until then — and so the board is useful in Studio dev\n* without a running daemon — this route derives the worker view from the\n* EXISTING Studio data layer the read-only board already reads: the active\n* session claiming this task (`listSessions`) plus its token usage\n* (`metrics.summarizeTokenUsage` scoped by `taskId`).\n*\n* TODO: subscribe to the gateway `orchestrate.events` SSE filtered to this task\n* once the daemon injects its real worker-output/usage source (T11559 / M5).\n*\n* Frame kinds match the pure\n* {@link import('$lib/components/tasks/worker-stream.js').WorkerStreamFrame}\n* fold: `connected` · `output` · `usage` · `checkpoint` · `heartbeat` · `done`.\n*\n* @task T11929\n* @epic T11559\n*/\n/** Poll cadence (ms) for the per-task worker change detector. */\nvar POLL_INTERVAL_MS = 2e3;\n/** Resolve the active session (if any) currently claiming this task. */\nasync function activeSessionForTask(projectPath, taskId) {\n\ttry {\n\t\tconst owner = (await listSessions(projectPath, { status: \"active\" })).find((s) => s.taskWork?.taskId === taskId);\n\t\treturn owner ? {\n\t\t\tid: owner.id,\n\t\t\tstartedAt: owner.startedAt\n\t\t} : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\n/** Resolve the cumulative usage snapshot for this task. */\nasync function usageForTask(projectPath, taskId) {\n\ttry {\n\t\tconst summary = await summarizeTokenUsage(projectPath, { taskId });\n\t\treturn {\n\t\t\tinputTokens: summary.inputTokens,\n\t\t\toutputTokens: summary.outputTokens,\n\t\t\ttotalTokens: summary.totalTokens,\n\t\t\trecords: summary.totalRecords\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tinputTokens: 0,\n\t\t\toutputTokens: 0,\n\t\t\ttotalTokens: 0,\n\t\t\trecords: 0\n\t\t};\n\t}\n}\nvar GET = ({ locals, params, request }) => {\n\tconst ctx = locals.projectCtx;\n\tconst taskId = params.id;\n\tconst stream = createSseStream((emitter) => {\n\t\t/** Emit one named SSE event (dropped after close, never throws). */\n\t\tfunction send(event, data) {\n\t\t\temitter.send({\n\t\t\t\tevent,\n\t\t\t\tdata\n\t\t\t});\n\t\t}\n\t\tlet started = false;\n\t\t/** Last usage total emitted — only re-emit on change to keep the wire quiet. */\n\t\tlet lastTotalTokens = -1;\n\t\t/** Whether we have announced the worker as gone (terminal `done`). */\n\t\tlet endedAnnounced = false;\n\t\tsend(\"connected\", {\n\t\t\tts: (/* @__PURE__ */ new Date()).toISOString(),\n\t\t\ttaskId\n\t\t});\n\t\t/** One poll tick: detect worker presence + usage delta and emit frames. */\n\t\tasync function tick() {\n\t\t\tif (emitter.closed) return;\n\t\t\tconst ts = (/* @__PURE__ */ new Date()).toISOString();\n\t\t\tconst session = await activeSessionForTask(ctx.projectPath, taskId);\n\t\t\tconst usage = await usageForTask(ctx.projectPath, taskId);\n\t\t\tif (session && !started) {\n\t\t\t\tstarted = true;\n\t\t\t\tsend(\"output\", {\n\t\t\t\t\tts,\n\t\t\t\t\tline: `▶ worker ${session.id} active on ${taskId} (since ${session.startedAt})`\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (usage.totalTokens !== lastTotalTokens) {\n\t\t\t\tlastTotalTokens = usage.totalTokens;\n\t\t\t\tsend(\"usage\", {\n\t\t\t\t\tts,\n\t\t\t\t\tusage\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!session && started && !endedAnnounced) {\n\t\t\t\tendedAnnounced = true;\n\t\t\t\tsend(\"output\", {\n\t\t\t\t\tts,\n\t\t\t\t\tline: `■ worker on ${taskId} ended`\n\t\t\t\t});\n\t\t\t\tsend(\"done\", {\n\t\t\t\t\tts,\n\t\t\t\t\treason: \"worker-ended\"\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsend(\"heartbeat\", { ts });\n\t\t}\n\t\ttick();\n\t\tconst interval = setInterval(() => {\n\t\t\tif (emitter.closed) {\n\t\t\t\tclearInterval(interval);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttick();\n\t\t}, POLL_INTERVAL_MS);\n\t\treturn () => clearInterval(interval);\n\t}, request.signal);\n\treturn new Response(stream, { headers: { ...SSE_HEADERS } });\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-B5g3eScF.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/tasks/tree/_epicId_/_server.ts.js"],"sourcesContent":["import { r as getTaskAccessor } from \"../../../../../../chunks/data-accessor2.js\";\nimport { d as showTask, n as taskTree } from \"../../../../../../chunks/tasks.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/tasks/tree/[epicId]/+server.ts\n/**\n* GET /api/tasks/tree/[epicId] — full epic hierarchy (epic → tasks → subtasks).\n*\n* Returns nested tree up to 3 levels deep.\n*\n* T9617 refactor: zero raw SQL — delegates to `taskTree` + `showTask` from\n* `@cleocode/core/tasks`. The `epic` field preserves the pre-T9617 shape\n* with a `children` array built from the FlatTreeNode tree returned by core.\n*\n* @task T9617\n*/\n/**\n* Convert a core FlatTreeNode into the legacy TreeNode shape.\n* Core FlatTreeNode does not carry all the fields (verification_json,\n* acceptance_json, etc.) so we accept them as `null` for now.\n* The Studio tree view only uses id/title/status/priority for rendering.\n*/\nfunction flatNodeToTreeNode(node, depth) {\n\treturn {\n\t\tid: node.id,\n\t\ttitle: node.title,\n\t\tstatus: node.status,\n\t\tpriority: node.priority,\n\t\ttype: node.type ?? \"task\",\n\t\tpipeline_stage: null,\n\t\tsize: null,\n\t\tverification_json: null,\n\t\tacceptance_json: null,\n\t\tcreated_at: (/* @__PURE__ */ new Date()).toISOString(),\n\t\tcompleted_at: null,\n\t\tchildren: depth < 3 ? node.children.map((c) => flatNodeToTreeNode(c, depth + 1)) : []\n\t};\n}\nvar GET = async ({ locals, params }) => {\n\tconst ctx = locals.projectCtx;\n\tif (!ctx.tasksDbExists) return json({ error: \"tasks.db unavailable\" }, { status: 503 });\n\tconst { epicId } = params;\n\ttry {\n\t\tconst accessor = await getTaskAccessor(ctx.projectPath);\n\t\tlet epicDetail;\n\t\ttry {\n\t\t\tepicDetail = await showTask(epicId, ctx.projectPath, accessor);\n\t\t} catch (err) {\n\t\t\tif (err?.code === 4) return json({ error: \"not found\" }, { status: 404 });\n\t\t\tthrow err;\n\t\t}\n\t\tconst treeResult = await taskTree(ctx.projectPath, epicId);\n\t\tif (!treeResult.success) return json({ error: treeResult.error?.message ?? \"Failed to build tree\" }, { status: 500 });\n\t\tconst { tree } = treeResult.data;\n\t\tconst rootNode = tree[0];\n\t\tconst children = rootNode?.children.map((c) => flatNodeToTreeNode(c, 1)) ?? [];\n\t\tconst allFlatNodes = [epicDetail];\n\t\tfunction collectAll(nodes) {\n\t\t\tfor (const n of nodes) {\n\t\t\t\tallFlatNodes.push(n);\n\t\t\t\tcollectAll(n.children);\n\t\t\t}\n\t\t}\n\t\tif (rootNode) collectAll(rootNode.children);\n\t\tconst stats = {\n\t\t\ttotal: allFlatNodes.length,\n\t\t\tdone: allFlatNodes.filter((t) => t.status === \"done\").length,\n\t\t\tactive: allFlatNodes.filter((t) => t.status === \"active\").length,\n\t\t\tpending: allFlatNodes.filter((t) => t.status === \"pending\").length,\n\t\t\tarchived: allFlatNodes.filter((t) => t.status === \"archived\").length\n\t\t};\n\t\treturn json({\n\t\t\tepic: {\n\t\t\t\tid: epicDetail.id,\n\t\t\t\ttitle: epicDetail.title,\n\t\t\t\tstatus: epicDetail.status,\n\t\t\t\tpriority: epicDetail.priority,\n\t\t\t\ttype: epicDetail.type ?? \"epic\",\n\t\t\t\tpipeline_stage: epicDetail.pipelineStage ?? null,\n\t\t\t\tsize: epicDetail.size ?? null,\n\t\t\t\tverification_json: epicDetail.verification !== void 0 && epicDetail.verification !== null ? JSON.stringify(epicDetail.verification) : null,\n\t\t\t\tacceptance_json: epicDetail.acceptance && epicDetail.acceptance.length > 0 ? JSON.stringify(epicDetail.acceptance) : null,\n\t\t\t\tcreated_at: epicDetail.createdAt,\n\t\t\t\tcompleted_at: epicDetail.completedAt ?? null,\n\t\t\t\tchildren\n\t\t\t},\n\t\t\tstats\n\t\t});\n\t} catch (err) {\n\t\treturn json({ error: String(err) }, { status: 500 });\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-B6b3b-yA.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/memory/tier-stats/_server.ts.js"],"sourcesContent":["import \"../../../../../chunks/dist4.js\";\nimport { l as getTierStats } from \"../../../../../chunks/memory.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/memory/tier-stats/+server.ts\n/**\n* Memory tier-stats API endpoint.\n*\n* GET /api/memory/tier-stats\n*\n* Returns:\n* - Per-table tier distribution (short / medium / long counts)\n* - Top-5 upcoming long-tier promotions with days-until-eligible countdown\n*\n* Delegates to `@cleocode/core` public memory API (T9615/T9616).\n* Zero raw SQL in this handler.\n*\n* @task T748\n* @epic T726\n*/\n/**\n* GET /api/memory/tier-stats — returns tier distribution + upcoming promotions.\n*/\nvar GET = async ({ locals }) => {\n\ttry {\n\t\tconst result = await getTierStats(locals.projectCtx.projectPath);\n\t\treturn json({\n\t\t\ttables: result.tables,\n\t\t\tupcomingLongPromotions: result.upcomingLongPromotions\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\ttables: [],\n\t\t\tupcomingLongPromotions: []\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAChC,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;AAClE,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM;AACxB,GAAG,sBAAsB,EAAE,MAAM,CAAC;AAClC,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,MAAM,EAAE,EAAE;AACb,GAAG,sBAAsB,EAAE;AAC3B,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-BOgGqaZp.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/project/_id_/reindex/_server.ts.js"],"sourcesContent":["import { t as executeCliAction } from \"../../../../../../chunks/cli-action.js\";\nimport { i as listRegisteredProjects } from \"../../../../../../chunks/project-context.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/project/[id]/reindex/+server.ts\n/**\n* POST /api/project/[id]/reindex\n*\n* Re-indexes a project by calling the same `cleo nexus analyze <projectPath> --json`\n* command as the index endpoint. \"analyze\" handles both initial index and re-index.\n*\n* The project path is resolved by looking up the project ID in the\n* listRegisteredProjects() registry. Returns a LAFS envelope on success\n* or a 4xx with structured error envelope on CLI failure.\n*\n* @task T722\n*/\nvar POST = async ({ params }) => {\n\tconst projectId = params.id;\n\tif (!projectId?.trim()) return json({\n\t\tsuccess: false,\n\t\terror: {\n\t\t\tcode: \"E_MISSING_ID\",\n\t\t\tmessage: \"Missing project id\"\n\t\t}\n\t}, { status: 400 });\n\tconst project = listRegisteredProjects().find((p) => p.projectId === projectId);\n\tif (!project) return json({\n\t\tsuccess: false,\n\t\terror: {\n\t\t\tcode: \"E_NOT_FOUND\",\n\t\t\tmessage: `Project ${projectId} not found in registry`\n\t\t}\n\t}, { status: 404 });\n\treturn executeCliAction([\n\t\t\"nexus\",\n\t\t\"analyze\",\n\t\tproject.projectPath,\n\t\t\"--json\"\n\t], {\n\t\terrorCode: \"E_REINDEX_FAILED\",\n\t\tmeta: {\n\t\t\tprojectId,\n\t\t\tprojectPath: project.projectPath\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACjC,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE;AAC5B,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC;AACrC,EAAE,OAAO,EAAE,KAAK;AAChB,EAAE,KAAK,EAAE;AACT,GAAG,IAAI,EAAE,cAAc;AACvB,GAAG,OAAO,EAAE;AACZ;AACA,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC;AAChF,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC;AAC3B,EAAE,OAAO,EAAE,KAAK;AAChB,EAAE,KAAK,EAAE;AACT,GAAG,IAAI,EAAE,aAAa;AACtB,GAAG,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,sBAAsB;AACvD;AACA,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,OAAO,gBAAgB,CAAC;AACzB,EAAE,OAAO;AACT,EAAE,SAAS;AACX,EAAE,OAAO,CAAC,WAAW;AACrB,EAAE;AACF,EAAE,EAAE;AACJ,EAAE,SAAS,EAAE,kBAAkB;AAC/B,EAAE,IAAI,EAAE;AACR,GAAG,SAAS;AACZ,GAAG,WAAW,EAAE,OAAO,CAAC;AACxB;AACA,EAAE,CAAC;AACH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-BPcErnS0.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/nexus/_server.ts.js"],"sourcesContent":["import { a as getNexusDb } from \"../../../../chunks/connections2.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/nexus/+server.ts\n/**\n* GET /api/nexus\n*\n* Returns the macro-view payload (communities + cross-community edges)\n* consumed by `/code`. Replaces the previous communities-only payload.\n*\n* Shape:\n* {\n* communities: Array<{ id, label, size, color, topKind, rawLabel }>,\n* edges: Array<{ source, target, weight, dominantType }>,\n* totalNodes: number,\n* totalRelations: number,\n* }\n*\n* `dominantType` preserves the most-common {@link NexusRelationType}\n* across each cross-community pair so the renderer can style edges by\n* their semantic kind instead of a hardcoded `'cross-community'`\n* placeholder.\n*\n* Legacy consumers that only need the communities array continue to\n* work by reading `response.communities`.\n*\n* @task T990\n* @wave 1B\n*/\n/**\n* 12-hue semantic palette — references the installed tokens.css\n* variables so server-side macro colouring remains theme-aware once\n* the client probes its computed style. Kept as CSS expressions so\n* the client can run them through `getComputedStyle` at render time.\n*/\nvar CLUSTER_CSS_CYCLE = [\n\t\"var(--info)\",\n\t\"var(--accent)\",\n\t\"var(--success)\",\n\t\"var(--warning)\",\n\t\"var(--danger)\",\n\t\"var(--priority-critical)\",\n\t\"color-mix(in srgb, var(--info) 60%, var(--accent) 40%)\",\n\t\"color-mix(in srgb, var(--success) 50%, var(--info) 50%)\",\n\t\"color-mix(in srgb, var(--warning) 60%, var(--danger) 40%)\",\n\t\"color-mix(in srgb, var(--accent) 70%, white 30%)\",\n\t\"color-mix(in srgb, var(--info) 40%, var(--priority-critical) 60%)\",\n\t\"color-mix(in srgb, var(--success) 40%, var(--warning) 60%)\"\n];\nfunction cycleColor(idx) {\n\treturn CLUSTER_CSS_CYCLE[idx % CLUSTER_CSS_CYCLE.length] ?? \"var(--accent)\";\n}\nvar GET = ({ url }) => {\n\tconst db = getNexusDb();\n\tif (!db) return json({ error: \"nexus.db not available\" }, { status: 503 });\n\tconst onlyCommunities = url.searchParams.get(\"only\") === \"communities\";\n\tconst totalNodes = db.prepare(\"SELECT COUNT(*) AS cnt FROM nexus_nodes\").get().cnt;\n\tconst totalRelations = db.prepare(\"SELECT COUNT(*) AS cnt FROM nexus_relations\").get().cnt;\n\tconst communities = db.prepare(`SELECT n1.community_id AS community_id,\n COUNT(*) AS size,\n (SELECT kind FROM nexus_nodes n2\n WHERE n2.community_id = n1.community_id\n GROUP BY kind ORDER BY COUNT(*) DESC LIMIT 1) AS top_kind,\n (SELECT cn.label FROM nexus_nodes cn\n WHERE cn.id = n1.community_id\n LIMIT 1) AS community_label\n FROM nexus_nodes n1\n WHERE n1.community_id IS NOT NULL\n GROUP BY n1.community_id\n ORDER BY size DESC`).all().map((row, idx) => {\n\t\tconst rawLabel = (row.community_label ?? \"\").trim();\n\t\tconst clusterNum = row.community_id.replace(\"comm_\", \"\");\n\t\tconst name = rawLabel && rawLabel !== row.community_id ? `${rawLabel} (${row.size})` : `Cluster ${clusterNum} (${row.size})`;\n\t\treturn {\n\t\t\tid: row.community_id,\n\t\t\tname,\n\t\t\trawLabel: rawLabel && rawLabel !== row.community_id ? rawLabel : `Cluster ${clusterNum}`,\n\t\t\tsize: row.size,\n\t\t\tcolor: cycleColor(idx),\n\t\t\ttopKind: row.top_kind ?? \"function\"\n\t\t};\n\t});\n\tlet edges = [];\n\tif (!onlyCommunities) {\n\t\tconst edgeRows = db.prepare(`SELECT s.community_id AS src_comm,\n t.community_id AS tgt_comm,\n r.type AS rel_type,\n COUNT(*) AS weight\n FROM nexus_relations r\n JOIN nexus_nodes s ON r.source_id = s.id\n JOIN nexus_nodes t ON r.target_id = t.id\n WHERE s.community_id IS NOT NULL\n AND t.community_id IS NOT NULL\n AND s.community_id != t.community_id\n GROUP BY src_comm, tgt_comm, rel_type`).all();\n\t\tconst accum = /* @__PURE__ */ new Map();\n\t\tfor (const row of edgeRows) {\n\t\t\tconst key = `${row.src_comm}::${row.tgt_comm}`;\n\t\t\tconst cur = accum.get(key) ?? {\n\t\t\t\tweight: 0,\n\t\t\t\ttypeCounts: /* @__PURE__ */ new Map()\n\t\t\t};\n\t\t\tcur.weight += row.weight;\n\t\t\tcur.typeCounts.set(row.rel_type, (cur.typeCounts.get(row.rel_type) ?? 0) + row.weight);\n\t\t\taccum.set(key, cur);\n\t\t}\n\t\tedges = [...accum.entries()].map(([key, value]) => {\n\t\t\tconst [src, tgt] = key.split(\"::\");\n\t\t\tlet dominantType = \"calls\";\n\t\t\tlet bestCount = 0;\n\t\t\tfor (const [t, c] of value.typeCounts) if (c > bestCount) {\n\t\t\t\tbestCount = c;\n\t\t\t\tdominantType = t;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tsource: src,\n\t\t\t\ttarget: tgt,\n\t\t\t\tweight: value.weight,\n\t\t\t\tdominantType\n\t\t\t};\n\t\t}).sort((a, b) => b.weight - a.weight).slice(0, 600);\n\t}\n\treturn json({\n\t\tcommunities,\n\t\tedges,\n\t\ttotalNodes,\n\t\ttotalRelations\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-BT0Uq2yq.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/v1/graph/_server.ts.js"],"sourcesContent":["import { n as getBrainDb } from \"../../../../../chunks/connections2.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/v1/graph/+server.ts\n/**\n* Universal Semantic Graph API — v1 endpoint.\n*\n* GET /api/v1/graph\n* → { nodes, edges, totalNodes, totalEdges }\n*\n* Returns brain_page_nodes of the sentience layer types:\n* task | decision | observation | symbol | conduit_message | llmtxt\n*\n* Only edges where **both** endpoints are present in the returned node set\n* are included, matching the T945 AC requirement.\n*\n* ## Query parameters\n*\n* | Param | Default | Notes |\n* |---------|---------|-------------------------------------------|\n* | `limit` | `500` | Max nodes returned; capped at 5000. |\n*\n* ## Response shape\n*\n* ```json\n* {\n* \"nodes\": [{ \"id\", \"type\", \"label\", \"qualityScore\", \"metadataJson\", \"createdAt\" }],\n* \"edges\": [{ \"fromId\", \"toId\", \"edgeType\", \"weight\", \"createdAt\" }],\n* \"totalNodes\": 42,\n* \"totalEdges\": 17\n* }\n* ```\n*\n* The `type` field maps `msg` (internal) to `conduit_message` (API-facing).\n*\n* @task T945\n* @epic T1056\n*/\n/**\n* Internal node types that form the sentience layer.\n* `msg` is the internal type for CONDUIT messages.\n*/\nvar SENTIENCE_INTERNAL_TYPES = [\n\t\"task\",\n\t\"decision\",\n\t\"observation\",\n\t\"symbol\",\n\t\"msg\",\n\t\"llmtxt\"\n];\n/**\n* Map internal `msg` type to the API-facing `conduit_message` string.\n* All other types are passed through unchanged.\n*/\nfunction toApiType(internalType) {\n\tif (internalType === \"msg\") return \"conduit_message\";\n\treturn internalType;\n}\n/** Parse and clamp the `limit` query parameter. */\nfunction parseLimit(raw) {\n\tconst n = raw ? Number.parseInt(raw, 10) : 500;\n\tif (!Number.isFinite(n) || n <= 0) return 500;\n\treturn Math.min(n, 5e3);\n}\n/**\n* GET /api/v1/graph\n*\n* Returns the universal semantic graph nodes and edges for the active project.\n* Returns an empty graph (200 OK) when brain.db is unavailable.\n*\n* @task T945\n*/\nvar GET = ({ locals, url }) => {\n\tconst limit = parseLimit(url.searchParams.get(\"limit\"));\n\tconst emptyResponse = {\n\t\tnodes: [],\n\t\tedges: [],\n\t\ttotalNodes: 0,\n\t\ttotalEdges: 0\n\t};\n\tconst db = getBrainDb(locals.projectCtx);\n\tif (!db) return json(emptyResponse);\n\ttry {\n\t\tconst placeholders = SENTIENCE_INTERNAL_TYPES.map(() => \"?\").join(\", \");\n\t\tconst totalNodes = db.prepare(`SELECT COUNT(*) AS cnt FROM brain_page_nodes WHERE node_type IN (${placeholders})`).get(...SENTIENCE_INTERNAL_TYPES)?.cnt ?? 0;\n\t\tconst rawNodes = db.prepare(`SELECT id, node_type, label, quality_score, metadata_json, created_at\n FROM brain_page_nodes\n WHERE node_type IN (${placeholders})\n ORDER BY quality_score DESC, last_activity_at DESC\n LIMIT ?`).all(...SENTIENCE_INTERNAL_TYPES, limit);\n\t\tconst nodeIds = new Set(rawNodes.map((n) => n.id));\n\t\tconst nodes = rawNodes.map((n) => ({\n\t\t\tid: n.id,\n\t\t\ttype: toApiType(n.node_type),\n\t\t\tlabel: n.label,\n\t\t\tqualityScore: n.quality_score,\n\t\t\tmetadataJson: n.metadata_json,\n\t\t\tcreatedAt: n.created_at\n\t\t}));\n\t\tconst allEdges = db.prepare(`SELECT from_id, to_id, edge_type, weight, created_at FROM brain_page_edges`).all();\n\t\tconst totalEdges = allEdges.length;\n\t\treturn json({\n\t\t\tnodes,\n\t\t\tedges: allEdges.filter((e) => nodeIds.has(e.from_id) && nodeIds.has(e.to_id)).map((e) => ({\n\t\t\t\tfromId: e.from_id,\n\t\t\t\ttoId: e.to_id,\n\t\t\t\tedgeType: e.edge_type,\n\t\t\t\tweight: e.weight,\n\t\t\t\tcreatedAt: e.created_at\n\t\t\t})),\n\t\t\ttotalNodes,\n\t\t\ttotalEdges\n\t\t});\n\t} catch {\n\t\treturn json(emptyResponse);\n\t} finally {\n\t\ttry {\n\t\t\tdb.close();\n\t\t} catch {}\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-BV1HiKZ0.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/memory/learnings/_server.ts.js"],"sourcesContent":["import \"../../../../../chunks/dist4.js\";\nimport { i as getLearnings } from \"../../../../../chunks/memory.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/memory/learnings/+server.ts\nvar GET = async ({ locals, url }) => {\n\tconst limitRaw = url.searchParams.get(\"limit\");\n\tconst limit = Math.max(1, Math.min(200, Number.parseInt(limitRaw ?? \"50\", 10) || 50));\n\ttry {\n\t\tconst result = await getLearnings({\n\t\t\tlimit,\n\t\t\tprojectPath: locals.projectCtx.projectPath\n\t\t});\n\t\treturn json({\n\t\t\tlearnings: result.learnings,\n\t\t\ttotal: result.learnings.length,\n\t\t\tfiltered: result.learnings.length\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\tlearnings: [],\n\t\t\ttotal: 0,\n\t\t\tfiltered: 0\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AACrC,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/C,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AACtF,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;AACpC,GAAG,KAAK;AACR,GAAG,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;AAClC,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,SAAS,EAAE,MAAM,CAAC,SAAS;AAC9B,GAAG,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;AACjC,GAAG,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC9B,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,SAAS,EAAE,EAAE;AAChB,GAAG,KAAK,EAAE,CAAC;AACX,GAAG,QAAQ,EAAE;AACb,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-BWp3g6Cr.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/tasks/_id_/deps/_server.ts.js"],"sourcesContent":["import { t as taskDeps } from \"../../../../../../chunks/tasks.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/tasks/[id]/deps/+server.ts\n/**\n* GET /api/tasks/[id]/deps — upstream (blockers) + downstream (dependents) for one task.\n*\n* Upstream: tasks that this task depends on (must complete first).\n* Downstream: tasks that depend on this task (are blocked by it).\n*\n* Returns 1-hop in/out plus a `allReady` flag indicating whether all\n* upstream blockers are done.\n*\n* T9617 refactor: zero raw SQL — delegates to `taskDeps` from\n* `@cleocode/core/tasks`. The response shape preserves the pre-T9617\n* contract consumed by the Studio dep panel.\n*\n* @task T9617\n*/\nvar GET = async ({ locals, params }) => {\n\tconst ctx = locals.projectCtx;\n\tif (!ctx.tasksDbExists) return json({ error: \"tasks.db unavailable\" }, { status: 503 });\n\tconst { id } = params;\n\tconst result = await taskDeps(ctx.projectPath, id);\n\tif (!result.success) {\n\t\tif (result.error?.code === \"E_NOT_FOUND\") return json({ error: \"not found\" }, { status: 404 });\n\t\treturn json({ error: result.error?.message ?? \"Failed to load deps\" }, { status: 500 });\n\t}\n\tconst { dependsOn, dependedOnBy, unresolvedDeps, allDepsReady } = result.data;\n\tconst upstream = dependsOn.map((t) => ({\n\t\tid: t.id,\n\t\ttitle: t.title,\n\t\tstatus: t.status,\n\t\tpriority: \"medium\"\n\t}));\n\tconst downstream = dependedOnBy.map((t) => ({\n\t\tid: t.id,\n\t\ttitle: t.title,\n\t\tstatus: t.status,\n\t\tpriority: \"medium\"\n\t}));\n\treturn json({\n\t\ttaskId: id,\n\t\tupstream,\n\t\tdownstream,\n\t\tallUpstreamReady: allDepsReady,\n\t\tblockedCount: unresolvedDeps.length,\n\t\tblockingCount: downstream.length\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AACxC,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU;AAC9B,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxF,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM;AACtB,CAAC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;AACnD,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACtB,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,aAAa,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChG,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,qBAAqB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzF,CAAC;AACD,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,IAAI;AAC9E,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACxC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE;AACV,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;AAChB,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM;AAClB,EAAE,QAAQ,EAAE;AACZ,EAAE,CAAC,CAAC;AACJ,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC7C,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE;AACV,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;AAChB,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM;AAClB,EAAE,QAAQ,EAAE;AACZ,EAAE,CAAC,CAAC;AACJ,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,QAAQ;AACV,EAAE,UAAU;AACZ,EAAE,gBAAgB,EAAE,YAAY;AAChC,EAAE,YAAY,EAAE,cAAc,CAAC,MAAM;AACrC,EAAE,aAAa,EAAE,UAAU,CAAC;AAC5B,EAAE,CAAC;AACH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-BdN4AJ6o.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/brain/stream/_server.ts.js"],"sourcesContent":["import { n as createSseStream, r as encodeSseFrame, t as SSE_HEADERS } from \"../../../../../chunks/http.js\";\nimport { n as getBrainDb, o as getTasksDb, r as getConduitDb } from \"../../../../../chunks/connections2.js\";\n//#region src/routes/api/brain/stream/+server.ts\n/** How often (ms) to poll source tables for new rows. */\nvar POLL_INTERVAL_MS = 1e3;\n/** How often (ms) to send a heartbeat to prevent connection drop. */\nvar HEARTBEAT_INTERVAL_MS = 3e4;\n/** Max chars for message preview in message.send events. */\nvar MESSAGE_PREVIEW_LEN = 120;\n/**\n* Serialises a `BrainStreamEvent` to the `data: …\\n\\n` SSE wire format.\n*\n* Delegates to the shared `encodeSseFrame` primitive from the gateway HTTP\n* adapter (R3-T6 · T11450) so this Studio stream and every gateway-routed SSE\n* stream share one tested encoder. A `data:`-only frame (no `event:` field) is\n* byte-identical to the prior handwritten `data: <json>\\n\\n` form, preserving\n* the observable wire exactly.\n*\n* @param event - The event to encode.\n* @returns SSE-formatted string ready for the stream.\n*/\nfunction sseEncode(event) {\n\treturn encodeSseFrame({ data: event });\n}\n/**\n* Initialises watermarks from the current state of all source tables.\n* This prevents replaying historical rows when a client first connects.\n*\n* @param ctx - Active project context for resolving per-project DB paths.\n* @returns Initial watermark state.\n*/\nfunction initWatermarks(ctx) {\n\tconst state = {\n\t\tlastObsRowid: 0,\n\t\tedgeWeights: /* @__PURE__ */ new Map(),\n\t\tlastTaskRowid: 0,\n\t\ttaskStatuses: /* @__PURE__ */ new Map(),\n\t\tlastMsgRowid: 0\n\t};\n\ttry {\n\t\tconst brainDb = getBrainDb(ctx);\n\t\tif (brainDb) {\n\t\t\tstate.lastObsRowid = brainDb.prepare(\"SELECT COALESCE(MAX(rowid), 0) AS max_rowid FROM brain_observations\").get()?.max_rowid ?? 0;\n\t\t\tconst edges = brainDb.prepare(\"SELECT from_id, to_id, weight FROM brain_page_edges\").all();\n\t\t\tfor (const e of edges) state.edgeWeights.set(`${e.from_id}|${e.to_id}`, e.weight);\n\t\t}\n\t} catch {}\n\ttry {\n\t\tconst tasksDb = getTasksDb(ctx);\n\t\tif (tasksDb) {\n\t\t\tstate.lastTaskRowid = tasksDb.prepare(\"SELECT COALESCE(MAX(rowid), 0) AS max_rowid FROM tasks\").get()?.max_rowid ?? 0;\n\t\t\tconst rows = tasksDb.prepare(\"SELECT id, status FROM tasks\").all();\n\t\t\tfor (const r of rows) state.taskStatuses.set(r.id, r.status);\n\t\t}\n\t} catch {}\n\ttry {\n\t\tconst conduitDb = getConduitDb(ctx);\n\t\tif (conduitDb) state.lastMsgRowid = conduitDb.prepare(\"SELECT COALESCE(MAX(rowid), 0) AS max_rowid FROM conduit_messages\").get()?.max_rowid ?? 0;\n\t} catch {}\n\treturn state;\n}\n/**\n* Checks brain_observations for rows inserted since the last poll.\n*\n* @param state - Current watermark state (mutated on new rows).\n* @param ctx - Active project context for resolving brain.db path.\n* @returns Array of `node.create` events to emit.\n*/\nfunction detectNewObservations(state, ctx) {\n\tconst events = [];\n\ttry {\n\t\tconst db = getBrainDb(ctx);\n\t\tif (!db) return events;\n\t\tconst rows = db.prepare(`SELECT rowid, id, title, quality_score, memory_tier, created_at, source_session_id\n FROM brain_observations\n WHERE rowid > ?\n ORDER BY rowid ASC`).all(state.lastObsRowid);\n\t\tfor (const row of rows) {\n\t\t\tstate.lastObsRowid = row.rowid;\n\t\t\tconst node = {\n\t\t\t\tid: `brain:${row.id}`,\n\t\t\t\tkind: \"observation\",\n\t\t\t\tsubstrate: \"brain\",\n\t\t\t\tlabel: row.title,\n\t\t\t\tweight: row.quality_score ?? void 0,\n\t\t\t\tcreatedAt: row.created_at,\n\t\t\t\tmeta: {\n\t\t\t\t\tmemory_tier: row.memory_tier,\n\t\t\t\t\tcreated_at: row.created_at,\n\t\t\t\t\tsource_session_id: row.source_session_id\n\t\t\t\t}\n\t\t\t};\n\t\t\tevents.push({\n\t\t\t\ttype: \"node.create\",\n\t\t\t\tnode,\n\t\t\t\tts: (/* @__PURE__ */ new Date()).toISOString()\n\t\t\t});\n\t\t}\n\t} catch {}\n\treturn events;\n}\n/**\n* Checks brain_page_edges for rows whose weight changed since last poll.\n*\n* Compares against the in-memory weight snapshot. Both newly added edges\n* (not in snapshot) and existing edges with a changed weight are emitted.\n*\n* @param state - Current watermark state (mutated on weight changes).\n* @param ctx - Active project context for resolving brain.db path.\n* @returns Array of `edge.strengthen` events to emit.\n*/\nfunction detectEdgeWeightChanges(state, ctx) {\n\tconst events = [];\n\ttry {\n\t\tconst db = getBrainDb(ctx);\n\t\tif (!db) return events;\n\t\tconst rows = db.prepare(`SELECT from_id, to_id, edge_type, weight, updated_at\n FROM brain_page_edges`).all();\n\t\tfor (const row of rows) {\n\t\t\tconst key = `${row.from_id}|${row.to_id}`;\n\t\t\tconst prevWeight = state.edgeWeights.get(key);\n\t\t\tif (prevWeight === void 0 || prevWeight !== row.weight) {\n\t\t\t\tstate.edgeWeights.set(key, row.weight);\n\t\t\t\tif (prevWeight !== void 0) events.push({\n\t\t\t\t\ttype: \"edge.strengthen\",\n\t\t\t\t\tfromId: `brain:${row.from_id}`,\n\t\t\t\t\ttoId: `brain:${row.to_id}`,\n\t\t\t\t\tedgeType: row.edge_type,\n\t\t\t\t\tweight: row.weight,\n\t\t\t\t\tts: (/* @__PURE__ */ new Date()).toISOString()\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch {}\n\treturn events;\n}\n/**\n* Checks the tasks table for rows whose status changed since last poll.\n*\n* Uses rowid watermark to detect new tasks, then status-map diff for\n* tasks already seen.\n*\n* @param state - Current watermark state (mutated on changes).\n* @param ctx - Active project context for resolving tasks.db path.\n* @returns Array of `task.status` events to emit.\n*/\nfunction detectTaskStatusChanges(state, ctx) {\n\tconst events = [];\n\ttry {\n\t\tconst db = getTasksDb(ctx);\n\t\tif (!db) return events;\n\t\tconst newRows = db.prepare(`SELECT rowid, id, status, updated_at\n FROM tasks\n WHERE rowid > ?\n ORDER BY rowid ASC`).all(state.lastTaskRowid);\n\t\tfor (const row of newRows) {\n\t\t\tstate.lastTaskRowid = row.rowid;\n\t\t\tstate.taskStatuses.set(row.id, row.status);\n\t\t\tevents.push({\n\t\t\t\ttype: \"task.status\",\n\t\t\t\ttaskId: row.id,\n\t\t\t\tstatus: row.status,\n\t\t\t\tts: (/* @__PURE__ */ new Date()).toISOString()\n\t\t\t});\n\t\t}\n\t\tif (state.taskStatuses.size > 0) {\n\t\t\tconst ids = [...state.taskStatuses.keys()];\n\t\t\tconst placeholders = ids.map(() => \"?\").join(\",\");\n\t\t\tconst existingRows = db.prepare(`SELECT id, status FROM tasks WHERE id IN (${placeholders})`).all(...ids);\n\t\t\tfor (const row of existingRows) {\n\t\t\t\tconst prev = state.taskStatuses.get(row.id);\n\t\t\t\tif (prev !== void 0 && prev !== row.status) {\n\t\t\t\t\tstate.taskStatuses.set(row.id, row.status);\n\t\t\t\t\tevents.push({\n\t\t\t\t\t\ttype: \"task.status\",\n\t\t\t\t\t\ttaskId: row.id,\n\t\t\t\t\t\tstatus: row.status,\n\t\t\t\t\t\tts: (/* @__PURE__ */ new Date()).toISOString()\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch {}\n\treturn events;\n}\n/**\n* Checks conduit messages for rows inserted since the last poll.\n*\n* @param state - Current watermark state (mutated on new rows).\n* @param ctx - Active project context for resolving conduit.db path.\n* @returns Array of `message.send` events to emit.\n*/\nfunction detectNewMessages(state, ctx) {\n\tconst events = [];\n\ttry {\n\t\tconst db = getConduitDb(ctx);\n\t\tif (!db) return events;\n\t\tconst rows = db.prepare(`SELECT rowid, id, content, from_agent_id, to_agent_id, created_at\n FROM conduit_messages\n WHERE rowid > ?\n ORDER BY rowid ASC`).all(state.lastMsgRowid);\n\t\tfor (const row of rows) {\n\t\t\tstate.lastMsgRowid = row.rowid;\n\t\t\tconst preview = row.content.length > MESSAGE_PREVIEW_LEN ? `${row.content.slice(0, MESSAGE_PREVIEW_LEN)}…` : row.content;\n\t\t\tevents.push({\n\t\t\t\ttype: \"message.send\",\n\t\t\t\tmessageId: row.id,\n\t\t\t\tfromAgentId: row.from_agent_id ?? \"\",\n\t\t\t\ttoAgentId: row.to_agent_id ?? \"\",\n\t\t\t\tpreview,\n\t\t\t\tts: (/* @__PURE__ */ new Date()).toISOString()\n\t\t\t});\n\t\t}\n\t} catch {}\n\treturn events;\n}\nvar GET = ({ locals, request }) => {\n\tconst signal = request.signal;\n\tconst projectCtx = locals.projectCtx;\n\tconst stream = createSseStream((emitter) => {\n\t\t/** Emit one BrainStreamEvent on the wire (drops after close, never throws). */\n\t\tfunction emit(event) {\n\t\t\temitter.sendRaw(sseEncode(event));\n\t\t}\n\t\tconst watermarks = initWatermarks(projectCtx);\n\t\temit({\n\t\t\ttype: \"hello\",\n\t\t\tts: (/* @__PURE__ */ new Date()).toISOString()\n\t\t});\n\t\tconst heartbeatTimer = setInterval(() => {\n\t\t\tif (emitter.closed) {\n\t\t\t\tclearInterval(heartbeatTimer);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\temit({\n\t\t\t\ttype: \"heartbeat\",\n\t\t\t\tts: (/* @__PURE__ */ new Date()).toISOString()\n\t\t\t});\n\t\t}, HEARTBEAT_INTERVAL_MS);\n\t\tconst pollTimer = setInterval(() => {\n\t\t\tif (emitter.closed) {\n\t\t\t\tclearInterval(pollTimer);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst events = [\n\t\t\t\t...detectNewObservations(watermarks, projectCtx),\n\t\t\t\t...detectEdgeWeightChanges(watermarks, projectCtx),\n\t\t\t\t...detectTaskStatusChanges(watermarks, projectCtx),\n\t\t\t\t...detectNewMessages(watermarks, projectCtx)\n\t\t\t];\n\t\t\tfor (const event of events) {\n\t\t\t\tif (emitter.closed) break;\n\t\t\t\temit(event);\n\t\t\t}\n\t\t}, POLL_INTERVAL_MS);\n\t\treturn () => {\n\t\t\tclearInterval(heartbeatTimer);\n\t\t\tclearInterval(pollTimer);\n\t\t};\n\t}, signal);\n\treturn new Response(stream, { headers: { ...SSE_HEADERS } });\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-Bfr4u3EP.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/memory/reason-why/_server.ts.js"],"sourcesContent":["import { n as getBrainDb, o as getTasksDb } from \"../../../../../chunks/connections2.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/memory/reason-why/+server.ts\n/**\n* Memory causal-trace (reason.why) API endpoint (T990 Wave 1D).\n*\n* @remarks T9616 follow-up: This endpoint joins tasks.db + brain.db in a\n* BFS walk that has no equivalent in the CORE public API. A future task\n* should expose a `reasonWhyBlocked(taskId, projectRoot)` op in\n* `packages/core/src/memory/public-api.ts` using the existing\n* `memory.reason.why` CLI logic, then migrate this handler.\n* See docs/plans/E-CORE-FIRST-ARCH.md Task 2.\n*\n* GET /api/memory/reason-why?taskId=<id>\n*\n* Returns an unresolved-blocker walk for the given task: starting from\n* the task's dependencies that are still `pending` or `blocked`, recurse\n* through their blockers to a fixed depth. Leaf blockers (no further\n* unresolved upstream deps) are flagged as root causes.\n*\n* Implementation note: the canonical `memory.reason.why` CLI op uses the\n* CLEO core facade to join tasks + decisions. For Studio we materialise\n* the trace against tasks.db + brain.db directly so we can ship the UI\n* without the SDK-backed dispatch layer. The response shape mirrors\n* `MemoryReasonWhyResult` from contracts so a future switch is a swap,\n* not a rewrite.\n*\n* @task T990\n* @wave 1D\n*/\nvar MAX_DEPTH = 5;\nvar UNRESOLVED_STATUSES = new Set([\n\t\"pending\",\n\t\"blocked\",\n\t\"proposed\",\n\t\"active\"\n]);\nvar GET = ({ locals, url }) => {\n\tconst taskId = (url.searchParams.get(\"taskId\") ?? \"\").trim();\n\tif (!taskId) return json({\n\t\ttaskId: \"\",\n\t\tblockers: [],\n\t\trootCauses: [],\n\t\tdepth: 0\n\t});\n\tconst tasksDb = getTasksDb(locals.projectCtx);\n\tconst brainDb = getBrainDb(locals.projectCtx);\n\tif (!tasksDb) return json({\n\t\ttaskId,\n\t\tblockers: [],\n\t\trootCauses: [],\n\t\tdepth: 0\n\t});\n\ttry {\n\t\tif (!tasksDb.prepare(\"SELECT id, status, title FROM tasks WHERE id = ?\").get(taskId)) return json({\n\t\t\ttaskId,\n\t\t\tblockers: [],\n\t\t\trootCauses: [],\n\t\t\tdepth: 0\n\t\t});\n\t\tconst visited = /* @__PURE__ */ new Set();\n\t\tconst blockers = [];\n\t\tconst rootCauses = [];\n\t\tconst queue = [{\n\t\t\ttaskId,\n\t\t\tdepth: 0\n\t\t}];\n\t\tlet maxDepth = 0;\n\t\twhile (queue.length > 0) {\n\t\t\tconst frame = queue.shift();\n\t\t\tif (!frame) break;\n\t\t\tif (visited.has(frame.taskId)) continue;\n\t\t\tvisited.add(frame.taskId);\n\t\t\tif (frame.depth > MAX_DEPTH) continue;\n\t\t\tmaxDepth = Math.max(maxDepth, frame.depth);\n\t\t\tlet depIds = [];\n\t\t\ttry {\n\t\t\t\tdepIds = tasksDb.prepare(\"SELECT dep_id FROM task_dependencies WHERE task_id = ?\").all(frame.taskId).map((r) => r.dep_id);\n\t\t\t} catch {\n\t\t\t\tdepIds = [];\n\t\t\t}\n\t\t\tconst unresolvedChildren = [];\n\t\t\tfor (const depId of depIds) {\n\t\t\t\tconst row = tasksDb.prepare(\"SELECT id, status, title FROM tasks WHERE id = ?\").get(depId);\n\t\t\t\tif (!row) continue;\n\t\t\t\tif (!UNRESOLVED_STATUSES.has(row.status.toLowerCase())) continue;\n\t\t\t\tunresolvedChildren.push(row.id);\n\t\t\t\tlet decisions = [];\n\t\t\t\tif (brainDb) try {\n\t\t\t\t\tdecisions = brainDb.prepare(`SELECT id, decision, rationale\n FROM brain_decisions\n WHERE context_task_id = ?\n AND invalid_at IS NULL\n ORDER BY created_at DESC\n LIMIT 5`).all(row.id).map((d) => ({\n\t\t\t\t\t\tid: d.id,\n\t\t\t\t\t\ttitle: d.decision,\n\t\t\t\t\t\trationale: d.rationale\n\t\t\t\t\t}));\n\t\t\t\t} catch {\n\t\t\t\t\tdecisions = [];\n\t\t\t\t}\n\t\t\t\tblockers.push({\n\t\t\t\t\ttaskId: row.id,\n\t\t\t\t\tstatus: row.status,\n\t\t\t\t\ttitle: row.title,\n\t\t\t\t\treason: null,\n\t\t\t\t\tdepth: frame.depth + 1,\n\t\t\t\t\tdecisions\n\t\t\t\t});\n\t\t\t\tqueue.push({\n\t\t\t\t\ttaskId: row.id,\n\t\t\t\t\tdepth: frame.depth + 1\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (frame.depth > 0 && unresolvedChildren.length === 0) rootCauses.push(frame.taskId);\n\t\t}\n\t\treturn json({\n\t\t\ttaskId,\n\t\t\tblockers,\n\t\t\trootCauses,\n\t\t\tdepth: maxDepth\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\ttaskId,\n\t\t\tblockers: [],\n\t\t\trootCauses: [],\n\t\t\tdepth: 0\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-Bw7A4zgb.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/tasks/_id_/dispatch/_server.ts.js"],"sourcesContent":["import { a as ok, i as isParseError, n as gatewayClient, r as isGatewayUnreachable, s as parseJsonBody, t as err } from \"../../../../../../chunks/_dispatch.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/tasks/[id]/dispatch/+server.ts\n/**\n* POST /api/tasks/[id]/dispatch — Conductor \"Dispatch\" action for the\n* interactive dispatcher board (T11930 · M5).\n*\n* Dispatching a Backlog/Ready card SPAWNS a real worker in a git worktree via\n* `orchestrate.spawn`. Spawning is real, expensive, and provisions filesystem +\n* worktree state, so this is GATEWAY-ONLY and SERVER-SIDE:\n*\n* - **Server-side only** — the spawn never runs from the raw browser client.\n* Secrets, worktree creation, and the orchestrate surface stay behind this\n* route (the request only carries the task id + tier).\n* - **Gateway-only (no in-process fallback)** — the spawn routes through the\n* `/v1` gateway SDK client into the daemon's orchestrate surface. When the\n* daemon listener is down we return a typed `E_GATEWAY_UNREACHABLE` so the UI\n* tells the operator to start `cleo daemon serve` rather than silently\n* spawning a worktree from a web request.\n*\n* On success the task transitions to the Running lane (the spawn marks it\n* active / claimed) and the live worker stream (T11929) attaches to the card.\n*\n* @task T11930\n* @epic T11559\n*/\nvar POST = async ({ params, request }) => {\n\tconst taskId = params.id;\n\tconst body = await parseJsonBody(request);\n\tif (isParseError(body)) return json(err(\"E_VALIDATION\", body._parseError), { status: 400 });\n\tconst rawTier = body.tier;\n\tconst tier = rawTier === 0 || rawTier === 2 ? rawTier : 1;\n\ttry {\n\t\tconst spawn = gatewayClient().orchestrate.spawn;\n\t\tconst envelope = (await spawn({ body: {\n\t\t\ttaskId,\n\t\t\ttier\n\t\t} })).data;\n\t\tif (envelope && envelope.success === false) return json(err(\"E_SPAWN_REJECTED\", envelope.error?.message ?? \"Spawn rejected\"), { status: 409 });\n\t\treturn json(ok({\n\t\t\ttaskId,\n\t\t\ttier,\n\t\t\tspawn: envelope?.data ?? {}\n\t\t}));\n\t} catch (e) {\n\t\tif (isGatewayUnreachable(e)) return json(err(\"E_GATEWAY_UNREACHABLE\", \"The CLEO daemon is not running. Start it with `cleo daemon serve` to dispatch a worker.\"), { status: 503 });\n\t\treturn json(err(\"E_SPAWN_ERROR\", e instanceof Error ? e.message : \"Spawn failed\"), { status: 502 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC1C,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE;AACzB,CAAC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC;AAC1C,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC5F,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI;AAC1B,CAAC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC;AAC1D,CAAC,IAAI;AACL,EAAE,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC,WAAW,CAAC,KAAK;AACjD,EAAE,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE;AACxC,GAAG,MAAM;AACT,GAAG;AACH,GAAG,EAAE,CAAC,EAAE,IAAI;AACZ,EAAE,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChJ,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,GAAG,MAAM;AACT,GAAG,IAAI;AACP,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI;AAC5B,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,yFAAyF,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpL,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrG,CAAC;AACD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-C3Jo-ju8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/memory/learning-store/_server.ts.js"],"sourcesContent":["import { n as getBrainDb } from \"../../../../../chunks/connections2.js\";\nimport { a as optionalString, c as parseJsonBody, i as optionalBool, l as requireString, n as isParseError, o as optionalStringArray, r as ok, s as optionalUnit, t as err, u as shortId } from \"../../../../../chunks/_lafs.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/memory/learning-store/+server.ts\n/**\n* Memory learning-store write endpoint (T990 Wave 1D).\n*\n* @remarks T9616 follow-up: `storeLearning` from\n* `packages/core/src/memory/learnings.ts` is not yet promoted to the CORE\n* public API (`packages/core/src/memory/public-api.ts`). Once promoted, this\n* handler should be migrated to call `storeLearning` rather than issuing raw\n* SQL. See docs/plans/E-CORE-FIRST-ARCH.md Task 2.\n*\n* POST /api/memory/learning-store\n* body: {\n* insight: string,\n* source: string,\n* confidence?: number (0..1),\n* actionable?: boolean,\n* application?: string,\n* applicableTypes?: string[]\n* }\n* → LAFS envelope { success, data: { id, deduplicated, createdAt } }\n*\n* Inserts a new row into `brain_learnings`. Dedup matches on lowered\n* insight — if a match is found, the confidence is averaged with the\n* existing value and `deduplicated: true` is returned.\n*\n* @task T990\n* @wave 1D\n*/\nvar POST = async ({ locals, request }) => {\n\tconst body = await parseJsonBody(request);\n\tif (isParseError(body)) return json(err(\"E_VALIDATION\", body._parseError), { status: 400 });\n\tconst insightR = requireString(body, \"insight\", 2e3);\n\tif (!insightR.ok) return json(err(\"E_VALIDATION\", insightR.message), { status: 400 });\n\tconst sourceR = requireString(body, \"source\", 500);\n\tif (!sourceR.ok) return json(err(\"E_VALIDATION\", sourceR.message), { status: 400 });\n\tconst confidence = optionalUnit(body, \"confidence\") ?? .5;\n\tconst actionable = optionalBool(body, \"actionable\") ?? false;\n\tconst application = optionalString(body, \"application\");\n\tconst applicableTypes = optionalStringArray(body, \"applicableTypes\");\n\tconst db = getBrainDb(locals.projectCtx);\n\tif (!db) return json(err(\"E_BRAIN_UNAVAILABLE\", \"brain.db is unavailable for this project\"), { status: 503 });\n\ttry {\n\t\tconst dupe = db.prepare(`SELECT id, confidence FROM brain_learnings\n WHERE LOWER(insight) = LOWER(?)\n LIMIT 1`).get(insightR.value);\n\t\tconst createdAt = (/* @__PURE__ */ new Date()).toISOString();\n\t\tif (dupe) {\n\t\t\tconst base = typeof dupe.confidence === \"number\" ? dupe.confidence : .5;\n\t\t\tconst merged = Math.max(0, Math.min(1, (base + confidence) / 2));\n\t\t\tdb.prepare(\"UPDATE brain_learnings SET confidence = ? WHERE id = ?\").run(merged, dupe.id);\n\t\t\treturn json(ok({\n\t\t\t\tid: dupe.id,\n\t\t\t\tdeduplicated: true,\n\t\t\t\tcreatedAt\n\t\t\t}));\n\t\t}\n\t\tconst id = `L-${shortId()}`;\n\t\tdb.prepare(`INSERT INTO brain_learnings\n (id, insight, source, confidence, actionable, application, applicable_types,\n memory_tier, verified, prune_candidate, created_at)\n VALUES (?, ?, ?, ?, ?, ?, ?,\n 'short', 0, 0, ?)`).run(id, insightR.value, sourceR.value, confidence, actionable ? 1 : 0, application ?? null, applicableTypes ? JSON.stringify(applicableTypes) : null, createdAt);\n\t\treturn json(ok({\n\t\t\tid,\n\t\t\tdeduplicated: false,\n\t\t\tcreatedAt\n\t\t}));\n\t} catch (e) {\n\t\treturn json(err(\"E_BRAIN_WRITE\", e instanceof Error ? e.message : \"Insert failed\"), { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-C4BcDGqS.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/tasks/_id_/transition/_server.ts.js"],"sourcesContent":["import { a as AGENT_LIFECYCLE_LANES } from \"../../../../../../chunks/tasks.js\";\nimport { t as updateTask } from \"../../../../../../chunks/update.js\";\nimport { a as ok, c as requireString, i as isParseError, n as gatewayClient, r as isGatewayUnreachable, s as parseJsonBody, t as err } from \"../../../../../../chunks/_dispatch.js\";\nimport \"../../../../../../chunks/agent-lifecycle-lane.js\";\nimport { t as planLaneTransition } from \"../../../../../../chunks/lane-transition.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/tasks/[id]/transition/+server.ts\n/** Narrow a string to a known lane id. */\nfunction asLane(v) {\n\treturn AGENT_LIFECYCLE_LANES.includes(v) ? v : null;\n}\nvar POST = async ({ locals, params, request }) => {\n\tconst ctx = locals.projectCtx;\n\tif (!ctx.tasksDbExists) return json(err(\"E_DB_UNAVAILABLE\", \"tasks.db unavailable\"), { status: 503 });\n\tconst taskId = params.id;\n\tconst body = await parseJsonBody(request);\n\tif (isParseError(body)) return json(err(\"E_VALIDATION\", body._parseError), { status: 400 });\n\tconst fromR = requireString(body, \"fromLane\", 32);\n\tif (!fromR.ok) return json(err(\"E_VALIDATION\", fromR.message), { status: 400 });\n\tconst toR = requireString(body, \"toLane\", 32);\n\tif (!toR.ok) return json(err(\"E_VALIDATION\", toR.message), { status: 400 });\n\tconst fromLane = asLane(fromR.value);\n\tconst toLane = asLane(toR.value);\n\tif (!fromLane || !toLane) return json(err(\"E_VALIDATION\", \"fromLane / toLane must be valid lane ids\"), { status: 400 });\n\tconst planned = planLaneTransition(taskId, fromLane, toLane);\n\tif (!planned.ok) return json(err(`E_INVALID_TRANSITION:${planned.reason}`, planned.message), { status: 422 });\n\tconst { status, summary } = planned.plan;\n\ttry {\n\t\tconst envelope = (await gatewayClient().tasks.update({ body: {\n\t\t\ttaskId,\n\t\t\tstatus\n\t\t} })).data;\n\t\tif (envelope && envelope.success === false) return json(err(\"E_GATEWAY_REJECTED\", envelope.error?.message ?? \"Gateway rejected the update\"), { status: 409 });\n\t\treturn json(ok({\n\t\t\ttaskId,\n\t\t\tstatus,\n\t\t\tfromLane,\n\t\t\ttoLane,\n\t\t\tvia: \"gateway\",\n\t\t\tsummary\n\t\t}));\n\t} catch (gatewayErr) {\n\t\tif (!isGatewayUnreachable(gatewayErr)) return json(err(\"E_GATEWAY_ERROR\", gatewayErr instanceof Error ? gatewayErr.message : \"Gateway update failed\"), { status: 502 });\n\t}\n\ttry {\n\t\tawait updateTask({\n\t\t\ttaskId,\n\t\t\tstatus\n\t\t}, ctx.projectPath);\n\t\treturn json(ok({\n\t\t\ttaskId,\n\t\t\tstatus,\n\t\t\tfromLane,\n\t\t\ttoLane,\n\t\t\tvia: \"core\",\n\t\t\tsummary\n\t\t}));\n\t} catch (coreErr) {\n\t\tconst e = coreErr;\n\t\tif (e?.code === 4) return json(err(\"E_NOT_FOUND\", `Task not found: ${taskId}`), { status: 404 });\n\t\treturn json(err(\"E_UPDATE_FAILED\", e?.message ?? \"Failed to update task status\"), { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-C5NF-UgC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/project/switch/_server.ts.js"],"sourcesContent":["import { s as setActiveProjectId } from \"../../../../../chunks/project-context.js\";\nimport { error, json } from \"@sveltejs/kit\";\n//#region src/routes/api/project/switch/+server.ts\n/**\n* POST /api/project/switch\n*\n* Accepts `{ projectId: string }` as JSON, sets the active project cookie,\n* and returns `{ success: true }`. Used by the header ProjectSelector\n* component for client-side project switching without a full page form POST.\n*\n* @task T646\n*/\nvar POST = async ({ request, cookies }) => {\n\tlet body;\n\ttry {\n\t\tbody = await request.json();\n\t} catch {\n\t\tthrow error(400, \"Invalid JSON body\");\n\t}\n\tif (typeof body !== \"object\" || body === null || typeof body.projectId !== \"string\") throw error(400, \"Missing or invalid projectId\");\n\tconst projectId = body.projectId;\n\tif (!projectId.trim()) throw error(400, \"projectId must not be empty\");\n\tsetActiveProjectId(cookies, projectId);\n\treturn json({ success: true });\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK;AAC3C,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC7B,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACvC,CAAC;AACD,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,8BAA8B,CAAC;AACtI,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AACjC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,6BAA6B,CAAC;AACvE,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC;AACvC,CAAC,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC/B;;;;"}
|