@ssmeo/mcp-local-rag 0.18.13 → 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 (165) 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/download-model.d.ts +3 -0
  19. package/dist/cli/download-model.d.ts.map +1 -0
  20. package/dist/cli/download-model.js +21 -0
  21. package/dist/cli/download-model.js.map +1 -0
  22. package/dist/cli/file-collection.d.ts +2 -1
  23. package/dist/cli/file-collection.d.ts.map +1 -1
  24. package/dist/cli/file-collection.js +2 -2
  25. package/dist/cli/file-collection.js.map +1 -1
  26. package/dist/cli/ingest.d.ts +1 -0
  27. package/dist/cli/ingest.d.ts.map +1 -1
  28. package/dist/cli/ingest.js +45 -25
  29. package/dist/cli/ingest.js.map +1 -1
  30. package/dist/cli/list.d.ts.map +1 -1
  31. package/dist/cli/list.js +9 -13
  32. package/dist/cli/list.js.map +1 -1
  33. package/dist/cli/options.d.ts +8 -0
  34. package/dist/cli/options.d.ts.map +1 -1
  35. package/dist/cli/options.js +21 -0
  36. package/dist/cli/options.js.map +1 -1
  37. package/dist/cli/query.d.ts.map +1 -1
  38. package/dist/cli/query.js +2 -1
  39. package/dist/cli/query.js.map +1 -1
  40. package/dist/cli/read-neighbors.d.ts.map +1 -1
  41. package/dist/cli/read-neighbors.js +1 -0
  42. package/dist/cli/read-neighbors.js.map +1 -1
  43. package/dist/cli/relocate.d.ts +3 -0
  44. package/dist/cli/relocate.d.ts.map +1 -0
  45. package/dist/cli/relocate.js +135 -0
  46. package/dist/cli/relocate.js.map +1 -0
  47. package/dist/cli/sync.d.ts.map +1 -1
  48. package/dist/cli/sync.js +17 -8
  49. package/dist/cli/sync.js.map +1 -1
  50. package/dist/cli-main.d.ts +1 -1
  51. package/dist/cli-main.d.ts.map +1 -1
  52. package/dist/cli-main.js +5 -0
  53. package/dist/cli-main.js.map +1 -1
  54. package/dist/embedder/embedding-snapshot.d.ts +52 -0
  55. package/dist/embedder/embedding-snapshot.d.ts.map +1 -0
  56. package/dist/embedder/embedding-snapshot.js +413 -0
  57. package/dist/embedder/embedding-snapshot.js.map +1 -0
  58. package/dist/embedder/index.d.ts +36 -5
  59. package/dist/embedder/index.d.ts.map +1 -1
  60. package/dist/embedder/index.js +351 -24
  61. package/dist/embedder/index.js.map +1 -1
  62. package/dist/embedder/remote.d.ts +42 -4
  63. package/dist/embedder/remote.d.ts.map +1 -1
  64. package/dist/embedder/remote.js +113 -5
  65. package/dist/embedder/remote.js.map +1 -1
  66. package/dist/embedder/sentence-transformers-config.d.ts +24 -0
  67. package/dist/embedder/sentence-transformers-config.d.ts.map +1 -0
  68. package/dist/embedder/sentence-transformers-config.js +93 -0
  69. package/dist/embedder/sentence-transformers-config.js.map +1 -0
  70. package/dist/features/sync.js +1 -1
  71. package/dist/features/sync.js.map +1 -1
  72. package/dist/ingest/compute.d.ts +15 -7
  73. package/dist/ingest/compute.d.ts.map +1 -1
  74. package/dist/ingest/compute.js +74 -14
  75. package/dist/ingest/compute.js.map +1 -1
  76. package/dist/ingest/file.d.ts +3 -3
  77. package/dist/ingest/file.d.ts.map +1 -1
  78. package/dist/ingest/file.js +0 -5
  79. package/dist/ingest/file.js.map +1 -1
  80. package/dist/ingest/visual.d.ts +6 -2
  81. package/dist/ingest/visual.d.ts.map +1 -1
  82. package/dist/ingest/visual.js +20 -4
  83. package/dist/ingest/visual.js.map +1 -1
  84. package/dist/parser/docx-parser.d.ts +2 -0
  85. package/dist/parser/docx-parser.d.ts.map +1 -1
  86. package/dist/parser/docx-parser.js +12 -3
  87. package/dist/parser/docx-parser.js.map +1 -1
  88. package/dist/parser/index.d.ts +11 -1
  89. package/dist/parser/index.d.ts.map +1 -1
  90. package/dist/parser/index.js +27 -11
  91. package/dist/parser/index.js.map +1 -1
  92. package/dist/parser/pdf-extract.d.ts +2 -0
  93. package/dist/parser/pdf-extract.d.ts.map +1 -1
  94. package/dist/parser/pdf-extract.js +3 -0
  95. package/dist/parser/pdf-extract.js.map +1 -1
  96. package/dist/parser/pdf-filter.d.ts +2 -9
  97. package/dist/parser/pdf-filter.d.ts.map +1 -1
  98. package/dist/parser/pdf-filter.js +110 -144
  99. package/dist/parser/pdf-filter.js.map +1 -1
  100. package/dist/parser/pdf-headings.d.ts +6 -0
  101. package/dist/parser/pdf-headings.d.ts.map +1 -0
  102. package/dist/parser/pdf-headings.js +166 -0
  103. package/dist/parser/pdf-headings.js.map +1 -0
  104. package/dist/parser/text-source-map.d.ts +3 -0
  105. package/dist/parser/text-source-map.d.ts.map +1 -0
  106. package/dist/parser/text-source-map.js +33 -0
  107. package/dist/parser/text-source-map.js.map +1 -0
  108. package/dist/pdf-visual/captioner.d.ts.map +1 -1
  109. package/dist/pdf-visual/captioner.js +7 -4
  110. package/dist/pdf-visual/captioner.js.map +1 -1
  111. package/dist/pdf-visual/detector.js +3 -3
  112. package/dist/pdf-visual/detector.js.map +1 -1
  113. package/dist/rerank/command.d.ts +10 -7
  114. package/dist/rerank/command.d.ts.map +1 -1
  115. package/dist/rerank/command.js +51 -10
  116. package/dist/rerank/command.js.map +1 -1
  117. package/dist/rerank/index.d.ts +3 -3
  118. package/dist/rerank/index.d.ts.map +1 -1
  119. package/dist/rerank/index.js +3 -3
  120. package/dist/rerank/index.js.map +1 -1
  121. package/dist/server/index.d.ts +8 -1
  122. package/dist/server/index.d.ts.map +1 -1
  123. package/dist/server/index.js +129 -81
  124. package/dist/server/index.js.map +1 -1
  125. package/dist/server/list-scanner.d.ts +2 -1
  126. package/dist/server/list-scanner.d.ts.map +1 -1
  127. package/dist/server/list-scanner.js +2 -2
  128. package/dist/server/list-scanner.js.map +1 -1
  129. package/dist/server/tool-definitions.js +2 -2
  130. package/dist/server/tool-definitions.js.map +1 -1
  131. package/dist/server/types.d.ts +9 -0
  132. package/dist/server/types.d.ts.map +1 -1
  133. package/dist/server-main.d.ts +2 -2
  134. package/dist/server-main.d.ts.map +1 -1
  135. package/dist/server-main.js +22 -20
  136. package/dist/server-main.js.map +1 -1
  137. package/dist/utils/base-dirs.d.ts +9 -10
  138. package/dist/utils/base-dirs.d.ts.map +1 -1
  139. package/dist/utils/base-dirs.js +28 -30
  140. package/dist/utils/base-dirs.js.map +1 -1
  141. package/dist/utils/scan.d.ts +25 -5
  142. package/dist/utils/scan.d.ts.map +1 -1
  143. package/dist/utils/scan.js +40 -10
  144. package/dist/utils/scan.js.map +1 -1
  145. package/dist/utils/source-context.d.ts +29 -0
  146. package/dist/utils/source-context.d.ts.map +1 -0
  147. package/dist/utils/source-context.js +86 -0
  148. package/dist/utils/source-context.js.map +1 -0
  149. package/dist/utils/sync-path-key.d.ts +1 -1
  150. package/dist/utils/sync-path-key.d.ts.map +1 -1
  151. package/dist/utils/sync-path-key.js +1 -1
  152. package/dist/utils/sync-path-key.js.map +1 -1
  153. package/dist/vectordb/index.d.ts +4 -2
  154. package/dist/vectordb/index.d.ts.map +1 -1
  155. package/dist/vectordb/index.js +33 -8
  156. package/dist/vectordb/index.js.map +1 -1
  157. package/dist/vectordb/relocate.d.ts +18 -0
  158. package/dist/vectordb/relocate.d.ts.map +1 -0
  159. package/dist/vectordb/relocate.js +179 -0
  160. package/dist/vectordb/relocate.js.map +1 -0
  161. package/dist/vectordb/types.d.ts +10 -23
  162. package/dist/vectordb/types.d.ts.map +1 -1
  163. package/dist/vectordb/types.js +14 -23
  164. package/dist/vectordb/types.js.map +1 -1
  165. 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,27 +251,56 @@ export class Embedder {
180
251
  if (this.model) {
181
252
  return;
182
253
  }
183
- // Set cache directory BEFORE creating pipeline
254
+ this.computationIdentityPromise = null;
255
+ // Set cache + local-model directories BEFORE creating pipeline. transformers
256
+ // >=4.3 resolves models through env.localModelPath (its default is a path
257
+ // inside node_modules), not env.cacheDir — without this, every fresh
258
+ // install re-downloads the model into the package directory.
184
259
  env.cacheDir = this.config.cacheDir;
260
+ env.localModelPath = this.config.cacheDir;
185
261
  if (process.env['HF_ENDPOINT']) {
186
262
  env.remoteHost = process.env['HF_ENDPOINT'];
187
263
  }
188
264
  // No fallback — if the requested device fails, init throws.
189
- 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');
190
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;
191
281
  console.error(`Embedder: Loading model "${this.config.modelPath}" on device "${device}"...`);
192
282
  try {
193
- this.model = await pipeline('feature-extraction', this.config.modelPath, {
194
- // The sole fp32 default literal. Both values pass through
195
- // un-allowlisted (see `resolveDevice`) into a closed literal union.
196
- // biome-ignore lint/nursery/noUnsafeTypeAssertion: un-allowlisted passthrough to a closed literal union
197
- dtype: (this.config.dtype ?? 'fp32'),
198
- // biome-ignore lint/nursery/noUnsafeTypeAssertion: un-allowlisted passthrough to a closed literal union
199
- device: device,
200
- });
201
- 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);
202
291
  this.tokenLimit = clamp.tokenLimit;
203
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
+ });
204
304
  console.error(`Embedder: Model loaded successfully (device=${device})`);
205
305
  }
206
306
  catch (error) {
@@ -264,6 +364,159 @@ export class Embedder {
264
364
  });
265
365
  await this.initPromise;
266
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
+ }
267
520
  /**
268
521
  * The effective token cap, or `null` when none could be resolved.
269
522
  *
@@ -296,7 +549,7 @@ export class Embedder {
296
549
  */
297
550
  async planTokenLengths(texts) {
298
551
  const tokenLimit = await this.getTokenLimit();
299
- const trueLengths = await this.countTokens(texts);
552
+ const trueLengths = await this.measureTokens(texts);
300
553
  if (tokenLimit === null) {
301
554
  return trueLengths;
302
555
  }
@@ -311,15 +564,29 @@ export class Embedder {
311
564
  return trueLengths.map((length) => Math.min(length, tokenLimit));
312
565
  }
313
566
  /**
314
- * The true token length of each text, in input order. Tokenization only, no
315
- * inference.
567
+ * The true token length of each text as embedded for `role`, prompt
568
+ * included, in input order. Tokenization only, no inference.
316
569
  *
317
570
  * Measured with `truncation: false` through the pre-clamp tokenizer, so a
318
571
  * length above {@link getTokenLimit} means inference will truncate. Throws
319
572
  * when no such tokenizer was captured, rather than returning a length
320
573
  * measured through an unknown surface.
321
574
  */
322
- 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) {
323
590
  if (texts.length === 0) {
324
591
  return [];
325
592
  }
@@ -341,8 +608,8 @@ export class Embedder {
341
608
  * Delegates to {@link embedBatch} so this path shares its clamp, measurement
342
609
  * and warning rather than reaching the pipeline unguarded.
343
610
  */
344
- async embed(text) {
345
- const embeddings = await this.embedBatch([text]);
611
+ async embed(text, role) {
612
+ const embeddings = await this.embedBatch([text], role);
346
613
  const embedding = embeddings[0];
347
614
  if (embedding === undefined) {
348
615
  throw new EmbeddingError('Missing embedder batch output row');
@@ -350,7 +617,7 @@ export class Embedder {
350
617
  return embedding;
351
618
  }
352
619
  /** Batched embedding; the vector dimension depends on the model. */
353
- async embedBatch(texts) {
620
+ async embedBatch(texts, role) {
354
621
  // Nothing to embed → skip model init entirely.
355
622
  if (texts.length === 0) {
356
623
  return [];
@@ -371,10 +638,11 @@ export class Embedder {
371
638
  throw new EmbeddingError('Embedder pipeline is not callable');
372
639
  }
373
640
  const modelCall = this.model;
641
+ const promptedTexts = this.withPrompt(texts, role);
374
642
  // One measurement per call, so planning and truncation reporting cannot
375
643
  // disagree about a length.
376
- const plannedLengths = await this.planTokenLengths(texts);
377
- const embeddings = Array.from({ length: texts.length });
644
+ const plannedLengths = await this.planTokenLengths(promptedTexts);
645
+ const embeddings = Array.from({ length: promptedTexts.length });
378
646
  const deferred = [];
379
647
  const embedInputs = async (inputs) => {
380
648
  const output = await modelCall(inputs.map((input) => input.text), options);
@@ -393,8 +661,8 @@ export class Embedder {
393
661
  embeddings[input.originalIndex] = Array.from(data.subarray(row * dim, (row + 1) * dim));
394
662
  }
395
663
  };
396
- for (let i = 0; i < texts.length; i += this.config.batchSize) {
397
- 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);
398
666
  const indexedInputs = batchTexts.map((text, batchIndex) => {
399
667
  const originalIndex = i + batchIndex;
400
668
  const tokenLength = plannedLengths[originalIndex];
@@ -426,4 +694,63 @@ export class Embedder {
426
694
  }
427
695
  }
428
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
+ }
429
756
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedder/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,OAAO,EAGL,GAAG,EACH,aAAa,EACb,QAAQ,GACT,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAmEtD,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,+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,OAAO,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAA;AAC3E,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;IAC1B,MAAM,CAAgB;IAEvC,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,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;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,8BAA8B;QAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAM;QACR,CAAC;QAED,+CAA+C;QAC/C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;QACnC,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,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAA;QAE1C,OAAO,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;QAC/E,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,MAAM,CAAC,SAAS,gBAAgB,MAAM,MAAM,CAAC,CAAA;QAE5F,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACvE,0DAA0D;gBAC1D,oEAAoE;gBACpE,wGAAwG;gBACxG,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAa;gBAChD,wGAAwG;gBACxG,MAAM,EAAE,MAAoB;aAC7B,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAChD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;YAClC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAA;YACtD,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;;;;;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,WAAW,CAAC,KAAK,CAAC,CAAA;QACjD,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;QAC/B,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;QACtB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAChD,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;QAC9B,+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,wEAAwE;YACxE,2BAA2B;YAC3B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACzD,MAAM,UAAU,GAA6B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;YACjF,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,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC5D,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedder/index.ts"],"names":[],"mappings":"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"}
@@ -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?: {
@@ -18,20 +19,37 @@ export interface RemoteEmbedderConfig {
18
19
  /** Per-attempt HTTP timeout in ms (default 30_000) */
19
20
  timeoutMs?: number;
20
21
  }
22
+ /**
23
+ * Conservative CJK-aware token estimate for a server-side tokenizer we cannot
24
+ * run locally. Calibrated against the deployment's own tokenizer (XLM-R /
25
+ * bge-m3): worst observed densities were ~0.76 tokens/char CJK prose, 0.62 for
26
+ * digit-heavy table rows and 0.46 for code; the experiment-ledger file that
27
+ * motivated containment measures 0.615 overall. The coefficients deliberately
28
+ * over-estimate (dense script x1.4, everything else x0.7) so containment
29
+ * splits too early rather than letting an oversized chunk reach the server.
30
+ */
31
+ export declare function estimateTokens(text: string): number;
21
32
  /**
22
33
  * Structural counterpart of the local `Embedder`: same public surface
23
34
  * (`initialize / embed / embedBatch / dispose / tokenLimit`), with embedding
24
35
  * compute delegated to a self-hosted server.
25
36
  *
26
37
  * Semantics intentionally aligned with the local class:
27
- * - `tokenLimit` is always `null` — the remote server owns truncation, which
28
- * maps to the local class's "degraded mode" (no cap, no clamp).
38
+ * - `tokenLimit` mirrors the server's own input cap, probed once from
39
+ * `GET /info` (`max_input_length`). When the server does not expose it —
40
+ * or a strictly validating server rejects oversized inputs without
41
+ * truncating — the cap stays `null` and containment stays off, exactly the
42
+ * previous behavior. `getTokenLimit`/`countTokens` implement the chunker's
43
+ * optional `EmbedderInterface` members so token containment activates.
29
44
  * - `dispose()` is a no-op — no in-process model resources.
30
45
  * - `device` / `dtype` / `cacheDir` / `modelPath` are server-side concerns.
31
46
  */
32
47
  export declare class RemoteEmbedder {
33
48
  private readonly config;
34
49
  private dims;
50
+ private maxInputTokens;
51
+ private serverModelId;
52
+ private serverModelSha;
35
53
  private initialized;
36
54
  constructor(config: RemoteEmbedderConfig);
37
55
  /**
@@ -40,9 +58,29 @@ export declare class RemoteEmbedder {
40
58
  * fail fast instead of writing mixed-dimension vectors).
41
59
  */
42
60
  initialize(): Promise<void>;
61
+ /** Best-effort `GET /info`: input cap + serving-model identity for reuse. */
62
+ private probeServerInfo;
43
63
  dispose(): Promise<void>;
44
- /** Remote servers decide their own truncation: no local cap, no clamp. */
45
- get tokenLimit(): null;
64
+ /** The server's own input cap when `/info` exposed it, else `null`. */
65
+ get tokenLimit(): number | null;
66
+ /** The remote stack has no local model-load warnings to surface. */
67
+ get modelWarnings(): readonly string[];
68
+ /** Optional `EmbedderInterface` member: activates the chunker's containment. */
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>;
79
+ /**
80
+ * Optional `EmbedderInterface` member: conservative local estimate (see
81
+ * {@link estimateTokens}) — no tokenizer download, no extra server round trip.
82
+ */
83
+ countTokens(texts: string[]): Promise<number[]>;
46
84
  embed(text: string): Promise<number[]>;
47
85
  embedBatch(texts: string[]): Promise<number[][]>;
48
86
  private validate;
@@ -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;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,WAAW,CAAiB;IAEpC,YAAY,MAAM,EAAE,oBAAoB,EAEvC;IAED;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAehC;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAG7B;IAED,0EAA0E;IAC1E,IAAI,UAAU,IAAI,IAAI,CAErB;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"}