@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.
- package/README.md +42 -9
- package/README_CN.md +39 -11
- package/dist/authorization/prompt.d.ts +1 -0
- package/dist/authorization/prompt.js +1 -0
- package/dist/authorization/prompt.js.map +1 -1
- package/dist/cli/args.js +5 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands.js +46 -1
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/errors.d.ts +3 -0
- package/dist/cli/errors.js +39 -6
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/format/status.d.ts +2 -0
- package/dist/cli/format/status.js +24 -6
- package/dist/cli/format/status.js.map +1 -1
- package/dist/cli/help.js +24 -8
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.js +3 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/install.js +542 -34
- package/dist/cli/install.js.map +1 -1
- package/dist/cli/managed-rg.js +9 -1
- package/dist/cli/managed-rg.js.map +1 -1
- package/dist/daemon/backend.js +4 -0
- package/dist/daemon/backend.js.map +1 -1
- package/dist/daemon/config.d.ts +3 -0
- package/dist/daemon/config.js +19 -0
- package/dist/daemon/config.js.map +1 -1
- package/dist/daemon/job-scheduler.d.ts +7 -4
- package/dist/daemon/job-scheduler.js +80 -12
- package/dist/daemon/job-scheduler.js.map +1 -1
- package/dist/daemon/root-lease.js +18 -9
- package/dist/daemon/root-lease.js.map +1 -1
- package/dist/daemon/root-runtime.d.ts +1 -0
- package/dist/daemon/root-runtime.js +4 -1
- package/dist/daemon/root-runtime.js.map +1 -1
- package/dist/daemon/runtime-manager.d.ts +1 -0
- package/dist/daemon/runtime-manager.js +10 -4
- package/dist/daemon/runtime-manager.js.map +1 -1
- package/dist/daemon/runtime.js +3 -1
- package/dist/daemon/runtime.js.map +1 -1
- package/dist/daemon/server-controller.d.ts +0 -1
- package/dist/daemon/server-controller.js +37 -37
- package/dist/daemon/server-controller.js.map +1 -1
- package/dist/daemon/watch-manager.d.ts +1 -1
- package/dist/daemon/watch-manager.js +16 -9
- package/dist/daemon/watch-manager.js.map +1 -1
- package/dist/engine/errors.d.ts +1 -0
- package/dist/engine/errors.js +11 -0
- package/dist/engine/errors.js.map +1 -1
- package/dist/engine/models/artifact-cache-lock.d.ts +16 -0
- package/dist/engine/models/artifact-cache-lock.js +228 -0
- package/dist/engine/models/artifact-cache-lock.js.map +1 -0
- package/dist/engine/models/artifact-downloader.d.ts +77 -0
- package/dist/engine/models/artifact-downloader.js +766 -0
- package/dist/engine/models/artifact-downloader.js.map +1 -0
- package/dist/engine/models/backends/llama-cpp.d.ts +8 -8
- package/dist/engine/models/backends/llama-cpp.js +83 -21
- package/dist/engine/models/backends/llama-cpp.js.map +1 -1
- package/dist/engine/models/backends/model2vec.d.ts +6 -8
- package/dist/engine/models/backends/model2vec.js +142 -109
- package/dist/engine/models/backends/model2vec.js.map +1 -1
- package/dist/engine/models/backends/transformers-js.d.ts +9 -9
- package/dist/engine/models/backends/transformers-js.js +71 -27
- package/dist/engine/models/backends/transformers-js.js.map +1 -1
- package/dist/engine/models/catalog.d.ts +261 -2
- package/dist/engine/models/catalog.js +306 -2
- package/dist/engine/models/catalog.js.map +1 -1
- package/dist/engine/models/download-progress.d.ts +5 -4
- package/dist/engine/models/download-progress.js +26 -27
- package/dist/engine/models/download-progress.js.map +1 -1
- package/dist/engine/models/embeddings.d.ts +2 -0
- package/dist/engine/models/embeddings.js.map +1 -1
- package/dist/engine/pipeline/indexing/index.js +201 -45
- package/dist/engine/pipeline/indexing/index.js.map +1 -1
- package/dist/engine/utils/atomic-file.d.ts +3 -0
- package/dist/engine/utils/atomic-file.js +39 -0
- package/dist/engine/utils/atomic-file.js.map +1 -0
- package/dist/mcp/input-normalization.js +2 -2
- package/dist/mcp/input-normalization.js.map +1 -1
- package/dist/mcp/schemas.d.ts +13 -17
- package/dist/mcp/schemas.js +9 -3
- package/dist/mcp/schemas.js.map +1 -1
- package/dist/mcp/stdio-bridge.d.ts +4 -0
- package/dist/mcp/stdio-bridge.js +59 -3
- package/dist/mcp/stdio-bridge.js.map +1 -1
- package/dist/mcp/tools.d.ts +8 -8
- package/dist/mcp/tools.js +6 -0
- package/dist/mcp/tools.js.map +1 -1
- package/docs/01-agents.md +80 -9
- package/docs/02-cli.md +9 -4
- package/docs/06-server.md +13 -0
- package/docs/07-embedding.md +28 -1
- 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
|
|
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
|
|
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
|
-
|
|
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 (
|
|
515
|
-
|
|
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
|
|
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 ||
|
|
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
|
|
907
|
-
return classifyEmbeddingRetry(error).
|
|
969
|
+
function shouldFailFastEmbeddingError(error, model) {
|
|
970
|
+
return classifyEmbeddingRetry(error, model).failFast;
|
|
908
971
|
}
|
|
909
|
-
function classifyEmbeddingRetry(error) {
|
|
910
|
-
const
|
|
911
|
-
const
|
|
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
|
|
915
|
-
|
|
916
|
-
|
|
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
|
|
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,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
|