@moxxy/plugin-memory 0.28.1 → 0.30.0
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/consolidate.d.ts.map +1 -1
- package/dist/consolidate.js +12 -6
- package/dist/consolidate.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/dist/store/search.d.ts.map +1 -1
- package/dist/store/search.js +16 -6
- package/dist/store/search.js.map +1 -1
- package/dist/user-model.d.ts.map +1 -1
- package/dist/user-model.js +4 -2
- package/dist/user-model.js.map +1 -1
- package/package.json +2 -2
- package/src/consolidate-nudge.test.ts +18 -8
- package/src/consolidate.test.ts +4 -1
- package/src/consolidate.ts +13 -6
- package/src/discovery.test.ts +5 -1
- package/src/index.ts +12 -4
- package/src/stm.test.ts +4 -2
- package/src/store/search.test.ts +10 -4
- package/src/store/search.ts +16 -5
- package/src/store.test.ts +14 -5
- package/src/tfidf.test.ts +20 -6
- package/src/user-model.test.ts +35 -17
- package/src/user-model.ts +4 -1
- package/src/vector-recall.test.ts +16 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidate.d.ts","sourceRoot":"","sources":["../src/consolidate.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"consolidate.d.ts","sourceRoot":"","sources":["../src/consolidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,MAAM,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAoB,KAAK,WAAW,EAAmB,MAAM,YAAY,CAAC;AAsBjF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;KACzC,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,EACnC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1B,eAAe,CAwEjB;AASD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,iFAAiF;AACjF,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KAC1B,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACxC;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,WAAW,EACrB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAoI/B;AAwGD,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AASD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,MAAM,WAAW,EAC9B,IAAI,GAAE,6BAAkC,GACvC,MAAM,CAGR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,MA0BlC,CAAC"}
|
package/dist/consolidate.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z, defineTool, definePlugin, } from '@moxxy/sdk';
|
|
1
|
+
import { z, assertDefined, defineTool, definePlugin, } from '@moxxy/sdk';
|
|
2
2
|
import { memoryTypeSchema } from './store.js';
|
|
3
3
|
const SYSTEM_PROMPT = `You are consolidating overlapping long-term memory entries.
|
|
4
4
|
|
|
@@ -24,8 +24,9 @@ const consolidatedSchema = z.object({
|
|
|
24
24
|
* reported as `stable` and left alone.
|
|
25
25
|
*/
|
|
26
26
|
export function planConsolidation(entries, opts = {}) {
|
|
27
|
-
const
|
|
28
|
-
|
|
27
|
+
const tag = opts.tag;
|
|
28
|
+
const filtered = tag
|
|
29
|
+
? entries.filter((e) => (e.frontmatter.tags ?? []).includes(tag))
|
|
29
30
|
: entries;
|
|
30
31
|
if (filtered.length < 2) {
|
|
31
32
|
return { clusters: [], stable: filtered.map((e) => e.frontmatter.name) };
|
|
@@ -42,6 +43,7 @@ export function planConsolidation(entries, opts = {}) {
|
|
|
42
43
|
else {
|
|
43
44
|
// Use the first tag as the cluster key (deterministic, simple)
|
|
44
45
|
const key = tags[0];
|
|
46
|
+
assertDefined(key, 'tags is non-empty here (tags.length === 0 handled above)');
|
|
45
47
|
const list = byTag.get(key) ?? [];
|
|
46
48
|
list.push(e);
|
|
47
49
|
byTag.set(key, list);
|
|
@@ -73,7 +75,9 @@ export function planConsolidation(entries, opts = {}) {
|
|
|
73
75
|
clusters.push({ key: `tag:${key}`, members: members.map((m) => m.frontmatter.name) });
|
|
74
76
|
}
|
|
75
77
|
else {
|
|
76
|
-
|
|
78
|
+
const only = members[0];
|
|
79
|
+
assertDefined(only, 'byTag lists always carry ≥1 member');
|
|
80
|
+
stable.push(only.frontmatter.name);
|
|
77
81
|
}
|
|
78
82
|
}
|
|
79
83
|
for (const cluster of descClusters) {
|
|
@@ -81,7 +85,9 @@ export function planConsolidation(entries, opts = {}) {
|
|
|
81
85
|
clusters.push({ key: cluster.key, members: cluster.members.map((m) => m.frontmatter.name) });
|
|
82
86
|
}
|
|
83
87
|
else {
|
|
84
|
-
|
|
88
|
+
const only = cluster.members[0];
|
|
89
|
+
assertDefined(only, 'desc clusters are created with ≥1 member');
|
|
90
|
+
stable.push(only.frontmatter.name);
|
|
85
91
|
}
|
|
86
92
|
}
|
|
87
93
|
return { clusters, stable };
|
|
@@ -292,7 +298,7 @@ function extractJson(text) {
|
|
|
292
298
|
// Take the span from the first `{` to the last `}` in the response. Some
|
|
293
299
|
// providers wrap the object in ```json ... ```, which we strip first.
|
|
294
300
|
const fenced = /```(?:json)?\n?([\s\S]*?)```/.exec(text);
|
|
295
|
-
const candidate = fenced
|
|
301
|
+
const candidate = fenced?.[1] ?? text;
|
|
296
302
|
const start = candidate.indexOf('{');
|
|
297
303
|
const end = candidate.lastIndexOf('}');
|
|
298
304
|
// `end <= start` (e.g. a stray `}` before the first `{`) means there's no
|
package/dist/consolidate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../src/consolidate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../src/consolidate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,MAAM,EAAwB,MAAM,YAAY,CAAC;AAC5G,OAAO,EAAE,WAAW,EAAoB,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIpF,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;CAAG;AAEvE,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,wBAA6B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAgL7G;AAGD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,MAAM,EAAwB,MAAM,YAAY,CAAC;AAC5G,OAAO,EAAE,WAAW,EAAoB,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIpF,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;CAAG;AAEvE,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,wBAA6B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAgL7G;AAGD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,EAAE,MA6CvB,CAAC;AAGL,eAAe,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -216,8 +216,12 @@ export const memoryPlugin = (() => {
|
|
|
216
216
|
onInit: async (ctx) => {
|
|
217
217
|
embeddersReg =
|
|
218
218
|
ctx.services.get('embedders') ?? null;
|
|
219
|
-
|
|
220
|
-
|
|
219
|
+
const baseHooks = base.hooks;
|
|
220
|
+
if (baseHooks)
|
|
221
|
+
await baseHooks.onInit?.(ctx);
|
|
222
|
+
const consolidateHooks = consolidate.hooks;
|
|
223
|
+
if (consolidateHooks)
|
|
224
|
+
await consolidateHooks.onInit?.(ctx);
|
|
221
225
|
},
|
|
222
226
|
// A Plugin has a single onBeforeProviderCall, but this composed plugin
|
|
223
227
|
// carries TWO: base's always-on user-model injection and consolidate's
|
|
@@ -225,10 +229,16 @@ export const memoryPlugin = (() => {
|
|
|
225
229
|
// block, the nudge appends its hint); either may return void to pass through.
|
|
226
230
|
onBeforeProviderCall: async (req, ctx) => {
|
|
227
231
|
let out;
|
|
228
|
-
const
|
|
232
|
+
const baseHooks = base.hooks;
|
|
233
|
+
const injected = baseHooks
|
|
234
|
+
? await baseHooks.onBeforeProviderCall?.(out ?? req, ctx)
|
|
235
|
+
: undefined;
|
|
229
236
|
if (injected)
|
|
230
237
|
out = injected;
|
|
231
|
-
const
|
|
238
|
+
const consolidateHooks = consolidate.hooks;
|
|
239
|
+
const nudged = consolidateHooks
|
|
240
|
+
? await consolidateHooks.onBeforeProviderCall?.(out ?? req, ctx)
|
|
241
|
+
: undefined;
|
|
232
242
|
if (nudged)
|
|
233
243
|
out = nudged;
|
|
234
244
|
return out;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/store/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/store/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,CAAC,WAAW,CAAC,EAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,cAAc,GAAG,IAAI,EAC5B,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAoEtC;AAqBD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,aAAa,CAAC,WAAW,CAAC,EAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,aAAa,CAAC,YAAY,CAAC,CAO7B"}
|
package/dist/store/search.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertDefined } from '@moxxy/sdk';
|
|
1
2
|
import { TfIdfEmbedder, cosineSimilarity, tokenize } from '../tfidf.js';
|
|
2
3
|
export async function recallVector(all, query, limit, embedder, index, mutex) {
|
|
3
4
|
const corpus = all.map((e) => entryForEmbedding(e));
|
|
@@ -18,10 +19,14 @@ export async function recallVector(all, query, limit, embedder, index, mutex) {
|
|
|
18
19
|
const cached = [];
|
|
19
20
|
const misses = [];
|
|
20
21
|
for (let i = 0; i < all.length; i++) {
|
|
21
|
-
const
|
|
22
|
+
const entry = all[i];
|
|
23
|
+
const text = corpus[i];
|
|
24
|
+
assertDefined(entry, 'loop index i < all.length');
|
|
25
|
+
assertDefined(text, 'corpus is built 1:1 from all');
|
|
26
|
+
const hit = index.lookup(entry.frontmatter.name, text);
|
|
22
27
|
cached.push(hit);
|
|
23
28
|
if (!hit)
|
|
24
|
-
misses.push({ index: i, text
|
|
29
|
+
misses.push({ index: i, text });
|
|
25
30
|
}
|
|
26
31
|
const queryIdx = misses.length;
|
|
27
32
|
const toEmbed = [...misses.map((m) => m.text), query];
|
|
@@ -48,8 +53,11 @@ export async function recallVector(all, query, limit, embedder, index, mutex) {
|
|
|
48
53
|
// future recall would read back a corrupt entry).
|
|
49
54
|
for (const [j, m] of misses.entries()) {
|
|
50
55
|
const v = fresh[j];
|
|
51
|
-
if (Array.isArray(v))
|
|
52
|
-
|
|
56
|
+
if (Array.isArray(v)) {
|
|
57
|
+
const entry = all[m.index];
|
|
58
|
+
assertDefined(entry, 'm.index was recorded from the bounds-checked all[] loop');
|
|
59
|
+
index.set(entry.frontmatter.name, m.text, v);
|
|
60
|
+
}
|
|
53
61
|
}
|
|
54
62
|
index.prune(all.map((e) => e.frontmatter.name));
|
|
55
63
|
await index.flush();
|
|
@@ -92,6 +100,8 @@ function rankCosine(entries, vectors, query, limit) {
|
|
|
92
100
|
}
|
|
93
101
|
const ranked = [];
|
|
94
102
|
for (let i = 0; i < entries.length; i++) {
|
|
103
|
+
const entry = entries[i];
|
|
104
|
+
assertDefined(entry, 'loop index i < entries.length');
|
|
95
105
|
const vec = vectors[i];
|
|
96
106
|
// cosineSimilarity silently truncates to the shorter vector, so a stale
|
|
97
107
|
// cached vector or a provider quirk of the wrong dimensionality would
|
|
@@ -99,13 +109,13 @@ function rankCosine(entries, vectors, query, limit) {
|
|
|
99
109
|
// vector (embedder under-returned) is the same hazard. Skip the entry
|
|
100
110
|
// loudly instead of ranking it on a mismatched or absent basis.
|
|
101
111
|
if (!Array.isArray(vec) || vec.length !== query.length) {
|
|
102
|
-
console.warn(`[plugin-memory] skipping '${
|
|
112
|
+
console.warn(`[plugin-memory] skipping '${entry.frontmatter.name}' in recall: ` +
|
|
103
113
|
`vector dim ${Array.isArray(vec) ? vec.length : 'missing'} != query dim ${query.length} (cache/embedder drift)`);
|
|
104
114
|
continue;
|
|
105
115
|
}
|
|
106
116
|
const score = cosineSimilarity(vec, query);
|
|
107
117
|
if (score > 0)
|
|
108
|
-
ranked.push({ entry
|
|
118
|
+
ranked.push({ entry, score });
|
|
109
119
|
}
|
|
110
120
|
ranked.sort((a, b) => b.score - a.score);
|
|
111
121
|
return ranked.slice(0, limit);
|
package/dist/store/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/store/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AASxE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAA+B,EAC/B,KAAa,EACb,KAAa,EACb,QAA2B,EAC3B,KAA4B,EAC5B,KAAY;IAEZ,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,oEAAoE;IACpE,IAAI,QAAQ,YAAY,aAAa,EAAE,CAAC;QACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACjC,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,6EAA6E;IAC7E,IAAI,KAAK,EAAE,CAAC;QACV,qEAAqE;QACrE,0EAA0E;QAC1E,sEAAsE;QACtE,yEAAyE;QACzE,oEAAoE;QACpE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACvD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,MAAM,GAAwC,EAAE,CAAC;YACvD,MAAM,MAAM,GAAsC,EAAE,CAAC;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/store/search.ts"],"names":[],"mappings":"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"}
|
package/dist/user-model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-model.d.ts","sourceRoot":"","sources":["../src/user-model.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"user-model.d.ts","sourceRoot":"","sources":["../src/user-model.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;;;;;GAaG;AAGH,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAC9C,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,mDAAmD;AACnD,eAAO,MAAM,cAAc,8DAA+D,CAAC;AAE3F,gEAAgE;AAChE,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAK9D,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AACvF,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAkBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAsBtD;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAQ3D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,GAAE,MAA2B,GAAG,MAAM,CAkB9F;AAMD,oFAAoF;AACpF,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,MAAM,CAAsD;IAEpE,uEAAuE;gBAC3D,GAAG,CAAC,EAAE,MAAM;IAIxB;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAiBvC,sEAAsE;IAChE,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IASvC;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAkB1G,uDAAuD;YACzC,QAAQ;IAKtB;;;;;;OAMG;IACG,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CAgBxE;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CA2B5D"}
|
package/dist/user-model.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { promises as fs } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import { z, defineTool, createMutex, } from '@moxxy/sdk';
|
|
3
|
+
import { z, assertDefined, defineTool, createMutex, } from '@moxxy/sdk';
|
|
4
4
|
import { moxxyPath, writeFileAtomic } from '@moxxy/sdk/server';
|
|
5
5
|
/**
|
|
6
6
|
* The persistent USER MODEL — `~/.moxxy/memory/user-model.md`.
|
|
@@ -63,7 +63,9 @@ export function parseUserModel(text) {
|
|
|
63
63
|
seenHeading = true;
|
|
64
64
|
if (current)
|
|
65
65
|
sections.push({ title: current.title, content: current.body.join('\n').trim() });
|
|
66
|
-
|
|
66
|
+
const title = m[1];
|
|
67
|
+
assertDefined(title, 'HEADING_RE capture group 1 is present on any match');
|
|
68
|
+
current = { title: title.trim(), body: [] };
|
|
67
69
|
}
|
|
68
70
|
else if (!seenHeading) {
|
|
69
71
|
preambleLines.push(line);
|
package/dist/user-model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-model.js","sourceRoot":"","sources":["../src/user-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,CAAC,EACD,UAAU,EACV,WAAW,GAIZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC,mDAAmD;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AAE3F,gEAAgE;AAChE,MAAM,CAAC,MAAM,cAAc,GAAwC;IACjE,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;CACnB,CAAC;AAgBF,qEAAqE;AACrE,MAAM,iBAAiB,GAAG;;2FAEiE,CAAC;AAE5F,SAAS,aAAa;IACpB,OAAO;QACL,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAErC;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,IAAI,OAAO,GAA6C,IAAI,CAAC;IAC7D,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC;YACN,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,OAAO;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9F,
|
|
1
|
+
{"version":3,"file":"user-model.js","sourceRoot":"","sources":["../src/user-model.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moxxy/plugin-memory",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "Journal-based long-term memory for moxxy. Markdown files at ~/.moxxy/memory/ with type/description frontmatter + an index. Plus STM selectors over the event log.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"moxxy",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"zod": "^3.24.0",
|
|
47
|
-
"@moxxy/sdk": "0.
|
|
47
|
+
"@moxxy/sdk": "0.30.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/node": "^22.10.0",
|
|
@@ -3,6 +3,7 @@ import { promises as fs } from 'node:fs';
|
|
|
3
3
|
import * as os from 'node:os';
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import type { LLMProvider, ProviderEvent } from '@moxxy/sdk';
|
|
6
|
+
import { assertDefined } from '@moxxy/sdk';
|
|
6
7
|
import { MemoryStore } from './store.js';
|
|
7
8
|
import { buildMemoryConsolidatePlugin } from './consolidate.js';
|
|
8
9
|
|
|
@@ -54,18 +55,23 @@ describe('auto-consolidation nudge hook', () => {
|
|
|
54
55
|
const store = new MemoryStore({ dir: tmp, embedder: null });
|
|
55
56
|
await fillMemories(store, 5);
|
|
56
57
|
const plugin = buildMemoryConsolidatePlugin(store, () => stubProvider, { autoNudgeThreshold: 3 });
|
|
57
|
-
const
|
|
58
|
+
const hooks = plugin.hooks;
|
|
59
|
+
assertDefined(hooks, 'nudge plugin registers hooks');
|
|
60
|
+
const result = await hooks.onBeforeProviderCall?.(baseReq('be terse'), ctx());
|
|
58
61
|
expect(result).toBeDefined();
|
|
59
|
-
|
|
60
|
-
expect(result
|
|
61
|
-
expect(result
|
|
62
|
+
assertDefined(result, 'the nudge fires above threshold');
|
|
63
|
+
expect(result.system).toContain('be terse');
|
|
64
|
+
expect(result.system).toContain('memory_consolidate');
|
|
65
|
+
expect(result.system).toContain('5 entries');
|
|
62
66
|
});
|
|
63
67
|
|
|
64
68
|
it('does NOT append a hint when memory count is below threshold', async () => {
|
|
65
69
|
const store = new MemoryStore({ dir: tmp, embedder: null });
|
|
66
70
|
await fillMemories(store, 2);
|
|
67
71
|
const plugin = buildMemoryConsolidatePlugin(store, () => stubProvider, { autoNudgeThreshold: 10 });
|
|
68
|
-
const
|
|
72
|
+
const hooks = plugin.hooks;
|
|
73
|
+
assertDefined(hooks, 'nudge plugin registers hooks');
|
|
74
|
+
const result = await hooks.onBeforeProviderCall?.(baseReq(), ctx());
|
|
69
75
|
expect(result).toBeUndefined();
|
|
70
76
|
});
|
|
71
77
|
|
|
@@ -73,8 +79,10 @@ describe('auto-consolidation nudge hook', () => {
|
|
|
73
79
|
const store = new MemoryStore({ dir: tmp, embedder: null });
|
|
74
80
|
await fillMemories(store, 5);
|
|
75
81
|
const plugin = buildMemoryConsolidatePlugin(store, () => stubProvider, { autoNudgeThreshold: 3 });
|
|
76
|
-
const
|
|
77
|
-
|
|
82
|
+
const hooks = plugin.hooks;
|
|
83
|
+
assertDefined(hooks, 'nudge plugin registers hooks');
|
|
84
|
+
const first = await hooks.onBeforeProviderCall?.(baseReq(), ctx());
|
|
85
|
+
const second = await hooks.onBeforeProviderCall?.(baseReq(), ctx());
|
|
78
86
|
expect(first).toBeDefined();
|
|
79
87
|
expect(second).toBeUndefined();
|
|
80
88
|
});
|
|
@@ -91,7 +99,9 @@ describe('auto-consolidation nudge hook', () => {
|
|
|
91
99
|
await fillMemories(store, 30);
|
|
92
100
|
const plugin = buildMemoryConsolidatePlugin(store, () => stubProvider);
|
|
93
101
|
// 30 is not greater than 30 → no nudge
|
|
94
|
-
const
|
|
102
|
+
const hooks = plugin.hooks;
|
|
103
|
+
assertDefined(hooks, 'nudge plugin registers hooks');
|
|
104
|
+
const result = await hooks.onBeforeProviderCall?.(baseReq(), ctx());
|
|
95
105
|
expect(result).toBeUndefined();
|
|
96
106
|
});
|
|
97
107
|
|
package/src/consolidate.test.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { promises as fs } from 'node:fs';
|
|
|
3
3
|
import * as os from 'node:os';
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import type { LLMProvider, ProviderEvent } from '@moxxy/sdk';
|
|
6
|
+
import { assertDefined } from '@moxxy/sdk';
|
|
6
7
|
import { MemoryStore } from './store.js';
|
|
7
8
|
import { consolidateMemory, planConsolidation } from './consolidate.js';
|
|
8
9
|
|
|
@@ -108,7 +109,9 @@ describe('planConsolidation', () => {
|
|
|
108
109
|
];
|
|
109
110
|
const plan = planConsolidation(entries, { tag: 'api' });
|
|
110
111
|
expect(plan.clusters).toHaveLength(1);
|
|
111
|
-
|
|
112
|
+
const cluster = plan.clusters[0];
|
|
113
|
+
assertDefined(cluster, 'plan has one cluster');
|
|
114
|
+
expect(cluster.members.sort()).toEqual(['a', 'b']);
|
|
112
115
|
});
|
|
113
116
|
});
|
|
114
117
|
|
package/src/consolidate.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
z,
|
|
3
|
+
assertDefined,
|
|
3
4
|
defineTool,
|
|
4
5
|
definePlugin,
|
|
5
6
|
type LifecycleHooks,
|
|
@@ -46,8 +47,9 @@ export function planConsolidation(
|
|
|
46
47
|
entries: ReadonlyArray<MemoryEntry>,
|
|
47
48
|
opts: { tag?: string } = {},
|
|
48
49
|
): ConsolidatePlan {
|
|
49
|
-
const
|
|
50
|
-
|
|
50
|
+
const tag = opts.tag;
|
|
51
|
+
const filtered = tag
|
|
52
|
+
? entries.filter((e) => (e.frontmatter.tags ?? []).includes(tag))
|
|
51
53
|
: entries;
|
|
52
54
|
if (filtered.length < 2) {
|
|
53
55
|
return { clusters: [], stable: filtered.map((e) => e.frontmatter.name) };
|
|
@@ -63,7 +65,8 @@ export function planConsolidation(
|
|
|
63
65
|
tagless.push(e);
|
|
64
66
|
} else {
|
|
65
67
|
// Use the first tag as the cluster key (deterministic, simple)
|
|
66
|
-
const key = tags[0]
|
|
68
|
+
const key = tags[0];
|
|
69
|
+
assertDefined(key, 'tags is non-empty here (tags.length === 0 handled above)');
|
|
67
70
|
const list = byTag.get(key) ?? [];
|
|
68
71
|
list.push(e);
|
|
69
72
|
byTag.set(key, list);
|
|
@@ -99,14 +102,18 @@ export function planConsolidation(
|
|
|
99
102
|
if (members.length >= 2) {
|
|
100
103
|
clusters.push({ key: `tag:${key}`, members: members.map((m) => m.frontmatter.name) });
|
|
101
104
|
} else {
|
|
102
|
-
|
|
105
|
+
const only = members[0];
|
|
106
|
+
assertDefined(only, 'byTag lists always carry ≥1 member');
|
|
107
|
+
stable.push(only.frontmatter.name);
|
|
103
108
|
}
|
|
104
109
|
}
|
|
105
110
|
for (const cluster of descClusters) {
|
|
106
111
|
if (cluster.members.length >= 2) {
|
|
107
112
|
clusters.push({ key: cluster.key, members: cluster.members.map((m) => m.frontmatter.name) });
|
|
108
113
|
} else {
|
|
109
|
-
|
|
114
|
+
const only = cluster.members[0];
|
|
115
|
+
assertDefined(only, 'desc clusters are created with ≥1 member');
|
|
116
|
+
stable.push(only.frontmatter.name);
|
|
110
117
|
}
|
|
111
118
|
}
|
|
112
119
|
|
|
@@ -374,7 +381,7 @@ function extractJson(text: string): unknown {
|
|
|
374
381
|
// Take the span from the first `{` to the last `}` in the response. Some
|
|
375
382
|
// providers wrap the object in ```json ... ```, which we strip first.
|
|
376
383
|
const fenced = /```(?:json)?\n?([\s\S]*?)```/.exec(text);
|
|
377
|
-
const candidate = fenced
|
|
384
|
+
const candidate = fenced?.[1] ?? text;
|
|
378
385
|
const start = candidate.indexOf('{');
|
|
379
386
|
const end = candidate.lastIndexOf('}');
|
|
380
387
|
// `end <= start` (e.g. a stray `}` before the first `{`) means there's no
|
package/src/discovery.test.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest';
|
|
2
2
|
import type { ServiceRegistry } from '@moxxy/sdk';
|
|
3
|
+
import { assertDefined } from '@moxxy/sdk';
|
|
3
4
|
import { memoryConsolidatePlugin } from './index.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -26,7 +27,10 @@ describe('memoryConsolidatePlugin (discovery-loadable)', () => {
|
|
|
26
27
|
has: () => true,
|
|
27
28
|
register: () => {},
|
|
28
29
|
} as unknown as ServiceRegistry;
|
|
29
|
-
memoryConsolidatePlugin.hooks
|
|
30
|
+
const hooks = memoryConsolidatePlugin.hooks;
|
|
31
|
+
assertDefined(hooks, 'plugin defines hooks');
|
|
32
|
+
assertDefined(hooks.onInit, 'plugin defines an onInit hook');
|
|
33
|
+
hooks.onInit({ services } as never);
|
|
30
34
|
expect(get).toHaveBeenCalledWith('memory');
|
|
31
35
|
expect(get).toHaveBeenCalledWith('providers');
|
|
32
36
|
});
|
package/src/index.ts
CHANGED
|
@@ -262,8 +262,10 @@ export const memoryPlugin: Plugin = (() => {
|
|
|
262
262
|
onInit: async (ctx) => {
|
|
263
263
|
embeddersReg =
|
|
264
264
|
ctx.services.get<{ tryGetActive(): unknown }>('embedders') ?? null;
|
|
265
|
-
|
|
266
|
-
await
|
|
265
|
+
const baseHooks = base.hooks;
|
|
266
|
+
if (baseHooks) await baseHooks.onInit?.(ctx);
|
|
267
|
+
const consolidateHooks = consolidate.hooks;
|
|
268
|
+
if (consolidateHooks) await consolidateHooks.onInit?.(ctx);
|
|
267
269
|
},
|
|
268
270
|
// A Plugin has a single onBeforeProviderCall, but this composed plugin
|
|
269
271
|
// carries TWO: base's always-on user-model injection and consolidate's
|
|
@@ -271,9 +273,15 @@ export const memoryPlugin: Plugin = (() => {
|
|
|
271
273
|
// block, the nudge appends its hint); either may return void to pass through.
|
|
272
274
|
onBeforeProviderCall: async (req, ctx) => {
|
|
273
275
|
let out: ProviderRequest | undefined;
|
|
274
|
-
const
|
|
276
|
+
const baseHooks = base.hooks;
|
|
277
|
+
const injected = baseHooks
|
|
278
|
+
? await baseHooks.onBeforeProviderCall?.(out ?? req, ctx)
|
|
279
|
+
: undefined;
|
|
275
280
|
if (injected) out = injected;
|
|
276
|
-
const
|
|
281
|
+
const consolidateHooks = consolidate.hooks;
|
|
282
|
+
const nudged = consolidateHooks
|
|
283
|
+
? await consolidateHooks.onBeforeProviderCall?.(out ?? req, ctx)
|
|
284
|
+
: undefined;
|
|
277
285
|
if (nudged) out = nudged;
|
|
278
286
|
return out;
|
|
279
287
|
},
|
package/src/stm.test.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { asPluginId, asSessionId, asToolCallId, asTurnId, type MoxxyEvent } from '@moxxy/sdk';
|
|
2
|
+
import { asPluginId, asSessionId, asToolCallId, asTurnId, assertDefined, type MoxxyEvent } from '@moxxy/sdk';
|
|
3
3
|
import { recentExchanges, summarizeSession } from './stm.js';
|
|
4
4
|
|
|
5
5
|
const sid = asSessionId('s');
|
|
@@ -37,7 +37,9 @@ describe('recentExchanges', () => {
|
|
|
37
37
|
]);
|
|
38
38
|
const recent = recentExchanges(log, 2);
|
|
39
39
|
expect(recent.map((r) => r.source)).toEqual(['assistant', 'user']);
|
|
40
|
-
|
|
40
|
+
const second = recent[1];
|
|
41
|
+
assertDefined(second, 'recentExchanges returns two exchanges');
|
|
42
|
+
expect(second.text).toBe('next');
|
|
41
43
|
});
|
|
42
44
|
|
|
43
45
|
it('ignores non-message events', () => {
|
package/src/store/search.test.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { promises as fs } from 'node:fs';
|
|
|
3
3
|
import * as os from 'node:os';
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import type { EmbeddingProvider, Mutex } from '@moxxy/sdk';
|
|
6
|
-
import { createMutex } from '@moxxy/sdk';
|
|
6
|
+
import { createMutex, assertDefined } from '@moxxy/sdk';
|
|
7
7
|
import { rankByKeywords, recallVector } from './search.js';
|
|
8
8
|
import { EmbeddingIndex } from '../embedding-cache.js';
|
|
9
9
|
import type { MemoryEntry, MemoryType } from './types.js';
|
|
@@ -33,7 +33,9 @@ describe('rankByKeywords', () => {
|
|
|
33
33
|
const e = entry('ci', 'continuous integration', 'deploy then deploy and deploy again');
|
|
34
34
|
const ranked = rankByKeywords([e], 'deploy', 5);
|
|
35
35
|
expect(ranked).toHaveLength(1);
|
|
36
|
-
|
|
36
|
+
const top = ranked[0];
|
|
37
|
+
assertDefined(top, 'rankByKeywords returns one ranked entry');
|
|
38
|
+
expect(top.score).toBe(3);
|
|
37
39
|
});
|
|
38
40
|
|
|
39
41
|
it('weights name and description hits above body-only hits', () => {
|
|
@@ -53,7 +55,9 @@ describe('rankByKeywords', () => {
|
|
|
53
55
|
const both = entry('a', 'alpha beta', 'alpha beta gamma');
|
|
54
56
|
const one = entry('b', 'just alpha', 'nothing else');
|
|
55
57
|
const ranked = rankByKeywords([one, both], 'alpha beta', 5);
|
|
56
|
-
|
|
58
|
+
const top = ranked[0];
|
|
59
|
+
assertDefined(top, 'rankByKeywords returns a ranked entry');
|
|
60
|
+
expect(top.entry.frontmatter.name).toBe('a');
|
|
57
61
|
});
|
|
58
62
|
|
|
59
63
|
it('drops zero-score entries and respects the limit', () => {
|
|
@@ -61,7 +65,9 @@ describe('rankByKeywords', () => {
|
|
|
61
65
|
const miss = entry('y', 'unrelated', 'nothing relevant');
|
|
62
66
|
const ranked = rankByKeywords([hit, miss], 'widget', 1);
|
|
63
67
|
expect(ranked).toHaveLength(1);
|
|
64
|
-
|
|
68
|
+
const top = ranked[0];
|
|
69
|
+
assertDefined(top, 'rankByKeywords returns one ranked entry');
|
|
70
|
+
expect(top.entry.frontmatter.name).toBe('x');
|
|
65
71
|
});
|
|
66
72
|
|
|
67
73
|
it('an empty query matches every entry with score 1', () => {
|
package/src/store/search.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EmbeddingProvider, Mutex } from '@moxxy/sdk';
|
|
2
|
+
import { assertDefined } from '@moxxy/sdk';
|
|
2
3
|
import { TfIdfEmbedder, cosineSimilarity, tokenize } from '../tfidf.js';
|
|
3
4
|
import type { EmbeddingIndex } from '../embedding-cache.js';
|
|
4
5
|
import type { MemoryEntry } from './types.js';
|
|
@@ -36,9 +37,13 @@ export async function recallVector(
|
|
|
36
37
|
const cached: Array<ReadonlyArray<number> | null> = [];
|
|
37
38
|
const misses: { index: number; text: string }[] = [];
|
|
38
39
|
for (let i = 0; i < all.length; i++) {
|
|
39
|
-
const
|
|
40
|
+
const entry = all[i];
|
|
41
|
+
const text = corpus[i];
|
|
42
|
+
assertDefined(entry, 'loop index i < all.length');
|
|
43
|
+
assertDefined(text, 'corpus is built 1:1 from all');
|
|
44
|
+
const hit = index.lookup(entry.frontmatter.name, text);
|
|
40
45
|
cached.push(hit);
|
|
41
|
-
if (!hit) misses.push({ index: i, text
|
|
46
|
+
if (!hit) misses.push({ index: i, text });
|
|
42
47
|
}
|
|
43
48
|
const queryIdx = misses.length;
|
|
44
49
|
const toEmbed = [...misses.map((m) => m.text), query];
|
|
@@ -64,7 +69,11 @@ export async function recallVector(
|
|
|
64
69
|
// future recall would read back a corrupt entry).
|
|
65
70
|
for (const [j, m] of misses.entries()) {
|
|
66
71
|
const v = fresh[j];
|
|
67
|
-
if (Array.isArray(v))
|
|
72
|
+
if (Array.isArray(v)) {
|
|
73
|
+
const entry = all[m.index];
|
|
74
|
+
assertDefined(entry, 'm.index was recorded from the bounds-checked all[] loop');
|
|
75
|
+
index.set(entry.frontmatter.name, m.text, v);
|
|
76
|
+
}
|
|
68
77
|
}
|
|
69
78
|
index.prune(all.map((e) => e.frontmatter.name));
|
|
70
79
|
await index.flush();
|
|
@@ -128,6 +137,8 @@ function rankCosine(
|
|
|
128
137
|
}
|
|
129
138
|
const ranked: RankedMemory[] = [];
|
|
130
139
|
for (let i = 0; i < entries.length; i++) {
|
|
140
|
+
const entry = entries[i];
|
|
141
|
+
assertDefined(entry, 'loop index i < entries.length');
|
|
131
142
|
const vec = vectors[i];
|
|
132
143
|
// cosineSimilarity silently truncates to the shorter vector, so a stale
|
|
133
144
|
// cached vector or a provider quirk of the wrong dimensionality would
|
|
@@ -136,13 +147,13 @@ function rankCosine(
|
|
|
136
147
|
// loudly instead of ranking it on a mismatched or absent basis.
|
|
137
148
|
if (!Array.isArray(vec) || vec.length !== query.length) {
|
|
138
149
|
console.warn(
|
|
139
|
-
`[plugin-memory] skipping '${
|
|
150
|
+
`[plugin-memory] skipping '${entry.frontmatter.name}' in recall: ` +
|
|
140
151
|
`vector dim ${Array.isArray(vec) ? vec.length : 'missing'} != query dim ${query.length} (cache/embedder drift)`,
|
|
141
152
|
);
|
|
142
153
|
continue;
|
|
143
154
|
}
|
|
144
155
|
const score = cosineSimilarity(vec, query);
|
|
145
|
-
if (score > 0) ranked.push({ entry
|
|
156
|
+
if (score > 0) ranked.push({ entry, score });
|
|
146
157
|
}
|
|
147
158
|
ranked.sort((a, b) => b.score - a.score);
|
|
148
159
|
return ranked.slice(0, limit);
|
package/src/store.test.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { assertDefined } from '@moxxy/sdk';
|
|
2
3
|
import { promises as fs } from 'node:fs';
|
|
3
4
|
import * as os from 'node:os';
|
|
4
5
|
import * as path from 'node:path';
|
|
@@ -68,16 +69,20 @@ describe('MemoryStore', () => {
|
|
|
68
69
|
await store.save({ name: 'b', type: 'preference', description: 'B', body: '.' });
|
|
69
70
|
const facts = await store.list('fact');
|
|
70
71
|
expect(facts).toHaveLength(1);
|
|
71
|
-
|
|
72
|
+
const fact = facts[0];
|
|
73
|
+
assertDefined(fact, 'facts has one entry');
|
|
74
|
+
expect(fact.frontmatter.name).toBe('a');
|
|
72
75
|
});
|
|
73
76
|
|
|
74
77
|
it('update preserves createdAt but bumps updatedAt', async () => {
|
|
75
78
|
const store = newStore();
|
|
76
79
|
await store.save({ name: 'foo', type: 'fact', description: 'd', body: 'orig' });
|
|
77
|
-
const first =
|
|
80
|
+
const first = await store.get('foo');
|
|
81
|
+
assertDefined(first, 'foo was just saved');
|
|
78
82
|
await new Promise((r) => setTimeout(r, 10));
|
|
79
83
|
await store.update('foo', { body: 'updated' });
|
|
80
|
-
const second =
|
|
84
|
+
const second = await store.get('foo');
|
|
85
|
+
assertDefined(second, 'foo still exists after update');
|
|
81
86
|
expect(second.frontmatter.createdAt).toBe(first.frontmatter.createdAt);
|
|
82
87
|
expect(second.frontmatter.updatedAt).not.toBe(first.frontmatter.updatedAt);
|
|
83
88
|
expect(second.body).toBe('updated');
|
|
@@ -112,9 +117,13 @@ describe('MemoryStore', () => {
|
|
|
112
117
|
body: 'All migrations target Postgres 16. Use `pg_dump` for backups.',
|
|
113
118
|
});
|
|
114
119
|
const matches = await store.recall('trpc endpoints');
|
|
115
|
-
|
|
120
|
+
const topMatch = matches[0];
|
|
121
|
+
assertDefined(topMatch, 'recall returns a match');
|
|
122
|
+
expect(topMatch.entry.frontmatter.name).toBe('team-likes-trpc');
|
|
116
123
|
const pg = await store.recall('postgres');
|
|
117
|
-
|
|
124
|
+
const topPg = pg[0];
|
|
125
|
+
assertDefined(topPg, 'recall returns a match');
|
|
126
|
+
expect(topPg.entry.frontmatter.name).toBe('prod-postgres');
|
|
118
127
|
});
|
|
119
128
|
|
|
120
129
|
it('rejects invalid frontmatter at save time via the schema', async () => {
|
package/src/tfidf.test.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { assertDefined } from '@moxxy/sdk';
|
|
2
3
|
import { TfIdfEmbedder, cosineSimilarity, tokenize } from './tfidf.js';
|
|
3
4
|
|
|
4
5
|
describe('tokenize', () => {
|
|
@@ -29,8 +30,12 @@ describe('TfIdfEmbedder', () => {
|
|
|
29
30
|
e.fit(corpus);
|
|
30
31
|
const vectors = await e.embed(corpus);
|
|
31
32
|
expect(vectors).toHaveLength(3);
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
const v0 = vectors[0];
|
|
34
|
+
const v1 = vectors[1];
|
|
35
|
+
assertDefined(v0, 'embed returns a vector per corpus entry');
|
|
36
|
+
assertDefined(v1, 'embed returns a vector per corpus entry');
|
|
37
|
+
expect(v0.length).toBeGreaterThan(0);
|
|
38
|
+
expect(v0.length).toBe(v1.length);
|
|
34
39
|
});
|
|
35
40
|
|
|
36
41
|
it('ranks a relevant query higher than an irrelevant one', async () => {
|
|
@@ -42,11 +47,20 @@ describe('TfIdfEmbedder', () => {
|
|
|
42
47
|
const e = new TfIdfEmbedder();
|
|
43
48
|
e.fit([...corpus, 'what API style does the team use', 'database flavor in prod']);
|
|
44
49
|
const v = await e.embed([...corpus, 'what API style does the team use']);
|
|
45
|
-
const queryVec = v[v.length - 1]
|
|
46
|
-
|
|
50
|
+
const queryVec = v[v.length - 1];
|
|
51
|
+
assertDefined(queryVec, 'embed returns the query vector last');
|
|
52
|
+
const scores = corpus.map((_, i) => {
|
|
53
|
+
const vi = v[i];
|
|
54
|
+
assertDefined(vi, 'embed returns a vector per corpus entry');
|
|
55
|
+
return cosineSimilarity(vi, queryVec);
|
|
56
|
+
});
|
|
47
57
|
// tRPC entry should be most similar to "API style" query
|
|
48
|
-
|
|
49
|
-
|
|
58
|
+
const s1 = scores[1];
|
|
59
|
+
const s2 = scores[2];
|
|
60
|
+
assertDefined(s1, 'scores has an entry per corpus entry');
|
|
61
|
+
assertDefined(s2, 'scores has an entry per corpus entry');
|
|
62
|
+
expect(scores[0]).toBeGreaterThan(s1);
|
|
63
|
+
expect(scores[0]).toBeGreaterThan(s2);
|
|
50
64
|
});
|
|
51
65
|
|
|
52
66
|
it('cosineSimilarity returns 1 for identical normalized vectors', () => {
|
package/src/user-model.test.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { promises as fs } from 'node:fs';
|
|
|
3
3
|
import * as os from 'node:os';
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import type { ProviderRequest } from '@moxxy/sdk';
|
|
6
|
+
import { assertDefined } from '@moxxy/sdk';
|
|
6
7
|
import {
|
|
7
8
|
UserModelStore,
|
|
8
9
|
userModelTool,
|
|
@@ -39,7 +40,9 @@ describe('parseUserModel / serializeUserModel', () => {
|
|
|
39
40
|
const text = '## Identity\n\nAlex, a backend dev.\n\n## Preferences\n\nTerse replies.\n';
|
|
40
41
|
const model = parseUserModel(text);
|
|
41
42
|
expect(model.sections.map((s) => s.title)).toEqual(['Identity', 'Preferences']);
|
|
42
|
-
|
|
43
|
+
const identity = model.sections[0];
|
|
44
|
+
assertDefined(identity, 'parsed model has an Identity section');
|
|
45
|
+
expect(identity.content).toBe('Alex, a backend dev.');
|
|
43
46
|
// serialize → parse is stable
|
|
44
47
|
const reparsed = parseUserModel(serializeUserModel(model));
|
|
45
48
|
expect(reparsed.sections).toEqual(model.sections);
|
|
@@ -132,11 +135,13 @@ describe('UserModelStore.load (mtime cache)', () => {
|
|
|
132
135
|
const store = newStore();
|
|
133
136
|
await store.update('identity', 'first', 'replace');
|
|
134
137
|
const before = await store.load();
|
|
135
|
-
|
|
138
|
+
assertDefined(before, 'store has content after update');
|
|
139
|
+
expect(before.sections.find((s) => s.title === 'Identity')?.content).toBe('first');
|
|
136
140
|
await new Promise((r) => setTimeout(r, 10)); // ensure a distinct mtime
|
|
137
141
|
await store.update('identity', 'second', 'replace');
|
|
138
142
|
const after = await store.load();
|
|
139
|
-
|
|
143
|
+
assertDefined(after, 'store has content after update');
|
|
144
|
+
expect(after.sections.find((s) => s.title === 'Identity')?.content).toBe('second');
|
|
140
145
|
});
|
|
141
146
|
|
|
142
147
|
it('picks up an out-of-band write with a newer mtime', async () => {
|
|
@@ -145,9 +150,9 @@ describe('UserModelStore.load (mtime cache)', () => {
|
|
|
145
150
|
await store.load(); // prime the cache
|
|
146
151
|
await new Promise((r) => setTimeout(r, 10));
|
|
147
152
|
await fs.writeFile(modelPath(), '## Identity\n\nrewritten\n');
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
);
|
|
153
|
+
const loaded = await store.load();
|
|
154
|
+
assertDefined(loaded, 'store has content after an out-of-band write');
|
|
155
|
+
expect(loaded.sections.find((s) => s.title === 'Identity')?.content).toBe('rewritten');
|
|
151
156
|
});
|
|
152
157
|
});
|
|
153
158
|
|
|
@@ -171,23 +176,26 @@ describe('UserModelStore.update', () => {
|
|
|
171
176
|
await store.update('preferences', 'terse', 'replace');
|
|
172
177
|
await store.update('preferences', 'verbose', 'replace');
|
|
173
178
|
const m = await store.load();
|
|
174
|
-
|
|
179
|
+
assertDefined(m, 'store has content after update');
|
|
180
|
+
expect(m.sections.find((s) => s.title === 'Preferences')?.content).toBe('verbose');
|
|
175
181
|
});
|
|
176
182
|
|
|
177
183
|
it('append adds to existing content on its own line', async () => {
|
|
178
184
|
const store = newStore();
|
|
179
185
|
await store.update('workflows', 'uses pnpm', 'replace');
|
|
180
186
|
await store.update('workflows', 'rebases often', 'append');
|
|
181
|
-
const
|
|
187
|
+
const loaded = await store.load();
|
|
188
|
+
assertDefined(loaded, 'store has content after update');
|
|
189
|
+
const content = loaded.sections.find((s) => s.title === 'Workflows')?.content;
|
|
182
190
|
expect(content).toBe('uses pnpm\nrebases often');
|
|
183
191
|
});
|
|
184
192
|
|
|
185
193
|
it('append on an empty section behaves like replace', async () => {
|
|
186
194
|
const store = newStore();
|
|
187
195
|
await store.update('context', 'sole line', 'append');
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
);
|
|
196
|
+
const loaded = await store.load();
|
|
197
|
+
assertDefined(loaded, 'store has content after append');
|
|
198
|
+
expect(loaded.sections.find((s) => s.title === 'Context')?.content).toBe('sole line');
|
|
191
199
|
});
|
|
192
200
|
|
|
193
201
|
it('preserves an unknown section when a tool write touches a fixed one', async () => {
|
|
@@ -222,13 +230,15 @@ describe('UserModelStore.injectInto', () => {
|
|
|
222
230
|
const store = newStore();
|
|
223
231
|
await store.update('identity', 'Alex, backend dev', 'replace');
|
|
224
232
|
const out = (await store.injectInto(req('BASE SYSTEM'))) as ProviderRequest;
|
|
225
|
-
|
|
233
|
+
const system = out.system;
|
|
234
|
+
assertDefined(system, 'injectInto returns a system prompt');
|
|
235
|
+
expect(system.startsWith(USER_MODEL_OPEN)).toBe(true);
|
|
226
236
|
expect(out.system).toContain('## Identity\nAlex, backend dev');
|
|
227
237
|
expect(out.system).toContain('</user-model>');
|
|
228
238
|
expect(out.system).toContain('memory_update_user_model');
|
|
229
239
|
// Original system prompt is retained, AFTER the block.
|
|
230
240
|
expect(out.system).toContain('BASE SYSTEM');
|
|
231
|
-
expect(
|
|
241
|
+
expect(system.indexOf(USER_MODEL_OPEN)).toBeLessThan(system.indexOf('BASE SYSTEM'));
|
|
232
242
|
});
|
|
233
243
|
|
|
234
244
|
it('injects even when req.system is undefined', async () => {
|
|
@@ -246,7 +256,9 @@ describe('UserModelStore.injectInto', () => {
|
|
|
246
256
|
const second = await store.injectInto(first);
|
|
247
257
|
expect(second).toBeUndefined();
|
|
248
258
|
// Only one opening delimiter present.
|
|
249
|
-
|
|
259
|
+
const firstSystem = first.system;
|
|
260
|
+
assertDefined(firstSystem, 'first injection produced a system prompt');
|
|
261
|
+
expect(firstSystem.match(/<user-model>/g)).toHaveLength(1);
|
|
250
262
|
});
|
|
251
263
|
|
|
252
264
|
it('returns the request unchanged when parsing/reading throws', async () => {
|
|
@@ -264,8 +276,12 @@ describe('userModelTool', () => {
|
|
|
264
276
|
const tool = userModelTool(newStore());
|
|
265
277
|
expect(tool.name).toBe('memory_update_user_model');
|
|
266
278
|
expect(tool.permission).toEqual({ action: 'prompt' });
|
|
267
|
-
|
|
268
|
-
|
|
279
|
+
const isolation = tool.isolation;
|
|
280
|
+
assertDefined(isolation, 'the tool declares an isolation policy');
|
|
281
|
+
const capabilities = isolation.capabilities;
|
|
282
|
+
assertDefined(capabilities, 'the isolation policy declares capabilities');
|
|
283
|
+
expect(capabilities.fs?.write).toEqual(['~/.moxxy/memory/**']);
|
|
284
|
+
expect(capabilities.net).toEqual({ mode: 'none' });
|
|
269
285
|
});
|
|
270
286
|
|
|
271
287
|
it('rejects an out-of-enum section and over-long content', () => {
|
|
@@ -289,7 +305,9 @@ describe('userModelTool', () => {
|
|
|
289
305
|
{} as never,
|
|
290
306
|
)) as { section: string; mode: string; path: string };
|
|
291
307
|
expect(out.section).toBe('identity');
|
|
292
|
-
|
|
308
|
+
const loaded = await store.load();
|
|
309
|
+
assertDefined(loaded, 'store has content after the tool write');
|
|
310
|
+
expect(loaded.sections.find((s) => s.title === 'Identity')?.content).toBe('Alex');
|
|
293
311
|
const raw = await fs.readFile(modelPath(), 'utf8');
|
|
294
312
|
expect(raw).toContain('<!-- moxxy user model');
|
|
295
313
|
});
|
package/src/user-model.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { promises as fs } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import {
|
|
4
4
|
z,
|
|
5
|
+
assertDefined,
|
|
5
6
|
defineTool,
|
|
6
7
|
createMutex,
|
|
7
8
|
type Mutex,
|
|
@@ -94,7 +95,9 @@ export function parseUserModel(text: string): UserModel {
|
|
|
94
95
|
if (m) {
|
|
95
96
|
seenHeading = true;
|
|
96
97
|
if (current) sections.push({ title: current.title, content: current.body.join('\n').trim() });
|
|
97
|
-
|
|
98
|
+
const title = m[1];
|
|
99
|
+
assertDefined(title, 'HEADING_RE capture group 1 is present on any match');
|
|
100
|
+
current = { title: title.trim(), body: [] };
|
|
98
101
|
} else if (!seenHeading) {
|
|
99
102
|
preambleLines.push(line);
|
|
100
103
|
} else if (current) {
|
|
@@ -3,6 +3,7 @@ import { promises as fs } from 'node:fs';
|
|
|
3
3
|
import * as os from 'node:os';
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import type { EmbeddingProvider } from '@moxxy/sdk';
|
|
6
|
+
import { assertDefined } from '@moxxy/sdk';
|
|
6
7
|
import { MemoryStore } from './store.js';
|
|
7
8
|
|
|
8
9
|
let tmp: string;
|
|
@@ -40,21 +41,27 @@ describe('MemoryStore vector recall (TF-IDF default)', () => {
|
|
|
40
41
|
expect(store.embedderName).toBe('tfidf');
|
|
41
42
|
await sampleCorpus(store);
|
|
42
43
|
const matches = await store.recall('what API style does the team prefer');
|
|
43
|
-
|
|
44
|
+
const top = matches[0];
|
|
45
|
+
assertDefined(top, 'recall returns a match');
|
|
46
|
+
expect(top.entry.frontmatter.name).toBe('trpc-preference');
|
|
44
47
|
});
|
|
45
48
|
|
|
46
49
|
it('vector recall ranks semantically relevant entries above incidental keyword matches', async () => {
|
|
47
50
|
const store = new MemoryStore({ dir: tmp });
|
|
48
51
|
await sampleCorpus(store);
|
|
49
52
|
const matches = await store.recall('postgres database backups', { limit: 3 });
|
|
50
|
-
|
|
53
|
+
const top = matches[0];
|
|
54
|
+
assertDefined(top, 'recall returns a match');
|
|
55
|
+
expect(top.entry.frontmatter.name).toBe('postgres-prod');
|
|
51
56
|
});
|
|
52
57
|
|
|
53
58
|
it('mode: "keyword" forces the legacy scorer', async () => {
|
|
54
59
|
const store = new MemoryStore({ dir: tmp });
|
|
55
60
|
await sampleCorpus(store);
|
|
56
61
|
const matches = await store.recall('postgres', { mode: 'keyword' });
|
|
57
|
-
|
|
62
|
+
const top = matches[0];
|
|
63
|
+
assertDefined(top, 'recall returns a match');
|
|
64
|
+
expect(top.entry.frontmatter.name).toBe('postgres-prod');
|
|
58
65
|
});
|
|
59
66
|
|
|
60
67
|
it('embedder: null disables vector entirely and forces keyword', async () => {
|
|
@@ -63,7 +70,9 @@ describe('MemoryStore vector recall (TF-IDF default)', () => {
|
|
|
63
70
|
await sampleCorpus(store);
|
|
64
71
|
const matches = await store.recall('database flavor in prod');
|
|
65
72
|
// Falls through to keyword: "database" + "prod" only appear in postgres-prod
|
|
66
|
-
|
|
73
|
+
const top = matches[0];
|
|
74
|
+
assertDefined(top, 'recall returns a match');
|
|
75
|
+
expect(top.entry.frontmatter.name).toBe('postgres-prod');
|
|
67
76
|
});
|
|
68
77
|
|
|
69
78
|
it('accepts a custom EmbeddingProvider via the constructor', async () => {
|
|
@@ -78,7 +87,9 @@ describe('MemoryStore vector recall (TF-IDF default)', () => {
|
|
|
78
87
|
expect(store.embedderName).toBe('stub');
|
|
79
88
|
await sampleCorpus(store);
|
|
80
89
|
const matches = await store.recall('postgres');
|
|
81
|
-
|
|
90
|
+
const top = matches[0];
|
|
91
|
+
assertDefined(top, 'recall returns a match');
|
|
92
|
+
expect(top.entry.frontmatter.name).toBe('postgres-prod');
|
|
82
93
|
});
|
|
83
94
|
|
|
84
95
|
it('returns empty list when corpus is empty', async () => {
|