local-operator-ui 0.31.3 → 0.31.5
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 +214 -5
- package/out/renderer/assets/{_basePickBy-BylNVSy4.js → _basePickBy-BFnTyl9Q.js} +1 -1
- package/out/renderer/assets/{_baseUniq-N5s01fZu.js → _baseUniq-DD9jcRtU.js} +1 -1
- package/out/renderer/assets/{agent-details-page-Djr2KqW1.js → agent-details-page-G90FKyVP.js} +1 -1
- package/out/renderer/assets/{agent-hub-page-CI8e76gX.js → agent-hub-page-BaU9D2Uf.js} +1 -1
- package/out/renderer/assets/{agents-page-BKSGTs9K.js → agents-page-BWmJb3M1.js} +2 -2
- package/out/renderer/assets/{arc-DxeBrC4f.js → arc-D4G69weg.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-Djk4tH2x.js → architectureDiagram-IEHRJDOE-7e2mo6tq.js} +1 -1
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-D6dE8QTG.js → blockDiagram-JOT3LUYC-BVljD84R.js} +1 -1
- package/out/renderer/assets/{book-open-C0HO-hEg.js → book-open-B8nHgs3o.js} +1 -1
- package/out/renderer/assets/browser-page-Dc7F-WKs.js +1 -0
- package/out/renderer/assets/{browser-webauthn-prompt-hHodC0QI.js → browser-webauthn-prompt-BiNyKO73.js} +1 -1
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-CqABmgTA.js → c4Diagram-VJAJSXHY-JwdJCFiM.js} +1 -1
- package/out/renderer/assets/channel-DY5WkW10.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-RtQu8GIN.js → chunk-4BMEZGHF-ysuKUzF3.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-7LaZtEip.js → chunk-A2AXSNBT-DsztjjTP.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-CiqdwLhd.js → chunk-AEK57VVT-pv5-Z61i.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-B6Xb0aSI.js → chunk-D6G4REZN-B0HKfeJ8.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-CiC0DMDK.js → chunk-RZ5BOZE2-DNjaGyn6.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-K2-jkG4Y.js → chunk-XZIHB7SX-CB3yOZ7o.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-mWo2wa6Q.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-mWo2wa6Q.js +1 -0
- package/out/renderer/assets/clone-Cbm34QyD.js +1 -0
- package/out/renderer/assets/{compact-pagination-FcDWACR5.js → compact-pagination-CEfQ3P1V.js} +1 -1
- package/out/renderer/assets/{console-mirror-Br38lwo4.js → console-mirror-BoykuSNB.js} +11 -11
- package/out/renderer/assets/{consoleCapture-3Ye6f-Cw.js → consoleCapture-Cujhy7_W.js} +1 -1
- package/out/renderer/assets/{dagre-OKDRZEBW-DqlgFj2H.js → dagre-OKDRZEBW-DscYjoQb.js} +1 -1
- package/out/renderer/assets/{diagram-SSKATNLV-Bk464FMB.js → diagram-SSKATNLV-MR2_cP2x.js} +1 -1
- package/out/renderer/assets/{diagram-VNBRO52H-3AKVED_Q.js → diagram-VNBRO52H-BmkFh4Vx.js} +1 -1
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-BqQXpd07.js → erDiagram-Q7BY3M3F-D07ZEVLp.js} +1 -1
- package/out/renderer/assets/{error-boundary-BVmR5Boy.js → error-boundary-BX3Jjofp.js} +2 -2
- package/out/renderer/assets/{flowDiagram-4HSFHLVR--UbEcnZO.js → flowDiagram-4HSFHLVR-DvEjarQP.js} +1 -1
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-G_T0Nt0D.js → ganttDiagram-APWFNJXF-D5UFT4S7.js} +3 -3
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-CkFIa8Yo.js → gitGraphDiagram-7IBYFJ6S-DH2UEbHf.js} +1 -1
- package/out/renderer/assets/{graph-BZvoix-v.js → graph-BKMaU8e_.js} +1 -1
- package/out/renderer/assets/{index-CSjT38Nm.js → index-BZWSvhnc.js} +1 -1
- package/out/renderer/assets/{index-D2ohT3Rk.js → index-D4l3Ha6i.js} +1 -1
- package/out/renderer/assets/{index-DzGgHL32.js → index-DyfVjYXR.js} +393 -393
- package/out/renderer/assets/index-YlW7OZrX.css +1 -0
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-D8M062qd.js → infoDiagram-PH2N3AL5-BB9p2nRT.js} +1 -1
- package/out/renderer/assets/{installer-Dq-qD_ha.js → installer-1ycbb4_E.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-Cq_LSQNQ.js → journeyDiagram-U35MCT3I-Dt2T-pPF.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-0IooKIAM.js → kanban-definition-NDS4AKOZ-BxdASKeG.js} +1 -1
- package/out/renderer/assets/{layout-C5tCNK6U.js → layout-BOJV8F98.js} +1 -1
- package/out/renderer/assets/{legacy-agents-page-D7lCqs5h.js → legacy-agents-page-DlUvUwjx.js} +5 -5
- package/out/renderer/assets/{mermaid.core-DvGHm878.js → mermaid.core-Dm5FgUKb.js} +5 -5
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-CfDiRZ_r.js → mindmap-definition-ALO5MXBD-C54cCZAD.js} +1 -1
- package/out/renderer/assets/{page-header-BvatsgSh.js → page-header-DtDPxJCD.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-C7Gv7iU1.js → pieDiagram-IB7DONF6-CrhdJ9uV.js} +1 -1
- package/out/renderer/assets/projects-page-DRQqnIMU.js +11 -0
- package/out/renderer/assets/{publication-validation-DDkI26aj.js → publication-validation-Cke6xOnn.js} +1 -1
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-Fgn0qFth.js → quadrantDiagram-7GDLP6J5-BWSQJ0gX.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-DYo3JPnQ.js → radar-MK3ICKWK-CJpp5uw3.js} +1 -1
- package/out/renderer/assets/{radient-auth-buttons-CqdJI5NH.js → radient-auth-buttons-DPiKAtaZ.js} +1 -1
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-CWvGUVBW.js → requirementDiagram-KVF5MWMF-B7hVsPNs.js} +1 -1
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-B3cmN13n.js → sankeyDiagram-QLVOVGJD-BJT1eAxQ.js} +1 -1
- package/out/renderer/assets/{schedules-page-DwBV-MhA.js → schedules-page-Br3MWcWr.js} +1 -1
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-BpvNfz3s.js → sequenceDiagram-X6HHIX6F-DxQHWkSx.js} +1 -1
- package/out/renderer/assets/{settings-page-DJPmk6Nu.js → settings-page-Cz2ODzjH.js} +9 -9
- package/out/renderer/assets/{stateDiagram-DGXRK772-DcmEjZx_.js → stateDiagram-DGXRK772-7zKxJIA5.js} +1 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-3TyB4Xbk.js +1 -0
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-CYJMZ6bD.js → timeline-definition-BDJGKUSR-CKvl8Sf0.js} +1 -1
- package/out/renderer/assets/{use-download-agent-mutation-Cv2bD2BU.js → use-download-agent-mutation-yItIUILb.js} +4 -4
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-BGqS_KnS.js → xychartDiagram-VJFVF3MP-B2w5N_2D.js} +1 -1
- package/out/renderer/console-capture.html +4 -4
- package/out/renderer/index.html +5 -5
- package/out/renderer/installer.html +4 -4
- package/package.json +2 -2
- package/out/renderer/assets/browser-page-9Eo7IZw0.js +0 -1
- package/out/renderer/assets/channel-D3viRgMX.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-Bt56nVMB.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-Bt56nVMB.js +0 -1
- package/out/renderer/assets/clone-Dsk_jQop.js +0 -1
- package/out/renderer/assets/index-Dsk7e186.css +0 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-BTAYQVSf.js +0 -1
- /package/out/renderer/assets/{index-DjK3tnAP.js → index-hIJSZMtz.js} +0 -0
package/out/main/index.js
CHANGED
|
@@ -234,6 +234,18 @@ const publicationDocument = zod.z.object({
|
|
|
234
234
|
const catalogueScopeKind = zod.z.enum(["team", "agent"]);
|
|
235
235
|
const catalogueScopeName = zod.z.string().min(1).max(64);
|
|
236
236
|
const catalogueCursor = zod.z.string().min(1).max(256);
|
|
237
|
+
const PROJECT_NAME_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/;
|
|
238
|
+
const projectName = zod.z.string().regex(PROJECT_NAME_PATTERN, {
|
|
239
|
+
message: "Letters, digits, dot, underscore and dash; no spaces."
|
|
240
|
+
});
|
|
241
|
+
const PROJECT_STATUSES = ["active", "paused", "done", "archived"];
|
|
242
|
+
const projectStatus = zod.z.enum(PROJECT_STATUSES);
|
|
243
|
+
const projectDate = zod.z.string().regex(/^$|^\d{4}-\d{2}-\d{2}$/, "Dates are YYYY-MM-DD, or empty to clear.");
|
|
244
|
+
const projectTags = zod.z.array(zod.z.string().min(1).max(24)).max(8);
|
|
245
|
+
const projectKey = zod.z.string().min(1).max(64);
|
|
246
|
+
const PROJECT_PROGRESS_MAX_CHARS = 1e3;
|
|
247
|
+
const PROJECT_DESCRIPTION_MAX_CHARS = 240;
|
|
248
|
+
const PROJECT_MILESTONE_NAME_MAX_CHARS = 80;
|
|
237
249
|
const desktopRequestSchema = zod.z.discriminatedUnion("op", [
|
|
238
250
|
zod.z.object({ op: zod.z.literal("capabilities") }).strict(),
|
|
239
251
|
zod.z.object({ op: zod.z.literal("profiles.list") }).strict(),
|
|
@@ -1301,6 +1313,81 @@ const desktopRequestSchema = zod.z.discriminatedUnion("op", [
|
|
|
1301
1313
|
op: zod.z.literal("credentials.update"),
|
|
1302
1314
|
key: settingKey,
|
|
1303
1315
|
value: secret
|
|
1316
|
+
}).strict(),
|
|
1317
|
+
/*
|
|
1318
|
+
* The Projects surface (`/v1/desktop/projects*`), APPENDED to the union
|
|
1319
|
+
* rather than inserted beside the other catalogue ops: the backend serves
|
|
1320
|
+
* these routes from its own release, and an older daemon that has never
|
|
1321
|
+
* heard of the op is a backend this app must be able to gate against —
|
|
1322
|
+
* which it does through the `projects` capability key, not through this
|
|
1323
|
+
* schema (a request this client refuses to build is not a negotiation).
|
|
1324
|
+
*
|
|
1325
|
+
* One op per route; the wipe and the milestone routes are the two shapes
|
|
1326
|
+
* that do not fit the plain CRUD, and both exist because the backend
|
|
1327
|
+
* declared them separately (a milestone is add-or-update-by-name, and a
|
|
1328
|
+
* removal is a DELETE with the name in the path). `projects.update` carries
|
|
1329
|
+
* its editable fields as a NESTED `fields` object for the same reason the
|
|
1330
|
+
* profile ops do: the fields differ per surface, and a flat op would put
|
|
1331
|
+
* every future field at the top level of a union member.
|
|
1332
|
+
*/
|
|
1333
|
+
zod.z.object({ op: zod.z.literal("projects.list") }).strict(),
|
|
1334
|
+
zod.z.object({ op: zod.z.literal("projects.get"), key: projectKey }).strict(),
|
|
1335
|
+
zod.z.object({
|
|
1336
|
+
op: zod.z.literal("projects.create"),
|
|
1337
|
+
name: projectName,
|
|
1338
|
+
description: zod.z.string().max(PROJECT_DESCRIPTION_MAX_CHARS).optional(),
|
|
1339
|
+
status: projectStatus.optional(),
|
|
1340
|
+
tags: projectTags.optional()
|
|
1341
|
+
}).strict(),
|
|
1342
|
+
zod.z.object({
|
|
1343
|
+
op: zod.z.literal("projects.update"),
|
|
1344
|
+
key: projectKey,
|
|
1345
|
+
/*
|
|
1346
|
+
* Only the keys the caller includes travel; an omitted key leaves the
|
|
1347
|
+
* field alone, and `""` clears a date or the progress snippet (the
|
|
1348
|
+
* route forwards `model_fields_set`, and this client mirrors it).
|
|
1349
|
+
*/
|
|
1350
|
+
fields: zod.z.object({
|
|
1351
|
+
name: projectName.optional(),
|
|
1352
|
+
description: zod.z.string().max(PROJECT_DESCRIPTION_MAX_CHARS).optional(),
|
|
1353
|
+
status: projectStatus.optional(),
|
|
1354
|
+
progress: zod.z.string().max(PROJECT_PROGRESS_MAX_CHARS).optional(),
|
|
1355
|
+
tags: projectTags.optional(),
|
|
1356
|
+
start_date: projectDate.optional(),
|
|
1357
|
+
target_date: projectDate.optional(),
|
|
1358
|
+
completed_at: projectDate.optional(),
|
|
1359
|
+
estimate: zod.z.number().positive().max(1e3).optional(),
|
|
1360
|
+
estimate_unit: zod.z.enum(["points", "days"]).optional()
|
|
1361
|
+
}).strict()
|
|
1362
|
+
}).strict(),
|
|
1363
|
+
zod.z.object({
|
|
1364
|
+
op: zod.z.literal("projects.delete"),
|
|
1365
|
+
key: projectKey,
|
|
1366
|
+
confirmed_name: projectName
|
|
1367
|
+
}).strict(),
|
|
1368
|
+
zod.z.object({
|
|
1369
|
+
op: zod.z.literal("projects.link"),
|
|
1370
|
+
key: projectKey,
|
|
1371
|
+
sessionId
|
|
1372
|
+
}).strict(),
|
|
1373
|
+
zod.z.object({
|
|
1374
|
+
op: zod.z.literal("projects.unlink"),
|
|
1375
|
+
key: projectKey,
|
|
1376
|
+
sessionId
|
|
1377
|
+
}).strict(),
|
|
1378
|
+
zod.z.object({
|
|
1379
|
+
op: zod.z.literal("projects.milestone"),
|
|
1380
|
+
key: projectKey,
|
|
1381
|
+
name: zod.z.string().min(1).max(PROJECT_MILESTONE_NAME_MAX_CHARS),
|
|
1382
|
+
/** `""` clears it; omitted leaves it alone. */
|
|
1383
|
+
targetDate: projectDate.optional(),
|
|
1384
|
+
/** `true` stamps today, `false` clears; omitted leaves it alone. */
|
|
1385
|
+
completed: zod.z.boolean().optional()
|
|
1386
|
+
}).strict(),
|
|
1387
|
+
zod.z.object({
|
|
1388
|
+
op: zod.z.literal("projects.milestone.remove"),
|
|
1389
|
+
key: projectKey,
|
|
1390
|
+
name: zod.z.string().min(1).max(PROJECT_MILESTONE_NAME_MAX_CHARS)
|
|
1304
1391
|
}).strict()
|
|
1305
1392
|
]);
|
|
1306
1393
|
const DESKTOP_REFUSAL_CODE = {
|
|
@@ -2229,6 +2316,74 @@ function desktopEndpoint(request) {
|
|
|
2229
2316
|
method: "PATCH",
|
|
2230
2317
|
body: { key: request.key, value: request.value }
|
|
2231
2318
|
};
|
|
2319
|
+
/*
|
|
2320
|
+
* The Projects routes, in the store's own wire vocabulary: snake_case
|
|
2321
|
+
* bodies, the typed NAME in `confirm` for the delete (the route compares
|
|
2322
|
+
* it case-insensitively against the row it resolved), and every key
|
|
2323
|
+
* URL-encoded because it is user text — a project name may carry dots
|
|
2324
|
+
* and dashes, and a milestone name is free text up to 80 chars.
|
|
2325
|
+
*/
|
|
2326
|
+
case "projects.list":
|
|
2327
|
+
return { path: "/v1/desktop/projects", method: "GET" };
|
|
2328
|
+
case "projects.get":
|
|
2329
|
+
return {
|
|
2330
|
+
path: `/v1/desktop/projects/${encodeURIComponent(request.key)}`,
|
|
2331
|
+
method: "GET"
|
|
2332
|
+
};
|
|
2333
|
+
case "projects.create":
|
|
2334
|
+
return {
|
|
2335
|
+
path: "/v1/desktop/projects",
|
|
2336
|
+
method: "POST",
|
|
2337
|
+
// Absent fields are OMITTED: the route's own defaults are the
|
|
2338
|
+
// answer for "no status, no tags, no description".
|
|
2339
|
+
body: {
|
|
2340
|
+
name: request.name,
|
|
2341
|
+
...request.description !== void 0 ? { description: request.description } : {},
|
|
2342
|
+
...request.status !== void 0 ? { status: request.status } : {},
|
|
2343
|
+
...request.tags !== void 0 ? { tags: request.tags } : {}
|
|
2344
|
+
}
|
|
2345
|
+
};
|
|
2346
|
+
case "projects.update":
|
|
2347
|
+
return {
|
|
2348
|
+
path: `/v1/desktop/projects/${encodeURIComponent(request.key)}`,
|
|
2349
|
+
method: "PATCH",
|
|
2350
|
+
// Exactly the keys the caller included travel, so an omitted key
|
|
2351
|
+
// leaves its field alone and `""` clears a date (the route
|
|
2352
|
+
// forwards `model_fields_set` into the store's edit model).
|
|
2353
|
+
body: { ...request.fields }
|
|
2354
|
+
};
|
|
2355
|
+
case "projects.delete":
|
|
2356
|
+
return {
|
|
2357
|
+
path: `/v1/desktop/projects/${encodeURIComponent(request.key)}`,
|
|
2358
|
+
method: "DELETE",
|
|
2359
|
+
body: { confirm: request.confirmed_name }
|
|
2360
|
+
};
|
|
2361
|
+
case "projects.link":
|
|
2362
|
+
return {
|
|
2363
|
+
path: `/v1/desktop/projects/${encodeURIComponent(request.key)}/links`,
|
|
2364
|
+
method: "POST",
|
|
2365
|
+
body: { session_id: request.sessionId }
|
|
2366
|
+
};
|
|
2367
|
+
case "projects.unlink":
|
|
2368
|
+
return {
|
|
2369
|
+
path: `/v1/desktop/projects/${encodeURIComponent(request.key)}/links/${encodeURIComponent(request.sessionId)}`,
|
|
2370
|
+
method: "DELETE"
|
|
2371
|
+
};
|
|
2372
|
+
case "projects.milestone":
|
|
2373
|
+
return {
|
|
2374
|
+
path: `/v1/desktop/projects/${encodeURIComponent(request.key)}/milestones`,
|
|
2375
|
+
method: "POST",
|
|
2376
|
+
body: {
|
|
2377
|
+
name: request.name,
|
|
2378
|
+
...request.targetDate !== void 0 ? { target_date: request.targetDate } : {},
|
|
2379
|
+
...request.completed !== void 0 ? { completed: request.completed } : {}
|
|
2380
|
+
}
|
|
2381
|
+
};
|
|
2382
|
+
case "projects.milestone.remove":
|
|
2383
|
+
return {
|
|
2384
|
+
path: `/v1/desktop/projects/${encodeURIComponent(request.key)}/milestones/${encodeURIComponent(request.name)}`,
|
|
2385
|
+
method: "DELETE"
|
|
2386
|
+
};
|
|
2232
2387
|
}
|
|
2233
2388
|
}
|
|
2234
2389
|
const MAX_PROBE_PATHS = 64;
|
|
@@ -7984,6 +8139,18 @@ class BackendServiceManager {
|
|
|
7984
8139
|
* answers 503 instead of an empty 200).
|
|
7985
8140
|
*/
|
|
7986
8141
|
answeredButUnusable = null;
|
|
8142
|
+
/**
|
|
8143
|
+
* Records the last refusal an ANSWERING daemon gave this app - the claim
|
|
8144
|
+
* route's refusal or the desktop read's - beside `answeredButUnusable` and for
|
|
8145
|
+
* its reason (QA round 2, Q-1): both are answers, and an app that answered
|
|
8146
|
+
* with a status is not an absence. It is what lets a later `observeNoCandidate`
|
|
8147
|
+
* keep the refusal's state (`wedged`) instead of letting the `no-candidate` arm
|
|
8148
|
+
* publish `detached` - "the server is offline" - for a daemon that is
|
|
8149
|
+
* demonstrably running; it is cleared at the top of every sweep, so a refusal
|
|
8150
|
+
* the fresh discovery could not re-observe (the daemon died, or was replaced)
|
|
8151
|
+
* stops holding the state (Q-2).
|
|
8152
|
+
*/
|
|
8153
|
+
answeredRefused = null;
|
|
7987
8154
|
/**
|
|
7988
8155
|
* Records discovery found alive but unresponsive (pid alive, heartbeat
|
|
7989
8156
|
* stopped). They are why no candidate exists AND why spawning is forbidden,
|
|
@@ -8774,6 +8941,7 @@ class BackendServiceManager {
|
|
|
8774
8941
|
* lets the copy say "a server is running and this app did not attach to it"
|
|
8775
8942
|
* instead of "the server is offline". */
|
|
8776
8943
|
observeNoCandidate() {
|
|
8944
|
+
const before = this.daemonState.snapshot();
|
|
8777
8945
|
const wedged = this.discoveryWedged.find((record) => record.alive);
|
|
8778
8946
|
const goneRecord = this.discoveryWedged.find((record) => !record.alive);
|
|
8779
8947
|
if (wedged) {
|
|
@@ -8781,6 +8949,11 @@ class BackendServiceManager {
|
|
|
8781
8949
|
kind: "heartbeat-stale",
|
|
8782
8950
|
detail: `A Local Operator daemon is running (pid ${wedged.pid}), but it stopped publishing its heartbeat, so this app did not attach to it. Waiting without starting a second one.`
|
|
8783
8951
|
});
|
|
8952
|
+
} else if (this.answeredRefused) {
|
|
8953
|
+
this.daemonState.observe({
|
|
8954
|
+
kind: "unattachable",
|
|
8955
|
+
detail: `A Local Operator daemon is running at ${this.answeredRefused.address} and refused this app's credential for its desktop plane (HTTP ${this.answeredRefused.status}), so this app is not attached to it. Nothing is being started over it; it keeps probing.`
|
|
8956
|
+
});
|
|
8784
8957
|
} else if (this.answeredButUnusable) {
|
|
8785
8958
|
this.daemonState.observe({
|
|
8786
8959
|
kind: "unattachable",
|
|
@@ -8801,7 +8974,10 @@ class BackendServiceManager {
|
|
|
8801
8974
|
) : this.discoveryBlocksSpawn ? "A local daemon may still be running, but could not be attached. Waiting without starting a duplicate." : "No Local Operator daemon was found and this app is configured not to start one."
|
|
8802
8975
|
});
|
|
8803
8976
|
}
|
|
8804
|
-
this.
|
|
8977
|
+
const after = this.daemonState.snapshot();
|
|
8978
|
+
if (after.state !== before.state || after.detail !== before.detail) {
|
|
8979
|
+
this.notifyStatus();
|
|
8980
|
+
}
|
|
8805
8981
|
}
|
|
8806
8982
|
/**
|
|
8807
8983
|
* The global launcher this app ranks its daemons by, spawns from, and reports.
|
|
@@ -8949,6 +9125,7 @@ class BackendServiceManager {
|
|
|
8949
9125
|
if (this.isAppClosing) return false;
|
|
8950
9126
|
this.discoveryWedged = [];
|
|
8951
9127
|
this.answeredButUnusable = null;
|
|
9128
|
+
this.answeredRefused = null;
|
|
8952
9129
|
if (this.remoteConfigured) {
|
|
8953
9130
|
this.discoveryBlocksSpawn = true;
|
|
8954
9131
|
return await this.legacyFixedPortAdoption();
|
|
@@ -9047,16 +9224,30 @@ class BackendServiceManager {
|
|
|
9047
9224
|
});
|
|
9048
9225
|
this.notifyStatus();
|
|
9049
9226
|
return false;
|
|
9050
|
-
case "refused":
|
|
9227
|
+
case "refused": {
|
|
9051
9228
|
logger.info(
|
|
9052
9229
|
`Daemon ${candidate.address} did not accept this app's claim (${outcome.outcome} ${outcome.status}); not attaching.`,
|
|
9053
9230
|
LogFileType.BACKEND
|
|
9054
9231
|
);
|
|
9232
|
+
const refusedBefore = this.daemonState.snapshot();
|
|
9055
9233
|
this.daemonState.setPairing({
|
|
9056
9234
|
available: false,
|
|
9057
9235
|
cause: outcome.status === 503 ? "pre-handshake" : "credential-refused"
|
|
9058
9236
|
});
|
|
9237
|
+
this.answeredRefused = {
|
|
9238
|
+
address: candidate.address,
|
|
9239
|
+
status: outcome.status
|
|
9240
|
+
};
|
|
9241
|
+
this.daemonState.observe({
|
|
9242
|
+
kind: "unattachable",
|
|
9243
|
+
detail: `A Local Operator daemon is running at ${candidate.address} and refused this app's claim for its desktop plane (HTTP ${outcome.status}), so this app is not attached to it. Nothing is being started over it; it keeps probing.`
|
|
9244
|
+
});
|
|
9245
|
+
const refusedAfter = this.daemonState.snapshot();
|
|
9246
|
+
if (refusedAfter.state !== refusedBefore.state || refusedAfter.detail !== refusedBefore.detail || refusedAfter.pairing.cause !== refusedBefore.pairing.cause) {
|
|
9247
|
+
this.notifyStatus();
|
|
9248
|
+
}
|
|
9059
9249
|
return false;
|
|
9250
|
+
}
|
|
9060
9251
|
case "unreachable":
|
|
9061
9252
|
logger.info(
|
|
9062
9253
|
`Daemon ${candidate.address} could not be reached to claim its desktop plane: ${outcome.detail}`,
|
|
@@ -9071,16 +9262,28 @@ class BackendServiceManager {
|
|
|
9071
9262
|
`Daemon ${candidate.address} refused this app's bearer for its desktop plane (HTTP ${probe.status}); not attaching (it would refuse every session list and every stream).`,
|
|
9072
9263
|
LogFileType.BACKEND
|
|
9073
9264
|
);
|
|
9265
|
+
const before = this.daemonState.snapshot();
|
|
9074
9266
|
this.daemonState.setPairing({
|
|
9075
9267
|
available: false,
|
|
9076
9268
|
cause: "credential-refused"
|
|
9077
9269
|
});
|
|
9270
|
+
this.answeredRefused = {
|
|
9271
|
+
address: candidate.address,
|
|
9272
|
+
status: probe.status
|
|
9273
|
+
};
|
|
9274
|
+
this.daemonState.observe({
|
|
9275
|
+
kind: "unattachable",
|
|
9276
|
+
detail: `A daemon is running at ${candidate.address} and refused this app's credential for its desktop plane (HTTP ${probe.status}), so this app is not attached to it. Nothing is being started over it; it keeps probing.`
|
|
9277
|
+
});
|
|
9078
9278
|
this.daemonState.observe({
|
|
9079
9279
|
kind: "capability",
|
|
9080
9280
|
status: probe.status,
|
|
9081
9281
|
detail: `A daemon is running at ${candidate.address}, but it refused this app's credential for its desktop plane (HTTP ${probe.status}).`
|
|
9082
9282
|
});
|
|
9083
|
-
this.
|
|
9283
|
+
const after = this.daemonState.snapshot();
|
|
9284
|
+
if (after.state !== before.state || after.detail !== before.detail || after.pairing.cause !== before.pairing.cause) {
|
|
9285
|
+
this.notifyStatus();
|
|
9286
|
+
}
|
|
9084
9287
|
return false;
|
|
9085
9288
|
}
|
|
9086
9289
|
if (probe.verdict === "unusable") {
|
|
@@ -10229,7 +10432,7 @@ class BackendServiceManager {
|
|
|
10229
10432
|
clearInterval(this.healthCheckInterval);
|
|
10230
10433
|
}
|
|
10231
10434
|
this.healthCheckInterval = setInterval(() => {
|
|
10232
|
-
|
|
10435
|
+
return this.checkBackendHealth();
|
|
10233
10436
|
}, PROBE_INTERVAL_MS);
|
|
10234
10437
|
}
|
|
10235
10438
|
/**
|
|
@@ -10379,8 +10582,14 @@ class BackendServiceManager {
|
|
|
10379
10582
|
if (this.process && this.process.exitCode === null && this.process.signalCode == null)
|
|
10380
10583
|
return;
|
|
10381
10584
|
if (await this.discoverAndAttach()) return;
|
|
10382
|
-
if (
|
|
10585
|
+
if (this.answeredRefused) {
|
|
10586
|
+
this.nextRecoveryAt = Date.now() + REATTACH_BACKOFF_MS;
|
|
10587
|
+
}
|
|
10588
|
+
if (!this.managerMaySpawn) {
|
|
10589
|
+
this.observeNoCandidate();
|
|
10383
10590
|
return;
|
|
10591
|
+
}
|
|
10592
|
+
if (this.remoteConfigured || this.isExternalBackend) return;
|
|
10384
10593
|
await this.start({ quiet: true });
|
|
10385
10594
|
} finally {
|
|
10386
10595
|
this.recoveryInFlight = false;
|
|
@@ -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-DD9jcRtU.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-Dm5FgUKb.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-DvGHm878.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-Dm5FgUKb.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-Djr2KqW1.js → agent-details-page-G90FKyVP.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as D,j as e,c as V}from"./index-
|
|
1
|
+
import{r as D,j as e,c as V}from"./index-hIJSZMtz.js";import{a as le}from"./publication-validation-Cke6xOnn.js";import{g as te,f as L,am as b,ar as M,al as O,as as I,at as ce,au as de,av as se,h as ae,u as ue,a4 as me,aw as he,B as xe,an as ge,ao as je,ax as X,ak as fe,ay as ye,az as pe}from"./index-DyfVjYXR.js";import{c as ve,L as we,j as Z,B as l,S as z,k as ne,l as q,m as _,a as v,X as be,T as w,A as G,h as J,i as ee}from"./error-boundary-BX3Jjofp.js";import{l as Ce,g as Ne,h as Ae,j as ke,f as R,k as Se,m as De,n as Ee,e as Te,i as Fe,u as Pe,a as qe,b as _e,H as ze,A as Le}from"./use-download-agent-mutation-yItIUILb.js";import"./console-mirror-BoykuSNB.js";import"./en-US-BkS8Ixxl.js";import"./book-open-B8nHgs3o.js";/**
|
|
2
2
|
* @license lucide-react v0.507.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r,j as e,c as _}from"./index-
|
|
1
|
+
import{r,j as e,c as _}from"./index-hIJSZMtz.js";import{h as te,am as $,an as he,ao as G,ap as me,r as xe,aq as fe,a4 as ge}from"./index-DyfVjYXR.js";import{C as pe}from"./compact-pagination-CEfQ3P1V.js";import{P as be}from"./page-header-DtDPxJCD.js";import{c as je,T as L,B as N,a as c,I as ve,b as Q,d as Z,e as J,f as W,g as X,A as Ne,h as we,i as ye}from"./error-boundary-BX3Jjofp.js";import{a as ke}from"./publication-validation-Cke6xOnn.js";import{A as Ce,f as Se,H as Ae,u as Re,a as Te,b as _e,c as se,C as Ee,d as Pe,e as Le,i as Fe}from"./use-download-agent-mutation-yItIUILb.js";import"./console-mirror-BoykuSNB.js";import"./en-US-BkS8Ixxl.js";import"./book-open-B8nHgs3o.js";/**
|
|
2
2
|
* @license lucide-react v0.507.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./legacy-agents-page-
|
|
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-DzGgHL32.js";import{j as e,r as n,c as P}from"./index-DjK3tnAP.js";import{B as u}from"./error-boundary-BVmR5Boy.js";import"./console-mirror-Br38lwo4.js";const se=n.lazy(()=>ae(()=>import("./legacy-agents-page-D7lCqs5h.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),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 ce(){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{ce as AgentsPage};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./legacy-agents-page-DlUvUwjx.js","./index-hIJSZMtz.js","./index-YlW7OZrX.css","./page-header-DtDPxJCD.js","./error-boundary-BX3Jjofp.js","./index-DyfVjYXR.js","./console-mirror-BoykuSNB.js","./console-mirror-DOrYoP_4.css","./index-CSPo12AE.css","./radient-auth-buttons-DPiKAtaZ.js","./compact-pagination-CEfQ3P1V.js","./publication-validation-Cke6xOnn.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-DyfVjYXR.js";import{j as e,r as n,c as P}from"./index-hIJSZMtz.js";import{B as u}from"./error-boundary-BX3Jjofp.js";import"./console-mirror-BoykuSNB.js";const se=n.lazy(()=>ae(()=>import("./legacy-agents-page-DlUvUwjx.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),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 ce(){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{ce as AgentsPage};
|
|
@@ -1 +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-
|
|
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-DyfVjYXR.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};
|