agentdb 3.0.0 → 3.2.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.
Files changed (57) hide show
  1. package/README.md +13 -0
  2. package/dist/src/backends/ExactSearch.d.ts +22 -0
  3. package/dist/src/backends/ExactSearch.d.ts.map +1 -0
  4. package/dist/src/backends/ExactSearch.js +36 -0
  5. package/dist/src/backends/ExactSearch.js.map +1 -0
  6. package/dist/src/backends/VectorBackend.d.ts +33 -1
  7. package/dist/src/backends/VectorBackend.d.ts.map +1 -1
  8. package/dist/src/backends/VectorBackend.js +58 -4
  9. package/dist/src/backends/VectorBackend.js.map +1 -1
  10. package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +1 -1
  11. package/dist/src/backends/rvf/SqlJsRvfBackend.js +22 -12
  12. package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +1 -1
  13. package/dist/src/controllers/EmbeddingService.d.ts +10 -0
  14. package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
  15. package/dist/src/controllers/EmbeddingService.js +12 -0
  16. package/dist/src/controllers/EmbeddingService.js.map +1 -1
  17. package/dist/src/controllers/ReasoningBank.d.ts +40 -4
  18. package/dist/src/controllers/ReasoningBank.d.ts.map +1 -1
  19. package/dist/src/controllers/ReasoningBank.js +124 -57
  20. package/dist/src/controllers/ReasoningBank.js.map +1 -1
  21. package/dist/src/controllers/ReflexionMemory.d.ts +20 -0
  22. package/dist/src/controllers/ReflexionMemory.d.ts.map +1 -1
  23. package/dist/src/controllers/ReflexionMemory.js +104 -17
  24. package/dist/src/controllers/ReflexionMemory.js.map +1 -1
  25. package/dist/src/controllers/SkillLibrary.d.ts +9 -0
  26. package/dist/src/controllers/SkillLibrary.d.ts.map +1 -1
  27. package/dist/src/controllers/SkillLibrary.js +60 -20
  28. package/dist/src/controllers/SkillLibrary.js.map +1 -1
  29. package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
  30. package/dist/src/controllers/WASMVectorSearch.js +48 -17
  31. package/dist/src/controllers/WASMVectorSearch.js.map +1 -1
  32. package/dist/src/controllers/episode-hybrid.d.ts +63 -0
  33. package/dist/src/controllers/episode-hybrid.d.ts.map +1 -0
  34. package/dist/src/controllers/episode-hybrid.js +117 -0
  35. package/dist/src/controllers/episode-hybrid.js.map +1 -0
  36. package/dist/src/mcp/agentdb-mcp-server.js +146 -3
  37. package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
  38. package/dist/src/search/conversation-retrieval.d.ts +56 -0
  39. package/dist/src/search/conversation-retrieval.d.ts.map +1 -0
  40. package/dist/src/search/conversation-retrieval.js +161 -0
  41. package/dist/src/search/conversation-retrieval.js.map +1 -0
  42. package/dist/src/search/cross-encoder.d.ts +17 -0
  43. package/dist/src/search/cross-encoder.d.ts.map +1 -0
  44. package/dist/src/search/cross-encoder.js +52 -0
  45. package/dist/src/search/cross-encoder.js.map +1 -0
  46. package/dist/src/security/mcp-policy.d.ts.map +1 -1
  47. package/dist/src/security/mcp-policy.js +4 -0
  48. package/dist/src/security/mcp-policy.js.map +1 -1
  49. package/dist/src/simd/simd-vector-ops.d.ts +11 -0
  50. package/dist/src/simd/simd-vector-ops.d.ts.map +1 -1
  51. package/dist/src/simd/simd-vector-ops.js +67 -0
  52. package/dist/src/simd/simd-vector-ops.js.map +1 -1
  53. package/dist/src/utils/top-k.d.ts +44 -0
  54. package/dist/src/utils/top-k.d.ts.map +1 -0
  55. package/dist/src/utils/top-k.js +111 -0
  56. package/dist/src/utils/top-k.js.map +1 -0
  57. package/package.json +2 -2
package/README.md CHANGED
@@ -165,6 +165,19 @@ Each decision logs reward over time. Bad arms decay fast. Good arms stick.
165
165
 
166
166
  Run them yourself: `npm run bench` from this repo.
167
167
 
168
+ ### Long-term memory retrieval (LongMemEval)
169
+
170
+ Episode search fuses BM25 keyword ranking with vector ranking by default (`hybrid: false` turns it off), and `rerank: true` adds a local cross-encoder over the top candidates. Session retrieval on [LongMemEval](https://github.com/xiaowu0162/LongMemEval), default MiniLM embedder, local models only, official protocol (470 questions):
171
+
172
+ | LongMemEval_M (≈500 sessions per question) | recall_all@5 | NDCG@5 | recall_all@10 |
173
+ |---|---|---|---|
174
+ | dense only | 0.630 | 0.692 | 0.751 |
175
+ | **hybrid** (default) | 0.719 | 0.750 | 0.806 |
176
+ | **hybrid + `rerank: true`** | **0.789** | **0.828** | **0.881** |
177
+ | LongMemEval paper, best (Contriever + LLM fact keys) | 0.762 | 0.632 | 0.862 |
178
+
179
+ The harness (`benchmarks/longmemeval/`) runs the same ranking functions over turn chunks; protocol, S-split numbers, other rerankers and limits are in [ADR-016](docs/adrs/ADR-016-hybrid-retrieval-longmemeval.md).
180
+
168
181
  ---
169
182
 
170
183
  ## 🔌 MCP Integration
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Exact-search sources over the controllers' SQL embedding tables (ADR-015).
3
+ *
4
+ * searchVectors() uses one of these to answer by exact cosine when the
5
+ * approximate index is small or came back short.
6
+ */
7
+ import type { IDatabaseConnection } from '../types/database.types.js';
8
+ import type { ExactSearchSource, SearchResult } from './VectorBackend.js';
9
+ export interface SqlEmbeddingTable {
10
+ /** Table holding one BLOB embedding per row (a trusted constant, not input) */
11
+ table: string;
12
+ /** Integer row-id column in that table */
13
+ idColumn: string;
14
+ /** Vector id the controller uses in the index for a row id */
15
+ vectorId(rowId: number): string;
16
+ /** Metadata attached to scan results (e.g. { patternId }) */
17
+ metadata?(rowId: number): Record<string, unknown>;
18
+ owns?(result: SearchResult): boolean;
19
+ key?(result: SearchResult): string;
20
+ }
21
+ export declare function sqlExactSource(db: IDatabaseConnection, spec: SqlEmbeddingTable): ExactSearchSource;
22
+ //# sourceMappingURL=ExactSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExactSearch.d.ts","sourceRoot":"","sources":["../../../src/backends/ExactSearch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG1E,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IACrC,GAAG,CAAC,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC;CACpC;AAID,wBAAgB,cAAc,CAAC,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAgClG"}
@@ -0,0 +1,36 @@
1
+ import { TopK, squaredNorm, cosineWithQueryNorm, blobToFloat32 } from '../utils/top-k.js';
2
+ const IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
3
+ export function sqlExactSource(db, spec) {
4
+ if (!IDENTIFIER.test(spec.table) || !IDENTIFIER.test(spec.idColumn)) {
5
+ throw new Error(`Invalid embedding table spec ${spec.table}.${spec.idColumn}`);
6
+ }
7
+ return {
8
+ owns: spec.owns,
9
+ key: spec.key,
10
+ count() {
11
+ const row = db.prepare(`SELECT COUNT(*) AS n FROM ${spec.table}`).get();
12
+ return Number(row?.n ?? 0);
13
+ },
14
+ scan(query, k, threshold) {
15
+ const rows = db
16
+ .prepare(`SELECT ${spec.idColumn} AS id, embedding FROM ${spec.table}`)
17
+ .all();
18
+ const queryNorm = Math.sqrt(squaredNorm(query));
19
+ const top = new TopK(k);
20
+ for (const row of rows) {
21
+ if (!row.embedding || row.embedding.byteLength !== query.length * 4)
22
+ continue;
23
+ const similarity = cosineWithQueryNorm(query, queryNorm, blobToFloat32(row.embedding));
24
+ if (similarity >= threshold)
25
+ top.push(similarity, Number(row.id));
26
+ }
27
+ return top.sorted().map(({ score, item }) => ({
28
+ id: spec.vectorId(item),
29
+ distance: 1 - score,
30
+ similarity: score,
31
+ metadata: spec.metadata?.(item),
32
+ }));
33
+ },
34
+ };
35
+ }
36
+ //# sourceMappingURL=ExactSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExactSearch.js","sourceRoot":"","sources":["../../../src/backends/ExactSearch.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAe1F,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAE9C,MAAM,UAAU,cAAc,CAAC,EAAuB,EAAE,IAAuB;IAC7E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAgB,6BAA6B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;YACvF,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,KAAmB,EAAE,CAAS,EAAE,SAAiB;YACpD,MAAM,IAAI,GAAG,EAAE;iBACZ,OAAO,CACN,UAAU,IAAI,CAAC,QAAQ,0BAA0B,IAAI,CAAC,KAAK,EAAE,CAC9D;iBACA,GAAG,EAAE,CAAC;YACT,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAS,CAAC,CAAC,CAAC;YAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,SAAS;gBAC9E,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvF,IAAI,UAAU,IAAI,SAAS;oBAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5C,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvB,QAAQ,EAAE,CAAC,GAAG,KAAK;gBACnB,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;aAChC,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -53,6 +53,27 @@ export interface SearchOptions {
53
53
  * an id that hasn't been resolved via `recordFeedback` yet throws.
54
54
  */
55
55
  feedbackId?: string;
56
+ /**
57
+ * searchVectors() only: collections with fewer rows than this are always
58
+ * answered by exact cosine over the stored embeddings (ADR-015). Default
59
+ * AGENTDB_EXACT_SEARCH_THRESHOLD or 1000; 0 disables the small-collection
60
+ * path (the short-result path still applies).
61
+ */
62
+ exactSearchThreshold?: number;
63
+ }
64
+ /**
65
+ * The caller's own copy of a collection, used by searchVectors() to answer
66
+ * exactly when the approximate index cannot be trusted (ADR-015).
67
+ */
68
+ export interface ExactSearchSource {
69
+ /** Rows in the collection (not the backend, which may be shared) */
70
+ count(): number;
71
+ /** Exact top-k by cosine over the stored embeddings, best first */
72
+ scan(query: Float32Array, k: number, threshold: number): SearchResult[];
73
+ /** Index hits that belong to this collection; default: all */
74
+ owns?(result: SearchResult): boolean;
75
+ /** Identity used to dedupe index hits against scan results; default: id */
76
+ key?(result: SearchResult): string;
56
77
  }
57
78
  export interface VectorStats {
58
79
  /** Number of vectors in index */
@@ -155,9 +176,20 @@ export interface VectorBackendAsync extends VectorBackend {
155
176
  }
156
177
  /** True when the backend exposes the async API (RuVector, RVF backends). */
157
178
  export declare function isAsyncVectorBackend(backend: VectorBackend): backend is VectorBackendAsync;
179
+ /** Collections smaller than this are searched exactly (ADR-015) */
180
+ export declare const DEFAULT_EXACT_SEARCH_THRESHOLD = 1000;
158
181
  /**
159
182
  * k-NN search that works with both sync and async-native backends.
160
183
  * Async-native backends cannot answer the sync search() — use this instead.
184
+ *
185
+ * With an `exact` source, the answer falls back to exact cosine over the
186
+ * caller's stored embeddings when the index cannot be trusted:
187
+ * - the collection has fewer than `exactSearchThreshold` rows (HNSW on tiny
188
+ * graphs misses neighbours, ruvnet/RuVector#1298), or
189
+ * - the index returned fewer of the collection's vectors than
190
+ * min(k, collection size).
191
+ * Exact hits come first, in exact order; index hits the scan did not see
192
+ * (stale rows) are appended after deduplication.
161
193
  */
162
- export declare function searchVectors(backend: VectorBackend, query: Float32Array, k: number, options?: SearchOptions): Promise<SearchResult[]>;
194
+ export declare function searchVectors(backend: VectorBackend, query: Float32Array, k: number, options?: SearchOptions, exact?: ExactSearchSource): Promise<SearchResult[]>;
163
195
  //# sourceMappingURL=VectorBackend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VectorBackend.d.ts","sourceRoot":"","sources":["../../../src/backends/VectorBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VectorBackend.d.ts","sourceRoot":"","sources":["../../../src/backends/VectorBackend.ts"],"names":[],"mappings":"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"}
@@ -14,13 +14,67 @@
14
14
  export function isAsyncVectorBackend(backend) {
15
15
  return typeof backend.searchAsync === 'function';
16
16
  }
17
+ /** Collections smaller than this are searched exactly (ADR-015) */
18
+ export const DEFAULT_EXACT_SEARCH_THRESHOLD = 1000;
19
+ function exactSearchThreshold(options) {
20
+ const configured = options?.exactSearchThreshold
21
+ ?? (typeof process !== 'undefined' ? Number(process.env?.AGENTDB_EXACT_SEARCH_THRESHOLD) : NaN);
22
+ return Number.isFinite(configured) && configured >= 0 ? configured : DEFAULT_EXACT_SEARCH_THRESHOLD;
23
+ }
17
24
  /**
18
25
  * k-NN search that works with both sync and async-native backends.
19
26
  * Async-native backends cannot answer the sync search() — use this instead.
27
+ *
28
+ * With an `exact` source, the answer falls back to exact cosine over the
29
+ * caller's stored embeddings when the index cannot be trusted:
30
+ * - the collection has fewer than `exactSearchThreshold` rows (HNSW on tiny
31
+ * graphs misses neighbours, ruvnet/RuVector#1298), or
32
+ * - the index returned fewer of the collection's vectors than
33
+ * min(k, collection size).
34
+ * Exact hits come first, in exact order; index hits the scan did not see
35
+ * (stale rows) are appended after deduplication.
20
36
  */
21
- export async function searchVectors(backend, query, k, options) {
22
- return isAsyncVectorBackend(backend)
23
- ? backend.searchAsync(query, k, options)
24
- : backend.search(query, k, options);
37
+ export async function searchVectors(backend, query, k, options, exact) {
38
+ let hits;
39
+ try {
40
+ hits = isAsyncVectorBackend(backend)
41
+ ? await backend.searchAsync(query, k, options)
42
+ : backend.search(query, k, options);
43
+ }
44
+ catch (error) {
45
+ if (!exact)
46
+ throw error;
47
+ hits = [];
48
+ }
49
+ if (!exact)
50
+ return hits;
51
+ let owned;
52
+ let rows;
53
+ let exactHits;
54
+ try {
55
+ owned = exact.owns ? hits.filter((hit) => exact.owns(hit)) : hits;
56
+ rows = exact.count();
57
+ if (rows >= exactSearchThreshold(options) && owned.length >= Math.min(k, rows))
58
+ return hits;
59
+ // No threshold means no cut-off, as for the index (negative cosines included)
60
+ exactHits = exact.scan(query, k, options?.threshold ?? -Infinity);
61
+ }
62
+ catch {
63
+ // The caller's table is unavailable: the index answer is all there is
64
+ return hits;
65
+ }
66
+ const keyOf = exact.key ?? ((hit) => hit.id);
67
+ const seen = new Set(exactHits.map(keyOf));
68
+ const merged = [...exactHits];
69
+ for (const hit of owned) {
70
+ if (merged.length >= k)
71
+ break;
72
+ const key = keyOf(hit);
73
+ if (!seen.has(key)) {
74
+ seen.add(key);
75
+ merged.push(hit);
76
+ }
77
+ }
78
+ return merged.slice(0, Math.max(0, k));
25
79
  }
26
80
  //# sourceMappingURL=VectorBackend.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VectorBackend.js","sourceRoot":"","sources":["../../../src/backends/VectorBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAmLH,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,OAAO,OAAQ,OAAuC,CAAC,WAAW,KAAK,UAAU,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAsB,EACtB,KAAmB,EACnB,CAAS,EACT,OAAuB;IAEvB,OAAO,oBAAoB,CAAC,OAAO,CAAC;QAClC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC;QACxC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"VectorBackend.js","sourceRoot":"","sources":["../../../src/backends/VectorBackend.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SqlJsRvfBackend.d.ts","sourceRoot":"","sources":["../../../../src/backends/rvf/SqlJsRvfBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlJsRvfBackend.d.ts","sourceRoot":"","sources":["../../../../src/backends/rvf/SqlJsRvfBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACZ,MAAM,qBAAqB,CAAC;AA2E7B;;GAEG;AACH,qBAAa,eAAgB,YAAW,kBAAkB;IACxD,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAI/B,OAAO,CAAC,EAAE,CAAa;IAIvB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAkC;IAGnD,OAAO,CAAC,KAAK,CAAsC;IAGnD,OAAO,CAAC,OAAO,CAAuF;IACtG,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,EAAE,YAAY;IAgBhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBjC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAuBrF,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,GAAG,IAAI;IAU5G,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,EAAE;IAO/E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ3B,QAAQ,IAAI,WAAW;IAUjB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAerC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3C,KAAK,IAAI,IAAI;IA4Bb;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAOhC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAMnC;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,IAAI,MAAM;IAMpB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC;QAClC,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,YAAY,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBZ,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQ7F,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzC,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;;OAGG;IAEH,WAAW,IAAI,GAAG;IAOlB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,OAAO;IAMxB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,iBAAiB;CAK1B"}
@@ -18,7 +18,8 @@
18
18
  * - load() → read file → new SQL.Database(buffer) → rebuild cache
19
19
  */
20
20
  import { validatePath, validateId, validateMetadata, validateDimension, MAX_BATCH_SIZE, MAX_PENDING_WRITES, MAX_SEARCH_K, DEFAULT_BATCH_THRESHOLD, } from './validation.js';
21
- import { cosineSimilaritySIMD, euclideanDistanceSIMD, dotProductSIMD, } from '../../simd/simd-vector-ops.js';
21
+ import { cosineSimilaritySIMD, cosineSimilarityWithNormsSIMD, squaredNormSIMD, euclideanDistanceSIMD, dotProductSIMD, } from '../../simd/simd-vector-ops.js';
22
+ import { TopK } from '../../utils/top-k.js';
22
23
  import { captureDatabaseFileState, loadSqlJsDatabaseFile, persistSqlJsDatabase, } from '../../db-fallback.js';
23
24
  const __memfsFinalizer = typeof FinalizationRegistry !== 'undefined'
24
25
  ? new FinalizationRegistry((db) => {
@@ -363,7 +364,8 @@ export class SqlJsRvfBackend {
363
364
  }
364
365
  catch { /* skip bad metadata */ }
365
366
  }
366
- this.cache.set(id, { embedding: new Float32Array(embedding), metadata });
367
+ const copy = new Float32Array(embedding);
368
+ this.cache.set(id, { embedding: copy, metadata, normSq: squaredNormSIMD(copy) });
367
369
  }
368
370
  }
369
371
  writeVector(id, vec, metadata) {
@@ -383,7 +385,8 @@ export class SqlJsRvfBackend {
383
385
  this.upsertStmt = this.db.prepare(sql);
384
386
  this.upsertStmt.run([id, blob, metaStr]);
385
387
  }
386
- this.cache.set(id, { embedding: new Float32Array(vec), metadata });
388
+ const copy = new Float32Array(vec);
389
+ this.cache.set(id, { embedding: copy, metadata, normSq: squaredNormSIMD(copy) });
387
390
  }
388
391
  flushSync() {
389
392
  if (this.pending.length === 0)
@@ -411,20 +414,27 @@ export class SqlJsRvfBackend {
411
414
  throw new Error(`Query dimension ${queryVec.length} does not match expected ${this.dim}`);
412
415
  }
413
416
  const threshold = options?.threshold ?? 0;
414
- const results = [];
415
- for (const [id, entry] of this.cache) {
417
+ // Bounded top-k: cosine reuses each entry's cached norm and the query's
418
+ // norm, and result objects are built for the winners only. Scores and
419
+ // order match the old push/sort/slice (ties keep insertion order).
420
+ const queryNormSq = this.metricType === 'cosine' ? squaredNormSIMD(queryVec) : 0;
421
+ const top = new TopK(safeK);
422
+ for (const pair of this.cache) {
423
+ const entry = pair[1];
416
424
  // Apply metadata filter if provided
417
425
  if (options?.filter && !this.matchesFilter(entry.metadata, options.filter)) {
418
426
  continue;
419
427
  }
420
- const { similarity, distance } = this.computeScore(queryVec, entry.embedding);
421
- if (similarity >= threshold) {
422
- results.push({ id, distance, similarity, metadata: entry.metadata });
423
- }
428
+ const similarity = this.metricType === 'cosine'
429
+ ? cosineSimilarityWithNormsSIMD(queryVec, entry.embedding, queryNormSq, entry.normSq)
430
+ : this.computeScore(queryVec, entry.embedding).similarity;
431
+ if (similarity >= threshold)
432
+ top.push(similarity, pair);
424
433
  }
425
- // Sort by similarity descending
426
- results.sort((a, b) => b.similarity - a.similarity);
427
- return results.slice(0, safeK);
434
+ return top.sorted().map(({ item: [id, entry] }) => {
435
+ const { similarity, distance } = this.computeScore(queryVec, entry.embedding);
436
+ return { id, distance, similarity, metadata: entry.metadata };
437
+ });
428
438
  }
429
439
  computeScore(query, candidate) {
430
440
  switch (this.metricType) {
@@ -1 +1 @@
1
- {"version":3,"file":"SqlJsRvfBackend.js","sourceRoot":"","sources":["../../../../src/backends/rvf/SqlJsRvfBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlJsRvfBackend.js","sourceRoot":"","sources":["../../../../src/backends/rvf/SqlJsRvfBackend.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,16 @@ export declare class EmbeddingService {
49
49
  /** Role-authoritative embedding entry point. */
50
50
  embedFor(role: EmbeddingRole, text: string): Promise<Float32Array>;
51
51
  getEmbeddingSpaceIdentity(): Readonly<EmbeddingSpaceIdentity>;
52
+ /**
53
+ * What actually produces embeddings: the configured model, or the
54
+ * deterministic hash fallback when the model did not load (or is disabled).
55
+ */
56
+ getRuntimeInfo(): {
57
+ model: string;
58
+ dimension: number;
59
+ provider: string;
60
+ active: 'transformers' | 'openai' | 'mock';
61
+ };
52
62
  /**
53
63
  * Batch embed multiple texts
54
64
  */
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddingService.d.ts","sourceRoot":"","sources":["../../../src/controllers/EmbeddingService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EACjC,MAAM,wCAAwC,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,2BAA2B,CAAC;CAC9C;AAuBD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,GAC1B,IAAI,CAON;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAEhE,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,aAAa,CAAqC;gBAE9C,MAAM,EAAE,eAAe;IAsCnC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDjC;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAShD,yEAAyE;IACnE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrD,kEAAkE;IAC5D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIvD,gDAAgD;IAC1C,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA0CxE,yBAAyB,IAAI,QAAQ,CAAC,sBAAsB,CAAC;IAI7D;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIpD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIzD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIjE;;OAEG;IACH,UAAU,IAAI,IAAI;YASJ,iBAAiB;YAWjB,WAAW;IAiBzB,OAAO,CAAC,aAAa;CAmCtB"}
1
+ {"version":3,"file":"EmbeddingService.d.ts","sourceRoot":"","sources":["../../../src/controllers/EmbeddingService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EACjC,MAAM,wCAAwC,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,2BAA2B,CAAC;CAC9C;AAuBD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,GAC1B,IAAI,CAON;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAEhE,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,aAAa,CAAqC;gBAE9C,MAAM,EAAE,eAAe;IAsCnC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDjC;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAShD,yEAAyE;IACnE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrD,kEAAkE;IAC5D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIvD,gDAAgD;IAC1C,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA0CxE,yBAAyB,IAAI,QAAQ,CAAC,sBAAsB,CAAC;IAI7D;;;OAGG;IACH,cAAc,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAA;KAAE;IASpH;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIpD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIzD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIjE;;OAEG;IACH,UAAU,IAAI,IAAI;YASJ,iBAAiB;YAWjB,WAAW;IAiBzB,OAAO,CAAC,aAAa;CAmCtB"}
@@ -178,6 +178,18 @@ export class EmbeddingService {
178
178
  getEmbeddingSpaceIdentity() {
179
179
  return this.embeddingSpaceIdentity;
180
180
  }
181
+ /**
182
+ * What actually produces embeddings: the configured model, or the
183
+ * deterministic hash fallback when the model did not load (or is disabled).
184
+ */
185
+ getRuntimeInfo() {
186
+ const active = this.config.provider === 'transformers' && this.pipeline
187
+ ? 'transformers'
188
+ : this.config.provider === 'openai' && this.config.apiKey
189
+ ? 'openai'
190
+ : 'mock';
191
+ return { model: this.config.model, dimension: this.config.dimension, provider: this.config.provider, active };
192
+ }
181
193
  /**
182
194
  * Batch embed multiple texts
183
195
  */
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddingService.js","sourceRoot":"","sources":["../../../src/controllers/EmbeddingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmbeddingService.js","sourceRoot":"","sources":["../../../src/controllers/EmbeddingService.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,28 @@ export interface ReasoningPattern {
32
32
  metadata?: Record<string, any>;
33
33
  createdAt?: number;
34
34
  similarity?: number;
35
+ /** Rank score when reward-aware reranking is on (ADR-015) */
36
+ score?: number;
35
37
  }
38
+ /**
39
+ * Reward-aware rerank weights (ADR-015):
40
+ * score = similarity·w.similarity + successRate·w.successRate + avgReward·w.reward
41
+ * with successRate and avgReward clamped to [0, 1].
42
+ */
43
+ export interface RerankWeights {
44
+ similarity: number;
45
+ successRate: number;
46
+ reward: number;
47
+ }
48
+ export declare const DEFAULT_RERANK_WEIGHTS: Readonly<RerankWeights>;
49
+ export interface ReasoningBankOptions {
50
+ /** Rerank search results by outcome as well as similarity (default true) */
51
+ rerank?: boolean;
52
+ /** Override the default weights; similarity should stay the largest */
53
+ rerankWeights?: Partial<RerankWeights>;
54
+ }
55
+ /** Rank score for a pattern with a similarity (ADR-015) */
56
+ export declare function rerankScore(similarity: number, successRate: number | undefined, avgReward: number | undefined, weights?: RerankWeights): number;
36
57
  export interface PatternSearchQuery {
37
58
  /** v1 API: Task string (will be embedded automatically) */
38
59
  task?: string;
@@ -42,6 +63,10 @@ export interface PatternSearchQuery {
42
63
  threshold?: number;
43
64
  /** Enable GNN-based query enhancement (requires LearningBackend) */
44
65
  useGNN?: boolean;
66
+ /** Rerank by outcome as well as similarity; default from the constructor (true) */
67
+ rerank?: boolean;
68
+ /** Per-query rerank weights */
69
+ rerankWeights?: Partial<RerankWeights>;
45
70
  filters?: {
46
71
  taskType?: string;
47
72
  minSuccessRate?: number;
@@ -90,6 +115,8 @@ export declare class ReasoningBank {
90
115
  private learningBackend?;
91
116
  private idMapping;
92
117
  private nextVectorId;
118
+ private rerankByDefault;
119
+ private rerankWeights;
93
120
  /**
94
121
  * Constructor supports both legacy (v1) and new (v2) modes
95
122
  *
@@ -99,7 +126,7 @@ export declare class ReasoningBank {
99
126
  * New mode (v2 - with VectorBackend):
100
127
  * new ReasoningBank(db, embedder, vectorBackend, learningBackend?)
101
128
  */
102
- constructor(db: IDatabaseConnection, embedder: EmbeddingService, vectorBackend?: VectorBackend, learningBackend?: LearningBackend);
129
+ constructor(db: IDatabaseConnection, embedder: EmbeddingService, vectorBackend?: VectorBackend, learningBackend?: LearningBackend, options?: ReasoningBankOptions);
103
130
  /**
104
131
  * Initialize reasoning patterns schema
105
132
  */
@@ -127,6 +154,10 @@ export declare class ReasoningBank {
127
154
  * v2: Search using VectorBackend with optional GNN enhancement
128
155
  */
129
156
  private searchPatternsV2;
157
+ /** Rerank weights for this query, or null when reranking is off */
158
+ private weightsFor;
159
+ /** pattern_embeddings as an exact-search source; index ids are per-process, so dedupe on patternId */
160
+ private exactPatternSource;
130
161
  /**
131
162
  * v1: Legacy search using SQLite (backward compatible)
132
163
  */
@@ -146,18 +177,22 @@ export declare class ReasoningBank {
146
177
  /**
147
178
  * Update pattern statistics after use
148
179
  */
149
- updatePatternStats(patternId: number, success: boolean, reward: number): void;
180
+ updatePatternStats(patternId: number, success: boolean, reward: number): boolean;
150
181
  /**
151
182
  * Record pattern outcome for GNN learning (v2 feature)
152
183
  *
153
184
  * Updates pattern stats and adds training sample to LearningBackend
154
185
  * for future GNN model improvements.
155
186
  *
187
+ * The updated success rate and average reward feed the reward-aware
188
+ * rerank in searchPatterns() (ADR-015).
189
+ *
156
190
  * @param patternId - Pattern ID to update
157
191
  * @param success - Whether the pattern was successful
158
192
  * @param reward - Optional reward value (default: 1 for success, 0 for failure)
193
+ * @returns false when no pattern has that id
159
194
  */
160
- recordOutcome(patternId: number, success: boolean, reward?: number): Promise<void>;
195
+ recordOutcome(patternId: number, success: boolean, reward?: number): Promise<boolean>;
161
196
  /**
162
197
  * Train GNN model on collected samples (v2 feature)
163
198
  *
@@ -188,7 +223,8 @@ export declare class ReasoningBank {
188
223
  */
189
224
  clearCache(): void;
190
225
  /**
191
- * Calculate cosine similarity between two vectors
226
+ * Calculate cosine similarity between two vectors (`normA` is a's
227
+ * precomputed Math.sqrt(squaredNorm(a)))
192
228
  */
193
229
  private cosineSimilarity;
194
230
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReasoningBank.d.ts","sourceRoot":"","sources":["../../../src/controllers/ReasoningBank.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAgB,MAAM,4BAA4B,CAAC;AAEpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,8BAA8B,CAAC;AAahF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IAEzF;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAE3D;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAChE,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ;AAKD,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAsB;IAChC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,KAAK,CAAmB;IAGhC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAG1C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,YAAY,CAAK;IAEzB;;;;;;;;OAQG;gBAED,EAAE,EAAE,mBAAmB,EACvB,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,CAAC,EAAE,aAAa,EAC7B,eAAe,CAAC,EAAE,eAAe;IAUnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;;;;OAKG;IACG,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IA+C9D;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;;;;OAMG;IACG,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA6B5E;;OAEG;YACW,gBAAgB;IA6B9B;;OAEG;YACW,oBAAoB;IAqFlC;;OAEG;IACH,OAAO,CAAC,eAAe;IAiCvB;;OAEG;YACW,yBAAyB;IA6BvC;;OAEG;IACH,eAAe,IAAI,YAAY;IAiE/B;;OAEG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb,IAAI;IAgBP;;;;;;;;;OASG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAiBhB;;;;;;;;;OASG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACzE,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAQF;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAyCtD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAUzC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAkBzB"}
1
+ {"version":3,"file":"ReasoningBank.d.ts","sourceRoot":"","sources":["../../../src/controllers/ReasoningBank.ts"],"names":[],"mappings":"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"}