@ssmeo/mcp-local-rag 0.18.14 → 0.19.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 (158) hide show
  1. package/README.de.md +248 -215
  2. package/README.es.md +241 -215
  3. package/README.fr.md +249 -215
  4. package/README.md +207 -297
  5. package/README.pt-BR.md +236 -215
  6. package/README.zh-CN.md +133 -206
  7. package/dist/chunker/semantic-chunker.d.ts +23 -5
  8. package/dist/chunker/semantic-chunker.d.ts.map +1 -1
  9. package/dist/chunker/semantic-chunker.js +13 -5
  10. package/dist/chunker/semantic-chunker.js.map +1 -1
  11. package/dist/cli/common.d.ts +7 -0
  12. package/dist/cli/common.d.ts.map +1 -1
  13. package/dist/cli/common.js +26 -2
  14. package/dist/cli/common.js.map +1 -1
  15. package/dist/cli/delete.d.ts.map +1 -1
  16. package/dist/cli/delete.js +2 -0
  17. package/dist/cli/delete.js.map +1 -1
  18. package/dist/cli/file-collection.d.ts +2 -1
  19. package/dist/cli/file-collection.d.ts.map +1 -1
  20. package/dist/cli/file-collection.js +2 -2
  21. package/dist/cli/file-collection.js.map +1 -1
  22. package/dist/cli/ingest.d.ts +1 -0
  23. package/dist/cli/ingest.d.ts.map +1 -1
  24. package/dist/cli/ingest.js +45 -25
  25. package/dist/cli/ingest.js.map +1 -1
  26. package/dist/cli/list.d.ts.map +1 -1
  27. package/dist/cli/list.js +9 -13
  28. package/dist/cli/list.js.map +1 -1
  29. package/dist/cli/options.d.ts +8 -0
  30. package/dist/cli/options.d.ts.map +1 -1
  31. package/dist/cli/options.js +21 -0
  32. package/dist/cli/options.js.map +1 -1
  33. package/dist/cli/query.d.ts.map +1 -1
  34. package/dist/cli/query.js +2 -1
  35. package/dist/cli/query.js.map +1 -1
  36. package/dist/cli/read-neighbors.d.ts.map +1 -1
  37. package/dist/cli/read-neighbors.js +1 -0
  38. package/dist/cli/read-neighbors.js.map +1 -1
  39. package/dist/cli/relocate.d.ts +3 -0
  40. package/dist/cli/relocate.d.ts.map +1 -0
  41. package/dist/cli/relocate.js +135 -0
  42. package/dist/cli/relocate.js.map +1 -0
  43. package/dist/cli/sync.d.ts.map +1 -1
  44. package/dist/cli/sync.js +17 -8
  45. package/dist/cli/sync.js.map +1 -1
  46. package/dist/cli-main.d.ts +1 -1
  47. package/dist/cli-main.d.ts.map +1 -1
  48. package/dist/cli-main.js +5 -0
  49. package/dist/cli-main.js.map +1 -1
  50. package/dist/embedder/embedding-snapshot.d.ts +52 -0
  51. package/dist/embedder/embedding-snapshot.d.ts.map +1 -0
  52. package/dist/embedder/embedding-snapshot.js +413 -0
  53. package/dist/embedder/embedding-snapshot.js.map +1 -0
  54. package/dist/embedder/index.d.ts +36 -5
  55. package/dist/embedder/index.d.ts.map +1 -1
  56. package/dist/embedder/index.js +346 -23
  57. package/dist/embedder/index.js.map +1 -1
  58. package/dist/embedder/remote.d.ts +16 -2
  59. package/dist/embedder/remote.d.ts.map +1 -1
  60. package/dist/embedder/remote.js +48 -11
  61. package/dist/embedder/remote.js.map +1 -1
  62. package/dist/embedder/sentence-transformers-config.d.ts +24 -0
  63. package/dist/embedder/sentence-transformers-config.d.ts.map +1 -0
  64. package/dist/embedder/sentence-transformers-config.js +93 -0
  65. package/dist/embedder/sentence-transformers-config.js.map +1 -0
  66. package/dist/features/sync.js +1 -1
  67. package/dist/features/sync.js.map +1 -1
  68. package/dist/ingest/compute.d.ts +15 -7
  69. package/dist/ingest/compute.d.ts.map +1 -1
  70. package/dist/ingest/compute.js +74 -14
  71. package/dist/ingest/compute.js.map +1 -1
  72. package/dist/ingest/file.d.ts +3 -3
  73. package/dist/ingest/file.d.ts.map +1 -1
  74. package/dist/ingest/file.js +0 -5
  75. package/dist/ingest/file.js.map +1 -1
  76. package/dist/ingest/visual.d.ts +6 -2
  77. package/dist/ingest/visual.d.ts.map +1 -1
  78. package/dist/ingest/visual.js +20 -4
  79. package/dist/ingest/visual.js.map +1 -1
  80. package/dist/parser/docx-parser.d.ts +2 -0
  81. package/dist/parser/docx-parser.d.ts.map +1 -1
  82. package/dist/parser/docx-parser.js +12 -3
  83. package/dist/parser/docx-parser.js.map +1 -1
  84. package/dist/parser/index.d.ts +11 -1
  85. package/dist/parser/index.d.ts.map +1 -1
  86. package/dist/parser/index.js +27 -11
  87. package/dist/parser/index.js.map +1 -1
  88. package/dist/parser/pdf-extract.d.ts +2 -0
  89. package/dist/parser/pdf-extract.d.ts.map +1 -1
  90. package/dist/parser/pdf-extract.js +3 -0
  91. package/dist/parser/pdf-extract.js.map +1 -1
  92. package/dist/parser/pdf-filter.d.ts +2 -9
  93. package/dist/parser/pdf-filter.d.ts.map +1 -1
  94. package/dist/parser/pdf-filter.js +110 -144
  95. package/dist/parser/pdf-filter.js.map +1 -1
  96. package/dist/parser/pdf-headings.d.ts +6 -0
  97. package/dist/parser/pdf-headings.d.ts.map +1 -0
  98. package/dist/parser/pdf-headings.js +166 -0
  99. package/dist/parser/pdf-headings.js.map +1 -0
  100. package/dist/parser/text-source-map.d.ts +3 -0
  101. package/dist/parser/text-source-map.d.ts.map +1 -0
  102. package/dist/parser/text-source-map.js +33 -0
  103. package/dist/parser/text-source-map.js.map +1 -0
  104. package/dist/pdf-visual/detector.js +3 -3
  105. package/dist/pdf-visual/detector.js.map +1 -1
  106. package/dist/rerank/command.d.ts +10 -7
  107. package/dist/rerank/command.d.ts.map +1 -1
  108. package/dist/rerank/command.js +51 -10
  109. package/dist/rerank/command.js.map +1 -1
  110. package/dist/rerank/index.d.ts +3 -3
  111. package/dist/rerank/index.d.ts.map +1 -1
  112. package/dist/rerank/index.js +3 -3
  113. package/dist/rerank/index.js.map +1 -1
  114. package/dist/server/index.d.ts +4 -1
  115. package/dist/server/index.d.ts.map +1 -1
  116. package/dist/server/index.js +114 -79
  117. package/dist/server/index.js.map +1 -1
  118. package/dist/server/list-scanner.d.ts +2 -1
  119. package/dist/server/list-scanner.d.ts.map +1 -1
  120. package/dist/server/list-scanner.js +2 -2
  121. package/dist/server/list-scanner.js.map +1 -1
  122. package/dist/server/tool-definitions.js +2 -2
  123. package/dist/server/tool-definitions.js.map +1 -1
  124. package/dist/server/types.d.ts +9 -0
  125. package/dist/server/types.d.ts.map +1 -1
  126. package/dist/server-main.d.ts +2 -2
  127. package/dist/server-main.d.ts.map +1 -1
  128. package/dist/server-main.js +22 -20
  129. package/dist/server-main.js.map +1 -1
  130. package/dist/utils/base-dirs.d.ts +9 -10
  131. package/dist/utils/base-dirs.d.ts.map +1 -1
  132. package/dist/utils/base-dirs.js +28 -30
  133. package/dist/utils/base-dirs.js.map +1 -1
  134. package/dist/utils/scan.d.ts +25 -5
  135. package/dist/utils/scan.d.ts.map +1 -1
  136. package/dist/utils/scan.js +40 -10
  137. package/dist/utils/scan.js.map +1 -1
  138. package/dist/utils/source-context.d.ts +29 -0
  139. package/dist/utils/source-context.d.ts.map +1 -0
  140. package/dist/utils/source-context.js +86 -0
  141. package/dist/utils/source-context.js.map +1 -0
  142. package/dist/utils/sync-path-key.d.ts +1 -1
  143. package/dist/utils/sync-path-key.d.ts.map +1 -1
  144. package/dist/utils/sync-path-key.js +1 -1
  145. package/dist/utils/sync-path-key.js.map +1 -1
  146. package/dist/vectordb/index.d.ts +4 -2
  147. package/dist/vectordb/index.d.ts.map +1 -1
  148. package/dist/vectordb/index.js +30 -7
  149. package/dist/vectordb/index.js.map +1 -1
  150. package/dist/vectordb/relocate.d.ts +18 -0
  151. package/dist/vectordb/relocate.d.ts.map +1 -0
  152. package/dist/vectordb/relocate.js +179 -0
  153. package/dist/vectordb/relocate.js.map +1 -0
  154. package/dist/vectordb/types.d.ts +10 -23
  155. package/dist/vectordb/types.d.ts.map +1 -1
  156. package/dist/vectordb/types.js +14 -23
  157. package/dist/vectordb/types.js.map +1 -1
  158. package/package.json +14 -14
@@ -1,11 +1,64 @@
1
1
  // Embedder implementation with Transformers.js
2
- import { env, ModelRegistry, pipeline, } from '@huggingface/transformers';
2
+ import { createHash } from 'node:crypto';
3
+ import { createReadStream } from 'node:fs';
4
+ import { readFile, stat } from 'node:fs/promises';
5
+ import { createRequire } from 'node:module';
6
+ import { dirname, isAbsolute, join, resolve } from 'node:path';
7
+ import { serialize } from 'node:v8';
8
+ import { AutoConfig, env, ModelRegistry, pipeline, } from '@huggingface/transformers';
3
9
  import { AppError, toError } from '../utils/errors.js';
4
10
  import { isObjectLike } from '../utils/type-guards.js';
11
+ import { loadSentenceTransformersConfig, resolveModelSettings, } from './sentence-transformers-config.js';
12
+ const EMBEDDING_IMPLEMENTATION_VERSION = 1;
13
+ const require = createRequire(import.meta.url);
14
+ const transformersRequire = createRequire(require.resolve('@huggingface/transformers'));
15
+ let runtimeVersionsPromise = null;
5
16
  /** True when the loaded pipeline exposes the call and tokenizer surface used here. */
6
17
  function isEmbeddingPipeline(value) {
7
18
  return (typeof value === 'function' && 'tokenizer' in value && typeof value.tokenizer === 'function');
8
19
  }
20
+ function isPretrainedConfig(value) {
21
+ return (typeof value === 'object' &&
22
+ value !== null &&
23
+ 'model_type' in value &&
24
+ (typeof value.model_type === 'string' || value.model_type === null) &&
25
+ 'is_encoder_decoder' in value &&
26
+ typeof value.is_encoder_decoder === 'boolean' &&
27
+ 'transformers.js_config' in value &&
28
+ (value['transformers.js_config'] === undefined ||
29
+ (typeof value['transformers.js_config'] === 'object' &&
30
+ value['transformers.js_config'] !== null)) &&
31
+ 'normalized_config' in value);
32
+ }
33
+ function embeddingDimension(loadedModel) {
34
+ const dimension = loadedModel.model?.config?.hidden_size ?? declaredHiddenStateWidth(loadedModel);
35
+ return typeof dimension === 'number' && Number.isInteger(dimension) && dimension > 0
36
+ ? dimension
37
+ : null;
38
+ }
39
+ // A nested `text_config.hidden_size` can differ from the output width.
40
+ function declaredHiddenStateWidth(loadedModel) {
41
+ const sessions = loadedModel.model?.sessions;
42
+ const session = isObjectLike(sessions) ? sessions['model'] : undefined;
43
+ const outputs = isObjectLike(session) ? session['outputMetadata'] : undefined;
44
+ if (!Array.isArray(outputs)) {
45
+ return undefined;
46
+ }
47
+ const hiddenState = outputs.find((output) => isObjectLike(output) && output['name'] === 'last_hidden_state');
48
+ const shape = isObjectLike(hiddenState) ? hiddenState['shape'] : undefined;
49
+ return Array.isArray(shape) ? shape.at(-1) : undefined;
50
+ }
51
+ async function statOrNull(filePath) {
52
+ try {
53
+ return await stat(filePath, { bigint: true });
54
+ }
55
+ catch {
56
+ return null;
57
+ }
58
+ }
59
+ function statSignature(info) {
60
+ return [info.dev, info.ino, info.size, info.mtimeNs, info.ctimeNs].join(':');
61
+ }
9
62
  // ============================================
10
63
  // Token Limit Clamp
11
64
  // ============================================
@@ -25,7 +78,11 @@ function usableTokenLimit(value) {
25
78
  return value >= 1 && value <= MAX_PLAUSIBLE_TOKENS ? Math.floor(value) : null;
26
79
  }
27
80
  function readPositionWindow(candidate) {
28
- return usableTokenLimit(candidate.model?.config?.max_position_embeddings);
81
+ const config = candidate.model?.config;
82
+ // Multimodal models nest the text window under `text_config`.
83
+ const textConfig = config?.text_config;
84
+ const nestedWindow = isObjectLike(textConfig) ? textConfig['max_position_embeddings'] : undefined;
85
+ return usableTokenLimit(config?.max_position_embeddings ?? nestedWindow);
29
86
  }
30
87
  function resolveEffectiveCap(positionWindow, tokenizerLimit) {
31
88
  if (positionWindow === null) {
@@ -149,10 +206,23 @@ export class Embedder {
149
206
  */
150
207
  truncationWarned = false;
151
208
  degradedModeWarned = false;
209
+ prompts = { query: '', document: '', default: '' };
210
+ warnings = [];
152
211
  config;
212
+ computationIdentityPromise = null;
153
213
  constructor(config) {
154
214
  this.config = config;
155
215
  }
216
+ get headingPrefix() {
217
+ return this.config.headingPrefix ?? false;
218
+ }
219
+ get titlePrefix() {
220
+ return this.config.titlePrefix ?? false;
221
+ }
222
+ /** Model settings this tool cannot honor; empty until the model loads. */
223
+ get modelWarnings() {
224
+ return this.warnings;
225
+ }
156
226
  /**
157
227
  * Release resources held by the Embedder pipeline
158
228
  */
@@ -171,6 +241,7 @@ export class Embedder {
171
241
  this.initPromise = null;
172
242
  this.tokenLimit = null;
173
243
  this.measurementTokenizer = null;
244
+ this.computationIdentityPromise = null;
174
245
  }
175
246
  /**
176
247
  * Initialize Transformers.js model
@@ -180,6 +251,7 @@ export class Embedder {
180
251
  if (this.model) {
181
252
  return;
182
253
  }
254
+ this.computationIdentityPromise = null;
183
255
  // Set cache + local-model directories BEFORE creating pipeline. transformers
184
256
  // >=4.3 resolves models through env.localModelPath (its default is a path
185
257
  // inside node_modules), not env.cacheDir — without this, every fresh
@@ -190,21 +262,45 @@ export class Embedder {
190
262
  env.remoteHost = process.env['HF_ENDPOINT'];
191
263
  }
192
264
  // No fallback — if the requested device fails, init throws.
193
- const device = this.config.device || 'cpu';
265
+ // The sole fp32 default literal. Both values pass through un-allowlisted
266
+ // (see `resolveDevice`) into a closed literal union.
267
+ // biome-ignore lint/nursery/noUnsafeTypeAssertion: un-allowlisted passthrough to a closed literal union
268
+ const device = (this.config.device || 'cpu');
269
+ // biome-ignore lint/nursery/noUnsafeTypeAssertion: un-allowlisted passthrough to a closed literal union
270
+ const dtype = (this.config.dtype ?? 'fp32');
194
271
  console.error(`Embedder: Setting cache directory to "${this.config.cacheDir}"`);
272
+ // Resolved before the pipeline: once `this.model` is set, `ensureInitialized`
273
+ // lets callers through, so no await may follow that assignment.
274
+ const sentenceTransformersConfig = await loadSentenceTransformersConfig(this.config.modelPath, this.config.cacheDir, { dtype, device });
275
+ const settings = resolveModelSettings(this.config.modelPath, sentenceTransformersConfig);
276
+ for (const warning of settings.warnings) {
277
+ console.error(`Embedder: ${warning}`);
278
+ }
279
+ this.prompts = settings.prompts;
280
+ this.warnings = settings.warnings;
195
281
  console.error(`Embedder: Loading model "${this.config.modelPath}" on device "${device}"...`);
196
282
  try {
197
- this.model = await pipeline('feature-extraction', this.config.modelPath, {
198
- // The sole fp32 default literal. Both values pass through
199
- // un-allowlisted (see `resolveDevice`) into a closed literal union.
200
- // biome-ignore lint/nursery/noUnsafeTypeAssertion: un-allowlisted passthrough to a closed literal union
201
- dtype: (this.config.dtype ?? 'fp32'),
202
- // biome-ignore lint/nursery/noUnsafeTypeAssertion: un-allowlisted passthrough to a closed literal union
203
- device: device,
204
- });
205
- const clamp = installTokenLimitClamp(this.model);
283
+ // Capture local asset names and file signatures before the pipeline can
284
+ // load them. Later content hashes are trusted only while these exact
285
+ // files remain unchanged, so a disk update during model loading cannot
286
+ // assign the new asset identity to an older in-memory pipeline.
287
+ const assetSnapshot = await this.captureModelAssetSnapshot(dtype, device);
288
+ this.model = await pipeline('feature-extraction', this.config.modelPath, { dtype, device });
289
+ const loadedModel = this.model;
290
+ const clamp = installTokenLimitClamp(loadedModel);
206
291
  this.tokenLimit = clamp.tokenLimit;
207
292
  this.measurementTokenizer = clamp.measurementTokenizer;
293
+ // Start asset hashing against the initialized pipeline while parsing and
294
+ // token measurement proceed. The promise is retained with this model and
295
+ // is cleared only when the pipeline is disposed.
296
+ this.computationIdentityPromise = this.createComputationIdentity({
297
+ loadedModel,
298
+ device,
299
+ dtype,
300
+ tokenLimit: clamp.tokenLimit,
301
+ assetSnapshot,
302
+ sentenceTransformersConfig,
303
+ });
208
304
  console.error(`Embedder: Model loaded successfully (device=${device})`);
209
305
  }
210
306
  catch (error) {
@@ -268,6 +364,159 @@ export class Embedder {
268
364
  });
269
365
  await this.initPromise;
270
366
  }
367
+ /** Identity of the loaded embedding function, or `null` when local assets cannot be proven. */
368
+ async getComputationIdentity() {
369
+ await this.ensureInitialized();
370
+ if (this.computationIdentityPromise === null) {
371
+ return null;
372
+ }
373
+ return await this.computationIdentityPromise;
374
+ }
375
+ async createComputationIdentity({ loadedModel, device, dtype, tokenLimit, assetSnapshot, sentenceTransformersConfig, }) {
376
+ try {
377
+ if (!isEmbeddingPipeline(loadedModel)) {
378
+ return null;
379
+ }
380
+ const dimensionValue = embeddingDimension(loadedModel);
381
+ if (dimensionValue === null) {
382
+ return null;
383
+ }
384
+ const loadedConfig = loadedModel.model?.config;
385
+ if (!assetSnapshot ||
386
+ !isPretrainedConfig(loadedConfig) ||
387
+ JSON.stringify(assetSnapshot.config) !== JSON.stringify(loadedConfig)) {
388
+ return null;
389
+ }
390
+ const assets = await this.hashModelAssets(assetSnapshot);
391
+ if (!assets) {
392
+ return null;
393
+ }
394
+ assets.push({
395
+ name: 'config_sentence_transformers.json',
396
+ sha256: createHash('sha256').update(serialize(sentenceTransformersConfig)).digest('hex'),
397
+ });
398
+ const runtimeVersions = await getRuntimeVersions();
399
+ if (runtimeVersions === null) {
400
+ return null;
401
+ }
402
+ const fingerprintInput = {
403
+ implementationVersion: EMBEDDING_IMPLEMENTATION_VERSION,
404
+ assets,
405
+ runtimeVersions,
406
+ nodeVersion: process.versions.node,
407
+ transformersVersion: env.version,
408
+ modelPath: this.config.modelPath,
409
+ device,
410
+ dtype,
411
+ prompts: this.prompts,
412
+ tokenLimit,
413
+ pooling: 'mean',
414
+ normalize: true,
415
+ titlePrefix: this.titlePrefix,
416
+ headingPrefix: this.headingPrefix,
417
+ dimension: dimensionValue,
418
+ };
419
+ const fingerprint = createHash('sha256').update(serialize(fingerprintInput)).digest('hex');
420
+ return { fingerprint, dimension: dimensionValue };
421
+ }
422
+ catch {
423
+ // Identity is optional acceleration metadata. A failure to enumerate or
424
+ // hash local assets must never prevent normal embedding inference.
425
+ return null;
426
+ }
427
+ }
428
+ async hashModelAssets(snapshot) {
429
+ const assets = [];
430
+ for (const file of snapshot.files) {
431
+ const beforeHash = await statOrNull(file.path);
432
+ if (!beforeHash?.isFile() || statSignature(beforeHash) !== file.statSignature) {
433
+ return null;
434
+ }
435
+ const sha256 = await hashFile(file.path);
436
+ const afterHash = await statOrNull(file.path);
437
+ if (!afterHash?.isFile() || statSignature(afterHash) !== file.statSignature) {
438
+ return null;
439
+ }
440
+ assets.push({ name: file.name, sha256 });
441
+ }
442
+ return assets;
443
+ }
444
+ async captureModelAssetSnapshot(dtype, device) {
445
+ try {
446
+ const tokenizerConfigPath = await this.resolveAssetPath('tokenizer_config.json');
447
+ if (!tokenizerConfigPath ||
448
+ env.cacheDir === null ||
449
+ resolve(env.cacheDir) !== resolve(this.config.cacheDir)) {
450
+ // Transformers.js 4.3.1 probes tokenizer_config.json while listing
451
+ // pipeline assets. Require it locally before enumeration so identity
452
+ // discovery cannot cause a separate Hub metadata lookup.
453
+ return null;
454
+ }
455
+ const config = await AutoConfig.from_pretrained(this.config.modelPath, {
456
+ cache_dir: this.config.cacheDir,
457
+ local_files_only: true,
458
+ });
459
+ if (!isPretrainedConfig(config)) {
460
+ return null;
461
+ }
462
+ const fileNames = await ModelRegistry.get_pipeline_files('feature-extraction', this.config.modelPath, { config, dtype, device });
463
+ // Some models list it although the pipeline never loads it, and it does
464
+ // not affect embeddings.
465
+ const assetNames = fileNames.filter((name) => name !== 'generation_config.json');
466
+ const files = [];
467
+ for (const name of [...new Set(assetNames)].sort()) {
468
+ const path = await this.resolveAssetPath(name);
469
+ const info = path ? await statOrNull(path) : null;
470
+ if (!path || !info?.isFile()) {
471
+ return null;
472
+ }
473
+ files.push({ name, path, statSignature: statSignature(info) });
474
+ }
475
+ return files.length === 0 ? null : { config, files };
476
+ }
477
+ catch {
478
+ // Local identity is optional; a missing cached asset or config mismatch
479
+ // disables reuse without changing normal pipeline initialization.
480
+ return null;
481
+ }
482
+ }
483
+ async resolveAssetPath(name) {
484
+ const normalizedName = name.replaceAll('\\', '/');
485
+ if (isAbsolute(name) ||
486
+ normalizedName.startsWith('/') ||
487
+ normalizedName.split('/').some((part) => part === '..')) {
488
+ return null;
489
+ }
490
+ const modelPath = this.config.modelPath;
491
+ const cachePath = join(this.config.cacheDir, modelPath, name);
492
+ const directModelPath = resolve(modelPath, name);
493
+ const localModelPath = join(env.localModelPath, modelPath, name);
494
+ const modelId = /^[^./:\\]+\/[^./\\]+$/.test(modelPath);
495
+ let candidates;
496
+ if (isAbsolute(modelPath)) {
497
+ candidates = [directModelPath];
498
+ }
499
+ else if (modelId) {
500
+ candidates = [localModelPath, cachePath];
501
+ }
502
+ else {
503
+ candidates = [directModelPath, cachePath];
504
+ }
505
+ const available = [];
506
+ for (const candidate of candidates) {
507
+ const info = await statOrNull(candidate);
508
+ if (info?.isFile()) {
509
+ available.push({ path: candidate, identity: `${info.dev}:${info.ino}` });
510
+ }
511
+ }
512
+ if (new Set(available.map(({ identity }) => identity)).size > 1) {
513
+ // A model may resolve from multiple local/cache candidates. If they
514
+ // contain different files, this resolver cannot prove which one the
515
+ // pipeline loaded, so persistent reuse is unsafe for this instance.
516
+ return null;
517
+ }
518
+ return available[0]?.path ?? null;
519
+ }
271
520
  /**
272
521
  * The effective token cap, or `null` when none could be resolved.
273
522
  *
@@ -300,7 +549,7 @@ export class Embedder {
300
549
  */
301
550
  async planTokenLengths(texts) {
302
551
  const tokenLimit = await this.getTokenLimit();
303
- const trueLengths = await this.countTokens(texts);
552
+ const trueLengths = await this.measureTokens(texts);
304
553
  if (tokenLimit === null) {
305
554
  return trueLengths;
306
555
  }
@@ -315,15 +564,29 @@ export class Embedder {
315
564
  return trueLengths.map((length) => Math.min(length, tokenLimit));
316
565
  }
317
566
  /**
318
- * The true token length of each text, in input order. Tokenization only, no
319
- * inference.
567
+ * The true token length of each text as embedded for `role`, prompt
568
+ * included, in input order. Tokenization only, no inference.
320
569
  *
321
570
  * Measured with `truncation: false` through the pre-clamp tokenizer, so a
322
571
  * length above {@link getTokenLimit} means inference will truncate. Throws
323
572
  * when no such tokenizer was captured, rather than returning a length
324
573
  * measured through an unknown surface.
325
574
  */
326
- async countTokens(texts) {
575
+ async countTokens(texts, role) {
576
+ await this.ensureInitialized();
577
+ return this.measureTokens(this.withPrompt(texts, role));
578
+ }
579
+ /** The prompt this model's config sets for documents, or `''`. */
580
+ async getDocumentPrompt() {
581
+ await this.ensureInitialized();
582
+ return this.prompts.document;
583
+ }
584
+ withPrompt(texts, role) {
585
+ const prompt = this.prompts[role ?? 'default'];
586
+ return prompt === '' ? texts : texts.map((text) => prompt + text);
587
+ }
588
+ /** Measures `texts` as given; each caller applies the prompt exactly once. */
589
+ async measureTokens(texts) {
327
590
  if (texts.length === 0) {
328
591
  return [];
329
592
  }
@@ -345,8 +608,8 @@ export class Embedder {
345
608
  * Delegates to {@link embedBatch} so this path shares its clamp, measurement
346
609
  * and warning rather than reaching the pipeline unguarded.
347
610
  */
348
- async embed(text) {
349
- const embeddings = await this.embedBatch([text]);
611
+ async embed(text, role) {
612
+ const embeddings = await this.embedBatch([text], role);
350
613
  const embedding = embeddings[0];
351
614
  if (embedding === undefined) {
352
615
  throw new EmbeddingError('Missing embedder batch output row');
@@ -354,7 +617,7 @@ export class Embedder {
354
617
  return embedding;
355
618
  }
356
619
  /** Batched embedding; the vector dimension depends on the model. */
357
- async embedBatch(texts) {
620
+ async embedBatch(texts, role) {
358
621
  // Nothing to embed → skip model init entirely.
359
622
  if (texts.length === 0) {
360
623
  return [];
@@ -375,10 +638,11 @@ export class Embedder {
375
638
  throw new EmbeddingError('Embedder pipeline is not callable');
376
639
  }
377
640
  const modelCall = this.model;
641
+ const promptedTexts = this.withPrompt(texts, role);
378
642
  // One measurement per call, so planning and truncation reporting cannot
379
643
  // disagree about a length.
380
- const plannedLengths = await this.planTokenLengths(texts);
381
- const embeddings = Array.from({ length: texts.length });
644
+ const plannedLengths = await this.planTokenLengths(promptedTexts);
645
+ const embeddings = Array.from({ length: promptedTexts.length });
382
646
  const deferred = [];
383
647
  const embedInputs = async (inputs) => {
384
648
  const output = await modelCall(inputs.map((input) => input.text), options);
@@ -397,8 +661,8 @@ export class Embedder {
397
661
  embeddings[input.originalIndex] = Array.from(data.subarray(row * dim, (row + 1) * dim));
398
662
  }
399
663
  };
400
- for (let i = 0; i < texts.length; i += this.config.batchSize) {
401
- const batchTexts = texts.slice(i, i + this.config.batchSize);
664
+ for (let i = 0; i < promptedTexts.length; i += this.config.batchSize) {
665
+ const batchTexts = promptedTexts.slice(i, i + this.config.batchSize);
402
666
  const indexedInputs = batchTexts.map((text, batchIndex) => {
403
667
  const originalIndex = i + batchIndex;
404
668
  const tokenLength = plannedLengths[originalIndex];
@@ -430,4 +694,63 @@ export class Embedder {
430
694
  }
431
695
  }
432
696
  }
697
+ async function hashFile(filePath) {
698
+ const hash = createHash('sha256');
699
+ for await (const chunk of createReadStream(filePath)) {
700
+ hash.update(chunk);
701
+ }
702
+ return hash.digest('hex');
703
+ }
704
+ async function getRuntimeVersions() {
705
+ if (runtimeVersionsPromise === null) {
706
+ runtimeVersionsPromise = Promise.all([
707
+ '@huggingface/transformers',
708
+ '@huggingface/tokenizers',
709
+ 'onnxruntime-node',
710
+ 'onnxruntime-web',
711
+ ].map(async (packageName) => [packageName, await readInstalledPackageVersion(packageName)])).then((entries) => {
712
+ const versions = {};
713
+ for (const [name, version] of entries) {
714
+ if (version === null) {
715
+ return null;
716
+ }
717
+ versions[name] = version;
718
+ }
719
+ return versions;
720
+ });
721
+ }
722
+ return await runtimeVersionsPromise;
723
+ }
724
+ async function readInstalledPackageVersion(packageName) {
725
+ try {
726
+ let packageEntry;
727
+ try {
728
+ packageEntry = require.resolve(packageName);
729
+ }
730
+ catch {
731
+ // pnpm keeps some dependencies private to the Transformers.js package.
732
+ packageEntry = transformersRequire.resolve(packageName);
733
+ }
734
+ for (let directory = dirname(packageEntry); directory !== dirname(directory); directory = dirname(directory)) {
735
+ try {
736
+ const metadata = JSON.parse(await readFile(join(directory, 'package.json'), 'utf8'));
737
+ if (typeof metadata === 'object' &&
738
+ metadata !== null &&
739
+ 'name' in metadata &&
740
+ metadata.name === packageName &&
741
+ 'version' in metadata &&
742
+ typeof metadata.version === 'string') {
743
+ return metadata.version;
744
+ }
745
+ }
746
+ catch {
747
+ // Continue toward the package root.
748
+ }
749
+ }
750
+ return null;
751
+ }
752
+ catch {
753
+ return null;
754
+ }
755
+ }
433
756
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedder/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedder/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAoB,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EACL,UAAU,EAGV,GAAG,EACH,aAAa,EAEb,QAAQ,GACT,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EACL,8BAA8B,EAE9B,oBAAoB,GACrB,MAAM,mCAAmC,CAAA;AA0F1C,MAAM,gCAAgC,GAAG,CAAC,CAAA;AAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAA;AACvF,IAAI,sBAAsB,GAAkD,IAAI,CAAA;AAoBhF,sFAAsF;AACtF,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,CACL,OAAO,KAAK,KAAK,UAAU,IAAI,WAAW,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,CAC7F,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,YAAY,IAAI,KAAK;QACrB,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;QACnE,oBAAoB,IAAI,KAAK;QAC7B,OAAO,KAAK,CAAC,kBAAkB,KAAK,SAAS;QAC7C,wBAAwB,IAAI,KAAK;QACjC,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,SAAS;YAC5C,CAAC,OAAO,KAAK,CAAC,wBAAwB,CAAC,KAAK,QAAQ;gBAClD,KAAK,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9C,mBAAmB,IAAI,KAAK,CAC7B,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,WAA8B;IACxD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAA;IACjG,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC;QAClF,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAA;AACV,CAAC;AAED,uEAAuE;AACvE,SAAS,wBAAwB,CAAC,WAA8B;IAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAA;IAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACtE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,WAAW,GAAY,OAAO,CAAC,IAAI,CACvC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAC3E,CAAA;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1E,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACxD,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAiB;IACtC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9E,CAAC;AAED,+CAA+C;AAC/C,oBAAoB;AACpB,+CAA+C;AAE/C,wFAAwF;AACxF,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAEhC;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAS5B,sFAAsF;AACtF,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/E,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA4B;IACtD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAA;IACtC,8DAA8D;IAC9D,MAAM,UAAU,GAAG,MAAM,EAAE,WAAW,CAAA;IACtC,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjG,OAAO,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,IAAI,YAAY,CAAC,CAAA;AAC1E,CAAC;AAED,SAAS,mBAAmB,CAC1B,cAA6B,EAC7B,cAA6B;IAE7B,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,cAAc,CAAA;IACvB,CAAC;IACD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;IACjD,CAAC;IACD,kEAAkE;IAClE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAAC,CAAA;AACzD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAkB;IACvD,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAA;IACzD,CAAC;IAED,MAAM,oBAAoB,GAAG,SAAS,CAAC,SAAS,CAAA;IAChD,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;IAC9E,MAAM,UAAU,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAA;IACrF,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAA;IACnD,CAAC;IAED,SAAS,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,oBAAoB,EAAE;QACpD,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAe;YACpC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;YAC7B,MAAM,OAAO,GAAG;gBACd,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,IAAI;aACjB,CAAA;YACD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QACzD,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAA;AAC7C,CAAC;AAED,kFAAkF;AAClF,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,KAAK,CACT,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,QAAQ,IAAI,KAAK;YACjB,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CACnC,CACF,CAAA;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,yBAAyB,GAAG,GAAG,CAAA;AAErC,SAAS,4BAA4B,CAAC,MAA+B;IACnE,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;QAC5D,cAAc,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,IAAI,CAAC,CAAC,GAAG,cAAc,CAAA;AAC/D,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA+B;IAIzD,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;IACzB,MAAM,QAAQ,GAA4B,EAAE,CAAA;IAE5C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,4BAA4B,CAAC,KAAK,CAAC,IAAI,yBAAyB,EAAE,CAAC;YACrE,MAAK;QACP,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,IAAI,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAA;QAC9C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,CAAA;YAClD,IAAI,WAAW,GAAG,aAAa,EAAE,CAAC;gBAChC,YAAY,GAAG,KAAK,CAAA;gBACpB,aAAa,GAAG,WAAW,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,CAAA;QACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAK;QACP,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtB,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;AAC5B,CAAC;AAED,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C,YAAY,OAAe,EAAE,OAA2B;QACtD,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAC/C,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF;AAED,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C,uEAAuE;AACvE,MAAM,OAAO,QAAQ;IACnB,2EAA2E;IACnE,KAAK,GAAY,IAAI,CAAA;IACrB,WAAW,GAAyB,IAAI,CAAA;IAChD,8EAA8E;IACtE,UAAU,GAAkB,IAAI,CAAA;IACxC,6EAA6E;IACrE,oBAAoB,GAA6B,IAAI,CAAA;IAC7D;;;OAGG;IACK,gBAAgB,GAAY,KAAK,CAAA;IACjC,kBAAkB,GAAY,KAAK,CAAA;IACnC,OAAO,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IAChE,QAAQ,GAAa,EAAE,CAAA;IACd,MAAM,CAAgB;IAC/B,0BAA0B,GAAwD,IAAI,CAAA;IAE9F,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,KAAK,CAAA;IAC3C,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAA;IACzC,CAAC;IAED,0EAA0E;IAC1E,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAA;QACjC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAClE,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QACtB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;QAChC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,8BAA8B;QAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAM;QACR,CAAC;QACD,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAA;QAEtC,6EAA6E;QAC7E,0EAA0E;QAC1E,qEAAqE;QACrE,6DAA6D;QAC7D,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;QACnC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC7C,CAAC;QAED,4DAA4D;QAC5D,yEAAyE;QACzE,qDAAqD;QACrD,wGAAwG;QACxG,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAe,CAAA;QAC1D,wGAAwG;QACxG,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAa,CAAA;QAEvD,OAAO,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;QAE/E,8EAA8E;QAC9E,gEAAgE;QAChE,MAAM,0BAA0B,GAAG,MAAM,8BAA8B,CACrE,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAA;QACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAA;QACxF,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;QACvC,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;QAEjC,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,MAAM,CAAC,SAAS,gBAAgB,MAAM,MAAM,CAAC,CAAA;QAE5F,IAAI,CAAC;YACH,wEAAwE;YACxE,qEAAqE;YACrE,uEAAuE;YACvE,gEAAgE;YAChE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YACzE,IAAI,CAAC,KAAK,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAA;YAC9B,MAAM,KAAK,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAA;YACjD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;YAClC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAA;YACtD,yEAAyE;YACzE,yEAAyE;YACzE,iDAAiD;YACjD,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,yBAAyB,CAAC;gBAC/D,WAAW;gBACX,MAAM;gBACN,KAAK;gBACL,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,aAAa;gBACb,0BAA0B;aAC3B,CAAC,CAAA;YACF,OAAO,CAAC,KAAK,CAAC,+CAA+C,MAAM,GAAG,CAAC,CAAA;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;YAElC,0EAA0E;YAC1E,wEAAwE;YACxE,oEAAoE;YACpE,kEAAkE;YAClE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YACzE,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,yBAAyB,CAAC,aAAqB;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;QACxC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,aAAa,CAAA;QACtB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACvF,IAAI,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC7C,yEAAyE;gBACzE,0EAA0E;gBAC1E,OAAO,aAAa,CAAA;YACtB,CAAC;YACD,OAAO,UAAU,IAAI,CAAC,MAAM,CAAC,SAAS,sBAAsB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,cAAc,yGAAyG,CAAA;QACtO,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;YACtE,2EAA2E;YAC3E,OAAO,yBAAyB,IAAI,CAAC,MAAM,CAAC,SAAS,2BAA2B,cAAc,uLAAuL,aAAa,GAAG,CAAA;QACvS,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB;QAC7B,sBAAsB;QACtB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAM;QACR,CAAC;QAED,kDAAkD;QAClD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,WAAW,CAAA;YACtB,OAAM;QACR,CAAC;QAED,OAAO,CAAC,KAAK,CACX,+FAA+F,CAChG,CAAA;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACnD,gEAAgE;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,MAAM,KAAK,CAAA;QACb,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,WAAW,CAAA;IACxB,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC9B,IAAI,IAAI,CAAC,0BAA0B,KAAK,IAAI,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAA;IAC9C,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,EACtC,WAAW,EACX,MAAM,EACN,KAAK,EACL,UAAU,EACV,aAAa,EACb,0BAA0B,GACD;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAA;YACtD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAA;YAC9C,IACE,CAAC,aAAa;gBACd,CAAC,kBAAkB,CAAC,YAAY,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EACrE,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;YACxD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,mCAAmC;gBACzC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aACzF,CAAC,CAAA;YAEF,MAAM,eAAe,GAAG,MAAM,kBAAkB,EAAE,CAAA;YAClD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,gBAAgB,GAAG;gBACvB,qBAAqB,EAAE,gCAAgC;gBACvD,MAAM;gBACN,eAAe;gBACf,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAClC,mBAAmB,EAAE,GAAG,CAAC,OAAO;gBAChC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,MAAM;gBACN,KAAK;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU;gBACV,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,SAAS,EAAE,cAAc;aAC1B,CAAA;YACD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC1F,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;YACxE,mEAAmE;YACnE,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAA4B;QACxD,MAAM,MAAM,GAAuB,EAAE,CAAA;QACrC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9E,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxC,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7C,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC5E,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC1C,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,KAAe,EACf,MAAkB;QAElB,IAAI,CAAC;YACH,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAA;YAChF,IACE,CAAC,mBAAmB;gBACpB,GAAG,CAAC,QAAQ,KAAK,IAAI;gBACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EACvD,CAAC;gBACD,mEAAmE;gBACnE,qEAAqE;gBACrE,yDAAyD;gBACzD,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACrE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC/B,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAA;YACF,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,kBAAkB,CACtD,oBAAoB,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAC1B,CAAA;YACD,wEAAwE;YACxE,yBAAyB;YACzB,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,wBAAwB,CAAC,CAAA;YAChF,MAAM,KAAK,GAA8B,EAAE,CAAA;YAC3C,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACjD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAChE,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;YACxE,kEAAkE;YAClE,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACzC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACjD,IACE,UAAU,CAAC,IAAI,CAAC;YAChB,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;YAC9B,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,EACvD,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QAC7D,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAChD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QAChE,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvD,IAAI,UAAoB,CAAA;QACxB,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,UAAU,GAAG,CAAC,eAAe,CAAC,CAAA;QAChC,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,UAAU,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAC1C,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;QAC3C,CAAC;QACD,MAAM,SAAS,GAAyC,EAAE,CAAA;QAC1D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAA;YACxC,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;gBACnB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;YAC1E,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAChE,oEAAoE;YACpE,oEAAoE;YACpE,oEAAoE;YACpE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAA;IACnC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC9B,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED;;;;OAIG;IACK,gBAAgB;QACtB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAM;QACR,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;QAC9B,OAAO,CAAC,KAAK,CACX,yEAAyE,IAAI,CAAC,MAAM,CAAC,SAAS,6EAA6E,CAC5K,CAAA;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAAC,KAAe;QAC5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAC7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACnD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,IAAI,eAAe,GAAG,CAAC,CAAA;QACvB,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;QACrD,CAAC;QACD,IAAI,eAAe,GAAG,UAAU,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;YAC5B,OAAO,CAAC,KAAK,CACX,oDAAoD,UAAU,mCAAmC,eAAe,8DAA8D,CAC/K,CAAA;QACH,CAAC;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IAClE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CAAC,KAAe,EAAE,IAAoB;QACrD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;IAC9B,CAAC;IAEO,UAAU,CAAC,KAAe,EAAE,IAA+B;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,CAAA;QAC9C,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACnE,CAAC;IAED,8EAA8E;IACtE,KAAK,CAAC,aAAa,CAAC,KAAe;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAA;QAC3C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,cAAc,CAAC,mDAAmD,CAAC,CAAA;QAC/E,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;QAC/F,MAAM,QAAQ,GAAG,SAAS,EAAE,SAAS,CAAA;QACrC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACtE,MAAM,IAAI,cAAc,CAAC,4CAA4C,CAAC,CAAA;QACxE,CAAC;QACD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,IAAoB;QAC5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QACtD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,cAAc,CAAC,mCAAmC,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,UAAU,CAAC,KAAe,EAAE,IAAoB;QACpD,+CAA+C;QAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,cAAc,CAAC,0CAA0C,CAAC,CAAA;QACtE,CAAC;QAED,0EAA0E;QAC1E,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE9B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;YACpD,sEAAsE;YACtE,wEAAwE;YACxE,wEAAwE;YACxE,wEAAwE;YACxE,mDAAmD;YACnD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,cAAc,CAAC,mCAAmC,CAAC,CAAA;YAC/D,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;YAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAClD,wEAAwE;YACxE,2BAA2B;YAC3B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;YACjE,MAAM,UAAU,GAA6B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAA;YACzF,MAAM,QAAQ,GAA4B,EAAE,CAAA;YAE5C,MAAM,WAAW,GAAG,KAAK,EAAE,MAA+B,EAAiB,EAAE;gBAC3E,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EACjC,OAAO,CACR,CAAA;gBAED,uEAAuE;gBACvE,uEAAuE;gBACvE,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,CAAA;gBACzB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;gBACnE,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,CAAA;gBACzB,IACE,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC;oBAC/B,OAAO,GAAG,KAAK,QAAQ;oBACvB,GAAG,IAAI,CAAC;oBACR,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,GAAG,GAAG,EACnC,CAAC;oBACD,MAAM,IAAI,cAAc,CAAC,wCAAwC,CAAC,CAAA;gBACpE,CAAC;gBAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC5C,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;gBACzF,CAAC;YACH,CAAC,CAAA;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrE,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBACpE,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;oBACxD,MAAM,aAAa,GAAG,CAAC,GAAG,UAAU,CAAA;oBACpC,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;oBACjD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,MAAM,IAAI,cAAc,CAAC,4CAA4C,CAAC,CAAA;oBACxE,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA;gBAC7C,CAAC,CAAC,CAAA;gBACF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAA;gBAClD,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBACnC,MAAM,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACnC,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;YAC5B,CAAC;YAED,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAChC,CAAC,SAAS,EAAyB,EAAE,CAAC,SAAS,KAAK,SAAS,CAC9D,CAAA;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC1C,MAAM,IAAI,cAAc,CAAC,mCAAmC,CAAC,CAAA;YAC/D,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;gBACpC,MAAM,KAAK,CAAA;YACb,CAAC;YACD,MAAM,IAAI,cAAc,CAAC,wCAAwC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;gBACzF,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;aACtB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,IAAI,sBAAsB,KAAK,IAAI,EAAE,CAAC;QACpC,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAClC;YACE,2BAA2B;YAC3B,yBAAyB;YACzB,kBAAkB;YAClB,iBAAiB;SAClB,CAAC,GAAG,CACH,KAAK,EAAE,WAAW,EAAE,EAAE,CACpB,CAAC,WAAW,EAAE,MAAM,2BAA2B,CAAC,WAAW,CAAC,CAAU,CACzE,CACF,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACjB,MAAM,QAAQ,GAA2B,EAAE,CAAA;YAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;gBACtC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;YAC1B,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,MAAM,sBAAsB,CAAA;AACrC,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,WAAmB;IAC5D,IAAI,CAAC;QACH,IAAI,YAAoB,CAAA;QACxB,IAAI,CAAC;YACH,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;YACvE,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACzD,CAAC;QACD,KACE,IAAI,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,EACrC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,EAChC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,EAC9B,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAY,IAAI,CAAC,KAAK,CAClC,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACxD,CAAA;gBACD,IACE,OAAO,QAAQ,KAAK,QAAQ;oBAC5B,QAAQ,KAAK,IAAI;oBACjB,MAAM,IAAI,QAAQ;oBAClB,QAAQ,CAAC,IAAI,KAAK,WAAW;oBAC7B,SAAS,IAAI,QAAQ;oBACrB,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EACpC,CAAC;oBACD,OAAO,QAAQ,CAAC,OAAO,CAAA;gBACzB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oCAAoC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { AppError } from '../utils/errors.js';
2
+ import type { EmbeddingComputationIdentity } from './index.js';
2
3
  /** Remote embedding generation error. */
3
4
  export declare class RemoteEmbeddingError extends AppError {
4
5
  constructor(message: string, options?: {
@@ -47,6 +48,8 @@ export declare class RemoteEmbedder {
47
48
  private readonly config;
48
49
  private dims;
49
50
  private maxInputTokens;
51
+ private serverModelId;
52
+ private serverModelSha;
50
53
  private initialized;
51
54
  constructor(config: RemoteEmbedderConfig);
52
55
  /**
@@ -55,13 +58,24 @@ export declare class RemoteEmbedder {
55
58
  * fail fast instead of writing mixed-dimension vectors).
56
59
  */
57
60
  initialize(): Promise<void>;
58
- /** Best-effort `GET /info` → `max_input_length`; failure keeps containment off. */
59
- private probeMaxInputLength;
61
+ /** Best-effort `GET /info`: input cap + serving-model identity for reuse. */
62
+ private probeServerInfo;
60
63
  dispose(): Promise<void>;
61
64
  /** The server's own input cap when `/info` exposed it, else `null`. */
62
65
  get tokenLimit(): number | null;
66
+ /** The remote stack has no local model-load warnings to surface. */
67
+ get modelWarnings(): readonly string[];
63
68
  /** Optional `EmbedderInterface` member: activates the chunker's containment. */
64
69
  getTokenLimit(): Promise<number | null>;
70
+ /**
71
+ * `PersistentEmbeddingProvider` member: the serving model's identity from
72
+ * `/info` (model id + sha + endpoint), so embedding snapshots taken against
73
+ * one server are never reused against another. A server that did not expose
74
+ * its model id cannot prove which model served — `null` disables snapshot
75
+ * reuse (re-embed) rather than risking a shared fake fingerprint across
76
+ * different models behind the same flaky `/info`.
77
+ */
78
+ getComputationIdentity(): Promise<EmbeddingComputationIdentity | null>;
65
79
  /**
66
80
  * Optional `EmbedderInterface` member: conservative local estimate (see
67
81
  * {@link estimateTokens}) — no tokenizer download, no extra server round trip.
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/embedder/remote.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,yCAAyC;AACzC,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,EAGvD;CACF;AAED,6DAA6D;AAC7D,qBAAa,6BAA8B,SAAQ,oBAAoB;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,YAAY,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAM1D;CACF;AAED,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAwED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBnD;AAMD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,WAAW,CAAiB;IAEpC,YAAY,MAAM,EAAE,oBAAoB,EAEvC;IAED;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBhC;IAED,mFAAmF;YACrE,mBAAmB;IAsB3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAI7B;IAED,uEAAuE;IACvE,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,gFAAgF;IAC1E,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG5C;IAED;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEpD;IAEK,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAS3C;IAEK,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAUrD;IAED,OAAO,CAAC,QAAQ;YAoBF,SAAS;CA2BxB"}
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/embedder/remote.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AAE9D,yCAAyC;AACzC,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,EAGvD;CACF;AAED,6DAA6D;AAC7D,qBAAa,6BAA8B,SAAQ,oBAAoB;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,YAAY,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAM1D;CACF;AAED,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAwED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBnD;AAMD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,WAAW,CAAiB;IAEpC,YAAY,MAAM,EAAE,oBAAoB,EAEvC;IAED;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBhC;IAED,6EAA6E;YAC/D,eAAe;IAkCvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAM7B;IAED,uEAAuE;IACvE,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,oEAAoE;IACpE,IAAI,aAAa,IAAI,SAAS,MAAM,EAAE,CAErC;IAED,gFAAgF;IAC1E,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG5C;IAED;;;;;;;OAOG;IACG,sBAAsB,IAAI,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAS3E;IAED;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEpD;IAEK,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAS3C;IAEK,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAUrD;IAED,OAAO,CAAC,QAAQ;YAoBF,SAAS;CA2BxB"}