local-operator-ui 0.28.5 → 0.29.1
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 +99 -27
- package/out/renderer/assets/{_basePickBy-DFO3ycpM.js → _basePickBy-BydJ9gPn.js} +1 -1
- package/out/renderer/assets/{_baseUniq-Cn2IMukQ.js → _baseUniq-BDr5gwdw.js} +1 -1
- package/out/renderer/assets/{agent-details-page-kXzOGCFC.js → agent-details-page-DzuXjh7y.js} +1 -1
- package/out/renderer/assets/agent-hub-page-C4DQzZUK.js +6 -0
- package/out/renderer/assets/agents-page-BNG7sv4M.js +2 -0
- package/out/renderer/assets/arc-Ts5EMYgx.js +1 -0
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-CkOCpusv.js → architectureDiagram-IEHRJDOE-BAzlZ3P9.js} +1 -1
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-56xQkw9h.js → blockDiagram-JOT3LUYC-DwF0jv-B.js} +1 -1
- package/out/renderer/assets/browser-page-C2cytRLR.js +1 -0
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-CMSd2UTj.js → c4Diagram-VJAJSXHY-QrHSDv8I.js} +1 -1
- package/out/renderer/assets/channel-BAGpTB5A.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-Br3AYC6f.js → chunk-4BMEZGHF-BjNHi0kM.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-DMoO8JtW.js → chunk-A2AXSNBT-DxLxkNtl.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-lXmgC932.js → chunk-AEK57VVT-C9g2i51Q.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-u70dwYxi.js → chunk-D6G4REZN-DoSuJfra.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-BIV79Je7.js → chunk-RZ5BOZE2-Bi2qxsMe.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-CoZjn9a-.js → chunk-XZIHB7SX-sURP5cay.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-COd_us28.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-COd_us28.js +1 -0
- package/out/renderer/assets/clone-awNOoFm7.js +1 -0
- package/out/renderer/assets/{compact-pagination-Bpe0E_u_.js → compact-pagination-ohz3hihb.js} +1 -1
- package/out/renderer/assets/{dagre-OKDRZEBW-DrwVmJ9O.js → dagre-OKDRZEBW-ByoyCyPA.js} +1 -1
- package/out/renderer/assets/{diagram-SSKATNLV-CfOOD2ny.js → diagram-SSKATNLV-mZiujngq.js} +1 -1
- package/out/renderer/assets/{diagram-VNBRO52H-B9N73O7W.js → diagram-VNBRO52H-D0zTyi6M.js} +1 -1
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-KOy5QH4q.js → erDiagram-Q7BY3M3F-B5TcZz4R.js} +1 -1
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-DFnoaoQs.js → flowDiagram-4HSFHLVR-DBTPif6c.js} +1 -1
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-BTxttNAl.js → ganttDiagram-APWFNJXF-DYbmXVph.js} +1 -1
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-taOiX-P2.js → gitGraphDiagram-7IBYFJ6S-DPj0BkeE.js} +1 -1
- package/out/renderer/assets/{graph-BkxVJV5Y.js → graph-DT3vvKWN.js} +1 -1
- package/out/renderer/assets/{icon-dNp1enls.js → icon-02RQhVJ6.js} +35 -35
- package/out/renderer/assets/icon-Y8w93nKk.css +1 -0
- package/out/renderer/assets/index-BkOD7HrG.js +7 -0
- package/out/renderer/assets/{index-DwT9X3KB.js → index-CVKAjzjY.js} +390 -390
- package/out/renderer/assets/{index-CQaghAk5.js → index-CcZE1DSW.js} +1 -1
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-ByF2UGPz.js → infoDiagram-PH2N3AL5-CsR8b0O1.js} +1 -1
- package/out/renderer/assets/{installer-DYX8Gp6Q.js → installer-DbeF2a73.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-BuW1VhPI.js → journeyDiagram-U35MCT3I-CDUogXFs.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-LAnv48fm.js → kanban-definition-NDS4AKOZ-CXBuFpQO.js} +1 -1
- package/out/renderer/assets/{layout-CriHQKjk.js → layout-DFc6uQ1h.js} +1 -1
- package/out/renderer/assets/{legacy-agents-page-CSRePCTp.js → legacy-agents-page-DJqe2gmd.js} +10 -10
- package/out/renderer/assets/{mermaid.core-BPDn3eSm.js → mermaid.core-788Hb5C_.js} +5 -5
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-DVPeZTtM.js → mindmap-definition-ALO5MXBD-DV20YLHP.js} +1 -1
- package/out/renderer/assets/{page-header-BEVLGhES.js → page-header-hdhRg_jg.js} +1 -1
- package/out/renderer/assets/{parseISO-BVUAkPhp.js → parseISO-A4KRXmC2.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-Bcodv_XZ.js → pieDiagram-IB7DONF6--ODHtlRV.js} +1 -1
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-CGdeEE8a.js → quadrantDiagram-7GDLP6J5-BeBjHOIC.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-CTiHSbPX.js → radar-MK3ICKWK-DhIaA0my.js} +1 -1
- package/out/renderer/assets/{radient-auth-buttons-uLrsJMmK.js → radient-auth-buttons-QryFNXsQ.js} +2 -2
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-DfPUaF84.js → requirementDiagram-KVF5MWMF-DSjsP086.js} +1 -1
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-DltFotRb.js → sankeyDiagram-QLVOVGJD-BWYpjOje.js} +1 -1
- package/out/renderer/assets/{schedules-page-CzzZ9Y3N.js → schedules-page-BTcUAg3f.js} +2 -2
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-DIO_hPTS.js → sequenceDiagram-X6HHIX6F-BkW8SZ0l.js} +1 -1
- package/out/renderer/assets/{settings-page-gPcxAKI7.js → settings-page-o3rhI1O_.js} +8 -8
- package/out/renderer/assets/{stateDiagram-DGXRK772-Dac5Bkw7.js → stateDiagram-DGXRK772-CQX1zc72.js} +1 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-sC3k5tGT.js +1 -0
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-l8fBbxEc.js → timeline-definition-BDJGKUSR-DEJuFYsn.js} +1 -1
- package/out/renderer/assets/{use-agent-like-mutation-eUtuctGb.js → use-agent-like-mutation-Cge3KSLs.js} +1 -1
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-CsDaGRNr.js → xychartDiagram-VJFVF3MP-QzzQROdv.js} +3 -3
- package/out/renderer/index.html +3 -3
- package/out/renderer/installer.html +3 -3
- package/package.json +1 -1
- package/out/renderer/assets/agent-hub-page-Cye8MgKR.js +0 -6
- package/out/renderer/assets/agents-page-1CYgoquY.js +0 -2
- package/out/renderer/assets/arc-BJ3kbEF-.js +0 -1
- package/out/renderer/assets/browser-page-C0YEgqHR.js +0 -1
- package/out/renderer/assets/channel-DLcdsUHJ.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-DFEYFC2H.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-DFEYFC2H.js +0 -1
- package/out/renderer/assets/clone-f0dxCGb2.js +0 -1
- package/out/renderer/assets/icon-Ba9HGo1c.css +0 -1
- package/out/renderer/assets/index-rOzO2CyI.js +0 -7
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-BwM7bmf7.js +0 -1
package/out/main/index.js
CHANGED
|
@@ -4426,6 +4426,19 @@ function transportFailureDetail(error) {
|
|
|
4426
4426
|
const SILENCE_TIMEOUT_MS = 45e3;
|
|
4427
4427
|
const WATCHDOG_TICK_MS = 1e3;
|
|
4428
4428
|
const MAX_FRAME_BYTES$1 = 8 * 1024 * 1024;
|
|
4429
|
+
const LINE_ENDING = /\r\n|\n|\r/;
|
|
4430
|
+
const BLANK_LINE = /(?:\r\n|\n|\r)(?:\r\n|\n|\r)/;
|
|
4431
|
+
function nextRecord(buffer) {
|
|
4432
|
+
const blank = BLANK_LINE.exec(buffer);
|
|
4433
|
+
if (blank === null) return null;
|
|
4434
|
+
const data = [];
|
|
4435
|
+
for (const line of buffer.slice(0, blank.index).split(LINE_ENDING)) {
|
|
4436
|
+
if (!line.startsWith("data:")) continue;
|
|
4437
|
+
const value = line.slice(5);
|
|
4438
|
+
data.push(value.startsWith(" ") ? value.slice(1) : value);
|
|
4439
|
+
}
|
|
4440
|
+
return { data, rest: buffer.slice(blank.index + blank[0].length) };
|
|
4441
|
+
}
|
|
4429
4442
|
class DesktopStreamRelay {
|
|
4430
4443
|
constructor(backendUrl, token, timings = {}) {
|
|
4431
4444
|
this.backendUrl = backendUrl;
|
|
@@ -4534,8 +4547,8 @@ class DesktopStreamRelay {
|
|
|
4534
4547
|
lastActivity = Date.now();
|
|
4535
4548
|
buffer += decoder.decode(value, { stream: true });
|
|
4536
4549
|
for (; ; ) {
|
|
4537
|
-
const
|
|
4538
|
-
if (
|
|
4550
|
+
const record = nextRecord(buffer);
|
|
4551
|
+
if (record === null) {
|
|
4539
4552
|
if (buffer.length > MAX_FRAME_BYTES$1) {
|
|
4540
4553
|
emit({
|
|
4541
4554
|
streamId,
|
|
@@ -4547,15 +4560,11 @@ class DesktopStreamRelay {
|
|
|
4547
4560
|
}
|
|
4548
4561
|
break;
|
|
4549
4562
|
}
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
this.observer?.(sessionId2, data);
|
|
4556
|
-
emit({ streamId, kind: "data", data });
|
|
4557
|
-
}
|
|
4558
|
-
}
|
|
4563
|
+
buffer = record.rest;
|
|
4564
|
+
if (record.data.length === 0) continue;
|
|
4565
|
+
const data = record.data.join("\n");
|
|
4566
|
+
this.observer?.(sessionId2, data);
|
|
4567
|
+
emit({ streamId, kind: "data", data });
|
|
4559
4568
|
}
|
|
4560
4569
|
}
|
|
4561
4570
|
} finally {
|
|
@@ -4701,6 +4710,14 @@ function deadlineExceeded(error) {
|
|
|
4701
4710
|
const name = error?.name;
|
|
4702
4711
|
return name === "TimeoutError" || name === "AbortError";
|
|
4703
4712
|
}
|
|
4713
|
+
const ADMITTED_PATH_PREFIX = "/v1/desktop/";
|
|
4714
|
+
function desktopAnswerProvesPairing(input, response) {
|
|
4715
|
+
const parsed = desktopRequestSchema.safeParse(input);
|
|
4716
|
+
if (!parsed.success) return false;
|
|
4717
|
+
if (!desktopEndpoint(parsed.data).path.startsWith(ADMITTED_PATH_PREFIX))
|
|
4718
|
+
return false;
|
|
4719
|
+
return response.status >= 200 && response.status < 300;
|
|
4720
|
+
}
|
|
4704
4721
|
function trustedDesktopFrame(actual, expected) {
|
|
4705
4722
|
try {
|
|
4706
4723
|
const current = new URL(actual);
|
|
@@ -5141,6 +5158,15 @@ class DaemonStateMachine {
|
|
|
5141
5158
|
}
|
|
5142
5159
|
this.detail = observation.detail;
|
|
5143
5160
|
break;
|
|
5161
|
+
case "contradicted":
|
|
5162
|
+
this.failures += 1;
|
|
5163
|
+
if (this.failures >= DEGRADED_AFTER_FAILURES) {
|
|
5164
|
+
this.enterDetached(observation.detail, true);
|
|
5165
|
+
} else {
|
|
5166
|
+
this.state = "degraded";
|
|
5167
|
+
this.detail = `${observation.detail} (probe ${this.failures} of ${DEGRADED_AFTER_FAILURES}).`;
|
|
5168
|
+
}
|
|
5169
|
+
break;
|
|
5144
5170
|
case "failed":
|
|
5145
5171
|
this.failures += 1;
|
|
5146
5172
|
if (this.failures >= DEGRADED_AFTER_FAILURES) {
|
|
@@ -5201,7 +5227,42 @@ class DaemonStateMachine {
|
|
|
5201
5227
|
this.detail = `${detail} (no answer to probe ${this.unanswered} of ${UNANSWERED_BEFORE_DETACHED})`;
|
|
5202
5228
|
}
|
|
5203
5229
|
/**
|
|
5204
|
-
* Record that a
|
|
5230
|
+
* Record that a request of this app's was ANSWERED by the attached daemon.
|
|
5231
|
+
*
|
|
5232
|
+
* Liveness evidence and NOTHING ELSE. An answer says a process read the request
|
|
5233
|
+
* and wrote a status line - which is exactly what a probe that ran out of its
|
|
5234
|
+
* 2 s budget failed to establish - and a refusal is an answer. What a refusal
|
|
5235
|
+
* does not say is that this app is still PAIRED with the process that
|
|
5236
|
+
* answered: a `401`, a `403` and a shut plane's `503` are what an app holding
|
|
5237
|
+
* the wrong credential collects from a daemon that was replaced underneath it,
|
|
5238
|
+
* and one of them arrives every few seconds on a machine whose renderer is
|
|
5239
|
+
* re-asking capabilities and whose presence heartbeat is running. Counting
|
|
5240
|
+
* those as a successful attachment cleared the identity-failure count on every
|
|
5241
|
+
* pass, held the state at `attached` for a pid that was gone, and left the app
|
|
5242
|
+
* unable to reach the re-discovery that would have re-paired it (2026-09-18;
|
|
5243
|
+
* see the module docstring).
|
|
5244
|
+
*
|
|
5245
|
+
* So this stamps the two facts a refusal DOES establish - the transport is
|
|
5246
|
+
* alive, and no probe budget is outstanding - and leaves the state alone. A
|
|
5247
|
+
* caller holding proof that the plane admitted the request calls
|
|
5248
|
+
* {@link recordTransportSuccess} instead.
|
|
5249
|
+
*/
|
|
5250
|
+
recordTransportAnswer() {
|
|
5251
|
+
this.lastTransportAt = this.now();
|
|
5252
|
+
this.unanswered = 0;
|
|
5253
|
+
this.updatedAt = this.now();
|
|
5254
|
+
}
|
|
5255
|
+
/**
|
|
5256
|
+
* Record that a real request against the attached daemon was ADMITTED.
|
|
5257
|
+
*
|
|
5258
|
+
* "Admitted" is the caller's judgement and the distinction this method exists
|
|
5259
|
+
* for: the daemon let the request through to a route that depends on this
|
|
5260
|
+
* app's desktop credential, so the pairing is proven to still hold. Every
|
|
5261
|
+
* answer below that bar - a refused socket, a `401`/`403`, a shut plane's
|
|
5262
|
+
* `503`, and the capability op the plane deliberately serves WITHOUT admitting
|
|
5263
|
+
* anyone - is {@link recordTransportAnswer} instead, liveness only, because
|
|
5264
|
+
* treating one of them as an admission is how a replaced daemon's refusals
|
|
5265
|
+
* kept an unpaired app looking attached.
|
|
5205
5266
|
*
|
|
5206
5267
|
* WHY this is the state machine's business and not a caller's: the probe and
|
|
5207
5268
|
* the transport disagree regularly on a box running long turns - the probe
|
|
@@ -6586,7 +6647,8 @@ class BackendServiceManager {
|
|
|
6586
6647
|
this.backendUrl,
|
|
6587
6648
|
this.desktopToken
|
|
6588
6649
|
).then(({ response, answered }) => {
|
|
6589
|
-
if (answered)
|
|
6650
|
+
if (answered)
|
|
6651
|
+
this.noteTransportAnswer(desktopAnswerProvesPairing(input, response));
|
|
6590
6652
|
return response;
|
|
6591
6653
|
});
|
|
6592
6654
|
}
|
|
@@ -6597,7 +6659,7 @@ class BackendServiceManager {
|
|
|
6597
6659
|
this.backendUrl,
|
|
6598
6660
|
this.desktopToken
|
|
6599
6661
|
).then(({ response, answered }) => {
|
|
6600
|
-
if (answered) this.
|
|
6662
|
+
if (answered) this.daemonState.recordTransportAnswer();
|
|
6601
6663
|
return response;
|
|
6602
6664
|
});
|
|
6603
6665
|
}
|
|
@@ -6612,19 +6674,29 @@ class BackendServiceManager {
|
|
|
6612
6674
|
* `degraded` - which is not a state `checkBackendHealth` recovers from, so a
|
|
6613
6675
|
* genuinely gone daemon could never be reported as gone.
|
|
6614
6676
|
*
|
|
6615
|
-
*
|
|
6616
|
-
*
|
|
6617
|
-
*
|
|
6618
|
-
*
|
|
6619
|
-
*
|
|
6620
|
-
*
|
|
6621
|
-
*
|
|
6622
|
-
*
|
|
6677
|
+
* `admitted` is the second, narrower question and the two are deliberately
|
|
6678
|
+
* separate calls rather than one boolean: an answer of ANY status is liveness
|
|
6679
|
+
* evidence (a `401`, a `403` or a `503` is a process that read the request and
|
|
6680
|
+
* wrote a status line, which is exactly what a probe that ran out of its 2 s
|
|
6681
|
+
* budget failed to establish - without that, one long agent turn was enough to
|
|
6682
|
+
* detach the connection and disable every read the daemon was still answering),
|
|
6683
|
+
* while only an answer the plane ADMITTED proves the pairing still holds.
|
|
6684
|
+
* Collapsing the two is the defect this split fixes, measured 2026-09-18: a
|
|
6685
|
+
* replaced daemon's refusals - plus the capability poll the renderer runs every
|
|
6686
|
+
* 15 s while the plane is shut, which the plane serves without admitting
|
|
6687
|
+
* anyone - each cleared the identity-failure count, so the app never detached,
|
|
6688
|
+
* never re-discovered and never re-claimed, and reported "not paired with the
|
|
6689
|
+
* running Local Operator server" until it was restarted (see
|
|
6690
|
+
* `daemon-status.ts`'s `recordTransportAnswer`/`recordTransportSuccess`).
|
|
6623
6691
|
*
|
|
6624
6692
|
* Only a state that actually moves pushes a snapshot: this runs on every
|
|
6625
6693
|
* desktop call, and one IPC wake-up per request would be worse than the bug.
|
|
6626
6694
|
*/
|
|
6627
|
-
noteTransportAnswer() {
|
|
6695
|
+
noteTransportAnswer(admitted) {
|
|
6696
|
+
if (!admitted) {
|
|
6697
|
+
this.daemonState.recordTransportAnswer();
|
|
6698
|
+
return;
|
|
6699
|
+
}
|
|
6628
6700
|
if (this.daemonState.recordTransportSuccess()) this.notifyStatus();
|
|
6629
6701
|
}
|
|
6630
6702
|
isAppClosing = false;
|
|
@@ -8107,17 +8179,17 @@ class BackendServiceManager {
|
|
|
8107
8179
|
switch (probe.outcome) {
|
|
8108
8180
|
case "identified":
|
|
8109
8181
|
return probe.identity.pid === this.daemonState.snapshot().pid ? { kind: "identified" } : {
|
|
8110
|
-
kind: "
|
|
8182
|
+
kind: "contradicted",
|
|
8111
8183
|
detail: "The answering daemon's PID no longer matches the attachment."
|
|
8112
8184
|
};
|
|
8113
8185
|
case "identity-mismatch":
|
|
8114
8186
|
return {
|
|
8115
|
-
kind: "
|
|
8187
|
+
kind: "contradicted",
|
|
8116
8188
|
detail: `Another process is answering at ${this.backendUrl} (${probe.detail})`
|
|
8117
8189
|
};
|
|
8118
8190
|
case "not-a-daemon":
|
|
8119
8191
|
return {
|
|
8120
|
-
kind: "
|
|
8192
|
+
kind: "contradicted",
|
|
8121
8193
|
detail: `${this.backendUrl} answered but is not a Local Operator daemon (${probe.detail})`
|
|
8122
8194
|
};
|
|
8123
8195
|
case "unreachable":
|
|
@@ -8254,7 +8326,7 @@ class BackendServiceManager {
|
|
|
8254
8326
|
if (after.state !== before.state || after.detail !== before.detail) {
|
|
8255
8327
|
this.notifyStatus();
|
|
8256
8328
|
}
|
|
8257
|
-
if (!processGone) return;
|
|
8329
|
+
if (!processGone && observation.kind !== "contradicted") return;
|
|
8258
8330
|
}
|
|
8259
8331
|
if (this.process && this.process.exitCode === null && this.process.signalCode == null)
|
|
8260
8332
|
return;
|
|
@@ -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-BDr5gwdw.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-788Hb5C_.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-BPDn3eSm.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-788Hb5C_.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-kXzOGCFC.js → agent-details-page-DzuXjh7y.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as le,r as S,j as e,L as ce,T as G,B as l,S as L,l as te,m as q,n as _,h as p,X as de,o as w,A as J,i as V,k as X,c as Z}from"./icon-
|
|
1
|
+
import{a as le,r as S,j as e,L as ce,T as G,B as l,S as L,l as te,m as q,n as _,h as p,X as de,o as w,A as J,i as V,k as X,c as Z}from"./icon-02RQhVJ6.js";import{g as ae,au as ue,f as z,a4 as b,a6 as M,av as R,aw as I,ax as me,ay as he,az as xe,aA as ge,aB as O,aC as je,aD as se,aE as fe,h as ne,aF as ye,aG as ve,u as pe,al as we,at as be,aH as Ce,B as Ne,aI as Ae,aJ as ke,aK as De,an as Se,aL as Ee,aM as ee,aN as Te,aO as Fe,aP as Pe}from"./index-CVKAjzjY.js";import{b as qe,i as _e,u as Le,a as ze}from"./use-agent-like-mutation-Cge3KSLs.js";/**
|
|
2
2
|
* @license lucide-react v0.507.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{a as ce,r,j as e,c as L,I as de,b as H,d as K,e as Y,f as $,g as B,B as k,h as c,A as ue,i as he,k as ge}from"./icon-02RQhVJ6.js";import{a4 as G,al as me,am as xe,an as fe,ao as be,ap as Z,r as pe,aq as ve,h as je,ar as Ne,as as we,at as ye}from"./index-CVKAjzjY.js";import{C as Se}from"./compact-pagination-ohz3hihb.js";import{P as Ce}from"./page-header-hdhRg_jg.js";import{u as ke,a as Ae,b as Re,i as Ee}from"./use-agent-like-mutation-Cge3KSLs.js";/**
|
|
2
|
+
* @license lucide-react v0.507.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const Pe=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M7 12h.01",key:"eqddd0"}]],Te=ce("circle-ellipsis",Pe),_e=({agent:s,status:n,viewerStateKnown:o=!0})=>{const{isAuthenticated:a}=G(),[i,l]=r.useState(null),g=n?.liked??!1,v=n?.favourited??!1,m=ke(),u=Ae(),f=me(),j=()=>{!a||m.isPending||(l(null),m.mutate({agentId:s.id,isCurrentlyLiked:g},{onError:()=>l("like")}))},N=()=>{!a||u.isPending||(l(null),u.mutate({agentId:s.id,isCurrentlyFavourited:v},{onError:()=>l("favourite")}))},w=()=>{f.isPending||(l(null),f.mutate({agentId:s.id,agentName:s.name},{onError:()=>l("download")}))},b=i?i==="like"?{action:"like",error:m.error,retry:j}:i==="favourite"?{action:"favourite",error:u.error,retry:N}:{action:"download",error:f.error,retry:w}:null;return e.jsx(xe,{agent:s,isLiked:a&&g,isFavourited:a&&v,onLikeToggle:j,onFavouriteToggle:N,onDownload:w,isLikeActionLoading:m.isPending,isFavouriteActionLoading:u.isPending,isDownloading:f.isPending,viewerStateKnown:o,actionError:b?fe(b.action,b.error,s.name):null,onRetryAction:b?.retry})},U=({selected:s,onClick:n,children:o,...a})=>e.jsx("button",{type:"button",onClick:n,"aria-pressed":s,className:L("flex w-full cursor-pointer items-center gap-2.5 rounded-sm px-3 py-1.5 text-left","text-body-sm transition-colors duration-fast ease-out-quart",s?pe:"text-ink hover:bg-row-hover"),...a,children:o}),Q=Object.keys(ve),Fe=s=>[...s].sort((n,o)=>{const a=Q.indexOf(n),i=Q.indexOf(o);return a!==-1&&i!==-1?a-i:a!==-1?-1:i!==-1?1:n.localeCompare(o)}),Me=({selectedCategory:s,onSelectCategory:n,categories:o})=>{const a=Fe(s&&!o.includes(s)?[...o,s]:o);return e.jsxs("div",{className:"flex h-full flex-col overflow-y-auto",children:[e.jsx("h2",{className:"mb-2 px-3 font-medium text-ink-dim text-meta",children:"Categories"}),e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsxs(U,{selected:s===null,onClick:()=>n(null),"data-testid":"category-all",children:[e.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:e.jsx(be,{size:16,"aria-hidden":"true"})}),"All categories"]}),a.map(i=>{const l=Z(i),g=i==="other"?e.jsx(Te,{size:16}):l.icon;return e.jsxs(U,{selected:s===i,onClick:()=>n(i),"data-testid":`category-${i}`,children:[e.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:g}),l.label]},i)})]})]})},Le=(s,n)=>{const[o,a]=r.useState(s);return r.useEffect(()=>{const i=setTimeout(()=>a(s),n);return()=>clearTimeout(i)},[s,n]),o},A=[{value:"download_count:desc",label:"Most downloaded",sort:"download_count",order:"desc"},{value:"like_count:desc",label:"Most liked",sort:"like_count",order:"desc"},{value:"favourite_count:desc",label:"Most favourited",sort:"favourite_count",order:"desc"},{value:"created_at:desc",label:"Newest",sort:"created_at",order:"desc"},{value:"updated_at:desc",label:"Recently updated",sort:"updated_at",order:"desc"},{value:"name:asc",label:"Name (A to Z)",sort:"name",order:"asc"}],Ie=[{value:"name",label:"Name"},{value:"description",label:"Description"}],Oe=300,De=()=>e.jsxs("div",{className:"flex h-full flex-col overflow-hidden rounded-lg border border-hairline bg-surface",children:[e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-2 p-4",children:[e.jsx(c,{className:"h-5.5 w-2/3"}),e.jsx(c,{className:"h-3.5 w-full"}),e.jsx(c,{className:"h-3.5 w-full"}),e.jsx(c,{className:"h-3.5 w-1/2"}),e.jsxs("div",{className:"mt-auto flex flex-col gap-2 pt-2",children:[e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(c,{className:"h-5.5 w-24"}),e.jsx(c,{className:"h-5.5 w-20"})]}),e.jsx("div",{className:"flex items-center gap-1.5",children:e.jsx(c,{className:"h-5.5 w-24"})})]}),e.jsx(c,{className:"h-4.5 w-32"})]})]}),e.jsxs("div",{className:"flex items-center gap-2 border-t border-hairline px-3 py-2",children:[e.jsx(c,{className:"size-4"}),e.jsx(c,{className:"h-4 w-6"}),e.jsx(c,{className:"size-4"}),e.jsx(c,{className:"h-4 w-6"}),e.jsx(c,{className:"ml-auto h-7 w-16"})]})]}),Ye=()=>{const s=je(),{isAuthenticated:n}=G(),[o,a]=r.useState(1),[i]=r.useState(12),[l,g]=r.useState(null),[v,m]=r.useState(""),[u,f]=r.useState("name"),[j,N]=r.useState(A[0].value),[w,b]=r.useState([]),R=Le(v,Oe),I=A.find(t=>t.value===j)??A[0],{data:y,agents:J,isLoading:W,isFetching:p,error:x,refetch:X,pagination:h}=Ne({page:o,perPage:i,categories:l?[l]:void 0,name:u==="name"&&R||void 0,description:u==="description"&&R||void 0,sort:I.sort,order:I.order}),S=J??[],O=p&&y!==void 0,{statuses:D,isKnown:ee,isError:te,isFetching:E,refetch:se}=Re({agentIds:S.map(t=>t.id)}),P=r.useRef(null),T=r.useRef(null),[z,ae]=r.useState(0);r.useEffect(()=>{z!==0&&(P.current??T.current)?.focus()},[z]);const V=r.useRef(null),_=r.useRef(!1),F=r.useMemo(()=>[...new Set((y?.records??[]).flatMap(t=>t.categories??[]))],[y]);r.useEffect(()=>{b(t=>F.every(M=>t.includes(M))?t:[...new Set([...t,...F])])},[F]);const C=l!==null||R!=="",ne=()=>{g(null),m(""),a(1),ae(t=>t+1)},d=(W||p)&&y===void 0,q=!d&&!C&&(x!==null||S.length===0);r.useEffect(()=>{!_.current||d||(_.current=!1,x?V.current?.focus():(P.current??T.current)?.focus())},[d,x]);const re=t=>{a(t)},ie=t=>{g(t),a(1)},le=t=>{m(t),a(1)},oe=t=>{f(t),a(1)};return e.jsxs("div",{className:"flex h-full flex-col gap-8 p-6",children:[e.jsx(Ce,{title:"Agent hub",subtitle:"Discover and download community agents on Radient",icon:we}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-row overflow-hidden",children:[e.jsx("div",{className:"mr-6 hidden w-60 shrink-0 md:block","data-tour-tag":"agent-hub-sidebar-container",children:!q&&e.jsx(Me,{selectedCategory:l,onSelectCategory:ie,categories:w})}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col overflow-y-auto",children:[!q&&e.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:L("flex min-w-56 flex-1 items-center rounded-sm border border-control bg-surface","transition-colors duration-fast ease-out-quart","has-[:focus-visible]:outline-solid has-[:focus-visible]:outline-2","has-[:focus-visible]:outline-accent has-[:focus-visible]:outline-offset-2"),children:[e.jsx(de,{ref:P,type:"search",value:v,onChange:t=>le(t.target.value),placeholder:"Search agents","aria-label":"Search agents",className:"h-8 min-w-0 flex-1 border-0 bg-transparent outline-none","data-testid":"agent-hub-search"}),e.jsxs(H,{value:u,onValueChange:oe,children:[e.jsx(K,{className:"w-auto shrink-0 border-y-0 border-l border-hairline border-r-0 bg-transparent pl-2 outline-none","aria-label":"Search in","data-testid":"agent-hub-search-scope",children:e.jsx(Y,{})}),e.jsx($,{children:Ie.map(t=>e.jsx(B,{value:t.value,children:t.label},t.value))})]})]}),e.jsxs(H,{value:j,onValueChange:N,children:[e.jsx(K,{className:"w-48","aria-label":"Sort agents","data-testid":"agent-hub-sort",children:e.jsx(Y,{})}),e.jsx($,{children:A.map(t=>e.jsx(B,{value:t.value,children:t.label},t.value))})]})]}),e.jsxs("p",{"aria-live":"polite",className:"mb-3 text-meta text-ink-dim","data-testid":"agent-hub-status",children:[d?"Loading agents…":h?`${h.totalRecords} ${h.totalRecords===1?"agent":"agents"}`:"",O?e.jsx(e.Fragment,{children:" Updating…"}):null]}),n&&te&&e.jsxs("output",{className:"mb-3 flex flex-wrap items-center gap-2 text-meta text-warning","data-testid":"agent-hub-status-unknown",children:[e.jsx("span",{children:"Your likes and favourites could not be read, so no card shows a viewer state."}),e.jsx(k,{variant:"ghost",size:"sm",onClick:()=>void se(),disabled:E,"aria-busy":E,children:E?"Trying…":"Try again"})]}),d&&e.jsx("div",{"data-testid":"agent-hub-loading",className:"grid grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6",children:Array.from({length:6},(t,M)=>e.jsx(De,{},M))}),d&&h===void 0&&e.jsx("div",{"aria-hidden":"true",className:"mt-6 flex min-h-13 items-center justify-center","data-testid":"agent-hub-pager-placeholder",children:e.jsx(c,{className:"h-4 w-24"})}),e.jsx("output",{"aria-live":"polite","data-testid":"agent-hub-outage",className:L(!d&&x?"block":"sr-only"),children:!d&&x&&e.jsxs(ue,{variant:"danger",className:"max-w-2xl","aria-busy":p,"data-testid":"agent-hub-error",children:[e.jsx(he,{children:n?"The hub could not be loaded":"Sign in to use the hub"}),e.jsx(ge,{children:n?ye("The agent list could not be loaded.",x):"You are not signed in to Radient, so the hub has no credential to read the agent list with. Sign in on the settings page, then try again."}),e.jsx("div",{className:"mt-2",children:e.jsx(k,{ref:V,variant:"outline",size:"sm",onClick:()=>{_.current=!0,X()},disabled:p,"aria-busy":p,children:p?"Trying…":"Try again"})})]})}),!d&&!x&&e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6","aria-busy":O,children:S.length===0?e.jsxs("div",{"data-testid":"agent-hub-empty",className:"col-span-full w-full max-w-2xl justify-self-center flex flex-col items-center gap-2 rounded-lg border border-hairline bg-surface px-6 py-10 text-center",children:[e.jsx("p",{className:"text-heading text-ink",children:l?`No agents in ${Z(l).label}.`:C?"No agents match that search.":"The hub is empty."}),e.jsx("p",{className:"max-w-md text-body-sm text-ink-muted",children:l?"Nothing in this category yet. Clear the filter to see the whole hub.":C?"No agent's name or description carries that. Clear it to see the whole hub.":"Nobody has published an agent yet. Yours could be the first."}),e.jsx("div",{className:"mt-2 flex flex-wrap items-center justify-center gap-2",children:C?e.jsx(k,{variant:"secondary",onClick:ne,children:l?"Clear filter":"Clear search"}):e.jsx(k,{ref:T,variant:"secondary",onClick:()=>s("/agents"),children:"Publish an agent"})})]}):S.map(t=>e.jsx(_e,{agent:t,status:n?D[t.id]:void 0,viewerStateKnown:n&&Ee(ee,D,t.id)},t.id))}),!d&&h&&h.totalPages>1&&e.jsx("div",{className:"mt-6 flex justify-center",children:e.jsx(Se,{count:h.totalPages,page:h.page,onChange:re})})]})]})]})};export{Ye as AgentHubPage};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./legacy-agents-page-DJqe2gmd.js","./icon-02RQhVJ6.js","./icon-Y8w93nKk.css","./page-header-hdhRg_jg.js","./index-CVKAjzjY.js","./index-D_SlEnpm.css","./radient-auth-buttons-QryFNXsQ.js","./compact-pagination-ohz3hihb.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{u as O,a as Q,b as J,d as V,c as W,e as G,f as H,g as X,B as Y,U as Z,P as ee,r as te,_ as ae,h as $,i as z,j as U}from"./index-CVKAjzjY.js";import{j as e,r as n,B as u,c as P}from"./icon-02RQhVJ6.js";const se=n.lazy(()=>ae(()=>import("./legacy-agents-page-DJqe2gmd.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url).then(t=>({default:t.LegacyAgentsPage}))),d="w-full rounded-md border border-control bg-surface px-3 py-2 text-body-sm text-ink";function T({profile:t,creating:v,onSaved:g}){const[r,k]=n.useState(!1),[o,m]=n.useState(v),[p,b]=n.useState(t?.name??""),[x,C]=n.useState(t?.kind??"role"),[h,y]=n.useState(t?.description??""),[j,S]=n.useState(t?.instructions??""),[_,D]=n.useState(t?.tools?.join(", ")??""),[I,N]=n.useState(t?.effort??"inherit"),[R,L]=n.useState(t?.delegate??!1),[f,a]=n.useState(!1),[c,l]=n.useState(null),i=n.useRef(null),w=$(),E=v||r,K=async s=>{if(s.preventDefault(),f)return;const M={kind:x,description:h,instructions:j,tools:_.split(",").map(q=>q.trim()).filter(Boolean),effort:I,delegate:R},A=JSON.stringify({name:p,fields:M,fresh:E});if(i.current&&i.current.body!==A){l("The previous save has not been confirmed. Retry it unchanged or reload the profile to reconcile before editing again.");return}i.current??={id:crypto.randomUUID(),body:A},a(!0),l(null);try{const q=await U({op:E?"profiles.create":"profiles.update",requestId:i.current.id,name:p,fields:M});i.current=null,m(!1),g(q.name)}catch(q){l(q instanceof Error?q.message:"Profile could not be saved.")}finally{a(!1)}},F=async()=>{if(!(!t||f)){a(!0),l(null);try{const s=await U({op:"profiles.install",name:t.name,requestId:crypto.randomUUID()});m(!1),k(!1),i.current=null,b(s.name),C(s.kind),y(s.description??""),S(s.instructions??""),D(s.tools?.join(", ")??""),N(s.effort??"inherit"),L(s.delegate??!1),g(s.name)}catch(s){l(s instanceof Error?s.message:"Profile could not be installed.")}finally{a(!1)}}};return e.jsxs("div",{className:"max-w-3xl space-y-6",children:[e.jsxs("header",{children:[e.jsx("h1",{className:"text-title",children:E?r?"Extend agent":"Create agent":t?.name}),e.jsx("p",{className:"mt-2 text-body-sm text-ink-muted",children:"Reusable instructions shared by agent commands, subagents and teams. Chats remain separate."})]}),t&&!E&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("span",{className:"text-meta text-ink-muted",children:[t.source==="builtin"?"Built-in":t.source==="installed"?"Installed":"Custom",t.divergent_fields?.length?" · Modified":""," ·"," ",t.kind]}),t.source==="builtin"?e.jsx(u,{variant:"outline",onClick:F,disabled:f,children:"Install"}):e.jsx(u,{variant:"outline",onClick:()=>m(!0),children:"Edit"}),e.jsx(u,{variant:"outline",onClick:()=>{k(!0),m(!0),b(""),i.current=null},children:"Extend"}),e.jsx(u,{onClick:()=>{z.getState().stageDraft({kind:"agent",name:t.name}),w("/chat")},children:"New chat"})]}),c&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:c}),!o&&t?.source==="builtin"&&e.jsx("p",{id:"builtin-readonly",className:"text-body-sm text-ink-muted",children:"Built-in agents are read-only. Install this one to edit it, or Extend it to start a separate agent from its instructions."}),e.jsxs("form",{onSubmit:K,className:"space-y-4",children:[e.jsxs("fieldset",{disabled:!o||f,className:"space-y-4",children:[e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{className:d,value:p,disabled:!E,required:!0,"aria-describedby":t?.source==="builtin"?"builtin-readonly":void 0,onChange:s=>b(s.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Kind"}),e.jsxs("select",{className:d,value:x,disabled:!E,onChange:s=>C(s.target.value),children:[e.jsx("option",{value:"role",children:"Role"}),e.jsx("option",{value:"specialist",children:"Specialist"})]})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"When to use this agent"}),e.jsx("input",{className:d,value:h,maxLength:8e3,onChange:s=>y(s.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Instructions"}),e.jsx("textarea",{className:P(d,"min-h-52"),value:j,required:!0,maxLength:8e3,onChange:s=>S(s.target.value)})]}),x==="role"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Allowed tools"}),e.jsx("input",{className:d,value:_,onChange:s=>D(s.target.value),placeholder:"All tools when empty; otherwise comma-separated names"})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Effort tier"}),e.jsx("input",{className:d,value:I,onChange:s=>N(s.target.value),"aria-describedby":"effort-help"}),e.jsx("span",{id:"effort-help",className:"text-meta text-ink-muted",children:"Use inherit, or a tier configured in backend settings. Unsupported tiers are rejected before saving."})]}),e.jsxs("label",{className:"flex items-center gap-2 text-body-sm",children:[e.jsx("input",{type:"checkbox",checked:R,onChange:s=>L(s.target.checked)}),"May delegate to subagents"]})]})]}),o&&e.jsx(u,{type:"submit",disabled:f,children:f?"Saving…":E?"Create agent":"Save changes"})]}),!o&&t?.packaged_instructions&&t.divergent_fields?.length?e.jsxs("details",{className:"text-body-sm",children:[e.jsx("summary",{children:"Compare packaged instructions"}),e.jsx("pre",{className:"mt-2 whitespace-pre-wrap text-body-sm text-ink-muted",children:t.packaged_instructions})]}):null]})}function B({team:t,onSaved:v}){const[g,r]=n.useState(t?.name??""),[k,o]=n.useState(t?.description??""),[m,p]=n.useState(t?.manager??"manager"),[b,x]=n.useState((t?.members??[]).map(a=>({...a,key:crypto.randomUUID()}))),[C,h]=n.useState(t?.instructions??""),[y,j]=n.useState(t?.project??""),[S,_]=n.useState(!1),[D,I]=n.useState(null),N=n.useRef(null),R=$(),L=async a=>{if(a.preventDefault(),S)return;const c={name:g,description:k,manager:m,members:b.map(({key:i,...w})=>w),instructions:C,project:y},l=JSON.stringify(c);if(N.current&&N.current.body!==l){I("The previous save has not been confirmed. Reload the team before changing that request.");return}N.current??={id:crypto.randomUUID(),body:l},_(!0),I(null);try{const i=t?await U({op:"teams.update",name:t.name,requestId:N.current.id,fields:c}):await U({op:"teams.create",requestId:N.current.id,fields:c});N.current=null,v(i.name)}catch(i){I(i instanceof Error?i.message:"Team could not be saved.")}finally{_(!1)}},f=(a,c)=>x(l=>l.map((i,w)=>w===a?{...i,...c}:i));return e.jsxs("div",{className:"max-w-3xl space-y-6",children:[e.jsxs("header",{children:[e.jsx("h1",{className:"text-title",children:t?t.name:"Create team"}),e.jsx("p",{className:"mt-2 text-body-sm text-ink-muted",children:"The manager leads the chat. Members retain their own instructions and start only when delegated work."})]}),t&&e.jsx(u,{onClick:()=>{z.getState().stageDraft({kind:"team",name:t.name}),R("/chat")},children:"New team chat"}),D&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:D}),e.jsxs("form",{onSubmit:L,className:"space-y-4",children:[e.jsxs("fieldset",{disabled:S,className:"space-y-4",children:[e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{className:d,required:!0,maxLength:64,value:g,onChange:a=>r(a.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Description"}),e.jsx("input",{className:d,value:k,onChange:a=>o(a.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Manager agent"}),e.jsx("input",{className:d,required:!0,value:m,onChange:a=>p(a.target.value)})]}),e.jsxs("section",{className:"space-y-2",children:[e.jsx("h2",{className:"text-heading",children:"Members"}),b.map((a,c)=>e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("input",{className:P(d,"w-48 flex-1"),"aria-label":`Member ${c+1} name`,required:!0,value:a.role,onChange:l=>f(c,{role:l.target.value})}),e.jsxs("select",{className:P(d,"w-32"),"aria-label":`Member ${c+1} kind`,value:a.kind,onChange:l=>f(c,{kind:l.target.value}),children:[e.jsx("option",{value:"agent",children:"Agent"}),e.jsx("option",{value:"team",children:"Nested team"})]}),e.jsx("input",{className:P(d,"w-20"),"aria-label":`Member ${c+1} count`,type:"number",min:1,max:16,value:a.count,onChange:l=>f(c,{count:Number(l.target.value)})}),e.jsx(u,{type:"button",variant:"ghost",onClick:()=>x(l=>l.filter((i,w)=>w!==c)),children:"Remove"})]},a.key)),e.jsx(u,{type:"button",variant:"outline",onClick:()=>x(a=>[...a,{role:"",count:1,kind:"agent",key:crypto.randomUUID()}]),children:"Add member"})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Collaboration instructions"}),e.jsx("textarea",{className:P(d,"min-h-36"),maxLength:8e3,value:C,onChange:a=>h(a.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Project brief"}),e.jsx("textarea",{className:P(d,"min-h-36"),maxLength:8e3,value:y,onChange:a=>j(a.target.value)})]})]}),e.jsx(u,{type:"submit",disabled:S,children:S?"Saving…":t?"Save team":"Create team"})]})]})}function le(){const{agentId:t}=O(),[v,g]=Q(),r=v.get("kind")==="team"||v.get("create")==="team",k=v.has("create"),o=v.get("name"),m=J(),p=V(m.data,r?"team_catalogue":"profile_catalogue"),b=W(p&&!r),x=G(p&&r),C=H(),h=X({queryKey:["desktop",r?"team":"profile",o],enabled:p&&!!o&&!k,queryFn:()=>U({op:r?"teams.get":"profiles.get",name:o??""}),retry:!1}),y=async j=>{await C.invalidateQueries({queryKey:["desktop"]}),g({kind:r?"team":"agent",name:j})};return t?e.jsx(n.Suspense,{fallback:e.jsx("p",{className:"p-6 text-body",children:"Loading saved agent…"}),children:e.jsx(se,{})}):e.jsxs("div",{className:"flex h-full min-h-0 bg-canvas text-ink",children:[e.jsxs("aside",{className:"flex w-64 shrink-0 flex-col gap-4 border-r border-hairline bg-surface p-4",children:[e.jsx("h1",{className:"text-heading",children:"Agents and teams"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(u,{variant:r?"ghost":"outline",onClick:()=>g({kind:"agent"}),children:[e.jsx(Y,{className:"size-4"}),"Agents"]}),e.jsxs(u,{variant:r?"outline":"ghost",onClick:()=>g({kind:"team"}),children:[e.jsx(Z,{className:"size-4"}),"Teams"]})]}),e.jsxs(u,{variant:"outline",disabled:!p,onClick:()=>g({create:r?"team":"agent"}),children:[e.jsx(ee,{className:"size-4"}),r?"Create team":"Create agent"]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:(r?x.data:b.data)?.map(j=>e.jsx("button",{type:"button",className:P("flex h-8 w-full items-center rounded-md px-2 text-left text-body-sm hover:bg-row-hover",j.name===o&&te),onClick:()=>g({kind:r?"team":"agent",name:j.name}),children:e.jsx("span",{className:"truncate",children:j.name})},j.name))})]}),e.jsx("main",{className:"min-w-0 flex-1 overflow-auto p-6",children:p?b.error||x.error||h.error?e.jsxs("div",{role:"alert",children:[e.jsx("p",{className:"text-danger",children:b.error?.message||x.error?.message||h.error?.message}),e.jsx(u,{variant:"outline",onClick:()=>{b.refetch(),x.refetch(),h.refetch()},children:"Retry"})]}):k?r?e.jsx(B,{onSaved:y},"create-team"):e.jsx(T,{creating:!0,onSaved:y},"create-agent"):o&&h.isLoading?e.jsx("p",{"aria-live":"polite",children:"Loading details…"}):o&&h.data?r?e.jsx(B,{team:h.data,onSaved:y},o):e.jsx(T,{profile:h.data,creating:!1,onSaved:y},`${o}:${h.data.source}`):e.jsxs("div",{children:[e.jsx("h2",{className:"text-title",children:r?"Reusable teams":"Reusable agents"}),e.jsx("p",{className:"mt-2 text-body text-ink-muted",children:"Select a definition to view or edit it. A new chat does not change its definition."})]}):e.jsxs("div",{"aria-live":"polite",className:"space-y-3 text-body-sm",children:[e.jsx("p",{children:m.isLoading?"Connecting to the backend…":m.error?m.error.message:"Update the backend to manage reusable agents and teams. Saved chats are unchanged."}),e.jsx(u,{variant:"outline",onClick:()=>void m.refetch(),children:"Retry connection"})]})})]})}export{le as AgentsPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{w as ln,p as un,l as H,s as q,m as B,n as an,o as y,t as tn,q as L,v as _,x as rn,y as o,z as sn,A as on,D as fn}from"./index-CVKAjzjY.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,E,D,v,A,C,u){var I=E-l,s=D-h,n=C-v,m=u-A,a=m*I-n*s;if(!(a*a<y))return a=(n*(h-A)-m*(l-v))/a,[l+a*I,h+a*s]}function W(l,h,E,D,v,A,C){var u=l-E,I=h-D,s=(C?A:-A)/L(u*u+I*I),n=s*I,m=-s*u,a=l+n,i=h+m,f=E+n,c=D+m,F=(a+f)/2,t=(i+c)/2,p=f-a,g=c-i,R=p*p+g*g,T=v-A,P=a*c-f*i,O=(g<0?-1:1)*L(on(0,T*T*R-P*P)),S=(P*g-p*O)/R,j=(-P*p-g*O)/R,w=(P*g+p*O)/R,d=(-P*p+g*O)/R,x=S-F,e=j-t,r=w-F,G=d-t;return x*x+e*e>r*r+G*G&&(S=w,j=d),{cx:S,cy:j,x01:-n,y01:-m,x11:S*(v/T-1),y11:j*(v/T-1)}}function hn(){var l=cn,h=yn,E=B(0),D=null,v=gn,A=mn,C=pn,u=null,I=ln(s);function s(){var n,m,a=+l.apply(this,arguments),i=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,F=rn(c-f),t=c>f;if(u||(u=n=I()),i<a&&(m=i,i=a,a=m),!(i>y))u.moveTo(0,0);else if(F>tn-y)u.moveTo(i*H(f),i*q(f)),u.arc(0,0,i,f,c,!t),a>y&&(u.moveTo(a*H(c),a*q(c)),u.arc(0,0,a,c,f,t));else{var p=f,g=c,R=f,T=c,P=F,O=F,S=C.apply(this,arguments)/2,j=S>y&&(D?+D.apply(this,arguments):L(a*a+i*i)),w=_(rn(i-a)/2,+E.apply(this,arguments)),d=w,x=w,e,r;if(j>y){var G=sn(j/a*q(S)),M=sn(j/i*q(S));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(O-=M*2)>y?(M*=t?1:-1,p+=M,g-=M):(O=0,p=g=(f+c)/2)}var J=i*H(p),K=i*q(p),N=a*H(T),Q=a*q(T);if(w>y){var U=i*H(g),V=i*q(g),X=a*H(R),Y=a*q(R),z;if(F<un)if(z=dn(J,K,X,Y,U,V,N,Q)){var Z=J-z[0],$=K-z[1],k=U-z[0],b=V-z[1],nn=1/q(fn((Z*k+$*b)/(L(Z*Z+$*$)*L(k*k+b*b)))/2),en=L(z[0]*z[0]+z[1]*z[1]);d=_(w,(a-en)/(nn-1)),x=_(w,(i-en)/(nn+1))}else d=x=0}O>y?x>y?(e=W(X,Y,J,K,i,x,t),r=W(U,V,N,Q,i,x,t),u.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,i,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),u.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(u.moveTo(J,K),u.arc(0,0,i,p,g,!t)):u.moveTo(J,K),!(a>y)||!(P>y)?u.lineTo(N,Q):d>y?(e=W(N,Q,U,V,a,-d,t),r=W(J,K,X,Y,a,-d,t),u.lineTo(e.cx+e.x01,e.cy+e.y01),d<w?u.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,a,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),u.arc(r.cx,r.cy,d,o(r.y11,r.x11),o(r.y01,r.x01),!t))):u.arc(0,0,a,T,R,t)}if(u.closePath(),n)return u=null,n+""||null}return s.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,m=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-un/2;return[H(m)*n,q(m)*n]},s.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),s):l},s.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),s):h},s.cornerRadius=function(n){return arguments.length?(E=typeof n=="function"?n:B(+n),s):E},s.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),s):D},s.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),s):v},s.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),s):A},s.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),s):C},s.context=function(n){return arguments.length?(u=n??null,s):u},s}export{hn as d};
|