maskweaver 0.7.13 → 0.7.16

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 (50) hide show
  1. package/LICENSE +21 -21
  2. package/assets/agents/dummy-human.md +31 -31
  3. package/assets/agents/dummy-template.md +57 -57
  4. package/assets/agents/mask-weaver.md +412 -412
  5. package/assets/agents/squad-operator.md +0 -1
  6. package/assets/masks/ai-ml/andrew-ng.yaml +207 -207
  7. package/assets/masks/architecture/jeff-dean.yaml +208 -208
  8. package/assets/masks/index.json +65 -65
  9. package/assets/masks/software-engineering/dan-abramov.yaml +188 -188
  10. package/assets/masks/software-engineering/kent-beck.yaml +191 -191
  11. package/assets/masks/software-engineering/linus-torvalds.yaml +152 -152
  12. package/assets/masks/software-engineering/martin-fowler.yaml +173 -173
  13. package/dist/memory/core.d.ts +6 -0
  14. package/dist/memory/core.d.ts.map +1 -1
  15. package/dist/memory/core.js +26 -6
  16. package/dist/memory/core.js.map +1 -1
  17. package/dist/memory/providers/text-only.d.ts +6 -0
  18. package/dist/memory/providers/text-only.d.ts.map +1 -1
  19. package/dist/memory/providers/text-only.js +12 -5
  20. package/dist/memory/providers/text-only.js.map +1 -1
  21. package/dist/memory/search/hybrid.d.ts +4 -0
  22. package/dist/memory/search/hybrid.d.ts.map +1 -1
  23. package/dist/memory/search/hybrid.js +23 -6
  24. package/dist/memory/search/hybrid.js.map +1 -1
  25. package/dist/memory/store/sqlite.d.ts +9 -0
  26. package/dist/memory/store/sqlite.d.ts.map +1 -1
  27. package/dist/memory/store/sqlite.js +85 -39
  28. package/dist/memory/store/sqlite.js.map +1 -1
  29. package/dist/plugin/tools/context.js +15 -15
  30. package/dist/plugin/tools/maskSave.js +8 -8
  31. package/dist/plugin/tools/memoryIndexer.js +5 -5
  32. package/dist/plugin/tools/memoryWrite.js +3 -3
  33. package/dist/plugin/tools/retrospect.js +3 -3
  34. package/dist/plugin/tools/squad.js +2 -2
  35. package/dist/retrospect/mask-save.js +21 -21
  36. package/dist/retrospect/retrospect.js +9 -9
  37. package/dist/verify/prompts.js +114 -114
  38. package/dist/weave/knowledge/global.d.ts +1 -0
  39. package/dist/weave/knowledge/global.d.ts.map +1 -1
  40. package/dist/weave/knowledge/global.js +63 -56
  41. package/dist/weave/knowledge/global.js.map +1 -1
  42. package/masks/ai-ml/andrew-ng.yaml +207 -207
  43. package/masks/architecture/jeff-dean.yaml +208 -208
  44. package/masks/index.json +65 -65
  45. package/masks/orchestration/squad-operator.yaml +205 -205
  46. package/masks/software-engineering/dan-abramov.yaml +188 -188
  47. package/masks/software-engineering/kent-beck.yaml +191 -191
  48. package/masks/software-engineering/linus-torvalds.yaml +152 -152
  49. package/masks/software-engineering/martin-fowler.yaml +173 -173
  50. package/package.json +1 -1
@@ -53,10 +53,16 @@ export declare function determineSource(filePath: string): SourceType;
53
53
  /**
54
54
  * Calculate cosine similarity between two vectors.
55
55
  * Single pass for efficiency.
56
+ *
57
+ * Returns 0 on dimension mismatch instead of throwing,
58
+ * to prevent a single bad embedding from crashing the entire search.
56
59
  */
57
60
  export declare function cosineSimilarity(a: number[], b: number[]): number;
58
61
  /**
59
62
  * Float32 version - more memory efficient.
63
+ *
64
+ * Returns 0 on dimension mismatch instead of throwing,
65
+ * to prevent a single bad embedding from crashing the entire search.
60
66
  */
61
67
  export declare function cosineSimilarityFloat32(a: Float32Array, b: Float32Array): number;
62
68
  export declare function toFloat32Array(embedding: number[]): Float32Array;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/memory/core.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAeT,CAAC;AAMX,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AACvF,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,KAAK;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;CACzC;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAoB5D;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBjE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAqBhF;AAMD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAEhE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAG3D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGxD;AAMD,wBAAgB,gBAAgB,IAAI,MAAM,CAOzC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAMjD;AAMD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,MAAsB,GAC/B,MAAM,CAiBR;AAED,wBAAgB,SAAS,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAElE;AAED,wBAAgB,UAAU,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAEnE;AAMD,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED,wBAAgB,SAAS,IAAI,OAAO,MAAM,CAEzC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/memory/core.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAeT,CAAC;AAMX,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AACvF,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,KAAK;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;CACzC;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAoB5D;AASD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CA6BjE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CA6BhF;AAMD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAEhE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAG3D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGxD;AAMD,wBAAgB,gBAAgB,IAAI,MAAM,CAOzC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAMjD;AAMD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,MAAsB,GAC/B,MAAM,CAiBR;AAED,wBAAgB,SAAS,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAElE;AAED,wBAAgB,UAAU,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAEnE;AAMD,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED,wBAAgB,SAAS,IAAI,OAAO,MAAM,CAEzC"}
@@ -70,16 +70,27 @@ export function determineSource(filePath) {
70
70
  // ============================================================================
71
71
  // Similarity
72
72
  // ============================================================================
73
+ // Deduplicated warning: only log dimension mismatch once per session
74
+ let _dimensionMismatchWarned = false;
73
75
  /**
74
76
  * Calculate cosine similarity between two vectors.
75
77
  * Single pass for efficiency.
78
+ *
79
+ * Returns 0 on dimension mismatch instead of throwing,
80
+ * to prevent a single bad embedding from crashing the entire search.
76
81
  */
77
82
  export function cosineSimilarity(a, b) {
83
+ if (a.length === 0 || b.length === 0)
84
+ return 0;
78
85
  if (a.length !== b.length) {
79
- throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
80
- }
81
- if (a.length === 0)
86
+ if (!_dimensionMismatchWarned) {
87
+ console.warn(`[Memory] Vector dimension mismatch: ${a.length} vs ${b.length}. ` +
88
+ `This usually means the embedding provider changed (e.g., fallback to text-only). ` +
89
+ `Mismatched vectors will be scored as 0. This warning is logged once per session.`);
90
+ _dimensionMismatchWarned = true;
91
+ }
82
92
  return 0;
93
+ }
83
94
  let dotProduct = 0;
84
95
  let magnitudeA = 0;
85
96
  let magnitudeB = 0;
@@ -95,13 +106,22 @@ export function cosineSimilarity(a, b) {
95
106
  }
96
107
  /**
97
108
  * Float32 version - more memory efficient.
109
+ *
110
+ * Returns 0 on dimension mismatch instead of throwing,
111
+ * to prevent a single bad embedding from crashing the entire search.
98
112
  */
99
113
  export function cosineSimilarityFloat32(a, b) {
114
+ if (a.length === 0 || b.length === 0)
115
+ return 0;
100
116
  if (a.length !== b.length) {
101
- throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
102
- }
103
- if (a.length === 0)
117
+ if (!_dimensionMismatchWarned) {
118
+ console.warn(`[Memory] Vector dimension mismatch: ${a.length} vs ${b.length}. ` +
119
+ `This usually means the embedding provider changed (e.g., fallback to text-only). ` +
120
+ `Mismatched vectors will be scored as 0. This warning is logged once per session.`);
121
+ _dimensionMismatchWarned = true;
122
+ }
104
123
  return 0;
124
+ }
105
125
  let dotProduct = 0;
106
126
  let magnitudeA = 0;
107
127
  let magnitudeB = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/memory/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/memory/core.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Graceful degradation when no embedding service is available.
5
5
  * Returns empty vectors, allowing the system to function in text-only mode.
6
+ * Vector search is skipped; only FTS keyword matching is used.
6
7
  *
7
8
  * Use case: Development, testing, or when embedding APIs are unavailable.
8
9
  */
@@ -11,6 +12,11 @@ export declare class TextOnlyProvider implements IEmbeddingProvider {
11
12
  readonly name = "Text-Only (No Embeddings)";
12
13
  readonly type: "text-only";
13
14
  readonly dimensions: number;
15
+ /**
16
+ * When true, signals that this provider cannot produce meaningful embeddings.
17
+ * Consumers should skip vector search and rely on text/keyword search only.
18
+ */
19
+ readonly isTextOnly = true;
14
20
  constructor(config: ProviderConfig);
15
21
  healthCheck(): Promise<HealthCheckResult>;
16
22
  embed(texts: string[]): Promise<Embedding[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"text-only.d.ts","sourceRoot":"","sources":["../../../src/memory/providers/text-only.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnG,qBAAa,gBAAiB,YAAW,kBAAkB;IACzD,QAAQ,CAAC,IAAI,+BAA+B;IAC5C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,cAAc;IAK5B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI5C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAGvD"}
1
+ {"version":3,"file":"text-only.d.ts","sourceRoot":"","sources":["../../../src/memory/providers/text-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnG,qBAAa,gBAAiB,YAAW,kBAAkB;IACzD,QAAQ,CAAC,IAAI,+BAA+B;IAC5C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,UAAU,QAAQ;gBAEf,MAAM,EAAE,cAAc;IAM5B,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI5C,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAGvD"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Graceful degradation when no embedding service is available.
5
5
  * Returns empty vectors, allowing the system to function in text-only mode.
6
+ * Vector search is skipped; only FTS keyword matching is used.
6
7
  *
7
8
  * Use case: Development, testing, or when embedding APIs are unavailable.
8
9
  */
@@ -10,9 +11,15 @@ export class TextOnlyProvider {
10
11
  name = "Text-Only (No Embeddings)";
11
12
  type = "text-only";
12
13
  dimensions;
14
+ /**
15
+ * When true, signals that this provider cannot produce meaningful embeddings.
16
+ * Consumers should skip vector search and rely on text/keyword search only.
17
+ */
18
+ isTextOnly = true;
13
19
  constructor(config) {
14
- // Minimal dimensions for compatibility
15
- this.dimensions = config.dimensions || 1;
20
+ // dimensions = 0 signals "no real embeddings" — consumers should skip vector ops.
21
+ // If an explicit dimension is provided (e.g., for testing), honor it.
22
+ this.dimensions = config.dimensions ?? 0;
16
23
  }
17
24
  async healthCheck() {
18
25
  // Always healthy - it's a fallback
@@ -22,11 +29,11 @@ export class TextOnlyProvider {
22
29
  };
23
30
  }
24
31
  async embed(texts) {
25
- // Return zero vectors
26
- return texts.map(() => new Array(this.dimensions).fill(0));
32
+ // Return empty vectors — dimension 0 signals "no real embedding"
33
+ return texts.map(() => []);
27
34
  }
28
35
  async embedQuery(text) {
29
- return new Array(this.dimensions).fill(0);
36
+ return [];
30
37
  }
31
38
  async embedCode(texts) {
32
39
  return this.embed(texts);
@@ -1 +1 @@
1
- {"version":3,"file":"text-only.js","sourceRoot":"","sources":["../../../src/memory/providers/text-only.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,2BAA2B,CAAC;IACnC,IAAI,GAAG,WAAoB,CAAC;IAC5B,UAAU,CAAS;IAE5B,YAAY,MAAsB;QAChC,uCAAuC;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW;QACf,mCAAmC;QACnC,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,qEAAqE;SAC5E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAe;QACzB,sBAAsB;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAe;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"text-only.js","sourceRoot":"","sources":["../../../src/memory/providers/text-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,2BAA2B,CAAC;IACnC,IAAI,GAAG,WAAoB,CAAC;IAC5B,UAAU,CAAS;IAE5B;;;OAGG;IACM,UAAU,GAAG,IAAI,CAAC;IAE3B,YAAY,MAAsB;QAChC,kFAAkF;QAClF,sEAAsE;QACtE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW;QACf,mCAAmC;QACnC,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,qEAAqE;SAC5E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAe;QACzB,iEAAiE;QACjE,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAe;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -2,11 +2,15 @@
2
2
  * Hybrid Search - Combine vector and text search
3
3
  *
4
4
  * Simple weighted combination of vector similarity and FTS scores.
5
+ * Gracefully degrades to text-only when no embedding is available.
5
6
  */
6
7
  import type { SearchResult } from '../core.js';
7
8
  import type { SearchOptions } from '../store/sqlite.js';
8
9
  /**
9
10
  * Hybrid search combining vector and text search.
11
+ *
12
+ * If queryEmbedding is empty/missing, automatically falls back
13
+ * to text-only search with adjusted scoring.
10
14
  */
11
15
  export declare function hybridSearch(query: string, queryEmbedding: number[], options?: SearchOptions): SearchResult[];
12
16
  //# sourceMappingURL=hybrid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../../src/memory/search/hybrid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAS,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQxD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,GAAE,aAAkB,GAC1B,YAAY,EAAE,CA8DhB"}
1
+ {"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../../src/memory/search/hybrid.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAS,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQxD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,GAAE,aAAkB,GAC1B,YAAY,EAAE,CA+EhB"}
@@ -2,6 +2,7 @@
2
2
  * Hybrid Search - Combine vector and text search
3
3
  *
4
4
  * Simple weighted combination of vector similarity and FTS scores.
5
+ * Gracefully degrades to text-only when no embedding is available.
5
6
  */
6
7
  import { getDatabase } from '../store/sqlite.js';
7
8
  const DEFAULT_VECTOR_WEIGHT = 0.7;
@@ -10,6 +11,9 @@ const DEFAULT_MIN_SCORE = 0.35;
10
11
  const DEFAULT_MAX_RESULTS = 6;
11
12
  /**
12
13
  * Hybrid search combining vector and text search.
14
+ *
15
+ * If queryEmbedding is empty/missing, automatically falls back
16
+ * to text-only search with adjusted scoring.
13
17
  */
14
18
  export function hybridSearch(query, queryEmbedding, options = {}) {
15
19
  const { limit = DEFAULT_MAX_RESULTS, minScore = DEFAULT_MIN_SCORE, vectorWeight = DEFAULT_VECTOR_WEIGHT, textWeight = DEFAULT_TEXT_WEIGHT, sourceFilter, } = options;
@@ -20,9 +24,18 @@ export function hybridSearch(query, queryEmbedding, options = {}) {
20
24
  }
21
25
  // Get more candidates for reranking
22
26
  const candidateLimit = limit * 3;
23
- // Run both searches
24
- const vectorResults = db.searchByVector(queryEmbedding, candidateLimit, sourceFilter);
27
+ // Determine if we can do vector search
28
+ const hasEmbedding = queryEmbedding && queryEmbedding.length > 0;
29
+ // Run vector search only if we have a real embedding
30
+ const vectorResults = hasEmbedding
31
+ ? db.searchByVector(queryEmbedding, candidateLimit, sourceFilter)
32
+ : [];
33
+ // Always try text search
25
34
  const textResults = db.searchByText(query, candidateLimit);
35
+ // If both are empty, nothing to merge
36
+ if (vectorResults.length === 0 && textResults.length === 0) {
37
+ return [];
38
+ }
26
39
  // Merge results
27
40
  const scoreMap = new Map();
28
41
  for (const result of vectorResults) {
@@ -45,17 +58,21 @@ export function hybridSearch(query, queryEmbedding, options = {}) {
45
58
  });
46
59
  }
47
60
  }
48
- // Calculate combined scores and sort
61
+ // Calculate combined scores
62
+ // When in text-only mode, use text score directly (don't penalize via vectorWeight)
63
+ const effectiveMinScore = hasEmbedding ? minScore : minScore * textWeight;
49
64
  const results = Array.from(scoreMap.values())
50
65
  .map(({ chunk, vectorScore, textScore }) => {
51
- const combinedScore = vectorScore * vectorWeight + textScore * textWeight;
66
+ const combinedScore = hasEmbedding
67
+ ? vectorScore * vectorWeight + textScore * textWeight
68
+ : textScore; // Pure text mode — use raw text score
52
69
  return {
53
70
  chunk,
54
71
  score: combinedScore,
55
- matchType: 'hybrid',
72
+ matchType: (hasEmbedding ? 'hybrid' : 'text'),
56
73
  };
57
74
  })
58
- .filter(r => r.score >= minScore)
75
+ .filter(r => r.score >= effectiveMinScore)
59
76
  .sort((a, b) => b.score - a.score)
60
77
  .slice(0, limit);
61
78
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../../src/memory/search/hybrid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,cAAwB,EACxB,UAAyB,EAAE;IAE3B,MAAM,EACJ,KAAK,GAAG,mBAAmB,EAC3B,QAAQ,GAAG,iBAAiB,EAC5B,YAAY,GAAG,qBAAqB,EACpC,UAAU,GAAG,mBAAmB,EAChC,YAAY,GACb,GAAG,OAAO,CAAC;IAEZ,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,qEAAqE;IACrE,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oCAAoC;IACpC,MAAM,cAAc,GAAG,KAAK,GAAG,CAAC,CAAC;IAEjC,oBAAoB;IACpB,MAAM,aAAa,GAAG,EAAE,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAE3D,gBAAgB;IAChB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoE,CAAC;IAE7F,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAG,EAAE;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,KAAK;YACzB,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAG,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAG,EAAE;gBAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,MAAM,CAAC,KAAK;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,MAAM,OAAO,GAAmB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC1D,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE;QACzC,MAAM,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;QAC1E,OAAO;YACL,KAAK;YACL,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE,QAAiB;SAC7B,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC;SAChC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEnB,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../../src/memory/search/hybrid.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export interface SearchOptions {
27
27
  export declare class MemoryDatabase {
28
28
  private db;
29
29
  private statements;
30
+ private ftsAvailable;
30
31
  private constructor();
31
32
  /**
32
33
  * Create a new MemoryDatabase instance.
@@ -44,6 +45,10 @@ export declare class MemoryDatabase {
44
45
  private prepareStatements;
45
46
  /**
46
47
  * Insert or update chunk.
48
+ *
49
+ * If embedding is empty (e.g., text-only mode), the chunk is stored
50
+ * but the embedding row is skipped. This allows text search to work
51
+ * while vector search gracefully returns no results for these chunks.
47
52
  */
48
53
  upsertChunk(chunk: Chunk, embedding: number[]): number;
49
54
  /**
@@ -67,10 +72,14 @@ export declare class MemoryDatabase {
67
72
  getChunksByPath(path: string): Chunk[];
68
73
  /**
69
74
  * Vector similarity search.
75
+ *
76
+ * Returns empty results if queryEmbedding is empty (e.g., text-only mode).
77
+ * Skips stored embeddings with dimension mismatches instead of crashing.
70
78
  */
71
79
  searchByVector(queryEmbedding: number[], limit?: number, sourceFilter?: Chunk['source'][]): SearchResult[];
72
80
  /**
73
81
  * Full-text search using FTS5.
82
+ * Returns empty results if FTS is not available.
74
83
  */
75
84
  searchByText(query: string, limit?: number): SearchResult[];
76
85
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/memory/store/sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,EAKlB,MAAM,YAAY,CAAC;AAapB;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAiDD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;CAClC;AA4BD,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO;IAIP;;;;OAIG;WACU,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAwCnE;;OAEG;IACH,OAAO,CAAC,UAAU;IAyElB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsEzB;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;IAuBtD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,GAAG,MAAM,EAAE;IAc5E;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMxC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAMnD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE;IAoBtC;;OAEG;IACH,cAAc,CACZ,cAAc,EAAE,MAAM,EAAE,EACxB,KAAK,GAAE,MAAU,EACjB,YAAY,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,GAC/B,YAAY,EAAE;IAuCjB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,YAAY,EAAE;IAqC9D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,EACxB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,IAAI;IAKP,YAAY,IAAI,KAAK,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAcF,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB;IAsBD,eAAe,IAAI,IAAI;IAIvB,QAAQ,IAAI,IAAI;IAKhB,KAAK,IAAI,IAAI;CAId;AAQD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMjF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,cAAc,GAAG,IAAI,CAMnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,cAAc,GAAG,IAAI,CAEtD;AAQD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAIrE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAIlF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAI1E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,CAIrD"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/memory/store/sqlite.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,7 @@ async function loadDatabase() {
78
78
  export class MemoryDatabase {
79
79
  db; // Database.Database type
80
80
  statements = new Map();
81
+ ftsAvailable = false;
81
82
  constructor(db) {
82
83
  this.db = db;
83
84
  }
@@ -158,6 +159,7 @@ export class MemoryDatabase {
158
159
  CREATE INDEX IF NOT EXISTS idx_mask_usage_name ON mask_usage(mask_name);
159
160
  `);
160
161
  // FTS5 virtual table
162
+ this.ftsAvailable = false;
161
163
  try {
162
164
  this.db.exec(`
163
165
  CREATE VIRTUAL TABLE IF NOT EXISTS chunks_fts USING fts5(
@@ -167,29 +169,38 @@ export class MemoryDatabase {
167
169
  tokenize='unicode61'
168
170
  );
169
171
  `);
172
+ this.ftsAvailable = true;
170
173
  }
171
174
  catch (error) {
172
- // FTS5 already exists or not supported
173
- console.warn('[Memory DB] FTS table setup skipped:', error);
175
+ // FTS5 not supported by this SQLite build
176
+ console.warn('[Memory DB] FTS5 not available. Text search will be disabled:', error);
174
177
  }
175
- // FTS triggers
176
- this.db.exec(`
177
- -- INSERT trigger
178
- CREATE TRIGGER IF NOT EXISTS chunks_ai AFTER INSERT ON chunks BEGIN
179
- INSERT INTO chunks_fts(rowid, text) VALUES (new.id, new.text);
180
- END;
178
+ // FTS triggers — only if FTS table was created successfully
179
+ if (this.ftsAvailable) {
180
+ try {
181
+ this.db.exec(`
182
+ -- INSERT trigger
183
+ CREATE TRIGGER IF NOT EXISTS chunks_ai AFTER INSERT ON chunks BEGIN
184
+ INSERT INTO chunks_fts(rowid, text) VALUES (new.id, new.text);
185
+ END;
181
186
 
182
- -- DELETE trigger
183
- CREATE TRIGGER IF NOT EXISTS chunks_ad AFTER DELETE ON chunks BEGIN
184
- INSERT INTO chunks_fts(chunks_fts, rowid, text) VALUES('delete', old.id, old.text);
185
- END;
187
+ -- DELETE trigger
188
+ CREATE TRIGGER IF NOT EXISTS chunks_ad AFTER DELETE ON chunks BEGIN
189
+ INSERT INTO chunks_fts(chunks_fts, rowid, text) VALUES('delete', old.id, old.text);
190
+ END;
186
191
 
187
- -- UPDATE trigger
188
- CREATE TRIGGER IF NOT EXISTS chunks_au AFTER UPDATE ON chunks BEGIN
189
- INSERT INTO chunks_fts(chunks_fts, rowid, text) VALUES('delete', old.id, old.text);
190
- INSERT INTO chunks_fts(rowid, text) VALUES (new.id, new.text);
191
- END;
192
- `);
192
+ -- UPDATE trigger
193
+ CREATE TRIGGER IF NOT EXISTS chunks_au AFTER UPDATE ON chunks BEGIN
194
+ INSERT INTO chunks_fts(chunks_fts, rowid, text) VALUES('delete', old.id, old.text);
195
+ INSERT INTO chunks_fts(rowid, text) VALUES (new.id, new.text);
196
+ END;
197
+ `);
198
+ }
199
+ catch (error) {
200
+ console.warn('[Memory DB] FTS triggers setup failed:', error);
201
+ this.ftsAvailable = false;
202
+ }
203
+ }
193
204
  }
194
205
  /**
195
206
  * Prepare SQL statements for reuse.
@@ -225,13 +236,16 @@ export class MemoryDatabase {
225
236
  FROM chunks c
226
237
  JOIN embeddings e ON c.id = e.chunk_id
227
238
  `));
228
- this.statements.set('searchFts', this.db.prepare(`
229
- SELECT rowid, text, rank
230
- FROM chunks_fts
231
- WHERE chunks_fts MATCH ?
232
- ORDER BY rank
233
- LIMIT ?
234
- `));
239
+ // FTS statement — only prepare if FTS table exists
240
+ if (this.ftsAvailable) {
241
+ this.statements.set('searchFts', this.db.prepare(`
242
+ SELECT rowid, text, rank
243
+ FROM chunks_fts
244
+ WHERE chunks_fts MATCH ?
245
+ ORDER BY rank
246
+ LIMIT ?
247
+ `));
248
+ }
235
249
  this.statements.set('getChunksByPath', this.db.prepare(`
236
250
  SELECT * FROM chunks WHERE path = ?
237
251
  `));
@@ -255,6 +269,10 @@ export class MemoryDatabase {
255
269
  // ==========================================================================
256
270
  /**
257
271
  * Insert or update chunk.
272
+ *
273
+ * If embedding is empty (e.g., text-only mode), the chunk is stored
274
+ * but the embedding row is skipped. This allows text search to work
275
+ * while vector search gracefully returns no results for these chunks.
258
276
  */
259
277
  upsertChunk(chunk, embedding) {
260
278
  const stmt = this.statements.get('upsertChunk');
@@ -262,10 +280,12 @@ export class MemoryDatabase {
262
280
  if (!result?.id) {
263
281
  throw new Error('[Memory DB] Failed to upsert chunk');
264
282
  }
265
- // Save embedding
266
- const embStmt = this.statements.get('upsertEmbedding');
267
- const embeddingBlob = embeddingToBlob(embedding);
268
- embStmt.run(result.id, embeddingBlob);
283
+ // Only save embedding if it has actual content
284
+ if (embedding && embedding.length > 0) {
285
+ const embStmt = this.statements.get('upsertEmbedding');
286
+ const embeddingBlob = embeddingToBlob(embedding);
287
+ embStmt.run(result.id, embeddingBlob);
288
+ }
269
289
  return result.id;
270
290
  }
271
291
  /**
@@ -320,8 +340,15 @@ export class MemoryDatabase {
320
340
  // ==========================================================================
321
341
  /**
322
342
  * Vector similarity search.
343
+ *
344
+ * Returns empty results if queryEmbedding is empty (e.g., text-only mode).
345
+ * Skips stored embeddings with dimension mismatches instead of crashing.
323
346
  */
324
347
  searchByVector(queryEmbedding, limit = 6, sourceFilter) {
348
+ // Empty embedding = text-only mode. Skip vector search entirely.
349
+ if (!queryEmbedding || queryEmbedding.length === 0) {
350
+ return [];
351
+ }
325
352
  const queryVec = toFloat32Array(queryEmbedding);
326
353
  // Get all embeddings
327
354
  const stmt = this.statements.get('getAllEmbeddings');
@@ -331,11 +358,16 @@ export class MemoryDatabase {
331
358
  rows = rows.filter(row => sourceFilter.includes(row.source));
332
359
  }
333
360
  // Calculate similarities and sort
334
- const results = rows
335
- .map(row => {
361
+ // cosineSimilarityFloat32 returns 0 on dimension mismatch (no throw)
362
+ const scored = [];
363
+ for (const row of rows) {
336
364
  const embeddingVec = blobToEmbedding(row.embedding);
365
+ // Skip rows with empty or invalid embeddings
366
+ if (embeddingVec.length === 0) {
367
+ continue;
368
+ }
337
369
  const score = cosineSimilarityFloat32(queryVec, embeddingVec);
338
- return {
370
+ scored.push({
339
371
  chunk: {
340
372
  id: row.id,
341
373
  path: row.path,
@@ -348,28 +380,37 @@ export class MemoryDatabase {
348
380
  },
349
381
  score,
350
382
  matchType: 'vector',
351
- };
352
- })
383
+ });
384
+ }
385
+ return scored
353
386
  .sort((a, b) => b.score - a.score)
354
387
  .slice(0, limit);
355
- return results;
356
388
  }
357
389
  /**
358
390
  * Full-text search using FTS5.
391
+ * Returns empty results if FTS is not available.
359
392
  */
360
393
  searchByText(query, limit = 6) {
394
+ if (!this.ftsAvailable) {
395
+ return [];
396
+ }
361
397
  const normalizedQuery = this.normalizeFtsQuery(query);
362
398
  if (!normalizedQuery)
363
399
  return [];
364
400
  try {
365
401
  const stmt = this.statements.get('searchFts');
402
+ if (!stmt)
403
+ return [];
366
404
  const ftsResults = stmt.all(normalizedQuery, limit);
367
405
  const chunkStmt = this.statements.get('getChunkById');
368
- return ftsResults.map(fts => {
406
+ const results = [];
407
+ for (const fts of ftsResults) {
369
408
  const chunk = chunkStmt.get(fts.rowid);
409
+ if (!chunk)
410
+ continue;
370
411
  // Normalize BM25 score to 0-1 range
371
412
  const normalizedScore = Math.min(1, Math.max(0, -fts.rank / 10));
372
- return {
413
+ results.push({
373
414
  chunk: {
374
415
  id: chunk.id,
375
416
  path: chunk.path,
@@ -382,8 +423,9 @@ export class MemoryDatabase {
382
423
  },
383
424
  score: normalizedScore,
384
425
  matchType: 'text',
385
- };
386
- });
426
+ });
427
+ }
428
+ return results;
387
429
  }
388
430
  catch (error) {
389
431
  console.warn('[Memory DB] FTS search error:', error);
@@ -434,6 +476,10 @@ export class MemoryDatabase {
434
476
  return { chunkCount, embeddingCount, maskUsageCount, dbSize };
435
477
  }
436
478
  rebuildFtsIndex() {
479
+ if (!this.ftsAvailable) {
480
+ console.warn('[Memory DB] FTS not available, cannot rebuild index.');
481
+ return;
482
+ }
437
483
  this.db.exec("INSERT INTO chunks_fts(chunks_fts) VALUES('rebuild')");
438
484
  }
439
485
  optimize() {
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../src/memory/store/sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../src/memory/store/sqlite.ts"],"names":[],"mappings":"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"}