@autorag/librarian 2.10.2 → 2.10.3

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.
@@ -9,7 +9,7 @@ export type SearchDocumentDiagnosticSeverity = "info" | "warning" | "error";
9
9
  * (#21/#22) does not require another source-breaking type change; codes not yet
10
10
  * emitted are still valid members.
11
11
  */
12
- export type SearchDocumentDiagnosticCode = "empty-query" | "no-verified-results" | "unknown-warning" | "caller-tool-dropped" | "minsync-staging-excluded" | "minsync-sync-failed" | "minsync-lock-held" | "embedder-unavailable" | "embedding-identity-mismatch" | "parser-skipped" | "parser-failed" | "parser-crashed" | "source-vanished" | "source-unreadable" | "source-read-failed" | "mirror-write-failed" | "parser-warning" | "duplicate-excluded" | "unsupported-file" | "stale-index" | "deleted-mirror" | "search-root-unavailable" | "mass-delete-suppressed" | "walk-truncated" | "directory-unreadable" | "pdf-extract-thin" | "retrieval-method-failed" | "rerank-failed" | "jikji-unavailable" | "jikji-prepare-failed" | "jikji-find-failed" | "everything-index-failed" | "fsearch-index-failed" | "fsearch-binary-missing" | "refresh-failed" | "refresh-interrupted" | "watch-failed" | "watch-limited" | "unknown-datasource-skill" | "no-final-answer" | "model-request-failed" | "tool-call-burst" | "query-routed" | "query-route-fallback" | "query-decomposition-failed" | "follow-up-skipped" | "follow-up-check-fallback" | "datasources-selected" | "datasource-selection-fallback" | "citation-without-result" | "evidence-judged" | "evidence-judgment-fallback" | "memory-search-fallback" | "self-config-unavailable" | "self-config-rolled-back";
12
+ export type SearchDocumentDiagnosticCode = "empty-query" | "no-verified-results" | "unknown-warning" | "caller-tool-dropped" | "minsync-staging-excluded" | "minsync-file-skipped" | "minsync-sync-failed" | "minsync-lock-held" | "embedder-unavailable" | "embedding-identity-mismatch" | "parser-skipped" | "parser-failed" | "parser-crashed" | "source-vanished" | "source-unreadable" | "source-read-failed" | "mirror-write-failed" | "parser-warning" | "duplicate-excluded" | "unsupported-file" | "stale-index" | "deleted-mirror" | "search-root-unavailable" | "mass-delete-suppressed" | "walk-truncated" | "directory-unreadable" | "pdf-extract-thin" | "retrieval-method-failed" | "rerank-failed" | "jikji-unavailable" | "jikji-prepare-failed" | "jikji-find-failed" | "everything-index-failed" | "fsearch-index-failed" | "fsearch-binary-missing" | "refresh-failed" | "refresh-interrupted" | "watch-failed" | "watch-limited" | "unknown-datasource-skill" | "no-final-answer" | "model-request-failed" | "tool-call-burst" | "query-routed" | "query-route-fallback" | "query-decomposition-failed" | "follow-up-skipped" | "follow-up-check-fallback" | "datasources-selected" | "datasource-selection-fallback" | "citation-without-result" | "evidence-judged" | "evidence-judgment-fallback" | "memory-search-fallback" | "self-config-unavailable" | "self-config-rolled-back";
13
13
  export interface SearchDocumentDiagnostic {
14
14
  readonly code: SearchDocumentDiagnosticCode;
15
15
  readonly severity: SearchDocumentDiagnosticSeverity;
package/dist/cli/index.js CHANGED
@@ -17388,7 +17388,8 @@ class MinSyncClient {
17388
17388
  restoreConfig();
17389
17389
  return this.lockHeldResult(result.stderr);
17390
17390
  }
17391
- if (!result.ok) {
17391
+ const partial = !result.ok && result.code === MINSYNC_PARTIAL_SYNC_EXIT_CODE ? readPartialSync(result.stdout) : undefined;
17392
+ if (!result.ok && partial === undefined) {
17392
17393
  restoreConfig();
17393
17394
  return {
17394
17395
  ok: false,
@@ -17408,10 +17409,12 @@ class MinSyncClient {
17408
17409
  }
17409
17410
  if (effective.identity)
17410
17411
  this.writeIdentity(effective.identity);
17412
+ const filesFailed = partial?.filesFailed ?? [];
17411
17413
  return {
17412
17414
  ok: true,
17413
17415
  synced: readSyncedCount(result.stdout),
17414
17416
  workspacePath: this.workspacePath,
17417
+ ...filesFailed.length > 0 ? { filesFailed } : {},
17415
17418
  ...identityChanged ? {
17416
17419
  diagnostic: {
17417
17420
  code: "embedding-identity-mismatch",
@@ -17443,6 +17446,19 @@ function readConfigSnapshot(configPath) {
17443
17446
  throw error;
17444
17447
  }
17445
17448
  }
17449
+ function readPartialSync(stdout) {
17450
+ const parsed = parseJson7(stdout);
17451
+ if (!isRecord11(parsed) || parsed.partial !== true)
17452
+ return;
17453
+ const failures = Array.isArray(parsed.files_failed) ? parsed.files_failed : [];
17454
+ return {
17455
+ filesFailed: failures.filter(isRecord11).map((failure) => ({
17456
+ path: typeof failure.path === "string" ? failure.path : "(unknown)",
17457
+ stage: typeof failure.stage === "string" ? failure.stage : "unknown",
17458
+ error: typeof failure.error === "string" ? failure.error : "unknown error"
17459
+ }))
17460
+ };
17461
+ }
17446
17462
  function readSyncedCount(stdout) {
17447
17463
  const parsed = parseJson7(stdout);
17448
17464
  if (!isRecord11(parsed))
@@ -17498,7 +17514,7 @@ function isIdentity(value) {
17498
17514
  function isRecord11(value) {
17499
17515
  return typeof value === "object" && value !== null;
17500
17516
  }
17501
- var MINSYNC_OLLAMA_MIGRATION_MESSAGE = "This workspace uses the legacy 768-dimensional Ollama/TEI embedding path. Reindex explicitly, or pin an explicit Ollama/TEI embedder config before using the new default runtime.", API_KEY_ENV_PATTERN2, MINSYNC_LOCK_HELD_EXIT_CODE = 3, MinSyncQueryError;
17517
+ var MINSYNC_OLLAMA_MIGRATION_MESSAGE = "This workspace uses the legacy 768-dimensional Ollama/TEI embedding path. Reindex explicitly, or pin an explicit Ollama/TEI embedder config before using the new default runtime.", API_KEY_ENV_PATTERN2, MINSYNC_LOCK_HELD_EXIT_CODE = 3, MINSYNC_PARTIAL_SYNC_EXIT_CODE = 6, MinSyncQueryError;
17502
17518
  var init_client10 = __esm(() => {
17503
17519
  init_embedder_config();
17504
17520
  init_errors4();
@@ -17742,7 +17758,7 @@ function isGitHubAsset(value) {
17742
17758
  function isRecord12(value) {
17743
17759
  return typeof value === "object" && value !== null;
17744
17760
  }
17745
- var LATEST_RELEASE_URL = "https://api.github.com/repos/NomaDamas/MinSync/releases/latest", SHA256_HEX_PATTERN, MINSYNC_VERSION = "0.4.7", MINSYNC_CARGO_INSTALL_TIMEOUT_MS, CARGO_PROBE_TIMEOUT_MS = 5000, MinSyncReleaseError;
17761
+ var LATEST_RELEASE_URL = "https://api.github.com/repos/NomaDamas/MinSync/releases/latest", SHA256_HEX_PATTERN, MINSYNC_VERSION = "0.4.8", MINSYNC_CARGO_INSTALL_TIMEOUT_MS, CARGO_PROBE_TIMEOUT_MS = 5000, MinSyncReleaseError;
17746
17762
  var init_installer2 = __esm(() => {
17747
17763
  init_process();
17748
17764
  SHA256_HEX_PATTERN = /^[a-f0-9]{64}$/;
@@ -32259,6 +32275,7 @@ ${initialRetrievalContext ?? "Pending; continue only with a brief progress state
32259
32275
  ...summary.diagnostics,
32260
32276
  ...minsyncDiagnostics,
32261
32277
  ...stagingExcludedDiagnostics(minsync?.stagingExcluded),
32278
+ ...fileSkippedDiagnostics(minsync?.filesFailed),
32262
32279
  ...everythingDiagnostics,
32263
32280
  ...fsearchDiagnostics
32264
32281
  ],
@@ -32895,6 +32912,14 @@ function stagingExcludedDiagnostics(excluded) {
32895
32912
  source
32896
32913
  }));
32897
32914
  }
32915
+ function fileSkippedDiagnostics(failed) {
32916
+ return (failed ?? []).map((failure) => ({
32917
+ code: "minsync-file-skipped",
32918
+ severity: "warning",
32919
+ message: `MinSync skipped this file at the ${failure.stage} stage and will retry it on the next sync: ${sanitizeDiagnosticMessage(failure.error)}`,
32920
+ source: failure.path
32921
+ }));
32922
+ }
32898
32923
  function toSearchDiagnostic(diagnostic) {
32899
32924
  return {
32900
32925
  code: diagnostic.code,
package/dist/core.js CHANGED
@@ -5513,7 +5513,8 @@ class MinSyncClient {
5513
5513
  restoreConfig();
5514
5514
  return this.lockHeldResult(result.stderr);
5515
5515
  }
5516
- if (!result.ok) {
5516
+ const partial = !result.ok && result.code === MINSYNC_PARTIAL_SYNC_EXIT_CODE ? readPartialSync(result.stdout) : undefined;
5517
+ if (!result.ok && partial === undefined) {
5517
5518
  restoreConfig();
5518
5519
  return {
5519
5520
  ok: false,
@@ -5533,10 +5534,12 @@ class MinSyncClient {
5533
5534
  }
5534
5535
  if (effective.identity)
5535
5536
  this.writeIdentity(effective.identity);
5537
+ const filesFailed = partial?.filesFailed ?? [];
5536
5538
  return {
5537
5539
  ok: true,
5538
5540
  synced: readSyncedCount(result.stdout),
5539
5541
  workspacePath: this.workspacePath,
5542
+ ...filesFailed.length > 0 ? { filesFailed } : {},
5540
5543
  ...identityChanged ? {
5541
5544
  diagnostic: {
5542
5545
  code: "embedding-identity-mismatch",
@@ -5568,6 +5571,19 @@ function readConfigSnapshot(configPath) {
5568
5571
  throw error;
5569
5572
  }
5570
5573
  }
5574
+ function readPartialSync(stdout) {
5575
+ const parsed = parseJson(stdout);
5576
+ if (!isRecord4(parsed) || parsed.partial !== true)
5577
+ return;
5578
+ const failures = Array.isArray(parsed.files_failed) ? parsed.files_failed : [];
5579
+ return {
5580
+ filesFailed: failures.filter(isRecord4).map((failure) => ({
5581
+ path: typeof failure.path === "string" ? failure.path : "(unknown)",
5582
+ stage: typeof failure.stage === "string" ? failure.stage : "unknown",
5583
+ error: typeof failure.error === "string" ? failure.error : "unknown error"
5584
+ }))
5585
+ };
5586
+ }
5571
5587
  function readSyncedCount(stdout) {
5572
5588
  const parsed = parseJson(stdout);
5573
5589
  if (!isRecord4(parsed))
@@ -5623,7 +5639,7 @@ function isIdentity(value) {
5623
5639
  function isRecord4(value) {
5624
5640
  return typeof value === "object" && value !== null;
5625
5641
  }
5626
- var MINSYNC_OLLAMA_MIGRATION_MESSAGE = "This workspace uses the legacy 768-dimensional Ollama/TEI embedding path. Reindex explicitly, or pin an explicit Ollama/TEI embedder config before using the new default runtime.", API_KEY_ENV_PATTERN, MINSYNC_LOCK_HELD_EXIT_CODE = 3, MinSyncQueryError;
5642
+ var MINSYNC_OLLAMA_MIGRATION_MESSAGE = "This workspace uses the legacy 768-dimensional Ollama/TEI embedding path. Reindex explicitly, or pin an explicit Ollama/TEI embedder config before using the new default runtime.", API_KEY_ENV_PATTERN, MINSYNC_LOCK_HELD_EXIT_CODE = 3, MINSYNC_PARTIAL_SYNC_EXIT_CODE = 6, MinSyncQueryError;
5627
5643
  var init_client4 = __esm(() => {
5628
5644
  init_embedder_config();
5629
5645
  init_errors();
@@ -5867,7 +5883,7 @@ function isGitHubAsset(value) {
5867
5883
  function isRecord5(value) {
5868
5884
  return typeof value === "object" && value !== null;
5869
5885
  }
5870
- var LATEST_RELEASE_URL = "https://api.github.com/repos/NomaDamas/MinSync/releases/latest", SHA256_HEX_PATTERN, MINSYNC_VERSION = "0.4.7", MINSYNC_CARGO_INSTALL_TIMEOUT_MS, CARGO_PROBE_TIMEOUT_MS = 5000, MinSyncReleaseError;
5886
+ var LATEST_RELEASE_URL = "https://api.github.com/repos/NomaDamas/MinSync/releases/latest", SHA256_HEX_PATTERN, MINSYNC_VERSION = "0.4.8", MINSYNC_CARGO_INSTALL_TIMEOUT_MS, CARGO_PROBE_TIMEOUT_MS = 5000, MinSyncReleaseError;
5871
5887
  var init_installer2 = __esm(() => {
5872
5888
  init_process();
5873
5889
  SHA256_HEX_PATTERN = /^[a-f0-9]{64}$/;
@@ -21958,6 +21974,7 @@ ${initialRetrievalContext ?? "Pending; continue only with a brief progress state
21958
21974
  ...summary.diagnostics,
21959
21975
  ...minsyncDiagnostics,
21960
21976
  ...stagingExcludedDiagnostics(minsync?.stagingExcluded),
21977
+ ...fileSkippedDiagnostics(minsync?.filesFailed),
21961
21978
  ...everythingDiagnostics,
21962
21979
  ...fsearchDiagnostics
21963
21980
  ],
@@ -22594,6 +22611,14 @@ function stagingExcludedDiagnostics(excluded) {
22594
22611
  source
22595
22612
  }));
22596
22613
  }
22614
+ function fileSkippedDiagnostics(failed) {
22615
+ return (failed ?? []).map((failure) => ({
22616
+ code: "minsync-file-skipped",
22617
+ severity: "warning",
22618
+ message: `MinSync skipped this file at the ${failure.stage} stage and will retry it on the next sync: ${sanitizeDiagnosticMessage(failure.error)}`,
22619
+ source: failure.path
22620
+ }));
22621
+ }
22597
22622
  function toSearchDiagnostic(diagnostic) {
22598
22623
  return {
22599
22624
  code: diagnostic.code,
package/dist/index.js CHANGED
@@ -5513,7 +5513,8 @@ class MinSyncClient {
5513
5513
  restoreConfig();
5514
5514
  return this.lockHeldResult(result.stderr);
5515
5515
  }
5516
- if (!result.ok) {
5516
+ const partial = !result.ok && result.code === MINSYNC_PARTIAL_SYNC_EXIT_CODE ? readPartialSync(result.stdout) : undefined;
5517
+ if (!result.ok && partial === undefined) {
5517
5518
  restoreConfig();
5518
5519
  return {
5519
5520
  ok: false,
@@ -5533,10 +5534,12 @@ class MinSyncClient {
5533
5534
  }
5534
5535
  if (effective.identity)
5535
5536
  this.writeIdentity(effective.identity);
5537
+ const filesFailed = partial?.filesFailed ?? [];
5536
5538
  return {
5537
5539
  ok: true,
5538
5540
  synced: readSyncedCount(result.stdout),
5539
5541
  workspacePath: this.workspacePath,
5542
+ ...filesFailed.length > 0 ? { filesFailed } : {},
5540
5543
  ...identityChanged ? {
5541
5544
  diagnostic: {
5542
5545
  code: "embedding-identity-mismatch",
@@ -5568,6 +5571,19 @@ function readConfigSnapshot(configPath) {
5568
5571
  throw error;
5569
5572
  }
5570
5573
  }
5574
+ function readPartialSync(stdout) {
5575
+ const parsed = parseJson(stdout);
5576
+ if (!isRecord4(parsed) || parsed.partial !== true)
5577
+ return;
5578
+ const failures = Array.isArray(parsed.files_failed) ? parsed.files_failed : [];
5579
+ return {
5580
+ filesFailed: failures.filter(isRecord4).map((failure) => ({
5581
+ path: typeof failure.path === "string" ? failure.path : "(unknown)",
5582
+ stage: typeof failure.stage === "string" ? failure.stage : "unknown",
5583
+ error: typeof failure.error === "string" ? failure.error : "unknown error"
5584
+ }))
5585
+ };
5586
+ }
5571
5587
  function readSyncedCount(stdout) {
5572
5588
  const parsed = parseJson(stdout);
5573
5589
  if (!isRecord4(parsed))
@@ -5623,7 +5639,7 @@ function isIdentity(value) {
5623
5639
  function isRecord4(value) {
5624
5640
  return typeof value === "object" && value !== null;
5625
5641
  }
5626
- var MINSYNC_OLLAMA_MIGRATION_MESSAGE = "This workspace uses the legacy 768-dimensional Ollama/TEI embedding path. Reindex explicitly, or pin an explicit Ollama/TEI embedder config before using the new default runtime.", API_KEY_ENV_PATTERN, MINSYNC_LOCK_HELD_EXIT_CODE = 3, MinSyncQueryError;
5642
+ var MINSYNC_OLLAMA_MIGRATION_MESSAGE = "This workspace uses the legacy 768-dimensional Ollama/TEI embedding path. Reindex explicitly, or pin an explicit Ollama/TEI embedder config before using the new default runtime.", API_KEY_ENV_PATTERN, MINSYNC_LOCK_HELD_EXIT_CODE = 3, MINSYNC_PARTIAL_SYNC_EXIT_CODE = 6, MinSyncQueryError;
5627
5643
  var init_client4 = __esm(() => {
5628
5644
  init_embedder_config();
5629
5645
  init_errors();
@@ -5867,7 +5883,7 @@ function isGitHubAsset(value) {
5867
5883
  function isRecord5(value) {
5868
5884
  return typeof value === "object" && value !== null;
5869
5885
  }
5870
- var LATEST_RELEASE_URL = "https://api.github.com/repos/NomaDamas/MinSync/releases/latest", SHA256_HEX_PATTERN, MINSYNC_VERSION = "0.4.7", MINSYNC_CARGO_INSTALL_TIMEOUT_MS, CARGO_PROBE_TIMEOUT_MS = 5000, MinSyncReleaseError;
5886
+ var LATEST_RELEASE_URL = "https://api.github.com/repos/NomaDamas/MinSync/releases/latest", SHA256_HEX_PATTERN, MINSYNC_VERSION = "0.4.8", MINSYNC_CARGO_INSTALL_TIMEOUT_MS, CARGO_PROBE_TIMEOUT_MS = 5000, MinSyncReleaseError;
5871
5887
  var init_installer2 = __esm(() => {
5872
5888
  init_process();
5873
5889
  SHA256_HEX_PATTERN = /^[a-f0-9]{64}$/;
@@ -21958,6 +21974,7 @@ ${initialRetrievalContext ?? "Pending; continue only with a brief progress state
21958
21974
  ...summary.diagnostics,
21959
21975
  ...minsyncDiagnostics,
21960
21976
  ...stagingExcludedDiagnostics(minsync?.stagingExcluded),
21977
+ ...fileSkippedDiagnostics(minsync?.filesFailed),
21961
21978
  ...everythingDiagnostics,
21962
21979
  ...fsearchDiagnostics
21963
21980
  ],
@@ -22594,6 +22611,14 @@ function stagingExcludedDiagnostics(excluded) {
22594
22611
  source
22595
22612
  }));
22596
22613
  }
22614
+ function fileSkippedDiagnostics(failed) {
22615
+ return (failed ?? []).map((failure) => ({
22616
+ code: "minsync-file-skipped",
22617
+ severity: "warning",
22618
+ message: `MinSync skipped this file at the ${failure.stage} stage and will retry it on the next sync: ${sanitizeDiagnosticMessage(failure.error)}`,
22619
+ source: failure.path
22620
+ }));
22621
+ }
22597
22622
  function toSearchDiagnostic(diagnostic) {
22598
22623
  return {
22599
22624
  code: diagnostic.code,
package/dist/mcp/index.js CHANGED
@@ -5514,7 +5514,8 @@ class MinSyncClient {
5514
5514
  restoreConfig();
5515
5515
  return this.lockHeldResult(result.stderr);
5516
5516
  }
5517
- if (!result.ok) {
5517
+ const partial = !result.ok && result.code === MINSYNC_PARTIAL_SYNC_EXIT_CODE ? readPartialSync(result.stdout) : undefined;
5518
+ if (!result.ok && partial === undefined) {
5518
5519
  restoreConfig();
5519
5520
  return {
5520
5521
  ok: false,
@@ -5534,10 +5535,12 @@ class MinSyncClient {
5534
5535
  }
5535
5536
  if (effective.identity)
5536
5537
  this.writeIdentity(effective.identity);
5538
+ const filesFailed = partial?.filesFailed ?? [];
5537
5539
  return {
5538
5540
  ok: true,
5539
5541
  synced: readSyncedCount(result.stdout),
5540
5542
  workspacePath: this.workspacePath,
5543
+ ...filesFailed.length > 0 ? { filesFailed } : {},
5541
5544
  ...identityChanged ? {
5542
5545
  diagnostic: {
5543
5546
  code: "embedding-identity-mismatch",
@@ -5569,6 +5572,19 @@ function readConfigSnapshot(configPath) {
5569
5572
  throw error;
5570
5573
  }
5571
5574
  }
5575
+ function readPartialSync(stdout) {
5576
+ const parsed = parseJson(stdout);
5577
+ if (!isRecord4(parsed) || parsed.partial !== true)
5578
+ return;
5579
+ const failures = Array.isArray(parsed.files_failed) ? parsed.files_failed : [];
5580
+ return {
5581
+ filesFailed: failures.filter(isRecord4).map((failure) => ({
5582
+ path: typeof failure.path === "string" ? failure.path : "(unknown)",
5583
+ stage: typeof failure.stage === "string" ? failure.stage : "unknown",
5584
+ error: typeof failure.error === "string" ? failure.error : "unknown error"
5585
+ }))
5586
+ };
5587
+ }
5572
5588
  function readSyncedCount(stdout) {
5573
5589
  const parsed = parseJson(stdout);
5574
5590
  if (!isRecord4(parsed))
@@ -5624,7 +5640,7 @@ function isIdentity(value) {
5624
5640
  function isRecord4(value) {
5625
5641
  return typeof value === "object" && value !== null;
5626
5642
  }
5627
- var MINSYNC_OLLAMA_MIGRATION_MESSAGE = "This workspace uses the legacy 768-dimensional Ollama/TEI embedding path. Reindex explicitly, or pin an explicit Ollama/TEI embedder config before using the new default runtime.", API_KEY_ENV_PATTERN, MINSYNC_LOCK_HELD_EXIT_CODE = 3, MinSyncQueryError;
5643
+ var MINSYNC_OLLAMA_MIGRATION_MESSAGE = "This workspace uses the legacy 768-dimensional Ollama/TEI embedding path. Reindex explicitly, or pin an explicit Ollama/TEI embedder config before using the new default runtime.", API_KEY_ENV_PATTERN, MINSYNC_LOCK_HELD_EXIT_CODE = 3, MINSYNC_PARTIAL_SYNC_EXIT_CODE = 6, MinSyncQueryError;
5628
5644
  var init_client4 = __esm(() => {
5629
5645
  init_embedder_config();
5630
5646
  init_errors();
@@ -5868,7 +5884,7 @@ function isGitHubAsset(value) {
5868
5884
  function isRecord5(value) {
5869
5885
  return typeof value === "object" && value !== null;
5870
5886
  }
5871
- var LATEST_RELEASE_URL = "https://api.github.com/repos/NomaDamas/MinSync/releases/latest", SHA256_HEX_PATTERN, MINSYNC_VERSION = "0.4.7", MINSYNC_CARGO_INSTALL_TIMEOUT_MS, CARGO_PROBE_TIMEOUT_MS = 5000, MinSyncReleaseError;
5887
+ var LATEST_RELEASE_URL = "https://api.github.com/repos/NomaDamas/MinSync/releases/latest", SHA256_HEX_PATTERN, MINSYNC_VERSION = "0.4.8", MINSYNC_CARGO_INSTALL_TIMEOUT_MS, CARGO_PROBE_TIMEOUT_MS = 5000, MinSyncReleaseError;
5872
5888
  var init_installer2 = __esm(() => {
5873
5889
  init_process();
5874
5890
  SHA256_HEX_PATTERN = /^[a-f0-9]{64}$/;
@@ -21959,6 +21975,7 @@ ${initialRetrievalContext ?? "Pending; continue only with a brief progress state
21959
21975
  ...summary.diagnostics,
21960
21976
  ...minsyncDiagnostics,
21961
21977
  ...stagingExcludedDiagnostics(minsync?.stagingExcluded),
21978
+ ...fileSkippedDiagnostics(minsync?.filesFailed),
21962
21979
  ...everythingDiagnostics,
21963
21980
  ...fsearchDiagnostics
21964
21981
  ],
@@ -22595,6 +22612,14 @@ function stagingExcludedDiagnostics(excluded) {
22595
22612
  source
22596
22613
  }));
22597
22614
  }
22615
+ function fileSkippedDiagnostics(failed) {
22616
+ return (failed ?? []).map((failure) => ({
22617
+ code: "minsync-file-skipped",
22618
+ severity: "warning",
22619
+ message: `MinSync skipped this file at the ${failure.stage} stage and will retry it on the next sync: ${sanitizeDiagnosticMessage(failure.error)}`,
22620
+ source: failure.path
22621
+ }));
22622
+ }
22598
22623
  function toSearchDiagnostic(diagnostic) {
22599
22624
  return {
22600
22625
  code: diagnostic.code,
@@ -5,5 +5,5 @@ export { type EnsureMinSyncBinaryOptions, ensureMinSyncBinary, executableName, f
5
5
  export { ensureLocalEmbedder, LocalEmbedderError, type LocalEmbedderPreflightOptions, } from "./local-embedder.js";
6
6
  export { MinSyncHybridMethod, type MinSyncHybridMethodOptions, MinSyncVectorMethod, type MinSyncVectorMethodOptions, } from "./method.js";
7
7
  export { MINSYNC_FILES_SUBDIR, MINSYNC_SUBDIR, minSyncDocumentPath, minSyncWorkspaceRoot } from "./paths.js";
8
- export type { MinSyncChunkerConfig, MinSyncDiagnostic, MinSyncEmbedderConfig, MinSyncOptions, MinSyncQueryHit, MinSyncSyncResult, } from "./types.js";
8
+ export type { MinSyncChunkerConfig, MinSyncDiagnostic, MinSyncEmbedderConfig, MinSyncFileFailure, MinSyncOptions, MinSyncQueryHit, MinSyncSyncResult, } from "./types.js";
9
9
  export { buildMinSyncPathMap, type MinSyncWorkspaceEntry, type MinSyncWorkspaceSyncResult, syncMinSyncWorkspace, } from "./workspace.js";
@@ -1,4 +1,4 @@
1
- export declare const MINSYNC_VERSION = "0.4.7";
1
+ export declare const MINSYNC_VERSION = "0.4.8";
2
2
  export declare const MINSYNC_CARGO_INSTALL_TIMEOUT_MS: number;
3
3
  export interface MinSyncReleaseAsset {
4
4
  readonly name: string;
@@ -39,6 +39,13 @@ export interface MinSyncSyncResult {
39
39
  * unindexable document is never dropped silently.
40
40
  */
41
41
  readonly stagingExcluded?: readonly string[];
42
+ /** Files MinSync skipped (exit 6, `partial`); the sync itself completed and the next sync retries them. */
43
+ readonly filesFailed?: readonly MinSyncFileFailure[];
44
+ }
45
+ export interface MinSyncFileFailure {
46
+ readonly path: string;
47
+ readonly stage: string;
48
+ readonly error: string;
42
49
  }
43
50
  export type MinSyncDiagnosticCode = "embedder-unavailable" | "sync-failed" | "minsync-lock-held" | "no-hit" | "embedding-identity-mismatch" | "migration-required";
44
51
  export interface MinSyncDiagnostic {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autorag/librarian",
3
- "version": "2.10.2",
3
+ "version": "2.10.3",
4
4
  "description": "Self-evolving librarian agent on Pi framework with pluggable retrieval methods",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -221,6 +221,7 @@ to retry those files once without re-indexing healthy ones.
221
221
  | `stale-index` | Sources changed since last refresh | `autorag refresh --method parsed,minsync` |
222
222
  | `index-not-ready` | Index missing or never built | `autorag refresh --json` |
223
223
  | `minsync-sync-failed` | MinSync indexing failed; the message carries MinSync's own reason | Fix the reported cause, then `autorag refresh --method minsync` |
224
+ | `minsync-file-skipped` | MinSync skipped one file (unreadable, unparsable, or rejected by the embedder) and kept its older chunks; retried on the next sync | Fix that file's permissions/content, then `autorag refresh --method minsync` |
224
225
  | `minsync-lock-held` | Another `minsync` run holds `.minsync/lock`, often an orphan left by a killed host; retryable | Wait for it to finish or stop that `minsync` process, then `autorag refresh --method minsync` |
225
226
  | `jikji-unavailable` | Jikji binary missing or install failed | Check cargo, retry refresh |
226
227
  | `everything-index-failed` | Windows Everything instance could not start or index; message carries ES exit code and stderr | Fix the reported cause, `autorag refresh --method everything --json` |
@@ -169,7 +169,7 @@ AUTORAG_CONFIG=/absolute/path/to/.autorag/config.json autorag lite refresh --jso
169
169
  are missing or broken, run a full refresh or return to setup rather than
170
170
  silently degrading to lexical-only search.
171
171
  - MinSync's default embedder is in-process native Qwen3 embeddings
172
- (`native:Qwen/Qwen3-Embedding-0.6B`, 1024 dimensions, MinSync 0.4.7): no
172
+ (`native:Qwen/Qwen3-Embedding-0.6B`, 1024 dimensions, MinSync 0.4.8): no
173
173
  embedder flags, no API key, and no external daemon (such as Ollama) are
174
174
  needed, and no corpus text leaves the machine. For gateway-profiled
175
175
  embeddings, prefetch with `autorag models prefetch --profile qwen3-embedding-0.6b`.
@@ -190,7 +190,7 @@ told duplicate exclusion is off. Set `"excludeExactDuplicates": false` to
190
190
  index every copy.
191
191
 
192
192
  MinSync's default embedder is in-process native Qwen3 embeddings
193
- (`native:Qwen/Qwen3-Embedding-0.6B`, 1024 dimensions, MinSync 0.4.7). The
193
+ (`native:Qwen/Qwen3-Embedding-0.6B`, 1024 dimensions, MinSync 0.4.8). The
194
194
  default needs no embedder flags, no API key, and no external daemon (such as
195
195
  Ollama) — all embeddings run in-process locally and privately. For workspaces
196
196
  using the loopback llama-server gateway, prefetch the verified model with