@moonshot-ai/kimi-code 0.43.0 → 2.0.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 (115) hide show
  1. package/dist/main.mjs +40378 -28041
  2. package/dist/search-worker.mjs +151 -8
  3. package/dist-web/assets/{CodeBlockNode-ClI5Zc7C.js → CodeBlockNode-BMkbTGvt.js} +3 -3
  4. package/dist-web/assets/Tooltip-CvCt2OpS.js +1 -0
  5. package/dist-web/assets/abnfDiagram-VRR7QNED-CMsWFmhV.js +1 -0
  6. package/dist-web/assets/arc-CXuu1fyI.js +1 -0
  7. package/dist-web/assets/architectureDiagram-ZJ3FMSHR-Bb_06Tis.js +36 -0
  8. package/dist-web/assets/{blockDiagram-677ZJIJ3-CGAoZfe5.js → blockDiagram-677ZJIJ3-dNCVszO9.js} +2 -2
  9. package/dist-web/assets/{c4Diagram-LMCZKHZV-DLgWFktO.js → c4Diagram-LMCZKHZV-Dsva6pwc.js} +2 -2
  10. package/dist-web/assets/channel-Dyw0qvA2.js +1 -0
  11. package/dist-web/assets/{chunk-2Q5K7J3B-D8ifWrnI.js → chunk-2Q5K7J3B-Df_GFe3n.js} +1 -1
  12. package/dist-web/assets/{chunk-32BRIVSS-DpG03lEd.js → chunk-32BRIVSS-BPgqH-Ub.js} +1 -1
  13. package/dist-web/assets/{chunk-5VM5RSS4-D5gZPx0N.js → chunk-5VM5RSS4-CUvXVaNK.js} +1 -1
  14. package/dist-web/assets/{chunk-EX3LRPZG-BHr3M6yM.js → chunk-EX3LRPZG-BRYxwC6w.js} +1 -1
  15. package/dist-web/assets/{chunk-JWPE2WC7-BxqMRrNb.js → chunk-JWPE2WC7-D24iyGyr.js} +1 -1
  16. package/dist-web/assets/{chunk-MOJQB5TN-DGD3Ca9J.js → chunk-MOJQB5TN-VIWv47K9.js} +3 -3
  17. package/dist-web/assets/{chunk-RYQCIY6F-Csv6QbcC.js → chunk-RYQCIY6F-BoueTeQN.js} +1 -1
  18. package/dist-web/assets/{chunk-V7JOEXUC-DpflSafv.js → chunk-V7JOEXUC-CzjVKRuS.js} +1 -1
  19. package/dist-web/assets/{chunk-VR4S4FIN-CHAEh_jD.js → chunk-VR4S4FIN-DN3fhyNm.js} +1 -1
  20. package/dist-web/assets/{chunk-XXDRQBXY-BW4XjZut.js → chunk-XXDRQBXY-DGdcv7YP.js} +1 -1
  21. package/dist-web/assets/classDiagram-OUVF2IWQ-CdLohFSG.js +1 -0
  22. package/dist-web/assets/classDiagram-v2-EOCWNBFH-CdLohFSG.js +1 -0
  23. package/dist-web/assets/cose-bilkent-JH36ORCC-gxrKFGCX.js +1 -0
  24. package/dist-web/assets/{cynefin-VYW2F7L2-DYKf_Z-v.js → cynefin-VYW2F7L2-D3UUATjS.js} +1 -1
  25. package/dist-web/assets/cynefinDiagram-TSTJHNR4-O0SkpuqV.js +62 -0
  26. package/dist-web/assets/dagre-VKFMJZFB-BBTY0HCS.js +4 -0
  27. package/dist-web/assets/{diagram-FQU43EPY-C1ljmLlO.js → diagram-FQU43EPY-DsY299GE.js} +3 -3
  28. package/dist-web/assets/diagram-G47NLZAW-nEZgArkk.js +24 -0
  29. package/dist-web/assets/diagram-NH7WQ7WH-BSozxDpD.js +24 -0
  30. package/dist-web/assets/{diagram-OA4YK3LP-JUEB_AtR.js → diagram-OA4YK3LP-wQHl6g_d.js} +4 -4
  31. package/dist-web/assets/diagram-WEI45ONY-Cr-V3eBB.js +41 -0
  32. package/dist-web/assets/ebnfDiagram-CCIWWBDH-BZW_-ozL.js +1 -0
  33. package/dist-web/assets/{erDiagram-Q63AITRT-DOSLOW_g.js → erDiagram-Q63AITRT-ma6YVYn1.js} +2 -2
  34. package/dist-web/assets/{flowDiagram-23GEKE2U-DUMMY9pi.js → flowDiagram-23GEKE2U-BMN1wm6S.js} +5 -5
  35. package/dist-web/assets/ganttDiagram-NO4QXBWP-ZiopqOWU.js +292 -0
  36. package/dist-web/assets/gitGraphDiagram-IHSO6WYX-C1RnDoR4.js +106 -0
  37. package/dist-web/assets/index-0m3MlJDE.js +151 -0
  38. package/dist-web/assets/index-B3oDj0jz.js +1428 -0
  39. package/dist-web/assets/{index-Brp-8WTi.js → index-BaplSJn2.js} +2 -2
  40. package/dist-web/assets/index-BxYISzcB.css +32 -0
  41. package/dist-web/assets/index-DusVyqlT.js +1033 -0
  42. package/dist-web/assets/{index10-DApEPd0n.js → index10-c69OEP3n.js} +1 -1
  43. package/dist-web/assets/{index11-DW3IQa8f.js → index11-Ckocwove.js} +1 -1
  44. package/dist-web/assets/{index5-COqqDMp9.js → index5-CvyQMVP4.js} +1 -1
  45. package/dist-web/assets/{index6-Dsp2NXNw.js → index6-BuCtox9U.js} +1 -1
  46. package/dist-web/assets/{index7-BRjOZjxG.js → index7-1944MZMc.js} +1 -1
  47. package/dist-web/assets/{index8-CrWWf7aj.js → index8-NUHwiS2h.js} +1 -1
  48. package/dist-web/assets/infoDiagram-FWYZ7A6U-Dvk0xdbs.js +2 -0
  49. package/dist-web/assets/{ishikawaDiagram-FXEZZL3T-B6KrpWbv.js → ishikawaDiagram-FXEZZL3T-DIq5ziHd.js} +4 -4
  50. package/dist-web/assets/{journeyDiagram-5HDEW3XC-JJbVJr8m.js → journeyDiagram-5HDEW3XC-BpYVPIMv.js} +2 -2
  51. package/dist-web/assets/{kanban-definition-HUTT4EX6-CeRZEVYd.js → kanban-definition-HUTT4EX6-BB6BytMt.js} +7 -7
  52. package/dist-web/assets/{linear-DPKx2NhO.js → linear-1b2KM_9_.js} +1 -1
  53. package/dist-web/assets/{mermaid.core-CgZTgv7Y.js → mermaid.core-DKNppTOJ.js} +12 -12
  54. package/dist-web/assets/{mindmap-definition-LN4V7U3C-Bd7aLAJp.js → mindmap-definition-LN4V7U3C-C2b0YpzO.js} +3 -3
  55. package/dist-web/assets/pegDiagram-2B236MQR-D6XtaX9M.js +1 -0
  56. package/dist-web/assets/pieDiagram-ENE6RG2P-CXk1aHpm.js +39 -0
  57. package/dist-web/assets/{quadrantDiagram-ABIIQ3AL-Bss2swqr.js → quadrantDiagram-ABIIQ3AL-_FP1pK7z.js} +4 -4
  58. package/dist-web/assets/railroadDiagram-RFXS5EU6-Dej7t1gg.js +1 -0
  59. package/dist-web/assets/{requirementDiagram-TGXJPOKE-BXFV4Te6.js → requirementDiagram-TGXJPOKE-BVF_sI9y.js} +3 -3
  60. package/dist-web/assets/sankeyDiagram-HTMAVEWB-BvrUbLRY.js +40 -0
  61. package/dist-web/assets/{sequenceDiagram-DBY2YBRQ-DyUTbMwM.js → sequenceDiagram-DBY2YBRQ-6chaE5cg.js} +4 -4
  62. package/dist-web/assets/sizeCapture-X5ZJPWSS-DvaC1t8J.js +1 -0
  63. package/dist-web/assets/stateDiagram-2N3HPSRC-D3xhTeeN.js +1 -0
  64. package/dist-web/assets/stateDiagram-v2-6OUMAXLB-C3BdpWyH.js +1 -0
  65. package/dist-web/assets/swimlanes-5IMT3BWC-BrUot17m.js +2 -0
  66. package/dist-web/assets/swimlanesDiagram-G3AALYLV-cfjcvW6J.js +8 -0
  67. package/dist-web/assets/{timeline-definition-FHXFAJF6-Blm9HJcK.js → timeline-definition-FHXFAJF6-waBA9ygA.js} +4 -4
  68. package/dist-web/assets/{vennDiagram-L72KCM5P-BhpzFpgZ.js → vennDiagram-L72KCM5P-z8BamcaO.js} +2 -2
  69. package/dist-web/assets/{vue.runtime.esm-bundler-BeN4Xi6a.js → vue.runtime.esm-bundler-Dcq6t2KV.js} +1 -1
  70. package/dist-web/assets/{wardleyDiagram-EHGQE667-DGcHOZD9.js → wardleyDiagram-EHGQE667-B1ypaFQi.js} +2 -2
  71. package/dist-web/assets/{xychartDiagram-FW5EYKEG---3Lbwvl.js → xychartDiagram-FW5EYKEG-CWMxWJzt.js} +2 -2
  72. package/dist-web/index.html +2 -2
  73. package/native/darwin/prebuilds/darwin-arm64/{darwin-modifiers.node → darwin-platform.node} +0 -0
  74. package/native/darwin/prebuilds/darwin-x64/{darwin-modifiers.node → darwin-platform.node} +0 -0
  75. package/native/linux/prebuilds/linux-arm64/linux-platform-x11.node +0 -0
  76. package/native/linux/prebuilds/linux-x64/linux-platform-x11.node +0 -0
  77. package/native/win32/prebuilds/win32-arm64/win32-platform.node +0 -0
  78. package/native/win32/prebuilds/win32-x64/win32-platform.node +0 -0
  79. package/package.json +8 -7
  80. package/dist-web/assets/Tooltip-Dvr1al-t.js +0 -1
  81. package/dist-web/assets/_commonjsHelpers-CqkleIqs.js +0 -1
  82. package/dist-web/assets/abnfDiagram-VRR7QNED-CwBLQmjz.js +0 -1
  83. package/dist-web/assets/arc-CxZ33vix.js +0 -1
  84. package/dist-web/assets/architectureDiagram-ZJ3FMSHR-CM71RpvG.js +0 -36
  85. package/dist-web/assets/channel-IY5GdLm-.js +0 -1
  86. package/dist-web/assets/classDiagram-OUVF2IWQ-CqrT8Lg9.js +0 -1
  87. package/dist-web/assets/classDiagram-v2-EOCWNBFH-CqrT8Lg9.js +0 -1
  88. package/dist-web/assets/cose-bilkent-JH36ORCC-BdAGtrTa.js +0 -1
  89. package/dist-web/assets/cynefinDiagram-TSTJHNR4-BtxdUqIq.js +0 -62
  90. package/dist-web/assets/dagre-VKFMJZFB-4bDkTcg2.js +0 -4
  91. package/dist-web/assets/diagram-G47NLZAW-Dr4-bBys.js +0 -24
  92. package/dist-web/assets/diagram-NH7WQ7WH-Cj9RyKgp.js +0 -24
  93. package/dist-web/assets/diagram-WEI45ONY-t5xRZNwv.js +0 -41
  94. package/dist-web/assets/ebnfDiagram-CCIWWBDH-DCeAYlnS.js +0 -1
  95. package/dist-web/assets/ganttDiagram-NO4QXBWP-NYl4Z3R4.js +0 -292
  96. package/dist-web/assets/gitGraphDiagram-IHSO6WYX-EeKfrgej.js +0 -106
  97. package/dist-web/assets/index-7SHxad1A.js +0 -962
  98. package/dist-web/assets/index-CBLflN6S.js +0 -153
  99. package/dist-web/assets/index-CI2T7J0T.js +0 -1428
  100. package/dist-web/assets/index-CRa2d3RK.css +0 -32
  101. package/dist-web/assets/infoDiagram-FWYZ7A6U-DaH4t3R3.js +0 -2
  102. package/dist-web/assets/pegDiagram-2B236MQR-CX4fQesk.js +0 -1
  103. package/dist-web/assets/pieDiagram-ENE6RG2P-DiFeh11k.js +0 -39
  104. package/dist-web/assets/railroadDiagram-RFXS5EU6-Dpqal8U_.js +0 -1
  105. package/dist-web/assets/rive-BTwUD7iz.js +0 -1
  106. package/dist-web/assets/rive-CeXCFBdn.js +0 -20
  107. package/dist-web/assets/rive_fallback-DXpHVJvQ.js +0 -1
  108. package/dist-web/assets/sankeyDiagram-HTMAVEWB-BHcMCK_w.js +0 -40
  109. package/dist-web/assets/sizeCapture-X5ZJPWSS-KpJKp6ok.js +0 -1
  110. package/dist-web/assets/stateDiagram-2N3HPSRC-B9WRkRTB.js +0 -1
  111. package/dist-web/assets/stateDiagram-v2-6OUMAXLB-DaA_2kTJ.js +0 -1
  112. package/dist-web/assets/swimlanes-5IMT3BWC-C0-5MIxj.js +0 -2
  113. package/dist-web/assets/swimlanesDiagram-G3AALYLV-DMbj4GHb.js +0 -8
  114. package/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  115. package/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
@@ -12430,6 +12430,60 @@ function syncBudgetExhausted(budget) {
12430
12430
  function errorMessage(error) {
12431
12431
  return error instanceof Error ? error.message : String(error);
12432
12432
  }
12433
+ async function sessionDirectoryIdentity(dir) {
12434
+ try {
12435
+ const info = await stat(dir, { bigint: true });
12436
+ if (!info.isDirectory() || info.ino <= 0n || info.birthtimeNs <= 0n) return void 0;
12437
+ return `${info.dev}:${info.ino}:${info.birthtimeNs}`;
12438
+ } catch (error) {
12439
+ const code = error.code;
12440
+ if (code === "ENOENT" || code === "ENOTDIR") return void 0;
12441
+ throw error;
12442
+ }
12443
+ }
12444
+ const querySourceChecks = {
12445
+ running: false,
12446
+ waiters: /* @__PURE__ */ new Set()
12447
+ };
12448
+ async function queryDirectoryIdentity(dir, deadlineAt, deadline) {
12449
+ while (querySourceChecks.running) {
12450
+ let wake;
12451
+ const available = new Promise((resolve) => {
12452
+ wake = () => {
12453
+ resolve(true);
12454
+ };
12455
+ });
12456
+ querySourceChecks.waiters.add(wake);
12457
+ try {
12458
+ if (await Promise.race([available, deadline]) === null) return null;
12459
+ } finally {
12460
+ querySourceChecks.waiters.delete(wake);
12461
+ }
12462
+ }
12463
+ if (Date.now() >= deadlineAt) return null;
12464
+ querySourceChecks.running = true;
12465
+ const identity = sessionDirectoryIdentity(dir);
12466
+ const release = () => {
12467
+ querySourceChecks.running = false;
12468
+ for (const wake of querySourceChecks.waiters) wake();
12469
+ querySourceChecks.waiters.clear();
12470
+ };
12471
+ identity.then(release, release);
12472
+ return Promise.race([identity, deadline]);
12473
+ }
12474
+ async function sessionDirectoryTitle(dir, log) {
12475
+ for (const scope of ["", "session-meta"]) try {
12476
+ const meta = JSON.parse(await readFile(join(dir, scope, "state.json"), "utf8"));
12477
+ if (typeof meta === "object" && meta !== null && "title" in meta && typeof meta.title === "string") return meta.title;
12478
+ return "";
12479
+ } catch (error) {
12480
+ if (error.code !== "ENOENT") log.warn("search index: cannot read session title", {
12481
+ dir,
12482
+ error: errorMessage(error)
12483
+ });
12484
+ }
12485
+ return "";
12486
+ }
12433
12487
  const INITIAL_TURN_STATE = {
12434
12488
  next: 0,
12435
12489
  hasTurn: false,
@@ -12780,6 +12834,7 @@ var SearchIndexCore = class {
12780
12834
  break;
12781
12835
  }
12782
12836
  const result = await this.syncSession(db, summary, budget);
12837
+ if (result === void 0) continue;
12783
12838
  if (result.truncated) truncated = true;
12784
12839
  if (result.failed) {
12785
12840
  const count = (this.sessionSyncFailures.get(summary.id) ?? 0) + 1;
@@ -12811,6 +12866,7 @@ var SearchIndexCore = class {
12811
12866
  }).length;
12812
12867
  const stats = {
12813
12868
  kind: "stats",
12869
+ degraded: indexed < sessions.length ? `Skipped ${sessions.length - indexed} session(s) during indexing` : void 0,
12814
12870
  sessions: indexed,
12815
12871
  documents: db.size - metaCount,
12816
12872
  lastIndexedAt: Date.now()
@@ -12861,6 +12917,34 @@ var SearchIndexCore = class {
12861
12917
  await db.del(SESSION_META_PREFIX + sessionId);
12862
12918
  }
12863
12919
  async syncSession(db, summary, budget) {
12920
+ let identity;
12921
+ try {
12922
+ identity = await sessionDirectoryIdentity(summary.dir);
12923
+ } catch (error) {
12924
+ this.log.warn("global search: failed to index session", {
12925
+ sessionId: summary.id,
12926
+ error: errorMessage(error)
12927
+ });
12928
+ return;
12929
+ }
12930
+ if (identity === void 0) {
12931
+ await this.deleteSessionDocs(db, summary.id);
12932
+ return;
12933
+ }
12934
+ const title = await sessionDirectoryTitle(summary.dir, this.log);
12935
+ const metaKey = SESSION_META_PREFIX + summary.id;
12936
+ const previous = db.get(metaKey);
12937
+ if (previous?.kind !== "sessionMeta" || previous.identity !== identity || previous.dir !== summary.dir) {
12938
+ await this.deleteSessionDocs(db, summary.id);
12939
+ if (previous !== void 0) this.syncReplaced = true;
12940
+ }
12941
+ const meta = {
12942
+ kind: "sessionMeta",
12943
+ dir: summary.dir,
12944
+ identity,
12945
+ title
12946
+ };
12947
+ if (previous?.kind !== "sessionMeta" || previous.identity !== identity || previous.dir !== summary.dir || previous.title !== title) await db.set(metaKey, meta);
12864
12948
  const wireFiles = await collectWireFiles(summary.dir);
12865
12949
  const seenPaths = new Set(wireFiles.map((file) => file.path));
12866
12950
  for (const row of db.query({ key: { prefix: fileMetaPrefixFor(summary.id) } })) {
@@ -12874,20 +12958,24 @@ var SearchIndexCore = class {
12874
12958
  let failed = false;
12875
12959
  let error;
12876
12960
  for (const file of wireFiles) {
12877
- const result = await this.syncWireFile(db, summary, file, budget);
12961
+ const result = await this.syncWireFile(db, {
12962
+ ...summary,
12963
+ title,
12964
+ sessionIdentity: identity
12965
+ }, file, budget);
12878
12966
  if (result.truncated) truncated = true;
12879
12967
  if (result.failed) {
12880
12968
  failed = true;
12881
12969
  error ??= result.error;
12882
12970
  }
12883
12971
  }
12884
- const title = summary.title ?? "";
12885
12972
  const titleKey = `${summary.id}/$title`;
12886
12973
  const existing = db.get(titleKey);
12887
12974
  if (title.length > 0) {
12888
12975
  if (existing?.kind !== "title" || existing.text !== title) {
12889
12976
  const doc = {
12890
12977
  kind: "title",
12978
+ sessionIdentity: identity,
12891
12979
  sessionId: summary.id,
12892
12980
  workspaceId: summary.workspaceId,
12893
12981
  sessionTitle: title,
@@ -12900,7 +12988,6 @@ var SearchIndexCore = class {
12900
12988
  if (existing !== void 0) this.syncReplaced = true;
12901
12989
  }
12902
12990
  } else if (existing !== void 0) await db.del(titleKey);
12903
- if (db.get(SESSION_META_PREFIX + summary.id) === void 0) await db.set(SESSION_META_PREFIX + summary.id, { kind: "sessionMeta" });
12904
12991
  return {
12905
12992
  truncated,
12906
12993
  failed,
@@ -13089,6 +13176,7 @@ var SearchIndexCore = class {
13089
13176
  const stepOrdinal = e.stepUuid !== void 0 ? stepState.byUuid[e.stepUuid] : void 0;
13090
13177
  const doc = {
13091
13178
  kind: "message",
13179
+ sessionIdentity: summary.sessionIdentity,
13092
13180
  sessionId: summary.id,
13093
13181
  workspaceId: summary.workspaceId,
13094
13182
  sessionTitle: summary.title ?? "",
@@ -13208,14 +13296,69 @@ var SearchIndexCore = class {
13208
13296
  const boundary = page.kind === "keyset" ? page.boundary : void 0;
13209
13297
  const matched = matchDocs(q, candidates, boundary, budget);
13210
13298
  incomplete ??= matched.incomplete;
13211
- const { pageRows, hasMore } = paginateRows(q, page, matched.rows);
13299
+ const index = this.readIndexView(serveDb, freshnessStale);
13300
+ const sources = /* @__PURE__ */ new Map();
13301
+ for (const row of matched.rows) {
13302
+ const id = row.value.sessionId;
13303
+ if (sources.has(id)) continue;
13304
+ if (Date.now() > budget.deadlineAt) {
13305
+ incomplete ??= "deadline";
13306
+ break;
13307
+ }
13308
+ const meta = serveDb.get(SESSION_META_PREFIX + id);
13309
+ sources.set(id, meta?.kind === "sessionMeta" ? meta : void 0);
13310
+ }
13311
+ const identities = /* @__PURE__ */ new Map();
13312
+ const visible = [];
13313
+ let deadlineTimer;
13314
+ const deadline = new Promise((resolve) => {
13315
+ deadlineTimer = setTimeout(() => resolve(null), Math.max(0, budget.deadlineAt - Date.now()));
13316
+ deadlineTimer.unref?.();
13317
+ });
13318
+ try {
13319
+ for (const row of matched.rows) {
13320
+ if (Date.now() > budget.deadlineAt) {
13321
+ incomplete ??= "deadline";
13322
+ break;
13323
+ }
13324
+ const meta = sources.get(row.value.sessionId);
13325
+ if (meta?.dir === void 0 || row.value.sessionIdentity === void 0 || meta.identity !== row.value.sessionIdentity) {
13326
+ freshnessStale = true;
13327
+ continue;
13328
+ }
13329
+ if (!identities.has(meta.dir)) try {
13330
+ const identity = await queryDirectoryIdentity(meta.dir, budget.deadlineAt, deadline);
13331
+ if (identity === null || Date.now() > budget.deadlineAt) {
13332
+ incomplete ??= "deadline";
13333
+ break;
13334
+ }
13335
+ identities.set(meta.dir, identity);
13336
+ } catch (error) {
13337
+ throw new GlobalSearchError("index_unavailable", `cannot verify search source: ${errorMessage(error)}`);
13338
+ }
13339
+ if (identities.get(meta.dir) === row.value.sessionIdentity) visible.push({
13340
+ ...row,
13341
+ value: {
13342
+ ...row.value,
13343
+ sessionTitle: meta.title ?? ""
13344
+ }
13345
+ });
13346
+ else freshnessStale = true;
13347
+ }
13348
+ } finally {
13349
+ if (deadlineTimer !== void 0) clearTimeout(deadlineTimer);
13350
+ }
13351
+ const { pageRows, hasMore } = paginateRows(q, page, visible);
13212
13352
  return {
13213
13353
  kind: "page",
13214
13354
  rows: pageRows,
13215
13355
  hasMore,
13216
13356
  incomplete,
13217
13357
  generation,
13218
- index: this.readIndexView(serveDb, freshnessStale)
13358
+ index: {
13359
+ ...index,
13360
+ freshnessStale: freshnessStale || this.db !== serveDb
13361
+ }
13219
13362
  };
13220
13363
  }
13221
13364
  async reindex() {
@@ -13274,7 +13417,7 @@ var SearchIndexCore = class {
13274
13417
  generation: this.generation,
13275
13418
  readOnly: this.db?.readOnly === true,
13276
13419
  lockToken: this.lockToken,
13277
- degraded: this.lastRefreshError?.message ?? maintenance,
13420
+ degraded: this.lastRefreshError?.message ?? maintenance ?? (stats?.kind === "stats" ? stats.degraded : void 0),
13278
13421
  lifecycle: this.lifecycleState()
13279
13422
  };
13280
13423
  }
@@ -13287,7 +13430,7 @@ var SearchIndexCore = class {
13287
13430
  documents: stats?.kind === "stats" ? stats.documents : 0,
13288
13431
  readOnly: handle?.readOnly === true,
13289
13432
  freshnessStale: true,
13290
- degraded: this.lastRefreshError?.message,
13433
+ degraded: this.lastRefreshError?.message ?? (stats?.kind === "stats" ? stats.degraded : void 0),
13291
13434
  lockToken: this.lockToken
13292
13435
  };
13293
13436
  }
@@ -13301,7 +13444,7 @@ var SearchIndexCore = class {
13301
13444
  documents,
13302
13445
  readOnly: db.readOnly,
13303
13446
  freshnessStale,
13304
- degraded: this.lastRefreshError?.message,
13447
+ degraded: this.lastRefreshError?.message ?? (stats?.kind === "stats" ? stats.degraded : void 0),
13305
13448
  lockToken: this.lockToken
13306
13449
  };
13307
13450
  }