@soulcraft/brainy 0.41.0 → 0.43.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.
Files changed (144) hide show
  1. package/README.md +605 -194
  2. package/dist/augmentations/conduitAugmentations.js +1158 -0
  3. package/dist/augmentations/conduitAugmentations.js.map +1 -0
  4. package/dist/augmentations/memoryAugmentations.d.ts +2 -0
  5. package/dist/augmentations/memoryAugmentations.d.ts.map +1 -1
  6. package/dist/augmentations/memoryAugmentations.js +270 -0
  7. package/dist/augmentations/memoryAugmentations.js.map +1 -0
  8. package/dist/augmentations/serverSearchAugmentations.js +531 -0
  9. package/dist/augmentations/serverSearchAugmentations.js.map +1 -0
  10. package/dist/browserFramework.d.ts +15 -0
  11. package/dist/demo.d.ts +106 -0
  12. package/dist/examples/basicUsage.js +118 -0
  13. package/dist/examples/basicUsage.js.map +1 -0
  14. package/dist/hnsw/distributedSearch.js +452 -0
  15. package/dist/hnsw/distributedSearch.js.map +1 -0
  16. package/dist/hnsw/hnswIndex.js +602 -0
  17. package/dist/hnsw/hnswIndex.js.map +1 -0
  18. package/dist/hnsw/hnswIndexOptimized.js +471 -0
  19. package/dist/hnsw/hnswIndexOptimized.js.map +1 -0
  20. package/dist/hnsw/optimizedHNSWIndex.js +313 -0
  21. package/dist/hnsw/optimizedHNSWIndex.js.map +1 -0
  22. package/dist/hnsw/partitionedHNSWIndex.js +304 -0
  23. package/dist/hnsw/partitionedHNSWIndex.js.map +1 -0
  24. package/dist/hnsw/scaledHNSWSystem.js +559 -0
  25. package/dist/hnsw/scaledHNSWSystem.js.map +1 -0
  26. package/dist/index.d.ts +3 -2
  27. package/dist/index.js +81 -0
  28. package/dist/mcp/brainyMCPAdapter.js +142 -0
  29. package/dist/mcp/brainyMCPAdapter.js.map +1 -0
  30. package/dist/mcp/brainyMCPService.js +248 -0
  31. package/dist/mcp/brainyMCPService.js.map +1 -0
  32. package/dist/mcp/index.js +17 -0
  33. package/dist/mcp/index.js.map +1 -0
  34. package/dist/mcp/mcpAugmentationToolset.js +180 -0
  35. package/dist/mcp/mcpAugmentationToolset.js.map +1 -0
  36. package/dist/storage/adapters/baseStorageAdapter.js +349 -0
  37. package/dist/storage/adapters/baseStorageAdapter.js.map +1 -0
  38. package/dist/storage/adapters/batchS3Operations.js +287 -0
  39. package/dist/storage/adapters/batchS3Operations.js.map +1 -0
  40. package/dist/storage/adapters/fileSystemStorage.js +846 -0
  41. package/dist/storage/adapters/fileSystemStorage.js.map +1 -0
  42. package/dist/storage/adapters/memoryStorage.js +532 -0
  43. package/dist/storage/adapters/memoryStorage.js.map +1 -0
  44. package/dist/storage/adapters/opfsStorage.d.ts.map +1 -1
  45. package/dist/storage/adapters/opfsStorage.js +1118 -0
  46. package/dist/storage/adapters/opfsStorage.js.map +1 -0
  47. package/dist/storage/adapters/optimizedS3Search.js +248 -0
  48. package/dist/storage/adapters/optimizedS3Search.js.map +1 -0
  49. package/dist/storage/adapters/s3CompatibleStorage.js +2026 -0
  50. package/dist/storage/adapters/s3CompatibleStorage.js.map +1 -0
  51. package/dist/storage/baseStorage.js +603 -0
  52. package/dist/storage/baseStorage.js.map +1 -0
  53. package/dist/storage/cacheManager.js +1306 -0
  54. package/dist/storage/cacheManager.js.map +1 -0
  55. package/dist/storage/enhancedCacheManager.js +520 -0
  56. package/dist/storage/enhancedCacheManager.js.map +1 -0
  57. package/dist/storage/readOnlyOptimizations.js +425 -0
  58. package/dist/storage/readOnlyOptimizations.js.map +1 -0
  59. package/dist/storage/storageFactory.d.ts +0 -1
  60. package/dist/storage/storageFactory.d.ts.map +1 -1
  61. package/dist/storage/storageFactory.js +227 -0
  62. package/dist/storage/storageFactory.js.map +1 -0
  63. package/dist/types/augmentations.js +16 -0
  64. package/dist/types/augmentations.js.map +1 -0
  65. package/dist/types/brainyDataInterface.js +8 -0
  66. package/dist/types/brainyDataInterface.js.map +1 -0
  67. package/dist/types/distributedTypes.js +6 -0
  68. package/dist/types/distributedTypes.js.map +1 -0
  69. package/dist/types/fileSystemTypes.js +8 -0
  70. package/dist/types/fileSystemTypes.js.map +1 -0
  71. package/dist/types/graphTypes.js +247 -0
  72. package/dist/types/graphTypes.js.map +1 -0
  73. package/dist/types/mcpTypes.js +22 -0
  74. package/dist/types/mcpTypes.js.map +1 -0
  75. package/dist/types/paginationTypes.js +5 -0
  76. package/dist/types/paginationTypes.js.map +1 -0
  77. package/dist/types/pipelineTypes.js +7 -0
  78. package/dist/types/pipelineTypes.js.map +1 -0
  79. package/dist/types/tensorflowTypes.js +6 -0
  80. package/dist/types/tensorflowTypes.js.map +1 -0
  81. package/dist/unified.js +52 -128251
  82. package/dist/utils/autoConfiguration.js +341 -0
  83. package/dist/utils/autoConfiguration.js.map +1 -0
  84. package/dist/utils/cacheAutoConfig.js +261 -0
  85. package/dist/utils/cacheAutoConfig.js.map +1 -0
  86. package/dist/utils/crypto.js +45 -0
  87. package/dist/utils/crypto.js.map +1 -0
  88. package/dist/utils/distance.js +239 -0
  89. package/dist/utils/distance.js.map +1 -0
  90. package/dist/utils/embedding.d.ts.map +1 -1
  91. package/dist/utils/embedding.js +702 -0
  92. package/dist/utils/embedding.js.map +1 -0
  93. package/dist/utils/environment.js +75 -0
  94. package/dist/utils/environment.js.map +1 -0
  95. package/dist/utils/fieldNameTracking.js +90 -0
  96. package/dist/utils/fieldNameTracking.js.map +1 -0
  97. package/dist/utils/index.d.ts +1 -0
  98. package/dist/utils/index.d.ts.map +1 -1
  99. package/dist/utils/index.js +8 -0
  100. package/dist/utils/index.js.map +1 -0
  101. package/dist/utils/jsonProcessing.js +179 -0
  102. package/dist/utils/jsonProcessing.js.map +1 -0
  103. package/dist/utils/logger.js +129 -0
  104. package/dist/utils/logger.js.map +1 -0
  105. package/dist/utils/operationUtils.js +126 -0
  106. package/dist/utils/operationUtils.js.map +1 -0
  107. package/dist/utils/robustModelLoader.d.ts +14 -0
  108. package/dist/utils/robustModelLoader.d.ts.map +1 -1
  109. package/dist/utils/robustModelLoader.js +537 -0
  110. package/dist/utils/robustModelLoader.js.map +1 -0
  111. package/dist/utils/searchCache.js +248 -0
  112. package/dist/utils/searchCache.js.map +1 -0
  113. package/dist/utils/statistics.js +25 -0
  114. package/dist/utils/statistics.js.map +1 -0
  115. package/dist/utils/statisticsCollector.js +224 -0
  116. package/dist/utils/statisticsCollector.js.map +1 -0
  117. package/dist/utils/textEncoding.js +309 -0
  118. package/dist/utils/textEncoding.js.map +1 -0
  119. package/dist/utils/typeUtils.js +40 -0
  120. package/dist/utils/typeUtils.js.map +1 -0
  121. package/dist/utils/version.d.ts +15 -3
  122. package/dist/utils/version.d.ts.map +1 -1
  123. package/dist/utils/version.js +24 -0
  124. package/dist/utils/version.js.map +1 -0
  125. package/dist/utils/workerUtils.js +458 -0
  126. package/dist/utils/workerUtils.js.map +1 -0
  127. package/package.json +23 -18
  128. package/dist/brainy.js +0 -90220
  129. package/dist/brainy.min.js +0 -12511
  130. package/dist/patched-platform-node.d.ts +0 -17
  131. package/dist/statistics/statisticsManager.d.ts +0 -121
  132. package/dist/storage/fileSystemStorage.d.ts +0 -73
  133. package/dist/storage/fileSystemStorage.d.ts.map +0 -1
  134. package/dist/storage/opfsStorage.d.ts +0 -236
  135. package/dist/storage/opfsStorage.d.ts.map +0 -1
  136. package/dist/storage/s3CompatibleStorage.d.ts +0 -157
  137. package/dist/storage/s3CompatibleStorage.d.ts.map +0 -1
  138. package/dist/testing/prettyReporter.d.ts +0 -23
  139. package/dist/testing/prettySummaryReporter.d.ts +0 -22
  140. package/dist/unified.min.js +0 -16153
  141. package/dist/utils/environmentDetection.d.ts +0 -47
  142. package/dist/utils/environmentDetection.d.ts.map +0 -1
  143. package/dist/utils/tensorflowUtils.d.ts +0 -17
  144. package/dist/utils/tensorflowUtils.d.ts.map +0 -1
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Cross-platform crypto utilities
3
+ * Provides hashing functions that work in both Node.js and browser environments
4
+ */
5
+ /**
6
+ * Simple string hash function that works in all environments
7
+ * Uses djb2 algorithm - fast and good distribution
8
+ * @param str - String to hash
9
+ * @returns Positive integer hash
10
+ */
11
+ export function hashString(str) {
12
+ let hash = 5381;
13
+ for (let i = 0; i < str.length; i++) {
14
+ const char = str.charCodeAt(i);
15
+ hash = ((hash << 5) + hash) + char; // hash * 33 + char
16
+ }
17
+ // Ensure positive number
18
+ return Math.abs(hash);
19
+ }
20
+ /**
21
+ * Alternative: FNV-1a hash algorithm
22
+ * Good distribution and fast
23
+ * @param str - String to hash
24
+ * @returns Positive integer hash
25
+ */
26
+ export function fnv1aHash(str) {
27
+ let hash = 2166136261;
28
+ for (let i = 0; i < str.length; i++) {
29
+ hash ^= str.charCodeAt(i);
30
+ hash = (hash * 16777619) >>> 0;
31
+ }
32
+ return hash;
33
+ }
34
+ /**
35
+ * Generate a deterministic hash for partitioning
36
+ * Uses the most appropriate algorithm for the environment
37
+ * @param input - Input string to hash
38
+ * @returns Positive integer hash suitable for modulo operations
39
+ */
40
+ export function getPartitionHash(input) {
41
+ // Use djb2 by default as it's fast and has good distribution
42
+ // This ensures consistent partitioning across all environments
43
+ return hashString(input);
44
+ }
45
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA,CAAC,mBAAmB;IACxD,CAAC;IACD,yBAAyB;IACzB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,IAAI,IAAI,GAAG,UAAU,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,6DAA6D;IAC7D,+DAA+D;IAC/D,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * Distance functions for vector similarity calculations
3
+ * Optimized for Node.js 23.11+ using enhanced array methods
4
+ * GPU-accelerated versions available for high-performance computing
5
+ */
6
+ /**
7
+ * Calculates the Euclidean distance between two vectors
8
+ * Lower values indicate higher similarity
9
+ * Optimized using array methods for Node.js 23.11+
10
+ */
11
+ export const euclideanDistance = (a, b) => {
12
+ if (a.length !== b.length) {
13
+ throw new Error('Vectors must have the same dimensions');
14
+ }
15
+ // Use array.reduce for better performance in Node.js 23.11+
16
+ const sum = a.reduce((acc, val, i) => {
17
+ const diff = val - b[i];
18
+ return acc + diff * diff;
19
+ }, 0);
20
+ return Math.sqrt(sum);
21
+ };
22
+ /**
23
+ * Calculates the cosine distance between two vectors
24
+ * Lower values indicate higher similarity
25
+ * Range: 0 (identical) to 2 (opposite)
26
+ * Optimized using array methods for Node.js 23.11+
27
+ */
28
+ export const cosineDistance = (a, b) => {
29
+ if (a.length !== b.length) {
30
+ throw new Error('Vectors must have the same dimensions');
31
+ }
32
+ // Use array.reduce to calculate all values in a single pass
33
+ const { dotProduct, normA, normB } = a.reduce((acc, val, i) => {
34
+ return {
35
+ dotProduct: acc.dotProduct + val * b[i],
36
+ normA: acc.normA + val * val,
37
+ normB: acc.normB + b[i] * b[i]
38
+ };
39
+ }, { dotProduct: 0, normA: 0, normB: 0 });
40
+ if (normA === 0 || normB === 0) {
41
+ return 2; // Maximum distance for zero vectors
42
+ }
43
+ const similarity = dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
44
+ // Convert cosine similarity (-1 to 1) to distance (0 to 2)
45
+ return 1 - similarity;
46
+ };
47
+ /**
48
+ * Calculates the Manhattan (L1) distance between two vectors
49
+ * Lower values indicate higher similarity
50
+ * Optimized using array methods for Node.js 23.11+
51
+ */
52
+ export const manhattanDistance = (a, b) => {
53
+ if (a.length !== b.length) {
54
+ throw new Error('Vectors must have the same dimensions');
55
+ }
56
+ // Use array.reduce for better performance in Node.js 23.11+
57
+ return a.reduce((sum, val, i) => sum + Math.abs(val - b[i]), 0);
58
+ };
59
+ /**
60
+ * Calculates the dot product similarity between two vectors
61
+ * Higher values indicate higher similarity
62
+ * Converted to a distance metric (lower is better)
63
+ * Optimized using array methods for Node.js 23.11+
64
+ */
65
+ export const dotProductDistance = (a, b) => {
66
+ if (a.length !== b.length) {
67
+ throw new Error('Vectors must have the same dimensions');
68
+ }
69
+ // Use array.reduce for better performance in Node.js 23.11+
70
+ const dotProduct = a.reduce((sum, val, i) => sum + val * b[i], 0);
71
+ // Convert to a distance metric (lower is better)
72
+ return -dotProduct;
73
+ };
74
+ /**
75
+ * Batch distance calculation
76
+ * Uses TensorFlow.js with CPU backend for optimized performance
77
+ *
78
+ * @param queryVector The query vector to compare against all vectors
79
+ * @param vectors Array of vectors to compare against
80
+ * @param distanceFunction The distance function to use
81
+ * @returns Promise resolving to array of distances
82
+ */
83
+ export async function calculateDistancesBatch(queryVector, vectors, distanceFunction = euclideanDistance) {
84
+ // For small batches, use the standard distance function
85
+ if (vectors.length < 10) {
86
+ return vectors.map((vector) => distanceFunction(queryVector, vector));
87
+ }
88
+ try {
89
+ // Function to be executed in a worker thread
90
+ const distanceCalculator = async (args) => {
91
+ const { queryVector, vectors, distanceFnString } = args;
92
+ // Use TensorFlow.js with CPU processing
93
+ const useTensorFlow = async () => {
94
+ // TensorFlow.js will use its default EPSILON value
95
+ // Use the importTensorFlow function if available (in worker context)
96
+ // or directly import TensorFlow.js (in main thread)
97
+ let tf;
98
+ if (typeof self !== 'undefined' &&
99
+ typeof self.importTensorFlow === 'function') {
100
+ // In worker context, use the importTensorFlow function
101
+ tf = await self.importTensorFlow();
102
+ }
103
+ else {
104
+ // CRITICAL: Ensure TextEncoder/TextDecoder are available before TensorFlow.js loads
105
+ try {
106
+ // Use dynamic imports for all environments to ensure TensorFlow loads after patch
107
+ if (typeof process !== 'undefined' && process.versions && process.versions.node) {
108
+ // Ensure TextEncoder/TextDecoder are globally available in Node.js
109
+ const util = await import('util');
110
+ if (typeof global.TextEncoder === 'undefined') {
111
+ global.TextEncoder = util.TextEncoder;
112
+ }
113
+ if (typeof global.TextDecoder === 'undefined') {
114
+ global.TextDecoder = util.TextDecoder;
115
+ }
116
+ }
117
+ // Apply the TensorFlow.js patch
118
+ const { applyTensorFlowPatch } = await import('./textEncoding.js');
119
+ await applyTensorFlowPatch();
120
+ // Now load TensorFlow.js core module using dynamic imports
121
+ tf = await import('@tensorflow/tfjs-core');
122
+ await import('@tensorflow/tfjs-backend-cpu');
123
+ await tf.setBackend('cpu');
124
+ }
125
+ catch (error) {
126
+ console.error('Failed to initialize TensorFlow.js:', error);
127
+ throw error;
128
+ }
129
+ }
130
+ // Convert vectors to tensors
131
+ const queryTensor = tf.tensor2d([queryVector]);
132
+ const vectorsTensor = tf.tensor2d(vectors);
133
+ let distances;
134
+ // Calculate distances based on the distance function type
135
+ if (distanceFnString.includes('euclideanDistance')) {
136
+ // Euclidean distance using GPU-optimized operations
137
+ // Formula: sqrt(sum((a - b)^2))
138
+ const expanded = tf.sub(queryTensor.expandDims(1), vectorsTensor.expandDims(0));
139
+ const squaredDiff = tf.square(expanded);
140
+ const sumSquaredDiff = tf.sum(squaredDiff, -1);
141
+ const distancesTensor = tf.sqrt(sumSquaredDiff);
142
+ distances = (await distancesTensor
143
+ .squeeze()
144
+ .array());
145
+ // Clean up tensors
146
+ queryTensor.dispose();
147
+ vectorsTensor.dispose();
148
+ expanded.dispose();
149
+ squaredDiff.dispose();
150
+ sumSquaredDiff.dispose();
151
+ distancesTensor.dispose();
152
+ }
153
+ else if (distanceFnString.includes('cosineDistance')) {
154
+ // Cosine distance using GPU-optimized operations
155
+ // Formula: 1 - (a·b / (||a|| * ||b||))
156
+ const dotProduct = tf.matMul(queryTensor, vectorsTensor.transpose());
157
+ const queryNorm = tf.norm(queryTensor, 2, 1);
158
+ const vectorsNorm = tf.norm(vectorsTensor, 2, 1);
159
+ const normProduct = tf.outerProduct(queryNorm, vectorsNorm);
160
+ const cosineSimilarity = tf.div(dotProduct, normProduct);
161
+ const distancesTensor = tf.sub(tf.scalar(1), cosineSimilarity);
162
+ distances = (await distancesTensor
163
+ .squeeze()
164
+ .array());
165
+ // Clean up tensors
166
+ queryTensor.dispose();
167
+ vectorsTensor.dispose();
168
+ dotProduct.dispose();
169
+ queryNorm.dispose();
170
+ vectorsNorm.dispose();
171
+ normProduct.dispose();
172
+ cosineSimilarity.dispose();
173
+ distancesTensor.dispose();
174
+ }
175
+ else if (distanceFnString.includes('manhattanDistance')) {
176
+ // Manhattan distance using GPU-optimized operations
177
+ // Formula: sum(|a - b|)
178
+ const diff = tf.sub(queryTensor.expandDims(1), vectorsTensor.expandDims(0));
179
+ const absDiff = tf.abs(diff);
180
+ const distancesTensor = tf.sum(absDiff, -1);
181
+ distances = (await distancesTensor
182
+ .squeeze()
183
+ .array());
184
+ // Clean up tensors
185
+ queryTensor.dispose();
186
+ vectorsTensor.dispose();
187
+ diff.dispose();
188
+ absDiff.dispose();
189
+ distancesTensor.dispose();
190
+ }
191
+ else if (distanceFnString.includes('dotProductDistance')) {
192
+ // Dot product distance using GPU-optimized operations
193
+ // Formula: -sum(a * b)
194
+ const dotProduct = tf.matMul(queryTensor, vectorsTensor.transpose());
195
+ const distancesTensor = tf.neg(dotProduct);
196
+ distances = (await distancesTensor
197
+ .squeeze()
198
+ .array());
199
+ // Clean up tensors
200
+ queryTensor.dispose();
201
+ vectorsTensor.dispose();
202
+ dotProduct.dispose();
203
+ distancesTensor.dispose();
204
+ }
205
+ else {
206
+ // For unknown distance functions, fall back to direct CPU implementation
207
+ throw new Error('Unsupported distance function for TensorFlow optimization');
208
+ }
209
+ return {
210
+ distances
211
+ };
212
+ };
213
+ // Try to use TensorFlow.js with CPU optimization
214
+ try {
215
+ return await useTensorFlow();
216
+ }
217
+ catch (error) {
218
+ // Fall back to direct CPU implementation if TensorFlow.js fails
219
+ // Recreate the distance function from its string representation
220
+ const distanceFunction = new Function('return ' + distanceFnString)();
221
+ // Calculate distances for all vectors
222
+ const distances = vectors.map((vector) => distanceFunction(queryVector, vector));
223
+ return {
224
+ distances
225
+ };
226
+ }
227
+ };
228
+ // Threading is not available, so we'll always use the main thread implementation
229
+ // This comment is kept for clarity about the removed code
230
+ // If threading is not available or failed, calculate distances in the main thread
231
+ return vectors.map((vector) => distanceFunction(queryVector, vector));
232
+ }
233
+ catch (error) {
234
+ // If anything fails, fall back to the standard distance function
235
+ console.error('Batch distance calculation failed:', error);
236
+ return vectors.map((vector) => distanceFunction(queryVector, vector));
237
+ }
238
+ }
239
+ //# sourceMappingURL=distance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distance.js","sourceRoot":"","sources":["../../src/utils/distance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../src/utils/embedding.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAG3E,OAAO,EAEL,gBAAgB,EAGjB,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;GAOG;AACH,MAAM,WAAW,+BAAgC,SAAQ,gBAAgB;IACvE,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,wBAAyB,YAAW,cAAc;IAC7D,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAmB;IAEvC;;;OAGG;gBACS,OAAO,GAAE,+BAAoC;IAiBzD;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;IA4CvC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAWd;;;OAGG;YACW,kBAAkB;IAmChC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0LlC;;;OAGG;IACU,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmF5D;;;;;OAKG;IACU,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwF/D;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAiBtC;AAuID;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,CAAC,EAAE,cAAc,GACrB,iBAAiB,CASnB;AAcD,wBAAgB,iCAAiC,CAC/C,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,iBAAiB,CAuCnB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,iBAAiB,CAEnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBACR,CAAA;AAe/B,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAyC5C;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAE5C;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,cAV3B,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAUmC,CAAA;AAE/E;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,cAAc,GACpB,iBAAiB,CAUnB"}
1
+ {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../src/utils/embedding.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAG3E,OAAO,EAEL,gBAAgB,EAGjB,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;GAOG;AACH,MAAM,WAAW,+BAAgC,SAAQ,gBAAgB;IACvE,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,wBAAyB,YAAW,cAAc;IAC7D,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAmB;IAEvC;;;OAGG;gBACS,OAAO,GAAE,+BAAoC;IAiBzD;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;IA4CvC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAWd;;;OAGG;YACW,kBAAkB;IAmChC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+LlC;;;OAGG;IACU,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmF5D;;;;;OAKG;IACU,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwF/D;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAiBtC;AAsID;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,CAAC,EAAE,cAAc,GACrB,iBAAiB,CASnB;AAcD,wBAAgB,iCAAiC,CAC/C,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,iBAAiB,CAuCnB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,iBAAiB,CAEnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBACR,CAAA;AAe/B,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAyC5C;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAE5C;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,cAV3B,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAUmC,CAAA;AAE/E;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,cAAc,GACpB,iBAAiB,CAUnB"}