local-operator-ui 0.39.6 → 0.39.7

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 (90) hide show
  1. package/out/main/index.js +190 -23
  2. package/out/renderer/assets/{_basePickBy-CEM-62na.js → _basePickBy-CEnbnbbH.js} +1 -1
  3. package/out/renderer/assets/{_baseUniq-DKUG2lEn.js → _baseUniq-CdOS48Ck.js} +1 -1
  4. package/out/renderer/assets/{agent-details-page-uwmizvcA.js → agent-details-page-tp9kdqtV.js} +1 -1
  5. package/out/renderer/assets/{agent-hub-page-DY0hrFjh.js → agent-hub-page-DLGKHTRy.js} +1 -1
  6. package/out/renderer/assets/{agents-page-B82GhyEm.js → agents-page-zlHPJdIG.js} +3 -3
  7. package/out/renderer/assets/{arc-CwS59wEx.js → arc-BNz9sDxF.js} +1 -1
  8. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-CrSOPHPj.js → architectureDiagram-IEHRJDOE-PT8IWaJd.js} +1 -1
  9. package/out/renderer/assets/{blockDiagram-JOT3LUYC-DOKW2aS1.js → blockDiagram-JOT3LUYC-TofPikdt.js} +1 -1
  10. package/out/renderer/assets/{book-open-BrVlmR50.js → book-open-C9j4VQTg.js} +1 -1
  11. package/out/renderer/assets/browser-page-_iKE2RNe.js +1 -0
  12. package/out/renderer/assets/{browser-webauthn-prompt-D4Pmblc_.js → browser-webauthn-prompt-7G2sk0mv.js} +1 -1
  13. package/out/renderer/assets/{building-2-BbJxBV3t.js → building-2-C-Qj7y2j.js} +1 -1
  14. package/out/renderer/assets/{c4Diagram-VJAJSXHY-BNZOSwVL.js → c4Diagram-VJAJSXHY-aQCw2eBK.js} +1 -1
  15. package/out/renderer/assets/channel-ckpV6c4V.js +1 -0
  16. package/out/renderer/assets/{chunk-4BMEZGHF-DatYJ8Pc.js → chunk-4BMEZGHF-BfamF_Ga.js} +1 -1
  17. package/out/renderer/assets/{chunk-A2AXSNBT-kofNI-nh.js → chunk-A2AXSNBT-DkYCFJWH.js} +1 -1
  18. package/out/renderer/assets/{chunk-AEK57VVT-RG-vyDkt.js → chunk-AEK57VVT-BJsKs1c3.js} +1 -1
  19. package/out/renderer/assets/{chunk-D6G4REZN-DbgxdXuD.js → chunk-D6G4REZN-DQafTOcO.js} +1 -1
  20. package/out/renderer/assets/{chunk-RZ5BOZE2-Pwbky5G7.js → chunk-RZ5BOZE2-BtdIGif_.js} +1 -1
  21. package/out/renderer/assets/{chunk-XZIHB7SX-nMQwH5Ev.js → chunk-XZIHB7SX-CPFZQYMe.js} +1 -1
  22. package/out/renderer/assets/classDiagram-GIVACNV2-B3X9me6N.js +1 -0
  23. package/out/renderer/assets/classDiagram-v2-COTLJTTW-B3X9me6N.js +1 -0
  24. package/out/renderer/assets/clone-gWuEtEL1.js +1 -0
  25. package/out/renderer/assets/{console-mirror-B7HDmLVb.js → console-mirror-BKH21iCK.js} +14 -14
  26. package/out/renderer/assets/{consoleCapture-wuvuMPlf.js → consoleCapture-CVwDUtXD.js} +1 -1
  27. package/out/renderer/assets/{conversation-input-sync-DeQTtOSG.js → conversation-input-sync-DTwv4LpE.js} +4 -4
  28. package/out/renderer/assets/{dagre-OKDRZEBW-BXF3VqDs.js → dagre-OKDRZEBW-OgXmMciL.js} +1 -1
  29. package/out/renderer/assets/{diagram-SSKATNLV-C6ZzdCUp.js → diagram-SSKATNLV-BmsZgHTq.js} +1 -1
  30. package/out/renderer/assets/{diagram-VNBRO52H-ND-gVRs3.js → diagram-VNBRO52H-Cr9Grlgh.js} +1 -1
  31. package/out/renderer/assets/{erDiagram-Q7BY3M3F-DJ8vCpMT.js → erDiagram-Q7BY3M3F-fgqi2edy.js} +1 -1
  32. package/out/renderer/assets/{error-boundary-D81PAlVn.js → error-boundary-aqUJ0ROL.js} +1 -1
  33. package/out/renderer/assets/{flowDiagram-4HSFHLVR-C0lG2NYg.js → flowDiagram-4HSFHLVR-Clb0_Qdc.js} +1 -1
  34. package/out/renderer/assets/{ganttDiagram-APWFNJXF-BBxt5Pgj.js → ganttDiagram-APWFNJXF-C2YI1HlL.js} +1 -1
  35. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-B5eei6E_.js → gitGraphDiagram-7IBYFJ6S-Bcg0BnMu.js} +1 -1
  36. package/out/renderer/assets/{graph-lWFNtwh7.js → graph-BzD7EvQb.js} +1 -1
  37. package/out/renderer/assets/{hash-3k6_lTgk.js → hash-neDzbCXS.js} +1 -1
  38. package/out/renderer/assets/{index-FqHXqlQT.js → index-B16LGlVe.js} +1 -1
  39. package/out/renderer/assets/index-CQml9u-9.js +57 -0
  40. package/out/renderer/assets/{index-ZC-NNW64.css → index-CXsn7x-M.css} +1 -1
  41. package/out/renderer/assets/{index-BtI7uak5.js → index-DTi580qk.js} +194 -194
  42. package/out/renderer/assets/{index-tyh1i-0R.js → index-_kad0jHX.js} +1 -1
  43. package/out/renderer/assets/{infoDiagram-PH2N3AL5-DfdIGj2q.js → infoDiagram-PH2N3AL5-DUD1Zb9n.js} +1 -1
  44. package/out/renderer/assets/{installer-OLhNHLbA.js → installer-CmbKACIX.js} +1 -1
  45. package/out/renderer/assets/{journeyDiagram-U35MCT3I-DY36aDPm.js → journeyDiagram-U35MCT3I-Bn1cTo4G.js} +1 -1
  46. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-DkmkP4pt.js → kanban-definition-NDS4AKOZ-Bw7rDfia.js} +1 -1
  47. package/out/renderer/assets/{layout-Wh_eVbud.js → layout-BDVYAAmD.js} +1 -1
  48. package/out/renderer/assets/{legacy-agents-page-m5-4VKbu.js → legacy-agents-page-CuQMfUeR.js} +1 -1
  49. package/out/renderer/assets/{library-page-vUP7gWsI.js → library-page-B9s2FYnU.js} +3 -3
  50. package/out/renderer/assets/{mermaid.core-CIUeSke9.js → mermaid.core-D-DUuSel.js} +5 -5
  51. package/out/renderer/assets/{mesh-page-CoUCZ19i.js → mesh-page-CwkFm-eu.js} +1 -1
  52. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-E7Cl2drf.js → mindmap-definition-ALO5MXBD-CiqYdj8Q.js} +1 -1
  53. package/out/renderer/assets/{mini-D6HdkQvd.js → mini-BVDybISg.js} +1 -1
  54. package/out/renderer/assets/{notebook-pen-CiUgTpp-.js → notebook-pen-DzZsHKPn.js} +1 -1
  55. package/out/renderer/assets/{org-access-DMUk8SEr.js → org-access-B2_ZIy5A.js} +1 -1
  56. package/out/renderer/assets/{org-surface-gate-DdKUA8S8.js → org-surface-gate-BygOcwMP.js} +1 -1
  57. package/out/renderer/assets/{page-header-DyRHEB-L.js → page-header-CPOxzTkT.js} +1 -1
  58. package/out/renderer/assets/{pieDiagram-IB7DONF6-C3KFzuOU.js → pieDiagram-IB7DONF6-B46iHAdf.js} +1 -1
  59. package/out/renderer/assets/{projects-page-BdU99VZf.js → projects-page-Dnu4aFn8.js} +1 -1
  60. package/out/renderer/assets/{publication-validation-Cv6lnH83.js → publication-validation-Drtrxi_K.js} +1 -1
  61. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-DommBk0z.js → quadrantDiagram-7GDLP6J5-C75t3aEo.js} +1 -1
  62. package/out/renderer/assets/{radar-MK3ICKWK-D5VUcmjY.js → radar-MK3ICKWK-CJBxj3CR.js} +1 -1
  63. package/out/renderer/assets/{radient-auth-buttons-BXc5xVU7.js → radient-auth-buttons-Bidxea5I.js} +1 -1
  64. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-RSR1-rSs.js → requirementDiagram-KVF5MWMF-DU98zhsJ.js} +1 -1
  65. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-Caojpkpm.js → sankeyDiagram-QLVOVGJD-BZ6FyTnr.js} +1 -1
  66. package/out/renderer/assets/{schedules-page-BWM0NUo9.js → schedules-page-BuvWSSxo.js} +1 -1
  67. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-CrZCUpMQ.js → sequenceDiagram-X6HHIX6F-mLpOc_fL.js} +1 -1
  68. package/out/renderer/assets/{settings-page-sXBnyGof.js → settings-page-I6YHq2CK.js} +1 -1
  69. package/out/renderer/assets/{smartart-BJStpUh7.js → smartart-Dc8xSTBM.js} +1 -1
  70. package/out/renderer/assets/{stateDiagram-DGXRK772-PFp2Dzsd.js → stateDiagram-DGXRK772-tqceD2-c.js} +1 -1
  71. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-BDhmSYxY.js +1 -0
  72. package/out/renderer/assets/{team-bridge-page-pZkYpCnA.js → team-bridge-page-DWzmxmoj.js} +1 -1
  73. package/out/renderer/assets/{timeline-definition-BDJGKUSR-BI2T4N_q.js → timeline-definition-BDJGKUSR-ByRwOK4b.js} +1 -1
  74. package/out/renderer/assets/ui-preferences-store-D031PAZ1.js +1 -0
  75. package/out/renderer/assets/{use-download-agent-mutation-B3ghS441.js → use-download-agent-mutation-DlpEsjDM.js} +1 -1
  76. package/out/renderer/assets/{use-session-snapshot-BbulmIXL.js → use-session-snapshot-BvNfXQEV.js} +1 -1
  77. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-CuNt7ik-.js → xychartDiagram-VJFVF3MP-RnUOVpB_.js} +1 -1
  78. package/out/renderer/console-capture.html +5 -5
  79. package/out/renderer/index.html +7 -7
  80. package/out/renderer/installer.html +4 -4
  81. package/out/renderer/mini.html +7 -7
  82. package/package.json +1 -1
  83. package/out/renderer/assets/browser-page-kxT2NYqz.js +0 -1
  84. package/out/renderer/assets/channel-D2-Cirxc.js +0 -1
  85. package/out/renderer/assets/classDiagram-GIVACNV2-D1u4IPED.js +0 -1
  86. package/out/renderer/assets/classDiagram-v2-COTLJTTW-D1u4IPED.js +0 -1
  87. package/out/renderer/assets/clone-D45gbF22.js +0 -1
  88. package/out/renderer/assets/index-DsY6xpO9.js +0 -57
  89. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DhzpDrem.js +0 -1
  90. package/out/renderer/assets/ui-preferences-store-BZs48Tq1.js +0 -1
package/out/main/index.js CHANGED
@@ -24765,7 +24765,7 @@ function consoleCompletionHooks(deps) {
24765
24765
  const state2 = deps.host()?.state();
24766
24766
  return state2?.displayed_surface === surface;
24767
24767
  };
24768
- const completionFor = (surface, exitCode, key) => {
24768
+ const completionFor = (surface, exitCode, key, exitSignal = null) => {
24769
24769
  const described = describe2(surface);
24770
24770
  if (!described) return null;
24771
24771
  return {
@@ -24773,6 +24773,7 @@ function consoleCompletionHooks(deps) {
24773
24773
  surface,
24774
24774
  surfaceName: described.command,
24775
24775
  exitCode,
24776
+ exitSignal,
24776
24777
  displayed: displayed(surface),
24777
24778
  key
24778
24779
  };
@@ -24826,7 +24827,8 @@ function consoleCompletionHooks(deps) {
24826
24827
  */
24827
24828
  onExit: ({
24828
24829
  surface,
24829
- exitCode
24830
+ exitCode,
24831
+ exitSignal
24830
24832
  }) => {
24831
24833
  const key = exitKey(surface);
24832
24834
  const previous = lastBanner.get(surface);
@@ -24836,7 +24838,7 @@ function consoleCompletionHooks(deps) {
24836
24838
  );
24837
24839
  return;
24838
24840
  }
24839
- const notice = completionFor(surface, exitCode, key);
24841
+ const notice = completionFor(surface, exitCode, key, exitSignal ?? null);
24840
24842
  if (notice) announce(notice, "exit");
24841
24843
  }
24842
24844
  };
@@ -25426,6 +25428,7 @@ class ConsoleRegistry {
25426
25428
  rows: input.rows,
25427
25429
  running: input.live !== false,
25428
25430
  exitCode: null,
25431
+ exitSignal: null,
25429
25432
  lastActivity: this.now(),
25430
25433
  live: input.live !== false,
25431
25434
  retain: input.retain,
@@ -25549,6 +25552,18 @@ const PERSIST_FLUSH_MS = 250;
25549
25552
  const PERSIST_FLUSH_BYTES = 256 * 1024;
25550
25553
  const FRAME_RETRY_DELAY_MS = 120;
25551
25554
  const CLOSE_GRACE_MS = 1500;
25555
+ const QUIT_EXIT_CAPTURE_MS = 400;
25556
+ function signalName(signal) {
25557
+ if (typeof signal === "string") {
25558
+ if (signal.length === 0) return null;
25559
+ return signal.startsWith("SIG") ? signal : `SIG${signal}`;
25560
+ }
25561
+ if (typeof signal !== "number" || signal <= 0) return null;
25562
+ for (const [name, number] of Object.entries(os.constants.signals))
25563
+ if (number === signal) return name;
25564
+ return `SIG${signal}`;
25565
+ }
25566
+ const QUIT_SIGNAL_GRACE_MS = 900;
25552
25567
  const SURFACE_ENV_MARKER = "LOCAL_OPERATOR_CONSOLE_SURFACE";
25553
25568
  const SESSION_ENV_MARKER = "LOCAL_OPERATOR_CONSOLE_SESSION";
25554
25569
  const SURFACE_TERM = "xterm-256color";
@@ -25624,6 +25639,12 @@ class ConsoleHost {
25624
25639
  * removes the record rather than leaving a surface that lists as running.
25625
25640
  */
25626
25641
  create(options) {
25642
+ if (this.disposing)
25643
+ throw new ConsoleError(
25644
+ "console_unavailable",
25645
+ "The console host is shutting down",
25646
+ { reason: "host_disposing" }
25647
+ );
25627
25648
  if (this.failedAllocations.size)
25628
25649
  throw new ConsoleError(
25629
25650
  "console_unavailable",
@@ -25708,7 +25729,9 @@ class ConsoleHost {
25708
25729
  };
25709
25730
  this.registry.attach(surface, runtime);
25710
25731
  pty.onData((data) => this.consume(surface, data));
25711
- pty.onExit((event) => this.exited(surface, event.exitCode));
25732
+ pty.onExit(
25733
+ (event) => this.exited(surface, event.exitCode, signalName(event.signal))
25734
+ );
25712
25735
  if (options.input) pty.write(options.input);
25713
25736
  if (entry.record.retain) this.flush(surface);
25714
25737
  this.options.log(
@@ -25810,10 +25833,13 @@ class ConsoleHost {
25810
25833
  meta.surface,
25811
25834
  Number.isFinite(meta.exit_epoch) ? meta.exit_epoch : 0
25812
25835
  );
25836
+ if (meta.end_reason === "app_quit")
25837
+ this.endReasons.set(meta.surface, "app_quit");
25813
25838
  if (!existing)
25814
25839
  this.registry.update(meta.surface, {
25815
25840
  running: false,
25816
25841
  exitCode: meta.exit_code,
25842
+ exitSignal: meta.exit_signal,
25817
25843
  live: false,
25818
25844
  secure: meta.secure === true,
25819
25845
  lastActivity: meta.last_seen_at
@@ -25872,6 +25898,7 @@ class ConsoleHost {
25872
25898
  this.registry.update(entry.record.surface, {
25873
25899
  running: false,
25874
25900
  exitCode: meta.exit_code,
25901
+ exitSignal: meta.exit_signal,
25875
25902
  live: false,
25876
25903
  lastActivity: meta.last_seen_at
25877
25904
  });
@@ -25913,6 +25940,12 @@ class ConsoleHost {
25913
25940
  rows: record.rows,
25914
25941
  running: record.running,
25915
25942
  exit_code: record.exitCode,
25943
+ exit_signal: record.exitSignal,
25944
+ /* Why the end happened when no code was observable (§7.3). Only the quit
25945
+ * path writes one, and it is the difference between "nobody could have
25946
+ * seen this" and main's old silence, which the pane read as an unknown
25947
+ * status. */
25948
+ end_reason: this.endReasons.get(record.surface) ?? null,
25916
25949
  last_activity: record.lastActivity,
25917
25950
  live: record.live,
25918
25951
  agent_owned: record.origin === "agent",
@@ -25947,6 +25980,8 @@ class ConsoleHost {
25947
25980
  return {
25948
25981
  running: entry.record.running,
25949
25982
  exit_code: entry.record.exitCode,
25983
+ exit_signal: entry.record.exitSignal,
25984
+ end_reason: this.endReasons.get(surface) ?? null,
25950
25985
  // The retention layer's counter, bumped once per `process_exited` (§7.3,
25951
25986
  // §10.2). Read from the host's live view of it: the sidecar is what makes
25952
25987
  // it survive a relaunch, and this is what the running process reports.
@@ -26430,14 +26465,16 @@ class ConsoleHost {
26430
26465
  }, OUTPUT_COALESCE_MS);
26431
26466
  runtime.pendingTimer.unref?.();
26432
26467
  }
26433
- exited(surface, exitCode) {
26468
+ exited(surface, exitCode, exitSignal = null) {
26434
26469
  const entry = this.registry.find(surface);
26435
26470
  if (!entry || !entry.runtime) return;
26436
26471
  this.registry.update(surface, {
26437
26472
  running: false,
26438
26473
  exitCode,
26474
+ exitSignal,
26439
26475
  lastActivity: this.now()
26440
26476
  });
26477
+ this.endReasons.delete(surface);
26441
26478
  this.bumpExitEpoch(entry);
26442
26479
  if (entry.record.retain) this.flush(surface);
26443
26480
  const runtime = entry.runtime;
@@ -26446,18 +26483,20 @@ class ConsoleHost {
26446
26483
  if (!runtime.exitDelivered) {
26447
26484
  runtime.exitDelivered = true;
26448
26485
  for (const subscriber of runtime.subscribers) {
26449
- subscriber.exit({ surface, exitCode });
26486
+ subscriber.exit({ surface, exitCode, exitSignal });
26450
26487
  }
26451
26488
  }
26452
26489
  this.options.log(
26453
- `[console] surface ${redactSurface(surface)} exited ${exitCode}`
26490
+ `[console] surface ${redactSurface(surface)} exited ${exitCode}${exitSignal === null ? "" : ` by ${exitSignal}`}`
26454
26491
  );
26455
26492
  this.options.onChanged?.();
26456
- this.options.onExit?.({
26457
- surface,
26458
- sessionId: entry.record.sessionId,
26459
- exitCode
26460
- });
26493
+ if (!this.disposing)
26494
+ this.options.onExit?.({
26495
+ surface,
26496
+ sessionId: entry.record.sessionId,
26497
+ exitCode,
26498
+ exitSignal
26499
+ });
26461
26500
  void runtime.emulator.whenIdle().then(() => {
26462
26501
  const current = this.registry.find(surface);
26463
26502
  if (!current || current.runtime !== runtime || current.record.running || !current.record.retain || current.record.secure || current.runtime.subscribers.size || surface === this.displayed || !this.options.history)
@@ -26812,6 +26851,8 @@ class ConsoleHost {
26812
26851
  created_at: this.createdAt.get(surface) ?? this.now(),
26813
26852
  last_seen_at: record.lastActivity,
26814
26853
  exit_code: record.exitCode,
26854
+ exit_signal: record.exitSignal,
26855
+ end_reason: this.endReasons.get(surface) ?? null,
26815
26856
  truncated: runtime.log.truncated,
26816
26857
  exit_epoch: this.exitEpoch.get(surface) ?? 0,
26817
26858
  secure: record.secure,
@@ -26926,10 +26967,62 @@ class ConsoleHost {
26926
26967
  this.persistedBytes.delete(surface);
26927
26968
  this.metaSignatures.delete(surface);
26928
26969
  this.exitEpoch.delete(surface);
26970
+ this.endReasons.delete(surface);
26929
26971
  this.options.onChanged?.();
26930
26972
  }
26973
+ /**
26974
+ * Let the quit path OBSERVE a surface's exit instead of killing it blind (§7.3).
26975
+ *
26976
+ * THE DEFECT THIS CLOSES: `dispose` used to persist the sidecar (with
26977
+ * `exit_code: null`) and then kill the pty, so the next launch restored "exit
26978
+ * code not observed" for a surface the app itself closed — a status the app
26979
+ * could have had, reported as one nobody could have. The order is now flush,
26980
+ * signal, wait, and let the exit land in the record before the final persist.
26981
+ *
26982
+ * BOUNDED TWICE, AND IN PARALLEL ACROSS SURFACES (`dispose` awaits them all at
26983
+ * once): SIGTERM gets the same grace a user-initiated close does, SIGKILL gets
26984
+ * `QUIT_EXIT_CAPTURE_MS` for the event loop to deliver its `onExit`, and only
26985
+ * after BOTH fail is the end recorded as `app_quit` — the honest sentence for a
26986
+ * status that genuinely could not be observed, and distinguishable from a legacy
26987
+ * sidecar that never looked.
26988
+ */
26989
+ async settleOnQuit(entry, persistHistory) {
26990
+ const runtime = entry.runtime;
26991
+ if (!runtime || !entry.record.running || !runtime.pty) return;
26992
+ if (persistHistory && entry.record.retain) this.persist(entry, runtime);
26993
+ const pty = runtime.pty;
26994
+ const exit = new Promise((resolve) => {
26995
+ runtime.exitWaiters.push(resolve);
26996
+ });
26997
+ let signalled = true;
26998
+ try {
26999
+ pty.kill();
27000
+ } catch {
27001
+ signalled = false;
27002
+ }
27003
+ const observed = await Promise.race([
27004
+ exit,
27005
+ delay(QUIT_SIGNAL_GRACE_MS).then(() => null)
27006
+ ]);
27007
+ if (observed !== null) return;
27008
+ try {
27009
+ pty.kill("SIGKILL");
27010
+ } catch {
27011
+ }
27012
+ const killed = await Promise.race([
27013
+ exit,
27014
+ delay(QUIT_EXIT_CAPTURE_MS).then(() => null)
27015
+ ]);
27016
+ if (killed === null) {
27017
+ this.endReasons.set(entry.record.surface, "app_quit");
27018
+ this.options.log(
27019
+ `[console] surface ${redactSurface(entry.record.surface)} did not report an exit within the quit bound${signalled ? "" : " (the signal itself was refused)"}; recording app_quit`
27020
+ );
27021
+ }
27022
+ }
26931
27023
  /** Stop everything: every pty, every record, every subscriber. */
26932
- dispose(persistHistory = true) {
27024
+ async dispose(persistHistory = true) {
27025
+ this.disposing = true;
26933
27026
  const allocationFailures = [...this.failedAllocations].flatMap(
26934
27027
  (allocation) => this.releaseFailedAllocation(allocation)
26935
27028
  );
@@ -26980,21 +27073,31 @@ class ConsoleHost {
26980
27073
  failures,
26981
27074
  "Partial console runtime cleanup incomplete."
26982
27075
  );
26983
- } else
26984
- for (const entry of this.registry.clear()) {
27076
+ } else {
27077
+ const entries = this.registry.list();
27078
+ for (const entry of entries) {
26985
27079
  const runtime = entry.runtime;
26986
27080
  if (!runtime) continue;
26987
27081
  if (runtime.pendingTimer) clearTimeout(runtime.pendingTimer);
26988
27082
  if (runtime.persistTimer) clearTimeout(runtime.persistTimer);
26989
27083
  runtime.subscribers.clear();
27084
+ }
27085
+ await Promise.all(
27086
+ entries.map((entry) => this.settleOnQuit(entry, persistHistory))
27087
+ );
27088
+ for (const entry of entries) {
27089
+ const runtime = entry.runtime;
27090
+ if (!runtime) continue;
26990
27091
  if (persistHistory && entry.record.retain) this.persist(entry, runtime);
26991
- if (entry.record.running) runtime.pty?.kill();
26992
27092
  runtime.emulator.dispose();
26993
27093
  }
27094
+ this.registry.clear();
27095
+ }
26994
27096
  this.createdAt.clear();
26995
27097
  this.persistedBytes.clear();
26996
27098
  this.metaSignatures.clear();
26997
27099
  this.exitEpoch.clear();
27100
+ this.endReasons.clear();
26998
27101
  if (allocationFailures.length)
26999
27102
  throw new AggregateError(
27000
27103
  allocationFailures,
@@ -27012,10 +27115,23 @@ class ConsoleHost {
27012
27115
  metaSignatures = /* @__PURE__ */ new Map();
27013
27116
  /** Each surface's exit generation, seeded from the sidecar on restore (§7.3). */
27014
27117
  exitEpoch = /* @__PURE__ */ new Map();
27118
+ /**
27119
+ * Why a surface's end could not be observed, when the quit path itself ended it.
27120
+ *
27121
+ * A SEPARATE MAP FROM THE RECORD, like `exitEpoch`: the reason has to outlive the
27122
+ * process that owns the record (it is persisted into the sidecar and read back on
27123
+ * the next launch), and it is cleared the moment a real exit is observed so a
27124
+ * subsequent run under the same handle cannot inherit the previous ending.
27125
+ */
27126
+ endReasons = /* @__PURE__ */ new Map();
27127
+ /** True from the first line of `dispose`; refuses creates and suppresses the
27128
+ * completion seam for the whole teardown (M-1, m-2). */
27129
+ disposing = false;
27015
27130
  }
27016
27131
  function metaSignature(meta) {
27017
27132
  return [
27018
27133
  meta.exit_code,
27134
+ meta.end_reason ?? "",
27019
27135
  meta.truncated,
27020
27136
  meta.cols,
27021
27137
  meta.rows,
@@ -27639,6 +27755,9 @@ class ConsoleHistory {
27639
27755
  function parseMeta(raw) {
27640
27756
  const meta = JSON.parse(raw);
27641
27757
  if (typeof meta.exit_epoch !== "number") meta.exit_epoch = 0;
27758
+ if (meta.end_reason !== "app_quit") meta.end_reason = null;
27759
+ if (typeof meta.exit_signal !== "string" || !/^SIG[A-Z0-9]+$/.test(meta.exit_signal))
27760
+ meta.exit_signal = null;
27642
27761
  return meta;
27643
27762
  }
27644
27763
  function enforceModes(path2) {
@@ -28171,12 +28290,12 @@ async function startConsoleHost(options) {
28171
28290
  let policyWatcher = null;
28172
28291
  let capacityProbe = null;
28173
28292
  let rollbackOwners = [];
28174
- const cleanupStartupOwners = () => {
28293
+ const cleanupStartupOwners = async () => {
28175
28294
  const pending = [];
28176
28295
  const failures = [];
28177
28296
  for (const release of rollbackOwners.splice(0).reverse()) {
28178
28297
  try {
28179
- release();
28298
+ await release();
28180
28299
  } catch (error) {
28181
28300
  pending.unshift(release);
28182
28301
  failures.push(error);
@@ -28326,13 +28445,13 @@ async function startConsoleHost(options) {
28326
28445
  capacityProbe?.stop();
28327
28446
  unregisterConsoleIpc();
28328
28447
  capture?.dispose();
28329
- readyHost.dispose();
28448
+ await readyHost.dispose();
28330
28449
  log2("[console] host stopped");
28331
28450
  }
28332
28451
  };
28333
28452
  } catch (error) {
28334
28453
  try {
28335
- cleanupStartupOwners();
28454
+ await cleanupStartupOwners();
28336
28455
  } catch (cleanupError) {
28337
28456
  log2(
28338
28457
  `[console] partial cleanup retained for stop: ${String(cleanupError)}`
@@ -28350,7 +28469,7 @@ async function startConsoleHost(options) {
28350
28469
  policyWatcher?.stop();
28351
28470
  capacityProbe?.stop();
28352
28471
  unregisterConsoleIpc();
28353
- cleanupStartupOwners();
28472
+ await cleanupStartupOwners();
28354
28473
  }
28355
28474
  };
28356
28475
  }
@@ -36236,6 +36355,7 @@ const enUiConsole = {
36236
36355
  "ui.console.empty.detail": "A console runs a program in this conversation's directory and keeps its output, whether or not this pane is open.",
36237
36356
  "ui.console.empty.title": "No console in this session",
36238
36357
  "ui.console.ended.exit_code": "exit code {code}",
36358
+ "ui.console.ended.exit_signal": "killed by {signal}",
36239
36359
  "ui.console.ended.exit_unknown": "exit code not observed",
36240
36360
  "ui.console.ended.live": "This terminal has ended",
36241
36361
  "ui.console.ended.restored": "This terminal has ended and its history was restored",
@@ -36256,6 +36376,7 @@ const enUiConsole = {
36256
36376
  "ui.console.unavailable.title": "The console is not available in this app",
36257
36377
  "ui.console.unavailable.unknown.detail": "This window could not reach the console, and did not say why. The app's log carries the reason.",
36258
36378
  "ui.console.tab.ended": "ended",
36379
+ "ui.console.tab.exit_code": "exit {code}",
36259
36380
  "ui.console.tab.agent_opened": "An agent opened this console",
36260
36381
  "ui.console.tab.agent_typed": "An agent has typed into this console",
36261
36382
  "ui.console.tab.close_label": "Close {title}, tab {index, number, ::group-off} of {total, number, ::group-off}",
@@ -36266,7 +36387,11 @@ const enUiConsole = {
36266
36387
  "ui.console.secure_toggle.start_tooltip": "Secure input: stop recording this terminal",
36267
36388
  "ui.console.close.cancel": "Cancel",
36268
36389
  "ui.console.terminal.prompt_label": "Terminal input",
36269
- "ui.console.terminal.too_much_output": "Too much output to announce, navigate to rows manually to read"
36390
+ "ui.console.terminal.too_much_output": "Too much output to announce, navigate to rows manually to read",
36391
+ "ui.console.ended.app_quit": "the app closed it when it quit",
36392
+ "ui.console.ended.marker": "End of history",
36393
+ "ui.console.ended.marker_detail": "This terminal is read-only. Select text to copy it.",
36394
+ "ui.console.ended.input_blocked": "This terminal has ended, so that key was not sent. Open a new console to type again."
36270
36395
  };
36271
36396
  const enUiHubComments = {
36272
36397
  "ui.hub.comments.delete.confirm": "Are you sure you want to delete this comment?",
@@ -39816,9 +39941,14 @@ const esUiConsole = {
39816
39941
  "ui.console.create_failed.title": "No se pudo iniciar la consola en esta sesión",
39817
39942
  "ui.console.empty.detail": "Una consola ejecuta un programa en la carpeta de esta conversación y conserva su salida, aunque este panel esté cerrado.",
39818
39943
  "ui.console.empty.title": "No hay ninguna consola en esta sesión",
39944
+ "ui.console.ended.app_quit": "la app la cerró al salir",
39819
39945
  "ui.console.ended.exit_code": "código de salida {code}",
39946
+ "ui.console.ended.exit_signal": "terminada por {signal}",
39820
39947
  "ui.console.ended.exit_unknown": "código de salida no observado",
39948
+ "ui.console.ended.input_blocked": "Esta terminal ha finalizado, así que esa tecla no se envió. Abre una nueva consola para volver a escribir.",
39821
39949
  "ui.console.ended.live": "Esta terminal ha finalizado",
39950
+ "ui.console.ended.marker": "Fin del historial",
39951
+ "ui.console.ended.marker_detail": "Esta terminal es de solo lectura. Selecciona el texto para copiarlo.",
39822
39952
  "ui.console.ended.restored": "Esta terminal ha finalizado y se ha restaurado su historial",
39823
39953
  "ui.console.loading.create": "Iniciando una consola",
39824
39954
  "ui.console.loading.read": "Leyendo la consola de esta sesión",
@@ -39837,6 +39967,7 @@ const esUiConsole = {
39837
39967
  "ui.console.unavailable.title": "La consola no está disponible en esta app",
39838
39968
  "ui.console.unavailable.unknown.detail": "Esta ventana no pudo acceder a la consola y no indicó por qué. El registro de la app contiene el motivo.",
39839
39969
  "ui.console.tab.ended": "finalizada",
39970
+ "ui.console.tab.exit_code": "código {code}",
39840
39971
  "ui.console.tab.agent_opened": "Un agente abrió esta consola",
39841
39972
  "ui.console.tab.agent_typed": "Un agente ha escrito en esta consola",
39842
39973
  "ui.console.tab.close_label": "Cerrar {title}, pestaña {index, number, ::group-off} de {total, number, ::group-off}",
@@ -43382,9 +43513,14 @@ const frUiConsole = {
43382
43513
  "ui.console.create_failed.title": "Impossible de démarrer la console dans cette session",
43383
43514
  "ui.console.empty.detail": "Une console exécute un programme dans le dossier de cette conversation et conserve sa sortie, même si ce volet est fermé.",
43384
43515
  "ui.console.empty.title": "Aucune console dans cette session",
43516
+ "ui.console.ended.app_quit": "l’application l’a fermé en quittant",
43385
43517
  "ui.console.ended.exit_code": "code de sortie {code}",
43518
+ "ui.console.ended.exit_signal": "tué par {signal}",
43386
43519
  "ui.console.ended.exit_unknown": "code de sortie non observé",
43520
+ "ui.console.ended.input_blocked": "Ce terminal est terminé : cette touche n’a pas été envoyée. Ouvrez une nouvelle console pour saisir à nouveau.",
43387
43521
  "ui.console.ended.live": "Ce terminal est terminé",
43522
+ "ui.console.ended.marker": "Fin de l’historique",
43523
+ "ui.console.ended.marker_detail": "Ce terminal est en lecture seule. Sélectionnez le texte à copier.",
43388
43524
  "ui.console.ended.restored": "Ce terminal est terminé, historique restauré",
43389
43525
  "ui.console.loading.create": "Démarrage d’une console",
43390
43526
  "ui.console.loading.read": "Lecture de la console de cette session",
@@ -43418,6 +43554,7 @@ const frUiConsole = {
43418
43554
  "ui.console.dismiss.title": "Effacer ce terminal ?",
43419
43555
  "ui.console.dismiss.confirm": "Effacer le terminal",
43420
43556
  "ui.console.tab.ended": "terminé",
43557
+ "ui.console.tab.exit_code": "sortie {code}",
43421
43558
  "ui.console.tab.agent_opened": "Un agent a ouvert cette console",
43422
43559
  "ui.console.tab.agent_typed": "Un agent a saisi du texte dans cette console",
43423
43560
  "ui.console.tab.close_label": "Fermer {title}, onglet {index, number, ::group-off} sur {total, number, ::group-off}",
@@ -46947,9 +47084,14 @@ const hiUiConsole = {
46947
47084
  "ui.console.create_failed.title": "इस सत्र में कंसोल शुरू नहीं हो सका",
46948
47085
  "ui.console.empty.detail": "कंसोल इस बातचीत के फ़ोल्डर में प्रोग्राम चलाता है और उसका आउटपुट रखता है, चाहे यह पैनल खुला हो या नहीं।",
46949
47086
  "ui.console.empty.title": "इस सत्र में कोई कंसोल नहीं है",
47087
+ "ui.console.ended.app_quit": "ऐप बंद होने पर इसे बंद किया गया",
46950
47088
  "ui.console.ended.exit_code": "एग्ज़िट कोड {code}",
47089
+ "ui.console.ended.exit_signal": "{signal} से बंद किया गया",
46951
47090
  "ui.console.ended.exit_unknown": "एग्ज़िट कोड उपलब्ध नहीं है",
47091
+ "ui.console.ended.input_blocked": "यह टर्मिनल समाप्त हो चुका है, इसलिए वह कुंजी नहीं भेजी गई। फिर से टाइप करने के लिए नया कंसोल खोलें।",
46952
47092
  "ui.console.ended.live": "यह टर्मिनल समाप्त हो चुका है",
47093
+ "ui.console.ended.marker": "इतिहास का अंत",
47094
+ "ui.console.ended.marker_detail": "यह टर्मिनल सिर्फ़ पढ़ने के लिए है। कॉपी करने के लिए टेक्स्ट चुनें।",
46953
47095
  "ui.console.ended.restored": "यह टर्मिनल समाप्त हो चुका है और उसका इतिहास बहाल किया गया है",
46954
47096
  "ui.console.loading.create": "कंसोल शुरू हो रहा है",
46955
47097
  "ui.console.loading.read": "इस सत्र का कंसोल पढ़ा जा रहा है",
@@ -46968,6 +47110,7 @@ const hiUiConsole = {
46968
47110
  "ui.console.unavailable.title": "इस ऐप में कंसोल उपलब्ध नहीं है",
46969
47111
  "ui.console.unavailable.unknown.detail": "यह विंडो कंसोल से संपर्क नहीं कर सकी और इसकी वजह नहीं बताई। वजह ऐप के लॉग में दी गई है।",
46970
47112
  "ui.console.tab.ended": "समाप्त",
47113
+ "ui.console.tab.exit_code": "एग्ज़िट {code}",
46971
47114
  "ui.console.tab.agent_opened": "यह कंसोल किसी एजेंट ने खोला था",
46972
47115
  "ui.console.tab.agent_typed": "इस कंसोल में किसी एजेंट ने टाइप किया है",
46973
47116
  "ui.console.tab.close_label": "{title} बंद करें, टैब {index, number, ::group-off}, कुल {total, number, ::group-off}",
@@ -50325,9 +50468,14 @@ const ruUiConsole = {
50325
50468
  "ui.console.create_failed.title": "Не удалось запустить консоль в этой сессии",
50326
50469
  "ui.console.empty.detail": "Консоль запускает программу в папке этого разговора и сохраняет её вывод, даже когда эта панель закрыта.",
50327
50470
  "ui.console.empty.title": "В этой сессии нет консоли",
50471
+ "ui.console.ended.app_quit": "приложение закрыло его при выходе",
50328
50472
  "ui.console.ended.exit_code": "код завершения {code}",
50473
+ "ui.console.ended.exit_signal": "остановлен сигналом {signal}",
50329
50474
  "ui.console.ended.exit_unknown": "код завершения не получен",
50475
+ "ui.console.ended.input_blocked": "Этот терминал завершил работу, поэтому нажатие не отправлено. Откройте новую консоль, чтобы снова вводить текст.",
50330
50476
  "ui.console.ended.live": "Этот терминал завершил работу",
50477
+ "ui.console.ended.marker": "Конец истории",
50478
+ "ui.console.ended.marker_detail": "Терминал только для чтения. Выделите текст, чтобы скопировать его.",
50331
50479
  "ui.console.ended.restored": "Этот терминал завершил работу; его история восстановлена",
50332
50480
  "ui.console.loading.create": "Запуск консоли",
50333
50481
  "ui.console.loading.read": "Чтение консоли этой сессии",
@@ -50346,6 +50494,7 @@ const ruUiConsole = {
50346
50494
  "ui.console.unavailable.title": "Консоль недоступна в этом приложении",
50347
50495
  "ui.console.unavailable.unknown.detail": "Это окно не смогло подключиться к консоли и не сообщило причину. Она указана в журнале приложения.",
50348
50496
  "ui.console.tab.ended": "завершён",
50497
+ "ui.console.tab.exit_code": "код {code}",
50349
50498
  "ui.console.tab.agent_opened": "Агент открыл эту консоль",
50350
50499
  "ui.console.tab.agent_typed": "Агент вводил текст в этой консоли",
50351
50500
  "ui.console.tab.close_label": "Закрыть {title}, вкладка {index, number, ::group-off} из {total, number, ::group-off}",
@@ -53789,9 +53938,14 @@ const urUiConsole = {
53789
53938
  "ui.console.create_failed.title": "اس سیشن میں کنسول شروع نہیں ہو سکا",
53790
53939
  "ui.console.empty.detail": "کنسول اس گفتگو کی ڈائریکٹری میں پروگرام چلاتا اور اس کا آؤٹ پٹ محفوظ رکھتا ہے، چاہے یہ پین کھلا ہو یا نہ ہو۔",
53791
53940
  "ui.console.empty.title": "اس سیشن میں کوئی کنسول نہیں",
53941
+ "ui.console.ended.app_quit": "ایپ کے بند ہونے پر اسے بند کر دیا گیا",
53792
53942
  "ui.console.ended.exit_code": "اخراج کوڈ {code}",
53943
+ "ui.console.ended.exit_signal": "{signal} کے ذریعے ختم کیا گیا",
53793
53944
  "ui.console.ended.exit_unknown": "اخراج کوڈ معلوم نہیں ہوا",
53945
+ "ui.console.ended.input_blocked": "یہ ٹرمینل ختم ہو چکا ہے، اس لیے وہ کلید نہیں بھیجی گئی۔ دوبارہ ٹائپ کرنے کے لیے نیا کنسول کھولیں۔",
53794
53946
  "ui.console.ended.live": "یہ ٹرمینل ختم ہو چکا ہے",
53947
+ "ui.console.ended.marker": "تاریخچے کا اختتام",
53948
+ "ui.console.ended.marker_detail": "یہ ٹرمینل صرف پڑھنے کے لیے ہے۔ اسے نقل کرنے کے لیے متن منتخب کریں۔",
53795
53949
  "ui.console.ended.restored": "یہ ٹرمینل ختم ہو چکا ہے اور اس کا تاریخچہ بحال ہو گیا",
53796
53950
  "ui.console.loading.create": "کنسول شروع ہو رہا ہے",
53797
53951
  "ui.console.loading.read": "اس سیشن کا کنسول پڑھا جا رہا ہے",
@@ -53810,6 +53964,7 @@ const urUiConsole = {
53810
53964
  "ui.console.unavailable.title": "اس ایپ میں کنسول دستیاب نہیں",
53811
53965
  "ui.console.unavailable.unknown.detail": "یہ ونڈو کنسول تک نہیں پہنچ سکی، اور وجہ نہیں بتائی۔ وجہ ایپ کے لاگ میں درج ہے۔",
53812
53966
  "ui.console.tab.ended": "ختم شدہ",
53967
+ "ui.console.tab.exit_code": "اخراج {code}",
53813
53968
  "ui.console.tab.agent_opened": "ایک ایجنٹ نے یہ کنسول کھولا",
53814
53969
  "ui.console.tab.agent_typed": "ایک ایجنٹ نے اس کنسول میں ٹائپ کیا ہے",
53815
53970
  "ui.console.tab.close_label": "{title} بند کریں، {total, number, ::group-off} میں سے ٹیب {index, number, ::group-off}",
@@ -57167,9 +57322,14 @@ const viUiConsole = {
57167
57322
  "ui.console.create_failed.title": "Không thể khởi động bảng lệnh trong phiên này",
57168
57323
  "ui.console.empty.detail": "Bảng lệnh chạy chương trình trong thư mục của cuộc trò chuyện này và giữ lại đầu ra, dù khung này có mở hay không.",
57169
57324
  "ui.console.empty.title": "Phiên này chưa có bảng lệnh",
57325
+ "ui.console.ended.app_quit": "ứng dụng đã đóng nó khi thoát",
57170
57326
  "ui.console.ended.exit_code": "mã thoát {code}",
57327
+ "ui.console.ended.exit_signal": "bị dừng bởi {signal}",
57171
57328
  "ui.console.ended.exit_unknown": "chưa ghi nhận mã thoát",
57329
+ "ui.console.ended.input_blocked": "Cửa sổ dòng lệnh này đã kết thúc nên phím đó không được gửi. Mở bảng lệnh mới để nhập lại.",
57172
57330
  "ui.console.ended.live": "Cửa sổ dòng lệnh này đã kết thúc",
57331
+ "ui.console.ended.marker": "Kết thúc lịch sử",
57332
+ "ui.console.ended.marker_detail": "Cửa sổ dòng lệnh này chỉ đọc. Chọn văn bản để sao chép.",
57173
57333
  "ui.console.ended.restored": "Cửa sổ dòng lệnh này đã kết thúc và lịch sử đã được khôi phục",
57174
57334
  "ui.console.loading.create": "Đang khởi động bảng lệnh",
57175
57335
  "ui.console.loading.read": "Đang đọc bảng lệnh của phiên này",
@@ -57188,6 +57348,7 @@ const viUiConsole = {
57188
57348
  "ui.console.unavailable.title": "Bảng lệnh không khả dụng trong ứng dụng này",
57189
57349
  "ui.console.unavailable.unknown.detail": "Cửa sổ này không truy cập được bảng lệnh và không cho biết lý do. Lý do có trong nhật ký ứng dụng.",
57190
57350
  "ui.console.tab.ended": "đã kết thúc",
57351
+ "ui.console.tab.exit_code": "mã thoát {code}",
57191
57352
  "ui.console.tab.agent_opened": "Một tác nhân đã mở bảng lệnh này",
57192
57353
  "ui.console.tab.agent_typed": "Một tác nhân đã nhập vào bảng lệnh này",
57193
57354
  "ui.console.tab.close_label": "Đóng {title}, thẻ {index, number, ::group-off} trên {total, number, ::group-off}",
@@ -60451,9 +60612,14 @@ const zhCNUiConsole = {
60451
60612
  "ui.console.create_failed.title": "无法在此会话中启动控制台",
60452
60613
  "ui.console.empty.detail": "控制台在此对话的目录中运行程序,无论此面板是否打开,都会保留输出。",
60453
60614
  "ui.console.empty.title": "此会话中没有控制台",
60615
+ "ui.console.ended.app_quit": "应用退出时将其关闭",
60454
60616
  "ui.console.ended.exit_code": "退出码{code}",
60617
+ "ui.console.ended.exit_signal": "被{signal}终止",
60455
60618
  "ui.console.ended.exit_unknown": "未获取退出码",
60619
+ "ui.console.ended.input_blocked": "此终端已结束,因此该按键未被发送。打开新的控制台即可再次输入。",
60456
60620
  "ui.console.ended.live": "此终端已结束",
60621
+ "ui.console.ended.marker": "历史记录结束",
60622
+ "ui.console.ended.marker_detail": "此终端为只读状态。选中文本即可复制。",
60457
60623
  "ui.console.ended.restored": "此终端已结束,历史记录已恢复",
60458
60624
  "ui.console.loading.create": "正在启动控制台",
60459
60625
  "ui.console.loading.read": "正在读取此会话的控制台",
@@ -60472,6 +60638,7 @@ const zhCNUiConsole = {
60472
60638
  "ui.console.unavailable.title": "此应用中控制台不可用",
60473
60639
  "ui.console.unavailable.unknown.detail": "此窗口无法连接控制台,也未说明原因。原因记录在应用日志中。",
60474
60640
  "ui.console.tab.ended": "已结束",
60641
+ "ui.console.tab.exit_code": "退出{code}",
60475
60642
  "ui.console.tab.agent_opened": "此控制台由智能体打开",
60476
60643
  "ui.console.tab.agent_typed": "智能体已在此控制台中输入过内容",
60477
60644
  "ui.console.tab.close_label": "关闭{title},第{index, number, ::group-off}个标签页,共{total, number, ::group-off}个",
@@ -73037,7 +73204,7 @@ class DesktopNotifier {
73037
73204
  notice.sessionId,
73038
73205
  notice.surfaceName,
73039
73206
  "",
73040
- notice.exitCode === null ? "Console finished" : `Console exited with code ${notice.exitCode}`,
73207
+ notice.exitSignal ? `Console killed by ${notice.exitSignal}` : notice.exitCode === null ? "Console finished" : `Console exited with code ${notice.exitCode}`,
73041
73208
  false,
73042
73209
  false,
73043
73210
  notice.surface
@@ -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-DKUG2lEn.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-CIUeSke9.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-CdOS48Ck.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-D-DUuSel.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-CIUeSke9.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-D-DUuSel.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{t as a,r as E,j as e,c as J}from"./index-DsY6xpO9.js";import{i as ge,a as fe}from"./publication-validation-Cv6lnH83.js";import{_ as oe,u as U,aN as C,aO as O,a2 as Y,aP as Q,aQ as le,aR as ce,aS as be,V as je,aT as pe,aU as ee,a1 as ye,aV as we,aW as ve}from"./conversation-input-sync-DeQTtOSG.js";import{c as Ne,u as Ce,L as ke,T as te,B as l,S as K,t as de,v as q,w as I,x as v,X as Ae,y as N,A as se,z as ae,E as ne}from"./error-boundary-D81PAlVn.js";import{f as De,h as Se,u as _e,i as Te,a as Ee,b as Fe,c as Pe,O as ze,H as Me,A as Le,d as ie}from"./use-download-agent-mutation-B3ghS441.js";import{e as re}from"./en-US-CHJkXXr4.js";import{a6 as qe,a7 as Ie,a8 as Ke,a9 as Ue,aa as Oe,ab as Qe,ac as Be,ad as Re,L as He,ae as We,G as Ve,af as Ye}from"./index-BtI7uak5.js";import"./ui-preferences-store-BZs48Tq1.js";import"./book-open-BrVlmR50.js";import"./console-mirror-B7HDmLVb.js";/**
1
+ import{t as a,r as E,j as e,c as J}from"./index-CQml9u-9.js";import{i as ge,a as fe}from"./publication-validation-Drtrxi_K.js";import{_ as oe,u as U,aN as C,aO as O,a2 as Y,aP as Q,aQ as le,aR as ce,aS as be,V as je,aT as pe,aU as ee,a1 as ye,aV as we,aW as ve}from"./conversation-input-sync-DTwv4LpE.js";import{c as Ne,u as Ce,L as ke,T as te,B as l,S as K,t as de,v as q,w as I,x as v,X as Ae,y as N,A as se,z as ae,E as ne}from"./error-boundary-aqUJ0ROL.js";import{f as De,h as Se,u as _e,i as Te,a as Ee,b as Fe,c as Pe,O as ze,H as Me,A as Le,d as ie}from"./use-download-agent-mutation-DlpEsjDM.js";import{e as re}from"./en-US-CHJkXXr4.js";import{a6 as qe,a7 as Ie,a8 as Ke,a9 as Ue,aa as Oe,ab as Qe,ac as Be,ad as Re,L as He,ae as We,G as Ve,af as Ye}from"./index-DTi580qk.js";import"./ui-preferences-store-D031PAZ1.js";import"./book-open-C9j4VQTg.js";import"./console-mirror-BKH21iCK.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.