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.
- package/LICENSE +21 -21
- package/assets/agents/dummy-human.md +31 -31
- package/assets/agents/dummy-template.md +57 -57
- package/assets/agents/mask-weaver.md +412 -412
- package/assets/agents/squad-operator.md +0 -1
- package/assets/masks/ai-ml/andrew-ng.yaml +207 -207
- package/assets/masks/architecture/jeff-dean.yaml +208 -208
- package/assets/masks/index.json +65 -65
- package/assets/masks/software-engineering/dan-abramov.yaml +188 -188
- package/assets/masks/software-engineering/kent-beck.yaml +191 -191
- package/assets/masks/software-engineering/linus-torvalds.yaml +152 -152
- package/assets/masks/software-engineering/martin-fowler.yaml +173 -173
- package/dist/memory/core.d.ts +6 -0
- package/dist/memory/core.d.ts.map +1 -1
- package/dist/memory/core.js +26 -6
- package/dist/memory/core.js.map +1 -1
- package/dist/memory/providers/text-only.d.ts +6 -0
- package/dist/memory/providers/text-only.d.ts.map +1 -1
- package/dist/memory/providers/text-only.js +12 -5
- package/dist/memory/providers/text-only.js.map +1 -1
- package/dist/memory/search/hybrid.d.ts +4 -0
- package/dist/memory/search/hybrid.d.ts.map +1 -1
- package/dist/memory/search/hybrid.js +23 -6
- package/dist/memory/search/hybrid.js.map +1 -1
- package/dist/memory/store/sqlite.d.ts +9 -0
- package/dist/memory/store/sqlite.d.ts.map +1 -1
- package/dist/memory/store/sqlite.js +85 -39
- package/dist/memory/store/sqlite.js.map +1 -1
- package/dist/plugin/tools/context.js +15 -15
- package/dist/plugin/tools/maskSave.js +8 -8
- package/dist/plugin/tools/memoryIndexer.js +5 -5
- package/dist/plugin/tools/memoryWrite.js +3 -3
- package/dist/plugin/tools/retrospect.js +3 -3
- package/dist/plugin/tools/squad.js +2 -2
- package/dist/retrospect/mask-save.js +21 -21
- package/dist/retrospect/retrospect.js +9 -9
- package/dist/verify/prompts.js +114 -114
- package/dist/weave/knowledge/global.d.ts +1 -0
- package/dist/weave/knowledge/global.d.ts.map +1 -1
- package/dist/weave/knowledge/global.js +63 -56
- package/dist/weave/knowledge/global.js.map +1 -1
- package/masks/ai-ml/andrew-ng.yaml +207 -207
- package/masks/architecture/jeff-dean.yaml +208 -208
- package/masks/index.json +65 -65
- package/masks/orchestration/squad-operator.yaml +205 -205
- package/masks/software-engineering/dan-abramov.yaml +188 -188
- package/masks/software-engineering/kent-beck.yaml +191 -191
- package/masks/software-engineering/linus-torvalds.yaml +152 -152
- package/masks/software-engineering/martin-fowler.yaml +173 -173
- package/package.json +1 -1
package/dist/memory/core.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/memory/core.js
CHANGED
|
@@ -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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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;
|
package/dist/memory/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/memory/core.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ,EAAE;QACR,SAAS,EAAE,GAAG;QACd,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,CAAC;KACjB;IACD,KAAK,EAAE;QACL,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,gBAAgB;QACzB,MAAM,EAAE,eAAe;KACxB;IACD,MAAM,EAAE;QACN,iBAAiB,EAAE,CAAC;QACpB,eAAe,EAAE,IAAI;KACtB;CACO,CAAC;AA0BX,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,2BAA2B;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEzD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC5F,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACpE,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E
|
|
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
|
|
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
|
-
//
|
|
15
|
-
|
|
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
|
|
26
|
-
return texts.map(() =>
|
|
32
|
+
// Return empty vectors — dimension 0 signals "no real embedding"
|
|
33
|
+
return texts.map(() => []);
|
|
27
34
|
}
|
|
28
35
|
async embedQuery(text) {
|
|
29
|
-
return
|
|
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
|
|
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
|
|
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
|
-
//
|
|
24
|
-
const
|
|
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
|
|
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 =
|
|
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 >=
|
|
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
|
|
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;
|
|
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
|
|
173
|
-
console.warn('[Memory DB]
|
|
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.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
//
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
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
|
-
|
|
335
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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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"}
|