local-operator-ui 0.34.13 → 0.34.14

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 (84) hide show
  1. package/out/main/index.js +248 -7
  2. package/out/preload/index.js +61 -0
  3. package/out/renderer/assets/{_basePickBy-CuMaQXnE.js → _basePickBy-CA44TNNe.js} +1 -1
  4. package/out/renderer/assets/{_baseUniq-DKeCGkCd.js → _baseUniq-d7MQLNdZ.js} +1 -1
  5. package/out/renderer/assets/{agent-details-page-DNymI5K7.js → agent-details-page-7FSNVw_a.js} +1 -1
  6. package/out/renderer/assets/{agent-hub-page-Ckv_jCjf.js → agent-hub-page-DKkaAJUO.js} +1 -1
  7. package/out/renderer/assets/{agents-page-CzWn74Vs.js → agents-page-D7m55u_6.js} +3 -3
  8. package/out/renderer/assets/{arc-CnvhNTGl.js → arc-B-FDKsGH.js} +1 -1
  9. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-D87FdX-H.js → architectureDiagram-IEHRJDOE-G1rjfZq7.js} +1 -1
  10. package/out/renderer/assets/{blockDiagram-JOT3LUYC-pWG0SYM0.js → blockDiagram-JOT3LUYC-l-awIrnr.js} +1 -1
  11. package/out/renderer/assets/{book-open-Cpx7b4xU.js → book-open-BrrVexy5.js} +1 -1
  12. package/out/renderer/assets/browser-page-CpH4mHqD.js +1 -0
  13. package/out/renderer/assets/{browser-webauthn-prompt-D9pJNnAE.js → browser-webauthn-prompt-gPUN30kV.js} +1 -1
  14. package/out/renderer/assets/{c4Diagram-VJAJSXHY-n9oZXPrb.js → c4Diagram-VJAJSXHY-6Ot96pvN.js} +1 -1
  15. package/out/renderer/assets/channel-C2Q8chMm.js +1 -0
  16. package/out/renderer/assets/{chunk-4BMEZGHF-DUVNV3px.js → chunk-4BMEZGHF-Dh9LoLDO.js} +1 -1
  17. package/out/renderer/assets/{chunk-A2AXSNBT-D69ozLLm.js → chunk-A2AXSNBT-CZyKYDNO.js} +1 -1
  18. package/out/renderer/assets/{chunk-AEK57VVT-DojzsKw7.js → chunk-AEK57VVT-Xn4scAn6.js} +1 -1
  19. package/out/renderer/assets/{chunk-D6G4REZN-CXPThrUO.js → chunk-D6G4REZN-B3ShvnJj.js} +1 -1
  20. package/out/renderer/assets/{chunk-RZ5BOZE2-Tpm4iz0-.js → chunk-RZ5BOZE2-BdS5lS3d.js} +1 -1
  21. package/out/renderer/assets/{chunk-XZIHB7SX-CM94sy6v.js → chunk-XZIHB7SX-DGgrxFg7.js} +1 -1
  22. package/out/renderer/assets/classDiagram-GIVACNV2-NND2zHOW.js +1 -0
  23. package/out/renderer/assets/classDiagram-v2-COTLJTTW-NND2zHOW.js +1 -0
  24. package/out/renderer/assets/clone-BiIHot_2.js +1 -0
  25. package/out/renderer/assets/{console-mirror-BEedSAfE.js → console-mirror-DQtUJmwA.js} +1 -1
  26. package/out/renderer/assets/{consoleCapture-CJpzUlSd.js → consoleCapture-CRwR37DZ.js} +1 -1
  27. package/out/renderer/assets/{conversation-input-sync-BvSb6a8F.js → conversation-input-sync-Y14Ako7z.js} +251 -241
  28. package/out/renderer/assets/{dagre-OKDRZEBW-CNxZp61j.js → dagre-OKDRZEBW-Bc7fF0Ra.js} +1 -1
  29. package/out/renderer/assets/{diagram-SSKATNLV-aLMzXyK5.js → diagram-SSKATNLV-BCPRa1YD.js} +1 -1
  30. package/out/renderer/assets/{diagram-VNBRO52H-Bg2DhWCA.js → diagram-VNBRO52H-D1nlo0lE.js} +1 -1
  31. package/out/renderer/assets/{erDiagram-Q7BY3M3F-j_TMas8g.js → erDiagram-Q7BY3M3F-BHRru_kn.js} +1 -1
  32. package/out/renderer/assets/{error-boundary-DexrfAEk.js → error-boundary--zcbe2Cc.js} +1 -1
  33. package/out/renderer/assets/{flowDiagram-4HSFHLVR-DwfE01r0.js → flowDiagram-4HSFHLVR-BpvsM4FJ.js} +1 -1
  34. package/out/renderer/assets/{ganttDiagram-APWFNJXF-o_J5Q4qE.js → ganttDiagram-APWFNJXF-Mf1oQBUh.js} +1 -1
  35. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-8AYyb2q7.js → gitGraphDiagram-7IBYFJ6S-D8xMmgTb.js} +1 -1
  36. package/out/renderer/assets/{graph-KSlxkPtr.js → graph-CgIWJTDW.js} +1 -1
  37. package/out/renderer/assets/{index-Wfo25fxR.js → index-D6RCVBdS.js} +153 -163
  38. package/out/renderer/assets/{index-Bxh_DMkN.js → index-Doc--GMv.js} +1 -1
  39. package/out/renderer/assets/{index-CBio7uVX.js → index-r4WPdpk8.js} +1 -1
  40. package/out/renderer/assets/index-v9rBxA_L.css +1 -0
  41. package/out/renderer/assets/{infoDiagram-PH2N3AL5-Dgx0WJ8T.js → infoDiagram-PH2N3AL5-pr4mFbVN.js} +1 -1
  42. package/out/renderer/assets/{installer-BDvScYgZ.js → installer-CtGo64L_.js} +1 -1
  43. package/out/renderer/assets/{journeyDiagram-U35MCT3I-De_U2_fi.js → journeyDiagram-U35MCT3I-CZZIKRib.js} +1 -1
  44. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-DUuYeORq.js → kanban-definition-NDS4AKOZ-CSM-wGwp.js} +1 -1
  45. package/out/renderer/assets/{layout-Y7ReWUo5.js → layout-Dh6gtFg_.js} +1 -1
  46. package/out/renderer/assets/{legacy-agents-page-B9mXqb4D.js → legacy-agents-page-B22zDTMb.js} +1 -1
  47. package/out/renderer/assets/{mermaid.core-DNS50-NS.js → mermaid.core-BiKTnTLM.js} +5 -5
  48. package/out/renderer/assets/{mesh-page-fWdbRlK8.js → mesh-page-BC4zN8JI.js} +1 -1
  49. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-D3_S2COi.js → mindmap-definition-ALO5MXBD-R2SPXsMW.js} +1 -1
  50. package/out/renderer/assets/{mini-Co_TXCJ3.js → mini-DgFVKGPN.js} +1 -1
  51. package/out/renderer/assets/{org-surface-gate-ik1uMiLe.js → org-surface-gate-DVc7KY9Q.js} +1 -1
  52. package/out/renderer/assets/{page-header-Ce0OVEd3.js → page-header-Dd48wU3n.js} +1 -1
  53. package/out/renderer/assets/{pieDiagram-IB7DONF6-C8yur6Ac.js → pieDiagram-IB7DONF6-BfLVQMmu.js} +1 -1
  54. package/out/renderer/assets/{projects-page-XYebxBb4.js → projects-page-alU2HYfV.js} +1 -1
  55. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-B04MajkG.js → quadrantDiagram-7GDLP6J5-CMGZTdhQ.js} +1 -1
  56. package/out/renderer/assets/{radar-MK3ICKWK-CLCEq4mP.js → radar-MK3ICKWK-BvYNslCw.js} +1 -1
  57. package/out/renderer/assets/{radient-auth-buttons-D7TF55K4.js → radient-auth-buttons-DFvYWrW9.js} +1 -1
  58. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-zeGik6Fv.js → requirementDiagram-KVF5MWMF-eObwAx7H.js} +1 -1
  59. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-BZmVH-PV.js → sankeyDiagram-QLVOVGJD-RTB4Rlq4.js} +1 -1
  60. package/out/renderer/assets/{schedules-page-tkQ09Qzt.js → schedules-page-B3AQzTAf.js} +1 -1
  61. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-UUGTprRZ.js → sequenceDiagram-X6HHIX6F-C8NZenBo.js} +1 -1
  62. package/out/renderer/assets/{settings-page-kJ4v4696.js → settings-page-DGhbz4Lk.js} +1 -1
  63. package/out/renderer/assets/{settings-section-n-j-LSaI.js → settings-section-SGVEGH5Z.js} +1 -1
  64. package/out/renderer/assets/{stateDiagram-DGXRK772-DpuddJOQ.js → stateDiagram-DGXRK772-OuQ6rDJE.js} +1 -1
  65. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-Crv3Z08s.js +1 -0
  66. package/out/renderer/assets/{timeline-definition-BDJGKUSR-mHNW2fr3.js → timeline-definition-BDJGKUSR-B3RFNfTp.js} +1 -1
  67. package/out/renderer/assets/{ui-preferences-store-DNhiasP6.js → ui-preferences-store-YV9uOjJv.js} +1 -1
  68. package/out/renderer/assets/{use-download-agent-mutation-CgAZq5FK.js → use-download-agent-mutation-D4vLY-y4.js} +1 -1
  69. package/out/renderer/assets/{use-memberships-query-CVbNGH7n.js → use-memberships-query-BR0cFsRZ.js} +1 -1
  70. package/out/renderer/assets/{use-session-snapshot-D3DsMux6.js → use-session-snapshot-Ba7auBdS.js} +1 -1
  71. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-D4S76BDC.js → xychartDiagram-VJFVF3MP-BPihBW4d.js} +1 -1
  72. package/out/renderer/console-capture.html +5 -5
  73. package/out/renderer/index.html +19 -9
  74. package/out/renderer/installer.html +4 -4
  75. package/out/renderer/mini.html +7 -7
  76. package/package.json +2 -2
  77. package/out/renderer/assets/browser-page-C90b-h7d.js +0 -1
  78. package/out/renderer/assets/channel-D7v5czrG.js +0 -1
  79. package/out/renderer/assets/classDiagram-GIVACNV2-D8dzeJBj.js +0 -1
  80. package/out/renderer/assets/classDiagram-v2-COTLJTTW-D8dzeJBj.js +0 -1
  81. package/out/renderer/assets/clone-BY0fK-il.js +0 -1
  82. package/out/renderer/assets/index-BhJCtYke.css +0 -1
  83. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DBnjJOPU.js +0 -1
  84. /package/out/renderer/assets/{index-CMRW4pU4.js → index-B6YcJ0Ho.js} +0 -0
package/out/main/index.js CHANGED
@@ -64,6 +64,8 @@ const settingKey = zod.z.string().min(1).max(256).regex(/^[a-zA-Z0-9_][a-zA-Z0-9
64
64
  const secret = zod.z.string().min(1).max(32768);
65
65
  const sessionIdPattern = /^[a-f0-9]{12}$/;
66
66
  const sessionId = zod.z.string().regex(sessionIdPattern);
67
+ const supplementJob = zod.z.string().regex(/^[a-f0-9]{12}$/);
68
+ const supplementAnchor = zod.z.string().min(1).max(128);
67
69
  const skillCwd = zod.z.string().min(1).max(4096);
68
70
  const mcpServerName = zod.z.string().regex(/^[A-Za-z0-9_.:-]{1,100}$/);
69
71
  const mcpSecretReference = zod.z.string().regex(/^\$\{[A-Za-z_][A-Za-z0-9_]*\}$/);
@@ -963,6 +965,54 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
963
965
  * uuid is not prose, so this costs the control budget.
964
966
  */
965
967
  zod.z.object({ op: zod.z.literal("sessions.interrupt"), sessionId, requestId }).strict(),
968
+ /*
969
+ * The supplement block's OWN control pair (turn-supplements memo §2.7, lane
970
+ * U-b): cancel the running job, steer it with an instruction, or retry a
971
+ * settled one.
972
+ *
973
+ * THE COMPANION CORE ROUTES. These three ops address
974
+ * ``POST /v1/desktop/sessions/{sid}/supplements/{job}/{cancel,steer,restart}``
975
+ * and map in core to ``AttachedSession.supplement_cancel/steer/restart``
976
+ * (``session/attached.py``), which already speak the runtime's own op
977
+ * vocabulary over the control socket — the same rung ``sessions.interrupt``
978
+ * reaches.
979
+ *
980
+ * THOSE ROUTES DO NOT EXIST YET, and that is verified rather than assumed:
981
+ * the desktop plane on core ``origin/main`` (05e4c971b1) serves only the
982
+ * document route and the events gate, the released runtime matches (UX round
983
+ * 1 measured the 404s live), and no other door is reachable from this app —
984
+ * the runtime control socket is a daemon↔runtime dial main has no path to,
985
+ * and the relay's command route is cookie-gated for the phone surface. The
986
+ * core half is a small paired PR (one route per op dispatching
987
+ * ``bridge.remote.supplement_*``, the ``interrupt`` route's own shape); the
988
+ * app half ships here so the pair is one core change from working. Until it
989
+ * lands, a press answers 404 and the row composes THAT refusal through
990
+ * ``backendLoadErrorMessage`` — the outdated-server sentence, never a raw
991
+ * ``Not Found`` echoing out of the daemon (round-1 U2).
992
+ *
993
+ * ``job`` and ``anchor`` are the contract's own shapes (12 hex job id, the
994
+ * answer's message id); ``text`` is the memo's ``supplement_steer`` bound
995
+ * (≤ 500 chars, enforced again server-side).
996
+ */
997
+ zod.z.object({
998
+ op: zod.z.literal("supplements.cancel"),
999
+ sessionId,
1000
+ job: supplementJob,
1001
+ anchor: supplementAnchor
1002
+ }).strict(),
1003
+ zod.z.object({
1004
+ op: zod.z.literal("supplements.restart"),
1005
+ sessionId,
1006
+ job: supplementJob,
1007
+ anchor: supplementAnchor
1008
+ }).strict(),
1009
+ zod.z.object({
1010
+ op: zod.z.literal("supplements.steer"),
1011
+ sessionId,
1012
+ job: supplementJob,
1013
+ anchor: supplementAnchor,
1014
+ text: zod.z.string().min(1).max(500)
1015
+ }).strict(),
966
1016
  /*
967
1017
  * A session's code memory: the names the session's own cells have left in its
968
1018
  * eval namespace.
@@ -3000,6 +3050,24 @@ function desktopEndpoint(request) {
3000
3050
  // runtime's abort receipt verbatim - see `DesktopInterruptReceipt`.
3001
3051
  body: { request_id: request.requestId }
3002
3052
  };
3053
+ case "supplements.cancel":
3054
+ return {
3055
+ path: `/v1/desktop/sessions/${request.sessionId}/supplements/${request.job}/cancel`,
3056
+ method: "POST",
3057
+ body: { anchor: request.anchor }
3058
+ };
3059
+ case "supplements.restart":
3060
+ return {
3061
+ path: `/v1/desktop/sessions/${request.sessionId}/supplements/${request.job}/restart`,
3062
+ method: "POST",
3063
+ body: { anchor: request.anchor }
3064
+ };
3065
+ case "supplements.steer":
3066
+ return {
3067
+ path: `/v1/desktop/sessions/${request.sessionId}/supplements/${request.job}/steer`,
3068
+ method: "POST",
3069
+ body: { anchor: request.anchor, text: request.text }
3070
+ };
3003
3071
  case "sessions.variables.list":
3004
3072
  return {
3005
3073
  path: `/v1/desktop/sessions/${request.sessionId}/variables`,
@@ -7044,6 +7112,17 @@ const mediaRequestSchema = zod.z.discriminatedUnion("op", [
7044
7112
  sessionId: zod.z.string().regex(/^[a-f0-9]{12}$/),
7045
7113
  childId: zod.z.string().regex(/^[a-f0-9]{12}$/),
7046
7114
  digest: zod.z.string().regex(/^[a-f0-9]{32}$/)
7115
+ }).strict(),
7116
+ // One supplement component's assembled HTML document (turn-supplements
7117
+ // memo §2.7), as `{ html }` JSON. Both identifiers are shape-constrained
7118
+ // here for the same reason the attachment ops' are: the path is built in
7119
+ // main, and an unvalidated digest would be renderer-controlled path text.
7120
+ // The digest regex is the contract's own (`DIGEST_PATTERN`,
7121
+ // `local_operator/supplements/contract.py`): 32 lowercase hex characters.
7122
+ zod.z.object({
7123
+ op: zod.z.literal("sessions.supplementDocument"),
7124
+ sessionId: zod.z.string().regex(/^[a-f0-9]{12}$/),
7125
+ digest: zod.z.string().regex(/^[a-f0-9]{32}$/)
7047
7126
  }).strict()
7048
7127
  ]);
7049
7128
  function endpoint(request) {
@@ -7068,6 +7147,11 @@ function endpoint(request) {
7068
7147
  path: `/v1/desktop/sessions/${request.sessionId}/children/${request.childId}/attachments/${request.digest}`,
7069
7148
  method: "GET"
7070
7149
  };
7150
+ case "sessions.supplementDocument":
7151
+ return {
7152
+ path: `/v1/desktop/sessions/${request.sessionId}/supplements/${request.digest}/document`,
7153
+ method: "GET"
7154
+ };
7071
7155
  }
7072
7156
  }
7073
7157
  async function requestDesktopMediaOutcome(input, bytes, backendUrl, token) {
@@ -7107,7 +7191,7 @@ async function requestDesktopMediaOutcome(input, bytes, backendUrl, token) {
7107
7191
  const target2 = endpoint(request);
7108
7192
  let body;
7109
7193
  let contentType;
7110
- if (request.op === "agent.export" || request.op === "sessions.attachment" || request.op === "subagents.attachment") {
7194
+ if (request.op === "agent.export" || request.op === "sessions.attachment" || request.op === "subagents.attachment" || request.op === "sessions.supplementDocument") {
7111
7195
  body = void 0;
7112
7196
  } else if (request.op === "speech.create" || request.op === "speech.agent") {
7113
7197
  body = JSON.stringify(request.request);
@@ -7314,6 +7398,7 @@ class DesktopStreamRelay {
7314
7398
  if (args.afterSeq !== void 0)
7315
7399
  query.set("after_seq", String(args.afterSeq));
7316
7400
  query.set("frontend_replace", "1");
7401
+ query.set("supplements", "1");
7317
7402
  const suffix = query.size > 0 ? `?${query}` : "";
7318
7403
  const url = new URL(
7319
7404
  `/v1/desktop/sessions/${args.sessionId}/events${suffix}`,
@@ -26357,7 +26442,7 @@ function isAdmittedSender(event, admitted) {
26357
26442
  (candidate) => candidate.window !== null && !candidate.window.isDestroyed() && event.sender === candidate.window.webContents && event.senderFrame === candidate.window.webContents.mainFrame && trustedDesktopFrame(event.senderFrame.url, candidate.url)
26358
26443
  );
26359
26444
  }
26360
- function registerDesktopIPC(window, expectedUrl, request, streams, media, notifier, noteLeftSession, onKeymapSettingEdited, additionalWindows) {
26445
+ function registerDesktopIPC(window, expectedUrl, request, streams, media, notifier, noteLeftSession, onKeymapSettingEdited, additionalWindows, supplementMounts2) {
26361
26446
  const opened = /* @__PURE__ */ new Map();
26362
26447
  function authorize(event) {
26363
26448
  const admitted = [
@@ -26383,6 +26468,12 @@ function registerDesktopIPC(window, expectedUrl, request, streams, media, notifi
26383
26468
  }
26384
26469
  return outcome;
26385
26470
  });
26471
+ if (supplementMounts2) {
26472
+ electron.ipcMain.handle("desktop-supplement-frame-arm", (event, url) => {
26473
+ authorize(event);
26474
+ return { ok: supplementMounts2.arm(url) };
26475
+ });
26476
+ }
26386
26477
  electron.ipcMain.handle("desktop-close-window", (event) => {
26387
26478
  authorize(event);
26388
26479
  const owner = window();
@@ -35700,6 +35791,127 @@ function createRelaunchPending(options = {}) {
35700
35791
  }
35701
35792
  };
35702
35793
  }
35794
+ const SUPPLEMENT_SCHEME = "lo-supplement";
35795
+ const SUPPLEMENT_HOST = "s";
35796
+ const SESSION_ID_RE = /^[a-f0-9]{12}$/;
35797
+ const DIGEST_RE = /^[a-f0-9]{32}$/;
35798
+ function supplementMountUrl(sessionId2, digest) {
35799
+ return `${SUPPLEMENT_SCHEME}://${SUPPLEMENT_HOST}/${sessionId2}/${digest}`;
35800
+ }
35801
+ function parseSupplementMountUrl(raw) {
35802
+ if (typeof raw !== "string") return null;
35803
+ let url;
35804
+ try {
35805
+ url = new URL(raw);
35806
+ } catch {
35807
+ return null;
35808
+ }
35809
+ if (url.protocol !== `${SUPPLEMENT_SCHEME}:`) return null;
35810
+ if (url.hostname !== SUPPLEMENT_HOST) return null;
35811
+ if (url.username !== "" || url.password !== "") return null;
35812
+ if (url.port !== "") return null;
35813
+ if (url.search !== "" || url.hash !== "") return null;
35814
+ const segments = url.pathname.split("/");
35815
+ if (segments.length !== 3 || segments[0] !== "") return null;
35816
+ const sessionId2 = segments[1];
35817
+ const digest = segments[2];
35818
+ if (!SESSION_ID_RE.test(sessionId2) || !DIGEST_RE.test(digest)) return null;
35819
+ if (raw !== supplementMountUrl(sessionId2, digest)) return null;
35820
+ return { sessionId: sessionId2, digest };
35821
+ }
35822
+ const MAX_MOUNT_URL_CHARS = 512 * 1024;
35823
+ const MAX_ARMED_MOUNTS = 64;
35824
+ function isArmableMountUrl(raw) {
35825
+ if (typeof raw !== "string") return false;
35826
+ if (raw.length > MAX_MOUNT_URL_CHARS) return false;
35827
+ return parseSupplementMountUrl(raw) !== null;
35828
+ }
35829
+ class SupplementFrameMounts {
35830
+ armed = [];
35831
+ /**
35832
+ * Arm one mount URL. Returns whether it was accepted, so the caller (an IPC
35833
+ * handler, where a branch is free) can answer `{ ok: false }` instead of
35834
+ * letting a bad URL disappear into a list nobody inspects.
35835
+ *
35836
+ * IDEMPOTENT for a byte-identical URL that still stands unconsumed: React's
35837
+ * development StrictMode runs every effect setup twice (the first setup is
35838
+ * discarded before it assigns `src`), and a plain push left one unconsumed
35839
+ * permit standing per mount in development (round-1 R4). The double-arm now
35840
+ * collapses onto one permit — which the single real navigation then consumes
35841
+ * — instead of leaking one. This is deliberately the ONLY fix for that path:
35842
+ * a `release` op was rejected because the wire cannot order it against the
35843
+ * live mount's navigation (see the header's path (b) note).
35844
+ *
35845
+ * THE ONLY WRITER, and it is called from the arm channel: the IPC handler
35846
+ * checks the sender is the app's main frame before arming anything.
35847
+ */
35848
+ arm(raw) {
35849
+ if (!isArmableMountUrl(raw)) return false;
35850
+ if (this.armed.includes(raw)) return true;
35851
+ this.armed.push(raw);
35852
+ while (this.armed.length > MAX_ARMED_MOUNTS) this.armed.shift();
35853
+ return true;
35854
+ }
35855
+ /**
35856
+ * Whether a child-frame navigation may proceed under a permit, consuming
35857
+ * the permit when it does. Byte-for-byte equality — never a prefix, a
35858
+ * fragment match or a scheme test — so the pass is exactly the navigation
35859
+ * the host itself armed.
35860
+ */
35861
+ consume(url) {
35862
+ const at = this.armed.indexOf(url);
35863
+ if (at < 0) return false;
35864
+ this.armed.splice(at, 1);
35865
+ return true;
35866
+ }
35867
+ /** How many permits stand unconsumed, for the node suite's assertions. */
35868
+ get armedCount() {
35869
+ return this.armed.length;
35870
+ }
35871
+ }
35872
+ const SUPPLEMENT_DOCUMENT_CSP = "default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:; font-src data:; connect-src 'none'; frame-src 'none'; form-action 'none'; base-uri 'none'";
35873
+ function registerSupplementScheme() {
35874
+ electron.protocol.registerSchemesAsPrivileged([
35875
+ {
35876
+ scheme: SUPPLEMENT_SCHEME,
35877
+ privileges: {
35878
+ standard: true,
35879
+ secure: false,
35880
+ corsEnabled: false,
35881
+ bypassCSP: false
35882
+ }
35883
+ }
35884
+ ]);
35885
+ }
35886
+ function installSupplementProtocol(fetchDocument, log2) {
35887
+ electron.protocol.handle(SUPPLEMENT_SCHEME, async (request) => {
35888
+ const parsed = parseSupplementMountUrl(request.url);
35889
+ if (parsed === null) {
35890
+ return new Response("", { status: 400 });
35891
+ }
35892
+ let document;
35893
+ try {
35894
+ document = await fetchDocument(parsed.sessionId, parsed.digest);
35895
+ } catch {
35896
+ log2(
35897
+ `[supplement-protocol] document relay threw for ${parsed.sessionId}/${parsed.digest.slice(0, 8)}…`
35898
+ );
35899
+ return new Response("", { status: 502 });
35900
+ }
35901
+ if (document.html === null) {
35902
+ return new Response("", { status: 404 });
35903
+ }
35904
+ return new Response(document.html, {
35905
+ status: 200,
35906
+ headers: {
35907
+ "content-type": "text/html; charset=utf-8",
35908
+ "content-security-policy": SUPPLEMENT_DOCUMENT_CSP,
35909
+ "x-content-type-options": "nosniff",
35910
+ "cache-control": "no-store"
35911
+ }
35912
+ });
35913
+ });
35914
+ }
35703
35915
  function titlebarOptions(platform, chrome) {
35704
35916
  if (platform === "darwin") {
35705
35917
  return { titleBarStyle: "hidden" };
@@ -43628,10 +43840,15 @@ function installNavigationVerdict(contents, decide, log2) {
43628
43840
  contents.on("will-frame-navigate", onNavigation);
43629
43841
  contents.on("will-redirect", onNavigation);
43630
43842
  }
43631
- function guardNavigation(contents, trustedUrls, log2) {
43843
+ function guardNavigation(contents, trustedUrls, log2, supplementMounts2) {
43632
43844
  installNavigationVerdict(
43633
43845
  contents,
43634
- (url, isMainFrame) => frameNavigationVerdict({ url, isMainFrame }, trustedUrls()),
43846
+ (url, isMainFrame) => {
43847
+ if (!isMainFrame && supplementMounts2?.consume(url)) {
43848
+ return { allowed: true };
43849
+ }
43850
+ return frameNavigationVerdict({ url, isMainFrame }, trustedUrls());
43851
+ },
43635
43852
  log2
43636
43853
  );
43637
43854
  }
@@ -44183,7 +44400,8 @@ function createWindow(initialSession = null, openCatalogue = false, request = ow
44183
44400
  guardNavigation(
44184
44401
  mainWindow2.webContents,
44185
44402
  trustedRendererDocuments,
44186
- (m) => logger.warn(m, LogFileType.BACKEND)
44403
+ (m) => logger.warn(m, LogFileType.BACKEND),
44404
+ supplementMounts
44187
44405
  );
44188
44406
  guardWindowOpen(
44189
44407
  mainWindow2.webContents,
@@ -44257,6 +44475,8 @@ const telemetryWebPreferences = {
44257
44475
  additionalArguments: [telemetryArgument(telemetryLaunch.enabled)]
44258
44476
  };
44259
44477
  let mainWindow = null;
44478
+ const supplementMounts = new SupplementFrameMounts();
44479
+ registerSupplementScheme();
44260
44480
  let miniView = null;
44261
44481
  let miniViewRegistrar = null;
44262
44482
  let quickSendWatcher = null;
@@ -44733,7 +44953,8 @@ electron.app.whenReady().then(async () => {
44733
44953
  guardNavigation(
44734
44954
  quickSend.window.webContents,
44735
44955
  trustedRendererDocuments,
44736
- (m) => logger.warn(m, LogFileType.BACKEND)
44956
+ (m) => logger.warn(m, LogFileType.BACKEND),
44957
+ supplementMounts
44737
44958
  );
44738
44959
  guardWindowOpen(
44739
44960
  quickSend.window.webContents,
@@ -44816,6 +45037,20 @@ electron.app.whenReady().then(async () => {
44816
45037
  reason: `window mode ${windowLaunch.mode} registers no global shortcuts`
44817
45038
  };
44818
45039
  });
45040
+ installSupplementProtocol(
45041
+ async (sessionId2, digest) => {
45042
+ const response = await backendService.requestDesktopMedia(
45043
+ { op: "sessions.supplementDocument", sessionId: sessionId2, digest },
45044
+ null
45045
+ );
45046
+ if (response.kind !== "json") return { html: null };
45047
+ const body = response.body;
45048
+ return {
45049
+ html: body && typeof body.html === "string" ? body.html : null
45050
+ };
45051
+ },
45052
+ (m) => logger.warn(m, LogFileType.BACKEND)
45053
+ );
44819
45054
  registerDesktopIPC(
44820
45055
  () => mainWindow,
44821
45056
  rendererUrl,
@@ -44851,7 +45086,13 @@ electron.app.whenReady().then(async () => {
44851
45086
  * `before-quit` disposes it, which is the same lifecycle the
44852
45087
  * registration follows.
44853
45088
  */
44854
- () => miniView === null ? [] : [{ window: miniView.window, url: miniViewUrlFor(rendererUrl) }]
45089
+ () => miniView === null ? [] : [{ window: miniView.window, url: miniViewUrlFor(rendererUrl) }],
45090
+ /*
45091
+ * The supplement-frame mount permits (turn-supplements memo §4.1), the
45092
+ * same instance `createWindow` gave the navigation guard: the arm channel
45093
+ * and the guard are two halves of one decision and must share one list.
45094
+ */
45095
+ supplementMounts
44855
45096
  );
44856
45097
  if (devDriverArming.armed && devDriverArming.outDir) {
44857
45098
  registerDevDriverIPC({
@@ -92,6 +92,8 @@ const settingKey = zod.z.string().min(1).max(256).regex(/^[a-zA-Z0-9_][a-zA-Z0-9
92
92
  const secret = zod.z.string().min(1).max(32768);
93
93
  const sessionIdPattern = /^[a-f0-9]{12}$/;
94
94
  const sessionId = zod.z.string().regex(sessionIdPattern);
95
+ const supplementJob = zod.z.string().regex(/^[a-f0-9]{12}$/);
96
+ const supplementAnchor = zod.z.string().min(1).max(128);
95
97
  const skillCwd = zod.z.string().min(1).max(4096);
96
98
  const mcpServerName = zod.z.string().regex(/^[A-Za-z0-9_.:-]{1,100}$/);
97
99
  const mcpSecretReference = zod.z.string().regex(/^\$\{[A-Za-z_][A-Za-z0-9_]*\}$/);
@@ -988,6 +990,54 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
988
990
  * uuid is not prose, so this costs the control budget.
989
991
  */
990
992
  zod.z.object({ op: zod.z.literal("sessions.interrupt"), sessionId, requestId }).strict(),
993
+ /*
994
+ * The supplement block's OWN control pair (turn-supplements memo §2.7, lane
995
+ * U-b): cancel the running job, steer it with an instruction, or retry a
996
+ * settled one.
997
+ *
998
+ * THE COMPANION CORE ROUTES. These three ops address
999
+ * ``POST /v1/desktop/sessions/{sid}/supplements/{job}/{cancel,steer,restart}``
1000
+ * and map in core to ``AttachedSession.supplement_cancel/steer/restart``
1001
+ * (``session/attached.py``), which already speak the runtime's own op
1002
+ * vocabulary over the control socket — the same rung ``sessions.interrupt``
1003
+ * reaches.
1004
+ *
1005
+ * THOSE ROUTES DO NOT EXIST YET, and that is verified rather than assumed:
1006
+ * the desktop plane on core ``origin/main`` (05e4c971b1) serves only the
1007
+ * document route and the events gate, the released runtime matches (UX round
1008
+ * 1 measured the 404s live), and no other door is reachable from this app —
1009
+ * the runtime control socket is a daemon↔runtime dial main has no path to,
1010
+ * and the relay's command route is cookie-gated for the phone surface. The
1011
+ * core half is a small paired PR (one route per op dispatching
1012
+ * ``bridge.remote.supplement_*``, the ``interrupt`` route's own shape); the
1013
+ * app half ships here so the pair is one core change from working. Until it
1014
+ * lands, a press answers 404 and the row composes THAT refusal through
1015
+ * ``backendLoadErrorMessage`` — the outdated-server sentence, never a raw
1016
+ * ``Not Found`` echoing out of the daemon (round-1 U2).
1017
+ *
1018
+ * ``job`` and ``anchor`` are the contract's own shapes (12 hex job id, the
1019
+ * answer's message id); ``text`` is the memo's ``supplement_steer`` bound
1020
+ * (≤ 500 chars, enforced again server-side).
1021
+ */
1022
+ zod.z.object({
1023
+ op: zod.z.literal("supplements.cancel"),
1024
+ sessionId,
1025
+ job: supplementJob,
1026
+ anchor: supplementAnchor
1027
+ }).strict(),
1028
+ zod.z.object({
1029
+ op: zod.z.literal("supplements.restart"),
1030
+ sessionId,
1031
+ job: supplementJob,
1032
+ anchor: supplementAnchor
1033
+ }).strict(),
1034
+ zod.z.object({
1035
+ op: zod.z.literal("supplements.steer"),
1036
+ sessionId,
1037
+ job: supplementJob,
1038
+ anchor: supplementAnchor,
1039
+ text: zod.z.string().min(1).max(500)
1040
+ }).strict(),
991
1041
  /*
992
1042
  * A session's code memory: the names the session's own cells have left in its
993
1043
  * eval namespace.
@@ -2466,6 +2516,17 @@ const api = {
2466
2516
  request: (request) => electron.ipcRenderer.invoke("desktop-request", request),
2467
2517
  openAuthorization: (operationId, reopen = false) => electron.ipcRenderer.invoke("desktop-open-authorization", operationId, reopen),
2468
2518
  media: (request, bytes) => electron.ipcRenderer.invoke("desktop-media", request, bytes),
2519
+ /**
2520
+ * Arm one supplement-frame mount (turn-supplements memo §4.1): the EXACT
2521
+ * `data:` URL the renderer is about to set as `src`, sent immediately
2522
+ * before the frame mounts. Main's navigation guard consumes the permit for
2523
+ * that one child-frame navigation and denies every later one; the answer's
2524
+ * `ok` is false for a URL main refuses to hold (not a `data:text/html`
2525
+ * mount). Electron only - browser development and Storybook have no
2526
+ * channel, and the mount path must not require one (`armSupplementFrame` is
2527
+ * optional on `DesktopAPI`).
2528
+ */
2529
+ armSupplementFrame: (url) => electron.ipcRenderer.invoke("desktop-supplement-frame-arm", url),
2469
2530
  watchHeartbeat: (args) => electron.ipcRenderer.invoke("desktop-watch-heartbeat", args),
2470
2531
  /**
2471
2532
  * Tell main this pane has STOPPED displaying `sessionId` (review round 2,
@@ -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-DKeCGkCd.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-DNS50-NS.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-d7MQLNdZ.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-BiKTnTLM.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-DNS50-NS.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-BiKTnTLM.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 E,j as e,c as J}from"./index-CMRW4pU4.js";import{l as he,c as xe,u as ge,d as je,g as fe,i as pe,a as ye,b as ve,e as we}from"./use-memberships-query-CVbNGH7n.js";import{aH as ie,u as K,aN as C,aO as O,ay as Y,aP as Q,aQ as re,aR as oe,aS as be,az as Ce,aT as Ne,aU as ee,ax as Ae,aV as ke,aW as Se}from"./conversation-input-sync-BvSb6a8F.js";import{c as De,L as Te,T as te,B as o,S as I,a as le,b as L,d as M,e as w,X as Ee,f as b,A as se,g as ae,h as ne}from"./error-boundary-DexrfAEk.js";import{f as H,h as Fe,u as _e,i as Pe,a as qe,b as ze,c as Le,O as Me,H as Ie,A as Ke}from"./use-download-agent-mutation-CgAZq5FK.js";import{S as Oe,a as Qe,A as Ue,b as Be,c as Re}from"./index-Wfo25fxR.js";import"./ui-preferences-store-DNhiasP6.js";import"./en-US-BcB1DWxG.js";import"./book-open-Cpx7b4xU.js";import"./console-mirror-BEedSAfE.js";/**
1
+ import{r as E,j as e,c as J}from"./index-B6YcJ0Ho.js";import{l as he,c as xe,u as ge,d as je,g as fe,i as pe,a as ye,b as ve,e as we}from"./use-memberships-query-BR0cFsRZ.js";import{aH as ie,u as K,aN as C,aO as O,ay as Y,aP as Q,aQ as re,aR as oe,aS as be,az as Ce,aT as Ne,aU as ee,ax as Ae,aV as ke,aW as Se}from"./conversation-input-sync-Y14Ako7z.js";import{c as De,L as Te,T as te,B as o,S as I,a as le,b as L,d as M,e as w,X as Ee,f as b,A as se,g as ae,h as ne}from"./error-boundary--zcbe2Cc.js";import{f as H,h as Fe,u as _e,i as Pe,a as qe,b as ze,c as Le,O as Me,H as Ie,A as Ke}from"./use-download-agent-mutation-D4vLY-y4.js";import{S as Oe,a as Qe,A as Ue,b as Be,c as Re}from"./index-D6RCVBdS.js";import"./ui-preferences-store-YV9uOjJv.js";import"./en-US-BcB1DWxG.js";import"./book-open-BrrVexy5.js";import"./console-mirror-DQtUJmwA.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{r as l,j as e,c as I}from"./index-CMRW4pU4.js";import{aR as qe,aN as pe,aT as _e,aH as be,aI as Ss,u as Cs,aO as Ps,bH as Rs,aP as As,a8 as te,bI as _s,aA as Ue,az as je,aX as He,bJ as ae,bK as Os,bh as Es,a as Is,bL as $s,a$ as Fs,bM as Ls}from"./conversation-input-sync-BvSb6a8F.js";import{P as Ms}from"./page-header-Ce0OVEd3.js";import{c as Ve,f as K,B as y,e as f,r as zs,A as G,g as X,h as Z,I as Qe,N as Ds,O as Bs,P as qs,Q as Us,s as Oe,t as Ee,u as Ie,v as $e,w as Fe}from"./error-boundary-DexrfAEk.js";import{e as Hs,f as Vs,p as Ye,P as We,h as Qs,j as Ys,k as Ke,b as Ws,m as Ks}from"./use-memberships-query-CVbNGH7n.js";import{h as V,O as Gs,A as Xs,f as Zs,H as Js,a as et,b as st,c as tt,d as Ge,C as at,e as nt,n as it,u as rt,i as lt}from"./use-download-agent-mutation-CgAZq5FK.js";import{c as ct,ar as ot,aq as dt,as as ut,at as mt}from"./index-Wfo25fxR.js";import{R as Xe}from"./radient-auth-buttons-D7TF55K4.js";import{o as Ze,u as ht,a as xt,b as gt}from"./org-surface-gate-ik1uMiLe.js";import{f as ft}from"./format-CZUObkkr.js";import"./ui-preferences-store-DNhiasP6.js";import"./en-US-BcB1DWxG.js";import"./book-open-Cpx7b4xU.js";import"./console-mirror-BEedSAfE.js";/**
1
+ import{r as l,j as e,c as I}from"./index-B6YcJ0Ho.js";import{aR as qe,aN as pe,aT as _e,aH as be,aI as Ss,u as Cs,aO as Ps,bH as Rs,aP as As,a8 as te,bI as _s,aA as Ue,az as je,aX as He,bJ as ae,bK as Os,bh as Es,a as Is,bL as $s,a$ as Fs,bM as Ls}from"./conversation-input-sync-Y14Ako7z.js";import{P as Ms}from"./page-header-Dd48wU3n.js";import{c as Ve,f as K,B as y,e as f,r as zs,A as G,g as X,h as Z,I as Qe,N as Ds,O as Bs,P as qs,Q as Us,s as Oe,t as Ee,u as Ie,v as $e,w as Fe}from"./error-boundary--zcbe2Cc.js";import{e as Hs,f as Vs,p as Ye,P as We,h as Qs,j as Ys,k as Ke,b as Ws,m as Ks}from"./use-memberships-query-BR0cFsRZ.js";import{h as V,O as Gs,A as Xs,f as Zs,H as Js,a as et,b as st,c as tt,d as Ge,C as at,e as nt,n as it,u as rt,i as lt}from"./use-download-agent-mutation-D4vLY-y4.js";import{c as ct,ar as ot,aq as dt,as as ut,at as mt}from"./index-D6RCVBdS.js";import{R as Xe}from"./radient-auth-buttons-DFvYWrW9.js";import{o as Ze,u as ht,a as xt,b as gt}from"./org-surface-gate-DVc7KY9Q.js";import{f as ft}from"./format-CZUObkkr.js";import"./ui-preferences-store-YV9uOjJv.js";import"./en-US-BcB1DWxG.js";import"./book-open-BrrVexy5.js";import"./console-mirror-DQtUJmwA.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.