@sparkleideas/embeddings 3.0.0-alpha.29 → 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.
Files changed (37) hide show
  1. package/dist/__tests__/embedding-service.test.d.ts +2 -0
  2. package/dist/__tests__/embedding-service.test.d.ts.map +1 -0
  3. package/dist/__tests__/embedding-service.test.js +98 -0
  4. package/dist/__tests__/embedding-service.test.js.map +1 -0
  5. package/dist/chunking.d.ts +68 -0
  6. package/dist/chunking.d.ts.map +1 -0
  7. package/dist/chunking.js +251 -0
  8. package/dist/chunking.js.map +1 -0
  9. package/dist/embedding-service.d.ts +207 -0
  10. package/dist/embedding-service.d.ts.map +1 -0
  11. package/dist/embedding-service.js +945 -0
  12. package/dist/embedding-service.js.map +1 -0
  13. package/dist/hyperbolic.d.ts +103 -0
  14. package/dist/hyperbolic.d.ts.map +1 -0
  15. package/dist/hyperbolic.js +343 -0
  16. package/dist/hyperbolic.js.map +1 -0
  17. package/dist/index.d.ts +29 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +33 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/neural-integration.d.ts +203 -0
  22. package/dist/neural-integration.d.ts.map +1 -0
  23. package/dist/neural-integration.js +213 -0
  24. package/dist/neural-integration.js.map +1 -0
  25. package/dist/normalization.d.ts +73 -0
  26. package/dist/normalization.d.ts.map +1 -0
  27. package/dist/normalization.js +192 -0
  28. package/dist/normalization.js.map +1 -0
  29. package/dist/persistent-cache.d.ts +119 -0
  30. package/dist/persistent-cache.d.ts.map +1 -0
  31. package/dist/persistent-cache.js +337 -0
  32. package/dist/persistent-cache.js.map +1 -0
  33. package/dist/types.d.ts +224 -0
  34. package/dist/types.d.ts.map +1 -0
  35. package/dist/types.js +15 -0
  36. package/dist/types.js.map +1 -0
  37. package/package.json +1 -1
@@ -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.29",
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",