@defai.digital/semantic-context 13.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +38 -0
- package/dist/embedding-service.d.ts +66 -0
- package/dist/embedding-service.d.ts.map +1 -0
- package/dist/embedding-service.js +265 -0
- package/dist/embedding-service.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/semantic-manager.d.ts +30 -0
- package/dist/semantic-manager.d.ts.map +1 -0
- package/dist/semantic-manager.js +186 -0
- package/dist/semantic-manager.js.map +1 -0
- package/dist/similarity.d.ts +89 -0
- package/dist/similarity.d.ts.map +1 -0
- package/dist/similarity.js +216 -0
- package/dist/similarity.js.map +1 -0
- package/dist/types.d.ts +236 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +258 -0
- package/dist/types.js.map +1 -0
- package/package.json +48 -0
- package/src/embedding-service.ts +323 -0
- package/src/index.ts +56 -0
- package/src/semantic-manager.ts +246 -0
- package/src/similarity.ts +265 -0
- package/src/types.ts +561 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Similarity Computation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides various methods for computing vector similarity.
|
|
5
|
+
*
|
|
6
|
+
* Invariants:
|
|
7
|
+
* - INV-SEM-003: All scores normalized to [0, 1] range
|
|
8
|
+
*/
|
|
9
|
+
import type { SimilarityMethod, SimilarityOptions } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Default similarity options
|
|
12
|
+
*/
|
|
13
|
+
export declare const DEFAULT_SIMILARITY_OPTIONS: SimilarityOptions;
|
|
14
|
+
/**
|
|
15
|
+
* Compute cosine similarity between two vectors
|
|
16
|
+
* Returns value in [-1, 1] (or [0, 1] if normalized)
|
|
17
|
+
*
|
|
18
|
+
* INV-SEM-003: Normalized to [0, 1] when normalize=true
|
|
19
|
+
*/
|
|
20
|
+
export declare function cosineSimilarity(a: number[], b: number[], normalize?: boolean): number;
|
|
21
|
+
/**
|
|
22
|
+
* Compute dot product similarity between two vectors
|
|
23
|
+
* Returns raw dot product (or normalized if requested)
|
|
24
|
+
*
|
|
25
|
+
* INV-SEM-003: When normalize=true, normalizes vectors first and maps to [0, 1]
|
|
26
|
+
*/
|
|
27
|
+
export declare function dotProductSimilarity(a: number[], b: number[], normalize?: boolean): number;
|
|
28
|
+
/**
|
|
29
|
+
* Compute Euclidean distance between two vectors
|
|
30
|
+
* Returns distance (or similarity if normalize=true)
|
|
31
|
+
*
|
|
32
|
+
* INV-SEM-003: Converted to similarity via 1/(1+distance) when normalize=true
|
|
33
|
+
*/
|
|
34
|
+
export declare function euclideanDistance(a: number[], b: number[], normalize?: boolean): number;
|
|
35
|
+
/**
|
|
36
|
+
* Compute Manhattan distance between two vectors
|
|
37
|
+
*/
|
|
38
|
+
export declare function manhattanDistance(a: number[], b: number[], normalize?: boolean): number;
|
|
39
|
+
/**
|
|
40
|
+
* Compute similarity using specified method
|
|
41
|
+
*/
|
|
42
|
+
export declare function computeSimilarity(a: number[], b: number[], options?: Partial<SimilarityOptions>): number;
|
|
43
|
+
/**
|
|
44
|
+
* Normalize a vector to unit length
|
|
45
|
+
*/
|
|
46
|
+
export declare function normalizeVector(v: number[]): number[];
|
|
47
|
+
/**
|
|
48
|
+
* Compute vector norm (magnitude)
|
|
49
|
+
*/
|
|
50
|
+
export declare function vectorNorm(v: number[]): number;
|
|
51
|
+
/**
|
|
52
|
+
* Add two vectors
|
|
53
|
+
*/
|
|
54
|
+
export declare function addVectors(a: number[], b: number[]): number[];
|
|
55
|
+
/**
|
|
56
|
+
* Subtract vectors: a - b
|
|
57
|
+
*/
|
|
58
|
+
export declare function subtractVectors(a: number[], b: number[]): number[];
|
|
59
|
+
/**
|
|
60
|
+
* Scale a vector by a scalar
|
|
61
|
+
*/
|
|
62
|
+
export declare function scaleVector(v: number[], scalar: number): number[];
|
|
63
|
+
/**
|
|
64
|
+
* Compute centroid (average) of multiple vectors
|
|
65
|
+
*/
|
|
66
|
+
export declare function computeCentroid(vectors: number[][]): number[];
|
|
67
|
+
/**
|
|
68
|
+
* Find k nearest neighbors from candidates
|
|
69
|
+
* INV-SEM-002: Results sorted by similarity descending
|
|
70
|
+
*/
|
|
71
|
+
export declare function findKNearest(query: number[], candidates: Array<{
|
|
72
|
+
id: string;
|
|
73
|
+
embedding: number[];
|
|
74
|
+
}>, k: number, method?: SimilarityMethod): Array<{
|
|
75
|
+
id: string;
|
|
76
|
+
similarity: number;
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Filter vectors by minimum similarity threshold
|
|
80
|
+
* INV-SEM-003: Threshold applied after normalization
|
|
81
|
+
*/
|
|
82
|
+
export declare function filterByThreshold(query: number[], candidates: Array<{
|
|
83
|
+
id: string;
|
|
84
|
+
embedding: number[];
|
|
85
|
+
}>, minSimilarity: number, method?: SimilarityMethod): Array<{
|
|
86
|
+
id: string;
|
|
87
|
+
similarity: number;
|
|
88
|
+
}>;
|
|
89
|
+
//# sourceMappingURL=similarity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"similarity.d.ts","sourceRoot":"","sources":["../src/similarity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAGxC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,UAAO,GAAG,MAAM,CAyBnF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,UAAO,GAAG,MAAM,CAoCvF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,UAAO,GAAG,MAAM,CAiBpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,UAAO,GAAG,MAAM,CAcpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EAAE,EACX,CAAC,EAAE,MAAM,EAAE,EACX,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM,GACvC,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAIrD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAK7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAKlE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAgB7D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,EACtD,CAAC,EAAE,MAAM,EACT,MAAM,GAAE,gBAA2B,GAClC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAU3C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,EACtD,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,gBAA2B,GAClC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ3C"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Similarity Computation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides various methods for computing vector similarity.
|
|
5
|
+
*
|
|
6
|
+
* Invariants:
|
|
7
|
+
* - INV-SEM-003: All scores normalized to [0, 1] range
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Default similarity options
|
|
11
|
+
*/
|
|
12
|
+
export const DEFAULT_SIMILARITY_OPTIONS = {
|
|
13
|
+
method: 'cosine',
|
|
14
|
+
normalize: true,
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Compute cosine similarity between two vectors
|
|
18
|
+
* Returns value in [-1, 1] (or [0, 1] if normalized)
|
|
19
|
+
*
|
|
20
|
+
* INV-SEM-003: Normalized to [0, 1] when normalize=true
|
|
21
|
+
*/
|
|
22
|
+
export function cosineSimilarity(a, b, normalize = true) {
|
|
23
|
+
if (a.length !== b.length) {
|
|
24
|
+
throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
|
|
25
|
+
}
|
|
26
|
+
if (a.length === 0)
|
|
27
|
+
return 0;
|
|
28
|
+
let dotProduct = 0;
|
|
29
|
+
let normA = 0;
|
|
30
|
+
let normB = 0;
|
|
31
|
+
for (let i = 0; i < a.length; i++) {
|
|
32
|
+
dotProduct += a[i] * b[i];
|
|
33
|
+
normA += a[i] * a[i];
|
|
34
|
+
normB += b[i] * b[i];
|
|
35
|
+
}
|
|
36
|
+
const denominator = Math.sqrt(normA) * Math.sqrt(normB);
|
|
37
|
+
if (denominator === 0)
|
|
38
|
+
return 0;
|
|
39
|
+
const similarity = dotProduct / denominator;
|
|
40
|
+
// Normalize from [-1, 1] to [0, 1]
|
|
41
|
+
return normalize ? (similarity + 1) / 2 : similarity;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Compute dot product similarity between two vectors
|
|
45
|
+
* Returns raw dot product (or normalized if requested)
|
|
46
|
+
*
|
|
47
|
+
* INV-SEM-003: When normalize=true, normalizes vectors first and maps to [0, 1]
|
|
48
|
+
*/
|
|
49
|
+
export function dotProductSimilarity(a, b, normalize = true) {
|
|
50
|
+
if (a.length !== b.length) {
|
|
51
|
+
throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
|
|
52
|
+
}
|
|
53
|
+
if (a.length === 0)
|
|
54
|
+
return 0;
|
|
55
|
+
if (!normalize) {
|
|
56
|
+
// Raw dot product
|
|
57
|
+
let dotProduct = 0;
|
|
58
|
+
for (let i = 0; i < a.length; i++) {
|
|
59
|
+
dotProduct += a[i] * b[i];
|
|
60
|
+
}
|
|
61
|
+
return dotProduct;
|
|
62
|
+
}
|
|
63
|
+
// Normalized: compute cosine similarity (dot product of unit vectors)
|
|
64
|
+
// This ensures result is in [-1, 1] range, then map to [0, 1]
|
|
65
|
+
let dotProduct = 0;
|
|
66
|
+
let normA = 0;
|
|
67
|
+
let normB = 0;
|
|
68
|
+
for (let i = 0; i < a.length; i++) {
|
|
69
|
+
dotProduct += a[i] * b[i];
|
|
70
|
+
normA += a[i] * a[i];
|
|
71
|
+
normB += b[i] * b[i];
|
|
72
|
+
}
|
|
73
|
+
const denominator = Math.sqrt(normA) * Math.sqrt(normB);
|
|
74
|
+
if (denominator === 0)
|
|
75
|
+
return 0;
|
|
76
|
+
const similarity = dotProduct / denominator;
|
|
77
|
+
// Map from [-1, 1] to [0, 1]
|
|
78
|
+
return (similarity + 1) / 2;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Compute Euclidean distance between two vectors
|
|
82
|
+
* Returns distance (or similarity if normalize=true)
|
|
83
|
+
*
|
|
84
|
+
* INV-SEM-003: Converted to similarity via 1/(1+distance) when normalize=true
|
|
85
|
+
*/
|
|
86
|
+
export function euclideanDistance(a, b, normalize = true) {
|
|
87
|
+
if (a.length !== b.length) {
|
|
88
|
+
throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
|
|
89
|
+
}
|
|
90
|
+
if (a.length === 0)
|
|
91
|
+
return 0;
|
|
92
|
+
let sumSquares = 0;
|
|
93
|
+
for (let i = 0; i < a.length; i++) {
|
|
94
|
+
const diff = a[i] - b[i];
|
|
95
|
+
sumSquares += diff * diff;
|
|
96
|
+
}
|
|
97
|
+
const distance = Math.sqrt(sumSquares);
|
|
98
|
+
// Convert distance to similarity: smaller distance = higher similarity
|
|
99
|
+
return normalize ? 1 / (1 + distance) : distance;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Compute Manhattan distance between two vectors
|
|
103
|
+
*/
|
|
104
|
+
export function manhattanDistance(a, b, normalize = true) {
|
|
105
|
+
if (a.length !== b.length) {
|
|
106
|
+
throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
|
|
107
|
+
}
|
|
108
|
+
if (a.length === 0)
|
|
109
|
+
return 0;
|
|
110
|
+
let distance = 0;
|
|
111
|
+
for (let i = 0; i < a.length; i++) {
|
|
112
|
+
distance += Math.abs(a[i] - b[i]);
|
|
113
|
+
}
|
|
114
|
+
// Convert to similarity
|
|
115
|
+
return normalize ? 1 / (1 + distance) : distance;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Compute similarity using specified method
|
|
119
|
+
*/
|
|
120
|
+
export function computeSimilarity(a, b, options = {}) {
|
|
121
|
+
const { method, normalize } = { ...DEFAULT_SIMILARITY_OPTIONS, ...options };
|
|
122
|
+
switch (method) {
|
|
123
|
+
case 'cosine':
|
|
124
|
+
return cosineSimilarity(a, b, normalize);
|
|
125
|
+
case 'dot':
|
|
126
|
+
return dotProductSimilarity(a, b, normalize);
|
|
127
|
+
case 'euclidean':
|
|
128
|
+
return euclideanDistance(a, b, normalize);
|
|
129
|
+
default:
|
|
130
|
+
throw new Error(`Unknown similarity method: ${method}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Normalize a vector to unit length
|
|
135
|
+
*/
|
|
136
|
+
export function normalizeVector(v) {
|
|
137
|
+
const norm = Math.sqrt(v.reduce((sum, x) => sum + x * x, 0));
|
|
138
|
+
if (norm === 0)
|
|
139
|
+
return v;
|
|
140
|
+
return v.map((x) => x / norm);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Compute vector norm (magnitude)
|
|
144
|
+
*/
|
|
145
|
+
export function vectorNorm(v) {
|
|
146
|
+
return Math.sqrt(v.reduce((sum, x) => sum + x * x, 0));
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Add two vectors
|
|
150
|
+
*/
|
|
151
|
+
export function addVectors(a, b) {
|
|
152
|
+
if (a.length !== b.length) {
|
|
153
|
+
throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
|
|
154
|
+
}
|
|
155
|
+
return a.map((x, i) => x + b[i]);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Subtract vectors: a - b
|
|
159
|
+
*/
|
|
160
|
+
export function subtractVectors(a, b) {
|
|
161
|
+
if (a.length !== b.length) {
|
|
162
|
+
throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
|
|
163
|
+
}
|
|
164
|
+
return a.map((x, i) => x - b[i]);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Scale a vector by a scalar
|
|
168
|
+
*/
|
|
169
|
+
export function scaleVector(v, scalar) {
|
|
170
|
+
return v.map((x) => x * scalar);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Compute centroid (average) of multiple vectors
|
|
174
|
+
*/
|
|
175
|
+
export function computeCentroid(vectors) {
|
|
176
|
+
if (vectors.length === 0)
|
|
177
|
+
return [];
|
|
178
|
+
const dim = vectors[0].length;
|
|
179
|
+
const centroid = new Array(dim).fill(0);
|
|
180
|
+
for (const v of vectors) {
|
|
181
|
+
if (v.length !== dim) {
|
|
182
|
+
throw new Error(`Inconsistent vector dimensions`);
|
|
183
|
+
}
|
|
184
|
+
for (let i = 0; i < dim; i++) {
|
|
185
|
+
centroid[i] += v[i];
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return centroid.map((x) => x / vectors.length);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Find k nearest neighbors from candidates
|
|
192
|
+
* INV-SEM-002: Results sorted by similarity descending
|
|
193
|
+
*/
|
|
194
|
+
export function findKNearest(query, candidates, k, method = 'cosine') {
|
|
195
|
+
const scored = candidates.map((c) => ({
|
|
196
|
+
id: c.id,
|
|
197
|
+
similarity: computeSimilarity(query, c.embedding, { method, normalize: true }),
|
|
198
|
+
}));
|
|
199
|
+
// Sort by similarity descending
|
|
200
|
+
scored.sort((a, b) => b.similarity - a.similarity);
|
|
201
|
+
return scored.slice(0, k);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Filter vectors by minimum similarity threshold
|
|
205
|
+
* INV-SEM-003: Threshold applied after normalization
|
|
206
|
+
*/
|
|
207
|
+
export function filterByThreshold(query, candidates, minSimilarity, method = 'cosine') {
|
|
208
|
+
return candidates
|
|
209
|
+
.map((c) => ({
|
|
210
|
+
id: c.id,
|
|
211
|
+
similarity: computeSimilarity(query, c.embedding, { method, normalize: true }),
|
|
212
|
+
}))
|
|
213
|
+
.filter((s) => s.similarity >= minSimilarity)
|
|
214
|
+
.sort((a, b) => b.similarity - a.similarity);
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=similarity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"similarity.js","sourceRoot":"","sources":["../src/similarity.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Context Types
|
|
3
|
+
*
|
|
4
|
+
* Port interfaces and type definitions for semantic context storage.
|
|
5
|
+
*/
|
|
6
|
+
import type { SemanticItem, SemanticSearchRequest, SemanticSearchResponse, SemanticStoreRequest, SemanticStoreResponse, SemanticListRequest, SemanticListResponse, SemanticDeleteResponse, EmbeddingConfig } from '@defai.digital/contracts';
|
|
7
|
+
/**
|
|
8
|
+
* Embedding request
|
|
9
|
+
*/
|
|
10
|
+
export interface EmbeddingRequest {
|
|
11
|
+
/**
|
|
12
|
+
* Text to embed
|
|
13
|
+
*/
|
|
14
|
+
text: string;
|
|
15
|
+
/**
|
|
16
|
+
* Model to use (optional, uses config default)
|
|
17
|
+
*/
|
|
18
|
+
model?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Embedding result
|
|
22
|
+
*/
|
|
23
|
+
export interface EmbeddingResult {
|
|
24
|
+
/**
|
|
25
|
+
* The embedding vector
|
|
26
|
+
*/
|
|
27
|
+
embedding: number[];
|
|
28
|
+
/**
|
|
29
|
+
* Model used
|
|
30
|
+
*/
|
|
31
|
+
model: string;
|
|
32
|
+
/**
|
|
33
|
+
* Dimension of embedding
|
|
34
|
+
*/
|
|
35
|
+
dimension: number;
|
|
36
|
+
/**
|
|
37
|
+
* Computation duration in ms
|
|
38
|
+
*/
|
|
39
|
+
durationMs: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Port interface for embedding computation
|
|
43
|
+
* Implementations inject actual embedding provider at runtime
|
|
44
|
+
*/
|
|
45
|
+
export interface EmbeddingPort {
|
|
46
|
+
/**
|
|
47
|
+
* Compute embedding for text
|
|
48
|
+
*/
|
|
49
|
+
embed(request: EmbeddingRequest): Promise<EmbeddingResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Compute embeddings for multiple texts (batch)
|
|
52
|
+
*/
|
|
53
|
+
embedBatch(texts: string[]): Promise<EmbeddingResult[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Get embedding configuration
|
|
56
|
+
*/
|
|
57
|
+
getConfig(): EmbeddingConfig;
|
|
58
|
+
/**
|
|
59
|
+
* Check if provider is available
|
|
60
|
+
*/
|
|
61
|
+
isAvailable(): Promise<boolean>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Port interface for semantic storage
|
|
65
|
+
* Implementations provide actual persistence (SQLite, etc.)
|
|
66
|
+
*/
|
|
67
|
+
export interface SemanticStorePort {
|
|
68
|
+
/**
|
|
69
|
+
* Store item with embedding
|
|
70
|
+
* INV-SEM-001: Embedding cached until content changes
|
|
71
|
+
*/
|
|
72
|
+
store(request: SemanticStoreRequest): Promise<SemanticStoreResponse>;
|
|
73
|
+
/**
|
|
74
|
+
* Search by semantic similarity
|
|
75
|
+
* INV-SEM-002: Results sorted by similarity descending
|
|
76
|
+
* INV-SEM-003: Scores normalized to [0, 1]
|
|
77
|
+
* INV-SEM-004: Namespace isolation
|
|
78
|
+
*/
|
|
79
|
+
search(request: SemanticSearchRequest): Promise<SemanticSearchResponse>;
|
|
80
|
+
/**
|
|
81
|
+
* Get item by key
|
|
82
|
+
*/
|
|
83
|
+
get(key: string, namespace?: string): Promise<SemanticItem | null>;
|
|
84
|
+
/**
|
|
85
|
+
* List items
|
|
86
|
+
*/
|
|
87
|
+
list(request: SemanticListRequest): Promise<SemanticListResponse>;
|
|
88
|
+
/**
|
|
89
|
+
* Delete item
|
|
90
|
+
*/
|
|
91
|
+
delete(key: string, namespace?: string): Promise<SemanticDeleteResponse>;
|
|
92
|
+
/**
|
|
93
|
+
* Check if item exists
|
|
94
|
+
*/
|
|
95
|
+
exists(key: string, namespace?: string): Promise<boolean>;
|
|
96
|
+
/**
|
|
97
|
+
* Get namespace statistics
|
|
98
|
+
*/
|
|
99
|
+
getStats(namespace?: string): Promise<SemanticStoreStats>;
|
|
100
|
+
/**
|
|
101
|
+
* Clear namespace
|
|
102
|
+
*/
|
|
103
|
+
clear(namespace?: string): Promise<number>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Semantic store statistics
|
|
107
|
+
*/
|
|
108
|
+
export interface SemanticStoreStats {
|
|
109
|
+
/**
|
|
110
|
+
* Total items in namespace
|
|
111
|
+
*/
|
|
112
|
+
totalItems: number;
|
|
113
|
+
/**
|
|
114
|
+
* Items with embeddings
|
|
115
|
+
*/
|
|
116
|
+
itemsWithEmbeddings: number;
|
|
117
|
+
/**
|
|
118
|
+
* Embedding dimension used
|
|
119
|
+
*/
|
|
120
|
+
embeddingDimension: number | null;
|
|
121
|
+
/**
|
|
122
|
+
* Embedding model used
|
|
123
|
+
*/
|
|
124
|
+
embeddingModel: string | null;
|
|
125
|
+
/**
|
|
126
|
+
* Namespace queried
|
|
127
|
+
*/
|
|
128
|
+
namespace: string | null;
|
|
129
|
+
/**
|
|
130
|
+
* All namespaces (if namespace not specified)
|
|
131
|
+
*/
|
|
132
|
+
namespaces?: string[];
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* High-level semantic context manager
|
|
136
|
+
* Combines embedding and storage
|
|
137
|
+
*/
|
|
138
|
+
export interface SemanticManager {
|
|
139
|
+
/**
|
|
140
|
+
* Store content with automatic embedding
|
|
141
|
+
*/
|
|
142
|
+
store(request: SemanticStoreRequest): Promise<SemanticStoreResponse>;
|
|
143
|
+
/**
|
|
144
|
+
* Search by semantic similarity
|
|
145
|
+
*/
|
|
146
|
+
search(request: SemanticSearchRequest): Promise<SemanticSearchResponse>;
|
|
147
|
+
/**
|
|
148
|
+
* Get item by key
|
|
149
|
+
*/
|
|
150
|
+
get(key: string, namespace?: string): Promise<SemanticItem | null>;
|
|
151
|
+
/**
|
|
152
|
+
* List items
|
|
153
|
+
*/
|
|
154
|
+
list(request: SemanticListRequest): Promise<SemanticListResponse>;
|
|
155
|
+
/**
|
|
156
|
+
* Delete item
|
|
157
|
+
*/
|
|
158
|
+
delete(key: string, namespace?: string): Promise<SemanticDeleteResponse>;
|
|
159
|
+
/**
|
|
160
|
+
* Get statistics
|
|
161
|
+
*/
|
|
162
|
+
getStats(namespace?: string): Promise<SemanticStoreStats>;
|
|
163
|
+
/**
|
|
164
|
+
* Clear namespace
|
|
165
|
+
*/
|
|
166
|
+
clear(namespace?: string): Promise<number>;
|
|
167
|
+
/**
|
|
168
|
+
* Get embedding configuration
|
|
169
|
+
*/
|
|
170
|
+
getEmbeddingConfig(): EmbeddingConfig;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Options for creating semantic manager
|
|
174
|
+
*/
|
|
175
|
+
export interface SemanticManagerOptions {
|
|
176
|
+
/**
|
|
177
|
+
* Embedding provider port
|
|
178
|
+
*/
|
|
179
|
+
embeddingPort: EmbeddingPort;
|
|
180
|
+
/**
|
|
181
|
+
* Storage port
|
|
182
|
+
*/
|
|
183
|
+
storePort: SemanticStorePort;
|
|
184
|
+
/**
|
|
185
|
+
* Default namespace
|
|
186
|
+
*/
|
|
187
|
+
defaultNamespace?: string;
|
|
188
|
+
/**
|
|
189
|
+
* Whether to auto-compute embeddings on store
|
|
190
|
+
*/
|
|
191
|
+
autoEmbed?: boolean;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Similarity computation method
|
|
195
|
+
*/
|
|
196
|
+
export type SimilarityMethod = 'cosine' | 'dot' | 'euclidean';
|
|
197
|
+
/**
|
|
198
|
+
* Similarity computation options
|
|
199
|
+
*/
|
|
200
|
+
export interface SimilarityOptions {
|
|
201
|
+
method: SimilarityMethod;
|
|
202
|
+
normalize: boolean;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Stub embedding port for testing
|
|
206
|
+
*/
|
|
207
|
+
export declare class StubEmbeddingPort implements EmbeddingPort {
|
|
208
|
+
private dimension;
|
|
209
|
+
private model;
|
|
210
|
+
constructor(dimension?: number, model?: string);
|
|
211
|
+
embed(request: EmbeddingRequest): Promise<EmbeddingResult>;
|
|
212
|
+
embedBatch(texts: string[]): Promise<EmbeddingResult[]>;
|
|
213
|
+
getConfig(): EmbeddingConfig;
|
|
214
|
+
isAvailable(): Promise<boolean>;
|
|
215
|
+
private generateEmbedding;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* In-memory semantic store for testing
|
|
219
|
+
*/
|
|
220
|
+
export declare class InMemorySemanticStore implements SemanticStorePort {
|
|
221
|
+
private items;
|
|
222
|
+
private embeddingPort;
|
|
223
|
+
constructor(embeddingPort?: EmbeddingPort);
|
|
224
|
+
private makeKey;
|
|
225
|
+
store(request: SemanticStoreRequest): Promise<SemanticStoreResponse>;
|
|
226
|
+
search(request: SemanticSearchRequest): Promise<SemanticSearchResponse>;
|
|
227
|
+
get(key: string, namespace?: string): Promise<SemanticItem | null>;
|
|
228
|
+
list(request: SemanticListRequest): Promise<SemanticListResponse>;
|
|
229
|
+
delete(key: string, namespace?: string): Promise<SemanticDeleteResponse>;
|
|
230
|
+
exists(key: string, namespace?: string): Promise<boolean>;
|
|
231
|
+
getStats(namespace?: string): Promise<SemanticStoreStats>;
|
|
232
|
+
clear(namespace?: string): Promise<number>;
|
|
233
|
+
private cosineSimilarity;
|
|
234
|
+
private hashContent;
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|