@sparkleideas/embeddings 3.0.0-alpha.27 → 3.0.0-alpha.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/embedding-service.test.d.ts +2 -0
- package/dist/__tests__/embedding-service.test.d.ts.map +1 -0
- package/dist/__tests__/embedding-service.test.js +98 -0
- package/dist/__tests__/embedding-service.test.js.map +1 -0
- package/dist/chunking.d.ts +68 -0
- package/dist/chunking.d.ts.map +1 -0
- package/dist/chunking.js +251 -0
- package/dist/chunking.js.map +1 -0
- package/dist/embedding-service.d.ts +207 -0
- package/dist/embedding-service.d.ts.map +1 -0
- package/dist/embedding-service.js +945 -0
- package/dist/embedding-service.js.map +1 -0
- package/dist/hyperbolic.d.ts +103 -0
- package/dist/hyperbolic.d.ts.map +1 -0
- package/dist/hyperbolic.js +343 -0
- package/dist/hyperbolic.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/neural-integration.d.ts +203 -0
- package/dist/neural-integration.d.ts.map +1 -0
- package/dist/neural-integration.js +213 -0
- package/dist/neural-integration.js.map +1 -0
- package/dist/normalization.d.ts +73 -0
- package/dist/normalization.d.ts.map +1 -0
- package/dist/normalization.js +192 -0
- package/dist/normalization.js.map +1 -0
- package/dist/persistent-cache.d.ts +119 -0
- package/dist/persistent-cache.d.ts.map +1 -0
- package/dist/persistent-cache.js +337 -0
- package/dist/persistent-cache.js.map +1 -0
- package/dist/types.d.ts +224 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- package/package.json +1 -1
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 Embedding Service Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for embedding service aligned with agentic-flow@alpha:
|
|
5
|
+
* - OpenAI provider
|
|
6
|
+
* - Transformers.js provider
|
|
7
|
+
* - Mock provider
|
|
8
|
+
*
|
|
9
|
+
* Performance Targets:
|
|
10
|
+
* - Single embedding: <100ms (API), <50ms (local)
|
|
11
|
+
* - Batch embedding: <500ms for 10 items
|
|
12
|
+
* - Cache hit: <1ms
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Supported embedding providers
|
|
16
|
+
*/
|
|
17
|
+
export type EmbeddingProvider = 'openai' | 'transformers' | 'mock' | 'agentic-flow';
|
|
18
|
+
/**
|
|
19
|
+
* Normalization type for embeddings
|
|
20
|
+
*/
|
|
21
|
+
export type NormalizationType = 'l2' | 'l1' | 'minmax' | 'zscore' | 'none';
|
|
22
|
+
/**
|
|
23
|
+
* Persistent cache configuration
|
|
24
|
+
*/
|
|
25
|
+
export interface PersistentCacheConfig {
|
|
26
|
+
/** Enable persistent disk cache (requires better-sqlite3) */
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
/** Path to SQLite database file (default: .cache/embeddings.db) */
|
|
29
|
+
dbPath?: string;
|
|
30
|
+
/** Maximum entries in persistent cache (default: 10000) */
|
|
31
|
+
maxSize?: number;
|
|
32
|
+
/** TTL in milliseconds (default: 7 days) */
|
|
33
|
+
ttlMs?: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Base configuration for all providers
|
|
37
|
+
*/
|
|
38
|
+
export interface EmbeddingBaseConfig {
|
|
39
|
+
/** Provider identifier */
|
|
40
|
+
provider: EmbeddingProvider;
|
|
41
|
+
/** Embedding dimensions */
|
|
42
|
+
dimensions?: number;
|
|
43
|
+
/** Cache size (number of embeddings) */
|
|
44
|
+
cacheSize?: number;
|
|
45
|
+
/** Enable caching */
|
|
46
|
+
enableCache?: boolean;
|
|
47
|
+
/** Normalization type (default: 'none' - most providers pre-normalize) */
|
|
48
|
+
normalization?: NormalizationType;
|
|
49
|
+
/** Persistent disk cache configuration */
|
|
50
|
+
persistentCache?: PersistentCacheConfig;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* OpenAI provider configuration
|
|
54
|
+
*/
|
|
55
|
+
export interface OpenAIEmbeddingConfig extends EmbeddingBaseConfig {
|
|
56
|
+
provider: 'openai';
|
|
57
|
+
/** OpenAI API key */
|
|
58
|
+
apiKey: string;
|
|
59
|
+
/** Model to use */
|
|
60
|
+
model?: 'text-embedding-3-small' | 'text-embedding-3-large' | 'text-embedding-ada-002';
|
|
61
|
+
/** Target dimensions (for text-embedding-3-* models) */
|
|
62
|
+
dimensions?: number;
|
|
63
|
+
/** Base URL override */
|
|
64
|
+
baseURL?: string;
|
|
65
|
+
/** Request timeout in ms */
|
|
66
|
+
timeout?: number;
|
|
67
|
+
/** Max retries */
|
|
68
|
+
maxRetries?: number;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Transformers.js provider configuration
|
|
72
|
+
*/
|
|
73
|
+
export interface TransformersEmbeddingConfig extends EmbeddingBaseConfig {
|
|
74
|
+
provider: 'transformers';
|
|
75
|
+
/** Model name from Hugging Face */
|
|
76
|
+
model?: string;
|
|
77
|
+
/** Quantization level */
|
|
78
|
+
quantized?: boolean;
|
|
79
|
+
/** Use web worker */
|
|
80
|
+
useWorker?: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Mock provider configuration
|
|
84
|
+
*/
|
|
85
|
+
export interface MockEmbeddingConfig extends EmbeddingBaseConfig {
|
|
86
|
+
provider: 'mock';
|
|
87
|
+
/** Output dimensions */
|
|
88
|
+
dimensions?: number;
|
|
89
|
+
/** Simulated latency in ms */
|
|
90
|
+
simulatedLatency?: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Agentic-flow provider configuration
|
|
94
|
+
* Uses optimized ONNX embeddings with:
|
|
95
|
+
* - Float32Array with flattened matrices
|
|
96
|
+
* - 256-entry LRU cache with FNV-1a hash
|
|
97
|
+
* - SIMD-friendly loop unrolling (4x)
|
|
98
|
+
* - Pre-allocated buffers (no GC pressure)
|
|
99
|
+
*/
|
|
100
|
+
export interface AgenticFlowEmbeddingConfig extends EmbeddingBaseConfig {
|
|
101
|
+
provider: 'agentic-flow';
|
|
102
|
+
/** Model ID (default: all-MiniLM-L6-v2) */
|
|
103
|
+
modelId?: string;
|
|
104
|
+
/** Embedding dimensions (default: 384) */
|
|
105
|
+
dimensions?: number;
|
|
106
|
+
/** Internal cache size for embedder (default: 256) */
|
|
107
|
+
embedderCacheSize?: number;
|
|
108
|
+
/** Model directory path */
|
|
109
|
+
modelDir?: string;
|
|
110
|
+
/** Auto-download model if not present */
|
|
111
|
+
autoDownload?: boolean;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Union of all provider configs
|
|
115
|
+
*/
|
|
116
|
+
export type EmbeddingConfig = OpenAIEmbeddingConfig | TransformersEmbeddingConfig | MockEmbeddingConfig | AgenticFlowEmbeddingConfig;
|
|
117
|
+
/**
|
|
118
|
+
* Single embedding result
|
|
119
|
+
*/
|
|
120
|
+
export interface EmbeddingResult {
|
|
121
|
+
/** The embedding vector */
|
|
122
|
+
embedding: Float32Array | number[];
|
|
123
|
+
/** Latency in milliseconds */
|
|
124
|
+
latencyMs: number;
|
|
125
|
+
/** Token usage (for API providers) */
|
|
126
|
+
usage?: {
|
|
127
|
+
promptTokens: number;
|
|
128
|
+
totalTokens: number;
|
|
129
|
+
};
|
|
130
|
+
/** Whether result was from cache */
|
|
131
|
+
cached?: boolean;
|
|
132
|
+
/** Whether result was from persistent cache */
|
|
133
|
+
persistentCached?: boolean;
|
|
134
|
+
/** Whether embedding was normalized */
|
|
135
|
+
normalized?: boolean;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Batch embedding result
|
|
139
|
+
*/
|
|
140
|
+
export interface BatchEmbeddingResult {
|
|
141
|
+
/** Array of embeddings */
|
|
142
|
+
embeddings: Array<Float32Array | number[]>;
|
|
143
|
+
/** Total latency in milliseconds */
|
|
144
|
+
totalLatencyMs: number;
|
|
145
|
+
/** Average latency per embedding */
|
|
146
|
+
avgLatencyMs: number;
|
|
147
|
+
/** Token usage (for API providers) */
|
|
148
|
+
usage?: {
|
|
149
|
+
promptTokens: number;
|
|
150
|
+
totalTokens: number;
|
|
151
|
+
};
|
|
152
|
+
/** Cache statistics */
|
|
153
|
+
cacheStats?: {
|
|
154
|
+
hits: number;
|
|
155
|
+
misses: number;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Embedding service interface
|
|
160
|
+
*/
|
|
161
|
+
export interface IEmbeddingService {
|
|
162
|
+
/** Provider identifier */
|
|
163
|
+
readonly provider: EmbeddingProvider;
|
|
164
|
+
/** Get embedding for single text */
|
|
165
|
+
embed(text: string): Promise<EmbeddingResult>;
|
|
166
|
+
/** Get embeddings for multiple texts */
|
|
167
|
+
embedBatch(texts: string[]): Promise<BatchEmbeddingResult>;
|
|
168
|
+
/** Clear cache */
|
|
169
|
+
clearCache(): void;
|
|
170
|
+
/** Get cache statistics */
|
|
171
|
+
getCacheStats(): {
|
|
172
|
+
size: number;
|
|
173
|
+
maxSize: number;
|
|
174
|
+
hitRate: number;
|
|
175
|
+
};
|
|
176
|
+
/** Shutdown service */
|
|
177
|
+
shutdown(): Promise<void>;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Embedding service events
|
|
181
|
+
*/
|
|
182
|
+
export type EmbeddingEvent = {
|
|
183
|
+
type: 'embed_start';
|
|
184
|
+
text: string;
|
|
185
|
+
} | {
|
|
186
|
+
type: 'embed_complete';
|
|
187
|
+
text: string;
|
|
188
|
+
latencyMs: number;
|
|
189
|
+
} | {
|
|
190
|
+
type: 'embed_error';
|
|
191
|
+
text: string;
|
|
192
|
+
error: string;
|
|
193
|
+
} | {
|
|
194
|
+
type: 'batch_start';
|
|
195
|
+
count: number;
|
|
196
|
+
} | {
|
|
197
|
+
type: 'batch_complete';
|
|
198
|
+
count: number;
|
|
199
|
+
latencyMs: number;
|
|
200
|
+
} | {
|
|
201
|
+
type: 'cache_hit';
|
|
202
|
+
text: string;
|
|
203
|
+
} | {
|
|
204
|
+
type: 'cache_eviction';
|
|
205
|
+
size: number;
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* Event listener type
|
|
209
|
+
*/
|
|
210
|
+
export type EmbeddingEventListener = (event: EmbeddingEvent) => void | Promise<void>;
|
|
211
|
+
/**
|
|
212
|
+
* Similarity metric type
|
|
213
|
+
*/
|
|
214
|
+
export type SimilarityMetric = 'cosine' | 'euclidean' | 'dot';
|
|
215
|
+
/**
|
|
216
|
+
* Similarity result
|
|
217
|
+
*/
|
|
218
|
+
export interface SimilarityResult {
|
|
219
|
+
/** Similarity score (0-1 for cosine, unbounded for others) */
|
|
220
|
+
score: number;
|
|
221
|
+
/** Metric used */
|
|
222
|
+
metric: SimilarityMetric;
|
|
223
|
+
}
|
|
224
|
+
//# 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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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 Embedding Service Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for embedding service aligned with agentic-flow@alpha:
|
|
5
|
+
* - OpenAI provider
|
|
6
|
+
* - Transformers.js provider
|
|
7
|
+
* - Mock provider
|
|
8
|
+
*
|
|
9
|
+
* Performance Targets:
|
|
10
|
+
* - Single embedding: <100ms (API), <50ms (local)
|
|
11
|
+
* - Batch embedding: <500ms for 10 items
|
|
12
|
+
* - Cache hit: <1ms
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sparkleideas/embeddings",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.36",
|
|
4
4
|
"description": "V3 Embedding Service - OpenAI, Transformers.js, Agentic-Flow (ONNX), Mock providers with hyperbolic embeddings, normalization, and chunking",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|