local-operator-ui 0.34.44 → 0.34.46
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 +1051 -66
- package/out/preload/index.js +305 -18
- package/out/renderer/assets/{_basePickBy-C-GwcPo5.js → _basePickBy-hPi3fEQr.js} +1 -1
- package/out/renderer/assets/{_baseUniq-whkmDW6w.js → _baseUniq-BH6SqqsG.js} +1 -1
- package/out/renderer/assets/{agent-details-page-DpCpkTfN.js → agent-details-page-D6Sf3QUC.js} +2 -2
- package/out/renderer/assets/agent-hub-page-geh3R5Uy.js +11 -0
- package/out/renderer/assets/agents-page-CFjl9C1o.js +7 -0
- package/out/renderer/assets/arc-hK5DqZTp.js +1 -0
- package/out/renderer/assets/architectureDiagram-IEHRJDOE-Od2Y7WJh.js +36 -0
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-Dp4G8uLX.js → blockDiagram-JOT3LUYC-Ctc7-wAT.js} +6 -6
- package/out/renderer/assets/{book-open-C9onOH1C.js → book-open-BWUyDXVa.js} +1 -1
- package/out/renderer/assets/browser-page-KrEaCKVz.js +1 -0
- package/out/renderer/assets/browser-webauthn-prompt-CKqDqDU5.js +1 -0
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-CnX5ELGv.js → c4Diagram-VJAJSXHY-KjhfyGml.js} +1 -1
- package/out/renderer/assets/channel-Bs-Xt2ih.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-DYgqjjvg.js → chunk-4BMEZGHF-DUs-A7ex.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-3DoU7E6Y.js → chunk-A2AXSNBT-LbRRk1xd.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-OX8UcnIV.js → chunk-AEK57VVT-Ddc0Dk4L.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-Dbt1r37J.js → chunk-D6G4REZN-Cj8PtGTg.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-CdLKa5S8.js → chunk-RZ5BOZE2-KXGjmJKN.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-B_CjCOio.js → chunk-XZIHB7SX-B8dmznR7.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-BrkzW__m.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-BrkzW__m.js +1 -0
- package/out/renderer/assets/clone-CnlBeott.js +1 -0
- package/out/renderer/assets/{console-mirror-D1YYJxrt.js → console-mirror-cPzOwzR9.js} +14 -14
- package/out/renderer/assets/consoleCapture-ComgYGzq.js +1 -0
- package/out/renderer/assets/{conversation-input-sync-BbbcfWqh.js → conversation-input-sync-B5HfvhyR.js} +259 -261
- package/out/renderer/assets/dagre-OKDRZEBW-BaeP_npI.js +4 -0
- package/out/renderer/assets/diagram-SSKATNLV-BDwSJBgs.js +43 -0
- package/out/renderer/assets/diagram-VNBRO52H-Ce2_qnEd.js +24 -0
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-Cs4yDA7g.js → erDiagram-Q7BY3M3F-DUpyMDtK.js} +1 -1
- package/out/renderer/assets/{error-boundary-YxH9ow-2.js → error-boundary-B4K6A3dS.js} +2 -2
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-BofJ9_8f.js → flowDiagram-4HSFHLVR-Twa-e-xh.js} +1 -1
- package/out/renderer/assets/ganttDiagram-APWFNJXF-6IcdZzTN.js +257 -0
- package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-BHwjqSB2.js +65 -0
- package/out/renderer/assets/{graph-D3WT1lJS.js → graph-CjSBt2SL.js} +1 -1
- package/out/renderer/assets/index-BDqI882o.js +7 -0
- package/out/renderer/assets/index-C7mMgpwT.css +1 -0
- package/out/renderer/assets/index-fKRRIb8a.js +1 -0
- package/out/renderer/assets/index-o-e57W52.js +804 -0
- package/out/renderer/assets/infoDiagram-PH2N3AL5-DusuxGWy.js +2 -0
- package/out/renderer/assets/{installer-BzSW3GXd.js → installer-B4Bd2pBF.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-DVmD515J.js → journeyDiagram-U35MCT3I-ouPHBWbW.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-DpiJ7P3i.js → kanban-definition-NDS4AKOZ-BpfzQ_cF.js} +1 -1
- package/out/renderer/assets/{layout-BFA2wwh_.js → layout-DWM2xDwq.js} +1 -1
- package/out/renderer/assets/legacy-agents-page-DMWtT-nK.js +33 -0
- package/out/renderer/assets/{mermaid.core-C7iGmYcY.js → mermaid.core-C2AhDEdD.js} +5 -5
- package/out/renderer/assets/mesh-page-DI_FXBTf.js +1 -0
- package/out/renderer/assets/messages-Bf6oXWsi.js +3 -0
- package/out/renderer/assets/mindmap-definition-ALO5MXBD-CWFoHd9r.js +95 -0
- package/out/renderer/assets/mini-BVxX6iDv.js +1 -0
- package/out/renderer/assets/{notebook-pen-rCh1XFso.js → notebook-pen-CKFoYavJ.js} +1 -1
- package/out/renderer/assets/org-access-Cj7MYYx3.js +1 -0
- package/out/renderer/assets/org-surface-gate-B61_V5sH.js +1 -0
- package/out/renderer/assets/{page-header-DWR3DkBt.js → page-header-D90TvAM5.js} +1 -1
- package/out/renderer/assets/pieDiagram-IB7DONF6-C4p49jAq.js +30 -0
- package/out/renderer/assets/projects-page-D0OgNUWf.js +45 -0
- package/out/renderer/assets/publication-validation-DLHcjuJy.js +1 -0
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-u3qKyomE.js → quadrantDiagram-7GDLP6J5-By3GJSI3.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-DTXBXOd-.js → radar-MK3ICKWK-n8dqb_zt.js} +1 -1
- package/out/renderer/assets/radient-auth-buttons-p_Axd8pX.js +1 -0
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-CIyOJzHO.js → requirementDiagram-KVF5MWMF-CQ7JllrS.js} +1 -1
- package/out/renderer/assets/sankeyDiagram-QLVOVGJD-DNyPn5zx.js +10 -0
- package/out/renderer/assets/{schedules-page-DHwzeRvF.js → schedules-page-R7SXiFmi.js} +1 -1
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-DCj3Ke6W.js → sequenceDiagram-X6HHIX6F-CUHeYZkr.js} +1 -1
- package/out/renderer/assets/{settings-page-Br0K0YLW.js → settings-page-BZ_HPCkT.js} +60 -60
- package/out/renderer/assets/stateDiagram-DGXRK772-CL_twVvQ.js +1 -0
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-ruz5Lapk.js +1 -0
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-C4cCAtD2.js → timeline-definition-BDJGKUSR-BCcBGH9R.js} +1 -1
- package/out/renderer/assets/{use-download-agent-mutation-CRmN4Z4O.js → use-download-agent-mutation-B87MG4sW.js} +4 -4
- package/out/renderer/assets/use-memberships-query-DCEm9yOI.js +1 -0
- package/out/renderer/assets/{use-session-snapshot-DZAAvDEa.js → use-session-snapshot-CChKOZqb.js} +1 -1
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-DG9g8Bz_.js → xychartDiagram-VJFVF3MP-CvHda-UX.js} +1 -1
- package/out/renderer/console-capture.html +5 -5
- package/out/renderer/index.html +7 -7
- package/out/renderer/installer.html +4 -4
- package/out/renderer/mini.html +7 -7
- package/package.json +2 -2
- package/out/renderer/assets/agent-hub-page-CUIy_Kx2.js +0 -11
- package/out/renderer/assets/agents-page-2HbuAEbx.js +0 -7
- package/out/renderer/assets/arc-DDs-mKBJ.js +0 -1
- package/out/renderer/assets/architectureDiagram-IEHRJDOE-CPUUDGvU.js +0 -36
- package/out/renderer/assets/browser-page-DYIlDoNt.js +0 -1
- package/out/renderer/assets/browser-webauthn-prompt-BCVHqXb0.js +0 -1
- package/out/renderer/assets/channel-DMF6TPjP.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-B0EbOHV0.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-B0EbOHV0.js +0 -1
- package/out/renderer/assets/clone-D1pjaXDr.js +0 -1
- package/out/renderer/assets/consoleCapture-B-w56zDU.js +0 -1
- package/out/renderer/assets/dagre-OKDRZEBW-Di-XleTu.js +0 -4
- package/out/renderer/assets/diagram-SSKATNLV-HX5Tirdq.js +0 -43
- package/out/renderer/assets/diagram-VNBRO52H-BkGCdAFk.js +0 -24
- package/out/renderer/assets/ganttDiagram-APWFNJXF-B8-HoTDC.js +0 -257
- package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-B72gxYgp.js +0 -65
- package/out/renderer/assets/index-B7VSZn2a.css +0 -1
- package/out/renderer/assets/index-Bo-U0L08.js +0 -804
- package/out/renderer/assets/index-BwwNZ8BB.js +0 -1
- package/out/renderer/assets/index-StPsU3lP.js +0 -7
- package/out/renderer/assets/infoDiagram-PH2N3AL5-ChbJv-y5.js +0 -2
- package/out/renderer/assets/legacy-agents-page-C_w_SC0A.js +0 -33
- package/out/renderer/assets/mesh-page-DMSyd0cL.js +0 -1
- package/out/renderer/assets/mindmap-definition-ALO5MXBD-FgYmOkcR.js +0 -95
- package/out/renderer/assets/mini-B9yZoGaU.js +0 -1
- package/out/renderer/assets/org-surface-gate-CDIyXoCz.js +0 -1
- package/out/renderer/assets/pieDiagram-IB7DONF6-Ahxca-lE.js +0 -30
- package/out/renderer/assets/projects-page-BclfcCc4.js +0 -50
- package/out/renderer/assets/radient-auth-buttons-D6EcW_pf.js +0 -1
- package/out/renderer/assets/sankeyDiagram-QLVOVGJD-DPL4XBFG.js +0 -10
- package/out/renderer/assets/stateDiagram-DGXRK772-C_ILyKXn.js +0 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DgnGm7tu.js +0 -1
- package/out/renderer/assets/ui-preferences-store-lljzccwU.js +0 -1
- package/out/renderer/assets/use-memberships-query-DIOIcGCQ.js +0 -1
- /package/out/renderer/assets/{index-CzjIMcYW.js → index-B-uibf5k.js} +0 -0
package/out/preload/index.js
CHANGED
|
@@ -102,6 +102,7 @@ const mcpCatalogCwdPattern = /^(\/|[A-Za-z]:[\\/])/;
|
|
|
102
102
|
const mcpCatalogCwd = zod.z.string().min(1).max(4096).regex(mcpCatalogCwdPattern);
|
|
103
103
|
const SUBSCRIPTION_ID_PATTERN = /^[a-f0-9]{32}$/;
|
|
104
104
|
const requestId = zod.z.string().regex(/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/);
|
|
105
|
+
const definitionRevision = zod.z.string().min(1).max(512).nullish();
|
|
105
106
|
const meshId = zod.z.string().regex(/^[A-Za-z0-9_-]{1,128}$/);
|
|
106
107
|
const approvalId = zod.z.string().regex(/^ap_[0-9a-hjkmnp-tv-z]{1,64}$/);
|
|
107
108
|
const sessionImage = zod.z.object({
|
|
@@ -270,6 +271,12 @@ const publicationDescription = zod.z.string().refine((description) => publicatio
|
|
|
270
271
|
const publicationTools = zod.z.array(zod.z.string()).refine((tools) => publicationToolsRule(tools) === null, {
|
|
271
272
|
message: "That tool list cannot be published."
|
|
272
273
|
});
|
|
274
|
+
const publicationPolicyFields = {
|
|
275
|
+
requestId: requestId.optional(),
|
|
276
|
+
subscribe: zod.z.boolean().optional(),
|
|
277
|
+
autoPush: zod.z.boolean().optional(),
|
|
278
|
+
confirmPublicEgress: zod.z.boolean().optional()
|
|
279
|
+
};
|
|
273
280
|
const publicationDocument = zod.z.object({
|
|
274
281
|
name: publicationName,
|
|
275
282
|
description: publicationDescription,
|
|
@@ -332,6 +339,21 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
332
339
|
zod.z.object({ op: zod.z.literal("runtimes.list") }).strict(),
|
|
333
340
|
zod.z.object({ op: zod.z.literal("profiles.list") }).strict(),
|
|
334
341
|
zod.z.object({ op: zod.z.literal("profiles.get"), name: profileName }).strict(),
|
|
342
|
+
/*
|
|
343
|
+
* Definition CAS (proposed additive wire, b-wire-receipt-definition-cas-and-adopt).
|
|
344
|
+
* `expectedDefinitionRevision` is an opaque echo of the `definition_revision` the
|
|
345
|
+
* editor was opened with; absent/null is the LEGACY unconditional write and is
|
|
346
|
+
* NOT a protected dirty-edit guarantee, so a caller that wants CAS protection
|
|
347
|
+
* must send it. Strict like every field here: a typo must 400, not silently
|
|
348
|
+
* become an unconditional write.
|
|
349
|
+
*/
|
|
350
|
+
zod.z.object({
|
|
351
|
+
op: zod.z.literal("profiles.update"),
|
|
352
|
+
name: profileName,
|
|
353
|
+
requestId,
|
|
354
|
+
fields: profileFields,
|
|
355
|
+
expectedDefinitionRevision: definitionRevision.optional()
|
|
356
|
+
}).strict(),
|
|
335
357
|
zod.z.object({ op: zod.z.literal("profiles.install"), name: profileName, requestId }).strict(),
|
|
336
358
|
zod.z.object({
|
|
337
359
|
op: zod.z.literal("profiles.create"),
|
|
@@ -342,12 +364,6 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
342
364
|
instructions: zod.z.string().min(1).max(8e3)
|
|
343
365
|
})
|
|
344
366
|
}).strict(),
|
|
345
|
-
zod.z.object({
|
|
346
|
-
op: zod.z.literal("profiles.update"),
|
|
347
|
-
name: profileName,
|
|
348
|
-
requestId,
|
|
349
|
-
fields: profileFields
|
|
350
|
-
}).strict(),
|
|
351
367
|
/*
|
|
352
368
|
* THE HUB AUTO-UPDATE PLANE (backend `server/routes/desktop_hub.py`, gated by
|
|
353
369
|
* the `hub_updates` capability). `hub.updates` is a STORE READ on the backend
|
|
@@ -363,20 +379,83 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
363
379
|
* apply-all schema does not offer it.
|
|
364
380
|
*/
|
|
365
381
|
zod.z.object({ op: zod.z.literal("hub.updates") }).strict(),
|
|
382
|
+
// Initial skill publication uses an actual discovered source and managed
|
|
383
|
+
// alias, never a synthetic link ID or a private-directory clone.
|
|
384
|
+
zod.z.object({
|
|
385
|
+
op: zod.z.literal("hub.skillPull"),
|
|
386
|
+
requestId,
|
|
387
|
+
hubId: id,
|
|
388
|
+
hubSource: zod.z.string().min(1).max(2048),
|
|
389
|
+
visibility: zod.z.enum(["public", "org"]),
|
|
390
|
+
tenantId: id.nullable(),
|
|
391
|
+
localAlias: profileName,
|
|
392
|
+
subscribe: zod.z.boolean().optional(),
|
|
393
|
+
autoPush: zod.z.boolean().optional(),
|
|
394
|
+
confirmPublicEgress: zod.z.boolean().optional()
|
|
395
|
+
}).strict(),
|
|
396
|
+
zod.z.object({
|
|
397
|
+
op: zod.z.literal("hub.skillPublish"),
|
|
398
|
+
requestId,
|
|
399
|
+
dryRun: zod.z.boolean(),
|
|
400
|
+
sourceSkill: profileName,
|
|
401
|
+
localAlias: profileName,
|
|
402
|
+
visibility: zod.z.enum(["public", "org"]),
|
|
403
|
+
tenantId: id.nullable(),
|
|
404
|
+
subscribe: zod.z.boolean(),
|
|
405
|
+
autoPush: zod.z.boolean(),
|
|
406
|
+
confirmPublicEgress: zod.z.boolean(),
|
|
407
|
+
previewReceipt: zod.z.string().min(1).max(4096).optional(),
|
|
408
|
+
confirmPublish: zod.z.literal(true).optional()
|
|
409
|
+
}).strict(),
|
|
410
|
+
// Full inventory is additive: old callers still receive pending agents/teams
|
|
411
|
+
// only. Policy revision is required even for a single independent toggle so
|
|
412
|
+
// an intervening direct config edit cannot be silently overwritten.
|
|
413
|
+
zod.z.object({
|
|
414
|
+
op: zod.z.literal("hub.links"),
|
|
415
|
+
kind: zod.z.enum(["agent", "team", "skill"]).optional()
|
|
416
|
+
}).strict(),
|
|
417
|
+
zod.z.object({
|
|
418
|
+
op: zod.z.literal("hub.policy"),
|
|
419
|
+
requestId,
|
|
420
|
+
linkId: zod.z.string().min(1).max(256),
|
|
421
|
+
expectedPolicyRevision: zod.z.string().min(1).max(256),
|
|
422
|
+
subscribe: zod.z.boolean().optional(),
|
|
423
|
+
autoPush: zod.z.boolean().optional(),
|
|
424
|
+
confirmPublicEgress: zod.z.boolean().optional()
|
|
425
|
+
}).strict(),
|
|
366
426
|
zod.z.object({
|
|
367
427
|
op: zod.z.literal("hub.check"),
|
|
368
428
|
requestId,
|
|
429
|
+
linkId: zod.z.string().min(1).max(256).optional(),
|
|
430
|
+
direction: zod.z.enum(["pull", "push"]).optional(),
|
|
369
431
|
kind: hubItemKind.optional(),
|
|
370
432
|
name: profileName.optional()
|
|
371
433
|
}).strict(),
|
|
372
434
|
zod.z.object({
|
|
373
435
|
op: zod.z.literal("hub.apply"),
|
|
374
436
|
requestId,
|
|
375
|
-
|
|
376
|
-
|
|
437
|
+
previewReceipt: zod.z.string().min(1).max(4096).optional(),
|
|
438
|
+
confirmApply: zod.z.literal(true).optional(),
|
|
439
|
+
linkId: zod.z.string().min(1).max(256).optional(),
|
|
440
|
+
direction: zod.z.literal("pull").optional(),
|
|
441
|
+
kind: hubItemKind.optional(),
|
|
442
|
+
name: profileName.optional(),
|
|
377
443
|
prefer: zod.z.enum(["local", "remote"]).optional(),
|
|
378
444
|
acknowledgeUnknownBaseline: zod.z.boolean().optional(),
|
|
379
|
-
dryRun: zod.z.boolean().optional()
|
|
445
|
+
dryRun: zod.z.boolean().optional(),
|
|
446
|
+
/*
|
|
447
|
+
* LEGACY UNKNOWN-ORIGIN SOURCE CONFIRMATION (proposed additive wire,
|
|
448
|
+
* b-wire-receipt §Part 2). An EXPLICIT act that states a destination the
|
|
449
|
+
* caller asserts: it materializes the real baseline identity and scope,
|
|
450
|
+
* it never infers Public or the active organization. `resolve_source`
|
|
451
|
+
* selects the branch; the source/scope triple is REQUIRED with it so a
|
|
452
|
+
* half-stated destination cannot compose a guessed origin. The service
|
|
453
|
+
* refuses a conflicting known scope with `origin-conflict`.
|
|
454
|
+
*/
|
|
455
|
+
resolveSource: zod.z.literal(true).optional(),
|
|
456
|
+
hubSource: zod.z.string().min(1).max(2048).optional(),
|
|
457
|
+
visibility: zod.z.enum(["public", "org"]).optional(),
|
|
458
|
+
tenantId: zod.z.string().min(1).max(128).nullable().optional()
|
|
380
459
|
}).strict(),
|
|
381
460
|
zod.z.object({
|
|
382
461
|
op: zod.z.literal("hub.applyAll"),
|
|
@@ -386,21 +465,38 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
386
465
|
zod.z.object({
|
|
387
466
|
op: zod.z.literal("hub.retry"),
|
|
388
467
|
requestId,
|
|
389
|
-
|
|
390
|
-
|
|
468
|
+
linkId: zod.z.string().min(1).max(256).optional(),
|
|
469
|
+
direction: zod.z.enum(["pull", "push"]).optional(),
|
|
470
|
+
kind: hubItemKind.optional(),
|
|
471
|
+
name: profileName.optional()
|
|
391
472
|
}).strict(),
|
|
392
|
-
zod.z.object({ op: zod.z.literal("teams.list") }).strict(),
|
|
393
|
-
zod.z.object({ op: zod.z.literal("teams.get"), name: profileName }).strict(),
|
|
394
473
|
zod.z.object({
|
|
395
|
-
op: zod.z.literal("
|
|
474
|
+
op: zod.z.literal("hub.push"),
|
|
396
475
|
requestId,
|
|
397
|
-
|
|
476
|
+
linkId: zod.z.string().min(1).max(256),
|
|
477
|
+
direction: zod.z.literal("push"),
|
|
478
|
+
dryRun: zod.z.boolean(),
|
|
479
|
+
previewReceipt: zod.z.string().min(1).max(4096).optional(),
|
|
480
|
+
confirmPublish: zod.z.literal(true).optional()
|
|
398
481
|
}).strict(),
|
|
482
|
+
zod.z.object({ op: zod.z.literal("teams.list") }).strict(),
|
|
483
|
+
zod.z.object({ op: zod.z.literal("teams.get"), name: profileName }).strict(),
|
|
484
|
+
/*
|
|
485
|
+
* Team CAS is the same optional opaque echo as the profile arm: absent/null is
|
|
486
|
+
* the legacy unconditional write, a supplied stale/malformed value is refused
|
|
487
|
+
* 409 `local-concurrent-edit` before any write under the definition lock.
|
|
488
|
+
*/
|
|
399
489
|
zod.z.object({
|
|
400
490
|
op: zod.z.literal("teams.update"),
|
|
401
491
|
name: profileName,
|
|
402
492
|
requestId,
|
|
403
|
-
fields: teamFields
|
|
493
|
+
fields: teamFields,
|
|
494
|
+
expectedDefinitionRevision: definitionRevision.optional()
|
|
495
|
+
}).strict(),
|
|
496
|
+
zod.z.object({
|
|
497
|
+
op: zod.z.literal("teams.create"),
|
|
498
|
+
requestId,
|
|
499
|
+
fields: teamFields.extend({ name: zod.z.string().min(1).max(64) })
|
|
404
500
|
}).strict(),
|
|
405
501
|
zod.z.object({
|
|
406
502
|
op: zod.z.literal("sessions.list"),
|
|
@@ -709,6 +805,24 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
709
805
|
*/
|
|
710
806
|
peerJournalSource: zod.z.boolean().optional()
|
|
711
807
|
}).strict(),
|
|
808
|
+
// The inventory belongs to the backend, not to a renderer filesystem walk.
|
|
809
|
+
// Keep the cursor opaque: its query/revision binding is the service's decision.
|
|
810
|
+
zod.z.object({
|
|
811
|
+
op: zod.z.literal("sessions.files"),
|
|
812
|
+
sessionId,
|
|
813
|
+
scope: zod.z.enum(["family", "self"]).optional(),
|
|
814
|
+
kind: zod.z.string().max(256).optional(),
|
|
815
|
+
q: zod.z.string().max(256).optional(),
|
|
816
|
+
sort: zod.z.enum(["recent", "name", "kind", "modified", "created", "size"]).optional(),
|
|
817
|
+
order: zod.z.enum(["asc", "desc"]).optional(),
|
|
818
|
+
limit: zod.z.number().int().min(1).max(200).optional(),
|
|
819
|
+
cursor: zod.z.string().max(8192).optional()
|
|
820
|
+
}).strict(),
|
|
821
|
+
zod.z.object({
|
|
822
|
+
op: zod.z.literal("sessions.files.materialise"),
|
|
823
|
+
sessionId,
|
|
824
|
+
fileId: zod.z.string().regex(/^[a-f0-9]{16}$/)
|
|
825
|
+
}).strict(),
|
|
712
826
|
zod.z.object({
|
|
713
827
|
op: zod.z.literal("sessions.history"),
|
|
714
828
|
sessionId,
|
|
@@ -1211,6 +1325,7 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
1211
1325
|
op: zod.z.literal("agent.publish"),
|
|
1212
1326
|
agentId: id,
|
|
1213
1327
|
document: publicationDocument.optional(),
|
|
1328
|
+
...publicationPolicyFields,
|
|
1214
1329
|
/*
|
|
1215
1330
|
* The publication TARGET (§4.4/§4.7). Both travel together or neither does,
|
|
1216
1331
|
* and the rule is a `superRefine` on the whole UNION (below) rather than a
|
|
@@ -1242,11 +1357,20 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
1242
1357
|
// republish that did not name one would have to guess which public row to
|
|
1243
1358
|
// overwrite — and guessing here overwrites somebody's listing.
|
|
1244
1359
|
hubAgentId: id,
|
|
1360
|
+
expectedRemoteRevision: zod.z.string().min(1).max(512).optional(),
|
|
1245
1361
|
document: publicationDocument.optional(),
|
|
1362
|
+
...publicationPolicyFields,
|
|
1246
1363
|
/** The publication target, on the same terms as `agent.publish` above. */
|
|
1247
1364
|
visibility: zod.z.literal("org").optional(),
|
|
1248
1365
|
tenantId: id.optional()
|
|
1249
1366
|
}).strict(),
|
|
1367
|
+
zod.z.object({
|
|
1368
|
+
op: zod.z.literal("team.publish"),
|
|
1369
|
+
teamId: id,
|
|
1370
|
+
...publicationPolicyFields,
|
|
1371
|
+
visibility: zod.z.literal("org").optional(),
|
|
1372
|
+
tenantId: id.optional()
|
|
1373
|
+
}).strict(),
|
|
1250
1374
|
/*
|
|
1251
1375
|
* Pulling a published organization team into this machine's local registry
|
|
1252
1376
|
* (§4.5/§8.4's "list + pull action").
|
|
@@ -1844,6 +1968,8 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
1844
1968
|
"org_agents.list",
|
|
1845
1969
|
"org_team.get",
|
|
1846
1970
|
"org_teams.list",
|
|
1971
|
+
"org_skills.list",
|
|
1972
|
+
"org_skill.get",
|
|
1847
1973
|
/*
|
|
1848
1974
|
* The verification-email resend (core PR2,
|
|
1849
1975
|
* `feat/quota-notice-resend`): it maps to the upstream's JWT-only
|
|
@@ -1861,6 +1987,7 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
1861
1987
|
agent_id: id.optional(),
|
|
1862
1988
|
comment_id: id.optional(),
|
|
1863
1989
|
team_id: id.optional(),
|
|
1990
|
+
skill_id: id.optional(),
|
|
1864
1991
|
query: zod.z.record(zod.z.union([zod.z.string().max(1024), zod.z.number().int()])).optional(),
|
|
1865
1992
|
payload: zod.z.record(zod.z.unknown()).optional(),
|
|
1866
1993
|
confirmed: zod.z.boolean().optional()
|
|
@@ -1873,6 +2000,39 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
1873
2000
|
accountId: zod.z.number().int().positive(),
|
|
1874
2001
|
confirmed: zod.z.literal(true)
|
|
1875
2002
|
}).strict(),
|
|
2003
|
+
/*
|
|
2004
|
+
* PHONE ACCESS SETUP (`features.tunnel_setup`, local-operator
|
|
2005
|
+
* `docs/DESKTOP_API.md` "Explicit phone setup"). Three ops over ONE route,
|
|
2006
|
+
* split by authority so a caller cannot mutate by accident:
|
|
2007
|
+
*
|
|
2008
|
+
* - `tunnel.setup.read`: GET, local metadata only. No upstream read, no token
|
|
2009
|
+
* refresh, never `verified` and never a quote - the cheap poll that rebuilds
|
|
2010
|
+
* the block after a window close or a lost response.
|
|
2011
|
+
* - `tunnel.setup.plan`: POST `{action:"plan"}`, a FRESH account/quote/
|
|
2012
|
+
* preparation observation that changes nothing.
|
|
2013
|
+
* - `tunnel.setup.run`: POST `{action:"run"}`, the only op that can write. The
|
|
2014
|
+
* backend REFUSES it without an explicit owner (422), so `credentialId` is
|
|
2015
|
+
* required here rather than defaulted: an account is never picked for the
|
|
2016
|
+
* user. `acceptMonthlyPrice` is a STRING, the exact fresh amount the user
|
|
2017
|
+
* saw, because the backend compares it to a fresh quote and a number would
|
|
2018
|
+
* round-trip through float formatting.
|
|
2019
|
+
*
|
|
2020
|
+
* ONLY the capability gates these. An older backend 404s the route, so the
|
|
2021
|
+
* renderer asks `features.tunnel_setup` first and sends nothing without it.
|
|
2022
|
+
*/
|
|
2023
|
+
zod.z.object({
|
|
2024
|
+
op: zod.z.literal("tunnel.setup.read"),
|
|
2025
|
+
credentialId: zod.z.number().int().positive().optional()
|
|
2026
|
+
}).strict(),
|
|
2027
|
+
zod.z.object({
|
|
2028
|
+
op: zod.z.literal("tunnel.setup.plan"),
|
|
2029
|
+
credentialId: zod.z.number().int().positive().optional()
|
|
2030
|
+
}).strict(),
|
|
2031
|
+
zod.z.object({
|
|
2032
|
+
op: zod.z.literal("tunnel.setup.run"),
|
|
2033
|
+
credentialId: zod.z.number().int().positive(),
|
|
2034
|
+
acceptMonthlyPrice: zod.z.string().min(1).max(64).optional()
|
|
2035
|
+
}).strict(),
|
|
1876
2036
|
zod.z.object({ op: zod.z.literal("auth.start"), provider: id }).strict(),
|
|
1877
2037
|
zod.z.object({ op: zod.z.literal("auth.status"), id }).strict(),
|
|
1878
2038
|
zod.z.object({ op: zod.z.literal("auth.input"), id, promptId: id, value: secret }).strict(),
|
|
@@ -2246,6 +2406,71 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
2246
2406
|
]);
|
|
2247
2407
|
desktopRequestUnion.superRefine(
|
|
2248
2408
|
(request, ctx) => {
|
|
2409
|
+
if (request.op === "hub.skillPull" || request.op === "hub.skillPublish") {
|
|
2410
|
+
if (request.visibility === "public" && request.tenantId !== null || request.visibility === "org" && !request.tenantId) {
|
|
2411
|
+
ctx.addIssue({
|
|
2412
|
+
code: zod.z.ZodIssueCode.custom,
|
|
2413
|
+
message: "A skill destination requires explicit paired scope",
|
|
2414
|
+
path: ["tenantId"]
|
|
2415
|
+
});
|
|
2416
|
+
return;
|
|
2417
|
+
}
|
|
2418
|
+
if (request.op === "hub.skillPublish" && (request.dryRun ? request.previewReceipt !== void 0 || request.confirmPublish !== void 0 : !request.previewReceipt || request.confirmPublish !== true)) {
|
|
2419
|
+
ctx.addIssue({
|
|
2420
|
+
code: zod.z.ZodIssueCode.custom,
|
|
2421
|
+
message: "An initial skill publication requires its reviewed draft receipt",
|
|
2422
|
+
path: ["previewReceipt"]
|
|
2423
|
+
});
|
|
2424
|
+
return;
|
|
2425
|
+
}
|
|
2426
|
+
}
|
|
2427
|
+
if (request.op === "hub.check" || request.op === "hub.apply" || request.op === "hub.retry") {
|
|
2428
|
+
const hasLink = request.linkId !== void 0;
|
|
2429
|
+
const hasLegacy = request.kind !== void 0 || request.name !== void 0;
|
|
2430
|
+
if (hasLink && hasLegacy || request.op !== "hub.check" && !hasLink && (!request.kind || !request.name) || request.op === "hub.retry" && hasLink && !request.direction || request.direction === "push" && !hasLink) {
|
|
2431
|
+
ctx.addIssue({
|
|
2432
|
+
code: zod.z.ZodIssueCode.custom,
|
|
2433
|
+
message: "A hub action requires one unambiguous selector and an explicit retry direction",
|
|
2434
|
+
path: ["linkId"]
|
|
2435
|
+
});
|
|
2436
|
+
return;
|
|
2437
|
+
}
|
|
2438
|
+
}
|
|
2439
|
+
if (request.op === "hub.apply" && (request.previewReceipt !== void 0 || request.confirmApply !== void 0) && (!request.linkId || request.dryRun || !request.previewReceipt || request.confirmApply !== true)) {
|
|
2440
|
+
ctx.addIssue({
|
|
2441
|
+
code: zod.z.ZodIssueCode.custom,
|
|
2442
|
+
message: "A viewed incoming application requires its scoped preview receipt and confirmation",
|
|
2443
|
+
path: ["previewReceipt"]
|
|
2444
|
+
});
|
|
2445
|
+
return;
|
|
2446
|
+
}
|
|
2447
|
+
if (request.op === "hub.apply" && request.resolveSource === true) {
|
|
2448
|
+
const scopePaired = request.visibility === "public" && request.tenantId === null || request.visibility === "org" && typeof request.tenantId === "string" && request.tenantId.length > 0;
|
|
2449
|
+
if (!request.hubSource || !scopePaired || request.acknowledgeUnknownBaseline !== true || request.linkId !== void 0 || request.previewReceipt !== void 0 || request.confirmApply !== void 0 || request.prefer !== void 0) {
|
|
2450
|
+
ctx.addIssue({
|
|
2451
|
+
code: zod.z.ZodIssueCode.custom,
|
|
2452
|
+
message: "Confirming a source requires its exact stated destination and the unknown-baseline acknowledgement, with no link, preview or preference",
|
|
2453
|
+
path: ["hubSource"]
|
|
2454
|
+
});
|
|
2455
|
+
return;
|
|
2456
|
+
}
|
|
2457
|
+
}
|
|
2458
|
+
if (request.op === "hub.push" && (request.dryRun ? request.previewReceipt !== void 0 || request.confirmPublish !== void 0 : !request.previewReceipt || request.confirmPublish !== true)) {
|
|
2459
|
+
ctx.addIssue({
|
|
2460
|
+
code: zod.z.ZodIssueCode.custom,
|
|
2461
|
+
message: "A confirmed publication requires its reviewed preview receipt",
|
|
2462
|
+
path: ["previewReceipt"]
|
|
2463
|
+
});
|
|
2464
|
+
return;
|
|
2465
|
+
}
|
|
2466
|
+
if (request.op === "hub.policy" && request.subscribe === void 0 && request.autoPush === void 0) {
|
|
2467
|
+
ctx.addIssue({
|
|
2468
|
+
code: zod.z.ZodIssueCode.custom,
|
|
2469
|
+
message: "A hub policy change must name subscribe or autoPush",
|
|
2470
|
+
path: ["subscribe"]
|
|
2471
|
+
});
|
|
2472
|
+
return;
|
|
2473
|
+
}
|
|
2249
2474
|
if (request.op === "sessions.answer") {
|
|
2250
2475
|
if (request.askId !== void 0) {
|
|
2251
2476
|
if (!request.askId)
|
|
@@ -2321,7 +2546,15 @@ desktopRequestUnion.superRefine(
|
|
|
2321
2546
|
}
|
|
2322
2547
|
return;
|
|
2323
2548
|
}
|
|
2324
|
-
if (request.op !== "agent.publish" && request.op !== "agent.republish") {
|
|
2549
|
+
if (request.op !== "agent.publish" && request.op !== "agent.republish" && request.op !== "team.publish") {
|
|
2550
|
+
return;
|
|
2551
|
+
}
|
|
2552
|
+
if ((request.subscribe !== void 0 || request.autoPush !== void 0 || request.confirmPublicEgress !== void 0) && !request.requestId) {
|
|
2553
|
+
ctx.addIssue({
|
|
2554
|
+
code: zod.z.ZodIssueCode.custom,
|
|
2555
|
+
message: "Initial link policy needs a durable publication request ID",
|
|
2556
|
+
path: ["requestId"]
|
|
2557
|
+
});
|
|
2325
2558
|
return;
|
|
2326
2559
|
}
|
|
2327
2560
|
if (Boolean(request.visibility === "org") !== Boolean(request.tenantId)) {
|
|
@@ -2332,6 +2565,44 @@ desktopRequestUnion.superRefine(
|
|
|
2332
2565
|
}
|
|
2333
2566
|
}
|
|
2334
2567
|
);
|
|
2568
|
+
zod.z.object({
|
|
2569
|
+
step: zod.z.string(),
|
|
2570
|
+
blocked_on: zod.z.string(),
|
|
2571
|
+
configured: zod.z.boolean(),
|
|
2572
|
+
ready: zod.z.boolean(),
|
|
2573
|
+
verified: zod.z.boolean(),
|
|
2574
|
+
url: zod.z.string().nullable(),
|
|
2575
|
+
credential_id: zod.z.number().int().positive().nullable(),
|
|
2576
|
+
identity_label: zod.z.string().nullable(),
|
|
2577
|
+
credential_choices: zod.z.array(
|
|
2578
|
+
zod.z.object({
|
|
2579
|
+
id: zod.z.number().int().positive(),
|
|
2580
|
+
identity_label: zod.z.string().nullable().optional()
|
|
2581
|
+
}).passthrough()
|
|
2582
|
+
).default([]),
|
|
2583
|
+
quote: zod.z.object({
|
|
2584
|
+
monthly_price_usd: zod.z.string().nullable(),
|
|
2585
|
+
positive_balance: zod.z.boolean(),
|
|
2586
|
+
eligible: zod.z.boolean(),
|
|
2587
|
+
account_valid: zod.z.boolean()
|
|
2588
|
+
}).passthrough().nullable(),
|
|
2589
|
+
receipts: zod.z.array(zod.z.object({ step: zod.z.string(), ok: zod.z.boolean(), text: zod.z.string() })).default([]),
|
|
2590
|
+
remedy: zod.z.object({
|
|
2591
|
+
kind: zod.z.string(),
|
|
2592
|
+
text: zod.z.string(),
|
|
2593
|
+
command: zod.z.string().nullable().optional(),
|
|
2594
|
+
url: zod.z.string().nullable().optional()
|
|
2595
|
+
}).nullable(),
|
|
2596
|
+
source: zod.z.string(),
|
|
2597
|
+
in_progress: zod.z.boolean().default(false),
|
|
2598
|
+
progress: zod.z.array(zod.z.string()).default([]),
|
|
2599
|
+
active_credential_id: zod.z.number().int().positive().nullable().default(null),
|
|
2600
|
+
// Backend facts, separate from receipts: an emitted receipt does not prove
|
|
2601
|
+
// an ambiguous activation succeeded or was rolled back.
|
|
2602
|
+
billing_outcome: zod.z.string().optional(),
|
|
2603
|
+
reservation_outcome: zod.z.string().optional(),
|
|
2604
|
+
failure_stage: zod.z.string().optional()
|
|
2605
|
+
}).passthrough();
|
|
2335
2606
|
const LEDGER_READ_OPS = /* @__PURE__ */ new Set([
|
|
2336
2607
|
"analytics.get",
|
|
2337
2608
|
/*
|
|
@@ -3092,6 +3363,22 @@ const api = {
|
|
|
3092
3363
|
* moves to a session (the hand-over) mints a nonce main never sends back here.
|
|
3093
3364
|
*/
|
|
3094
3365
|
browser: {
|
|
3366
|
+
pageControl: (tabId, action, query, forward, next) => electron.ipcRenderer.invoke(
|
|
3367
|
+
"browser-page-control",
|
|
3368
|
+
tabId,
|
|
3369
|
+
action,
|
|
3370
|
+
query,
|
|
3371
|
+
forward,
|
|
3372
|
+
next
|
|
3373
|
+
),
|
|
3374
|
+
setChordFocus: (focused) => electron.ipcRenderer.invoke("browser-set-chord-focus", focused),
|
|
3375
|
+
reopenTab: (sessionId2) => electron.ipcRenderer.invoke("browser-reopen-tab", sessionId2 ?? null),
|
|
3376
|
+
focusPage: () => electron.ipcRenderer.invoke("browser-focus-page"),
|
|
3377
|
+
onChord: (callback) => {
|
|
3378
|
+
const listener = (_event, message) => callback(message);
|
|
3379
|
+
electron.ipcRenderer.on("browser-chord", listener);
|
|
3380
|
+
return () => electron.ipcRenderer.removeListener("browser-chord", listener);
|
|
3381
|
+
},
|
|
3095
3382
|
state: () => electron.ipcRenderer.invoke("browser-state"),
|
|
3096
3383
|
/** `sessionId` attributes the tab to the conversation it was opened from
|
|
3097
3384
|
* (design R1); `null` is a tab that belongs to no conversation, which is what
|
|
@@ -3105,7 +3392,7 @@ const api = {
|
|
|
3105
3392
|
closeTabs: (intent) => electron.ipcRenderer.invoke("browser-close-tabs", intent),
|
|
3106
3393
|
activateTab: (tabId) => electron.ipcRenderer.invoke("browser-activate-tab", tabId),
|
|
3107
3394
|
navigate: (url) => electron.ipcRenderer.invoke("browser-navigate", url),
|
|
3108
|
-
reload: () => electron.ipcRenderer.invoke("browser-reload"),
|
|
3395
|
+
reload: (hard = false) => electron.ipcRenderer.invoke("browser-reload", hard),
|
|
3109
3396
|
stop: () => electron.ipcRenderer.invoke("browser-stop"),
|
|
3110
3397
|
history: (direction) => electron.ipcRenderer.invoke("browser-history", direction),
|
|
3111
3398
|
setContentRect: (rect) => electron.ipcRenderer.invoke("browser-set-content-rect", rect),
|
|
@@ -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-BH6SqqsG.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-C2AhDEdD.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-C7iGmYcY.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-C2AhDEdD.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-DpCpkTfN.js → agent-details-page-D6Sf3QUC.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{r as
|
|
1
|
+
import{r as F,j as e,c as Z}from"./index-B-uibf5k.js";import{i as he,a as xe}from"./publication-validation-DLHcjuJy.js";import{C as ie,u as K,B as C,aH as O,aG as Y,aI as B,aJ as re,aK as oe,aL as ge,$ as je,aM as fe,aN as ee,aF as pe,aO as ye,aP as ve}from"./conversation-input-sync-B5HfvhyR.js";import{c as we,L as be,T as te,B as o,S as I,h as le,i as M,j as z,k as w,X as Ce,l as b,A as se,m as ae,n as ne}from"./error-boundary-B4K6A3dS.js";import{f as W,h as Ne,u as Ae,i as ke,a as Se,b as De,c as Ee,O as Fe,H as Te,A as _e}from"./use-download-agent-mutation-B87MG4sW.js";import{b as Pe,c as qe,u as Le,d as Me,g as ze,e as Ie,f as Ke}from"./use-memberships-query-DCEm9yOI.js";import{S as Oe,a as Be,A as Qe,b as Ue,c as Re}from"./index-o-e57W52.js";import"./messages-Bf6oXWsi.js";import"./en-US-BcB1DWxG.js";import"./book-open-BWUyDXVa.js";import"./console-mirror-cPzOwzR9.js";/**
|
|
2
2
|
* @license lucide-react v0.507.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const $e=[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]],We=De("message-circle",$e),F={all:["agent-comments"],list:t=>[...F.all,"list",t]},Ye=({agentId:t,enabled:r=!0})=>ie({queryKey:F.list(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch comments.");return(await he(t)).result},enabled:!!t&&r,staleTime:2*60*1e3,gcTime:5*60*1e3,refetchOnWindowFocus:!0}),He=()=>{const t=K(),{isAuthenticated:r}=C();return O({mutationFn:async a=>{const{agentId:i,data:s}=a;if(!r)throw new Error("Authentication required.");return xe(i,s)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),Q("Comment posted")},onError:a=>{H(`Failed to post comment: ${a.message}`)}})},Ve=()=>{const t=K(),{isAuthenticated:r}=C();return O({mutationFn:async a=>{const{agentId:i,commentId:s,data:l}=a;if(!r)throw new Error("Authentication required.");return ge(i,s,l)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),Q("Comment updated")},onError:a=>{H(`Failed to update comment: ${a.message}`)}})},Xe=()=>{const t=K(),{isAuthenticated:r}=C();return O({mutationFn:async a=>{const{agentId:i,commentId:s}=a;if(!r)throw new Error("Authentication required.");return je(i,s)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),Q("Comment deleted")},onError:a=>{H(`Failed to delete comment: ${a.message}`)}})},Ze=({agentId:t})=>{const{isAuthenticated:r,user:a}=C(),[i,s]=E.useState(""),[l,f]=E.useState(null),[h,N]=E.useState(""),{data:d,isLoading:p,error:A}=Ye({agentId:t}),_=d?.records??[],x=He(),k=Ve(),U=Xe(),S=async n=>{if(n.preventDefault(),!(!i.trim()||!r||!t))try{await x.mutateAsync({agentId:t,data:{text:i}}),s("")}catch(c){console.error("Submit comment error caught in component:",c)}},B=(n,c)=>{f(n),N(c)},m=()=>{f(null),N("")},y=async()=>{if(!(!l||!h.trim()||!r||!t))try{await k.mutateAsync({agentId:t,commentId:l,data:{text:h}}),m()}catch(n){console.error("Update comment error caught in component:",n)}},v=async n=>{if(!(!r||!t)&&window.confirm("Are you sure you want to delete this comment?"))try{await U.mutateAsync({agentId:t,commentId:n})}catch(c){console.error("Delete comment error caught in component:",c)}},R=n=>r&&a?.radientUser?.account?.id===n.account_id;return e.jsxs("div",{className:"mt-6",children:[e.jsx("h2",{className:"mb-4 font-semibold text-heading text-ink",children:"Comments"}),r?e.jsxs("div",{className:"mb-4 flex flex-col gap-1.5",children:[e.jsxs(Te,{htmlFor:"new-comment",children:[e.jsx(We,{size:14,"aria-hidden":"true"}),"Leave a comment"]}),e.jsxs("form",{onSubmit:S,className:"flex flex-col gap-3",children:[e.jsx(te,{id:"new-comment",placeholder:"Share your thoughts...",rows:3,value:i,onChange:n=>s(n.target.value),required:!0}),e.jsx(o,{type:"submit",variant:"primary",disabled:x.isPending||!i.trim(),className:"self-end",children:x.isPending?e.jsx(I,{size:"sm",label:"Posting comment"}):"Post comment"})]})]}):e.jsx("p",{className:"mt-6 mb-4 text-body-sm text-ink-muted",children:"Sign in to leave comments."}),e.jsx(le,{className:"my-6"}),p&&e.jsx("ul",{className:"flex flex-col",children:[...Array(3)].map((n,c)=>e.jsxs("li",{className:"flex gap-3 pb-6",children:[e.jsx(M,{children:e.jsx(z,{children:e.jsx(w,{className:"size-full"})})}),e.jsxs("div",{className:"flex w-full flex-col gap-1.5",children:[e.jsx(w,{className:"h-3.5 w-24"}),e.jsx(w,{className:"h-3 w-15"}),e.jsx(w,{className:"mt-2 h-3.5 w-full"}),e.jsx(w,{className:"h-3.5 w-4/5"})]})]},`skeleton-${c}`))}),A&&e.jsxs("p",{role:"alert",className:"my-6 text-body-sm text-danger",children:["Failed to load comments: ",A.message]}),!p&&!A&&e.jsx("ul",{className:"flex flex-col gap-6",children:_.length===0?e.jsx("li",{className:"text-body-sm text-ink-muted",children:"No comments yet. Yours would be the first."}):_.map(n=>l===n.id?e.jsxs("li",{className:"flex gap-3",children:[e.jsx(M,{children:e.jsx(z,{children:n.account_metadata?.name?.charAt(0).toUpperCase()||"?"})}),e.jsxs("div",{className:"flex w-full flex-col gap-2",children:[e.jsx(te,{rows:3,value:h,onChange:c=>N(c.target.value),autoFocus:!0,"aria-label":"Edit comment"}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(o,{variant:"secondary",size:"sm",onClick:m,children:[e.jsx(Ee,{}),"Cancel"]}),e.jsxs(o,{variant:"primary",size:"sm",onClick:y,disabled:k.isPending||!h.trim(),children:[k.isPending?e.jsx(I,{size:"xs",label:"Saving comment"}):e.jsx(Oe,{}),"Save"]})]})]})]},n.id):e.jsxs("li",{className:"flex gap-3",children:[e.jsx(M,{children:e.jsx(z,{children:n.account_metadata?.name?.charAt(0).toUpperCase()||"?"})}),e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex w-full items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-body text-ink",children:n.account_metadata?.name||"Anonymous"}),e.jsxs("p",{className:"text-ink-muted text-meta",children:[Y(new Date(n.created_at))," ","ago"]})]}),R(n)&&e.jsxs("div",{className:"flex gap-0.5",children:[e.jsx(b,{content:"Edit comment",children:e.jsx(o,{variant:"ghost",size:"icon-sm",onClick:()=>B(n.id,n.text),disabled:!!l,"aria-label":"Edit comment",children:e.jsx(Qe,{})})}),e.jsx(b,{content:"Delete comment",children:e.jsx(o,{variant:"ghost",size:"icon-sm",onClick:()=>v(n.id),disabled:!!l,"aria-label":"Delete comment",children:e.jsx(re,{})})})]})]}),e.jsx("p",{className:"mt-2 text-body-sm text-ink whitespace-pre-wrap",children:n.text})]})]},n.id))})]})},V={all:["agent-details"],detail:t=>[...V.all,t]},Ge=({agentId:t,enabled:r=!0})=>ie({queryKey:V.detail(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch details.");return await fe(t)},select:i=>i.result,enabled:!!t&&r,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1}),Je=()=>{const t=K(),r=oe(),{isAuthenticated:a}=C();return O({mutationFn:async({agentId:s})=>{if(!a)throw new Error("Authentication required to delist an agent.");if(!s)throw new Error("Agent ID is required to delist.");return ye(s)},onSuccess:(s,l)=>{Q("Agent delisted"),t.invalidateQueries({queryKey:V.detail(l.agentId)}),pe(t),r("/agent-hub")},onError:s=>{console.error("Delist agent error:",s)}})},et={like:"The like did not go through",favourite:"The favourite did not go through",download:"The download did not start",delist:"The agent was not delisted"},W=({children:t})=>e.jsx("span",{className:"inline-flex h-4 min-w-5 items-center text-meta text-ink-muted",children:t}),mt=()=>{const{agentId:t}=be(),r=oe(),{isAuthenticated:a,user:i}=C(),{data:s,isLoading:l,isFetching:f,error:h,refetch:N}=Ge({agentId:t??"",enabled:!!t}),d=s?.visibility==="org",p=s?Fe(s.name):"",{memberships:A}=ve({enabled:d}),_=d?A.find(ue=>ue.tenant_id===s?.tenant_id)?.tenant_name??null:null,{statuses:x,isKnown:k,isError:U,isFetching:S,refetch:B}=_e({agentIds:t&&!d?[t]:[]}),m=Pe(k,x,t),y=m&&x[t??""]?.liked===!0,v=m&&x[t??""]?.favourited===!0,R=s?.like_count??0,n=s?.favourite_count??0,c=s?.download_count??0,P=qe(),q=Le(),D=Me(),g=Je(),[ce,L]=E.useState(!1),[j,u]=E.useState(null),$=!!i&&!!s&&i.radientUser?.account?.id===s.account_id,X=()=>{!t||!a||P.isPending||(u(null),P.mutate({agentId:t,isCurrentlyLiked:y},{onError:()=>u("like")}))},Z=()=>{!t||!a||q.isPending||(u(null),q.mutate({agentId:t,isCurrentlyFavourited:v},{onError:()=>u("favourite")}))},G=()=>{!t||!s||D.isPending||(u(null),D.mutate({agentId:s.id,agentName:s.name},{onError:()=>u("download")}))},de=()=>{!t||!$||g.isPending||(u(null),g.mutate({agentId:t},{onError:()=>u("delist")}),L(!1))},T=j?j==="like"?{action:"like",error:P.error,retry:X}:j==="favourite"?{action:"favourite",error:q.error,retry:Z}:j==="download"?{action:"download",error:D.error,retry:G}:{action:"delist",error:g.error,retry:void 0}:null,me=()=>{r("/agent-hub")};return l?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(I,{label:"Loading agent details"})}):h?e.jsx("div",{className:"flex h-full items-center justify-center p-6",children:e.jsxs(se,{variant:"danger",className:"max-w-2xl",children:[e.jsx(ae,{children:"This agent could not be loaded"}),e.jsx(ne,{children:Ce("The Radient agent catalogue did not answer.",h)}),e.jsx("div",{className:"mt-2",children:e.jsx(o,{variant:"outline",size:"sm",onClick:()=>void N(),disabled:f,"aria-busy":f,children:f?"Trying…":"Try again"})})]})}):s?e.jsxs("div",{className:"m-6 flex flex-1 flex-col rounded-md bg-surface p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-4",children:[e.jsx(o,{variant:"ghost",size:"icon",onClick:me,"aria-label":"Back to Agent hub",children:e.jsx(Ue,{})}),e.jsx(M,{className:"size-11 shrink-0",children:e.jsx(z,{children:e.jsx(Be,{size:22,"aria-hidden":"true"})})}),e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("h1",{className:"truncate text-display text-ink",children:p}),d&&e.jsx(ze,{orgName:_})]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[!d&&e.jsxs(e.Fragment,{children:[e.jsx(b,{content:"Sign in to Radient to use this feature",disabled:a,children:e.jsx("span",{children:e.jsxs(o,{variant:"ghost",size:"sm",onClick:X,disabled:!a||P.isPending||!m,"aria-label":m?y?"Unlike agent":"Like agent":"Like state unavailable",className:J(y&&"text-danger"),children:[e.jsx(Ie,{fill:y?"currentColor":"none"}),e.jsx(W,{children:R})]})})}),e.jsx(b,{content:"Sign in to Radient to use this feature",disabled:a,children:e.jsx("span",{children:e.jsxs(o,{variant:"ghost",size:"sm",onClick:Z,disabled:!a||q.isPending||!m,"aria-label":m?v?"Unfavourite agent":"Favourite agent":"Favourite state unavailable",className:J(v&&"text-warning"),children:[e.jsx(Re,{fill:v?"currentColor":"none"}),e.jsx(W,{children:n})]})})})]}),e.jsx(b,{content:"Download agent to your computer",children:e.jsx("span",{children:e.jsxs(o,{variant:"ghost",size:"icon",onClick:G,disabled:D.isPending,"aria-label":"Download agent",className:"ml-1",children:[e.jsx(Ne,{}),e.jsx(W,{children:D.isPending?e.jsx(w,{className:"h-3.5 w-5"}):c})]})})}),$&&!d&&e.jsx(b,{content:"Permanently delist this agent from Agent hub",children:e.jsx("span",{children:e.jsx(o,{variant:"ghost",size:"icon",onClick:()=>L(!0),disabled:g.isPending,"aria-label":"Delist agent",className:"ml-1 text-danger hover:bg-danger-wash hover:text-danger",children:e.jsx(re,{})})})})]})]}),a&&U&&!j&&!d&&e.jsxs("output",{className:"mb-6 flex flex-wrap items-center gap-2 text-meta text-warning","data-testid":"agent-details-status-unknown",children:[e.jsx("span",{children:"Your likes and favourites could not be read, so this agent's viewer state is not shown."}),e.jsx(o,{variant:"ghost",size:"sm",onClick:()=>void B(),disabled:S,"aria-busy":S,children:S?"Trying…":"Try again"})]}),T&&j&&e.jsxs(se,{variant:"danger",className:"mb-6","data-testid":"agent-details-error",children:[e.jsx(ae,{children:et[j]}),e.jsx(ne,{children:we(T.action,T.error,p)}),T.retry&&e.jsx("div",{className:"mt-2",children:e.jsx(o,{variant:"outline",size:"sm",onClick:T.retry,children:"Try again"})})]}),e.jsx(Ke,{tags:s.tags,categories:s.categories}),e.jsxs("div",{className:"mt-4 mb-6 flex flex-col gap-2 text-body-sm text-ink-muted",children:[e.jsxs("p",{children:["Created by: ",s.account_metadata?.name??"Unknown",s.account_metadata?.email?` (${s.account_metadata.email})`:""]}),e.jsxs("p",{children:["Created: ",Y(new Date(s.created_at))," ago (",ee(s.created_at),")"]}),e.jsxs("p",{children:["Last modified: ",Y(new Date(s.updated_at))," ","ago (",ee(s.updated_at),")"]})]}),e.jsx("div",{className:"mt-2 mb-8 leading-relaxed text-body text-ink",children:s.description||"No description provided."}),e.jsx(le,{className:"my-6"}),!d&&e.jsx(Ze,{agentId:s.id}),e.jsx(Ae,{open:ce,onClose:()=>L(!1),title:"Delist this agent?",maxWidth:"xs",actions:e.jsxs(e.Fragment,{children:[e.jsx(ke,{onClick:()=>L(!1),children:"Cancel"}),e.jsx(Se,{onClick:()=>{!t||!$||g.isPending||de()},disabled:g.isPending,children:g.isPending?e.jsx(I,{size:"sm",label:"Delisting agent"}):"Delist"})]}),dialogProps:{"aria-describedby":"delist-dialog-description"},children:e.jsxs("div",{id:"delist-dialog-description",className:"text-body text-ink-muted",children:['This takes "',p,'" off the hub straight away, and nobody will be able to download it. You can upload it again later.']})})]}):e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx("p",{className:"text-body text-ink",children:"Agent not found."})})};export{mt as AgentDetailsPage};
|
|
6
|
+
*/const $e=[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]],He=we("message-circle",$e),T={all:["agent-comments"],list:t=>[...T.all,"list",t]},We=({agentId:t,enabled:r=!0})=>ie({queryKey:T.list(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch comments.");return(await Pe(t)).result},enabled:!!t&&r,staleTime:2*60*1e3,gcTime:5*60*1e3,refetchOnWindowFocus:!0}),Ye=()=>{const t=K(),{isAuthenticated:r}=C();return O({mutationFn:async a=>{const{agentId:i,data:s}=a;if(!r)throw new Error("Authentication required.");return qe(i,s)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:T.list(i.agentId)}),B("Comment posted")},onError:a=>{Y(`Failed to post comment: ${a.message}`)}})},Ge=()=>{const t=K(),{isAuthenticated:r}=C();return O({mutationFn:async a=>{const{agentId:i,commentId:s,data:l}=a;if(!r)throw new Error("Authentication required.");return Le(i,s,l)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:T.list(i.agentId)}),B("Comment updated")},onError:a=>{Y(`Failed to update comment: ${a.message}`)}})},Je=()=>{const t=K(),{isAuthenticated:r}=C();return O({mutationFn:async a=>{const{agentId:i,commentId:s}=a;if(!r)throw new Error("Authentication required.");return Me(i,s)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:T.list(i.agentId)}),B("Comment deleted")},onError:a=>{Y(`Failed to delete comment: ${a.message}`)}})},Ve=({agentId:t})=>{const{isAuthenticated:r,user:a}=C(),[i,s]=F.useState(""),[l,f]=F.useState(null),[h,N]=F.useState(""),{data:d,isLoading:p,error:A}=We({agentId:t}),_=d?.records??[],x=Ye(),k=Ge(),Q=Je(),S=async n=>{if(n.preventDefault(),!(!i.trim()||!r||!t))try{await x.mutateAsync({agentId:t,data:{text:i}}),s("")}catch(c){console.error("Submit comment error caught in component:",c)}},U=(n,c)=>{f(n),N(c)},m=()=>{f(null),N("")},y=async()=>{if(!(!l||!h.trim()||!r||!t))try{await k.mutateAsync({agentId:t,commentId:l,data:{text:h}}),m()}catch(n){console.error("Update comment error caught in component:",n)}},v=async n=>{if(!(!r||!t)&&window.confirm("Are you sure you want to delete this comment?"))try{await Q.mutateAsync({agentId:t,commentId:n})}catch(c){console.error("Delete comment error caught in component:",c)}},R=n=>r&&a?.radientUser?.account?.id===n.account_id;return e.jsxs("div",{className:"mt-6",children:[e.jsx("h2",{className:"mb-4 font-semibold text-heading text-ink",children:"Comments"}),r?e.jsxs("div",{className:"mb-4 flex flex-col gap-1.5",children:[e.jsxs(be,{htmlFor:"new-comment",children:[e.jsx(He,{size:14,"aria-hidden":"true"}),"Leave a comment"]}),e.jsxs("form",{onSubmit:S,className:"flex flex-col gap-3",children:[e.jsx(te,{id:"new-comment",placeholder:"Share your thoughts...",rows:3,value:i,onChange:n=>s(n.target.value),required:!0}),e.jsx(o,{type:"submit",variant:"primary",disabled:x.isPending||!i.trim(),className:"self-end",children:x.isPending?e.jsx(I,{size:"sm",label:"Posting comment"}):"Post comment"})]})]}):e.jsx("p",{className:"mt-6 mb-4 text-body-sm text-ink-muted",children:"Sign in to leave comments."}),e.jsx(le,{className:"my-6"}),p&&e.jsx("ul",{className:"flex flex-col",children:[...Array(3)].map((n,c)=>e.jsxs("li",{className:"flex gap-3 pb-6",children:[e.jsx(M,{children:e.jsx(z,{children:e.jsx(w,{className:"size-full"})})}),e.jsxs("div",{className:"flex w-full flex-col gap-1.5",children:[e.jsx(w,{className:"h-3.5 w-24"}),e.jsx(w,{className:"h-3 w-15"}),e.jsx(w,{className:"mt-2 h-3.5 w-full"}),e.jsx(w,{className:"h-3.5 w-4/5"})]})]},`skeleton-${c}`))}),A&&e.jsxs("p",{role:"alert",className:"my-6 text-body-sm text-danger",children:["Failed to load comments: ",A.message]}),!p&&!A&&e.jsx("ul",{className:"flex flex-col gap-6",children:_.length===0?e.jsx("li",{className:"text-body-sm text-ink-muted",children:"No comments yet. Yours would be the first."}):_.map(n=>l===n.id?e.jsxs("li",{className:"flex gap-3",children:[e.jsx(M,{children:e.jsx(z,{children:n.account_metadata?.name?.charAt(0).toUpperCase()||"?"})}),e.jsxs("div",{className:"flex w-full flex-col gap-2",children:[e.jsx(te,{rows:3,value:h,onChange:c=>N(c.target.value),autoFocus:!0,"aria-label":"Edit comment"}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(o,{variant:"secondary",size:"sm",onClick:m,children:[e.jsx(Ce,{}),"Cancel"]}),e.jsxs(o,{variant:"primary",size:"sm",onClick:y,disabled:k.isPending||!h.trim(),children:[k.isPending?e.jsx(I,{size:"xs",label:"Saving comment"}):e.jsx(Oe,{}),"Save"]})]})]})]},n.id):e.jsxs("li",{className:"flex gap-3",children:[e.jsx(M,{children:e.jsx(z,{children:n.account_metadata?.name?.charAt(0).toUpperCase()||"?"})}),e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex w-full items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-body text-ink",children:n.account_metadata?.name||"Anonymous"}),e.jsxs("p",{className:"text-ink-muted text-meta",children:[W(new Date(n.created_at))," ","ago"]})]}),R(n)&&e.jsxs("div",{className:"flex gap-0.5",children:[e.jsx(b,{content:"Edit comment",children:e.jsx(o,{variant:"ghost",size:"icon-sm",onClick:()=>U(n.id,n.text),disabled:!!l,"aria-label":"Edit comment",children:e.jsx(Be,{})})}),e.jsx(b,{content:"Delete comment",children:e.jsx(o,{variant:"ghost",size:"icon-sm",onClick:()=>v(n.id),disabled:!!l,"aria-label":"Delete comment",children:e.jsx(re,{})})})]})]}),e.jsx("p",{className:"mt-2 text-body-sm text-ink whitespace-pre-wrap",children:n.text})]})]},n.id))})]})},G={all:["agent-details"],detail:t=>[...G.all,t]},Xe=({agentId:t,enabled:r=!0})=>ie({queryKey:G.detail(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch details.");return await ze(t)},select:i=>i.result,enabled:!!t&&r,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1}),Ze=()=>{const t=K(),r=oe(),{isAuthenticated:a}=C();return O({mutationFn:async({agentId:s})=>{if(!a)throw new Error("Authentication required to delist an agent.");if(!s)throw new Error("Agent ID is required to delist.");return Ie(s)},onSuccess:(s,l)=>{B("Agent delisted"),t.invalidateQueries({queryKey:G.detail(l.agentId)}),he(t),r("/agent-hub")},onError:s=>{console.error("Delist agent error:",s)}})},et={like:"The like did not go through",favourite:"The favourite did not go through",download:"The download did not start",delist:"The agent was not delisted"},H=({children:t})=>e.jsx("span",{className:"inline-flex h-4 min-w-5 items-center text-meta text-ink-muted",children:t}),ut=()=>{const{agentId:t}=ge(),r=oe(),{isAuthenticated:a,user:i}=C(),{data:s,isLoading:l,isFetching:f,error:h,refetch:N}=Xe({agentId:t??"",enabled:!!t}),d=s?.visibility==="org",p=s?Ne(s.name):"",{memberships:A}=Ke({enabled:d}),_=d?A.find(ue=>ue.tenant_id===s?.tenant_id)?.tenant_name??null:null,{statuses:x,isKnown:k,isError:Q,isFetching:S,refetch:U}=Ae({agentIds:t&&!d?[t]:[]}),m=ke(k,x,t),y=m&&x[t??""]?.liked===!0,v=m&&x[t??""]?.favourited===!0,R=s?.like_count??0,n=s?.favourite_count??0,c=s?.download_count??0,P=Se(),q=De(),D=Ee(),g=Ze(),[ce,L]=F.useState(!1),[j,u]=F.useState(null),$=!!i&&!!s&&i.radientUser?.account?.id===s.account_id,J=()=>{!t||!a||P.isPending||(u(null),P.mutate({agentId:t,isCurrentlyLiked:y},{onError:()=>u("like")}))},V=()=>{!t||!a||q.isPending||(u(null),q.mutate({agentId:t,isCurrentlyFavourited:v},{onError:()=>u("favourite")}))},X=()=>{!t||!s||D.isPending||(u(null),D.mutate({agentId:s.id,agentName:s.name},{onError:()=>u("download")}))},de=()=>{!t||!$||g.isPending||(u(null),g.mutate({agentId:t},{onError:()=>u("delist")}),L(!1))},E=j?j==="like"?{action:"like",error:P.error,retry:J}:j==="favourite"?{action:"favourite",error:q.error,retry:V}:j==="download"?{action:"download",error:D.error,retry:X}:{action:"delist",error:g.error,retry:void 0}:null,me=()=>{r("/agent-hub")};return l?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(I,{label:"Loading agent details"})}):h?e.jsx("div",{className:"flex h-full items-center justify-center p-6",children:e.jsxs(se,{variant:"danger",className:"max-w-2xl",children:[e.jsx(ae,{children:"This agent could not be loaded"}),e.jsx(ne,{children:je("The Radient agent catalogue did not answer.",h)}),e.jsx("div",{className:"mt-2",children:e.jsx(o,{variant:"outline",size:"sm",onClick:()=>void N(),disabled:f,"aria-busy":f,children:f?"Trying…":"Try again"})})]})}):s?e.jsxs("div",{className:"m-6 flex flex-1 flex-col rounded-md bg-surface p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-4",children:[e.jsx(o,{variant:"ghost",size:"icon",onClick:me,"aria-label":"Back to Agent hub",children:e.jsx(Qe,{})}),e.jsx(M,{className:"size-11 shrink-0",children:e.jsx(z,{children:e.jsx(Ue,{size:22,"aria-hidden":"true"})})}),e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("h1",{className:"truncate text-display text-ink",children:p}),d&&e.jsx(Fe,{orgName:_})]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[!d&&e.jsxs(e.Fragment,{children:[e.jsx(b,{content:"Sign in to Radient to use this feature",disabled:a,children:e.jsx("span",{children:e.jsxs(o,{variant:"ghost",size:"sm",onClick:J,disabled:!a||P.isPending||!m,"aria-label":m?y?"Unlike agent":"Like agent":"Like state unavailable",className:Z(y&&"text-danger"),children:[e.jsx(Te,{fill:y?"currentColor":"none"}),e.jsx(H,{children:R})]})})}),e.jsx(b,{content:"Sign in to Radient to use this feature",disabled:a,children:e.jsx("span",{children:e.jsxs(o,{variant:"ghost",size:"sm",onClick:V,disabled:!a||q.isPending||!m,"aria-label":m?v?"Unfavourite agent":"Favourite agent":"Favourite state unavailable",className:Z(v&&"text-warning"),children:[e.jsx(Re,{fill:v?"currentColor":"none"}),e.jsx(H,{children:n})]})})})]}),e.jsx(b,{content:"Download agent to your computer",children:e.jsx("span",{children:e.jsxs(o,{variant:"ghost",size:"icon",onClick:X,disabled:D.isPending,"aria-label":"Download agent",className:"ml-1",children:[e.jsx(fe,{}),e.jsx(H,{children:D.isPending?e.jsx(w,{className:"h-3.5 w-5"}):c})]})})}),$&&!d&&e.jsx(b,{content:"Permanently delist this agent from Agent hub",children:e.jsx("span",{children:e.jsx(o,{variant:"ghost",size:"icon",onClick:()=>L(!0),disabled:g.isPending,"aria-label":"Delist agent",className:"ml-1 text-danger hover:bg-danger-wash hover:text-danger",children:e.jsx(re,{})})})})]})]}),a&&Q&&!j&&!d&&e.jsxs("output",{className:"mb-6 flex flex-wrap items-center gap-2 text-meta text-warning","data-testid":"agent-details-status-unknown",children:[e.jsx("span",{children:"Your likes and favourites could not be read, so this agent's viewer state is not shown."}),e.jsx(o,{variant:"ghost",size:"sm",onClick:()=>void U(),disabled:S,"aria-busy":S,children:S?"Trying…":"Try again"})]}),E&&j&&e.jsxs(se,{variant:"danger",className:"mb-6","data-testid":"agent-details-error",children:[e.jsx(ae,{children:et[j]}),e.jsx(ne,{children:xe(E.action,E.error,p)}),E.retry&&e.jsx("div",{className:"mt-2",children:e.jsx(o,{variant:"outline",size:"sm",onClick:E.retry,children:"Try again"})})]}),e.jsx(_e,{tags:s.tags,categories:s.categories}),e.jsxs("div",{className:"mt-4 mb-6 flex flex-col gap-2 text-body-sm text-ink-muted",children:[e.jsxs("p",{children:["Created by: ",s.account_metadata?.name??"Unknown",s.account_metadata?.email?` (${s.account_metadata.email})`:""]}),e.jsxs("p",{children:["Created: ",W(new Date(s.created_at))," ago (",ee(s.created_at),")"]}),e.jsxs("p",{children:["Last modified: ",W(new Date(s.updated_at))," ","ago (",ee(s.updated_at),")"]})]}),e.jsx("div",{className:"mt-2 mb-8 leading-relaxed text-body text-ink",children:s.description||"No description provided."}),e.jsx(le,{className:"my-6"}),!d&&e.jsx(Ve,{agentId:s.id}),e.jsx(pe,{open:ce,onClose:()=>L(!1),title:"Delist this agent?",maxWidth:"xs",actions:e.jsxs(e.Fragment,{children:[e.jsx(ye,{onClick:()=>L(!1),children:"Cancel"}),e.jsx(ve,{onClick:()=>{!t||!$||g.isPending||de()},disabled:g.isPending,children:g.isPending?e.jsx(I,{size:"sm",label:"Delisting agent"}):"Delist"})]}),dialogProps:{"aria-describedby":"delist-dialog-description"},children:e.jsxs("div",{id:"delist-dialog-description",className:"text-body text-ink-muted",children:['This takes "',p,'" off the hub straight away, and nobody will be able to download it. You can upload it again later.']})})]}):e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx("p",{className:"text-body text-ink",children:"Agent not found."})})};export{ut as AgentDetailsPage};
|