local-operator-ui 0.31.17 → 0.31.19

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 (105) hide show
  1. package/README.md +29 -0
  2. package/out/main/index.js +230 -10
  3. package/out/renderer/assets/{_basePickBy-BFVaG15n.js → _basePickBy-BjXXwW6E.js} +1 -1
  4. package/out/renderer/assets/{_baseUniq-gJCk0rG2.js → _baseUniq-xIg3idQF.js} +1 -1
  5. package/out/renderer/assets/{agent-details-page-DFrsX5r2.js → agent-details-page-D2QdVqJp.js} +1 -1
  6. package/out/renderer/assets/{agent-hub-page-RsTVS8Ja.js → agent-hub-page-BitfELv8.js} +2 -2
  7. package/out/renderer/assets/agents-page-Cl1j7rwO.js +2 -0
  8. package/out/renderer/assets/aida-control-BqbEHtVs.js +42 -0
  9. package/out/renderer/assets/{arc-CIknpWp5.js → arc-Ceouzeia.js} +1 -1
  10. package/out/renderer/assets/architectureDiagram-IEHRJDOE-BGSLJh-o.js +36 -0
  11. package/out/renderer/assets/{blockDiagram-JOT3LUYC-BmYuuE4d.js → blockDiagram-JOT3LUYC-BmQJgCM-.js} +6 -6
  12. package/out/renderer/assets/{book-open-DlCeQ__D.js → book-open-tLP18D-k.js} +1 -1
  13. package/out/renderer/assets/browser-page-ChmnhnuO.js +1 -0
  14. package/out/renderer/assets/browser-webauthn-prompt-k5jzjWeZ.js +1 -0
  15. package/out/renderer/assets/{c4Diagram-VJAJSXHY-BFuObwFK.js → c4Diagram-VJAJSXHY-Yk9CQYyQ.js} +1 -1
  16. package/out/renderer/assets/channel-CoXp_5DQ.js +1 -0
  17. package/out/renderer/assets/{chunk-4BMEZGHF-CZKl836f.js → chunk-4BMEZGHF-DizR_fDb.js} +1 -1
  18. package/out/renderer/assets/{chunk-A2AXSNBT-B9wNLZPW.js → chunk-A2AXSNBT-BtTz6zUt.js} +1 -1
  19. package/out/renderer/assets/{chunk-AEK57VVT-BTkxXUpV.js → chunk-AEK57VVT-D1a4VfuY.js} +1 -1
  20. package/out/renderer/assets/{chunk-D6G4REZN-DNN6I0j-.js → chunk-D6G4REZN-bed23kTE.js} +1 -1
  21. package/out/renderer/assets/{chunk-RZ5BOZE2--dr35NK8.js → chunk-RZ5BOZE2-KfGYL-ag.js} +1 -1
  22. package/out/renderer/assets/{chunk-XZIHB7SX-ugREPL6z.js → chunk-XZIHB7SX-B1igQQgc.js} +1 -1
  23. package/out/renderer/assets/classDiagram-GIVACNV2-DLxyNS1q.js +1 -0
  24. package/out/renderer/assets/classDiagram-v2-COTLJTTW-DLxyNS1q.js +1 -0
  25. package/out/renderer/assets/clone-1ZAhWRhd.js +1 -0
  26. package/out/renderer/assets/{console-mirror-DxuGXeGm.js → console-mirror-CqlxE8VR.js} +1 -1
  27. package/out/renderer/assets/{consoleCapture-WxJX_qTe.js → consoleCapture-Bgq6O6hd.js} +1 -1
  28. package/out/renderer/assets/dagre-OKDRZEBW-BlwfTwwA.js +4 -0
  29. package/out/renderer/assets/diagram-SSKATNLV-jsDlGkgc.js +43 -0
  30. package/out/renderer/assets/diagram-VNBRO52H-DP8qnarm.js +24 -0
  31. package/out/renderer/assets/{erDiagram-Q7BY3M3F-CK_yOr_W.js → erDiagram-Q7BY3M3F-Tc8DPglp.js} +1 -1
  32. package/out/renderer/assets/{error-boundary-zYOCmQTl.js → error-boundary-X9vF0zez.js} +1 -1
  33. package/out/renderer/assets/{flowDiagram-4HSFHLVR-vKK0hQ3c.js → flowDiagram-4HSFHLVR-C0iWuz_e.js} +1 -1
  34. package/out/renderer/assets/{ganttDiagram-APWFNJXF-BtTtHUdt.js → ganttDiagram-APWFNJXF-CXzAhOwO.js} +3 -3
  35. package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-c3OKkh69.js +65 -0
  36. package/out/renderer/assets/{graph-DLVpoZ2t.js → graph-BNpclJqw.js} +1 -1
  37. package/out/renderer/assets/index-BgDCWTEy.js +7 -0
  38. package/out/renderer/assets/{index-9kSbYL-A.js → index-BsveCKct.js} +391 -376
  39. package/out/renderer/assets/index-D4_JjH_R.js +1 -0
  40. package/out/renderer/assets/index-R0cHU6YS.css +1 -0
  41. package/out/renderer/assets/infoDiagram-PH2N3AL5-C6rpQuUJ.js +2 -0
  42. package/out/renderer/assets/{installer-CuqnZBf2.js → installer-Durl4Nt6.js} +1 -1
  43. package/out/renderer/assets/{journeyDiagram-U35MCT3I-DukH-Gm5.js → journeyDiagram-U35MCT3I-DdWl9wJG.js} +1 -1
  44. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-z76URjv7.js → kanban-definition-NDS4AKOZ-D6rkiZvG.js} +1 -1
  45. package/out/renderer/assets/{layout-DXsudZzz.js → layout-BQqWsgv9.js} +1 -1
  46. package/out/renderer/assets/{legacy-agents-page-9xdh9z0y.js → legacy-agents-page-xSUV6wUg.js} +3 -3
  47. package/out/renderer/assets/{mermaid.core-BisXdtq8.js → mermaid.core-DLc2GDBk.js} +5 -5
  48. package/out/renderer/assets/mesh-page-D1Hn61zc.js +2 -0
  49. package/out/renderer/assets/mindmap-definition-ALO5MXBD-BPp31SFM.js +95 -0
  50. package/out/renderer/assets/mini-dIYd4lBf.js +1 -0
  51. package/out/renderer/assets/org-surface-gate-CQZDYvz1.js +1 -0
  52. package/out/renderer/assets/{page-header-B-3TG7Ed.js → page-header-Ct_E4hXM.js} +1 -1
  53. package/out/renderer/assets/{pieDiagram-IB7DONF6-Cw8m6eUb.js → pieDiagram-IB7DONF6-InajJAb7.js} +1 -1
  54. package/out/renderer/assets/projects-page-Cq4-43oz.js +40 -0
  55. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-DOXOQdsa.js → quadrantDiagram-7GDLP6J5-DllpcIGZ.js} +1 -1
  56. package/out/renderer/assets/{radar-MK3ICKWK-CcKir_MA.js → radar-MK3ICKWK-o49sXvJd.js} +1 -1
  57. package/out/renderer/assets/radient-auth-buttons-DCKuV_IZ.js +1 -0
  58. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-Dq-MDul5.js → requirementDiagram-KVF5MWMF-DEB_P2Er.js} +1 -1
  59. package/out/renderer/assets/sankeyDiagram-QLVOVGJD-1sqsEoj5.js +10 -0
  60. package/out/renderer/assets/{schedules-page-k2yi4LKh.js → schedules-page-D6uKCgBE.js} +1 -1
  61. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-BW8wMwAQ.js → sequenceDiagram-X6HHIX6F-DBKLSCMO.js} +1 -1
  62. package/out/renderer/assets/settings-page-DuO8dHwe.js +297 -0
  63. package/out/renderer/assets/{settings-section-DTEnr98J.js → settings-section-yg8wX_kN.js} +1 -1
  64. package/out/renderer/assets/stateDiagram-DGXRK772-CirIxYQ4.js +1 -0
  65. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-BektpfMe.js +1 -0
  66. package/out/renderer/assets/{textarea-DRfVCtHc.js → textarea-CPyoWJfR.js} +2 -2
  67. package/out/renderer/assets/{timeline-definition-BDJGKUSR-B7RxGk8T.js → timeline-definition-BDJGKUSR-HxrDshvA.js} +1 -1
  68. package/out/renderer/assets/{ui-preferences-store-Y6swLMAE.js → ui-preferences-store-CyKvDymq.js} +1 -1
  69. package/out/renderer/assets/{use-download-agent-mutation-BffNJt-E.js → use-download-agent-mutation-CJP2OhpP.js} +2 -2
  70. package/out/renderer/assets/use-memberships-query-Q96GogTV.js +1 -0
  71. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-DHcK38Dl.js → xychartDiagram-VJFVF3MP-BXsPMfju.js} +1 -1
  72. package/out/renderer/console-capture.html +5 -5
  73. package/out/renderer/index.html +8 -8
  74. package/out/renderer/installer.html +5 -5
  75. package/out/renderer/mini.html +6 -6
  76. package/package.json +2 -2
  77. package/out/renderer/assets/agents-page-C6V9rtk2.js +0 -2
  78. package/out/renderer/assets/architectureDiagram-IEHRJDOE-BMMotc_h.js +0 -36
  79. package/out/renderer/assets/browser-page-BDBoJvY8.js +0 -1
  80. package/out/renderer/assets/browser-webauthn-prompt-CvutQHI8.js +0 -1
  81. package/out/renderer/assets/channel-BppvpJLX.js +0 -1
  82. package/out/renderer/assets/classDiagram-GIVACNV2-BG2N01MY.js +0 -1
  83. package/out/renderer/assets/classDiagram-v2-COTLJTTW-BG2N01MY.js +0 -1
  84. package/out/renderer/assets/clone-DjBhwTw6.js +0 -1
  85. package/out/renderer/assets/dagre-OKDRZEBW-D8LZ8Svf.js +0 -4
  86. package/out/renderer/assets/diagram-SSKATNLV-D0g-M9XO.js +0 -43
  87. package/out/renderer/assets/diagram-VNBRO52H-vsLld6BG.js +0 -24
  88. package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-YAgfNmRP.js +0 -65
  89. package/out/renderer/assets/index-6ATVV_hs.js +0 -7
  90. package/out/renderer/assets/index-DAfI2ih0.css +0 -1
  91. package/out/renderer/assets/index-DYiBCsga.js +0 -1
  92. package/out/renderer/assets/infoDiagram-PH2N3AL5-BWQZxLJr.js +0 -2
  93. package/out/renderer/assets/mesh-page-CAEapbX4.js +0 -2
  94. package/out/renderer/assets/mindmap-definition-ALO5MXBD-CNYyqj85.js +0 -95
  95. package/out/renderer/assets/mini-DPUFcBTO.js +0 -1
  96. package/out/renderer/assets/org-surface-gate-DgwB0Qtt.js +0 -1
  97. package/out/renderer/assets/projects-page-D2TlKcUC.js +0 -22
  98. package/out/renderer/assets/radient-auth-buttons-PT3JBz4t.js +0 -1
  99. package/out/renderer/assets/renderer-platform-DV4X4aCW.js +0 -42
  100. package/out/renderer/assets/sankeyDiagram-QLVOVGJD-pAkVtAtk.js +0 -10
  101. package/out/renderer/assets/settings-page-D06D41PG.js +0 -307
  102. package/out/renderer/assets/stateDiagram-DGXRK772-Cvk9-LLw.js +0 -1
  103. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-Cu3aMWlw.js +0 -1
  104. package/out/renderer/assets/use-memberships-query-B5iErNyL.js +0 -1
  105. /package/out/renderer/assets/{index-1jk3-3ca.js → index-C17iOszj.js} +0 -0
package/README.md CHANGED
@@ -86,6 +86,30 @@ The Local Operator backend is bundled with the application and is installed auto
86
86
 
87
87
  <sub><code>chat</code> — a working agent's tool rows, a blocked risky action, and the question it asked before continuing.</sub>
88
88
 
89
+ ### Subagents
90
+
91
+ | Light | Dark |
92
+ | :---: | :---: |
93
+ | <img src="./resources/readme/subagents-light.webp" alt="Light theme: the run details panel, two subagents running with their elapsed time and cost, a third child queued behind the capacity gate, and the shared to-do list." width="420"> | <img src="./resources/readme/subagents-dark.webp" alt="Dark theme: the same run details panel." width="420"> |
94
+
95
+ <sub><code>subagents</code> — two helpers working one request, each with its own elapsed time, context use and cost, and the next child queued behind the capacity gate.</sub>
96
+
97
+ ### Teams
98
+
99
+ | Light | Dark |
100
+ | :---: | :---: |
101
+ | <img src="./resources/readme/teams-light.webp" alt="Light theme: the agents and teams page, with the release-crew roster: its manager agent, members and collaboration instructions." width="420"> | <img src="./resources/readme/teams-dark.webp" alt="Dark theme: the same teams page." width="420"> |
102
+
103
+ <sub><code>teams</code> — agents grouped under a manager, with a roster, collaboration instructions and a project brief.</sub>
104
+
105
+ ### Media in a conversation
106
+
107
+ | Light | Dark |
108
+ | :---: | :---: |
109
+ | <img src="./resources/readme/media-in-conversation-light.webp" alt="Light theme: a conversation holding a pasted chart and a bar chart the agent plotted, rendered under the tool row that made it." width="420"> | <img src="./resources/readme/media-in-conversation-dark.webp" alt="Dark theme: the same conversation." width="420"> |
110
+
111
+ <sub><code>media</code> — a chart pasted in by hand and one the agent plotted, both rendered inline in the transcript.</sub>
112
+
89
113
  ### Agent hub
90
114
 
91
115
  | Light | Dark |
@@ -231,6 +255,11 @@ If you encounter issues not covered here, please:
231
255
  1. Check the [GitHub Issues](https://github.com/damianvtran/local-operator-ui/issues) for similar problems
232
256
  2. Open a new issue if your problem hasn't been reported
233
257
 
258
+ ## Credits
259
+
260
+ Some general style and interaction UX here is inspired by [deepseek-harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`) - including the conversation measure's draggable width controls, whose geometry, hover cue and persistence shape were read from
261
+ its `ConversationWidthControls` and adopted with this app's own bounds.
262
+
234
263
  ## License
235
264
 
236
265
  This project is licensed under the MIT License — see the [LICENSE](LICENSE) file for details. It is open source because AI tools should be accessible to everyone, and your contributions and feedback help make that real.
package/out/main/index.js CHANGED
@@ -77,6 +77,10 @@ const sessionImage = zod.z.object({
77
77
  const DESKTOP_MESSAGE_MAX_CHARS = 2e5;
78
78
  const SESSION_SEARCH_MAX_CHARS = 256;
79
79
  const SESSION_SEARCH_DEFAULT_LIMIT = 100;
80
+ const CHECKPOINT_WARM_MAX_IDS = 16;
81
+ const THREAD_FIND_MAX_CHARS = 256;
82
+ const THREAD_FIND_DEFAULT_LIMIT = 100;
83
+ const THREAD_FIND_MAX_LIMIT = 200;
80
84
  const DESKTOP_SYSTEM_PROMPT_MAX_CHARS = 1e6;
81
85
  const profileName = zod.z.string().min(1).max(128).refine(
82
86
  (name) => name !== "." && name !== ".." && !name.includes("/") && !name.includes("\\") && [...name].every(
@@ -526,6 +530,64 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
526
530
  beforeId: id$1.optional(),
527
531
  limit: zod.z.number().int().min(1).max(500).optional()
528
532
  }).strict(),
533
+ /*
534
+ * The transcript checkpoint rail's manifest (design D1/D9): every material
535
+ * checkpoint of one LOCAL conversation — the reader's own messages and each
536
+ * completed turn — with the seq-proportional ordinal the rail places a tick
537
+ * by, and a completion's optional generated name.
538
+ *
539
+ * The answer is deliberately cheap and never blocks on a scan: a cold or
540
+ * stale index answers `state: "building"` while a refresh runs in the
541
+ * background (the backend measures 22 s for this machine's 272 MB journal),
542
+ * so the rail's first paint is immediate and the hook polls while anything
543
+ * it asked for is still pending. A remote/peer conversation answers
544
+ * `state: "unsupported"` — a fact about where the bytes are, not a failure
545
+ * — and the rail hides, the same degradation as an empty manifest.
546
+ */
547
+ zod.z.object({ op: zod.z.literal("sessions.checkpoints"), sessionId }).strict(),
548
+ /*
549
+ * Buy names for checkpoints (design D2/D9): idempotent, bounded, and never
550
+ * blocking on the model call itself — the backend schedules one
551
+ * `complete_once` per turn (15 s budget, single attempt, a 10-minute
552
+ * cooldown after a failure) and answers accepted/pending immediately.
553
+ *
554
+ * `ids` is the hover gesture's arm (a bounded set of explicit checkpoint
555
+ * ids); omitting it is the rail-open arm, where the backend selects the
556
+ * most recent checkpoints missing names under its own default. Both fields
557
+ * are optional, and an older backend that predates the op answers the same
558
+ * 404/422 a missing route always does — the hook treats any failure as "no
559
+ * rail here", never as a user-facing error.
560
+ */
561
+ zod.z.object({
562
+ op: zod.z.literal("sessions.checkpoints.warm"),
563
+ sessionId,
564
+ ids: zod.z.array(id$1).max(CHECKPOINT_WARM_MAX_IDS).optional(),
565
+ limit: zod.z.number().int().min(1).max(CHECKPOINT_WARM_MAX_IDS).optional()
566
+ }).strict(),
567
+ /*
568
+ * In-thread find (D9): messages of ONE conversation matching `q`, best
569
+ * first, served from the per-session transcript index.
570
+ *
571
+ * A READ like `history` and `checkpoints` beside it. The answer's `state` is
572
+ * the checkpoint manifest's own ladder: a cold or stale index answers
573
+ * `building` inside the first-paint budget (with hits ranked from the
574
+ * previous scan marked `partial`) while the background refresh runs, so the
575
+ * overlay's first paint is immediate; `unsupported` is a peer conversation
576
+ * whose journal is not on this device; `error` is a failed refresh inside
577
+ * its cooldown. The overlay renders both tiers (`exact`/`soft`) and treats
578
+ * `ranges` as snippet-relative — empty on a soft hit, which has no literal
579
+ * occurrence of the query by construction.
580
+ */
581
+ zod.z.object({
582
+ op: zod.z.literal("sessions.find"),
583
+ sessionId,
584
+ // `.min(1)`: an empty query is not a search. The overlay's client never
585
+ // sends one — it answers an empty query locally, without a request — so
586
+ // refusing it by name keeps the vocabulary closed rather than paying a
587
+ // round trip for an answer the box already knows.
588
+ q: zod.z.string().min(1).max(THREAD_FIND_MAX_CHARS),
589
+ limit: zod.z.number().int().min(1).max(THREAD_FIND_MAX_LIMIT).optional()
590
+ }).strict(),
529
591
  /*
530
592
  * One child's durable transcript, for the run panel's reader
531
593
  * (`docs/run-sidebar.md` § 10.1, § 10.3).
@@ -553,7 +615,19 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
553
615
  requestId,
554
616
  text: zod.z.string().max(DESKTOP_MESSAGE_MAX_CHARS),
555
617
  images: zod.z.array(sessionImage).max(8).optional(),
556
- mode: zod.z.enum(["prompt", "steer"]).optional()
618
+ mode: zod.z.enum(["prompt", "steer"]).optional(),
619
+ /*
620
+ * HOW THE MESSAGE WAS PRODUCED (arch §4.2), and the harness gate is what
621
+ * keeps this `optional`: `features.input_mode`. Absent means a legacy
622
+ * body (and is what every older build sends), so an older harness's own
623
+ * `.strict()` schema never sees the key at all.
624
+ *
625
+ * `inputPath` is RESERVED (§4.2a): the route cascade owns its
626
+ * vocabulary and no caller sets it yet; it is accepted here - bounded -
627
+ * so the first caller that does does not also need a contract change.
628
+ */
629
+ inputMode: zod.z.enum(["typed", "dictated", "mixed"]).optional(),
630
+ inputPath: zod.z.string().max(1024).optional()
557
631
  }).strict(),
558
632
  zod.z.object({
559
633
  op: zod.z.literal("sessions.command"),
@@ -1745,7 +1819,9 @@ const READ_ONLY_OPS = /* @__PURE__ */ new Set([
1745
1819
  "profiles.list",
1746
1820
  "providers.list",
1747
1821
  "sessions.aside.get",
1822
+ "sessions.checkpoints",
1748
1823
  "sessions.failovers",
1824
+ "sessions.find",
1749
1825
  "sessions.get",
1750
1826
  "sessions.history",
1751
1827
  "sessions.list",
@@ -2018,6 +2094,36 @@ function desktopEndpoint(request) {
2018
2094
  method: "GET"
2019
2095
  };
2020
2096
  }
2097
+ case "sessions.checkpoints":
2098
+ return {
2099
+ path: `/v1/desktop/sessions/${request.sessionId}/checkpoints`,
2100
+ method: "GET"
2101
+ };
2102
+ case "sessions.checkpoints.warm":
2103
+ return {
2104
+ path: `/v1/desktop/sessions/${request.sessionId}/checkpoints/warm`,
2105
+ method: "POST",
2106
+ /*
2107
+ * Omitted, not zeroed: an absent `ids` IS the rail-open arm (the backend
2108
+ * selects its own default), and an absent `limit` leaves that selection
2109
+ * its own number — sending 8 here would be a second copy of the
2110
+ * backend's `DEFAULT_WARM_LIMIT` that could drift from it.
2111
+ */
2112
+ body: {
2113
+ ...request.ids ? { ids: request.ids } : {},
2114
+ ...request.limit !== void 0 ? { limit: request.limit } : {}
2115
+ }
2116
+ };
2117
+ case "sessions.find": {
2118
+ const query = new URLSearchParams({
2119
+ q: request.q,
2120
+ limit: String(request.limit ?? THREAD_FIND_DEFAULT_LIMIT)
2121
+ });
2122
+ return {
2123
+ path: `/v1/desktop/sessions/${request.sessionId}/find?${query}`,
2124
+ method: "GET"
2125
+ };
2126
+ }
2021
2127
  case "subagents.transcript": {
2022
2128
  const query = new URLSearchParams({
2023
2129
  limit: String(request.limit ?? 100)
@@ -2036,7 +2142,18 @@ function desktopEndpoint(request) {
2036
2142
  request_id: request.requestId,
2037
2143
  text: request.text,
2038
2144
  images: request.images ?? [],
2039
- mode: request.mode ?? "prompt"
2145
+ mode: request.mode ?? "prompt",
2146
+ /*
2147
+ * ABSENT, not empty, when the app has nothing to say: an older harness
2148
+ * validates this body with `extra="forbid"`, so a key present-but-null
2149
+ * would be refused where a missing one is simply a legacy body. That is
2150
+ * why these are conditional spreads rather than `?? undefined` values
2151
+ * (which `JSON.stringify` would drop anyway - stated so a reader does
2152
+ * not "simplify" them into a shape whose behaviour depends on the
2153
+ * serializer).
2154
+ */
2155
+ ...request.inputMode ? { input_mode: request.inputMode } : {},
2156
+ ...request.inputPath ? { input_path: request.inputPath } : {}
2040
2157
  }
2041
2158
  };
2042
2159
  case "sessions.command":
@@ -2748,7 +2865,7 @@ function isMiniViewDismissReason(value) {
2748
2865
  }
2749
2866
  const MINI_VIEW_WIDTH = 640;
2750
2867
  const MINI_VIEW_HEIGHT = 168;
2751
- const DEFAULT_QUICK_SEND_VALUE = "primary+alt+space";
2868
+ const DEFAULT_QUICK_SEND_VALUE = "primary+alt+shift+space";
2752
2869
  const FUNCTION_KEY_TOKEN = /^f([1-9]|1[0-9]|2[0-4])$/;
2753
2870
  function isFunctionKeyToken(token) {
2754
2871
  return FUNCTION_KEY_TOKEN.test(token);
@@ -11663,6 +11780,11 @@ const REFUSABLE_DELIVERY = {
11663
11780
  // THE ONE REFUSAL. The residual above says what it rests on and what it cannot
11664
11781
  // see.
11665
11782
  "second-instance": "when-its-plan-is-silent",
11783
+ // A Dock click carries no conversation and installs nothing: it only ever
11784
+ // opens this process's own window, so there is no delivery here to refuse or
11785
+ // to park. (The refusal a QUITTING process answers it with is not this gate's;
11786
+ // it has a line of its own, `applied=skipped+quitting`.)
11787
+ activate: "never",
11666
11788
  // A person clicked a real banner, so refusing it and applying it must not
11667
11789
  // differ — and with a window up it does not even reach this gate.
11668
11790
  "banner-click": "never",
@@ -11731,6 +11853,17 @@ function reportParksAtQuit(sessions, report) {
11731
11853
  ].join(" ")
11732
11854
  );
11733
11855
  }
11856
+ function reportSkippedWhileQuitting(context, requested) {
11857
+ context.report?.(
11858
+ [
11859
+ `trigger=${context.trigger}`,
11860
+ `mode=${MODE_OF_SHOW[requested]}`,
11861
+ `requested=${requested}`,
11862
+ ...requesterFields(context),
11863
+ "applied=skipped+quitting"
11864
+ ].join(" ")
11865
+ );
11866
+ }
11734
11867
  function raiseWindow(window, show, context) {
11735
11868
  if (show === "never") return;
11736
11869
  const applied = [];
@@ -11769,6 +11902,17 @@ function readSecondLaunchRequest(input) {
11769
11902
  };
11770
11903
  }
11771
11904
  function applySecondLaunch(request, target2) {
11905
+ if (target2.quitting) {
11906
+ reportSkippedWhileQuitting(
11907
+ {
11908
+ trigger: "second-instance",
11909
+ requester: request.requester ?? void 0,
11910
+ report: target2.report
11911
+ },
11912
+ request.show
11913
+ );
11914
+ return;
11915
+ }
11772
11916
  if (request.session !== null) {
11773
11917
  if (target2.openConversation) {
11774
11918
  target2.openConversation(request.session, request);
@@ -12013,6 +12157,23 @@ class BackendInstaller {
12013
12157
  * and never resolves at all.
12014
12158
  */
12015
12159
  settleUserDecision = null;
12160
+ /**
12161
+ * What to tell the app when THIS window's question cancels a running quit.
12162
+ *
12163
+ * WHY THE INSTALLER CARRIES IT AND `index.ts` OWNS IT (round-1 review,
12164
+ * F-1). The declined "Quit without setup?" - `cancelId: 0`, the default -
12165
+ * lets a quit abort and leaves the process serving, which means any quit
12166
+ * that was in flight is now CANCELLED and the app must stop claiming
12167
+ * otherwise: without a release, `index.ts`'s quit state stays set and every
12168
+ * later second launch and Dock click is refused for the process's life
12169
+ * although the app is running normally. The dialog is the ONE cancellation
12170
+ * a running quit has (see `../quit-state` for the sweep); this module never
12171
+ * reaches for the app's state itself, so the installer stays drivable in a
12172
+ * test and the single release site stays greppable. Optional because the
12173
+ * harness constructs installers with no app around them, and a release that
12174
+ * fires where no quit exists clears an already-false state.
12175
+ */
12176
+ onQuitCancelled;
12016
12177
  /*
12017
12178
  * The last phase announced to the setup window, and whether a failure is
12018
12179
  * currently on screen with nobody's answer yet.
@@ -12124,8 +12285,14 @@ ${error instanceof Error ? error.message : String(error ?? "")}`;
12124
12285
  }
12125
12286
  /**
12126
12287
  * Constructor
12288
+ *
12289
+ * `options.onQuitCancelled` is `index.ts`'s one release for the app's quit
12290
+ * state (see the field's own note); it is handed in rather than imported so
12291
+ * this module never depends on the app's lifecycle and its test can drive
12292
+ * the declined answer with a spy.
12127
12293
  */
12128
- constructor() {
12294
+ constructor(options = {}) {
12295
+ this.onQuitCancelled = options.onQuitCancelled;
12129
12296
  this.venvPath = managedVenvPath({
12130
12297
  platform: process.platform,
12131
12298
  home: electron.app.getPath("home"),
@@ -12772,6 +12939,7 @@ ${result.stdout}`,
12772
12939
  "Setup quit declined from the setup window",
12773
12940
  LogFileType.INSTALLER
12774
12941
  );
12942
+ this.onQuitCancelled?.();
12775
12943
  return;
12776
12944
  }
12777
12945
  this.attemptCancelled = inFlight;
@@ -32433,8 +32601,8 @@ function createMiniView(options) {
32433
32601
  backgroundThrottling: false,
32434
32602
  /*
32435
32603
  * The argv the preload reads SYNCHRONOUSLY, and both entries are
32436
- * deliberate: the chrome facts because the keycap's spelling (⌘⌥
32437
- * against Ctrl+Alt) is a first-frame fact with no IPC round trip to
32604
+ * deliberate: the chrome facts because the keycap's spelling (⌘⌥⇧
32605
+ * against Ctrl+Alt+Shift) is a first-frame fact with no IPC round trip to
32438
32606
  * wait for — the main window composes the same entry through
32439
32607
  * `windowChromeArgumentFor` — and an EXPLICIT telemetry `off` because
32440
32608
  * this window mounts no telemetry surface at all (§D.1), and the
@@ -32534,6 +32702,18 @@ function rememberPickedDirectory(kind, filePaths, directoryPicked = false) {
32534
32702
  if (!first) return;
32535
32703
  lastPickedDirectory.set(kind, directoryPicked ? first : path$1.dirname(first));
32536
32704
  }
32705
+ function createQuitState() {
32706
+ let quitting = false;
32707
+ return {
32708
+ begin: () => {
32709
+ quitting = true;
32710
+ },
32711
+ cancel: () => {
32712
+ quitting = false;
32713
+ },
32714
+ isQuitting: () => quitting
32715
+ };
32716
+ }
32537
32717
  function titlebarOptions(platform, chrome) {
32538
32718
  if (platform === "darwin") {
32539
32719
  return { titleBarStyle: "hidden" };
@@ -40087,7 +40267,12 @@ const userShellPath = createUserShellPath({
40087
40267
  log: (message) => logger.info(message, LogFileType.BACKEND)
40088
40268
  });
40089
40269
  const backendService = new BackendServiceManager({ userShellPath });
40090
- const backendInstaller = new BackendInstaller();
40270
+ const quitState = createQuitState();
40271
+ const backendInstaller = new BackendInstaller({
40272
+ // The installer's one route back from a cancelled quit: the declined dialog
40273
+ // answer (`./quit-state` owns why there is exactly one such site).
40274
+ onQuitCancelled: () => quitState.cancel()
40275
+ });
40091
40276
  const reportBackendFailure = (message, fileType) => {
40092
40277
  if (backendService.isShuttingDown()) {
40093
40278
  logger.error(
@@ -40301,6 +40486,16 @@ if (!gotTheLock) {
40301
40486
  }),
40302
40487
  {
40303
40488
  window: mainWindow,
40489
+ /*
40490
+ * Read PER REQUEST rather than captured once: this handler outlives every
40491
+ * window, and the state is LIVE — set at each quit's first `before-quit`
40492
+ * entry, released when the setup dialog declines to stop a run — so a
40493
+ * request that arrives during a quit is refused instead of answered with
40494
+ * a window the shutdown would take down, and a request after a CANCELLED
40495
+ * quit is answered normally (`./quit-state` owns the transitions;
40496
+ * `window-raise.ts` owns the refusal and its line).
40497
+ */
40498
+ quitting: quitState.isQuitting(),
40304
40499
  openConversation: openConversationInWindow ? (session, request) => openConversationInWindow?.(
40305
40500
  session,
40306
40501
  secondInstanceRequest(request)
@@ -40480,7 +40675,10 @@ electron.app.whenReady().then(async () => {
40480
40675
  });
40481
40676
  return "raised the window";
40482
40677
  }
40483
- setupMainWindowWithUpdateService();
40678
+ setupMainWindowWithUpdateService(null, false, {
40679
+ show: windowLaunch.show,
40680
+ trigger: "viewer-focus"
40681
+ });
40484
40682
  return "opened a window";
40485
40683
  }
40486
40684
  },
@@ -40530,7 +40728,7 @@ electron.app.whenReady().then(async () => {
40530
40728
  * this feature's slice for a value that is a launch fact (argv, the
40531
40729
  * launch env, the persisted file) and cannot differ between the two
40532
40730
  * calls. The mini view's visible consumer of it is the platform
40533
- * half: the header's keycap spells ⌘⌥Space against Ctrl+Alt+Space
40731
+ * half: the header's keycap spells ⌘⌥⇧Space against Ctrl+Alt+Shift+Space
40534
40732
  * from exactly this entry.
40535
40733
  */
40536
40734
  chromeMode: resolveLaunchWindowChrome({
@@ -41072,6 +41270,10 @@ electron.app.whenReady().then(async () => {
41072
41270
  });
41073
41271
  }
41074
41272
  function setupMainWindowWithUpdateService(initialSession = null, openCatalogue = false, request = ownLaunchRequest()) {
41273
+ if (quitState.isQuitting()) {
41274
+ reportSkippedWhileQuitting(request, request.show);
41275
+ return;
41276
+ }
41075
41277
  const parked = initialSession === null && !openCatalogue ? parkedLaunches[0] : void 0;
41076
41278
  mainWindow = createWindow(
41077
41279
  parked?.session ?? initialSession,
@@ -41235,6 +41437,10 @@ electron.app.whenReady().then(async () => {
41235
41437
  });
41236
41438
  return;
41237
41439
  }
41440
+ if (quitState.isQuitting()) {
41441
+ reportSkippedWhileQuitting(request, request.show);
41442
+ return;
41443
+ }
41238
41444
  if (!canCreateWindowFor(request.show)) {
41239
41445
  if (sessionId2 !== null) parkLaunch(sessionId2, request);
41240
41446
  return;
@@ -41249,9 +41455,22 @@ electron.app.whenReady().then(async () => {
41249
41455
  setupMainWindowWithUpdateService(launchSession, launchCatalogue);
41250
41456
  electron.app.on("activate", () => {
41251
41457
  if (electron.BrowserWindow.getAllWindows().length === 0) {
41458
+ if (quitState.isQuitting()) {
41459
+ reportSkippedWhileQuitting(
41460
+ { trigger: "activate", report: reportRaise },
41461
+ OPERATOR_SHOW
41462
+ );
41463
+ return;
41464
+ }
41252
41465
  setupMainWindowWithUpdateService(null, false, {
41253
41466
  show: OPERATOR_SHOW,
41254
- trigger: "initial-present"
41467
+ /*
41468
+ * The request names itself on its raise line. It used to present as
41469
+ * `initial-present` — this process's own launch — which is what a Dock
41470
+ * click is not, and the log's whole job is attribution; the refusal
41471
+ * above is the same request and must carry the same name.
41472
+ */
41473
+ trigger: "activate"
41255
41474
  });
41256
41475
  }
41257
41476
  });
@@ -41331,6 +41550,7 @@ const holdQuitForSessionCookieSnapshot = createSessionCookieQuitHold({
41331
41550
  log: (message) => logger.warn(message, LogFileType.BACKEND)
41332
41551
  });
41333
41552
  electron.app.on("before-quit", async (event) => {
41553
+ quitState.begin();
41334
41554
  if (await holdQuitForSessionCookieSnapshot(event)) return;
41335
41555
  logger.info("App is about to quit", LogFileType.BACKEND);
41336
41556
  if (parkedLaunches.length > 0) {
@@ -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-gJCk0rG2.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-BisXdtq8.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-xIg3idQF.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-DLc2GDBk.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-BisXdtq8.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-DLc2GDBk.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{r as F,j as e,c as G}from"./index-1jk3-3ca.js";import{l as ue,c as he,u as xe,d as ge,g as je,i as fe,a as pe,b as ye,e as ve}from"./use-memberships-query-B5iErNyL.js";import{b as ne,a as I,v as we}from"./renderer-platform-DV4X4aCW.js";import{a9 as b,aa as K,a4 as Y,ab as B,ac as be,ad as Ce,ae as ie,e as re,a as Ne,af as Ae,B as ke,ag as Se,ah as De,ai as J,a3 as Ee,aj as Fe,ak as Te}from"./index-9kSbYL-A.js";import{c as _e,L as Pe,a as ee,B as l,S as z,b as oe,d as L,e as M,f as v,X as qe,g as w,A as te,h as se,i as ae}from"./textarea-DRfVCtHc.js";import{f as W,u as Le,i as Me,a as ze,b as Ie,c as Ke,O as Be,H as Oe,A as Qe}from"./use-download-agent-mutation-BffNJt-E.js";import"./ui-preferences-store-Y6swLMAE.js";import"./error-boundary-zYOCmQTl.js";import"./console-mirror-DxuGXeGm.js";import"./en-US-BkS8Ixxl.js";import"./book-open-DlCeQ__D.js";/**
1
+ import{r as F,j as e,c as G}from"./index-C17iOszj.js";import{l as ue,c as he,u as xe,d as ge,g as je,i as fe,a as pe,b as ye,e as ve}from"./use-memberships-query-Q96GogTV.js";import{b as ne,a as I,y as we}from"./aida-control-BqbEHtVs.js";import{a9 as b,aa as K,a4 as Y,ab as B,ac as be,ad as Ce,ae as ie,e as re,a as Ne,af as Ae,B as ke,ag as Se,ah as De,ai as J,a3 as Ee,aj as Fe,ak as Te}from"./index-BsveCKct.js";import{c as _e,L as Pe,a as ee,B as l,S as z,b as oe,d as L,e as M,f as v,X as qe,g as w,A as te,h as se,i as ae}from"./textarea-CPyoWJfR.js";import{f as W,u as Le,i as Me,a as ze,b as Ie,c as Ke,O as Be,H as Oe,A as Qe}from"./use-download-agent-mutation-CJP2OhpP.js";import"./ui-preferences-store-CyKvDymq.js";import"./error-boundary-X9vF0zez.js";import"./console-mirror-CqlxE8VR.js";import"./en-US-BkS8Ixxl.js";import"./book-open-tLP18D-k.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.