@ninebix/nmt-system 1.0.4 → 2.0.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 (101) hide show
  1. package/README.md +30 -22
  2. package/dashboard-lite/index.html +458 -0
  3. package/dist/bin/nmt.js +225 -6
  4. package/dist/bin/nmt.js.map +1 -1
  5. package/dist/src/api/cli-server.d.ts.map +1 -1
  6. package/dist/src/api/cli-server.js +327 -30
  7. package/dist/src/api/cli-server.js.map +1 -1
  8. package/dist/src/cli/commands/db.d.ts +33 -0
  9. package/dist/src/cli/commands/db.d.ts.map +1 -0
  10. package/dist/src/cli/commands/db.js +197 -0
  11. package/dist/src/cli/commands/db.js.map +1 -0
  12. package/dist/src/cli/commands/infer.d.ts.map +1 -1
  13. package/dist/src/cli/commands/infer.js +8 -2
  14. package/dist/src/cli/commands/infer.js.map +1 -1
  15. package/dist/src/cli/commands/learn.d.ts.map +1 -1
  16. package/dist/src/cli/commands/learn.js +25 -1
  17. package/dist/src/cli/commands/learn.js.map +1 -1
  18. package/dist/src/cli/commands/sync.d.ts +14 -0
  19. package/dist/src/cli/commands/sync.d.ts.map +1 -1
  20. package/dist/src/cli/commands/sync.js +12 -7
  21. package/dist/src/cli/commands/sync.js.map +1 -1
  22. package/dist/src/connectors/index.d.ts +11 -0
  23. package/dist/src/connectors/index.d.ts.map +1 -0
  24. package/dist/src/connectors/index.js +24 -0
  25. package/dist/src/connectors/index.js.map +1 -0
  26. package/dist/src/connectors/mongodb-connector.d.ts +29 -0
  27. package/dist/src/connectors/mongodb-connector.d.ts.map +1 -0
  28. package/dist/src/connectors/mongodb-connector.js +286 -0
  29. package/dist/src/connectors/mongodb-connector.js.map +1 -0
  30. package/dist/src/connectors/mysql-connector.d.ts +29 -0
  31. package/dist/src/connectors/mysql-connector.d.ts.map +1 -0
  32. package/dist/src/connectors/mysql-connector.js +357 -0
  33. package/dist/src/connectors/mysql-connector.js.map +1 -0
  34. package/dist/src/connectors/types.d.ts +174 -0
  35. package/dist/src/connectors/types.d.ts.map +1 -0
  36. package/dist/src/connectors/types.js +6 -0
  37. package/dist/src/connectors/types.js.map +1 -0
  38. package/dist/src/core/attractor-model.d.ts +6 -2
  39. package/dist/src/core/attractor-model.d.ts.map +1 -1
  40. package/dist/src/core/attractor-model.js +260 -16
  41. package/dist/src/core/attractor-model.js.map +1 -1
  42. package/dist/src/core/hnsw-index.d.ts.map +1 -1
  43. package/dist/src/core/hnsw-index.js +16 -9
  44. package/dist/src/core/hnsw-index.js.map +1 -1
  45. package/dist/src/core/neuron-graph.d.ts +130 -1
  46. package/dist/src/core/neuron-graph.d.ts.map +1 -1
  47. package/dist/src/core/neuron-graph.js +299 -1
  48. package/dist/src/core/neuron-graph.js.map +1 -1
  49. package/dist/src/core/probabilistic-neuron.d.ts.map +1 -1
  50. package/dist/src/core/probabilistic-neuron.js +24 -4
  51. package/dist/src/core/probabilistic-neuron.js.map +1 -1
  52. package/dist/src/core/probabilistic-orchestrator.d.ts.map +1 -1
  53. package/dist/src/core/probabilistic-orchestrator.js +17 -13
  54. package/dist/src/core/probabilistic-orchestrator.js.map +1 -1
  55. package/dist/src/extensions/clustering/index.d.ts +0 -7
  56. package/dist/src/extensions/clustering/index.d.ts.map +1 -1
  57. package/dist/src/extensions/clustering/index.js.map +1 -1
  58. package/dist/src/mcp/server.js +4 -0
  59. package/dist/src/mcp/server.js.map +1 -1
  60. package/dist/src/services/db-bridge.d.ts +46 -0
  61. package/dist/src/services/db-bridge.d.ts.map +1 -0
  62. package/dist/src/services/db-bridge.js +524 -0
  63. package/dist/src/services/db-bridge.js.map +1 -0
  64. package/dist/src/services/embedding-provider.d.ts +11 -1
  65. package/dist/src/services/embedding-provider.d.ts.map +1 -1
  66. package/dist/src/services/embedding-provider.js +78 -21
  67. package/dist/src/services/embedding-provider.js.map +1 -1
  68. package/dist/src/services/four-stage-learning.d.ts.map +1 -1
  69. package/dist/src/services/four-stage-learning.js +20 -9
  70. package/dist/src/services/four-stage-learning.js.map +1 -1
  71. package/dist/src/services/ingestion.d.ts +20 -1
  72. package/dist/src/services/ingestion.d.ts.map +1 -1
  73. package/dist/src/services/ingestion.js +92 -62
  74. package/dist/src/services/ingestion.js.map +1 -1
  75. package/dist/src/services/query.d.ts +57 -3
  76. package/dist/src/services/query.d.ts.map +1 -1
  77. package/dist/src/services/query.js +264 -42
  78. package/dist/src/services/query.js.map +1 -1
  79. package/dist/src/services/text-embedding.d.ts +1 -1
  80. package/dist/src/services/text-embedding.d.ts.map +1 -1
  81. package/dist/src/services/text-embedding.js +62 -3
  82. package/dist/src/services/text-embedding.js.map +1 -1
  83. package/dist/src/storage/neuron-store.d.ts +12 -1
  84. package/dist/src/storage/neuron-store.d.ts.map +1 -1
  85. package/dist/src/storage/neuron-store.js +12 -1
  86. package/dist/src/storage/neuron-store.js.map +1 -1
  87. package/dist/src/sync/change-journal.d.ts.map +1 -1
  88. package/dist/src/sync/change-journal.js +63 -37
  89. package/dist/src/sync/change-journal.js.map +1 -1
  90. package/dist/src/sync/state-sync.d.ts +5 -0
  91. package/dist/src/sync/state-sync.d.ts.map +1 -1
  92. package/dist/src/sync/state-sync.js +9 -2
  93. package/dist/src/sync/state-sync.js.map +1 -1
  94. package/dist/src/types/index.d.ts +73 -3
  95. package/dist/src/types/index.d.ts.map +1 -1
  96. package/dist/src/types/index.js +7 -0
  97. package/dist/src/types/index.js.map +1 -1
  98. package/dist/src/utils/hash.d.ts.map +1 -1
  99. package/dist/src/utils/hash.js +3 -3
  100. package/dist/src/utils/hash.js.map +1 -1
  101. package/package.json +5 -1
@@ -0,0 +1,524 @@
1
+ /**
2
+ * DB Bridge Service — Import/Export between external databases and NMT
3
+ * @module services/db-bridge
4
+ */
5
+ /**
6
+ * Serialize a DB row to text for embedding generation
7
+ */
8
+ function rowToText(row, tableName) {
9
+ const parts = [`[${tableName}]`];
10
+ for (const [key, value] of Object.entries(row)) {
11
+ if (value === null || value === undefined)
12
+ continue;
13
+ if (Buffer.isBuffer(value) || value instanceof Uint8Array) {
14
+ parts.push(`${key}: <binary ${value.length} bytes>`);
15
+ }
16
+ else if (typeof value === 'object') {
17
+ parts.push(`${key}: ${JSON.stringify(value)}`);
18
+ }
19
+ else {
20
+ parts.push(`${key}: ${String(value)}`);
21
+ }
22
+ }
23
+ return parts.join('\n');
24
+ }
25
+ /**
26
+ * Convert a NeuronNode to a flat DB row for export
27
+ */
28
+ function neuronToRow(neuron, includeEmbedding) {
29
+ const row = {
30
+ id: neuron.id,
31
+ merkle_root: neuron.merkleRoot,
32
+ chunk_count: neuron.chunkHashes.length,
33
+ source_type: neuron.metadata.sourceType,
34
+ neuron_type: neuron.metadata.neuronType ?? null,
35
+ importance: neuron.metadata.importance ?? null,
36
+ tags: JSON.stringify(neuron.metadata.tags),
37
+ chunk_hashes: JSON.stringify(neuron.chunkHashes),
38
+ access_count: neuron.metadata.accessCount,
39
+ created_at: neuron.metadata.createdAt,
40
+ updated_at: neuron.metadata.updatedAt,
41
+ last_accessed: neuron.metadata.lastAccessed,
42
+ };
43
+ if (includeEmbedding) {
44
+ row.embedding = Buffer.from(neuron.embedding.buffer, neuron.embedding.byteOffset, neuron.embedding.byteLength);
45
+ }
46
+ return row;
47
+ }
48
+ /**
49
+ * Convert a Synapse to a flat DB row for export
50
+ */
51
+ function synapseToRow(synapse) {
52
+ return {
53
+ id: synapse.id,
54
+ source_id: synapse.sourceId,
55
+ target_id: synapse.targetId,
56
+ type: synapse.type,
57
+ weight: synapse.weight,
58
+ bidirectional: synapse.metadata.bidirectional,
59
+ activation_count: synapse.metadata.activationCount,
60
+ created_at: synapse.metadata.createdAt,
61
+ updated_at: synapse.metadata.updatedAt,
62
+ };
63
+ }
64
+ /**
65
+ * Generate neuron table schema for export
66
+ */
67
+ function getNeuronTableSchema(tableName, includeEmbedding) {
68
+ const columns = [
69
+ { name: 'id', type: 'VARCHAR(36)', nullable: false, isPrimary: true, isForeign: false },
70
+ { name: 'merkle_root', type: 'VARCHAR(64)', nullable: false, isPrimary: false, isForeign: false },
71
+ { name: 'chunk_count', type: 'INT', nullable: false, isPrimary: false, isForeign: false },
72
+ { name: 'source_type', type: 'VARCHAR(100)', nullable: true, isPrimary: false, isForeign: false },
73
+ { name: 'neuron_type', type: 'VARCHAR(20)', nullable: true, isPrimary: false, isForeign: false },
74
+ { name: 'importance', type: 'FLOAT', nullable: true, isPrimary: false, isForeign: false },
75
+ { name: 'tags', type: 'JSON', nullable: true, isPrimary: false, isForeign: false },
76
+ { name: 'chunk_hashes', type: 'JSON', nullable: true, isPrimary: false, isForeign: false },
77
+ { name: 'access_count', type: 'INT', nullable: false, isPrimary: false, isForeign: false, defaultValue: 0 },
78
+ { name: 'created_at', type: 'TIMESTAMP', nullable: true, isPrimary: false, isForeign: false },
79
+ { name: 'updated_at', type: 'TIMESTAMP', nullable: true, isPrimary: false, isForeign: false },
80
+ { name: 'last_accessed', type: 'TIMESTAMP', nullable: true, isPrimary: false, isForeign: false },
81
+ ];
82
+ if (includeEmbedding) {
83
+ columns.splice(2, 0, {
84
+ name: 'embedding',
85
+ type: 'LONGBLOB',
86
+ nullable: true,
87
+ isPrimary: false,
88
+ isForeign: false,
89
+ });
90
+ }
91
+ return {
92
+ name: tableName,
93
+ columns,
94
+ primaryKey: ['id'],
95
+ foreignKeys: [],
96
+ rowCount: 0,
97
+ };
98
+ }
99
+ /**
100
+ * Generate synapse table schema for export
101
+ */
102
+ function getSynapseTableSchema(tableName, neuronTable) {
103
+ return {
104
+ name: tableName,
105
+ columns: [
106
+ { name: 'id', type: 'VARCHAR(36)', nullable: false, isPrimary: true, isForeign: false },
107
+ { name: 'source_id', type: 'VARCHAR(36)', nullable: false, isPrimary: false, isForeign: true, foreignTable: neuronTable, foreignColumn: 'id' },
108
+ { name: 'target_id', type: 'VARCHAR(36)', nullable: false, isPrimary: false, isForeign: true, foreignTable: neuronTable, foreignColumn: 'id' },
109
+ { name: 'type', type: 'VARCHAR(20)', nullable: false, isPrimary: false, isForeign: false },
110
+ { name: 'weight', type: 'FLOAT', nullable: false, isPrimary: false, isForeign: false },
111
+ { name: 'bidirectional', type: 'BOOLEAN', nullable: false, isPrimary: false, isForeign: false, defaultValue: false },
112
+ { name: 'activation_count', type: 'INT', nullable: false, isPrimary: false, isForeign: false, defaultValue: 0 },
113
+ { name: 'created_at', type: 'TIMESTAMP', nullable: true, isPrimary: false, isForeign: false },
114
+ { name: 'updated_at', type: 'TIMESTAMP', nullable: true, isPrimary: false, isForeign: false },
115
+ ],
116
+ primaryKey: ['id'],
117
+ foreignKeys: [
118
+ { column: 'source_id', refTable: neuronTable, refColumn: 'id' },
119
+ { column: 'target_id', refTable: neuronTable, refColumn: 'id' },
120
+ ],
121
+ rowCount: 0,
122
+ };
123
+ }
124
+ /**
125
+ * DB Bridge Service
126
+ *
127
+ * Provides bidirectional data transfer between external databases and NMT:
128
+ * - Import: DB rows → NMT neurons (via IngestionService)
129
+ * - Export: NMT neurons → DB tables/collections
130
+ */
131
+ export class DBBridgeService {
132
+ connector;
133
+ ingestionService;
134
+ neuronStore;
135
+ constructor(connector, ingestionService, neuronStore) {
136
+ this.connector = connector;
137
+ this.ingestionService = ingestionService;
138
+ this.neuronStore = neuronStore;
139
+ }
140
+ /**
141
+ * Import rows from an external DB table into NMT as neurons
142
+ */
143
+ async importTable(options) {
144
+ const startTime = Date.now();
145
+ const result = {
146
+ neuronsCreated: 0,
147
+ synapsesCreated: 0,
148
+ rowsProcessed: 0,
149
+ errors: [],
150
+ duration: 0,
151
+ sourceTable: options.table,
152
+ };
153
+ // Get table schema for metadata
154
+ const tableSchema = await this.connector.getTableSchema(options.table);
155
+ const baseTags = [
156
+ 'db-import',
157
+ options.table,
158
+ ...(options.tags ?? []),
159
+ ];
160
+ // Track PK → neuronId for FK-based synapse creation
161
+ const pkToNeuronId = new Map();
162
+ const fkRelations = [];
163
+ // Cap error list to prevent memory exhaustion on pathological inputs
164
+ const MAX_ERRORS = 1000;
165
+ // Stream rows in batches
166
+ for await (const batch of this.connector.readRows(options.table, {
167
+ limit: options.limit,
168
+ batchSize: options.batchSize ?? 1000,
169
+ })) {
170
+ for (const row of batch) {
171
+ try {
172
+ const text = rowToText(row, options.table);
173
+ const sourceType = `db:${options.table}`;
174
+ const safeRow = this.sanitizeRowForStorage(row);
175
+ const neuron = await this.ingestionService.ingestText(text, {
176
+ sourceType,
177
+ tags: baseTags,
178
+ autoConnect: options.autoConnect ?? true,
179
+ sourceRow: safeRow,
180
+ sourceColumns: tableSchema.columns.map(c => ({
181
+ name: c.name,
182
+ type: c.type,
183
+ nullable: c.nullable,
184
+ isPrimary: c.isPrimary,
185
+ isForeign: c.isForeign,
186
+ foreignTable: c.foreignTable,
187
+ foreignColumn: c.foreignColumn,
188
+ defaultValue: c.defaultValue,
189
+ autoIncrement: c.autoIncrement,
190
+ isUnique: c.isUnique,
191
+ maxLength: c.maxLength,
192
+ extra: c.extra,
193
+ })),
194
+ sourceForeignKeys: tableSchema.foreignKeys.map(fk => ({
195
+ column: fk.column,
196
+ refTable: fk.refTable,
197
+ refColumn: fk.refColumn,
198
+ })),
199
+ sourceIndexes: tableSchema.indexes?.map(idx => ({
200
+ name: idx.name,
201
+ columns: idx.columns,
202
+ unique: idx.unique,
203
+ })),
204
+ sourceChecks: tableSchema.checks?.map(chk => ({
205
+ name: chk.name,
206
+ clause: chk.clause,
207
+ })),
208
+ sourceTriggers: tableSchema.triggers?.map(trig => ({
209
+ name: trig.name,
210
+ timing: trig.timing,
211
+ event: trig.event,
212
+ body: trig.body,
213
+ })),
214
+ sourceTable: options.table,
215
+ sourceEngine: tableSchema.engine,
216
+ sourceCharset: tableSchema.charset,
217
+ });
218
+ result.neuronsCreated++;
219
+ result.rowsProcessed++;
220
+ // Track PK mapping
221
+ const pkValue = this.extractPrimaryKey(row, tableSchema);
222
+ if (pkValue) {
223
+ pkToNeuronId.set(pkValue, neuron.id);
224
+ }
225
+ // Track FK relations for later synapse creation
226
+ for (const fk of tableSchema.foreignKeys) {
227
+ const fkVal = row[fk.column];
228
+ if (fkVal !== null && fkVal !== undefined) {
229
+ fkRelations.push({
230
+ neuronId: neuron.id,
231
+ fkColumn: fk.column,
232
+ fkValue: `${fk.refTable}:${String(fkVal)}`,
233
+ });
234
+ }
235
+ }
236
+ }
237
+ catch (error) {
238
+ const msg = error instanceof Error ? error.message : String(error);
239
+ if (result.errors.length < MAX_ERRORS) {
240
+ result.errors.push(`Row ${result.rowsProcessed}: ${msg}`);
241
+ }
242
+ result.rowsProcessed++;
243
+ }
244
+ }
245
+ // Process FK synapses accumulated this batch to limit memory
246
+ if (options.autoConnect !== false && fkRelations.length > 0) {
247
+ for (const rel of fkRelations) {
248
+ const targetNeuronId = pkToNeuronId.get(rel.fkValue);
249
+ if (targetNeuronId) {
250
+ try {
251
+ await this.neuronStore.createSynapse(rel.neuronId, targetNeuronId, 'ASSOCIATIVE', 0.8, false);
252
+ result.synapsesCreated++;
253
+ }
254
+ catch {
255
+ // Synapse creation may fail if target doesn't exist yet
256
+ }
257
+ }
258
+ }
259
+ fkRelations.length = 0;
260
+ }
261
+ }
262
+ // Final pass: process any remaining FK relations from last batch
263
+ if (options.autoConnect !== false) {
264
+ for (const rel of fkRelations) {
265
+ const targetNeuronId = pkToNeuronId.get(rel.fkValue);
266
+ if (targetNeuronId) {
267
+ try {
268
+ await this.neuronStore.createSynapse(rel.neuronId, targetNeuronId, 'ASSOCIATIVE', 0.8, false);
269
+ result.synapsesCreated++;
270
+ }
271
+ catch {
272
+ // Synapse creation may fail if target doesn't exist
273
+ }
274
+ }
275
+ }
276
+ }
277
+ result.duration = Date.now() - startTime;
278
+ return result;
279
+ }
280
+ /**
281
+ * Export NMT neurons to an external DB
282
+ */
283
+ async exportNeurons(options = {}) {
284
+ const startTime = Date.now();
285
+ const result = {
286
+ neuronsExported: 0,
287
+ synapsesExported: 0,
288
+ tablesCreated: [],
289
+ duration: 0,
290
+ sourceDataRestored: 0,
291
+ };
292
+ const neuronTable = options.table ?? 'nmt_neurons';
293
+ const synapseTable = `${neuronTable}_synapses`;
294
+ const includeEmbeddings = options.includeEmbeddings ?? true;
295
+ const includeSynapses = options.includeSynapses ?? true;
296
+ const restoreSourceData = options.restoreSourceData ?? false;
297
+ // Get all neuron IDs (optionally filtered by tags)
298
+ const allIds = await this.neuronStore.getAllNeuronIds();
299
+ // Determine table schema based on mode
300
+ let tableCreated = false;
301
+ if (restoreSourceData) {
302
+ // Find first neuron with source columns to create source-schema table
303
+ for (const id of allIds) {
304
+ const neuron = await this.neuronStore.getNeuron(id);
305
+ if (neuron?.metadata.sourceColumns && neuron.metadata.sourceColumns.length > 0) {
306
+ const cols = neuron.metadata.sourceColumns;
307
+ const fks = neuron.metadata.sourceForeignKeys ?? [];
308
+ const idxs = neuron.metadata.sourceIndexes ?? [];
309
+ const sourceSchema = {
310
+ name: neuronTable,
311
+ columns: cols.map(c => ({
312
+ name: c.name,
313
+ type: c.type,
314
+ nullable: c.nullable,
315
+ isPrimary: c.isPrimary,
316
+ isForeign: c.isForeign ?? false,
317
+ foreignTable: c.foreignTable,
318
+ foreignColumn: c.foreignColumn,
319
+ defaultValue: c.defaultValue,
320
+ autoIncrement: c.autoIncrement,
321
+ isUnique: c.isUnique,
322
+ maxLength: c.maxLength,
323
+ extra: c.extra,
324
+ })),
325
+ primaryKey: cols
326
+ .filter(c => c.isPrimary)
327
+ .map(c => c.name),
328
+ foreignKeys: fks.map(fk => ({
329
+ column: fk.column,
330
+ refTable: fk.refTable,
331
+ refColumn: fk.refColumn,
332
+ })),
333
+ indexes: idxs.map(idx => ({
334
+ name: idx.name,
335
+ columns: idx.columns,
336
+ unique: idx.unique,
337
+ })),
338
+ checks: (neuron.metadata.sourceChecks ?? []).map(chk => ({
339
+ name: chk.name,
340
+ clause: chk.clause,
341
+ })),
342
+ triggers: (neuron.metadata.sourceTriggers ?? []).map(trig => ({
343
+ name: trig.name,
344
+ timing: trig.timing,
345
+ event: trig.event,
346
+ body: trig.body,
347
+ })),
348
+ engine: neuron.metadata.sourceEngine,
349
+ charset: neuron.metadata.sourceCharset,
350
+ rowCount: 0,
351
+ };
352
+ if (!(await this.connector.tableExists(neuronTable))) {
353
+ await this.connector.createTable(sourceSchema);
354
+ result.tablesCreated.push(neuronTable);
355
+ }
356
+ tableCreated = true;
357
+ break;
358
+ }
359
+ }
360
+ }
361
+ // Fallback to neuron metadata schema
362
+ if (!tableCreated) {
363
+ const neuronSchema = getNeuronTableSchema(neuronTable, includeEmbeddings);
364
+ if (!(await this.connector.tableExists(neuronTable))) {
365
+ await this.connector.createTable(neuronSchema);
366
+ result.tablesCreated.push(neuronTable);
367
+ }
368
+ }
369
+ // Export neurons in batches
370
+ const batchSize = 500;
371
+ const neuronRows = [];
372
+ const synapseIds = new Set();
373
+ // When restoreSourceData is on, non-source neurons go to a separate fallback table
374
+ const fallbackTable = `${neuronTable}_nmt_meta`;
375
+ const fallbackRows = [];
376
+ let fallbackTableCreated = false;
377
+ for (const id of allIds) {
378
+ const neuron = await this.neuronStore.getNeuron(id);
379
+ if (!neuron)
380
+ continue;
381
+ // Filter by tags if specified
382
+ if (options.tags && options.tags.length > 0) {
383
+ const hasTags = options.tags.some((t) => neuron.metadata.tags.includes(t));
384
+ if (!hasTags)
385
+ continue;
386
+ }
387
+ // Use source data if available and requested
388
+ if (restoreSourceData && neuron.metadata.sourceRow) {
389
+ neuronRows.push(this.desanitizeRow(neuron.metadata.sourceRow));
390
+ result.sourceDataRestored++;
391
+ }
392
+ else if (restoreSourceData && tableCreated) {
393
+ // Source-schema table active but this neuron has no sourceRow — send to fallback
394
+ if (!fallbackTableCreated) {
395
+ const fbSchema = getNeuronTableSchema(fallbackTable, includeEmbeddings);
396
+ if (!(await this.connector.tableExists(fallbackTable))) {
397
+ await this.connector.createTable(fbSchema);
398
+ result.tablesCreated.push(fallbackTable);
399
+ }
400
+ fallbackTableCreated = true;
401
+ }
402
+ fallbackRows.push(neuronToRow(neuron, includeEmbeddings));
403
+ }
404
+ else {
405
+ neuronRows.push(neuronToRow(neuron, includeEmbeddings));
406
+ }
407
+ // Collect synapse IDs
408
+ if (includeSynapses) {
409
+ for (const synId of neuron.outgoingSynapses) {
410
+ synapseIds.add(synId);
411
+ }
412
+ }
413
+ // Flush source rows batch
414
+ if (neuronRows.length >= batchSize) {
415
+ await this.connector.writeRows(neuronTable, neuronRows);
416
+ result.neuronsExported += neuronRows.length;
417
+ neuronRows.length = 0;
418
+ }
419
+ // Flush fallback rows batch
420
+ if (fallbackRows.length >= batchSize) {
421
+ await this.connector.writeRows(fallbackTable, fallbackRows);
422
+ result.neuronsExported += fallbackRows.length;
423
+ fallbackRows.length = 0;
424
+ }
425
+ if (options.limit && result.neuronsExported >= options.limit)
426
+ break;
427
+ }
428
+ // Flush remaining source rows
429
+ if (neuronRows.length > 0) {
430
+ await this.connector.writeRows(neuronTable, neuronRows);
431
+ result.neuronsExported += neuronRows.length;
432
+ }
433
+ // Flush remaining fallback rows
434
+ if (fallbackRows.length > 0) {
435
+ await this.connector.writeRows(fallbackTable, fallbackRows);
436
+ result.neuronsExported += fallbackRows.length;
437
+ }
438
+ // Export synapses
439
+ if (includeSynapses && synapseIds.size > 0) {
440
+ const synSchema = getSynapseTableSchema(synapseTable, neuronTable);
441
+ if (!(await this.connector.tableExists(synapseTable))) {
442
+ await this.connector.createTable(synSchema);
443
+ result.tablesCreated.push(synapseTable);
444
+ }
445
+ const synapseRows = [];
446
+ for (const synId of synapseIds) {
447
+ const synapse = await this.neuronStore.getSynapse(synId);
448
+ if (!synapse)
449
+ continue;
450
+ synapseRows.push(synapseToRow(synapse));
451
+ if (synapseRows.length >= batchSize) {
452
+ await this.connector.writeRows(synapseTable, synapseRows);
453
+ result.synapsesExported += synapseRows.length;
454
+ synapseRows.length = 0;
455
+ }
456
+ }
457
+ if (synapseRows.length > 0) {
458
+ await this.connector.writeRows(synapseTable, synapseRows);
459
+ result.synapsesExported += synapseRows.length;
460
+ }
461
+ }
462
+ result.duration = Date.now() - startTime;
463
+ return result;
464
+ }
465
+ /**
466
+ * Analyze the external database schema
467
+ */
468
+ async analyzeSchema() {
469
+ return this.connector.getSchema();
470
+ }
471
+ /**
472
+ * Extract primary key value from a row
473
+ */
474
+ extractPrimaryKey(row, schema) {
475
+ if (schema.primaryKey.length === 0)
476
+ return null;
477
+ const parts = schema.primaryKey.map((pk) => String(row[pk] ?? ''));
478
+ return `${schema.name}:${parts.join(':')}`;
479
+ }
480
+ /**
481
+ * Sanitize a DB row for JSON-safe storage in neuron metadata.
482
+ * Converts Buffer/Date to tagged objects for lossless round-trip.
483
+ */
484
+ sanitizeRowForStorage(row) {
485
+ const result = {};
486
+ for (const [key, value] of Object.entries(row)) {
487
+ if (Buffer.isBuffer(value) || value instanceof Uint8Array) {
488
+ result[key] = { __binary: true, data: Buffer.from(value).toString('base64') };
489
+ }
490
+ else if (value instanceof Date) {
491
+ result[key] = { __date: true, data: value.toISOString() };
492
+ }
493
+ else {
494
+ result[key] = value;
495
+ }
496
+ }
497
+ return result;
498
+ }
499
+ /**
500
+ * Restore a sanitized row back to its original types.
501
+ */
502
+ desanitizeRow(row) {
503
+ const result = {};
504
+ for (const [key, value] of Object.entries(row)) {
505
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
506
+ const obj = value;
507
+ if (obj.__binary && typeof obj.data === 'string') {
508
+ result[key] = Buffer.from(obj.data, 'base64');
509
+ }
510
+ else if (obj.__date && typeof obj.data === 'string') {
511
+ result[key] = new Date(obj.data);
512
+ }
513
+ else {
514
+ result[key] = value;
515
+ }
516
+ }
517
+ else {
518
+ result[key] = value;
519
+ }
520
+ }
521
+ return result;
522
+ }
523
+ }
524
+ //# sourceMappingURL=db-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-bridge.js","sourceRoot":"","sources":["../../../src/services/db-bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH;;GAEG;AACH,SAAS,SAAS,CAAC,GAAU,EAAE,SAAiB;IAC9C,MAAM,KAAK,GAAa,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QACpD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,aAAc,KAAgB,CAAC,MAAM,SAAS,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,MAAkB,EAClB,gBAAyB;IAEzB,MAAM,GAAG,GAAU;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;QACtC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;QACvC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI;QAC/C,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI;QAC9C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1C,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;QAChD,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;QACzC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;QACrC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;QACrC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY;KAC5C,CAAC;IAEF,IAAI,gBAAgB,EAAE,CAAC;QACrB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CACzB,MAAM,CAAC,SAAS,CAAC,MAAM,EACvB,MAAM,CAAC,SAAS,CAAC,UAAU,EAC3B,MAAM,CAAC,SAAS,CAAC,UAAU,CAC5B,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAgB;IACpC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,SAAS,EAAE,OAAO,CAAC,QAAQ;QAC3B,SAAS,EAAE,OAAO,CAAC,QAAQ;QAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa;QAC7C,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,eAAe;QAClD,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;QACtC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,SAAiB,EACjB,gBAAyB;IAEzB,MAAM,OAAO,GAAmB;QAC9B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;QACvF,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QACjG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QACzF,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QACjG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QAChG,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QACzF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QAClF,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QAC1F,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE;QAC3G,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QAC7F,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QAC7F,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;KACjG,CAAC;IAEF,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;YACnB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO;QACP,UAAU,EAAE,CAAC,IAAI,CAAC;QAClB,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,SAAiB,EAAE,WAAmB;IACnE,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;YACvF,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE;YAC9I,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE;YAC9I,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;YAC1F,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;YACtF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;YACpH,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE;YAC/G,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;YAC7F,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;SAC9F;QACD,UAAU,EAAE,CAAC,IAAI,CAAC;QAClB,WAAW,EAAE;YACX,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;YAC/D,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;SAChE;QACD,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IAClB,SAAS,CAAe;IACxB,gBAAgB,CAAmB;IACnC,WAAW,CAAe;IAElC,YACE,SAAuB,EACvB,gBAAkC,EAClC,WAAyB;QAEzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAsB;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAiB;YAC3B,cAAc,EAAE,CAAC;YACjB,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,OAAO,CAAC,KAAK;SAC3B,CAAC;QAEF,gCAAgC;QAChC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG;YACf,WAAW;YACX,OAAO,CAAC,KAAK;YACb,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;SACxB,CAAC;QAEF,oDAAoD;QACpD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAgB,CAAC;QAC7C,MAAM,WAAW,GAAiE,EAAE,CAAC;QAErF,qEAAqE;QACrE,MAAM,UAAU,GAAG,IAAI,CAAC;QAExB,yBAAyB;QACzB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;YAC/D,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;SACrC,CAAC,EAAE,CAAC;YACH,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC3C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;oBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;oBAEhD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE;wBAC1D,UAAU;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;wBACxC,SAAS,EAAE,OAAO;wBAClB,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC3C,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;4BACpB,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,YAAY,EAAE,CAAC,CAAC,YAAY;4BAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;4BAC9B,YAAY,EAAE,CAAC,CAAC,YAAY;4BAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;4BAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;4BACpB,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,KAAK,EAAE,CAAC,CAAC,KAAK;yBACf,CAAC,CAAC;wBACH,iBAAiB,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BACpD,MAAM,EAAE,EAAE,CAAC,MAAM;4BACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ;4BACrB,SAAS,EAAE,EAAE,CAAC,SAAS;yBACxB,CAAC,CAAC;wBACH,aAAa,EAAE,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAC9C,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,MAAM,EAAE,GAAG,CAAC,MAAM;yBACnB,CAAC,CAAC;wBACH,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAC5C,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,MAAM,EAAE,GAAG,CAAC,MAAM;yBACnB,CAAC,CAAC;wBACH,cAAc,EAAE,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BACjD,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,IAAI,EAAE,IAAI,CAAC,IAAI;yBAChB,CAAC,CAAC;wBACH,WAAW,EAAE,OAAO,CAAC,KAAK;wBAC1B,YAAY,EAAE,WAAW,CAAC,MAAM;wBAChC,aAAa,EAAE,WAAW,CAAC,OAAO;qBACnC,CAAC,CAAC;oBAEH,MAAM,CAAC,cAAc,EAAE,CAAC;oBACxB,MAAM,CAAC,aAAa,EAAE,CAAC;oBAEvB,mBAAmB;oBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;oBACzD,IAAI,OAAO,EAAE,CAAC;wBACZ,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;oBACvC,CAAC;oBAED,gDAAgD;oBAChD,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;wBACzC,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;wBAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;4BAC1C,WAAW,CAAC,IAAI,CAAC;gCACf,QAAQ,EAAE,MAAM,CAAC,EAAE;gCACnB,QAAQ,EAAE,EAAE,CAAC,MAAM;gCACnB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;6BAC3C,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;wBACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,aAAa,KAAK,GAAG,EAAE,CAAC,CAAC;oBAC5D,CAAC;oBACD,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,6DAA6D;YAC7D,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC9B,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACrD,IAAI,cAAc,EAAE,CAAC;wBACnB,IAAI,CAAC;4BACH,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAClC,GAAG,CAAC,QAAQ,EACZ,cAAc,EACd,aAAa,EACb,GAAG,EACH,KAAK,CACN,CAAC;4BACF,MAAM,CAAC,eAAe,EAAE,CAAC;wBAC3B,CAAC;wBAAC,MAAM,CAAC;4BACP,wDAAwD;wBAC1D,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrD,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAClC,GAAG,CAAC,QAAQ,EACZ,cAAc,EACd,aAAa,EACb,GAAG,EACH,KAAK,CACN,CAAC;wBACF,MAAM,CAAC,eAAe,EAAE,CAAC;oBAC3B,CAAC;oBAAC,MAAM,CAAC;wBACP,oDAAoD;oBACtD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,UAAyB,EAAE;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAiB;YAC3B,eAAe,EAAE,CAAC;YAClB,gBAAgB,EAAE,CAAC;YACnB,aAAa,EAAE,EAAE;YACjB,QAAQ,EAAE,CAAC;YACX,kBAAkB,EAAE,CAAC;SACtB,CAAC;QAEF,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;QACnD,MAAM,YAAY,GAAG,GAAG,WAAW,WAAW,CAAC;QAC/C,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC;QAC5D,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;QACxD,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAC;QAE7D,mDAAmD;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAExD,uCAAuC;QACvC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,iBAAiB,EAAE,CAAC;YACtB,sEAAsE;YACtE,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACpD,IAAI,MAAM,EAAE,QAAQ,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;oBAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,IAAI,EAAE,CAAC;oBACpD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC;oBACjD,MAAM,YAAY,GAAgB;wBAChC,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACtB,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;4BACpB,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,KAAK;4BAC/B,YAAY,EAAE,CAAC,CAAC,YAAY;4BAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;4BAC9B,YAAY,EAAE,CAAC,CAAC,YAAY;4BAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;4BAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;4BACpB,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,KAAK,EAAE,CAAC,CAAC,KAAK;yBACf,CAAC,CAAC;wBACH,UAAU,EAAE,IAAI;6BACb,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;6BACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACnB,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BAC1B,MAAM,EAAE,EAAE,CAAC,MAAM;4BACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ;4BACrB,SAAS,EAAE,EAAE,CAAC,SAAS;yBACxB,CAAC,CAAC;wBACH,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BACxB,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,MAAM,EAAE,GAAG,CAAC,MAAM;yBACnB,CAAC,CAAC;wBACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BACvD,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,MAAM,EAAE,GAAG,CAAC,MAAM;yBACnB,CAAC,CAAC;wBACH,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAC5D,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,IAAI,EAAE,IAAI,CAAC,IAAI;yBAChB,CAAC,CAAC;wBACH,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY;wBACpC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;wBACtC,QAAQ,EAAE,CAAC;qBACZ,CAAC;oBACF,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;wBACrD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;wBAC/C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACzC,CAAC;oBACD,YAAY,GAAG,IAAI,CAAC;oBACpB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAC1E,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gBACrD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC/C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,MAAM,SAAS,GAAG,GAAG,CAAC;QACtB,MAAM,UAAU,GAAY,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAQ,CAAC;QAEnC,mFAAmF;QACnF,MAAM,aAAa,GAAG,GAAG,WAAW,WAAW,CAAC;QAChD,MAAM,YAAY,GAAY,EAAE,CAAC;QACjC,IAAI,oBAAoB,GAAG,KAAK,CAAC;QAEjC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,8BAA8B;YAC9B,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjC,CAAC;gBACF,IAAI,CAAC,OAAO;oBAAE,SAAS;YACzB,CAAC;YAED,6CAA6C;YAC7C,IAAI,iBAAiB,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACnD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC/D,MAAM,CAAC,kBAAmB,EAAE,CAAC;YAC/B,CAAC;iBAAM,IAAI,iBAAiB,IAAI,YAAY,EAAE,CAAC;gBAC7C,iFAAiF;gBACjF,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;oBACxE,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;wBACvD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAC3C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC3C,CAAC;oBACD,oBAAoB,GAAG,IAAI,CAAC;gBAC9B,CAAC;gBACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAC1D,CAAC;YAED,sBAAsB;YACtB,IAAI,eAAe,EAAE,CAAC;gBACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBAC5C,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,0BAA0B;YAC1B,IAAI,UAAU,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBACxD,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC,MAAM,CAAC;gBAC5C,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACxB,CAAC;YAED,4BAA4B;YAC5B,IAAI,YAAY,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;gBAC5D,MAAM,CAAC,eAAe,IAAI,YAAY,CAAC,MAAM,CAAC;gBAC9C,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC,KAAK;gBAAE,MAAM;QACtE,CAAC;QAED,8BAA8B;QAC9B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACxD,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC,MAAM,CAAC;QAC9C,CAAC;QAED,gCAAgC;QAChC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAC5D,MAAM,CAAC,eAAe,IAAI,YAAY,CAAC,MAAM,CAAC;QAChD,CAAC;QAED,kBAAkB;QAClB,IAAI,eAAe,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,qBAAqB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACnE,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC5C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,WAAW,GAAY,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzD,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAEvB,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;gBAExC,IAAI,WAAW,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;oBACpC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;oBAC1D,MAAM,CAAC,gBAAgB,IAAI,WAAW,CAAC,MAAM,CAAC;oBAC9C,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;gBAC1D,MAAM,CAAC,gBAAgB,IAAI,WAAW,CAAC,MAAM,CAAC;YAChD,CAAC;QACH,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,GAAU,EAAE,MAAmB;QACvD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEhD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAAC,GAAU;QACtC,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;gBAC1D,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChF,CAAC;iBAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,GAA4B;QAChD,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,MAAM,GAAG,GAAG,KAAgC,CAAC;gBAC7C,IAAI,GAAG,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACjD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAChD,CAAC;qBAAM,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -23,6 +23,8 @@ export interface IEmbeddingProvider {
23
23
  export declare class XenovaEmbeddingProvider implements IEmbeddingProvider {
24
24
  private ready;
25
25
  private initPromise;
26
+ private cache;
27
+ private readonly maxCacheSize;
26
28
  /**
27
29
  * Initialize the provider (lazy)
28
30
  */
@@ -32,11 +34,19 @@ export declare class XenovaEmbeddingProvider implements IEmbeddingProvider {
32
34
  */
33
35
  isReady(): boolean;
34
36
  /**
35
- * Generate embedding for a single text
37
+ * Generate embedding for a single text (with SHA-256 cache)
36
38
  */
37
39
  embed(text: string): Promise<Embedding384>;
40
+ /**
41
+ * Internal embedding computation (no cache)
42
+ * Handles long texts by splitting into overlapping word chunks and mean-pooling.
43
+ * all-MiniLM-L6-v2 has a 256-token limit (~180 words). Texts exceeding this
44
+ * are chunked with 50-word overlap and the resulting embeddings are averaged.
45
+ */
46
+ private _embed;
38
47
  /**
39
48
  * Generate embeddings for multiple texts (batched)
49
+ * Uses the same long-text chunking logic as embed() for each text.
40
50
  */
41
51
  embedBatch(texts: string[]): Promise<Embedding384[]>;
42
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-provider.d.ts","sourceRoot":"","sources":["../../../src/services/embedding-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACrD,OAAO,IAAI,OAAO,CAAC;CACpB;AAyBD;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,WAAW,CAA8B;IAEjD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAehD;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAyB3D;AAED;;;;;GAKG;AACH,qBAAa,8BAA+B,YAAW,kBAAkB;IACvE,OAAO,IAAI,OAAO;IAIZ,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA6B1C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAG3D;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,uBAAuB,CAK3D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,8BAA8B,CAKzE;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CASxE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAGpE"}
1
+ {"version":3,"file":"embedding-provider.d.ts","sourceRoot":"","sources":["../../../src/services/embedding-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACrD,OAAO,IAAI,OAAO,CAAC;CACpB;AAyBD;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IAErC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAchD;;;;;OAKG;YACW,MAAM;IAgEpB;;;OAGG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAQ3D;AAED;;;;;GAKG;AACH,qBAAa,8BAA+B,YAAW,kBAAkB;IACvE,OAAO,IAAI,OAAO;IAIZ,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA6B1C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAG3D;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,uBAAuB,CAK3D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,8BAA8B,CAKzE;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CASxE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAGpE"}