cognova 0.2.27 → 0.2.28
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{DcU1vVta.js → -XfM4jpu.js} +1 -1
- package/.output/public/_nuxt/0L-9iIbm.js +1 -0
- package/.output/public/_nuxt/{tHI-osWJ.js → 0mcDe5Hg.js} +1 -1
- package/.output/public/_nuxt/{UPUPLBes.js → 4Nlt-3Ix.js} +1 -1
- package/.output/public/_nuxt/{lheR7PB2.js → 5FVMuLeh.js} +1 -1
- package/.output/public/_nuxt/{2Eo3qwxj.js → 5qkiDtwf.js} +1 -1
- package/.output/public/_nuxt/{iGKcFJAp.js → 6_fEEpaq.js} +1 -1
- package/.output/public/_nuxt/{C4zN4OGX.js → 944smzho.js} +1 -1
- package/.output/public/_nuxt/{YJeqx4Ll.js → B03oRqJe.js} +1 -1
- package/.output/public/_nuxt/{CZT64TBr.js → B06CcGVK.js} +3 -3
- package/.output/public/_nuxt/{BivpMuR_.js → B0UpgYEt.js} +1 -1
- package/.output/public/_nuxt/{DwIL_HsX.js → B0YLhHra.js} +1 -1
- package/.output/public/_nuxt/B0v0agy0.js +1 -0
- package/.output/public/_nuxt/{Bf_52ujb.js → B1A26hhf.js} +1 -1
- package/.output/public/_nuxt/{DTb_yOmO.js → B592hx40.js} +1 -1
- package/.output/public/_nuxt/B5l6QVGz.js +1 -0
- package/.output/public/_nuxt/{8T7bItPs.js → B6BF2w8r.js} +3 -3
- package/.output/public/_nuxt/{BpN402qF.js → B6m5ExpJ.js} +1 -1
- package/.output/public/_nuxt/{BiIuqBpS.js → B91qlTSF.js} +3 -3
- package/.output/public/_nuxt/B9sXHKws.js +1 -0
- package/.output/public/_nuxt/{KtLDewau.js → BAh-k-y8.js} +1 -1
- package/.output/public/_nuxt/{C6IV65Gy.js → BDQ6hxO7.js} +1 -1
- package/.output/public/_nuxt/{BFhzL-L6.js → BGytjslk.js} +1 -1
- package/.output/public/_nuxt/{Bl7M4LXt.js → BIoHE1oQ.js} +1 -1
- package/.output/public/_nuxt/{CKcctj3r.js → BNXyokAF.js} +1 -1
- package/.output/public/_nuxt/{DbpzXcer.js → BNxg8OvE.js} +1 -1
- package/.output/public/_nuxt/{B_IIr5Dj.js → BPBLcBHM.js} +2 -2
- package/.output/public/_nuxt/{CAdrgifl.js → BQeDYnyj.js} +1 -1
- package/.output/public/_nuxt/{DfLpZE5I.js → BUfJTKJk.js} +1 -1
- package/.output/public/_nuxt/{DGMjiZpH.js → BVJkcOi4.js} +1 -1
- package/.output/public/_nuxt/{BISpLSKY.js → BVNZYpXH.js} +1 -1
- package/.output/public/_nuxt/{B2ejvp4F.js → BZ3u3Znq.js} +1 -1
- package/.output/public/_nuxt/{CJa5E6Hb.js → B_V_KZmg.js} +1 -1
- package/.output/public/_nuxt/{UvHHDzTl.js → BaTcZylh.js} +1 -1
- package/.output/public/_nuxt/{Bo6WXrLP.js → BbdFZa4U.js} +1 -1
- package/.output/public/_nuxt/{DA0qOQ-H.js → BeAxkmtt.js} +1 -1
- package/.output/public/_nuxt/{BH_Lonko.js → BfiU8B4M.js} +1 -1
- package/.output/public/_nuxt/{DHmoYAOF.js → BhOf69HZ.js} +1 -1
- package/.output/public/_nuxt/{2ixlK8td.js → BlKgmZLh.js} +1 -1
- package/.output/public/_nuxt/{Dzjd35Uu.js → BlplwzgB.js} +1 -1
- package/.output/public/_nuxt/{uP6kBJyw.js → BnmZcuhY.js} +1 -1
- package/.output/public/_nuxt/{CfTBjUgE.js → BpExBTyC.js} +1 -1
- package/.output/public/_nuxt/{CXWZZrP6.js → BuURpKT4.js} +1 -1
- package/.output/public/_nuxt/{qBDqAV_3.js → Bvqgc_wA.js} +1 -1
- package/.output/public/_nuxt/{CzYLEcMN.js → C0FuVjdX.js} +1 -1
- package/.output/public/_nuxt/{DWJ2tQkX.js → C1RFLzd_.js} +1 -1
- package/.output/public/_nuxt/{DCj0VKbE.js → C4MrxKnP.js} +1 -1
- package/.output/public/_nuxt/{Bzkzi9GX.js → C4ui9LWq.js} +1 -1
- package/.output/public/_nuxt/{DlOqPmYc.js → C7RIYfkH.js} +1 -1
- package/.output/public/_nuxt/{BRHBOpyl.js → C7hn68Tp.js} +1 -1
- package/.output/public/_nuxt/{B8E4nRtc.js → C8gC5cUj.js} +1 -1
- package/.output/public/_nuxt/{l0zNTVMN.js → CAJH0xMY.js} +1 -1
- package/.output/public/_nuxt/{T9m6PG7Q.js → CBpuaar1.js} +1 -1
- package/.output/public/_nuxt/{CuzrMna6.js → CDP4J5em.js} +1 -1
- package/.output/public/_nuxt/{Ctt1B8Lg.js → CGTQGJ_c.js} +1 -1
- package/.output/public/_nuxt/{D5dMt776.js → CHd8mdNy.js} +1 -1
- package/.output/public/_nuxt/{MwLHW_S3.js → CHn6tbtE.js} +1 -1
- package/.output/public/_nuxt/{CAANELnI.js → CKfAI3Hb.js} +1 -1
- package/.output/public/_nuxt/{DSNEk90K.js → CLm_rHHY.js} +1 -1
- package/.output/public/_nuxt/{BcGMY6mI.js → CLzxl_Kg.js} +1 -1
- package/.output/public/_nuxt/{BqSmw12h.js → CNVj60PG.js} +1 -1
- package/.output/public/_nuxt/{BYRCVlFB.js → CNi_mvQS.js} +1 -1
- package/.output/public/_nuxt/{7VIfpS3K.js → COMJZX17.js} +1 -1
- package/.output/public/_nuxt/{Bq9rkJSd.js → CQcJNYmv.js} +1 -1
- package/.output/public/_nuxt/{DH9moCuc.js → CT8T1FW9.js} +1 -1
- package/.output/public/_nuxt/{Cv0TenvS.js → CTJDAjdO.js} +1 -1
- package/.output/public/_nuxt/{C5IBUVPW.js → CTXxmwx3.js} +1 -1
- package/.output/public/_nuxt/{BWgA6Icb.js → CV92g0qz.js} +1 -1
- package/.output/public/_nuxt/{BIRrab0B.js → CVwzer_Y.js} +1 -1
- package/.output/public/_nuxt/{CfiM4f33.js → CXRkSVkD.js} +1 -1
- package/.output/public/_nuxt/{CAaAX5yO.js → CamCmKfq.js} +1 -1
- package/.output/public/_nuxt/{BpyMs36w.js → CaohnGAD.js} +1 -1
- package/.output/public/_nuxt/{CSZw5eEq.js → Cg8k3_b4.js} +1 -1
- package/.output/public/_nuxt/{6f0CtDWh.js → CiQJYbKL.js} +1 -1
- package/.output/public/_nuxt/{CLk-ZoD9.js → Cjj-eCEV.js} +1 -1
- package/.output/public/_nuxt/{De94RhMH.js → CkfP4uja.js} +1 -1
- package/.output/public/_nuxt/{DM2gKi5N.js → CoUQ3qpL.js} +1 -1
- package/.output/public/_nuxt/{D7PJ9LEZ.js → CopZwjN8.js} +1 -1
- package/.output/public/_nuxt/{BSHWLnRg.js → Cpyrc9BG.js} +1 -1
- package/.output/public/_nuxt/{DcC8s2L0.js → CtLfbSRS.js} +1 -1
- package/.output/public/_nuxt/{DjY2CmhB.js → CtyKXJ-J.js} +1 -1
- package/.output/public/_nuxt/{J00SROjJ.js → CvaD7s2l.js} +1 -1
- package/.output/public/_nuxt/{DKFnR3f3.js → Cw2TcJMF.js} +1 -1
- package/.output/public/_nuxt/{IwZpKn7a.js → Cwel2ykQ.js} +1 -1
- package/.output/public/_nuxt/{CZZl10o-.js → CyZlzytZ.js} +1 -1
- package/.output/public/_nuxt/{awkGRsuS.js → Cygjd4rF.js} +1 -1
- package/.output/public/_nuxt/{tIRQIyWk.js → CzxGRepV.js} +1 -1
- package/.output/public/_nuxt/{BrN_ntKk.js → D0fJg-Y2.js} +1 -1
- package/.output/public/_nuxt/{Dn0NJtvh.js → D12yGpMq.js} +1 -1
- package/.output/public/_nuxt/{DbARsMbj.js → D7Bxfxio.js} +1 -1
- package/.output/public/_nuxt/{B3WWnSJo.js → DEl5RR7R.js} +1 -1
- package/.output/public/_nuxt/{Cj2M_iYP.js → DFVXHy0C.js} +1 -1
- package/.output/public/_nuxt/{DNNOQPuJ.js → DFW8HOVB.js} +1 -1
- package/.output/public/_nuxt/{CJAiAVnY.js → DH2yWNbZ.js} +1 -1
- package/.output/public/_nuxt/{dGa7RyJ8.js → DIDjR8Ry.js} +1 -1
- package/.output/public/_nuxt/{DfIQdSBL.js → DKHJBr2m.js} +1 -1
- package/.output/public/_nuxt/{DuDOxoNd.js → DKd2_wBj.js} +1 -1
- package/.output/public/_nuxt/{D2A5WweU.js → DKrd1pCW.js} +1 -1
- package/.output/public/_nuxt/{eTB2hbQs.js → DOcEwtqN.js} +1 -1
- package/.output/public/_nuxt/{C4XDZQVz.js → DSQ9bpNJ.js} +1 -1
- package/.output/public/_nuxt/{CjPpmwck.js → DWG9jKCo.js} +1 -1
- package/.output/public/_nuxt/{D-ysM-Cd.js → DY78sr_b.js} +1 -1
- package/.output/public/_nuxt/{BY7b-3vi.js → DZQxxfue.js} +1 -1
- package/.output/public/_nuxt/{kbSxj5Sa.js → DZpgj5sA.js} +1 -1
- package/.output/public/_nuxt/{CSwU6kaw.js → Dc8vLBQN.js} +1 -1
- package/.output/public/_nuxt/{BiQQLbjx.js → DcT64MxD.js} +1 -1
- package/.output/public/_nuxt/{CbLDrSEX.js → DdmLHNRP.js} +1 -1
- package/.output/public/_nuxt/{SbeB_1mT.js → Dg19_qAK.js} +1 -1
- package/.output/public/_nuxt/{CDX3o-x3.js → DhIZvLeI.js} +1 -1
- package/.output/public/_nuxt/{aIIZqPga.js → DjaEQQhf.js} +1 -1
- package/.output/public/_nuxt/{qEwYRBS3.js → DkUMlRf8.js} +1 -1
- package/.output/public/_nuxt/{De4iE8YV.js → DkjKiJOq.js} +1 -1
- package/.output/public/_nuxt/{BF1GoXYw.js → DlR5hUi3.js} +1 -1
- package/.output/public/_nuxt/{CSQciH0m.js → DnfG5RzJ.js} +1 -1
- package/.output/public/_nuxt/{DhGDBmGP.js → DohhIeRk.js} +1 -1
- package/.output/public/_nuxt/{D5ut0FcJ.js → Dom1vIen.js} +1 -1
- package/.output/public/_nuxt/{FOQllft2.js → Ds97nj0P.js} +1 -1
- package/.output/public/_nuxt/{CU58Jr3-.js → DxT3YmAC.js} +1 -1
- package/.output/public/_nuxt/{CnLzT6v5.js → DxcN7Uv7.js} +1 -1
- package/.output/public/_nuxt/{BIhmDjJ8.js → DxcbYcrE.js} +1 -1
- package/.output/public/_nuxt/{Dj__3Bye.js → DyVUuE07.js} +1 -1
- package/.output/public/_nuxt/{FZ4DGVUC.js → Dz-vwDzE.js} +1 -1
- package/.output/public/_nuxt/{CSu09NYz.js → EeCE4NvG.js} +1 -1
- package/.output/public/_nuxt/{BiDXeTfW.js → EnGykH_X.js} +1 -1
- package/.output/public/_nuxt/{yyeTZy_R.js → GJMyZaby.js} +1 -1
- package/.output/public/_nuxt/{Dhf7T8TT.js → I7OHJVxg.js} +1 -1
- package/.output/public/_nuxt/{B3EVQLy0.js → K0RZW9fp.js} +1 -1
- package/.output/public/_nuxt/{_fMejg0f.js → K1o4brLx.js} +1 -1
- package/.output/public/_nuxt/{Bes0SO2V.js → OKVQJ7yj.js} +1 -1
- package/.output/public/_nuxt/{C6M-e7pT.js → Q3QJAuZ2.js} +1 -1
- package/.output/public/_nuxt/{2nDmPuey.js → Tirj2rC0.js} +1 -1
- package/.output/public/_nuxt/{p1xXbtMk.js → VcsszHDj.js} +1 -1
- package/.output/public/_nuxt/WG3LXN-9.js +1 -0
- package/.output/public/_nuxt/{C1pt3HyX.js → aUYaYlYl.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/7de5e0df-2e0a-435c-a2e3-fc2312beb6ad.json +1 -0
- package/.output/public/_nuxt/{BIRvCR2S.js → cGEbEAGz.js} +1 -1
- package/.output/public/_nuxt/{UmRz2svG.js → ds0WOZHj.js} +1 -1
- package/.output/public/_nuxt/{LFbgE4QY.js → e4zQkzJm.js} +1 -1
- package/.output/public/_nuxt/{k5H4Okf8.js → eFu2sWbl.js} +1 -1
- package/.output/public/_nuxt/entry.B0qcqYYu.css +1 -0
- package/.output/public/_nuxt/{Bx3A9QLd.js → ggWK6BEa.js} +1 -1
- package/.output/public/_nuxt/{DD864DXc.js → hkCaWCzP.js} +1 -1
- package/.output/public/_nuxt/{DCKH9QC5.js → jF9FNyOl.js} +1 -1
- package/.output/public/_nuxt/{DEZB2UVM.js → jenjyHml.js} +1 -1
- package/.output/public/_nuxt/{B6kGLfxE.js → kMwuhvCf.js} +1 -1
- package/.output/public/_nuxt/{KEgU3jLl.js → oWO88tvt.js} +1 -1
- package/.output/public/_nuxt/{DMar0qcv.js → olSL1K5t.js} +1 -1
- package/.output/public/_nuxt/{CnViW7-O.js → ptAR8AWT.js} +1 -1
- package/.output/public/_nuxt/{Dm4dqn9Q.js → rTscsMvH.js} +1 -1
- package/.output/public/_nuxt/{BP60VAOa.js → xooRr3tW.js} +1 -1
- package/.output/public/_nuxt/{CjhuD2Kg.js → zApTn6EM.js} +2 -2
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{memories-BqA719O1.mjs → memories-DLa6uEfV.mjs} +2 -31
- package/.output/server/chunks/build/memories-DLa6uEfV.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +1 -1
- package/.output/server/chunks/build/styles.mjs +2 -2
- package/.output/server/chunks/nitro/nitro.mjs +933 -920
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/context.get.mjs +13 -9
- package/.output/server/chunks/routes/api/memory/context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/extract.post.mjs +4 -7
- package/.output/server/chunks/routes/api/memory/extract.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/search.get.mjs +22 -25
- package/.output/server/chunks/routes/api/memory/search.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/store.post.mjs +1 -3
- package/.output/server/chunks/routes/api/memory/store.post.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/Claude/skills/memory/memory.py +1 -7
- package/app/pages/memories.vue +0 -15
- package/dist/cli/index.js +1 -0
- package/package.json +1 -1
- package/server/api/memory/context.get.ts +19 -15
- package/server/api/memory/extract.post.ts +1 -2
- package/server/api/memory/search.get.ts +29 -34
- package/server/api/memory/store.post.ts +1 -2
- package/server/bridge/responder.ts +10 -5
- package/server/db/schema.ts +1 -2
- package/server/drizzle/migrations/0017_unusual_landau.sql +1 -0
- package/server/drizzle/migrations/meta/0017_snapshot.json +1965 -0
- package/server/drizzle/migrations/meta/_journal.json +7 -0
- package/server/services/memory-extractor.ts +3 -6
- package/server/utils/document-sync.ts +27 -20
- package/shared/types/index.ts +1 -4
- package/.output/public/_nuxt/BMsNdiuj.js +0 -1
- package/.output/public/_nuxt/BUa1DKMp.js +0 -1
- package/.output/public/_nuxt/BgQoNHMg.js +0 -1
- package/.output/public/_nuxt/CzSXUP4q.js +0 -1
- package/.output/public/_nuxt/DwbYPACo.js +0 -1
- package/.output/public/_nuxt/builds/meta/61420747-850d-4496-817a-d86f57e0fb7d.json +0 -1
- package/.output/public/_nuxt/entry.ZJxWCrU6.css +0 -1
- package/.output/server/chunks/build/memories-BqA719O1.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nitro.mjs","sources":["../../../../node_modules/.pnpm/uncrypto@0.1.3/node_modules/uncrypto/dist/crypto.node.mjs","../../../../node_modules/.pnpm/crossws@0.3.5/node_modules/crossws/dist/shared/crossws.DfCzGthR.mjs","../../../../node_modules/.pnpm/crossws@0.3.5/node_modules/crossws/dist/shared/crossws.D9ehKjSh.mjs","../../../../node_modules/.pnpm/crossws@0.3.5/node_modules/crossws/dist/shared/crossws.By9qWDAI.mjs","../../../../node_modules/.pnpm/crossws@0.3.5/node_modules/crossws/dist/shared/crossws.CipVM6lf.mjs","../../../../node_modules/.pnpm/crossws@0.3.5/node_modules/crossws/dist/adapters/node.mjs","../../../../node_modules/.pnpm/destr@2.0.5/node_modules/destr/dist/index.mjs","../../../../node_modules/.pnpm/ufo@1.6.1/node_modules/ufo/dist/index.mjs","../../../../node_modules/.pnpm/cookie-es@1.2.2/node_modules/cookie-es/dist/index.mjs","../../../../node_modules/.pnpm/radix3@1.1.2/node_modules/radix3/dist/index.mjs","../../../../node_modules/.pnpm/defu@6.1.4/node_modules/defu/dist/defu.mjs","../../../../node_modules/.pnpm/node-mock-http@1.0.4/node_modules/node-mock-http/dist/index.mjs","../../../../node_modules/.pnpm/h3@1.15.4/node_modules/h3/dist/index.mjs","../../../../node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.mjs","../../../../node_modules/.pnpm/node-fetch-native@1.6.7/node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs","../../../../node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs","../../../../node_modules/.pnpm/unstorage@1.17.3_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___ioredis@5.8.2/node_modules/unstorage/dist/shared/unstorage.zVDD2mZo.mjs","../../../../node_modules/.pnpm/unstorage@1.17.3_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___ioredis@5.8.2/node_modules/unstorage/dist/index.mjs","../../../../node_modules/.pnpm/unstorage@1.17.3_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___ioredis@5.8.2/node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/.pnpm/unstorage@1.17.3_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___ioredis@5.8.2/node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/.pnpm/unstorage@1.17.3_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___ioredis@5.8.2/node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/shared/ohash.D__AXeF1.mjs","../../../../node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/crypto/node/index.mjs","../../../../node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/hash.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.2.2_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___d_a6b79d18884e342815abf8a85cd13f2d/node_modules/@nuxt/nitro-server/dist/runtime/utils/config.js","../../../../app/app.config.ts","../../../../node_modules/.pnpm/scule@1.3.0/node_modules/scule/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../node_modules/.pnpm/unctx@2.5.0/node_modules/unctx/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/context.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.2.2_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___d_a6b79d18884e342815abf8a85cd13f2d/node_modules/@nuxt/nitro-server/dist/runtime/utils/error.js","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.2.2_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___d_a6b79d18884e342815abf8a85cd13f2d/node_modules/@nuxt/nitro-server/dist/runtime/handlers/error.js","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/error/utils.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/error/prod.mjs","../../../../node_modules/.pnpm/@nuxtjs+color-mode@3.5.2_magicast@0.5.1/node_modules/@nuxtjs/color-mode/dist/runtime/nitro-plugin.js","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/plugin.mjs","../../../../server/plugins/00.env-validate.ts","../../../../server/plugins/01.api-token.ts","../../../../server/db/schema.ts","../../../../server/utils/db-state.ts","../../../../server/db/index.ts","../../../../server/db/migrate.ts","../../../../server/utils/auth.ts","../../../../server/db/seed.ts","../../../../server/plugins/02.database.ts","../../../../server/utils/path-validator.ts","../../../../server/utils/frontmatter.ts","../../../../server/utils/document-sync.ts","../../../../server/plugins/03.file-watcher.ts","../../../../server/utils/agent-registry.ts","../../../../server/utils/notification-bus.ts","../../../../server/utils/notify-resource.ts","../../../../server/utils/log-token-usage.ts","../../../../server/services/agent-executor.ts","../../../../server/services/cron-scheduler.ts","../../../../server/utils/agent-cleanup.ts","../../../../server/plugins/04.cron-agents.ts","../../../../server/plugins/05.skills-catalog.ts","../../../../server/bridge/registry.ts","../../../../server/utils/crypto.ts","../../../../server/utils/get-secret.ts","../../../../server/utils/sdk-env.ts","../../../../server/bridge/responder.ts","../../../../server/bridge/router.ts","../../../../server/bridge/adapters/telegram.ts","../../../../server/bridge/adapters/discord.ts","../../../../server/bridge/adapters/imessage.ts","../../../../server/bridge/adapters/google.ts","../../../../server/bridge/adapters/email.ts","../../../../server/bridge/lifecycle.ts","../../../../server/plugins/06.message-bridge.ts","../../../../node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/static.mjs","../../../../server/middleware/auth.ts","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/renderer.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.2.2_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___d_a6b79d18884e342815abf8a85cd13f2d/node_modules/@nuxt/nitro-server/dist/runtime/utils/paths.js","../../../../node_modules/.pnpm/ufo@1.6.3/node_modules/ufo/dist/index.mjs","../../../../shared/utils/formatting.ts","../../../../shared/utils/language-detection.ts","../../../../shared/utils/notification-defaults.ts","../../../../server/utils/chat-session-manager.ts","../../../../server/utils/db-guard.ts","../../../../server/utils/pty-manager.ts","../../../../server/utils/skills-path.ts","../../../../node_modules/.cache/nuxt/.nuxt/nuxt-icon-server-bundle.mjs","../../../../node_modules/.pnpm/@nuxt+icon@2.1.1_magicast@0.5.1_vite@7.3.0_@types+node@25.0.8_jiti@2.6.1_lightningcss@1_01287b657f4a2f684624a151274b0e62/node_modules/@nuxt/icon/dist/runtime/server/api.js","../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.0_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/highlighter/event-handler.js","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/app.mjs","../../../../node_modules/.pnpm/cookie-es@2.0.0/node_modules/cookie-es/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/lib/http-graceful-shutdown.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/shutdown.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/presets/node/runtime/node-server.mjs"],"names":["isPlainObject","decode","JOIN_LEADING_SLASH_RE","withTrailingSlash","hasLeadingSlash","withLeadingSlash","joinURL","getQuery","isNonEmptyURL","parse","tryDecode","serialize","createRouter","f","h","c","i","l","createError","process","parse$1","mergeHeaders","s","nodeFetch","fetch","Headers","Headers$1","AbortController","AbortController$1","$fetch","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","hash","_inlineAppConfig","createRadixRouter","join","schema.user","schema.session","schema.account","schema.verification","existsSync","createHash","basename","readFile","schema.documents","writeFile","readdir","watch","__publicField","EventEmitter","schema.tokenUsage","schema.cronAgentRuns","schema.cronAgents","schema.skillsCatalog","schema.conversations","randomUUID","schema.memoryChunks","schema.bridgeMessages","schema.conversationMessages","_a","_b","_c","_d","normalized","schema.bridges","session","pty","colonIdx","key","val","nitroApp","callNodeRequestHandler","fetchNodeRequestHandler","gracefulShutdown","HttpsServer","HttpServer","wsAdapter"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,32,33,34,35,36,37,38,39,40,41,42,43,79,80,82,83,84,92,93,94,95,96,97,98,99]}
|
|
1
|
+
{"version":3,"file":"nitro.mjs","sources":["../../../../node_modules/.pnpm/uncrypto@0.1.3/node_modules/uncrypto/dist/crypto.node.mjs","../../../../node_modules/.pnpm/crossws@0.3.5/node_modules/crossws/dist/shared/crossws.DfCzGthR.mjs","../../../../node_modules/.pnpm/crossws@0.3.5/node_modules/crossws/dist/shared/crossws.D9ehKjSh.mjs","../../../../node_modules/.pnpm/crossws@0.3.5/node_modules/crossws/dist/shared/crossws.By9qWDAI.mjs","../../../../node_modules/.pnpm/crossws@0.3.5/node_modules/crossws/dist/shared/crossws.CipVM6lf.mjs","../../../../node_modules/.pnpm/crossws@0.3.5/node_modules/crossws/dist/adapters/node.mjs","../../../../node_modules/.pnpm/destr@2.0.5/node_modules/destr/dist/index.mjs","../../../../node_modules/.pnpm/ufo@1.6.1/node_modules/ufo/dist/index.mjs","../../../../node_modules/.pnpm/cookie-es@1.2.2/node_modules/cookie-es/dist/index.mjs","../../../../node_modules/.pnpm/radix3@1.1.2/node_modules/radix3/dist/index.mjs","../../../../node_modules/.pnpm/defu@6.1.4/node_modules/defu/dist/defu.mjs","../../../../node_modules/.pnpm/node-mock-http@1.0.4/node_modules/node-mock-http/dist/index.mjs","../../../../node_modules/.pnpm/h3@1.15.4/node_modules/h3/dist/index.mjs","../../../../node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.mjs","../../../../node_modules/.pnpm/node-fetch-native@1.6.7/node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs","../../../../node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs","../../../../node_modules/.pnpm/unstorage@1.17.3_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___ioredis@5.8.2/node_modules/unstorage/dist/shared/unstorage.zVDD2mZo.mjs","../../../../node_modules/.pnpm/unstorage@1.17.3_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___ioredis@5.8.2/node_modules/unstorage/dist/index.mjs","../../../../node_modules/.pnpm/unstorage@1.17.3_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___ioredis@5.8.2/node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/.pnpm/unstorage@1.17.3_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___ioredis@5.8.2/node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/.pnpm/unstorage@1.17.3_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___ioredis@5.8.2/node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/shared/ohash.D__AXeF1.mjs","../../../../node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/crypto/node/index.mjs","../../../../node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/hash.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.2.2_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___d_a6b79d18884e342815abf8a85cd13f2d/node_modules/@nuxt/nitro-server/dist/runtime/utils/config.js","../../../../app/app.config.ts","../../../../node_modules/.pnpm/scule@1.3.0/node_modules/scule/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../node_modules/.pnpm/unctx@2.5.0/node_modules/unctx/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/context.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.2.2_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___d_a6b79d18884e342815abf8a85cd13f2d/node_modules/@nuxt/nitro-server/dist/runtime/utils/error.js","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.2.2_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___d_a6b79d18884e342815abf8a85cd13f2d/node_modules/@nuxt/nitro-server/dist/runtime/handlers/error.js","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/error/utils.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/error/prod.mjs","../../../../node_modules/.pnpm/@nuxtjs+color-mode@3.5.2_magicast@0.5.1/node_modules/@nuxtjs/color-mode/dist/runtime/nitro-plugin.js","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/plugin.mjs","../../../../server/plugins/00.env-validate.ts","../../../../server/plugins/01.api-token.ts","../../../../server/db/schema.ts","../../../../server/utils/db-state.ts","../../../../server/db/index.ts","../../../../server/db/migrate.ts","../../../../server/utils/auth.ts","../../../../server/db/seed.ts","../../../../server/plugins/02.database.ts","../../../../server/utils/path-validator.ts","../../../../server/utils/frontmatter.ts","../../../../server/utils/document-sync.ts","../../../../server/plugins/03.file-watcher.ts","../../../../server/utils/agent-registry.ts","../../../../server/utils/notification-bus.ts","../../../../server/utils/notify-resource.ts","../../../../server/utils/log-token-usage.ts","../../../../server/services/agent-executor.ts","../../../../server/services/cron-scheduler.ts","../../../../server/utils/agent-cleanup.ts","../../../../server/plugins/04.cron-agents.ts","../../../../server/plugins/05.skills-catalog.ts","../../../../server/bridge/registry.ts","../../../../server/utils/crypto.ts","../../../../server/utils/get-secret.ts","../../../../server/utils/sdk-env.ts","../../../../server/bridge/responder.ts","../../../../server/bridge/router.ts","../../../../server/bridge/adapters/telegram.ts","../../../../server/bridge/adapters/discord.ts","../../../../server/bridge/adapters/imessage.ts","../../../../server/bridge/adapters/google.ts","../../../../server/bridge/adapters/email.ts","../../../../server/bridge/lifecycle.ts","../../../../server/plugins/06.message-bridge.ts","../../../../node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/static.mjs","../../../../server/middleware/auth.ts","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/renderer.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.2.2_db0@0.3.4_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8___d_a6b79d18884e342815abf8a85cd13f2d/node_modules/@nuxt/nitro-server/dist/runtime/utils/paths.js","../../../../node_modules/.pnpm/ufo@1.6.3/node_modules/ufo/dist/index.mjs","../../../../shared/utils/formatting.ts","../../../../shared/utils/language-detection.ts","../../../../shared/utils/notification-defaults.ts","../../../../server/utils/chat-session-manager.ts","../../../../server/utils/db-guard.ts","../../../../server/utils/pty-manager.ts","../../../../server/utils/skills-path.ts","../../../../node_modules/.cache/nuxt/.nuxt/nuxt-icon-server-bundle.mjs","../../../../node_modules/.pnpm/@nuxt+icon@2.1.1_magicast@0.5.1_vite@7.3.0_@types+node@25.0.8_jiti@2.6.1_lightningcss@1_01287b657f4a2f684624a151274b0e62/node_modules/@nuxt/icon/dist/runtime/server/api.js","../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.0_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/highlighter/event-handler.js","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/app.mjs","../../../../node_modules/.pnpm/cookie-es@2.0.0/node_modules/cookie-es/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/lib/http-graceful-shutdown.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/runtime/internal/shutdown.mjs","../../../../node_modules/.pnpm/nitropack@2.12.9_drizzle-orm@0.45.1_kysely@0.28.10_postgres@3.4.8_/node_modules/nitropack/dist/presets/node/runtime/node-server.mjs"],"names":["isPlainObject","decode","JOIN_LEADING_SLASH_RE","withTrailingSlash","hasLeadingSlash","withLeadingSlash","joinURL","getQuery","isNonEmptyURL","parse","tryDecode","serialize","createRouter","f","h","c","i","l","createError","process","parse$1","mergeHeaders","s","nodeFetch","fetch","Headers","Headers$1","AbortController","AbortController$1","$fetch","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","hash","_inlineAppConfig","createRadixRouter","join","schema.user","schema.session","schema.account","schema.verification","existsSync","createHash","basename","readFile","schema.documents","writeFile","readdir","watch","__publicField","EventEmitter","schema.tokenUsage","schema.cronAgentRuns","schema.cronAgents","schema.skillsCatalog","schema.conversations","randomUUID","schema.bridgeMessages","schema.conversationMessages","_a","_b","_c","_d","normalized","schema.bridges","session","pty","colonIdx","key","val","nitroApp","callNodeRequestHandler","fetchNodeRequestHandler","gracefulShutdown","HttpsServer","HttpServer","wsAdapter"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,32,33,34,35,36,37,38,39,40,41,42,43,79,80,82,83,84,92,93,94,95,96,97,98,99]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb
|
|
2
|
-
import {
|
|
1
|
+
import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb } from '../../../nitro/nitro.mjs';
|
|
2
|
+
import { sql } from 'drizzle-orm';
|
|
3
3
|
import '@anthropic-ai/claude-agent-sdk';
|
|
4
4
|
import 'module';
|
|
5
5
|
import 'path';
|
|
@@ -44,13 +44,17 @@ const context_get = defineEventHandler(async (event) => {
|
|
|
44
44
|
const db = getDb();
|
|
45
45
|
const projectPath = query.project;
|
|
46
46
|
const limit = Math.min(parseInt(query.limit) || 5, 20);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
const projectFilter = projectPath ? sql`AND project_path = ${projectPath}` : sql``;
|
|
48
|
+
const memories = await db.execute(sql`
|
|
49
|
+
SELECT *,
|
|
50
|
+
(1.0 + LN(1 + access_count))
|
|
51
|
+
* (1.0 / (1.0 + EXTRACT(EPOCH FROM NOW() - COALESCE(last_accessed_at, created_at)) / 2592000))
|
|
52
|
+
AS score
|
|
53
|
+
FROM memory_chunks
|
|
54
|
+
WHERE 1=1 ${projectFilter}
|
|
55
|
+
ORDER BY score DESC
|
|
56
|
+
LIMIT ${limit}
|
|
57
|
+
`);
|
|
54
58
|
if (memories.length > 0) {
|
|
55
59
|
const ids = memories.map((m) => m.id);
|
|
56
60
|
await db.execute(sql`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.get.mjs","sources":["../../../../../../server/api/memory/context.get.ts"],"names":[
|
|
1
|
+
{"version":3,"file":"context.get.mjs","sources":["../../../../../../server/api/memory/context.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,oBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,SAAA,CAAA,CAAA;AAEA,EAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,EAAA,MAAA,KAAA,KAAA,EAAA;AAEA,EAAA,MAAA,cAAA,KAAA,CAAA,OAAA;AACA,EAAA,MAAA,KAAA,GAAA,KAAA,GAAA,CAAA,QAAA,CAAA,MAAA,KAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAKA,EAAA,MAAA,aAAA,GAAA,WAAA,GACA,GAAA,CAAA,mBAAA,EAAA,WAAA,CAAA,CAAA,GACA,GAAA,CAAA,CAAA;AAEA,EAAA,MAAA,QAAA,GAAA,MAAA,EAAA,CAAA,OAAA,CAAA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAMA,aAAA;AAAA;AAAA,UAAA,EAEA,KAAA;AAAA,EAAA,CACA,CAAA;AAGA,EAAA,IAAA,QAAA,CAAA,SAAA,CAAA,EAAA;AACA,IAAA,MAAA,GAAA,GAAA,QAAA,CAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAAA,EAAA,CAAA;AACA,IAAA,MAAA,GAAA,OAAA,CAAA,GAAA;AAAA;AAAA;AAAA;AAAA,qBAAA,EAIA,GAAA,CAAA;AAAA,IAAA,CACA,CAAA;AAAA,EACA;AAGA,EAAA,MAAA,SAAA,GAAA,iBAAA,QAAA,CAAA;AAEA,EAAA,MAAA,QAAA,GAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACA;AAEA,EAAA,OAAA,EAAA,MAAA,QAAA,EAAA;AACA,CAAA,CAAA;AAEA,SAAA,iBAAA,QAAA,EAAA;AACA,EAAA,IAAA,SAAA,MAAA,KAAA,CAAA;AACA,IAAA,OAAA,EAAA;AAEA,EAAA,MAAA,KAAA,GAAA,CAAA,CAAA,EAAA,QAAA,CAAA,MAAA,CAAA;AAAA,CAAA,CAAA;AAGA,EAAA,MAAA,MAAA,GAAA,QAAA,CAAA,MAAA,CAAA,CAAA,KAAA,CAAA,KAAA;AACA,IAAA,IAAA,CAAA,GAAA,CAAA,CAAA,CAAA,SAAA,CAAA;AACA,MAAA,GAAA,CAAA,CAAA,CAAA,SAAA,CAAA,GAAA,EAAA;AACA,IAAA,GAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA;AACA,IAAA,OAAA,GAAA;AAAA,EACA,CAAA,EAAA,EAAA,CAAA;AAEA,EAAA,MAAA,UAAA,GAAA;AAAA,IACA,QAAA,EAAA,WAAA;AAAA,IACA,IAAA,EAAA,WAAA;AAAA,IACA,QAAA,EAAA,WAAA;AAAA,IACA,OAAA,EAAA,UAAA;AAAA,IACA,UAAA,EAAA,aAAA;AAAA,IACA,OAAA,EAAA;AAAA,GACA;AAEA,EAAA,KAAA,MAAA,CAAA,IAAA,EAAA,KAAA,KAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,EAAA;AACA,IAAA,MAAA,KAAA,GAAA,UAAA,CAAA,IAAA,CAAA,IAAA,IAAA;AACA,IAAA,KAAA,CAAA,IAAA,CAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,KAAA,MAAA,IAAA,IAAA,KAAA;AACA,MAAA,KAAA,CAAA,IAAA,CAAA,CAAA,EAAA,EAAA,IAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AACA,IAAA,KAAA,CAAA,KAAA,EAAA,CAAA;AAAA,EACA;AAEA,EAAA,OAAA,KAAA,CAAA,KAAA,IAAA,CAAA;AACA;;;;"}
|
|
@@ -41,7 +41,7 @@ import 'consola';
|
|
|
41
41
|
const EXTRACTION_PROMPT = `You are a memory extraction assistant. Analyze this conversation excerpt and extract key memories worth preserving for future reference.
|
|
42
42
|
|
|
43
43
|
Output ONLY a JSON array with this exact structure (no markdown, no code blocks, no explanation):
|
|
44
|
-
[{"type": "decision|fact|solution|pattern|preference", "content": "concise statement"
|
|
44
|
+
[{"type": "decision|fact|solution|pattern|preference", "content": "concise statement"}]
|
|
45
45
|
|
|
46
46
|
Memory types:
|
|
47
47
|
- decision: Choices made about implementation, architecture, or approach
|
|
@@ -55,7 +55,6 @@ Rules:
|
|
|
55
55
|
- Skip routine acknowledgments ("I'll do that", "Sure", "Let me...")
|
|
56
56
|
- Skip obvious facts already in code, debugging steps, greetings
|
|
57
57
|
- Content max 100 characters
|
|
58
|
-
- relevance: 1.0 = highly important, 0.5 = moderately useful, 0.1 = minor detail
|
|
59
58
|
- If nothing worth extracting, return []
|
|
60
59
|
|
|
61
60
|
Conversation to analyze:
|
|
@@ -108,10 +107,9 @@ ${transcript.slice(0, 8e3)}`,
|
|
|
108
107
|
if (!jsonMatch)
|
|
109
108
|
return [];
|
|
110
109
|
const memories = JSON.parse(jsonMatch[0]);
|
|
111
|
-
return memories.filter((m) => isValidMemoryType(m.type) && m.content
|
|
110
|
+
return memories.filter((m) => isValidMemoryType(m.type) && m.content).map((m) => ({
|
|
112
111
|
type: m.type,
|
|
113
|
-
content: m.content.slice(0, 200)
|
|
114
|
-
relevance: Math.max(0, Math.min(1, m.relevance))
|
|
112
|
+
content: m.content.slice(0, 200)
|
|
115
113
|
}));
|
|
116
114
|
} catch (error) {
|
|
117
115
|
console.error("[memory-extractor] Failed to extract memories:", error);
|
|
@@ -162,8 +160,7 @@ const extract_post = defineEventHandler(async (event) => {
|
|
|
162
160
|
sessionId: body.sessionId,
|
|
163
161
|
projectPath: body.projectPath,
|
|
164
162
|
chunkType: m.type,
|
|
165
|
-
content: m.content
|
|
166
|
-
relevanceScore: m.relevance
|
|
163
|
+
content: m.content
|
|
167
164
|
}))).returning();
|
|
168
165
|
console.log(`[memory] Extracted and stored ${inserted.length} memories`);
|
|
169
166
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.post.mjs","sources":["../../../../../../server/services/memory-extractor.ts","../../../../../../server/api/memory/extract.post.ts"],"names":["schema.memoryChunks"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,iBAAA,GAAoB,CAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA
|
|
1
|
+
{"version":3,"file":"extract.post.mjs","sources":["../../../../../../server/services/memory-extractor.ts","../../../../../../server/api/memory/extract.post.ts"],"names":["schema.memoryChunks"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb
|
|
2
|
-
import {
|
|
1
|
+
import { d as defineEventHandler, r as requireDb, i as getQuery, a as getDb } from '../../../nitro/nitro.mjs';
|
|
2
|
+
import { sql } from 'drizzle-orm';
|
|
3
3
|
import '@anthropic-ai/claude-agent-sdk';
|
|
4
4
|
import 'module';
|
|
5
5
|
import 'path';
|
|
@@ -45,33 +45,30 @@ const search_get = defineEventHandler(async (event) => {
|
|
|
45
45
|
const searchQuery = query.query;
|
|
46
46
|
const projectPath = query.projectPath;
|
|
47
47
|
const chunkType = query.chunkType;
|
|
48
|
-
const minRelevance = query.minRelevance ? parseFloat(query.minRelevance) : void 0;
|
|
49
48
|
const limit = Math.min(parseInt(query.limit) || 20, 100);
|
|
50
49
|
const conditions = [];
|
|
51
50
|
if (projectPath)
|
|
52
|
-
conditions.push(
|
|
51
|
+
conditions.push(sql`project_path = ${projectPath}`);
|
|
53
52
|
if (chunkType)
|
|
54
|
-
conditions.push(
|
|
55
|
-
if (
|
|
56
|
-
conditions.push(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
desc(memoryChunks.createdAt)
|
|
74
|
-
).limit(limit);
|
|
53
|
+
conditions.push(sql`chunk_type = ${chunkType}`);
|
|
54
|
+
if (searchQuery)
|
|
55
|
+
conditions.push(sql`search_vector @@ plainto_tsquery('english', ${searchQuery})`);
|
|
56
|
+
const whereClause = conditions.length > 0 ? sql`WHERE ${sql.join(conditions, sql` AND `)}` : sql``;
|
|
57
|
+
const scoreExpr = searchQuery ? sql`
|
|
58
|
+
ts_rank(search_vector, plainto_tsquery('english', ${searchQuery}))
|
|
59
|
+
* (1.0 + LN(1 + access_count))
|
|
60
|
+
* (1.0 / (1.0 + EXTRACT(EPOCH FROM NOW() - COALESCE(last_accessed_at, created_at)) / 2592000))
|
|
61
|
+
` : sql`
|
|
62
|
+
(1.0 + LN(1 + access_count))
|
|
63
|
+
* (1.0 / (1.0 + EXTRACT(EPOCH FROM NOW() - COALESCE(last_accessed_at, created_at)) / 2592000))
|
|
64
|
+
`;
|
|
65
|
+
const memories = await db.execute(sql`
|
|
66
|
+
SELECT *, ${scoreExpr} AS score
|
|
67
|
+
FROM memory_chunks
|
|
68
|
+
${whereClause}
|
|
69
|
+
ORDER BY score DESC
|
|
70
|
+
LIMIT ${limit}
|
|
71
|
+
`);
|
|
75
72
|
if (memories.length > 0) {
|
|
76
73
|
try {
|
|
77
74
|
const ids = memories.map((m) => m.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.get.mjs","sources":["../../../../../../server/api/memory/search.get.ts"],"names":[
|
|
1
|
+
{"version":3,"file":"search.get.mjs","sources":["../../../../../../server/api/memory/search.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,mBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,SAAA,CAAA,CAAA;AAEA,EAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,EAAA,MAAA,KAAA,KAAA,EAAA;AAEA,EAAA,MAAA,cAAA,KAAA,CAAA,KAAA;AACA,EAAA,MAAA,cAAA,KAAA,CAAA,WAAA;AACA,EAAA,MAAA,YAAA,KAAA,CAAA,SAAA;AACA,EAAA,MAAA,KAAA,GAAA,KAAA,GAAA,CAAA,QAAA,CAAA,MAAA,KAAA,CAAA,IAAA,IAAA,GAAA,CAAA;AAGA,EAAA,MAAA,aAAA,EAAA;AAEA,EAAA,IAAA,WAAA;AACA,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,eAAA,EAAA,WAAA,CAAA,CAAA,CAAA;AAEA,EAAA,IAAA,SAAA;AACA,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,aAAA,EAAA,SAAA,CAAA,CAAA,CAAA;AAEA,EAAA,IAAA,WAAA;AACA,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,4CAAA,EAAA,WAAA,CAAA,CAAA,CAAA,CAAA;AAEA,EAAA,MAAA,WAAA,GAAA,UAAA,CAAA,MAAA,GAAA,CAAA,GACA,GAAA,CAAA,MAAA,EAAA,IAAA,IAAA,CAAA,UAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,GACA,GAAA,CAAA,CAAA;AAGA,EAAA,MAAA,YAAA,WAAA,GACA,GAAA;AAAA,0DAAA,EACA,WAAA,CAAA;AAAA;AAAA;AAAA,MAAA,CAAA,GAIA,GAAA;AAAA;AAAA;AAAA,MAAA,CAAA;AAKA,EAAA,MAAA,QAAA,GAAA,MAAA,EAAA,CAAA,OAAA,CAAA,GAAA;AAAA,cAAA,EACA,SAAA,CAAA;AAAA;AAAA,IAAA,EAEA,WAAA;AAAA;AAAA,UAAA,EAEA,KAAA;AAAA,EAAA,CACA,CAAA;AAGA,EAAA,IAAA,QAAA,CAAA,SAAA,CAAA,EAAA;AACA,IAAA,IAAA;AACA,MAAA,MAAA,GAAA,GAAA,QAAA,CAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAAA,EAAA,CAAA;AACA,MAAA,MAAA,GAAA,OAAA,CAAA,GAAA;AAAA;AAAA;AAAA;AAAA,6BAAA,EAIA,GAAA,CAAA,IAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,EAAA,KAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,MAAA,CACA,CAAA;AAAA,IACA,SAAA,CAAA,EAAA;AAEA,MAAA,OAAA,CAAA,KAAA,CAAA,kDAAA,CAAA,CAAA;AAAA,IACA;AAAA,EACA;AAEA,EAAA,OAAA,EAAA,MAAA,QAAA,EAAA;AACA,CAAA,CAAA;;;;"}
|
|
@@ -39,7 +39,6 @@ import '@iconify/utils';
|
|
|
39
39
|
import 'consola';
|
|
40
40
|
|
|
41
41
|
const store_post = defineEventHandler(async (event) => {
|
|
42
|
-
var _a;
|
|
43
42
|
requireDb();
|
|
44
43
|
const body = await readBody(event);
|
|
45
44
|
const db = getDb();
|
|
@@ -52,8 +51,7 @@ const store_post = defineEventHandler(async (event) => {
|
|
|
52
51
|
projectPath: body.projectPath,
|
|
53
52
|
chunkType: body.chunkType,
|
|
54
53
|
content: body.content,
|
|
55
|
-
sourceExcerpt: body.sourceExcerpt
|
|
56
|
-
relevanceScore: (_a = body.relevanceScore) != null ? _a : 1
|
|
54
|
+
sourceExcerpt: body.sourceExcerpt
|
|
57
55
|
}).returning();
|
|
58
56
|
console.log(`[memory] Stored memory: ${body.chunkType} - ${body.content.slice(0, 50)}...`);
|
|
59
57
|
notifyResourceChange({ resource: "memory", action: "create", resourceId: inserted.id, resourceName: body.chunkType });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.post.mjs","sources":["../../../../../../server/api/memory/store.post.ts"],"names":["schema.memoryChunks"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,mBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA
|
|
1
|
+
{"version":3,"file":"store.post.mjs","sources":["../../../../../../server/api/memory/store.post.ts"],"names":["schema.memoryChunks"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,mBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,SAAA,CAAA,CAAA;AAEA,EAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,EAAA,MAAA,KAAA,KAAA,EAAA;AAEA,EAAA,IAAA,CAAA,IAAA,CAAA,OAAA;AACA,IAAA,MAAA,YAAA,EAAA,UAAA,EAAA,GAAA,EAAA,OAAA,EAAA,uBAAA,CAAA;AAEA,EAAA,IAAA,CAAA,IAAA,CAAA,SAAA;AACA,IAAA,MAAA,YAAA,EAAA,UAAA,EAAA,GAAA,EAAA,OAAA,EAAA,yBAAA,CAAA;AAEA,EAAA,MAAA,CAAA,QAAA,CAAA,GAAA,MAAA,GAAA,MAAA,CAAAA,YAAA,CAAA,CACA,MAAA,CAAA;AAAA,IACA,WAAA,IAAA,CAAA,SAAA;AAAA,IACA,aAAA,IAAA,CAAA,WAAA;AAAA,IACA,WAAA,IAAA,CAAA,SAAA;AAAA,IACA,SAAA,IAAA,CAAA,OAAA;AAAA,IACA,eAAA,IAAA,CAAA;AAAA,GACA,EACA,SAAA,EAAA;AAEA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,wBAAA,EAAA,IAAA,CAAA,SAAA,CAAA,GAAA,EAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAEA,EAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,YAAA,EAAA,IAAA,CAAA,SAAA,EAAA,CAAA;AAEA,EAAA,OAAA,EAAA,MAAA,QAAA,EAAA;AACA,CAAA,CAAA;;;;"}
|
|
@@ -36,7 +36,6 @@ def format_memory(memory: dict) -> str:
|
|
|
36
36
|
chunk_type = memory.get('chunkType', 'fact')
|
|
37
37
|
icon = type_icons.get(chunk_type, '[?]')
|
|
38
38
|
content = memory.get('content', '')
|
|
39
|
-
relevance = memory.get('relevanceScore', 1.0)
|
|
40
39
|
|
|
41
40
|
# First line: icon and content
|
|
42
41
|
line1 = f"{icon} {content}"
|
|
@@ -47,8 +46,6 @@ def format_memory(memory: dict) -> str:
|
|
|
47
46
|
if memory.get('projectPath'):
|
|
48
47
|
parts.append(f"Project: {memory['projectPath']}")
|
|
49
48
|
|
|
50
|
-
parts.append(f"Relevance: {relevance:.2f}")
|
|
51
|
-
|
|
52
49
|
if memory.get('accessCount'):
|
|
53
50
|
parts.append(f"Accessed: {memory['accessCount']}x")
|
|
54
51
|
|
|
@@ -117,8 +114,7 @@ def cmd_store(args):
|
|
|
117
114
|
"""Store a new memory explicitly."""
|
|
118
115
|
data = {
|
|
119
116
|
'content': args.content,
|
|
120
|
-
'chunkType': args.type or 'fact'
|
|
121
|
-
'relevanceScore': args.relevance or 0.9
|
|
117
|
+
'chunkType': args.type or 'fact'
|
|
122
118
|
}
|
|
123
119
|
|
|
124
120
|
if args.project:
|
|
@@ -234,8 +230,6 @@ def main():
|
|
|
234
230
|
default='fact',
|
|
235
231
|
help='Memory type (default: fact)')
|
|
236
232
|
store_p.add_argument('--project', '-p', help='Associated project path')
|
|
237
|
-
store_p.add_argument('--relevance', '-r', type=float, default=0.9,
|
|
238
|
-
help='Relevance score 0-1 (default: 0.9)')
|
|
239
233
|
|
|
240
234
|
# Decisions
|
|
241
235
|
decisions_p = subparsers.add_parser('decisions', help='List decision memories')
|
package/app/pages/memories.vue
CHANGED
|
@@ -102,7 +102,6 @@ function formatTime(date: Date | string): string {
|
|
|
102
102
|
const columns = [
|
|
103
103
|
{ accessorKey: 'chunkType', header: 'Type' },
|
|
104
104
|
{ accessorKey: 'content', header: 'Content' },
|
|
105
|
-
{ accessorKey: 'relevanceScore', header: 'Relevance' },
|
|
106
105
|
{ accessorKey: 'accessCount', header: 'Accessed' },
|
|
107
106
|
{ accessorKey: 'createdAt', header: 'Created' },
|
|
108
107
|
{ accessorKey: 'actions', header: '' }
|
|
@@ -225,20 +224,6 @@ onMounted(() => {
|
|
|
225
224
|
</span>
|
|
226
225
|
</template>
|
|
227
226
|
|
|
228
|
-
<template #relevanceScore-cell="{ row }">
|
|
229
|
-
<div class="flex items-center gap-2">
|
|
230
|
-
<div class="w-16 h-1.5 bg-neutral-200 dark:bg-neutral-700 rounded-full overflow-hidden">
|
|
231
|
-
<div
|
|
232
|
-
class="h-full bg-primary-500 rounded-full"
|
|
233
|
-
:style="{ width: `${row.original.relevanceScore * 100}%` }"
|
|
234
|
-
/>
|
|
235
|
-
</div>
|
|
236
|
-
<span class="text-xs text-muted">
|
|
237
|
-
{{ (row.original.relevanceScore * 100).toFixed(0) }}%
|
|
238
|
-
</span>
|
|
239
|
-
</div>
|
|
240
|
-
</template>
|
|
241
|
-
|
|
242
227
|
<template #accessCount-cell="{ row }">
|
|
243
228
|
<span class="text-sm text-muted">
|
|
244
229
|
{{ row.original.accessCount }}x
|
package/dist/cli/index.js
CHANGED
|
@@ -2934,6 +2934,7 @@ async function update() {
|
|
|
2934
2934
|
const envWithDotenv = { ...process.env, ...dotenv };
|
|
2935
2935
|
s.start("Installing dependencies");
|
|
2936
2936
|
execSync8("pnpm install", { cwd: installDir, stdio: "pipe" });
|
|
2937
|
+
execSync8("pnpm rebuild", { cwd: installDir, stdio: "pipe" });
|
|
2937
2938
|
s.stop("Dependencies installed");
|
|
2938
2939
|
s.start("Running database migrations");
|
|
2939
2940
|
execSync8("pnpm db:migrate", { cwd: installDir, stdio: "pipe", env: envWithDotenv });
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getDb
|
|
1
|
+
import { sql } from 'drizzle-orm'
|
|
2
|
+
import { getDb } from '~~/server/db'
|
|
3
3
|
import { requireDb } from '~~/server/utils/db-guard'
|
|
4
4
|
import type { MemoryChunk, MemoryContextResponse } from '~~/shared/types'
|
|
5
5
|
|
|
@@ -12,19 +12,23 @@ export default defineEventHandler(async (event) => {
|
|
|
12
12
|
const projectPath = query.project as string | undefined
|
|
13
13
|
const limit = Math.min(parseInt(query.limit as string) || 5, 20)
|
|
14
14
|
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const memories = await
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
15
|
+
// Score memories by access frequency + recency (no static relevance)
|
|
16
|
+
// access boost: ln(1 + access_count) gives diminishing returns
|
|
17
|
+
// recency: 30-day half-life decay on last access or creation time
|
|
18
|
+
const projectFilter = projectPath
|
|
19
|
+
? sql`AND project_path = ${projectPath}`
|
|
20
|
+
: sql``
|
|
21
|
+
|
|
22
|
+
const memories = await db.execute<MemoryChunk>(sql`
|
|
23
|
+
SELECT *,
|
|
24
|
+
(1.0 + LN(1 + access_count))
|
|
25
|
+
* (1.0 / (1.0 + EXTRACT(EPOCH FROM NOW() - COALESCE(last_accessed_at, created_at)) / 2592000))
|
|
26
|
+
AS score
|
|
27
|
+
FROM memory_chunks
|
|
28
|
+
WHERE 1=1 ${projectFilter}
|
|
29
|
+
ORDER BY score DESC
|
|
30
|
+
LIMIT ${limit}
|
|
31
|
+
`)
|
|
28
32
|
|
|
29
33
|
// Update access count for retrieved memories
|
|
30
34
|
if (memories.length > 0) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { sql
|
|
2
|
-
import { getDb
|
|
1
|
+
import { sql } from 'drizzle-orm'
|
|
2
|
+
import { getDb } from '~~/server/db'
|
|
3
3
|
import { requireDb } from '~~/server/utils/db-guard'
|
|
4
4
|
import type { MemoryChunk, MemoryChunkType } from '~~/shared/types'
|
|
5
5
|
|
|
@@ -12,48 +12,43 @@ export default defineEventHandler(async (event) => {
|
|
|
12
12
|
const searchQuery = query.query as string | undefined
|
|
13
13
|
const projectPath = query.projectPath as string | undefined
|
|
14
14
|
const chunkType = query.chunkType as MemoryChunkType | undefined
|
|
15
|
-
const minRelevance = query.minRelevance ? parseFloat(query.minRelevance as string) : undefined
|
|
16
15
|
const limit = Math.min(parseInt(query.limit as string) || 20, 100)
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
// Build WHERE conditions
|
|
18
|
+
const conditions: ReturnType<typeof sql>[] = []
|
|
19
19
|
|
|
20
|
-
// Project filter
|
|
21
20
|
if (projectPath)
|
|
22
|
-
conditions.push(
|
|
21
|
+
conditions.push(sql`project_path = ${projectPath}`)
|
|
23
22
|
|
|
24
|
-
// Type filter
|
|
25
23
|
if (chunkType)
|
|
26
|
-
conditions.push(
|
|
24
|
+
conditions.push(sql`chunk_type = ${chunkType}`)
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
conditions.push(gte(schema.memoryChunks.relevanceScore, minRelevance))
|
|
26
|
+
if (searchQuery)
|
|
27
|
+
conditions.push(sql`search_vector @@ plainto_tsquery('english', ${searchQuery})`)
|
|
31
28
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
SELECT id FROM memory_chunks
|
|
36
|
-
WHERE search_vector @@ plainto_tsquery('english', ${searchQuery})
|
|
37
|
-
ORDER BY ts_rank(search_vector, plainto_tsquery('english', ${searchQuery})) DESC
|
|
38
|
-
LIMIT ${limit}
|
|
39
|
-
`)
|
|
40
|
-
const ids = ftsResult.map(r => r.id)
|
|
41
|
-
if (ids.length === 0) return { data: [] as MemoryChunk[] }
|
|
42
|
-
conditions.push(inArray(schema.memoryChunks.id, ids))
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
let dbQuery = db.select()
|
|
46
|
-
.from(schema.memoryChunks)
|
|
29
|
+
const whereClause = conditions.length > 0
|
|
30
|
+
? sql`WHERE ${sql.join(conditions, sql` AND `)}`
|
|
31
|
+
: sql``
|
|
47
32
|
|
|
48
|
-
|
|
49
|
-
|
|
33
|
+
// Computed score: FTS rank (if searching) * access boost * recency decay
|
|
34
|
+
const scoreExpr = searchQuery
|
|
35
|
+
? sql`
|
|
36
|
+
ts_rank(search_vector, plainto_tsquery('english', ${searchQuery}))
|
|
37
|
+
* (1.0 + LN(1 + access_count))
|
|
38
|
+
* (1.0 / (1.0 + EXTRACT(EPOCH FROM NOW() - COALESCE(last_accessed_at, created_at)) / 2592000))
|
|
39
|
+
`
|
|
40
|
+
: sql`
|
|
41
|
+
(1.0 + LN(1 + access_count))
|
|
42
|
+
* (1.0 / (1.0 + EXTRACT(EPOCH FROM NOW() - COALESCE(last_accessed_at, created_at)) / 2592000))
|
|
43
|
+
`
|
|
50
44
|
|
|
51
|
-
const memories = await
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
45
|
+
const memories = await db.execute<MemoryChunk>(sql`
|
|
46
|
+
SELECT *, ${scoreExpr} AS score
|
|
47
|
+
FROM memory_chunks
|
|
48
|
+
${whereClause}
|
|
49
|
+
ORDER BY score DESC
|
|
50
|
+
LIMIT ${limit}
|
|
51
|
+
`)
|
|
57
52
|
|
|
58
53
|
// Update access count and timestamp for retrieved memories
|
|
59
54
|
if (memories.length > 0) {
|
|
@@ -21,8 +21,7 @@ export default defineEventHandler(async (event) => {
|
|
|
21
21
|
projectPath: body.projectPath,
|
|
22
22
|
chunkType: body.chunkType,
|
|
23
23
|
content: body.content,
|
|
24
|
-
sourceExcerpt: body.sourceExcerpt
|
|
25
|
-
relevanceScore: body.relevanceScore ?? 1.0
|
|
24
|
+
sourceExcerpt: body.sourceExcerpt
|
|
26
25
|
})
|
|
27
26
|
.returning()
|
|
28
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from 'crypto'
|
|
2
2
|
import { query } from '@anthropic-ai/claude-agent-sdk'
|
|
3
|
-
import {
|
|
3
|
+
import { eq, sql } from 'drizzle-orm'
|
|
4
4
|
import { getDb, schema } from '~~/server/db'
|
|
5
5
|
import { logTokenUsage } from '~~/server/utils/log-token-usage'
|
|
6
6
|
import { sdkEnv } from '~~/server/utils/sdk-env'
|
|
@@ -44,10 +44,15 @@ async function getOrCreateMainChat() {
|
|
|
44
44
|
async function loadMemoryContext(): Promise<string> {
|
|
45
45
|
try {
|
|
46
46
|
const db = getDb()
|
|
47
|
-
const memories = await db.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
const memories = await db.execute<{ content: string }>(sql`
|
|
48
|
+
SELECT content,
|
|
49
|
+
(1.0 + LN(1 + access_count))
|
|
50
|
+
* (1.0 / (1.0 + EXTRACT(EPOCH FROM NOW() - COALESCE(last_accessed_at, created_at)) / 2592000))
|
|
51
|
+
AS score
|
|
52
|
+
FROM memory_chunks
|
|
53
|
+
ORDER BY score DESC
|
|
54
|
+
LIMIT 10
|
|
55
|
+
`)
|
|
51
56
|
|
|
52
57
|
if (memories.length === 0) return ''
|
|
53
58
|
|
package/server/db/schema.ts
CHANGED
|
@@ -333,8 +333,7 @@ export const memoryChunks = pgTable('memory_chunks', {
|
|
|
333
333
|
content: text('content').notNull(), // The extracted memory (concise)
|
|
334
334
|
sourceExcerpt: text('source_excerpt'), // Original context (truncated for reference)
|
|
335
335
|
|
|
336
|
-
//
|
|
337
|
-
relevanceScore: real('relevance_score').default(1.0).notNull(), // 0-1, decays over time
|
|
336
|
+
// Usage tracking (relevance is computed at query time from access + recency)
|
|
338
337
|
accessCount: integer('access_count').default(0).notNull(), // How often retrieved
|
|
339
338
|
lastAccessedAt: timestamp('last_accessed_at', { withTimezone: true }),
|
|
340
339
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE "memory_chunks" DROP COLUMN "relevance_score";
|