@zvec/zvec-grep 0.2.0 → 0.2.2

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 (94) hide show
  1. package/README.md +42 -9
  2. package/README_CN.md +39 -11
  3. package/dist/authorization/prompt.d.ts +1 -0
  4. package/dist/authorization/prompt.js +1 -0
  5. package/dist/authorization/prompt.js.map +1 -1
  6. package/dist/cli/args.js +5 -2
  7. package/dist/cli/args.js.map +1 -1
  8. package/dist/cli/commands.js +46 -1
  9. package/dist/cli/commands.js.map +1 -1
  10. package/dist/cli/errors.d.ts +3 -0
  11. package/dist/cli/errors.js +39 -6
  12. package/dist/cli/errors.js.map +1 -1
  13. package/dist/cli/format/status.d.ts +2 -0
  14. package/dist/cli/format/status.js +24 -6
  15. package/dist/cli/format/status.js.map +1 -1
  16. package/dist/cli/help.js +24 -8
  17. package/dist/cli/help.js.map +1 -1
  18. package/dist/cli/index.js +3 -1
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/cli/install.js +542 -34
  21. package/dist/cli/install.js.map +1 -1
  22. package/dist/cli/managed-rg.js +9 -1
  23. package/dist/cli/managed-rg.js.map +1 -1
  24. package/dist/daemon/backend.js +4 -0
  25. package/dist/daemon/backend.js.map +1 -1
  26. package/dist/daemon/config.d.ts +3 -0
  27. package/dist/daemon/config.js +19 -0
  28. package/dist/daemon/config.js.map +1 -1
  29. package/dist/daemon/job-scheduler.d.ts +7 -4
  30. package/dist/daemon/job-scheduler.js +80 -12
  31. package/dist/daemon/job-scheduler.js.map +1 -1
  32. package/dist/daemon/root-lease.js +18 -9
  33. package/dist/daemon/root-lease.js.map +1 -1
  34. package/dist/daemon/root-runtime.d.ts +1 -0
  35. package/dist/daemon/root-runtime.js +4 -1
  36. package/dist/daemon/root-runtime.js.map +1 -1
  37. package/dist/daemon/runtime-manager.d.ts +1 -0
  38. package/dist/daemon/runtime-manager.js +10 -4
  39. package/dist/daemon/runtime-manager.js.map +1 -1
  40. package/dist/daemon/runtime.js +3 -1
  41. package/dist/daemon/runtime.js.map +1 -1
  42. package/dist/daemon/server-controller.d.ts +0 -1
  43. package/dist/daemon/server-controller.js +37 -37
  44. package/dist/daemon/server-controller.js.map +1 -1
  45. package/dist/daemon/watch-manager.d.ts +1 -1
  46. package/dist/daemon/watch-manager.js +16 -9
  47. package/dist/daemon/watch-manager.js.map +1 -1
  48. package/dist/engine/errors.d.ts +1 -0
  49. package/dist/engine/errors.js +11 -0
  50. package/dist/engine/errors.js.map +1 -1
  51. package/dist/engine/models/artifact-cache-lock.d.ts +16 -0
  52. package/dist/engine/models/artifact-cache-lock.js +228 -0
  53. package/dist/engine/models/artifact-cache-lock.js.map +1 -0
  54. package/dist/engine/models/artifact-downloader.d.ts +77 -0
  55. package/dist/engine/models/artifact-downloader.js +766 -0
  56. package/dist/engine/models/artifact-downloader.js.map +1 -0
  57. package/dist/engine/models/backends/llama-cpp.d.ts +8 -8
  58. package/dist/engine/models/backends/llama-cpp.js +83 -21
  59. package/dist/engine/models/backends/llama-cpp.js.map +1 -1
  60. package/dist/engine/models/backends/model2vec.d.ts +6 -8
  61. package/dist/engine/models/backends/model2vec.js +142 -109
  62. package/dist/engine/models/backends/model2vec.js.map +1 -1
  63. package/dist/engine/models/backends/transformers-js.d.ts +9 -9
  64. package/dist/engine/models/backends/transformers-js.js +71 -27
  65. package/dist/engine/models/backends/transformers-js.js.map +1 -1
  66. package/dist/engine/models/catalog.d.ts +261 -2
  67. package/dist/engine/models/catalog.js +306 -2
  68. package/dist/engine/models/catalog.js.map +1 -1
  69. package/dist/engine/models/download-progress.d.ts +5 -4
  70. package/dist/engine/models/download-progress.js +26 -27
  71. package/dist/engine/models/download-progress.js.map +1 -1
  72. package/dist/engine/models/embeddings.d.ts +2 -0
  73. package/dist/engine/models/embeddings.js.map +1 -1
  74. package/dist/engine/pipeline/indexing/index.js +201 -45
  75. package/dist/engine/pipeline/indexing/index.js.map +1 -1
  76. package/dist/engine/utils/atomic-file.d.ts +3 -0
  77. package/dist/engine/utils/atomic-file.js +39 -0
  78. package/dist/engine/utils/atomic-file.js.map +1 -0
  79. package/dist/mcp/input-normalization.js +2 -2
  80. package/dist/mcp/input-normalization.js.map +1 -1
  81. package/dist/mcp/schemas.d.ts +13 -17
  82. package/dist/mcp/schemas.js +9 -3
  83. package/dist/mcp/schemas.js.map +1 -1
  84. package/dist/mcp/stdio-bridge.d.ts +4 -0
  85. package/dist/mcp/stdio-bridge.js +59 -3
  86. package/dist/mcp/stdio-bridge.js.map +1 -1
  87. package/dist/mcp/tools.d.ts +8 -8
  88. package/dist/mcp/tools.js +6 -0
  89. package/dist/mcp/tools.js.map +1 -1
  90. package/docs/01-agents.md +80 -9
  91. package/docs/02-cli.md +9 -4
  92. package/docs/06-server.md +13 -0
  93. package/docs/07-embedding.md +28 -1
  94. package/package.json +2 -2
@@ -14,6 +14,18 @@ const EMBEDDING_TRANSIENT_RETRY_MAX_DELAY_MS = 8000;
14
14
  const EMBEDDING_RATE_LIMIT_RETRY_MAX_DELAY_MS = 30000;
15
15
  const EMBEDDING_RETRY_JITTER_MS = 500;
16
16
  const EMBEDDING_SUCCESS_STREAK_MIN = 4;
17
+ const PERMANENT_REMOTE_MODEL_PROVIDER_CODES = new Set([
18
+ "invalid_model",
19
+ "model_not_found",
20
+ "unsupported_model",
21
+ "invalid_dimension",
22
+ "invalid_dimensions",
23
+ "unsupported_dimension",
24
+ "unsupported_dimensions",
25
+ "dimension_out_of_range",
26
+ "invalid_embedding_dimension",
27
+ "unsupported_embedding_dimension",
28
+ ]);
17
29
  export async function indexWorkspace(ctx) {
18
30
  try {
19
31
  return await indexWorkspaceUnchecked(ctx);
@@ -98,19 +110,7 @@ async function indexWorkspaceUnchecked(ctx) {
98
110
  const result = buildIndexResult(ctx, passes, Date.now() - start, timings);
99
111
  if (result.filesFailed > 0) {
100
112
  report({ phase: "done", detail: "Indexing completed with failed files" });
101
- throw new EngineError(`Indexing completed with ${result.filesFailed} failed ${result.filesFailed === 1 ? "file" : "files"}`, {
102
- code: "ZVEC_GREP.ENGINE.INDEXING.FILES_FAILED",
103
- context: errorDetails([
104
- workspaceIndexDetail(ctx.workspaceIndex.name),
105
- detail("filesFailed", result.filesFailed),
106
- detail("filesScanned", result.filesScanned),
107
- detail("failedFiles", summarizeFailedFiles(finalPass.stats.failedFiles)),
108
- detail("failedReasons", summarizeFailedFiles(finalPass.stats.failedFileReasons)),
109
- detail("hint", passes.length > 1
110
- ? "Retried failed files once automatically; if failures persist, fix the failed files or embedding configuration."
111
- : "If the failure was transient, rerun the same indexing command; if it persists, fix the failed files or embedding configuration."),
112
- ]),
113
- });
113
+ throw filesFailedError(ctx, result, finalPass, passes.length);
114
114
  }
115
115
  report({ phase: "done", detail: "Indexing complete" });
116
116
  return result;
@@ -134,14 +134,26 @@ async function indexWorkspacePathsUnchecked(ctx, changedPaths) {
134
134
  await timings.time("index_optimize", () => optimizeStorage(ctx));
135
135
  const result = buildIndexResult(ctx, passes, Date.now() - start, timings);
136
136
  if (result.filesFailed > 0) {
137
- throw new EngineError(`Indexing completed with ${result.filesFailed} failed files`, {
138
- code: "ZVEC_GREP.ENGINE.INDEXING.FILES_FAILED",
139
- context: workspaceIndexContext(ctx.workspaceIndex),
140
- });
137
+ throw filesFailedError(ctx, result, finalPass, passes.length);
141
138
  }
142
139
  report({ phase: "done", detail: "Indexing complete" });
143
140
  return result;
144
141
  }
142
+ function filesFailedError(ctx, result, finalPass, passCount) {
143
+ return new EngineError(`Indexing completed with ${result.filesFailed} failed ${result.filesFailed === 1 ? "file" : "files"}`, {
144
+ code: "ZVEC_GREP.ENGINE.INDEXING.FILES_FAILED",
145
+ context: errorDetails([
146
+ workspaceIndexDetail(ctx.workspaceIndex.name),
147
+ detail("filesFailed", result.filesFailed),
148
+ detail("filesScanned", result.filesScanned),
149
+ detail("failedFiles", summarizeFailedFiles(finalPass.stats.failedFiles)),
150
+ detail("failedReasons", summarizeFailedFiles(finalPass.stats.failedFileReasons)),
151
+ detail("hint", passCount > 1
152
+ ? "Retried failed files once automatically; if failures persist, fix the failed files or embedding configuration."
153
+ : "If the failure was transient, rerun the same indexing command; if it persists, fix the failed files or embedding configuration."),
154
+ ]),
155
+ });
156
+ }
145
157
  async function runPathIndexPass(ctx, report, changedPaths, timings, progressBase) {
146
158
  reportScanning(report, "Scanning changed paths...", progressBase);
147
159
  const scanned = await timings.time("index_scan_paths", async () => {
@@ -390,10 +402,22 @@ async function indexFiles(files, ctx, onProgress, timings) {
390
402
  const embeddingScheduler = createEmbeddingScheduler(ctx.embeddingConcurrency, ctx.embeddingModel);
391
403
  const embeddingTiming = new ConcurrentTiming(timings, "index_embedding");
392
404
  const runningEmbeddings = new Set();
405
+ let firstEmbeddingError;
406
+ const prepareModel = ctx.embeddingModel.info.provider === "local"
407
+ ? ctx.embeddingModel.prepare?.bind(ctx.embeddingModel)
408
+ : undefined;
409
+ let modelPrepared = false;
393
410
  const reportEmbeddingProgress = (currentStats, detail) => {
394
411
  onProgress(currentStats, detail, embeddingScheduler.snapshot());
395
412
  };
413
+ const throwFirstEmbeddingError = () => {
414
+ const failure = firstEmbeddingError;
415
+ if (failure) {
416
+ throw failure.error;
417
+ }
418
+ };
396
419
  const flushBatch = async () => {
420
+ throwFirstEmbeddingError();
397
421
  throwIfIndexCancelled(ctx);
398
422
  if (batchFiles.length === 0) {
399
423
  return;
@@ -403,20 +427,48 @@ async function indexFiles(files, ctx, onProgress, timings) {
403
427
  await scheduleEmbeddingTask(() => embedAndCommitBatch(filesToEmbed, ctx, stats, onProgress, embeddingScheduler, timings, embeddingTiming));
404
428
  };
405
429
  const scheduleEmbeddingTask = async (task) => {
430
+ throwFirstEmbeddingError();
406
431
  throwIfIndexCancelled(ctx);
407
- const promise = task().finally(() => {
432
+ if (!modelPrepared && prepareModel) {
433
+ // Finish shared initialization before any file or fragment batch is queued.
434
+ try {
435
+ await embeddingTiming.time(() => prepareModel({
436
+ signal: ctx.signal,
437
+ onProgress: (progress) => reportModelDownloadProgress(stats, progress, onProgress, embeddingScheduler),
438
+ }));
439
+ }
440
+ catch (error) {
441
+ throwIfIndexCancelled(ctx);
442
+ throw error;
443
+ }
444
+ throwIfIndexCancelled(ctx);
445
+ }
446
+ modelPrepared = true;
447
+ const cleanup = () => {
408
448
  runningEmbeddings.delete(promise);
449
+ };
450
+ const promise = Promise.resolve()
451
+ .then(task)
452
+ .then(cleanup, (error) => {
453
+ if (!firstEmbeddingError) {
454
+ firstEmbeddingError = { error };
455
+ }
456
+ cleanup();
409
457
  });
410
458
  runningEmbeddings.add(promise);
411
459
  if (runningEmbeddings.size >= embeddingScheduler.taskConcurrency) {
412
460
  await Promise.race(runningEmbeddings);
413
461
  }
462
+ throwFirstEmbeddingError();
463
+ throwIfIndexCancelled(ctx);
414
464
  };
415
465
  try {
416
466
  for (const file of files) {
467
+ throwFirstEmbeddingError();
417
468
  throwIfIndexCancelled(ctx);
418
469
  onProgress(stats, `reading ${file.relativePath}`);
419
470
  const prepared = await timings.time("index_prepare", () => prepareFile(file, ctx));
471
+ throwFirstEmbeddingError();
420
472
  throwIfIndexCancelled(ctx);
421
473
  if ("failedReason" in prepared) {
422
474
  recordFileFailed(stats, file, prepared.failedReason);
@@ -450,6 +502,8 @@ async function indexFiles(files, ctx, onProgress, timings) {
450
502
  }
451
503
  await flushBatch();
452
504
  await Promise.all(runningEmbeddings);
505
+ throwFirstEmbeddingError();
506
+ throwIfIndexCancelled(ctx);
453
507
  }
454
508
  catch (error) {
455
509
  await Promise.allSettled(runningEmbeddings);
@@ -511,13 +565,8 @@ async function embedAndCommitBatch(files, ctx, stats, onProgress, embeddingSched
511
565
  if (indexIsCancelled(ctx)) {
512
566
  throw indexCancellationError(ctx);
513
567
  }
514
- if (isRetryableEmbeddingError(error)) {
515
- for (const file of files) {
516
- const reason = markFileFailed(ctx, file.file, error, "embed");
517
- recordFileFailed(stats, file.file, reason);
518
- onProgress(stats, finishedFileDetail(false, file.file.relativePath));
519
- }
520
- return;
568
+ if (shouldFailFastEmbeddingError(error, ctx.embeddingModel)) {
569
+ throw error;
521
570
  }
522
571
  for (const file of files) {
523
572
  onProgress(stats, `embedding ${file.file.relativePath}`, embeddingScheduler.snapshot());
@@ -537,6 +586,9 @@ async function embedAndCommitFile(file, ctx, stats, onProgress, embeddingSchedul
537
586
  if (indexIsCancelled(ctx)) {
538
587
  throw indexCancellationError(ctx);
539
588
  }
589
+ if (shouldFailFastEmbeddingError(error, ctx.embeddingModel)) {
590
+ throw error;
591
+ }
540
592
  const reason = markFileFailed(ctx, file.file, error, "embed");
541
593
  recordFileFailed(stats, file.file, reason);
542
594
  onProgress(stats, finishedFileDetail(false, file.file.relativePath));
@@ -646,7 +698,11 @@ async function embedFragments(fragments, model, embeddingScheduler, signal, onMo
646
698
  }
647
699
  const vectors = new Array(fragments.length);
648
700
  const truncatedInputIndexes = [];
649
- const results = await Promise.allSettled(batches.map((batch) => embedFragmentBatch(batch.fragments, model, batch.start, embeddingScheduler, signal, onModelProgress)));
701
+ const batchAbortController = new AbortController();
702
+ const batchSignal = signal
703
+ ? AbortSignal.any([signal, batchAbortController.signal])
704
+ : batchAbortController.signal;
705
+ const results = await Promise.allSettled(batches.map((batch) => embedFragmentBatch(batch.fragments, model, batch.start, embeddingScheduler, batchSignal, onModelProgress, (error) => batchAbortController.abort(error))));
650
706
  let firstError;
651
707
  for (const [index, result] of results.entries()) {
652
708
  if (result.status === "rejected") {
@@ -667,30 +723,33 @@ async function embedFragments(fragments, model, embeddingScheduler, signal, onMo
667
723
  truncated: truncatedInputIndexes,
668
724
  };
669
725
  }
670
- async function embedFragmentBatch(fragments, model, startIndex, embeddingScheduler, signal, onModelProgress) {
726
+ async function embedFragmentBatch(fragments, model, startIndex, embeddingScheduler, signal, onModelProgress, onTerminalFailure) {
671
727
  const contents = fragments.map((fragment) => fragment.embeddingContent);
672
728
  try {
673
- return await embedContentsWithRetry(contents, model, embeddingScheduler, signal, onModelProgress);
729
+ return await embedContentsWithRetry(contents, model, embeddingScheduler, signal, onModelProgress, onTerminalFailure);
674
730
  }
675
731
  catch (error) {
676
- if (fragments.length === 1 || isRetryableEmbeddingError(error)) {
732
+ if (fragments.length === 1 || shouldFailFastEmbeddingError(error, model)) {
677
733
  throw error;
678
734
  }
679
- return await embedFragmentBatchOneByOne(fragments, model, startIndex, embeddingScheduler, signal, onModelProgress);
735
+ return await embedFragmentBatchOneByOne(fragments, model, startIndex, embeddingScheduler, signal, onModelProgress, onTerminalFailure);
680
736
  }
681
737
  }
682
- async function embedFragmentBatchOneByOne(fragments, model, startIndex, embeddingScheduler, signal, onModelProgress) {
738
+ async function embedFragmentBatchOneByOne(fragments, model, startIndex, embeddingScheduler, signal, onModelProgress, onTerminalFailure) {
683
739
  const vectors = [];
684
740
  const truncatedInputIndexes = [];
685
741
  for (const [index, fragment] of fragments.entries()) {
686
742
  try {
687
- const result = await embedContentsWithRetry([fragment.embeddingContent], model, embeddingScheduler, signal, onModelProgress);
743
+ const result = await embedContentsWithRetry([fragment.embeddingContent], model, embeddingScheduler, signal, onModelProgress, onTerminalFailure);
688
744
  vectors.push(result.vectors[0]);
689
745
  if (result.truncated.length > 0) {
690
746
  truncatedInputIndexes.push(index);
691
747
  }
692
748
  }
693
749
  catch (error) {
750
+ if (shouldFailFastEmbeddingError(error, model)) {
751
+ throw error;
752
+ }
694
753
  throw new EngineError("Embedding entity fragment failed after one-by-one fallback", {
695
754
  code: "ZVEC_GREP.ENGINE.INDEXING.EMBEDDING_FRAGMENT_FAILED",
696
755
  context: errorDetails([
@@ -710,7 +769,7 @@ async function embedFragmentBatchOneByOne(fragments, model, startIndex, embeddin
710
769
  truncated: truncatedInputIndexes,
711
770
  };
712
771
  }
713
- async function embedContentsWithRetry(contents, model, embeddingScheduler, signal, onModelProgress) {
772
+ async function embedContentsWithRetry(contents, model, embeddingScheduler, signal, onModelProgress, onTerminalFailure) {
714
773
  let attempt = 0;
715
774
  while (true) {
716
775
  let retry = nonRetryableEmbeddingError();
@@ -722,7 +781,7 @@ async function embedContentsWithRetry(contents, model, embeddingScheduler, signa
722
781
  signal,
723
782
  onProgress: onModelProgress,
724
783
  }), signal, (error) => {
725
- retry = classifyEmbeddingRetry(error);
784
+ retry = classifyEmbeddingRetry(error, model);
726
785
  delayMs = retryDelayMs(attempt, retry);
727
786
  if (retry.retryable) {
728
787
  embeddingScheduler.recordRetryableFailure({
@@ -730,6 +789,10 @@ async function embedContentsWithRetry(contents, model, embeddingScheduler, signa
730
789
  delayMs,
731
790
  });
732
791
  }
792
+ if (retry.failFast &&
793
+ (!retry.retryable || attempt >= maxRetryAttempts(retry))) {
794
+ onTerminalFailure?.(error);
795
+ }
733
796
  });
734
797
  embeddingScheduler.recordSuccess();
735
798
  return result;
@@ -741,7 +804,7 @@ async function embedContentsWithRetry(contents, model, embeddingScheduler, signa
741
804
  : new Error("Embedding was cancelled.");
742
805
  }
743
806
  if (!retry.retryable) {
744
- retry = classifyEmbeddingRetry(error);
807
+ retry = classifyEmbeddingRetry(error, model);
745
808
  delayMs = retryDelayMs(attempt, retry);
746
809
  }
747
810
  if (attempt >= maxRetryAttempts(retry) || !retry.retryable) {
@@ -903,29 +966,122 @@ class AdaptiveEmbeddingScheduler {
903
966
  function oneLine(value) {
904
967
  return value.replace(/\s+/g, " ").trim();
905
968
  }
906
- function isRetryableEmbeddingError(error) {
907
- return classifyEmbeddingRetry(error).retryable;
969
+ function shouldFailFastEmbeddingError(error, model) {
970
+ return classifyEmbeddingRetry(error, model).failFast;
908
971
  }
909
- function classifyEmbeddingRetry(error) {
910
- const message = errorToMessage(error);
911
- const context = isEngineError(error) && error.context ? ` ${error.context}` : "";
912
- const text = `${message}${context}`;
972
+ function classifyEmbeddingRetry(error, model) {
973
+ const codes = errorCodes(error);
974
+ const text = errorChainText(error);
913
975
  const status = httpStatusFromText(text);
914
- const rateLimited = status === 429 ||
915
- /rate limit|quota exceeded|too many requests|request rate increased too quickly/i.test(text);
916
- const serverError = typeof status === "number" && status >= 500 && status <= 599;
976
+ const remoteEmbedding = model.info.provider !== "local";
977
+ const rateLimited = remoteEmbedding &&
978
+ (status === 429 ||
979
+ /rate limit|quota exceeded|too many requests|request rate increased too quickly/i.test(text));
980
+ const serverError = remoteEmbedding &&
981
+ typeof status === "number" &&
982
+ status >= 500 &&
983
+ status <= 599;
984
+ const requestTimeout = remoteEmbedding && status === 408;
985
+ const requestFailure = codes.some((code) => code.endsWith("_REQUEST_FAILED"));
986
+ const transientNetworkFailure = remoteEmbedding && requestFailure && isTransientNetworkFailure(text);
987
+ const sharedLocalModelFailure = codes.some((code) => code === "ZVEC_GREP.ENGINE.MODELS.MODEL2VEC_DOWNLOAD_FAILED" ||
988
+ code === "ZVEC_GREP.ENGINE.MODELS.MODEL2VEC_LOAD_FAILED" ||
989
+ code === "ZVEC_GREP.ENGINE.MODELS.MODEL2VEC_DISPOSED");
990
+ const retryable = !sharedLocalModelFailure &&
991
+ (rateLimited || serverError || requestTimeout || transientNetworkFailure);
992
+ const remoteConfigurationFailure = remoteEmbedding &&
993
+ (codes.some((code) => code.endsWith("_MISSING_API_KEY") || code.endsWith("_MISSING_ENDPOINT")) ||
994
+ status === 401 ||
995
+ status === 403 ||
996
+ status === 404 ||
997
+ /\b(?:invalid|missing|unauthorized|forbidden)[ _-]?(?:api[ _-]?)?key\b/i.test(text));
998
+ const permanentRemoteModelFailure = remoteEmbedding &&
999
+ (codes.includes("ZVEC_GREP.ENGINE.MODELS.EMBEDDING_DIMENSION_MISMATCH") ||
1000
+ (status === 400 && isPermanentRemoteModelBadRequest(text)));
917
1001
  return {
918
- retryable: rateLimited || serverError,
1002
+ retryable,
919
1003
  rateLimited,
1004
+ failFast: retryable ||
1005
+ sharedLocalModelFailure ||
1006
+ remoteConfigurationFailure ||
1007
+ permanentRemoteModelFailure ||
1008
+ (remoteEmbedding && requestFailure),
920
1009
  retryAfterMs: retryAfterMsFromText(text),
921
1010
  };
922
1011
  }
1012
+ function isPermanentRemoteModelBadRequest(text) {
1013
+ const providerCode = /\bproviderCode=([^\s]+)/i.exec(text)?.[1];
1014
+ const normalizedCode = providerCode
1015
+ ?.replace(/[^a-z0-9]+/gi, "_")
1016
+ .replace(/^_+|_+$/g, "")
1017
+ .toLowerCase();
1018
+ if (normalizedCode &&
1019
+ PERMANENT_REMOTE_MODEL_PROVIDER_CODES.has(normalizedCode)) {
1020
+ return true;
1021
+ }
1022
+ const providerMessage = /\bproviderMessage=(.*?)(?=\s+ZVEC_GREP\.|$)/i.exec(text)?.[1];
1023
+ return (providerMessage !== undefined &&
1024
+ /(?:\b(?:invalid|unsupported|unknown)\b.{0,48}\bmodel\b|\bmodel\b.{0,48}\b(?:invalid|unsupported|unknown|not found|does not exist)\b|\b(?:invalid|unsupported|out of range)\b.{0,48}\bdimensions?\b|\bdimensions?\b.{0,48}\b(?:invalid|unsupported|not supported|out of range|must|should|expected|between|only supports?)\b)/i.test(providerMessage));
1025
+ }
923
1026
  function nonRetryableEmbeddingError() {
924
1027
  return {
925
1028
  retryable: false,
926
1029
  rateLimited: false,
1030
+ failFast: false,
927
1031
  };
928
1032
  }
1033
+ function errorCodes(error) {
1034
+ const codes = [];
1035
+ for (const current of errorChain(error)) {
1036
+ if (typeof current === "object" &&
1037
+ current !== null &&
1038
+ "code" in current &&
1039
+ typeof current.code === "string") {
1040
+ codes.push(current.code);
1041
+ }
1042
+ }
1043
+ return codes;
1044
+ }
1045
+ function errorChainText(error) {
1046
+ const parts = [];
1047
+ for (const current of errorChain(error)) {
1048
+ if (current instanceof Error) {
1049
+ parts.push(current.name, current.message);
1050
+ }
1051
+ else {
1052
+ parts.push(String(current));
1053
+ }
1054
+ if (isEngineError(current) && current.context) {
1055
+ parts.push(current.context);
1056
+ }
1057
+ if (typeof current === "object" &&
1058
+ current !== null &&
1059
+ "code" in current &&
1060
+ typeof current.code === "string") {
1061
+ parts.push(current.code);
1062
+ }
1063
+ }
1064
+ return parts.join(" ");
1065
+ }
1066
+ function errorChain(error) {
1067
+ const chain = [];
1068
+ const seen = new Set();
1069
+ let current = error;
1070
+ while (current !== undefined && current !== null && !seen.has(current)) {
1071
+ seen.add(current);
1072
+ chain.push(current);
1073
+ if (typeof current !== "object" ||
1074
+ !("cause" in current) ||
1075
+ current.cause === undefined) {
1076
+ break;
1077
+ }
1078
+ current = current.cause;
1079
+ }
1080
+ return chain;
1081
+ }
1082
+ function isTransientNetworkFailure(text) {
1083
+ return /\b(?:EAI_AGAIN|ECONNREFUSED|ECONNRESET|EHOSTUNREACH|ENETDOWN|ENETUNREACH|ENOTFOUND|ETIMEDOUT|UND_ERR_CONNECT_TIMEOUT|UND_ERR_HEADERS_TIMEOUT|UND_ERR_SOCKET|TimeoutError)\b|connection (?:reset|timed out)|network connection (?:failed|was lost)|socket hang up|temporary failure/i.test(text);
1084
+ }
929
1085
  function maxRetryAttempts(retry) {
930
1086
  return retry.rateLimited
931
1087
  ? EMBEDDING_RATE_LIMIT_MAX_RETRIES
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engine/pipeline/indexing/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engine/pipeline/indexing/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function replaceFileAtomically(path: string, contents: string, options?: {
2
+ mode?: number;
3
+ }): Promise<void>;
@@ -0,0 +1,39 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { rename, unlink, writeFile } from "node:fs/promises";
3
+ const REPLACE_RETRY_DELAYS_MS = [5, 10, 20, 40, 80, 160, 320];
4
+ export async function replaceFileAtomically(path, contents, options = {}) {
5
+ const temporaryPath = `${path}.${process.pid}.${randomUUID()}.tmp`;
6
+ try {
7
+ await writeFile(temporaryPath, contents, {
8
+ encoding: "utf8",
9
+ mode: options.mode,
10
+ flag: "wx",
11
+ });
12
+ await renameWithTransientRetries(temporaryPath, path);
13
+ }
14
+ finally {
15
+ await unlink(temporaryPath).catch(() => undefined);
16
+ }
17
+ }
18
+ async function renameWithTransientRetries(source, destination) {
19
+ for (const delayMs of REPLACE_RETRY_DELAYS_MS) {
20
+ try {
21
+ await rename(source, destination);
22
+ return;
23
+ }
24
+ catch (error) {
25
+ if (!isTransientReplacementError(error))
26
+ throw error;
27
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
28
+ }
29
+ }
30
+ await rename(source, destination);
31
+ }
32
+ function isTransientReplacementError(error) {
33
+ const code = error?.code;
34
+ return (code === "EACCES" ||
35
+ code === "EBUSY" ||
36
+ code === "EEXIST" ||
37
+ code === "EPERM");
38
+ }
39
+ //# sourceMappingURL=atomic-file.js.map