local-operator-ui 0.25.16 → 0.25.17

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 (69) hide show
  1. package/out/main/index.js +336 -16
  2. package/out/renderer/assets/{_basePickBy-DBhtDEGA.js → _basePickBy-Dqo9Svot.js} +1 -1
  3. package/out/renderer/assets/{_baseUniq-B5WxfAdh.js → _baseUniq-Bqq4bH3r.js} +1 -1
  4. package/out/renderer/assets/{agent-details-page-CseZi6cR.js → agent-details-page-D5Xaqf5E.js} +1 -1
  5. package/out/renderer/assets/{agent-hub-page-_t-x78D_.js → agent-hub-page-Crnga1Hx.js} +1 -1
  6. package/out/renderer/assets/{agents-page-B6vQMI_R.js → agents-page-CXeZLL0h.js} +2 -2
  7. package/out/renderer/assets/{arc-Dcd3HzRZ.js → arc-ErJh4afL.js} +1 -1
  8. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-CXwTTKVn.js → architectureDiagram-IEHRJDOE-CqPUhWwU.js} +1 -1
  9. package/out/renderer/assets/{blockDiagram-JOT3LUYC-dW5gyGl7.js → blockDiagram-JOT3LUYC-DGzBuOTu.js} +1 -1
  10. package/out/renderer/assets/browser-page-CV4u_doL.js +1 -0
  11. package/out/renderer/assets/{c4Diagram-VJAJSXHY-B1fPOy-n.js → c4Diagram-VJAJSXHY-BtVyEvMI.js} +1 -1
  12. package/out/renderer/assets/channel-B-RyHHam.js +1 -0
  13. package/out/renderer/assets/{chunk-4BMEZGHF-BjkEbeJq.js → chunk-4BMEZGHF-qHL7gFMz.js} +1 -1
  14. package/out/renderer/assets/{chunk-A2AXSNBT-CNdgDk-3.js → chunk-A2AXSNBT-CZdwXrGh.js} +1 -1
  15. package/out/renderer/assets/{chunk-AEK57VVT-DlvJjW1D.js → chunk-AEK57VVT-D3ygkjPx.js} +1 -1
  16. package/out/renderer/assets/{chunk-D6G4REZN-DUrFmr72.js → chunk-D6G4REZN-Cptud7N8.js} +1 -1
  17. package/out/renderer/assets/{chunk-RZ5BOZE2-DVV9SVAw.js → chunk-RZ5BOZE2-BW_-DH47.js} +1 -1
  18. package/out/renderer/assets/{chunk-XZIHB7SX-D5KVgy3I.js → chunk-XZIHB7SX-DVBP-wVb.js} +1 -1
  19. package/out/renderer/assets/classDiagram-GIVACNV2-_YNlHCSJ.js +1 -0
  20. package/out/renderer/assets/classDiagram-v2-COTLJTTW-_YNlHCSJ.js +1 -0
  21. package/out/renderer/assets/clone-CG632oKz.js +1 -0
  22. package/out/renderer/assets/{compact-pagination-FBuuRrOa.js → compact-pagination-DZcKP76l.js} +1 -1
  23. package/out/renderer/assets/{dagre-OKDRZEBW-U2nObwi2.js → dagre-OKDRZEBW-DmDP5q7x.js} +1 -1
  24. package/out/renderer/assets/{diagram-SSKATNLV-qATRbhkK.js → diagram-SSKATNLV-DXDXZp0c.js} +1 -1
  25. package/out/renderer/assets/{diagram-VNBRO52H-BPEwatJH.js → diagram-VNBRO52H-BADpsVut.js} +1 -1
  26. package/out/renderer/assets/{erDiagram-Q7BY3M3F-Bx5nxisD.js → erDiagram-Q7BY3M3F-S1vauM_p.js} +1 -1
  27. package/out/renderer/assets/{flowDiagram-4HSFHLVR-Do8frrTh.js → flowDiagram-4HSFHLVR-TVPZdl6u.js} +1 -1
  28. package/out/renderer/assets/{ganttDiagram-APWFNJXF-C_-yHBuP.js → ganttDiagram-APWFNJXF-DnrsPlnD.js} +1 -1
  29. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-DXTe6Uqo.js → gitGraphDiagram-7IBYFJ6S-yCY1XLln.js} +1 -1
  30. package/out/renderer/assets/{graph-BPMdi6cQ.js → graph-BxjT2eQO.js} +1 -1
  31. package/out/renderer/assets/icon-BKAmSt8B.css +1 -0
  32. package/out/renderer/assets/{index-CV6OexwP.js → index-DkR2IOFW.js} +367 -366
  33. package/out/renderer/assets/{index-DlEE2Mhu.js → index-DoRFtjYI.js} +1 -1
  34. package/out/renderer/assets/{index-fXOo37XI.js → index-tkj2FVUw.js} +1 -1
  35. package/out/renderer/assets/{infoDiagram-PH2N3AL5-7Bdo1-DK.js → infoDiagram-PH2N3AL5-D177FnZ4.js} +1 -1
  36. package/out/renderer/assets/{installer-Db9wXNQc.js → installer-DGvvq3Hw.js} +1 -1
  37. package/out/renderer/assets/{journeyDiagram-U35MCT3I-C_YNwAiC.js → journeyDiagram-U35MCT3I-GPGRSxRB.js} +1 -1
  38. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-DwyjTS65.js → kanban-definition-NDS4AKOZ-BBqB4T4f.js} +1 -1
  39. package/out/renderer/assets/{layout-Dt9rFxLo.js → layout-CNsK6zbV.js} +1 -1
  40. package/out/renderer/assets/{legacy-agents-page-Ck7g4g5h.js → legacy-agents-page-C7hRXtYl.js} +1 -1
  41. package/out/renderer/assets/{mermaid.core-CTF22veB.js → mermaid.core-kFbnNRih.js} +5 -5
  42. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-hIcrIbqg.js → mindmap-definition-ALO5MXBD-nj6Nb3_d.js} +1 -1
  43. package/out/renderer/assets/{page-header-CNu3r7Wl.js → page-header-h3oV19Xt.js} +1 -1
  44. package/out/renderer/assets/{parseISO-D7fb4zbb.js → parseISO-CJS8mOux.js} +1 -1
  45. package/out/renderer/assets/{pieDiagram-IB7DONF6-CgQ8RSTq.js → pieDiagram-IB7DONF6-Bnz5mDF1.js} +1 -1
  46. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-D0u3ugSa.js → quadrantDiagram-7GDLP6J5-CccK4eoR.js} +1 -1
  47. package/out/renderer/assets/{radar-MK3ICKWK-D4NPS1yb.js → radar-MK3ICKWK-CSKEMsQ0.js} +1 -1
  48. package/out/renderer/assets/{radient-auth-buttons-6mbpShIM.js → radient-auth-buttons-BkKxA_iN.js} +1 -1
  49. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-CzyA0VGV.js → requirementDiagram-KVF5MWMF-CB_BCBB3.js} +1 -1
  50. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-Bu3OPb5q.js → sankeyDiagram-QLVOVGJD-C_kUAgD4.js} +1 -1
  51. package/out/renderer/assets/{schedules-page-Z26BnqzA.js → schedules-page-Cg_9vR8_.js} +1 -1
  52. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-C1Wt7DUe.js → sequenceDiagram-X6HHIX6F-DMVr-l3j.js} +1 -1
  53. package/out/renderer/assets/{settings-page-Ds1_qi2y.js → settings-page-BVf3GbZe.js} +22 -22
  54. package/out/renderer/assets/{stateDiagram-DGXRK772-D_Odl8sh.js → stateDiagram-DGXRK772-3fvxQXpG.js} +1 -1
  55. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DILZ7L7Q.js +1 -0
  56. package/out/renderer/assets/{timeline-definition-BDJGKUSR-BlShpjPx.js → timeline-definition-BDJGKUSR-Cqc-O64D.js} +1 -1
  57. package/out/renderer/assets/{use-agent-like-mutation-DwD0kyhJ.js → use-agent-like-mutation-Da0zEmNH.js} +1 -1
  58. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-CGVDywr7.js → xychartDiagram-VJFVF3MP-DXGJHnXo.js} +1 -1
  59. package/out/renderer/index.html +3 -3
  60. package/out/renderer/installer.html +3 -3
  61. package/package.json +1 -1
  62. package/out/renderer/assets/browser-page-CbsSO9cU.js +0 -1
  63. package/out/renderer/assets/channel-CNQYu0Z5.js +0 -1
  64. package/out/renderer/assets/classDiagram-GIVACNV2-i38CMqFy.js +0 -1
  65. package/out/renderer/assets/classDiagram-v2-COTLJTTW-i38CMqFy.js +0 -1
  66. package/out/renderer/assets/clone-DyOOGQU7.js +0 -1
  67. package/out/renderer/assets/icon-C3z02Ja7.css +0 -1
  68. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-nORq9nsg.js +0 -1
  69. /package/out/renderer/assets/{icon-KrVT-csH.js → icon-BIH0o0-h.js} +0 -0
package/out/main/index.js CHANGED
@@ -15239,6 +15239,128 @@ function rememberPickedDirectory(kind, filePaths, directoryPicked = false) {
15239
15239
  if (!first) return;
15240
15240
  lastPickedDirectory.set(kind, directoryPicked ? first : path$1.dirname(first));
15241
15241
  }
15242
+ const CHROMIUM_TRANSPORT_CODES = [
15243
+ "ERR_INTERNET_DISCONNECTED",
15244
+ "ERR_NETWORK_CHANGED",
15245
+ "ERR_NAME_NOT_RESOLVED",
15246
+ "ERR_TIMED_OUT",
15247
+ "ERR_CONNECTION_RESET",
15248
+ "ERR_CONNECTION_REFUSED",
15249
+ "ERR_CONNECTION_CLOSED",
15250
+ "ERR_CONNECTION_FAILED",
15251
+ "ERR_CONNECTION_TIMED_OUT",
15252
+ "ERR_ADDRESS_UNREACHABLE",
15253
+ "ERR_NETWORK_IO_SUSPENDED",
15254
+ "ERR_PROXY_CONNECTION_FAILED"
15255
+ ];
15256
+ const NODE_ERRNO_CODES = [
15257
+ "ENOTFOUND",
15258
+ "EAI_AGAIN",
15259
+ "ETIMEDOUT",
15260
+ "ECONNRESET",
15261
+ "ECONNREFUSED",
15262
+ "EHOSTUNREACH",
15263
+ "ENETUNREACH",
15264
+ "ENETDOWN",
15265
+ "ENETRESET",
15266
+ "ECONNABORTED",
15267
+ "EPIPE"
15268
+ ];
15269
+ const ENGINE_TRANSPORT_FAILURES = [
15270
+ "Failed to fetch",
15271
+ "Load failed",
15272
+ "NetworkError when attempting to fetch resource."
15273
+ ];
15274
+ const CHROMIUM_SET = new Set(CHROMIUM_TRANSPORT_CODES);
15275
+ const CLAUSE_END = /[:\-\u2014\n]$/;
15276
+ const CLAUSE_START = /^[:\n]/;
15277
+ const CLAUSE_BOUNDARY = /[:\uff1a\n\u2014]| - /g;
15278
+ const LEADING_ERROR_PREFIXES = /^(?:\s*Error:\s*)+/;
15279
+ const EMBEDDED_ERROR_PREFIX = /:\s+Error:\s+/g;
15280
+ const CHROMIUM_CODE_PATTERN = /\b(?:net::)?(ERR_[A-Z0-9_]+)\b/g;
15281
+ const NODE_ERRNO_PATTERNS = NODE_ERRNO_CODES.map((code) => ({
15282
+ code,
15283
+ pattern: new RegExp(`\\b${code}\\b`)
15284
+ }));
15285
+ function isClause(message, start, length) {
15286
+ const before = message.slice(0, start).trimEnd();
15287
+ const after = message.slice(start + length).trimStart();
15288
+ const beforeIsBoundary = before === "" || CLAUSE_END.test(before);
15289
+ const afterIsBoundary = after === "" || CLAUSE_START.test(after);
15290
+ return beforeIsBoundary && afterIsBoundary;
15291
+ }
15292
+ function transientTransportFragment(input) {
15293
+ const message = messageOf(input);
15294
+ if (!message) return null;
15295
+ const cleaned = stripErrorPrefixes(message);
15296
+ for (const match of cleaned.matchAll(CHROMIUM_CODE_PATTERN)) {
15297
+ const code = match[1];
15298
+ if (!CHROMIUM_SET.has(code)) continue;
15299
+ const start = match.index ?? 0;
15300
+ const end = start + match[0].length;
15301
+ return {
15302
+ code: `net::${code}`,
15303
+ start,
15304
+ end,
15305
+ clauseText: clauseTextOf(cleaned, start, end),
15306
+ clause: isClause(cleaned, start, end - start)
15307
+ };
15308
+ }
15309
+ for (const { code, pattern } of NODE_ERRNO_PATTERNS) {
15310
+ const match = pattern.exec(cleaned);
15311
+ if (match) {
15312
+ const start = match.index;
15313
+ const end = start + match[0].length;
15314
+ return {
15315
+ code,
15316
+ start,
15317
+ end,
15318
+ clauseText: clauseTextOf(cleaned, start, end),
15319
+ clause: isClause(cleaned, start, end - start)
15320
+ };
15321
+ }
15322
+ }
15323
+ for (const phrase of ENGINE_TRANSPORT_FAILURES) {
15324
+ const start = cleaned.indexOf(phrase);
15325
+ if (start === -1) continue;
15326
+ if (!isClause(cleaned, start, phrase.length)) continue;
15327
+ return {
15328
+ code: phrase,
15329
+ start,
15330
+ end: start + phrase.length,
15331
+ clauseText: clauseTextOf(cleaned, start, start + phrase.length),
15332
+ clause: true
15333
+ };
15334
+ }
15335
+ return null;
15336
+ }
15337
+ function transientTransportCode(input) {
15338
+ return transientTransportFragment(input)?.code ?? null;
15339
+ }
15340
+ function messageOf(input) {
15341
+ if (typeof input === "string") return input;
15342
+ if (input instanceof Error) return input.message || input.name || "";
15343
+ if (input && typeof input === "object" && "message" in input) {
15344
+ const message = input.message;
15345
+ return typeof message === "string" ? message : "";
15346
+ }
15347
+ return "";
15348
+ }
15349
+ function clauseTextOf(message, start, end) {
15350
+ let from = 0;
15351
+ for (const boundary of message.slice(0, start).matchAll(CLAUSE_BOUNDARY)) {
15352
+ from = (boundary.index ?? 0) + boundary[0].length;
15353
+ }
15354
+ let to = message.length;
15355
+ for (const boundary of message.slice(end).matchAll(CLAUSE_BOUNDARY)) {
15356
+ to = end + (boundary.index ?? 0);
15357
+ break;
15358
+ }
15359
+ return message.slice(from, to).trim();
15360
+ }
15361
+ function stripErrorPrefixes(message) {
15362
+ return message.replace(LEADING_ERROR_PREFIXES, "").replace(EMBEDDED_ERROR_PREFIX, ": ");
15363
+ }
15242
15364
  const READABLE_VERSION_PATTERN = /^v?\d+(\.\d+){0,3}([.-]?(?:a|b|c|rc|alpha|beta|pre|post|dev)[.-]?\d*)?(?:[-+][0-9A-Za-z.-]+)?$/i;
15243
15365
  const isReadableVersion = (value) => typeof value === "string" && READABLE_VERSION_PATTERN.test(value.trim());
15244
15366
  const UP_TO_DATE_AFFIRMATION = "The application and server are up to date";
@@ -15256,9 +15378,15 @@ const INSTALL_IN_FLIGHT_RECHECK_MS = 1e4;
15256
15378
  const LAUNCHCTL_NOT_LOADED_REGEX = /could not find|no such process/i;
15257
15379
  const SEAL_PROBE_TIMEOUT_MS = 45e3;
15258
15380
  const STARTUP_SEAL_PROBE_DELAY_MS = 15e3;
15381
+ const POST_WAKE_CHECK_DELAY_MS = 2e4;
15259
15382
  function versionSuffix(version) {
15260
15383
  return version ? ` to version ${version}` : "";
15261
15384
  }
15385
+ function offlineTransportError() {
15386
+ return new Error(
15387
+ "net::ERR_INTERNET_DISCONNECTED - the machine reported no network, so no request was made"
15388
+ );
15389
+ }
15262
15390
  function runCommand(command, args, options = {}) {
15263
15391
  return new Promise((resolve) => {
15264
15392
  node_child_process.execFile(
@@ -15313,6 +15441,47 @@ class UpdateService {
15313
15441
  * available", which is how `shouldFilterUpdateError` would otherwise read it.
15314
15442
  */
15315
15443
  updateStage = "idle";
15444
+ /**
15445
+ * How many app-channel checks are in flight right now.
15446
+ *
15447
+ * ONE OWNER PER FAILURE. The `autoUpdater` `error` event and the check that
15448
+ * caused it are two producers of the same user-facing message, and they used
15449
+ * to carry two different suppression rules: `checkForUpdates` refuses to send
15450
+ * for a silent check and the event handler sent regardless, so one transient
15451
+ * failure was reported twice and a background check was reported at all. A
15452
+ * check in flight owns its own failure report, so the handler stands down
15453
+ * while this is above zero. It is a DEPTH rather than a boolean because the
15454
+ * scheduled check and a click can overlap.
15455
+ */
15456
+ appChecksInFlight = 0;
15457
+ /**
15458
+ * The attempt sequence in flight in the app channel, so a second check rides
15459
+ * it instead of doubling it.
15460
+ *
15461
+ * WHY THIS EXISTS, measured. Two checks are started at launch by different
15462
+ * owners - the renderer's mount effect and this process's own delayed check -
15463
+ * and QA round 1 measured the cost of letting them run independently while
15464
+ * the feed is down: six fetches in 6.6 s where the base made two
15465
+ * (`Q-2`), three per check because of the retries. The fetch is the same
15466
+ * request for the same feed, so the second caller awaits the first one's
15467
+ * sequence and the result is shared; `appChecksInFlight` stays at 1 for the
15468
+ * pair, which is also what keeps the `error` events of that one sequence owned
15469
+ * by the check that started it.
15470
+ */
15471
+ appFeedFetchInFlight = null;
15472
+ /**
15473
+ * The wake-armed check, held so a second wake cannot arm a second one.
15474
+ */
15475
+ postWakeCheckTimer = null;
15476
+ /**
15477
+ * The backoff between attempts at one app-channel feed fetch, in ms.
15478
+ *
15479
+ * Two retries, so three attempts, which is the bound a transient Wi-Fi roam
15480
+ * or resolver blip needs and short enough that a check the user is waiting on
15481
+ * still answers in seconds. A test overrides it rather than waiting 4 s per
15482
+ * case; nothing else does.
15483
+ */
15484
+ appFeedRetryDelaysMs = [1e3, 3e3];
15316
15485
  /** The last update the updater told us about, for its file metadata. */
15317
15486
  lastUpdateInfo = null;
15318
15487
  /**
@@ -15427,6 +15596,25 @@ class UpdateService {
15427
15596
  }, STARTUP_SEAL_PROBE_DELAY_MS);
15428
15597
  sealProbe.unref();
15429
15598
  this.startPeriodicUpdateChecks();
15599
+ electron.powerMonitor.on("resume", () => this.armPostWakeCheck());
15600
+ }
15601
+ /**
15602
+ * Arm the single check that follows a resume, or leave the armed one alone.
15603
+ *
15604
+ * `unref`'d like the seal probe: a quit before it fires loses nothing, because
15605
+ * the next launch checks and the five-minute tick is still there.
15606
+ */
15607
+ armPostWakeCheck() {
15608
+ if (this.postWakeCheckTimer) return;
15609
+ this.postWakeCheckTimer = setTimeout(() => {
15610
+ this.postWakeCheckTimer = null;
15611
+ logger.info(
15612
+ "Running the update check this machine's wake armed",
15613
+ LogFileType.UPDATE_SERVICE
15614
+ );
15615
+ void this.checkForAllUpdates(true);
15616
+ }, POST_WAKE_CHECK_DELAY_MS);
15617
+ this.postWakeCheckTimer.unref();
15430
15618
  }
15431
15619
  /**
15432
15620
  * Start periodic update checks
@@ -16482,6 +16670,87 @@ ${heal.removed.join("\n")}`,
16482
16670
  /**
16483
16671
  * Set up event handlers for the autoUpdater
16484
16672
  */
16673
+ /**
16674
+ * One app-channel feed fetch, with its retries, as the owner of its failures.
16675
+ *
16676
+ * WHY A RETRY AND NOT A BETTER ERROR MESSAGE. The failures in the operator's
16677
+ * log are transients: a Wi-Fi change, a wake, a resolver blip. Every one of
16678
+ * them was followed by a check five minutes later that answered normally, so
16679
+ * the honest response to the first is to ask again rather than to tell the
16680
+ * user their network is down. Only a TRANSIENT failure is retried
16681
+ * (`transientTransportCode`), so a 404, a refused credential or a certificate
16682
+ * verdict still fails immediately and is not swallowed by a backoff.
16683
+ *
16684
+ * WHAT A CHECK CONCLUDES IS UNCHANGED, deliberately: a feed that never
16685
+ * arrived still reaches the caller as a rejected promise, and a check that
16686
+ * could not find out stays `unavailable` in the verdict. Retrying must not
16687
+ * turn "could not find out" into "nothing newer" - that conflation is this
16688
+ * repository's documented defect class, and it is why this is a retry rather
16689
+ * than an extra entry in `shouldFilterUpdateError` (whose filtered branch
16690
+ * emits `update-not-available`).
16691
+ *
16692
+ * The in-flight depth is held across the whole attempt sequence, so the
16693
+ * `error` events each attempt raises are owned by this call rather than
16694
+ * reported beside it.
16695
+ */
16696
+ async runAppFeedCheck(fetchFeed) {
16697
+ if (this.appFeedFetchInFlight) return this.appFeedFetchInFlight;
16698
+ const sequence = this.runAppFeedAttempts(fetchFeed);
16699
+ this.appFeedFetchInFlight = sequence;
16700
+ try {
16701
+ return await sequence;
16702
+ } finally {
16703
+ this.appFeedFetchInFlight = null;
16704
+ }
16705
+ }
16706
+ /**
16707
+ * Whether Electron believes this machine has a network at all.
16708
+ *
16709
+ * The `typeof` guard is a constraint rather than defensiveness: this module is
16710
+ * bundled with Electron STUBBED by its own contract harness
16711
+ * (`scripts/update-robustness.test.mjs`), and a stub that does not answer this
16712
+ * question must not turn every check into a skip. A missing reading is read as
16713
+ * "reachable", which is the behaviour that existed before the gate.
16714
+ */
16715
+ networkIsReachable() {
16716
+ return typeof electron.net?.isOnline === "function" ? electron.net.isOnline() : true;
16717
+ }
16718
+ /**
16719
+ * The attempt sequence itself: the retries, and the depth that owns them.
16720
+ */
16721
+ async runAppFeedAttempts(fetchFeed) {
16722
+ this.appChecksInFlight += 1;
16723
+ try {
16724
+ const delays = this.appFeedRetryDelaysMs;
16725
+ for (let attempt = 0; ; attempt += 1) {
16726
+ try {
16727
+ if (!this.networkIsReachable()) {
16728
+ logger.info(
16729
+ `The machine reports no network (net.isOnline() is false); not spending a request on the update feed${attempt < delays.length ? `, asking again in ${delays[attempt]}ms (attempt ${attempt + 2} of ${delays.length + 1})` : ""}.`,
16730
+ LogFileType.UPDATE_SERVICE
16731
+ );
16732
+ if (attempt >= delays.length) throw offlineTransportError();
16733
+ await new Promise(
16734
+ (resolve) => setTimeout(resolve, delays[attempt])
16735
+ );
16736
+ continue;
16737
+ }
16738
+ return await fetchFeed();
16739
+ } catch (error) {
16740
+ const code = transientTransportCode(error);
16741
+ if (code === null || attempt >= delays.length) throw error;
16742
+ const delay = delays[attempt];
16743
+ logger.warn(
16744
+ `Transient transport failure during the update check (${code}); retrying in ${delay}ms (attempt ${attempt + 2} of ${delays.length + 1})`,
16745
+ LogFileType.UPDATE_SERVICE
16746
+ );
16747
+ await new Promise((resolve) => setTimeout(resolve, delay));
16748
+ }
16749
+ }
16750
+ } finally {
16751
+ this.appChecksInFlight -= 1;
16752
+ }
16753
+ }
16485
16754
  setupUpdateEvents() {
16486
16755
  electronUpdater.autoUpdater.on("update-available", (info) => {
16487
16756
  logger.info("Update available:", LogFileType.UPDATE_SERVICE, info);
@@ -16513,6 +16782,17 @@ ${heal.removed.join("\n")}`,
16513
16782
  electronUpdater.autoUpdater.on("error", (err) => {
16514
16783
  logger.error("Update error:", LogFileType.UPDATE_SERVICE, err);
16515
16784
  const actionable = this.updateStage !== "idle";
16785
+ if (!actionable && this.appChecksInFlight > 0) {
16786
+ logger.info(
16787
+ // The rule, at the point it is implemented: a check in flight owns
16788
+ // its own failure report, and an app-initiated check's owner is a
16789
+ // silent one - so this is the log line that replaces the alert the
16790
+ // operator saw, not a swallowed error.
16791
+ "Update error during an availability check: the check reports its own failure",
16792
+ LogFileType.UPDATE_SERVICE
16793
+ );
16794
+ return;
16795
+ }
16516
16796
  const shouldFilter = !actionable && this.shouldFilterUpdateError(err);
16517
16797
  if (shouldFilter) {
16518
16798
  logger.info(
@@ -16522,7 +16802,7 @@ ${heal.removed.join("\n")}`,
16522
16802
  version: electron.app.getVersion()
16523
16803
  });
16524
16804
  } else {
16525
- this.sendToRenderer("update-error", err.message);
16805
+ this.sendToRenderer("update-error", stripErrorPrefixes(err.message));
16526
16806
  }
16527
16807
  });
16528
16808
  electronUpdater.autoUpdater.on("download-progress", (progressObj) => {
@@ -16586,12 +16866,18 @@ ${heal.removed.join("\n")}`,
16586
16866
  async (_event, options) => {
16587
16867
  logger.info("Checking for UI updates...", LogFileType.UPDATE_SERVICE);
16588
16868
  this.onCheckRequested(options);
16869
+ const reportFailure = options?.manual === true;
16589
16870
  try {
16590
- return await electronUpdater.autoUpdater.checkForUpdates();
16871
+ return await this.runAppFeedCheck(
16872
+ () => electronUpdater.autoUpdater.checkForUpdates()
16873
+ );
16591
16874
  } catch (error) {
16592
16875
  logger.error(
16593
16876
  "Error checking for UI updates:",
16594
16877
  LogFileType.UPDATE_SERVICE,
16878
+ // The failure is logged here whatever the caller is, because the log
16879
+ // is where an app-initiated check's failure belongs once it is not
16880
+ // reported.
16595
16881
  error
16596
16882
  );
16597
16883
  const shouldFilter = this.shouldFilterUpdateError(error);
@@ -16610,6 +16896,13 @@ ${heal.removed.join("\n")}`,
16610
16896
  cancellationToken: null
16611
16897
  };
16612
16898
  }
16899
+ if (!reportFailure) {
16900
+ logger.info(
16901
+ "An app-initiated check could not read the update feed; the failure is logged and not shown (only a check the user asked for is reported).",
16902
+ LogFileType.UPDATE_SERVICE
16903
+ );
16904
+ return null;
16905
+ }
16613
16906
  throw error;
16614
16907
  }
16615
16908
  }
@@ -16641,7 +16934,10 @@ ${heal.removed.join("\n")}`,
16641
16934
  this.onCheckRequested(options);
16642
16935
  const silent = options?.silent === true;
16643
16936
  try {
16644
- return await this.checkForAllUpdates(silent);
16937
+ return await this.checkForAllUpdates(
16938
+ silent,
16939
+ options?.manual === true
16940
+ );
16645
16941
  } catch (error) {
16646
16942
  logger.error(
16647
16943
  "Error checking for all updates:",
@@ -16789,7 +17085,7 @@ ${heal.removed.join("\n")}`,
16789
17085
  * says it with `unavailable` rather than by omission. `checkForAllUpdates`
16790
17086
  * is what turns the pair into the one sentence a user reads.
16791
17087
  */
16792
- async checkForUpdates(silent = false) {
17088
+ async checkForUpdates(silent = false, reportFailure = !silent) {
16793
17089
  logger.info(
16794
17090
  `Checking for updates... (silent mode: ${silent})`,
16795
17091
  LogFileType.UPDATE_SERVICE
@@ -16868,7 +17164,9 @@ ${heal.removed.join("\n")}`,
16868
17164
  }
16869
17165
  let result;
16870
17166
  try {
16871
- result = await electronUpdater.autoUpdater.checkForUpdates();
17167
+ result = await this.runAppFeedCheck(
17168
+ () => electronUpdater.autoUpdater.checkForUpdates()
17169
+ );
16872
17170
  } finally {
16873
17171
  if (silent) {
16874
17172
  electronUpdater.autoUpdater.removeAllListeners("update-not-available");
@@ -16897,10 +17195,16 @@ ${heal.removed.join("\n")}`,
16897
17195
  LogFileType.UPDATE_SERVICE,
16898
17196
  error
16899
17197
  );
16900
- if (this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed() && !silent) {
17198
+ if (this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed() && reportFailure) {
16901
17199
  this.mainWindow.webContents.send(
16902
17200
  "update-error",
16903
- error.message
17201
+ /*
17202
+ * Cleaned of the nested `Error: ` prefixes a wrapped failure carries,
17203
+ * at the source: this string is shown to a person as the machine's own
17204
+ * words under the sentence the renderer builds from the same code, and
17205
+ * `Error: Error: net::...` is a nesting nobody asked for.
17206
+ */
17207
+ stripErrorPrefixes(error.message)
16904
17208
  );
16905
17209
  }
16906
17210
  return "unavailable";
@@ -17224,7 +17528,7 @@ ${heal.removed.join("\n")}`,
17224
17528
  * proved nothing, which is why "could not determine the version" returns
17225
17529
  * `unavailable` rather than the `current` it used to read as.
17226
17530
  */
17227
- async checkForBackendUpdates(silent = false) {
17531
+ async checkForBackendUpdates(silent = false, reportFailure = !silent) {
17228
17532
  logger.info(
17229
17533
  `Checking for backend updates... (silent mode: ${silent})`,
17230
17534
  LogFileType.UPDATE_SERVICE
@@ -17251,6 +17555,13 @@ ${heal.removed.join("\n")}`,
17251
17555
  );
17252
17556
  return { status: "unavailable", info: null };
17253
17557
  }
17558
+ if (!this.networkIsReachable()) {
17559
+ logger.info(
17560
+ "Skipping the server update check: this machine reports no network right now (net.isOnline() is false). The app channel owns the report; the next scheduled check will try again.",
17561
+ LogFileType.UPDATE_SERVICE
17562
+ );
17563
+ return { status: "unavailable", info: null };
17564
+ }
17254
17565
  const installedVersion = await this.getInstalledBackendVersion();
17255
17566
  const latestVersion = await this.getLatestPypiVersion();
17256
17567
  if (latestVersion) this.lastPublishedBackendVersion = latestVersion;
@@ -17259,7 +17570,7 @@ ${heal.removed.join("\n")}`,
17259
17570
  "Unable to determine backend versions.",
17260
17571
  LogFileType.UPDATE_SERVICE
17261
17572
  );
17262
- if (!silent) {
17573
+ if (reportFailure) {
17263
17574
  this.sendToRenderer("backend-update-error", {
17264
17575
  message: "Unable to determine backend version.",
17265
17576
  phase: "check"
@@ -17272,7 +17583,7 @@ ${heal.removed.join("\n")}`,
17272
17583
  "The installed backend version could not be determined from the health endpoint.",
17273
17584
  LogFileType.UPDATE_SERVICE
17274
17585
  );
17275
- if (!silent) {
17586
+ if (reportFailure) {
17276
17587
  this.sendToRenderer("backend-update-error", {
17277
17588
  message: "The installed server version could not be determined, so no update was offered. Restart the app to try again.",
17278
17589
  phase: "check"
@@ -17291,7 +17602,7 @@ ${heal.removed.join("\n")}`,
17291
17602
  )} server version (installed: ${installedVersion}, published: ${latestVersion}); no status is reported rather than comparing an unreadable reading.`,
17292
17603
  LogFileType.UPDATE_SERVICE
17293
17604
  );
17294
- if (!silent) {
17605
+ if (reportFailure) {
17295
17606
  this.sendToRenderer("backend-update-error", {
17296
17607
  message: "Unable to determine backend version.",
17297
17608
  phase: "check"
@@ -17352,7 +17663,14 @@ ${heal.removed.join("\n")}`,
17352
17663
  );
17353
17664
  if (!silent && this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed()) {
17354
17665
  this.mainWindow.webContents.send("backend-update-error", {
17355
- message: error.message,
17666
+ /*
17667
+ * Cleaned at the source, the same way the app channel's report is:
17668
+ * this channel's real strings are Node errno forms, and a wrapped
17669
+ * one carries the inner `Error: ` prefix into the sentence a person
17670
+ * reads. The renderer maps what is left to a sentence; this is what
17671
+ * keeps that sentence's machine line readable.
17672
+ */
17673
+ message: stripErrorPrefixes(error.message),
17356
17674
  phase: "check"
17357
17675
  });
17358
17676
  }
@@ -17676,7 +17994,9 @@ ${pipRun.stderr.trim()}`,
17676
17994
  }
17677
17995
  if (this.mainWindow && !this.mainWindow.isDestroyed() && this.mainWindow.webContents && !this.mainWindow.webContents.isDestroyed()) {
17678
17996
  this.mainWindow.webContents.send("backend-update-error", {
17679
- message: error.message,
17997
+ // Cleaned at the source, for the reason written on the check-phase
17998
+ // report above.
17999
+ message: stripErrorPrefixes(error.message),
17680
18000
  phase: "update"
17681
18001
  });
17682
18002
  }
@@ -17695,9 +18015,9 @@ ${pipRun.stderr.trim()}`,
17695
18015
  * carries it - each channel's own events are unchanged, and the verdict
17696
18016
  * crosses the IPC boundary as this call's return value.
17697
18017
  */
17698
- async checkForAllUpdates(silent = false) {
17699
- const app2 = await this.checkForUpdates(silent);
17700
- const server = await this.checkForBackendUpdates(silent);
18018
+ async checkForAllUpdates(silent = false, reportFailure = !silent) {
18019
+ const app2 = await this.checkForUpdates(silent, reportFailure);
18020
+ const server = await this.checkForBackendUpdates(silent, reportFailure);
17701
18021
  return updateCheckVerdict({ app: app2, server: server.status });
17702
18022
  }
17703
18023
  /**
@@ -1 +1 @@
1
- import{e as o,c as b,g as v,k as O,h as P,j as p,l as w,m as A,n as x,t as c,o as N}from"./_baseUniq-B5WxfAdh.js";import{as as g,aa as y,at as E,au as F,av as M,aw as I,ax as _,ay as $,az as B,aA as T}from"./mermaid.core-CTF22veB.js";var S=/\s/;function z(n){for(var r=n.length;r--&&S.test(n.charAt(r)););return r}var G=/^\s+/;function H(n){return n&&n.slice(0,z(n)+1).replace(G,"")}var m=NaN,L=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,q=/^0o[0-7]+$/i,C=parseInt;function K(n){if(typeof n=="number")return n;if(o(n))return m;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=H(n);var t=R.test(n);return t||q.test(n)?C(n.slice(2),t?2:8):L.test(n)?m:+n}var W=1/0,X=17976931348623157e292;function Y(n){if(!n)return n===0?n:0;if(n=K(n),n===W||n===-1/0){var r=n<0?-1:1;return r*X}return n===n?n:0}function D(n){var r=Y(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var l=Object.prototype,J=l.hasOwnProperty,dn=y(function(n,r){n=Object(n);var t=-1,e=r.length,a=e>2?r[2]:void 0;for(a&&E(r[0],r[1],a)&&(e=1);++t<e;)for(var f=r[t],i=F(f),s=-1,d=i.length;++s<d;){var u=i[s],h=n[u];(h===void 0||M(h,l[u])&&!J.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function Q(n){return function(r,t,e){var a=Object(r);if(!I(r)){var f=v(t);r=O(r),t=function(s){return f(a[s],s,a)}}var i=n(r,t,e);return i>-1?a[f?r[i]:i]:void 0}}var U=Math.max;function Z(n,r,t){var e=n==null?0:n.length;if(!e)return-1;var a=t==null?0:D(t);return a<0&&(a=U(e+a,0)),P(n,v(r),a)}var hn=Q(Z);function V(n,r){var t=-1,e=I(n)?Array(n.length):[];return p(n,function(a,f,i){e[++t]=r(a,f,i)}),e}function gn(n,r){var t=_(n)?w:V;return t(n,v(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function vn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var e=-1,a=n.length;++e<a;){var f=n[e],i=r(f);if(i!=null&&(s===void 0?i===i&&!o(i):t(i,s)))var s=i,d=f}return d}function mn(n){return n&&n.length?tn(n,$,rn):void 0}function an(n,r,t,e){if(!g(n))return n;r=x(r,n);for(var a=-1,f=r.length,i=f-1,s=n;s!=null&&++a<f;){var d=c(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=i){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:B(r[a+1])?[]:{})}T(s,d,u),s=s[d]}return n}function on(n,r,t){for(var e=-1,a=r.length,f={};++e<a;){var i=r[e],s=N(n,i);t(s,i)&&an(f,x(i,n),s)}return f}export{rn as a,tn as b,V as c,on as d,mn as e,fn as f,hn as g,vn as h,dn as i,D as j,un as l,gn as m,Y as t};
1
+ import{e as o,c as b,g as v,k as O,h as P,j as p,l as w,m as A,n as x,t as c,o as N}from"./_baseUniq-Bqq4bH3r.js";import{as as g,aa as y,at as E,au as F,av as M,aw as I,ax as _,ay as $,az as B,aA as T}from"./mermaid.core-kFbnNRih.js";var S=/\s/;function z(n){for(var r=n.length;r--&&S.test(n.charAt(r)););return r}var G=/^\s+/;function H(n){return n&&n.slice(0,z(n)+1).replace(G,"")}var m=NaN,L=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,q=/^0o[0-7]+$/i,C=parseInt;function K(n){if(typeof n=="number")return n;if(o(n))return m;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=H(n);var t=R.test(n);return t||q.test(n)?C(n.slice(2),t?2:8):L.test(n)?m:+n}var W=1/0,X=17976931348623157e292;function Y(n){if(!n)return n===0?n:0;if(n=K(n),n===W||n===-1/0){var r=n<0?-1:1;return r*X}return n===n?n:0}function D(n){var r=Y(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var l=Object.prototype,J=l.hasOwnProperty,dn=y(function(n,r){n=Object(n);var t=-1,e=r.length,a=e>2?r[2]:void 0;for(a&&E(r[0],r[1],a)&&(e=1);++t<e;)for(var f=r[t],i=F(f),s=-1,d=i.length;++s<d;){var u=i[s],h=n[u];(h===void 0||M(h,l[u])&&!J.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function Q(n){return function(r,t,e){var a=Object(r);if(!I(r)){var f=v(t);r=O(r),t=function(s){return f(a[s],s,a)}}var i=n(r,t,e);return i>-1?a[f?r[i]:i]:void 0}}var U=Math.max;function Z(n,r,t){var e=n==null?0:n.length;if(!e)return-1;var a=t==null?0:D(t);return a<0&&(a=U(e+a,0)),P(n,v(r),a)}var hn=Q(Z);function V(n,r){var t=-1,e=I(n)?Array(n.length):[];return p(n,function(a,f,i){e[++t]=r(a,f,i)}),e}function gn(n,r){var t=_(n)?w:V;return t(n,v(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function vn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var e=-1,a=n.length;++e<a;){var f=n[e],i=r(f);if(i!=null&&(s===void 0?i===i&&!o(i):t(i,s)))var s=i,d=f}return d}function mn(n){return n&&n.length?tn(n,$,rn):void 0}function an(n,r,t,e){if(!g(n))return n;r=x(r,n);for(var a=-1,f=r.length,i=f-1,s=n;s!=null&&++a<f;){var d=c(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=i){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:B(r[a+1])?[]:{})}T(s,d,u),s=s[d]}return n}function on(n,r,t){for(var e=-1,a=r.length,f={};++e<a;){var i=r[e],s=N(n,i);t(s,i)&&an(f,x(i,n),s)}return f}export{rn as a,tn as b,V as c,on as d,mn as e,fn as f,hn as g,vn as h,dn as i,D as j,un as l,gn as m,Y as t};
@@ -1 +1 @@
1
- import{aH as S,aI as Rn,ax as T,aJ as w,aK as xn,aL as Mn,aw as sn,aM as mn,aN as un,aO as x,au as U,aP as Cn,aQ as on,aR as Fn,aS as E,aF as gn,aT as R,as as ln,aU as Dn,aV as D,aW as Gn,aX as Un,aY as _,aA as Nn,aZ as Bn,av as Kn,a_ as X,a$ as Hn,b0 as jn,az as Yn,ay as cn,aD as Zn,b1 as m}from"./mermaid.core-CTF22veB.js";var qn="[object Symbol]";function N(n){return typeof n=="symbol"||S(n)&&Rn(n)==qn}function dn(n,r){for(var e=-1,t=n==null?0:n.length,a=Array(t);++e<t;)a[e]=r(n[e],e,n);return a}var J=w?w.prototype:void 0,Q=J?J.toString:void 0;function pn(n){if(typeof n=="string")return n;if(T(n))return dn(n,pn)+"";if(N(n))return Q?Q.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function An(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Jn(n,r,e,t){for(var a=n.length,i=e+-1;++i<a;)if(r(n[i],i,n))return i;return-1}function Qn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,a=n.length;++t<a;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Jn(n,Qn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):Mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function B(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||N(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,ar=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,a,i){r.push(a?i.replace(ir,"$1"):t||e)}),r});function fr(n){return n==null?"":pn(n)}function yn(n,r){return T(n)?n:B(n,r)?[n]:ar(fr(n))}function M(n){if(typeof n=="string"||N(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function bn(n,r){r=yn(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[M(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:bn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,a=n.length;++e<t;)n[a+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,a){var i=-1,f=n.length;for(e||(e=ur),a||(a=[]);++i<f;){var s=n[i];e(s)?K(a,s):t||(a[a.length]=s)}return a}function or(n,r,e,t){var a=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++a]);++a<i;)e=r(e,n[a],a,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,U(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,a=0,i=[];++e<t;){var f=n[e];r(f,e,n)&&(i[a++]=f)}return i}function hn(){return[]}var cr=Object.prototype,dr=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,H=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return dr.call(n,r)}))}:hn;function pr(n,r){return x(n,H(n),r)}var Ar=Object.getOwnPropertySymbols,wn=Ar?function(n){for(var r=[];n;)K(r,H(n)),n=Cn(n);return r}:hn;function yr(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,H)}function br(n){return On(n,U,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",Mr="[object Symbol]",mr="[object ArrayBuffer]",Cr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Ur="[object Int16Array]",Nr="[object Int32Array]",Br="[object Uint8Array]",Kr="[object Uint8ClampedArray]",Hr="[object Uint16Array]",jr="[object Uint32Array]";function Yr(n,r,e){var t=n.constructor;switch(r){case mr:return on(n);case Er:case Ir:return new t(+n);case Cr:return Or(n,e);case Fr:case Dr:case Gr:case Ur:case Nr:case Br:case Kr:case Hr:case jr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case Mr:return Sr(n)}}var Zr="[object Map]";function qr(n){return S(n)&&E(n)==Zr}var nn=R&&R.isMap,Xr=nn?gn(nn):qr,Jr="[object Set]";function Qr(n){return S(n)&&E(n)==Jr}var rn=R&&R.isSet,Wr=rn?gn(rn):Qr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",ae="[object Map]",fe="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",de="[object DataView]",pe="[object Float32Array]",Ae="[object Float64Array]",ye="[object Int8Array]",be="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[de]=g[re]=g[ee]=g[pe]=g[Ae]=g[ye]=g[be]=g[Te]=g[ae]=g[fe]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function C(n,r,e,t,a,i){var f,s=r&zr,u=r&Vr,d=r&kr;if(f!==void 0)return f;if(!ln(n))return n;var l=T(n);if(l){if(f=wr(n),!s)return Dn(n,f)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!a){if(f=u||c?{}:Un(n),!s)return u?yr(n,lr(f,n)):pr(n,gr(f,n))}else{if(!g[o])return a?n:{};f=Yr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,f),Wr(n)?n.forEach(function(p){f.add(C(p,r,e,p,n,i))}):Xr(n)&&n.forEach(function(p,A){f.set(A,C(p,r,e,A,n,i))});var y=d?u?br:G:u?U:$,b=l?void 0:y(n);return An(b||n,function(p,A){b&&(A=p,p=n[A]),Nn(f,A,C(p,r,e,A,n,i))}),f}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Bn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Se;I.prototype.has=Ee;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,a,i){var f=e&Pe,s=n.length,u=r.length;if(s!=u&&!(f&&u>s))return!1;var d=i.get(n),l=i.get(r);if(d&&l)return d==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var y=n[o],b=r[o];if(t)var p=f?t(b,y,o,r,n,i):t(y,b,o,n,r,i);if(p!==void 0){if(p)continue;c=!1;break}if(h){if(!Ie(r,function(A,O){if(!En(h,O)&&(y===A||a(y,A,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(y===b||a(y,b,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,a){e[++r]=[a,t]}),e}function j(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,Me="[object Boolean]",me="[object Date]",Ce="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ue="[object Set]",Ne="[object String]",Be="[object Symbol]",Ke="[object ArrayBuffer]",He="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function je(n,r,e,t,a,i,f){switch(e){case He:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case Me:case me:case De:return Kn(+n,+r);case Ce:return n.name==r.name&&n.message==r.message;case Ge:case Ne:return n==r+"";case Fe:var s=Le;case Ue:var u=t&Re;if(s||(s=j),n.size!=r.size&&!u)return!1;var d=f.get(n);if(d)return d==r;t|=xe,f.set(n,r);var l=In(s(n),s(r),t,a,i,f);return f.delete(n),l;case Be:if(F)return F.call(n)==F.call(r)}return!1}var Ye=1,Ze=Object.prototype,qe=Ze.hasOwnProperty;function Xe(n,r,e,t,a,i){var f=e&Ye,s=G(n),u=s.length,d=G(r),l=d.length;if(u!=l&&!f)return!1;for(var o=u;o--;){var c=s[o];if(!(f?c in r:qe.call(r,c)))return!1}var h=i.get(n),y=i.get(r);if(h&&y)return h==r&&y==n;var b=!0;i.set(n,r),i.set(r,n);for(var p=f;++o<u;){c=s[o];var A=n[c],O=r[c];if(t)var q=f?t(O,A,c,r,n,i):t(A,O,c,n,r,i);if(!(q===void 0?A===O||a(A,O,e,t,i):q)){b=!1;break}p||(p=c=="constructor")}if(b&&!p){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(b=!1)}return i.delete(n),i.delete(r),b}var Je=1,tn="[object Arguments]",an="[object Array]",L="[object Object]",Qe=Object.prototype,fn=Qe.hasOwnProperty;function We(n,r,e,t,a,i){var f=T(n),s=T(r),u=f?an:E(n),d=s?an:E(r);u=u==tn?L:u,d=d==tn?L:d;var l=u==L,o=d==L,c=u==d;if(c&&D(n)){if(!D(r))return!1;f=!0,l=!1}if(c&&!l)return i||(i=new _),f||Hn(n)?In(n,r,e,t,a,i):je(n,r,u,e,t,a,i);if(!(e&Je)){var h=l&&fn.call(n,"__wrapped__"),y=o&&fn.call(r,"__wrapped__");if(h||y){var b=h?n.value():n,p=y?r.value():r;return i||(i=new _),a(b,p,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,a,i)):!1}function Y(n,r,e,t,a){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,Y,a)}var ze=1,Ve=2;function ke(n,r,e,t){var a=e.length,i=a;if(n==null)return!i;for(n=Object(n);a--;){var f=e[a];if(f[2]?f[1]!==n[f[0]]:!(f[0]in n))return!1}for(;++a<i;){f=e[a];var s=f[0],u=n[s],d=f[1];if(f[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?Y(d,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],a=n[t];r[e]=[t,a,Pn(a)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=yn(r,n);for(var t=-1,a=r.length,i=!1;++t<a;){var f=M(r[t]);if(!(i=n!=null&&e(n,f)))break;n=n[f]}return i||++t!=a?i:(a=n==null?0:n.length,!!a&&jn(a)&&Yn(f,a)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var at=1,ft=2;function st(n,r){return B(n)&&Pn(r)?vn(M(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):Y(r,t,at|ft)}}function ut(n){return function(r){return r?.[n]}}function ot(n){return function(r){return bn(r,n)}}function gt(n){return B(n)?ut(M(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Zn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var a=e.length,i=-1,f=Object(e);++i<a&&t(f[i],i,f)!==!1;);return e}}var Z=ct(lt);function dt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?An:Z;return e(n,dt(r))}function pt(n,r){var e=[];return Z(n,function(t,a,i){r(t,a,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:pt;return e(n,Ln(r))}function At(n,r){return dn(r,function(e){return n[e]})}function St(n){return n==null?[]:At(n,$(n))}function Et(n){return n===void 0}function yt(n,r,e,t,a){return a(n,function(i,f,s){e=t?(t=!1,i):r(e,i,f,s)}),e}function It(n,r,e){var t=T(n)?or:yt,a=arguments.length<3;return t(n,Ln(r),e,a,Z)}var bt=1/0,Tt=m&&1/j(new m([,-0]))[1]==bt?function(n){return new m(n)}:Xn,ht=200;function Pt(n,r,e){var t=-1,a=Vn,i=n.length,f=!0,s=[],u=s;if(i>=ht){var d=r?null:Tt(n);if(d)return j(d);f=!1,a=En,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,f&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else a(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,pt as B,Ie as C,Xn as D,I as S,Pt as a,C as b,Ot as c,$t as d,N as e,_t as f,Ln as g,Jn as h,Et as i,Z as j,$ as k,dn as l,tt as m,yn as n,bn as o,dt as p,lt as q,It as r,it as s,M as t,fr as u,St as v,Vn as w,En as x,zn as y,br as z};
1
+ import{aH as S,aI as Rn,ax as T,aJ as w,aK as xn,aL as Mn,aw as sn,aM as mn,aN as un,aO as x,au as U,aP as Cn,aQ as on,aR as Fn,aS as E,aF as gn,aT as R,as as ln,aU as Dn,aV as D,aW as Gn,aX as Un,aY as _,aA as Nn,aZ as Bn,av as Kn,a_ as X,a$ as Hn,b0 as jn,az as Yn,ay as cn,aD as Zn,b1 as m}from"./mermaid.core-kFbnNRih.js";var qn="[object Symbol]";function N(n){return typeof n=="symbol"||S(n)&&Rn(n)==qn}function dn(n,r){for(var e=-1,t=n==null?0:n.length,a=Array(t);++e<t;)a[e]=r(n[e],e,n);return a}var J=w?w.prototype:void 0,Q=J?J.toString:void 0;function pn(n){if(typeof n=="string")return n;if(T(n))return dn(n,pn)+"";if(N(n))return Q?Q.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function An(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Jn(n,r,e,t){for(var a=n.length,i=e+-1;++i<a;)if(r(n[i],i,n))return i;return-1}function Qn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,a=n.length;++t<a;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Jn(n,Qn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):Mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function B(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||N(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,ar=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,a,i){r.push(a?i.replace(ir,"$1"):t||e)}),r});function fr(n){return n==null?"":pn(n)}function yn(n,r){return T(n)?n:B(n,r)?[n]:ar(fr(n))}function M(n){if(typeof n=="string"||N(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function bn(n,r){r=yn(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[M(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:bn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,a=n.length;++e<t;)n[a+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,a){var i=-1,f=n.length;for(e||(e=ur),a||(a=[]);++i<f;){var s=n[i];e(s)?K(a,s):t||(a[a.length]=s)}return a}function or(n,r,e,t){var a=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++a]);++a<i;)e=r(e,n[a],a,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,U(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,a=0,i=[];++e<t;){var f=n[e];r(f,e,n)&&(i[a++]=f)}return i}function hn(){return[]}var cr=Object.prototype,dr=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,H=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return dr.call(n,r)}))}:hn;function pr(n,r){return x(n,H(n),r)}var Ar=Object.getOwnPropertySymbols,wn=Ar?function(n){for(var r=[];n;)K(r,H(n)),n=Cn(n);return r}:hn;function yr(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,H)}function br(n){return On(n,U,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",Mr="[object Symbol]",mr="[object ArrayBuffer]",Cr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Ur="[object Int16Array]",Nr="[object Int32Array]",Br="[object Uint8Array]",Kr="[object Uint8ClampedArray]",Hr="[object Uint16Array]",jr="[object Uint32Array]";function Yr(n,r,e){var t=n.constructor;switch(r){case mr:return on(n);case Er:case Ir:return new t(+n);case Cr:return Or(n,e);case Fr:case Dr:case Gr:case Ur:case Nr:case Br:case Kr:case Hr:case jr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case Mr:return Sr(n)}}var Zr="[object Map]";function qr(n){return S(n)&&E(n)==Zr}var nn=R&&R.isMap,Xr=nn?gn(nn):qr,Jr="[object Set]";function Qr(n){return S(n)&&E(n)==Jr}var rn=R&&R.isSet,Wr=rn?gn(rn):Qr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",ae="[object Map]",fe="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",de="[object DataView]",pe="[object Float32Array]",Ae="[object Float64Array]",ye="[object Int8Array]",be="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[de]=g[re]=g[ee]=g[pe]=g[Ae]=g[ye]=g[be]=g[Te]=g[ae]=g[fe]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function C(n,r,e,t,a,i){var f,s=r&zr,u=r&Vr,d=r&kr;if(f!==void 0)return f;if(!ln(n))return n;var l=T(n);if(l){if(f=wr(n),!s)return Dn(n,f)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!a){if(f=u||c?{}:Un(n),!s)return u?yr(n,lr(f,n)):pr(n,gr(f,n))}else{if(!g[o])return a?n:{};f=Yr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,f),Wr(n)?n.forEach(function(p){f.add(C(p,r,e,p,n,i))}):Xr(n)&&n.forEach(function(p,A){f.set(A,C(p,r,e,A,n,i))});var y=d?u?br:G:u?U:$,b=l?void 0:y(n);return An(b||n,function(p,A){b&&(A=p,p=n[A]),Nn(f,A,C(p,r,e,A,n,i))}),f}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Bn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Se;I.prototype.has=Ee;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,a,i){var f=e&Pe,s=n.length,u=r.length;if(s!=u&&!(f&&u>s))return!1;var d=i.get(n),l=i.get(r);if(d&&l)return d==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var y=n[o],b=r[o];if(t)var p=f?t(b,y,o,r,n,i):t(y,b,o,n,r,i);if(p!==void 0){if(p)continue;c=!1;break}if(h){if(!Ie(r,function(A,O){if(!En(h,O)&&(y===A||a(y,A,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(y===b||a(y,b,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,a){e[++r]=[a,t]}),e}function j(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,Me="[object Boolean]",me="[object Date]",Ce="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ue="[object Set]",Ne="[object String]",Be="[object Symbol]",Ke="[object ArrayBuffer]",He="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function je(n,r,e,t,a,i,f){switch(e){case He:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case Me:case me:case De:return Kn(+n,+r);case Ce:return n.name==r.name&&n.message==r.message;case Ge:case Ne:return n==r+"";case Fe:var s=Le;case Ue:var u=t&Re;if(s||(s=j),n.size!=r.size&&!u)return!1;var d=f.get(n);if(d)return d==r;t|=xe,f.set(n,r);var l=In(s(n),s(r),t,a,i,f);return f.delete(n),l;case Be:if(F)return F.call(n)==F.call(r)}return!1}var Ye=1,Ze=Object.prototype,qe=Ze.hasOwnProperty;function Xe(n,r,e,t,a,i){var f=e&Ye,s=G(n),u=s.length,d=G(r),l=d.length;if(u!=l&&!f)return!1;for(var o=u;o--;){var c=s[o];if(!(f?c in r:qe.call(r,c)))return!1}var h=i.get(n),y=i.get(r);if(h&&y)return h==r&&y==n;var b=!0;i.set(n,r),i.set(r,n);for(var p=f;++o<u;){c=s[o];var A=n[c],O=r[c];if(t)var q=f?t(O,A,c,r,n,i):t(A,O,c,n,r,i);if(!(q===void 0?A===O||a(A,O,e,t,i):q)){b=!1;break}p||(p=c=="constructor")}if(b&&!p){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(b=!1)}return i.delete(n),i.delete(r),b}var Je=1,tn="[object Arguments]",an="[object Array]",L="[object Object]",Qe=Object.prototype,fn=Qe.hasOwnProperty;function We(n,r,e,t,a,i){var f=T(n),s=T(r),u=f?an:E(n),d=s?an:E(r);u=u==tn?L:u,d=d==tn?L:d;var l=u==L,o=d==L,c=u==d;if(c&&D(n)){if(!D(r))return!1;f=!0,l=!1}if(c&&!l)return i||(i=new _),f||Hn(n)?In(n,r,e,t,a,i):je(n,r,u,e,t,a,i);if(!(e&Je)){var h=l&&fn.call(n,"__wrapped__"),y=o&&fn.call(r,"__wrapped__");if(h||y){var b=h?n.value():n,p=y?r.value():r;return i||(i=new _),a(b,p,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,a,i)):!1}function Y(n,r,e,t,a){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,Y,a)}var ze=1,Ve=2;function ke(n,r,e,t){var a=e.length,i=a;if(n==null)return!i;for(n=Object(n);a--;){var f=e[a];if(f[2]?f[1]!==n[f[0]]:!(f[0]in n))return!1}for(;++a<i;){f=e[a];var s=f[0],u=n[s],d=f[1];if(f[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?Y(d,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],a=n[t];r[e]=[t,a,Pn(a)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=yn(r,n);for(var t=-1,a=r.length,i=!1;++t<a;){var f=M(r[t]);if(!(i=n!=null&&e(n,f)))break;n=n[f]}return i||++t!=a?i:(a=n==null?0:n.length,!!a&&jn(a)&&Yn(f,a)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var at=1,ft=2;function st(n,r){return B(n)&&Pn(r)?vn(M(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):Y(r,t,at|ft)}}function ut(n){return function(r){return r?.[n]}}function ot(n){return function(r){return bn(r,n)}}function gt(n){return B(n)?ut(M(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Zn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var a=e.length,i=-1,f=Object(e);++i<a&&t(f[i],i,f)!==!1;);return e}}var Z=ct(lt);function dt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?An:Z;return e(n,dt(r))}function pt(n,r){var e=[];return Z(n,function(t,a,i){r(t,a,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:pt;return e(n,Ln(r))}function At(n,r){return dn(r,function(e){return n[e]})}function St(n){return n==null?[]:At(n,$(n))}function Et(n){return n===void 0}function yt(n,r,e,t,a){return a(n,function(i,f,s){e=t?(t=!1,i):r(e,i,f,s)}),e}function It(n,r,e){var t=T(n)?or:yt,a=arguments.length<3;return t(n,Ln(r),e,a,Z)}var bt=1/0,Tt=m&&1/j(new m([,-0]))[1]==bt?function(n){return new m(n)}:Xn,ht=200;function Pt(n,r,e){var t=-1,a=Vn,i=n.length,f=!0,s=[],u=s;if(i>=ht){var d=r?null:Tt(n);if(d)return j(d);f=!1,a=En,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,f&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else a(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,pt as B,Ie as C,Xn as D,I as S,Pt as a,C as b,Ot as c,$t as d,N as e,_t as f,Ln as g,Jn as h,Et as i,Z as j,$ as k,dn as l,tt as m,yn as n,bn as o,dt as p,lt as q,It as r,it as s,M as t,fr as u,St as v,Vn as w,En as x,zn as y,br as z};
@@ -1,4 +1,4 @@
1
- import{a as J,r as S,j as e,L as X,T as B,B as c,S as L,b as R,d as F,e as q,f as x,X as Z,g as j,c as U}from"./icon-KrVT-csH.js";import{g as $,aq as V,f as E,aa as f,ac as P,ar as _,as as M,at as ee,au as te,av as se,aw as ae,ax as Q,ay as ne,az as W,aA as ie,h as H,aB as re,aC as oe,u as le,aD as ce,aE as de,aF as me,aG as ue,aH as xe,B as he,aI as ge,aJ as je,aK as fe,aL as ye,aM as O,aN as pe,aO as be,aP as we}from"./index-CV6OexwP.js";import{u as ve,a as Ce,b as Ne,c as Ae}from"./use-agent-like-mutation-DwD0kyhJ.js";/**
1
+ import{a as J,r as S,j as e,L as X,T as B,B as c,S as L,b as R,d as F,e as q,f as x,X as Z,g as j,c as U}from"./icon-BIH0o0-h.js";import{g as $,aq as V,f as E,aa as f,ac as P,ar as _,as as M,at as ee,au as te,av as se,aw as ae,ax as Q,ay as ne,az as W,aA as ie,h as H,aB as re,aC as oe,u as le,aD as ce,aE as de,aF as me,aG as ue,aH as xe,B as he,aI as ge,aJ as je,aK as fe,aL as ye,aM as O,aN as pe,aO as be,aP as we}from"./index-DkR2IOFW.js";import{u as ve,a as Ce,b as Ne,c as Ae}from"./use-agent-like-mutation-Da0zEmNH.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{a as p,j as e,c as j,r as m,S as y}from"./icon-KrVT-csH.js";import{C as k}from"./compact-pagination-FBuuRrOa.js";import{P as v}from"./page-header-CNu3r7Wl.js";import{aa as b,am as A,an as h,ao as L,ap as N}from"./index-CV6OexwP.js";import{u as C,a as P,b as w,c as M}from"./use-agent-like-mutation-DwD0kyhJ.js";/**
1
+ import{a as p,j as e,c as j,r as m,S as y}from"./icon-BIH0o0-h.js";import{C as k}from"./compact-pagination-DZcKP76l.js";import{P as v}from"./page-header-h3oV19Xt.js";import{aa as b,am as A,an as h,ao as L,ap as N}from"./index-DkR2IOFW.js";import{u as C,a as P,b as w,c as M}from"./use-agent-like-mutation-Da0zEmNH.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.