local-operator-ui 0.34.13 → 0.34.15
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.
- package/out/main/index.js +269 -10
- package/out/preload/index.js +77 -1
- package/out/renderer/assets/{_basePickBy-CuMaQXnE.js → _basePickBy-BdAY_En9.js} +1 -1
- package/out/renderer/assets/{_baseUniq-DKeCGkCd.js → _baseUniq-zlilvpRB.js} +1 -1
- package/out/renderer/assets/{agent-details-page-DNymI5K7.js → agent-details-page-8Zq-DBj-.js} +1 -1
- package/out/renderer/assets/{agent-hub-page-Ckv_jCjf.js → agent-hub-page-EYHPosBE.js} +1 -1
- package/out/renderer/assets/{agents-page-CzWn74Vs.js → agents-page-Bjfh4YnZ.js} +3 -3
- package/out/renderer/assets/{arc-CnvhNTGl.js → arc-0mnfcplZ.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-D87FdX-H.js → architectureDiagram-IEHRJDOE-BpdfIZ0v.js} +1 -1
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-pWG0SYM0.js → blockDiagram-JOT3LUYC-DGmdEK7F.js} +1 -1
- package/out/renderer/assets/{book-open-Cpx7b4xU.js → book-open-BrrVexy5.js} +1 -1
- package/out/renderer/assets/browser-page-j7IRFrOa.js +1 -0
- package/out/renderer/assets/{browser-webauthn-prompt-D9pJNnAE.js → browser-webauthn-prompt-CMHBedPH.js} +1 -1
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-n9oZXPrb.js → c4Diagram-VJAJSXHY-BGW_fvNf.js} +1 -1
- package/out/renderer/assets/channel-DUymhm0h.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-DUVNV3px.js → chunk-4BMEZGHF-WEhDM8IC.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-D69ozLLm.js → chunk-A2AXSNBT-Df3riVm4.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-DojzsKw7.js → chunk-AEK57VVT-Cp-Qo_6E.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-CXPThrUO.js → chunk-D6G4REZN-C1bD0ZLA.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-Tpm4iz0-.js → chunk-RZ5BOZE2-D55H0bvp.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-CM94sy6v.js → chunk-XZIHB7SX-Cg-CW5Kj.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-CY6nKbE2.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-CY6nKbE2.js +1 -0
- package/out/renderer/assets/clone-Cuf2iPCM.js +1 -0
- package/out/renderer/assets/{console-mirror-BEedSAfE.js → console-mirror-DQtUJmwA.js} +1 -1
- package/out/renderer/assets/{consoleCapture-CJpzUlSd.js → consoleCapture-CRwR37DZ.js} +1 -1
- package/out/renderer/assets/{conversation-input-sync-BvSb6a8F.js → conversation-input-sync-BsZfAoQJ.js} +253 -243
- package/out/renderer/assets/{dagre-OKDRZEBW-CNxZp61j.js → dagre-OKDRZEBW-Bqpmh65i.js} +1 -1
- package/out/renderer/assets/{diagram-SSKATNLV-aLMzXyK5.js → diagram-SSKATNLV-DpT28e3S.js} +1 -1
- package/out/renderer/assets/{diagram-VNBRO52H-Bg2DhWCA.js → diagram-VNBRO52H-6j3O3lNE.js} +1 -1
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-j_TMas8g.js → erDiagram-Q7BY3M3F-CMUat1zK.js} +1 -1
- package/out/renderer/assets/{error-boundary-DexrfAEk.js → error-boundary--zcbe2Cc.js} +1 -1
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-DwfE01r0.js → flowDiagram-4HSFHLVR-5TUAQmyg.js} +1 -1
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-o_J5Q4qE.js → ganttDiagram-APWFNJXF-DbBlkyBd.js} +1 -1
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-8AYyb2q7.js → gitGraphDiagram-7IBYFJ6S-ChVWw3wQ.js} +1 -1
- package/out/renderer/assets/{graph-KSlxkPtr.js → graph-BnngAjL-.js} +1 -1
- package/out/renderer/assets/{index-CBio7uVX.js → index-CByKxEcR.js} +1 -1
- package/out/renderer/assets/{index-Bxh_DMkN.js → index-CNeygOmI.js} +1 -1
- package/out/renderer/assets/{index-Wfo25fxR.js → index-DbB7R-Wd.js} +183 -193
- package/out/renderer/assets/index-v9rBxA_L.css +1 -0
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-Dgx0WJ8T.js → infoDiagram-PH2N3AL5-CYV75EhZ.js} +1 -1
- package/out/renderer/assets/{installer-BDvScYgZ.js → installer-CtGo64L_.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-De_U2_fi.js → journeyDiagram-U35MCT3I-DQPIKX13.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-DUuYeORq.js → kanban-definition-NDS4AKOZ-D_0wUsVe.js} +1 -1
- package/out/renderer/assets/{layout-Y7ReWUo5.js → layout-BwLJ_peB.js} +1 -1
- package/out/renderer/assets/{legacy-agents-page-B9mXqb4D.js → legacy-agents-page-BYiBYXjc.js} +1 -1
- package/out/renderer/assets/{mermaid.core-DNS50-NS.js → mermaid.core-Dq7GrcJd.js} +5 -5
- package/out/renderer/assets/{mesh-page-fWdbRlK8.js → mesh-page-BKC7vWMC.js} +1 -1
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-D3_S2COi.js → mindmap-definition-ALO5MXBD-B7tTk3Bs.js} +1 -1
- package/out/renderer/assets/{mini-Co_TXCJ3.js → mini-CiSbVFaJ.js} +1 -1
- package/out/renderer/assets/{org-surface-gate-ik1uMiLe.js → org-surface-gate-BXf33iLj.js} +1 -1
- package/out/renderer/assets/{page-header-Ce0OVEd3.js → page-header-Dd48wU3n.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-C8yur6Ac.js → pieDiagram-IB7DONF6-Cq1918uU.js} +1 -1
- package/out/renderer/assets/{projects-page-XYebxBb4.js → projects-page-BICxIvNk.js} +1 -1
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-B04MajkG.js → quadrantDiagram-7GDLP6J5-NStdetD2.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-CLCEq4mP.js → radar-MK3ICKWK-CAhFPmsG.js} +1 -1
- package/out/renderer/assets/{radient-auth-buttons-D7TF55K4.js → radient-auth-buttons-CNSSWXTf.js} +1 -1
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-zeGik6Fv.js → requirementDiagram-KVF5MWMF-Cco7gnQM.js} +1 -1
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-BZmVH-PV.js → sankeyDiagram-QLVOVGJD-CxBkiHf3.js} +1 -1
- package/out/renderer/assets/{schedules-page-tkQ09Qzt.js → schedules-page-BKtDJHZF.js} +1 -1
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-UUGTprRZ.js → sequenceDiagram-X6HHIX6F-CpRAJ24S.js} +1 -1
- package/out/renderer/assets/{settings-page-kJ4v4696.js → settings-page-P8uCknDg.js} +1 -1
- package/out/renderer/assets/{settings-section-n-j-LSaI.js → settings-section-SGVEGH5Z.js} +1 -1
- package/out/renderer/assets/{stateDiagram-DGXRK772-DpuddJOQ.js → stateDiagram-DGXRK772-jS1Fp40x.js} +1 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-BOx6nsHb.js +1 -0
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-mHNW2fr3.js → timeline-definition-BDJGKUSR-CxclgHNv.js} +1 -1
- package/out/renderer/assets/{ui-preferences-store-DNhiasP6.js → ui-preferences-store-YV9uOjJv.js} +1 -1
- package/out/renderer/assets/{use-download-agent-mutation-CgAZq5FK.js → use-download-agent-mutation-qVB4-ObU.js} +1 -1
- package/out/renderer/assets/{use-memberships-query-CVbNGH7n.js → use-memberships-query-DquCtOqd.js} +1 -1
- package/out/renderer/assets/{use-session-snapshot-D3DsMux6.js → use-session-snapshot-Cd9lWEXB.js} +1 -1
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-D4S76BDC.js → xychartDiagram-VJFVF3MP-Unij9tIY.js} +1 -1
- package/out/renderer/console-capture.html +5 -5
- package/out/renderer/index.html +19 -9
- package/out/renderer/installer.html +4 -4
- package/out/renderer/mini.html +7 -7
- package/package.json +2 -2
- package/out/renderer/assets/browser-page-C90b-h7d.js +0 -1
- package/out/renderer/assets/channel-D7v5czrG.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-D8dzeJBj.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-D8dzeJBj.js +0 -1
- package/out/renderer/assets/clone-BY0fK-il.js +0 -1
- package/out/renderer/assets/index-BhJCtYke.css +0 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DBnjJOPU.js +0 -1
- /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_]*\}$/);
|
|
@@ -666,7 +668,22 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
666
668
|
op: zod.z.literal("sessions.history"),
|
|
667
669
|
sessionId,
|
|
668
670
|
beforeId: id$1.optional(),
|
|
669
|
-
limit: zod.z.number().int().min(1).max(500).optional()
|
|
671
|
+
limit: zod.z.number().int().min(1).max(500).optional(),
|
|
672
|
+
/*
|
|
673
|
+
* THE OPEN-FRAME NEGOTIATION (`docs/DESKTOP_API.md`, "The open frame").
|
|
674
|
+
* True means "this reader consumes `runs`, `runs_state` and `head_cut`, and
|
|
675
|
+
* accepts `limit` being counted in PAINTABLE rows" - the two halves are one
|
|
676
|
+
* statement, which is why the capability gates the flag rather than the
|
|
677
|
+
* caller's judgement: a page whose unit changed under a reader that does not
|
|
678
|
+
* read `runs` is the defect the capability exists to prevent. It is sent on
|
|
679
|
+
* EVERY history read this renderer makes while it is negotiated, because a
|
|
680
|
+
* page served one shape and paged in another is two page builders for one
|
|
681
|
+
* transcript.
|
|
682
|
+
*
|
|
683
|
+
* Optional and absent-by-default, so the wire for an older backend - and for
|
|
684
|
+
* every request this app made before the capability existed - is unchanged.
|
|
685
|
+
*/
|
|
686
|
+
openFrame: zod.z.boolean().optional()
|
|
670
687
|
}).strict(),
|
|
671
688
|
/*
|
|
672
689
|
* The transcript checkpoint rail's manifest (design D1/D9): every material
|
|
@@ -963,6 +980,54 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
963
980
|
* uuid is not prose, so this costs the control budget.
|
|
964
981
|
*/
|
|
965
982
|
zod.z.object({ op: zod.z.literal("sessions.interrupt"), sessionId, requestId }).strict(),
|
|
983
|
+
/*
|
|
984
|
+
* The supplement block's OWN control pair (turn-supplements memo §2.7, lane
|
|
985
|
+
* U-b): cancel the running job, steer it with an instruction, or retry a
|
|
986
|
+
* settled one.
|
|
987
|
+
*
|
|
988
|
+
* THE COMPANION CORE ROUTES. These three ops address
|
|
989
|
+
* ``POST /v1/desktop/sessions/{sid}/supplements/{job}/{cancel,steer,restart}``
|
|
990
|
+
* and map in core to ``AttachedSession.supplement_cancel/steer/restart``
|
|
991
|
+
* (``session/attached.py``), which already speak the runtime's own op
|
|
992
|
+
* vocabulary over the control socket — the same rung ``sessions.interrupt``
|
|
993
|
+
* reaches.
|
|
994
|
+
*
|
|
995
|
+
* THOSE ROUTES DO NOT EXIST YET, and that is verified rather than assumed:
|
|
996
|
+
* the desktop plane on core ``origin/main`` (05e4c971b1) serves only the
|
|
997
|
+
* document route and the events gate, the released runtime matches (UX round
|
|
998
|
+
* 1 measured the 404s live), and no other door is reachable from this app —
|
|
999
|
+
* the runtime control socket is a daemon↔runtime dial main has no path to,
|
|
1000
|
+
* and the relay's command route is cookie-gated for the phone surface. The
|
|
1001
|
+
* core half is a small paired PR (one route per op dispatching
|
|
1002
|
+
* ``bridge.remote.supplement_*``, the ``interrupt`` route's own shape); the
|
|
1003
|
+
* app half ships here so the pair is one core change from working. Until it
|
|
1004
|
+
* lands, a press answers 404 and the row composes THAT refusal through
|
|
1005
|
+
* ``backendLoadErrorMessage`` — the outdated-server sentence, never a raw
|
|
1006
|
+
* ``Not Found`` echoing out of the daemon (round-1 U2).
|
|
1007
|
+
*
|
|
1008
|
+
* ``job`` and ``anchor`` are the contract's own shapes (12 hex job id, the
|
|
1009
|
+
* answer's message id); ``text`` is the memo's ``supplement_steer`` bound
|
|
1010
|
+
* (≤ 500 chars, enforced again server-side).
|
|
1011
|
+
*/
|
|
1012
|
+
zod.z.object({
|
|
1013
|
+
op: zod.z.literal("supplements.cancel"),
|
|
1014
|
+
sessionId,
|
|
1015
|
+
job: supplementJob,
|
|
1016
|
+
anchor: supplementAnchor
|
|
1017
|
+
}).strict(),
|
|
1018
|
+
zod.z.object({
|
|
1019
|
+
op: zod.z.literal("supplements.restart"),
|
|
1020
|
+
sessionId,
|
|
1021
|
+
job: supplementJob,
|
|
1022
|
+
anchor: supplementAnchor
|
|
1023
|
+
}).strict(),
|
|
1024
|
+
zod.z.object({
|
|
1025
|
+
op: zod.z.literal("supplements.steer"),
|
|
1026
|
+
sessionId,
|
|
1027
|
+
job: supplementJob,
|
|
1028
|
+
anchor: supplementAnchor,
|
|
1029
|
+
text: zod.z.string().min(1).max(500)
|
|
1030
|
+
}).strict(),
|
|
966
1031
|
/*
|
|
967
1032
|
* A session's code memory: the names the session's own cells have left in its
|
|
968
1033
|
* eval namespace.
|
|
@@ -2791,6 +2856,7 @@ function desktopEndpoint(request) {
|
|
|
2791
2856
|
limit: String(request.limit ?? 100)
|
|
2792
2857
|
});
|
|
2793
2858
|
if (request.beforeId) query.set("before_id", request.beforeId);
|
|
2859
|
+
if (request.openFrame) query.set("open_frame", "1");
|
|
2794
2860
|
return {
|
|
2795
2861
|
path: `/v1/desktop/sessions/${request.sessionId}/history?${query}`,
|
|
2796
2862
|
method: "GET"
|
|
@@ -3000,6 +3066,24 @@ function desktopEndpoint(request) {
|
|
|
3000
3066
|
// runtime's abort receipt verbatim - see `DesktopInterruptReceipt`.
|
|
3001
3067
|
body: { request_id: request.requestId }
|
|
3002
3068
|
};
|
|
3069
|
+
case "supplements.cancel":
|
|
3070
|
+
return {
|
|
3071
|
+
path: `/v1/desktop/sessions/${request.sessionId}/supplements/${request.job}/cancel`,
|
|
3072
|
+
method: "POST",
|
|
3073
|
+
body: { anchor: request.anchor }
|
|
3074
|
+
};
|
|
3075
|
+
case "supplements.restart":
|
|
3076
|
+
return {
|
|
3077
|
+
path: `/v1/desktop/sessions/${request.sessionId}/supplements/${request.job}/restart`,
|
|
3078
|
+
method: "POST",
|
|
3079
|
+
body: { anchor: request.anchor }
|
|
3080
|
+
};
|
|
3081
|
+
case "supplements.steer":
|
|
3082
|
+
return {
|
|
3083
|
+
path: `/v1/desktop/sessions/${request.sessionId}/supplements/${request.job}/steer`,
|
|
3084
|
+
method: "POST",
|
|
3085
|
+
body: { anchor: request.anchor, text: request.text }
|
|
3086
|
+
};
|
|
3003
3087
|
case "sessions.variables.list":
|
|
3004
3088
|
return {
|
|
3005
3089
|
path: `/v1/desktop/sessions/${request.sessionId}/variables`,
|
|
@@ -7044,6 +7128,17 @@ const mediaRequestSchema = zod.z.discriminatedUnion("op", [
|
|
|
7044
7128
|
sessionId: zod.z.string().regex(/^[a-f0-9]{12}$/),
|
|
7045
7129
|
childId: zod.z.string().regex(/^[a-f0-9]{12}$/),
|
|
7046
7130
|
digest: zod.z.string().regex(/^[a-f0-9]{32}$/)
|
|
7131
|
+
}).strict(),
|
|
7132
|
+
// One supplement component's assembled HTML document (turn-supplements
|
|
7133
|
+
// memo §2.7), as `{ html }` JSON. Both identifiers are shape-constrained
|
|
7134
|
+
// here for the same reason the attachment ops' are: the path is built in
|
|
7135
|
+
// main, and an unvalidated digest would be renderer-controlled path text.
|
|
7136
|
+
// The digest regex is the contract's own (`DIGEST_PATTERN`,
|
|
7137
|
+
// `local_operator/supplements/contract.py`): 32 lowercase hex characters.
|
|
7138
|
+
zod.z.object({
|
|
7139
|
+
op: zod.z.literal("sessions.supplementDocument"),
|
|
7140
|
+
sessionId: zod.z.string().regex(/^[a-f0-9]{12}$/),
|
|
7141
|
+
digest: zod.z.string().regex(/^[a-f0-9]{32}$/)
|
|
7047
7142
|
}).strict()
|
|
7048
7143
|
]);
|
|
7049
7144
|
function endpoint(request) {
|
|
@@ -7068,6 +7163,11 @@ function endpoint(request) {
|
|
|
7068
7163
|
path: `/v1/desktop/sessions/${request.sessionId}/children/${request.childId}/attachments/${request.digest}`,
|
|
7069
7164
|
method: "GET"
|
|
7070
7165
|
};
|
|
7166
|
+
case "sessions.supplementDocument":
|
|
7167
|
+
return {
|
|
7168
|
+
path: `/v1/desktop/sessions/${request.sessionId}/supplements/${request.digest}/document`,
|
|
7169
|
+
method: "GET"
|
|
7170
|
+
};
|
|
7071
7171
|
}
|
|
7072
7172
|
}
|
|
7073
7173
|
async function requestDesktopMediaOutcome(input, bytes, backendUrl, token) {
|
|
@@ -7107,7 +7207,7 @@ async function requestDesktopMediaOutcome(input, bytes, backendUrl, token) {
|
|
|
7107
7207
|
const target2 = endpoint(request);
|
|
7108
7208
|
let body;
|
|
7109
7209
|
let contentType;
|
|
7110
|
-
if (request.op === "agent.export" || request.op === "sessions.attachment" || request.op === "subagents.attachment") {
|
|
7210
|
+
if (request.op === "agent.export" || request.op === "sessions.attachment" || request.op === "subagents.attachment" || request.op === "sessions.supplementDocument") {
|
|
7111
7211
|
body = void 0;
|
|
7112
7212
|
} else if (request.op === "speech.create" || request.op === "speech.agent") {
|
|
7113
7213
|
body = JSON.stringify(request.request);
|
|
@@ -7314,6 +7414,8 @@ class DesktopStreamRelay {
|
|
|
7314
7414
|
if (args.afterSeq !== void 0)
|
|
7315
7415
|
query.set("after_seq", String(args.afterSeq));
|
|
7316
7416
|
query.set("frontend_replace", "1");
|
|
7417
|
+
if (args.openFrame === true) query.set("open_frame", "1");
|
|
7418
|
+
query.set("supplements", "1");
|
|
7317
7419
|
const suffix = query.size > 0 ? `?${query}` : "";
|
|
7318
7420
|
const url = new URL(
|
|
7319
7421
|
`/v1/desktop/sessions/${args.sessionId}/events${suffix}`,
|
|
@@ -26357,7 +26459,7 @@ function isAdmittedSender(event, admitted) {
|
|
|
26357
26459
|
(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
26460
|
);
|
|
26359
26461
|
}
|
|
26360
|
-
function registerDesktopIPC(window, expectedUrl, request, streams, media, notifier, noteLeftSession, onKeymapSettingEdited, additionalWindows) {
|
|
26462
|
+
function registerDesktopIPC(window, expectedUrl, request, streams, media, notifier, noteLeftSession, onKeymapSettingEdited, additionalWindows, supplementMounts2) {
|
|
26361
26463
|
const opened = /* @__PURE__ */ new Map();
|
|
26362
26464
|
function authorize(event) {
|
|
26363
26465
|
const admitted = [
|
|
@@ -26383,6 +26485,12 @@ function registerDesktopIPC(window, expectedUrl, request, streams, media, notifi
|
|
|
26383
26485
|
}
|
|
26384
26486
|
return outcome;
|
|
26385
26487
|
});
|
|
26488
|
+
if (supplementMounts2) {
|
|
26489
|
+
electron.ipcMain.handle("desktop-supplement-frame-arm", (event, url) => {
|
|
26490
|
+
authorize(event);
|
|
26491
|
+
return { ok: supplementMounts2.arm(url) };
|
|
26492
|
+
});
|
|
26493
|
+
}
|
|
26386
26494
|
electron.ipcMain.handle("desktop-close-window", (event) => {
|
|
26387
26495
|
authorize(event);
|
|
26388
26496
|
const owner = window();
|
|
@@ -26454,7 +26562,7 @@ function registerDesktopIPC(window, expectedUrl, request, streams, media, notifi
|
|
|
26454
26562
|
electron.ipcMain.handle("desktop-stream-subscribe", (event, args) => {
|
|
26455
26563
|
authorize(event);
|
|
26456
26564
|
const input = args;
|
|
26457
|
-
if (typeof input?.sessionId !== "string" || input.epoch !== void 0 && typeof input.epoch !== "string" || input.afterSeq !== void 0 && typeof input.afterSeq !== "number") {
|
|
26565
|
+
if (typeof input?.sessionId !== "string" || input.epoch !== void 0 && typeof input.epoch !== "string" || input.afterSeq !== void 0 && typeof input.afterSeq !== "number" || input.openFrame !== void 0 && typeof input.openFrame !== "boolean") {
|
|
26458
26566
|
throw new Error("Invalid stream subscription.");
|
|
26459
26567
|
}
|
|
26460
26568
|
const sender = event.sender;
|
|
@@ -26463,7 +26571,8 @@ function registerDesktopIPC(window, expectedUrl, request, streams, media, notifi
|
|
|
26463
26571
|
{
|
|
26464
26572
|
sessionId: input.sessionId,
|
|
26465
26573
|
epoch: input.epoch,
|
|
26466
|
-
afterSeq: input.afterSeq
|
|
26574
|
+
afterSeq: input.afterSeq,
|
|
26575
|
+
openFrame: input.openFrame
|
|
26467
26576
|
},
|
|
26468
26577
|
(frame) => {
|
|
26469
26578
|
if (sender.isDestroyed()) {
|
|
@@ -35700,6 +35809,127 @@ function createRelaunchPending(options = {}) {
|
|
|
35700
35809
|
}
|
|
35701
35810
|
};
|
|
35702
35811
|
}
|
|
35812
|
+
const SUPPLEMENT_SCHEME = "lo-supplement";
|
|
35813
|
+
const SUPPLEMENT_HOST = "s";
|
|
35814
|
+
const SESSION_ID_RE = /^[a-f0-9]{12}$/;
|
|
35815
|
+
const DIGEST_RE = /^[a-f0-9]{32}$/;
|
|
35816
|
+
function supplementMountUrl(sessionId2, digest) {
|
|
35817
|
+
return `${SUPPLEMENT_SCHEME}://${SUPPLEMENT_HOST}/${sessionId2}/${digest}`;
|
|
35818
|
+
}
|
|
35819
|
+
function parseSupplementMountUrl(raw) {
|
|
35820
|
+
if (typeof raw !== "string") return null;
|
|
35821
|
+
let url;
|
|
35822
|
+
try {
|
|
35823
|
+
url = new URL(raw);
|
|
35824
|
+
} catch {
|
|
35825
|
+
return null;
|
|
35826
|
+
}
|
|
35827
|
+
if (url.protocol !== `${SUPPLEMENT_SCHEME}:`) return null;
|
|
35828
|
+
if (url.hostname !== SUPPLEMENT_HOST) return null;
|
|
35829
|
+
if (url.username !== "" || url.password !== "") return null;
|
|
35830
|
+
if (url.port !== "") return null;
|
|
35831
|
+
if (url.search !== "" || url.hash !== "") return null;
|
|
35832
|
+
const segments = url.pathname.split("/");
|
|
35833
|
+
if (segments.length !== 3 || segments[0] !== "") return null;
|
|
35834
|
+
const sessionId2 = segments[1];
|
|
35835
|
+
const digest = segments[2];
|
|
35836
|
+
if (!SESSION_ID_RE.test(sessionId2) || !DIGEST_RE.test(digest)) return null;
|
|
35837
|
+
if (raw !== supplementMountUrl(sessionId2, digest)) return null;
|
|
35838
|
+
return { sessionId: sessionId2, digest };
|
|
35839
|
+
}
|
|
35840
|
+
const MAX_MOUNT_URL_CHARS = 512 * 1024;
|
|
35841
|
+
const MAX_ARMED_MOUNTS = 64;
|
|
35842
|
+
function isArmableMountUrl(raw) {
|
|
35843
|
+
if (typeof raw !== "string") return false;
|
|
35844
|
+
if (raw.length > MAX_MOUNT_URL_CHARS) return false;
|
|
35845
|
+
return parseSupplementMountUrl(raw) !== null;
|
|
35846
|
+
}
|
|
35847
|
+
class SupplementFrameMounts {
|
|
35848
|
+
armed = [];
|
|
35849
|
+
/**
|
|
35850
|
+
* Arm one mount URL. Returns whether it was accepted, so the caller (an IPC
|
|
35851
|
+
* handler, where a branch is free) can answer `{ ok: false }` instead of
|
|
35852
|
+
* letting a bad URL disappear into a list nobody inspects.
|
|
35853
|
+
*
|
|
35854
|
+
* IDEMPOTENT for a byte-identical URL that still stands unconsumed: React's
|
|
35855
|
+
* development StrictMode runs every effect setup twice (the first setup is
|
|
35856
|
+
* discarded before it assigns `src`), and a plain push left one unconsumed
|
|
35857
|
+
* permit standing per mount in development (round-1 R4). The double-arm now
|
|
35858
|
+
* collapses onto one permit — which the single real navigation then consumes
|
|
35859
|
+
* — instead of leaking one. This is deliberately the ONLY fix for that path:
|
|
35860
|
+
* a `release` op was rejected because the wire cannot order it against the
|
|
35861
|
+
* live mount's navigation (see the header's path (b) note).
|
|
35862
|
+
*
|
|
35863
|
+
* THE ONLY WRITER, and it is called from the arm channel: the IPC handler
|
|
35864
|
+
* checks the sender is the app's main frame before arming anything.
|
|
35865
|
+
*/
|
|
35866
|
+
arm(raw) {
|
|
35867
|
+
if (!isArmableMountUrl(raw)) return false;
|
|
35868
|
+
if (this.armed.includes(raw)) return true;
|
|
35869
|
+
this.armed.push(raw);
|
|
35870
|
+
while (this.armed.length > MAX_ARMED_MOUNTS) this.armed.shift();
|
|
35871
|
+
return true;
|
|
35872
|
+
}
|
|
35873
|
+
/**
|
|
35874
|
+
* Whether a child-frame navigation may proceed under a permit, consuming
|
|
35875
|
+
* the permit when it does. Byte-for-byte equality — never a prefix, a
|
|
35876
|
+
* fragment match or a scheme test — so the pass is exactly the navigation
|
|
35877
|
+
* the host itself armed.
|
|
35878
|
+
*/
|
|
35879
|
+
consume(url) {
|
|
35880
|
+
const at = this.armed.indexOf(url);
|
|
35881
|
+
if (at < 0) return false;
|
|
35882
|
+
this.armed.splice(at, 1);
|
|
35883
|
+
return true;
|
|
35884
|
+
}
|
|
35885
|
+
/** How many permits stand unconsumed, for the node suite's assertions. */
|
|
35886
|
+
get armedCount() {
|
|
35887
|
+
return this.armed.length;
|
|
35888
|
+
}
|
|
35889
|
+
}
|
|
35890
|
+
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'";
|
|
35891
|
+
function registerSupplementScheme() {
|
|
35892
|
+
electron.protocol.registerSchemesAsPrivileged([
|
|
35893
|
+
{
|
|
35894
|
+
scheme: SUPPLEMENT_SCHEME,
|
|
35895
|
+
privileges: {
|
|
35896
|
+
standard: true,
|
|
35897
|
+
secure: false,
|
|
35898
|
+
corsEnabled: false,
|
|
35899
|
+
bypassCSP: false
|
|
35900
|
+
}
|
|
35901
|
+
}
|
|
35902
|
+
]);
|
|
35903
|
+
}
|
|
35904
|
+
function installSupplementProtocol(fetchDocument, log2) {
|
|
35905
|
+
electron.protocol.handle(SUPPLEMENT_SCHEME, async (request) => {
|
|
35906
|
+
const parsed = parseSupplementMountUrl(request.url);
|
|
35907
|
+
if (parsed === null) {
|
|
35908
|
+
return new Response("", { status: 400 });
|
|
35909
|
+
}
|
|
35910
|
+
let document;
|
|
35911
|
+
try {
|
|
35912
|
+
document = await fetchDocument(parsed.sessionId, parsed.digest);
|
|
35913
|
+
} catch {
|
|
35914
|
+
log2(
|
|
35915
|
+
`[supplement-protocol] document relay threw for ${parsed.sessionId}/${parsed.digest.slice(0, 8)}…`
|
|
35916
|
+
);
|
|
35917
|
+
return new Response("", { status: 502 });
|
|
35918
|
+
}
|
|
35919
|
+
if (document.html === null) {
|
|
35920
|
+
return new Response("", { status: 404 });
|
|
35921
|
+
}
|
|
35922
|
+
return new Response(document.html, {
|
|
35923
|
+
status: 200,
|
|
35924
|
+
headers: {
|
|
35925
|
+
"content-type": "text/html; charset=utf-8",
|
|
35926
|
+
"content-security-policy": SUPPLEMENT_DOCUMENT_CSP,
|
|
35927
|
+
"x-content-type-options": "nosniff",
|
|
35928
|
+
"cache-control": "no-store"
|
|
35929
|
+
}
|
|
35930
|
+
});
|
|
35931
|
+
});
|
|
35932
|
+
}
|
|
35703
35933
|
function titlebarOptions(platform, chrome) {
|
|
35704
35934
|
if (platform === "darwin") {
|
|
35705
35935
|
return { titleBarStyle: "hidden" };
|
|
@@ -43628,10 +43858,15 @@ function installNavigationVerdict(contents, decide, log2) {
|
|
|
43628
43858
|
contents.on("will-frame-navigate", onNavigation);
|
|
43629
43859
|
contents.on("will-redirect", onNavigation);
|
|
43630
43860
|
}
|
|
43631
|
-
function guardNavigation(contents, trustedUrls, log2) {
|
|
43861
|
+
function guardNavigation(contents, trustedUrls, log2, supplementMounts2) {
|
|
43632
43862
|
installNavigationVerdict(
|
|
43633
43863
|
contents,
|
|
43634
|
-
(url, isMainFrame) =>
|
|
43864
|
+
(url, isMainFrame) => {
|
|
43865
|
+
if (!isMainFrame && supplementMounts2?.consume(url)) {
|
|
43866
|
+
return { allowed: true };
|
|
43867
|
+
}
|
|
43868
|
+
return frameNavigationVerdict({ url, isMainFrame }, trustedUrls());
|
|
43869
|
+
},
|
|
43635
43870
|
log2
|
|
43636
43871
|
);
|
|
43637
43872
|
}
|
|
@@ -44183,7 +44418,8 @@ function createWindow(initialSession = null, openCatalogue = false, request = ow
|
|
|
44183
44418
|
guardNavigation(
|
|
44184
44419
|
mainWindow2.webContents,
|
|
44185
44420
|
trustedRendererDocuments,
|
|
44186
|
-
(m) => logger.warn(m, LogFileType.BACKEND)
|
|
44421
|
+
(m) => logger.warn(m, LogFileType.BACKEND),
|
|
44422
|
+
supplementMounts
|
|
44187
44423
|
);
|
|
44188
44424
|
guardWindowOpen(
|
|
44189
44425
|
mainWindow2.webContents,
|
|
@@ -44257,6 +44493,8 @@ const telemetryWebPreferences = {
|
|
|
44257
44493
|
additionalArguments: [telemetryArgument(telemetryLaunch.enabled)]
|
|
44258
44494
|
};
|
|
44259
44495
|
let mainWindow = null;
|
|
44496
|
+
const supplementMounts = new SupplementFrameMounts();
|
|
44497
|
+
registerSupplementScheme();
|
|
44260
44498
|
let miniView = null;
|
|
44261
44499
|
let miniViewRegistrar = null;
|
|
44262
44500
|
let quickSendWatcher = null;
|
|
@@ -44733,7 +44971,8 @@ electron.app.whenReady().then(async () => {
|
|
|
44733
44971
|
guardNavigation(
|
|
44734
44972
|
quickSend.window.webContents,
|
|
44735
44973
|
trustedRendererDocuments,
|
|
44736
|
-
(m) => logger.warn(m, LogFileType.BACKEND)
|
|
44974
|
+
(m) => logger.warn(m, LogFileType.BACKEND),
|
|
44975
|
+
supplementMounts
|
|
44737
44976
|
);
|
|
44738
44977
|
guardWindowOpen(
|
|
44739
44978
|
quickSend.window.webContents,
|
|
@@ -44816,6 +45055,20 @@ electron.app.whenReady().then(async () => {
|
|
|
44816
45055
|
reason: `window mode ${windowLaunch.mode} registers no global shortcuts`
|
|
44817
45056
|
};
|
|
44818
45057
|
});
|
|
45058
|
+
installSupplementProtocol(
|
|
45059
|
+
async (sessionId2, digest) => {
|
|
45060
|
+
const response = await backendService.requestDesktopMedia(
|
|
45061
|
+
{ op: "sessions.supplementDocument", sessionId: sessionId2, digest },
|
|
45062
|
+
null
|
|
45063
|
+
);
|
|
45064
|
+
if (response.kind !== "json") return { html: null };
|
|
45065
|
+
const body = response.body;
|
|
45066
|
+
return {
|
|
45067
|
+
html: body && typeof body.html === "string" ? body.html : null
|
|
45068
|
+
};
|
|
45069
|
+
},
|
|
45070
|
+
(m) => logger.warn(m, LogFileType.BACKEND)
|
|
45071
|
+
);
|
|
44819
45072
|
registerDesktopIPC(
|
|
44820
45073
|
() => mainWindow,
|
|
44821
45074
|
rendererUrl,
|
|
@@ -44851,7 +45104,13 @@ electron.app.whenReady().then(async () => {
|
|
|
44851
45104
|
* `before-quit` disposes it, which is the same lifecycle the
|
|
44852
45105
|
* registration follows.
|
|
44853
45106
|
*/
|
|
44854
|
-
() => miniView === null ? [] : [{ window: miniView.window, url: miniViewUrlFor(rendererUrl) }]
|
|
45107
|
+
() => miniView === null ? [] : [{ window: miniView.window, url: miniViewUrlFor(rendererUrl) }],
|
|
45108
|
+
/*
|
|
45109
|
+
* The supplement-frame mount permits (turn-supplements memo §4.1), the
|
|
45110
|
+
* same instance `createWindow` gave the navigation guard: the arm channel
|
|
45111
|
+
* and the guard are two halves of one decision and must share one list.
|
|
45112
|
+
*/
|
|
45113
|
+
supplementMounts
|
|
44855
45114
|
);
|
|
44856
45115
|
if (devDriverArming.armed && devDriverArming.outDir) {
|
|
44857
45116
|
registerDevDriverIPC({
|
package/out/preload/index.js
CHANGED
|
@@ -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_]*\}$/);
|
|
@@ -691,7 +693,22 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
691
693
|
op: zod.z.literal("sessions.history"),
|
|
692
694
|
sessionId,
|
|
693
695
|
beforeId: id.optional(),
|
|
694
|
-
limit: zod.z.number().int().min(1).max(500).optional()
|
|
696
|
+
limit: zod.z.number().int().min(1).max(500).optional(),
|
|
697
|
+
/*
|
|
698
|
+
* THE OPEN-FRAME NEGOTIATION (`docs/DESKTOP_API.md`, "The open frame").
|
|
699
|
+
* True means "this reader consumes `runs`, `runs_state` and `head_cut`, and
|
|
700
|
+
* accepts `limit` being counted in PAINTABLE rows" - the two halves are one
|
|
701
|
+
* statement, which is why the capability gates the flag rather than the
|
|
702
|
+
* caller's judgement: a page whose unit changed under a reader that does not
|
|
703
|
+
* read `runs` is the defect the capability exists to prevent. It is sent on
|
|
704
|
+
* EVERY history read this renderer makes while it is negotiated, because a
|
|
705
|
+
* page served one shape and paged in another is two page builders for one
|
|
706
|
+
* transcript.
|
|
707
|
+
*
|
|
708
|
+
* Optional and absent-by-default, so the wire for an older backend - and for
|
|
709
|
+
* every request this app made before the capability existed - is unchanged.
|
|
710
|
+
*/
|
|
711
|
+
openFrame: zod.z.boolean().optional()
|
|
695
712
|
}).strict(),
|
|
696
713
|
/*
|
|
697
714
|
* The transcript checkpoint rail's manifest (design D1/D9): every material
|
|
@@ -988,6 +1005,54 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
988
1005
|
* uuid is not prose, so this costs the control budget.
|
|
989
1006
|
*/
|
|
990
1007
|
zod.z.object({ op: zod.z.literal("sessions.interrupt"), sessionId, requestId }).strict(),
|
|
1008
|
+
/*
|
|
1009
|
+
* The supplement block's OWN control pair (turn-supplements memo §2.7, lane
|
|
1010
|
+
* U-b): cancel the running job, steer it with an instruction, or retry a
|
|
1011
|
+
* settled one.
|
|
1012
|
+
*
|
|
1013
|
+
* THE COMPANION CORE ROUTES. These three ops address
|
|
1014
|
+
* ``POST /v1/desktop/sessions/{sid}/supplements/{job}/{cancel,steer,restart}``
|
|
1015
|
+
* and map in core to ``AttachedSession.supplement_cancel/steer/restart``
|
|
1016
|
+
* (``session/attached.py``), which already speak the runtime's own op
|
|
1017
|
+
* vocabulary over the control socket — the same rung ``sessions.interrupt``
|
|
1018
|
+
* reaches.
|
|
1019
|
+
*
|
|
1020
|
+
* THOSE ROUTES DO NOT EXIST YET, and that is verified rather than assumed:
|
|
1021
|
+
* the desktop plane on core ``origin/main`` (05e4c971b1) serves only the
|
|
1022
|
+
* document route and the events gate, the released runtime matches (UX round
|
|
1023
|
+
* 1 measured the 404s live), and no other door is reachable from this app —
|
|
1024
|
+
* the runtime control socket is a daemon↔runtime dial main has no path to,
|
|
1025
|
+
* and the relay's command route is cookie-gated for the phone surface. The
|
|
1026
|
+
* core half is a small paired PR (one route per op dispatching
|
|
1027
|
+
* ``bridge.remote.supplement_*``, the ``interrupt`` route's own shape); the
|
|
1028
|
+
* app half ships here so the pair is one core change from working. Until it
|
|
1029
|
+
* lands, a press answers 404 and the row composes THAT refusal through
|
|
1030
|
+
* ``backendLoadErrorMessage`` — the outdated-server sentence, never a raw
|
|
1031
|
+
* ``Not Found`` echoing out of the daemon (round-1 U2).
|
|
1032
|
+
*
|
|
1033
|
+
* ``job`` and ``anchor`` are the contract's own shapes (12 hex job id, the
|
|
1034
|
+
* answer's message id); ``text`` is the memo's ``supplement_steer`` bound
|
|
1035
|
+
* (≤ 500 chars, enforced again server-side).
|
|
1036
|
+
*/
|
|
1037
|
+
zod.z.object({
|
|
1038
|
+
op: zod.z.literal("supplements.cancel"),
|
|
1039
|
+
sessionId,
|
|
1040
|
+
job: supplementJob,
|
|
1041
|
+
anchor: supplementAnchor
|
|
1042
|
+
}).strict(),
|
|
1043
|
+
zod.z.object({
|
|
1044
|
+
op: zod.z.literal("supplements.restart"),
|
|
1045
|
+
sessionId,
|
|
1046
|
+
job: supplementJob,
|
|
1047
|
+
anchor: supplementAnchor
|
|
1048
|
+
}).strict(),
|
|
1049
|
+
zod.z.object({
|
|
1050
|
+
op: zod.z.literal("supplements.steer"),
|
|
1051
|
+
sessionId,
|
|
1052
|
+
job: supplementJob,
|
|
1053
|
+
anchor: supplementAnchor,
|
|
1054
|
+
text: zod.z.string().min(1).max(500)
|
|
1055
|
+
}).strict(),
|
|
991
1056
|
/*
|
|
992
1057
|
* A session's code memory: the names the session's own cells have left in its
|
|
993
1058
|
* eval namespace.
|
|
@@ -2466,6 +2531,17 @@ const api = {
|
|
|
2466
2531
|
request: (request) => electron.ipcRenderer.invoke("desktop-request", request),
|
|
2467
2532
|
openAuthorization: (operationId, reopen = false) => electron.ipcRenderer.invoke("desktop-open-authorization", operationId, reopen),
|
|
2468
2533
|
media: (request, bytes) => electron.ipcRenderer.invoke("desktop-media", request, bytes),
|
|
2534
|
+
/**
|
|
2535
|
+
* Arm one supplement-frame mount (turn-supplements memo §4.1): the EXACT
|
|
2536
|
+
* `data:` URL the renderer is about to set as `src`, sent immediately
|
|
2537
|
+
* before the frame mounts. Main's navigation guard consumes the permit for
|
|
2538
|
+
* that one child-frame navigation and denies every later one; the answer's
|
|
2539
|
+
* `ok` is false for a URL main refuses to hold (not a `data:text/html`
|
|
2540
|
+
* mount). Electron only - browser development and Storybook have no
|
|
2541
|
+
* channel, and the mount path must not require one (`armSupplementFrame` is
|
|
2542
|
+
* optional on `DesktopAPI`).
|
|
2543
|
+
*/
|
|
2544
|
+
armSupplementFrame: (url) => electron.ipcRenderer.invoke("desktop-supplement-frame-arm", url),
|
|
2469
2545
|
watchHeartbeat: (args) => electron.ipcRenderer.invoke("desktop-watch-heartbeat", args),
|
|
2470
2546
|
/**
|
|
2471
2547
|
* 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-
|
|
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-zlilvpRB.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-Dq7GrcJd.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ℜ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-Dq7GrcJd.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ℜ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};
|
package/out/renderer/assets/{agent-details-page-DNymI5K7.js → agent-details-page-8Zq-DBj-.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as E,j as e,c as J}from"./index-
|
|
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-DquCtOqd.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-BsZfAoQJ.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-qVB4-ObU.js";import{S as Oe,a as Qe,A as Ue,b as Be,c as Re}from"./index-DbB7R-Wd.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-
|
|
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-BsZfAoQJ.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-DquCtOqd.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-qVB4-ObU.js";import{c as ct,ar as ot,aq as dt,as as ut,at as mt}from"./index-DbB7R-Wd.js";import{R as Xe}from"./radient-auth-buttons-CNSSWXTf.js";import{o as Ze,u as ht,a as xt,b as gt}from"./org-surface-gate-BXf33iLj.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.
|