local-operator-ui 0.24.6 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/main/index.js +220 -18
- package/out/renderer/assets/{_basePickBy-DoNdsg5T.js → _basePickBy-D7IU05ZD.js} +1 -1
- package/out/renderer/assets/{_baseUniq-CoibNQAD.js → _baseUniq-CoOaWdnc.js} +1 -1
- package/out/renderer/assets/{agent-details-page-BM4zDGYu.js → agent-details-page-CMBp7EaY.js} +2 -2
- package/out/renderer/assets/{agent-hub-page-CFE4uUAt.js → agent-hub-page-B79i0H3J.js} +1 -1
- package/out/renderer/assets/{agents-page-D799_Amn.js → agents-page-_TV2DYKT.js} +2 -2
- package/out/renderer/assets/{arc-Cj2iYoCg.js → arc-Dvsk5w9k.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-KrV-vSSa.js → architectureDiagram-IEHRJDOE-D4l57AnA.js} +1 -1
- package/out/renderer/assets/{arrow-left-q4TRrNyq.js → arrow-left-DnuA26Fd.js} +1 -1
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-Df6pDgEx.js → blockDiagram-JOT3LUYC-By6Ev-TE.js} +1 -1
- package/out/renderer/assets/{browser-page-CLYONBaS.js → browser-page-2YNZpDKa.js} +1 -1
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-BVN6qT8a.js → c4Diagram-VJAJSXHY-C7ji7rS-.js} +1 -1
- package/out/renderer/assets/channel-DeTYl94U.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-BejZ_nyP.js → chunk-4BMEZGHF-DAK0FWuE.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-Dvmo1N75.js → chunk-A2AXSNBT-B35X20Jl.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-C-82VDDz.js → chunk-AEK57VVT-uEaAX97c.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-DKsNw0Ex.js → chunk-D6G4REZN-DJzmp5xL.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-DMt2JPsW.js → chunk-RZ5BOZE2-Dn6cwpUp.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-DNG3JUvH.js → chunk-XZIHB7SX-BO1EoFoC.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-DS_df1YD.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-DS_df1YD.js +1 -0
- package/out/renderer/assets/clone-CWP8x6Bv.js +1 -0
- package/out/renderer/assets/{compact-pagination-mQgprp_u.js → compact-pagination-B0FQ2K6k.js} +1 -1
- package/out/renderer/assets/{dagre-OKDRZEBW-lSCTlWxT.js → dagre-OKDRZEBW-BCDcvx1r.js} +1 -1
- package/out/renderer/assets/{diagram-SSKATNLV-nD4ymC_6.js → diagram-SSKATNLV-B7xC0UPn.js} +1 -1
- package/out/renderer/assets/{diagram-VNBRO52H-Cg7T__9y.js → diagram-VNBRO52H-6Rww-NRL.js} +1 -1
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-CxRWzdnz.js → erDiagram-Q7BY3M3F-DQCV5dSc.js} +1 -1
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-DXpCv_Jj.js → flowDiagram-4HSFHLVR-C66GAeB9.js} +1 -1
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-7GnVcg50.js → ganttDiagram-APWFNJXF-Cc8_T4Cd.js} +3 -3
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-c_F0batK.js → gitGraphDiagram-7IBYFJ6S-a6bSnNxA.js} +1 -1
- package/out/renderer/assets/{graph-D7SKwIHV.js → graph-CfcT1lYH.js} +1 -1
- package/out/renderer/assets/{icon-Cj67f9xD.js → icon-CZlr9p2L.js} +1 -1
- package/out/renderer/assets/icon-TFBsh9Po.css +1 -0
- package/out/renderer/assets/{index-DVpZx5bQ.js → index-B3vEYnM9.js} +384 -359
- package/out/renderer/assets/{index-C9PXzKcM.js → index-DaZEmwhX.js} +1 -1
- package/out/renderer/assets/{index-DCbYOn58.js → index-MmgCXr1L.js} +1 -1
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-CkBK4mKw.js → infoDiagram-PH2N3AL5-JkmvAqVj.js} +1 -1
- package/out/renderer/assets/{installer-B8aRlHMm.js → installer-BUekjhed.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-DOP_vcVj.js → journeyDiagram-U35MCT3I-XQwzICH_.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-Cqlk5CfS.js → kanban-definition-NDS4AKOZ-Dk0fWz3a.js} +1 -1
- package/out/renderer/assets/{layout-Q9EOEPeJ.js → layout-S5NElu0v.js} +1 -1
- package/out/renderer/assets/{legacy-agents-page-4FlrsC_-.js → legacy-agents-page-B-bYOL4L.js} +1 -1
- package/out/renderer/assets/{mermaid.core-DusUPS3m.js → mermaid.core-Ca2UMsT4.js} +5 -5
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-D9LEgOC1.js → mindmap-definition-ALO5MXBD-BKYO5Ih0.js} +1 -1
- package/out/renderer/assets/{page-header-E6dQzCNG.js → page-header-M5DAJreE.js} +1 -1
- package/out/renderer/assets/{parseISO-DcM7sCOE.js → parseISO-Drr88H4u.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-D4zuD970.js → pieDiagram-IB7DONF6-AYbaZlNl.js} +1 -1
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-otQZupuD.js → quadrantDiagram-7GDLP6J5-Dc7bNLE7.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-BqbgjUWl.js → radar-MK3ICKWK-DqKbz0Ws.js} +1 -1
- package/out/renderer/assets/{radient-auth-buttons-D6nz-MAf.js → radient-auth-buttons-C36cNiEY.js} +1 -1
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-BZ5cqRuL.js → requirementDiagram-KVF5MWMF-s6WLSP9i.js} +1 -1
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-gaFfM0N3.js → sankeyDiagram-QLVOVGJD-Brr-6fMy.js} +1 -1
- package/out/renderer/assets/{schedules-page-DLZeHC22.js → schedules-page-D5LWgYl1.js} +2 -2
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-DjOP83pX.js → sequenceDiagram-X6HHIX6F-BR2d9vVZ.js} +1 -1
- package/out/renderer/assets/{settings-page-CZKUbUmk.js → settings-page-DxHtECCz.js} +23 -28
- package/out/renderer/assets/{shield-check-CUWADg7Y.js → shield-check-Do9ljoiZ.js} +1 -1
- package/out/renderer/assets/{stateDiagram-DGXRK772-BF2gd-7x.js → stateDiagram-DGXRK772-oXIrrQaK.js} +1 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-4mBBtSVt.js +1 -0
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-DH2vcjvX.js → timeline-definition-BDJGKUSR-B4BE9KMY.js} +1 -1
- package/out/renderer/assets/{use-agent-like-mutation-C-SB1Z3H.js → use-agent-like-mutation-CCInCpXQ.js} +1 -1
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-owIgstRn.js → xychartDiagram-VJFVF3MP-B3AMru7c.js} +1 -1
- package/out/renderer/index.html +3 -3
- package/out/renderer/installer.html +4 -4
- package/package.json +3 -2
- package/out/renderer/assets/channel-rutBf-Jk.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-U2a69Wcq.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-U2a69Wcq.js +0 -1
- package/out/renderer/assets/clone-DAVEg1KS.js +0 -1
- package/out/renderer/assets/icon-BOBHgcVR.css +0 -1
- package/out/renderer/assets/square-pen-BFfkEYdr.js +0 -6
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-CBKEzmZ4.js +0 -1
package/out/main/index.js
CHANGED
|
@@ -319,6 +319,33 @@ const desktopRequestSchema = zod.z.discriminatedUnion("op", [
|
|
|
319
319
|
// `desktopRequestByteBudget`. Firing it costs the control budget and a
|
|
320
320
|
// 2-byte body, which is what lets the renderer issue it from a keystroke.
|
|
321
321
|
zod.z.object({ op: zod.z.literal("sessions.warm"), sessionId }).strict(),
|
|
322
|
+
/*
|
|
323
|
+
* Stop the session's CURRENT TURN and the work under it, leaving the session
|
|
324
|
+
* and its process alive: the composer's Stop control and the Escape that is
|
|
325
|
+
* its accelerator.
|
|
326
|
+
*
|
|
327
|
+
* Its OWN op rather than an argument to `sessions.command`, because the
|
|
328
|
+
* command endpoint answers a presentation form: `/stop` is a catalogue entry
|
|
329
|
+
* whose `native_action` asks the client to open the session-stop picker, so a
|
|
330
|
+
* body of `{command: "stop"}` there answers 200, changes nothing, and reads as
|
|
331
|
+
* a stop that worked. That is the reported defect this op exists to remove.
|
|
332
|
+
*
|
|
333
|
+
* NOT `sessions.stop` either, and the two are one letter apart on purpose of
|
|
334
|
+
* naming rather than of meaning: `sessions.stop` is the KILL SWITCH (deny the
|
|
335
|
+
* pending gates, dispose the runtime, release the writer lease, unpublish,
|
|
336
|
+
* exit) reached from the `/stop` picker, and it is the rung ABOVE this one. A
|
|
337
|
+
* client that could not interrupt a turn can still stop a session; a backend
|
|
338
|
+
* that can do the second must not be told it can do the first, which is why
|
|
339
|
+
* the capability key is new rather than a `lifecycle` bump.
|
|
340
|
+
*
|
|
341
|
+
* `requestId` is the route's receipt key: "make the current turn stop" is
|
|
342
|
+
* idempotent and creates or destroys nothing, so the same id replayed with the
|
|
343
|
+
* same body answers the first receipt rather than interrupting twice.
|
|
344
|
+
*
|
|
345
|
+
* Deliberately NOT a `MESSAGE_OPS` member (see `desktopRequestByteBudget`): a
|
|
346
|
+
* uuid is not prose, so this costs the control budget.
|
|
347
|
+
*/
|
|
348
|
+
zod.z.object({ op: zod.z.literal("sessions.interrupt"), sessionId, requestId }).strict(),
|
|
322
349
|
/*
|
|
323
350
|
* A session's code memory: the names the session's own cells have left in its
|
|
324
351
|
* eval namespace.
|
|
@@ -958,6 +985,16 @@ function desktopEndpoint(request) {
|
|
|
958
985
|
// makes a legal call answer 422.
|
|
959
986
|
body: {}
|
|
960
987
|
};
|
|
988
|
+
case "sessions.interrupt":
|
|
989
|
+
return {
|
|
990
|
+
path: `/v1/desktop/sessions/${request.sessionId}/interrupt`,
|
|
991
|
+
method: "POST",
|
|
992
|
+
// The route's own field name, and the only field: there is no
|
|
993
|
+
// `confirmed` here because an interrupt destroys nothing, and a
|
|
994
|
+
// confirmation gate would make Escape useless. The route answers the
|
|
995
|
+
// runtime's abort receipt verbatim - see `DesktopInterruptReceipt`.
|
|
996
|
+
body: { request_id: request.requestId }
|
|
997
|
+
};
|
|
961
998
|
case "sessions.variables.list":
|
|
962
999
|
return {
|
|
963
1000
|
path: `/v1/desktop/sessions/${request.sessionId}/variables`,
|
|
@@ -14179,6 +14216,51 @@ function registerDevDriverIPC(options) {
|
|
|
14179
14216
|
};
|
|
14180
14217
|
});
|
|
14181
14218
|
}
|
|
14219
|
+
const LAUNCHER_MISSES_BEFORE_GONE = 2;
|
|
14220
|
+
function createLauncherWatch(input) {
|
|
14221
|
+
const threshold = input.missesBeforeGone ?? LAUNCHER_MISSES_BEFORE_GONE;
|
|
14222
|
+
let misses = 0;
|
|
14223
|
+
let fired = false;
|
|
14224
|
+
let stopped = false;
|
|
14225
|
+
return {
|
|
14226
|
+
poll: () => {
|
|
14227
|
+
if (fired || stopped) return false;
|
|
14228
|
+
const parent = input.parentPid();
|
|
14229
|
+
const reparented = parent !== input.launcherPid;
|
|
14230
|
+
misses = reparented || !input.isAlive(input.launcherPid) ? misses + 1 : 0;
|
|
14231
|
+
if (misses < threshold) return false;
|
|
14232
|
+
fired = true;
|
|
14233
|
+
input.onLauncherGone({
|
|
14234
|
+
message: `the process that launched this run (pid ${input.launcherPid}) has exited`,
|
|
14235
|
+
detail: reparented ? `pid ${input.launcherPid} is gone (this process was reparented to pid ${parent})` : `pid ${input.launcherPid} is gone`
|
|
14236
|
+
});
|
|
14237
|
+
return true;
|
|
14238
|
+
},
|
|
14239
|
+
stop: () => {
|
|
14240
|
+
stopped = true;
|
|
14241
|
+
}
|
|
14242
|
+
};
|
|
14243
|
+
}
|
|
14244
|
+
function startLauncherWatch(input) {
|
|
14245
|
+
const watch = createLauncherWatch(input);
|
|
14246
|
+
const timer = setInterval(() => watch.poll(), input.intervalMs);
|
|
14247
|
+
timer.unref?.();
|
|
14248
|
+
return {
|
|
14249
|
+
poll: watch.poll,
|
|
14250
|
+
stop: () => {
|
|
14251
|
+
clearInterval(timer);
|
|
14252
|
+
watch.stop();
|
|
14253
|
+
}
|
|
14254
|
+
};
|
|
14255
|
+
}
|
|
14256
|
+
function isProcessAlive(pid) {
|
|
14257
|
+
try {
|
|
14258
|
+
process.kill(pid, 0);
|
|
14259
|
+
return true;
|
|
14260
|
+
} catch (error) {
|
|
14261
|
+
return error.code !== "ESRCH";
|
|
14262
|
+
}
|
|
14263
|
+
}
|
|
14182
14264
|
const lastPickedDirectory = /* @__PURE__ */ new Map();
|
|
14183
14265
|
function withRememberedDirectory(kind, options, fallbackDirectory) {
|
|
14184
14266
|
if (options.defaultPath) return options;
|
|
@@ -17071,15 +17153,35 @@ const AGENT_LAUNCH_FLAGS = [
|
|
|
17071
17153
|
"--user-data-dir",
|
|
17072
17154
|
"--remote-debugging-port"
|
|
17073
17155
|
];
|
|
17156
|
+
const LAUNCHER_KEEP_ALIVE_ENV = "LOCAL_OPERATOR_UI_HEADLESS_KEEP_ALIVE";
|
|
17157
|
+
const LAUNCHER_POLL_INTERVAL_MS = 2e3;
|
|
17158
|
+
const LAUNCHER_EXIT_DEADLINE_MS = 1e4;
|
|
17074
17159
|
const WINDOW_MIN_WIDTH = 800;
|
|
17075
17160
|
const WINDOW_MIN_HEIGHT = 600;
|
|
17076
17161
|
const WINDOW_MAX_EDGE = 16384;
|
|
17077
17162
|
const DEFAULT_WINDOW_WIDTH = 1380;
|
|
17078
17163
|
const DEFAULT_WINDOW_HEIGHT = 900;
|
|
17079
17164
|
const WINDOW_BEHAVIOUR = {
|
|
17080
|
-
normal: {
|
|
17081
|
-
|
|
17082
|
-
|
|
17165
|
+
normal: {
|
|
17166
|
+
show: "focus",
|
|
17167
|
+
focusable: true,
|
|
17168
|
+
backgroundThrottling: true,
|
|
17169
|
+
hideDock: false
|
|
17170
|
+
},
|
|
17171
|
+
inactive: {
|
|
17172
|
+
show: "inactive",
|
|
17173
|
+
focusable: true,
|
|
17174
|
+
backgroundThrottling: false,
|
|
17175
|
+
// Visible on purpose, so it keeps its tile: a run somebody wants to
|
|
17176
|
+
// watch has to be findable in the Dock.
|
|
17177
|
+
hideDock: false
|
|
17178
|
+
},
|
|
17179
|
+
headless: {
|
|
17180
|
+
show: "never",
|
|
17181
|
+
focusable: false,
|
|
17182
|
+
backgroundThrottling: false,
|
|
17183
|
+
hideDock: true
|
|
17184
|
+
}
|
|
17083
17185
|
};
|
|
17084
17186
|
function readFlag(argv, name) {
|
|
17085
17187
|
for (let index = 0; index < argv.length; index += 1) {
|
|
@@ -17169,10 +17271,45 @@ function resolveWindowLaunchPlan(input = {}) {
|
|
|
17169
17271
|
problems
|
|
17170
17272
|
};
|
|
17171
17273
|
}
|
|
17172
|
-
|
|
17274
|
+
const KEEP_ALIVE_VALUES = ["1", "true", "yes", "on"];
|
|
17275
|
+
function resolveLauncherWatchPlan(input) {
|
|
17276
|
+
const env = input.env ?? {};
|
|
17277
|
+
const keepAlive = (env[LAUNCHER_KEEP_ALIVE_ENV] ?? "").trim().toLowerCase();
|
|
17278
|
+
if (KEEP_ALIVE_VALUES.includes(keepAlive)) {
|
|
17279
|
+
return {
|
|
17280
|
+
watch: false,
|
|
17281
|
+
launcherPid: null,
|
|
17282
|
+
reason: `${LAUNCHER_KEEP_ALIVE_ENV}=${keepAlive} was set, so this run outlives its launcher`
|
|
17283
|
+
};
|
|
17284
|
+
}
|
|
17285
|
+
if (input.mode !== "headless") {
|
|
17286
|
+
return {
|
|
17287
|
+
watch: false,
|
|
17288
|
+
launcherPid: null,
|
|
17289
|
+
reason: `window mode ${input.mode} is not launcher-bound: a person can close it`
|
|
17290
|
+
};
|
|
17291
|
+
}
|
|
17292
|
+
if (!Number.isInteger(input.launcherPid) || input.launcherPid <= 1) {
|
|
17293
|
+
return {
|
|
17294
|
+
watch: false,
|
|
17295
|
+
launcherPid: null,
|
|
17296
|
+
reason: "headless run already detached (no launcher to outlive)"
|
|
17297
|
+
};
|
|
17298
|
+
}
|
|
17299
|
+
return {
|
|
17300
|
+
watch: true,
|
|
17301
|
+
launcherPid: input.launcherPid,
|
|
17302
|
+
reason: `headless run launched by pid ${input.launcherPid}; it quits when that process goes`
|
|
17303
|
+
};
|
|
17304
|
+
}
|
|
17305
|
+
function describeWindowLaunch(plan, platform = process.platform) {
|
|
17173
17306
|
const behaviour = plan.show === "never" ? "window created and never shown" : plan.show === "inactive" ? "window shown without activating the app" : "window shown and focused";
|
|
17174
|
-
const assumption = plan.assumed ? ` (assumed: ${plan.assumed})` : "";
|
|
17175
|
-
|
|
17307
|
+
const assumption = plan.assumed ? ` (mode assumed: ${plan.assumed})` : "";
|
|
17308
|
+
const extras = [
|
|
17309
|
+
plan.hideDock && platform === "darwin" ? "no Dock tile" : null
|
|
17310
|
+
].filter((part) => part !== null);
|
|
17311
|
+
const suffix = extras.length === 0 ? "" : `, ${extras.join(", ")}`;
|
|
17312
|
+
return `window mode ${plan.mode}: ${plan.width}x${plan.height}, ${behaviour}, page throttling ${plan.backgroundThrottling ? "on" : "off"}${suffix}${assumption}`;
|
|
17176
17313
|
}
|
|
17177
17314
|
const BASE64_FILE_EXTENSIONS = ["csv", "tsv", "xls", "xlsx", "ods"];
|
|
17178
17315
|
const resolveUserPath = (filePath, cwd) => {
|
|
@@ -17183,10 +17320,50 @@ const resolveUserPath = (filePath, cwd) => {
|
|
|
17183
17320
|
return path$1.join(cwd.startsWith("~/") ? resolveUserPath(cwd) : cwd, filePath);
|
|
17184
17321
|
return filePath;
|
|
17185
17322
|
};
|
|
17323
|
+
const windowLaunch = resolveWindowLaunchPlan({
|
|
17324
|
+
env: launchEnv,
|
|
17325
|
+
argv: process.argv
|
|
17326
|
+
});
|
|
17327
|
+
for (const problem of windowLaunch.problems) {
|
|
17328
|
+
logger.warn(`[window-mode] ${problem}`, LogFileType.BACKEND);
|
|
17329
|
+
console.log(`[window-mode] ${problem}`);
|
|
17330
|
+
}
|
|
17331
|
+
if (windowLaunch.mode !== "normal") {
|
|
17332
|
+
console.log(`[window-mode] ${describeWindowLaunch(windowLaunch)}`);
|
|
17333
|
+
}
|
|
17334
|
+
let headlessExitDeadline = null;
|
|
17335
|
+
function armHeadlessExitDeadline(why) {
|
|
17336
|
+
if (headlessExitDeadline) return;
|
|
17337
|
+
const deadline2 = setTimeout(() => {
|
|
17338
|
+
const line = `${why}; the quit did not finish within ${LAUNCHER_EXIT_DEADLINE_MS} ms, exiting`;
|
|
17339
|
+
logger.error(`[window-mode] ${line}`, LogFileType.BACKEND);
|
|
17340
|
+
console.log(`[window-mode] ${line}`);
|
|
17341
|
+
electron.app.exit(0);
|
|
17342
|
+
}, LAUNCHER_EXIT_DEADLINE_MS);
|
|
17343
|
+
deadline2.unref();
|
|
17344
|
+
headlessExitDeadline = deadline2;
|
|
17345
|
+
}
|
|
17346
|
+
function endHeadlessRun(why, detail) {
|
|
17347
|
+
logger.info(`[window-mode] ${why}; quitting`, LogFileType.BACKEND);
|
|
17348
|
+
console.log(`[window-mode] ${why}; quitting`);
|
|
17349
|
+
if (detail) {
|
|
17350
|
+
logger.debug(
|
|
17351
|
+
`[window-mode] launcher probe: ${detail}`,
|
|
17352
|
+
LogFileType.BACKEND
|
|
17353
|
+
);
|
|
17354
|
+
}
|
|
17355
|
+
armHeadlessExitDeadline(why);
|
|
17356
|
+
electron.app.quit();
|
|
17357
|
+
}
|
|
17358
|
+
let launcherWatch = null;
|
|
17186
17359
|
electron.app.setName("Local Operator");
|
|
17187
17360
|
const image = electron.nativeImage.createFromPath(icon);
|
|
17188
17361
|
if (process.platform === "darwin" && electron.app.dock) {
|
|
17189
|
-
|
|
17362
|
+
if (windowLaunch.hideDock) {
|
|
17363
|
+
electron.app.dock.hide();
|
|
17364
|
+
} else {
|
|
17365
|
+
electron.app.dock.setIcon(image);
|
|
17366
|
+
}
|
|
17190
17367
|
}
|
|
17191
17368
|
const posthogClient = new posthogNode.PostHog(backendConfig.VITE_PUBLIC_POSTHOG_KEY, {
|
|
17192
17369
|
host: backendConfig.VITE_PUBLIC_POSTHOG_HOST,
|
|
@@ -17508,17 +17685,6 @@ const reportBackendFailure = (message, fileType) => {
|
|
|
17508
17685
|
}
|
|
17509
17686
|
electron.dialog.showErrorBox("Backend Error", message);
|
|
17510
17687
|
};
|
|
17511
|
-
const windowLaunch = resolveWindowLaunchPlan({
|
|
17512
|
-
env: launchEnv,
|
|
17513
|
-
argv: process.argv
|
|
17514
|
-
});
|
|
17515
|
-
for (const problem of windowLaunch.problems) {
|
|
17516
|
-
logger.warn(`[window-mode] ${problem}`, LogFileType.BACKEND);
|
|
17517
|
-
console.log(`[window-mode] ${problem}`);
|
|
17518
|
-
}
|
|
17519
|
-
if (windowLaunch.mode !== "normal") {
|
|
17520
|
-
console.log(`[window-mode] ${describeWindowLaunch(windowLaunch)}`);
|
|
17521
|
-
}
|
|
17522
17688
|
const devDriverArming = resolveDevDriverArming({
|
|
17523
17689
|
env: launchEnv,
|
|
17524
17690
|
windowMode: windowLaunch.mode
|
|
@@ -17619,6 +17785,29 @@ electron.app.whenReady().then(async () => {
|
|
|
17619
17785
|
electron.app.exit(0);
|
|
17620
17786
|
return;
|
|
17621
17787
|
}
|
|
17788
|
+
const launcher = resolveLauncherWatchPlan({
|
|
17789
|
+
mode: windowLaunch.mode,
|
|
17790
|
+
launcherPid: process.ppid,
|
|
17791
|
+
env: launchEnv
|
|
17792
|
+
});
|
|
17793
|
+
logger.info(`[window-mode] ${launcher.reason}`, LogFileType.BACKEND);
|
|
17794
|
+
if (windowLaunch.mode !== "normal") {
|
|
17795
|
+
console.log(`[window-mode] ${launcher.reason}`);
|
|
17796
|
+
}
|
|
17797
|
+
if (launcher.watch && launcher.launcherPid !== null) {
|
|
17798
|
+
launcherWatch = startLauncherWatch({
|
|
17799
|
+
launcherPid: launcher.launcherPid,
|
|
17800
|
+
intervalMs: LAUNCHER_POLL_INTERVAL_MS,
|
|
17801
|
+
isAlive: isProcessAlive,
|
|
17802
|
+
parentPid: () => process.ppid,
|
|
17803
|
+
onLauncherGone: ({ message, detail }) => endHeadlessRun(message, detail)
|
|
17804
|
+
});
|
|
17805
|
+
}
|
|
17806
|
+
if (windowLaunch.mode === "headless") {
|
|
17807
|
+
for (const signal of ["SIGTERM", "SIGINT"]) {
|
|
17808
|
+
process.on(signal, () => endHeadlessRun(`received ${signal}`));
|
|
17809
|
+
}
|
|
17810
|
+
}
|
|
17622
17811
|
electron.app.on("browser-window-created", (_, window) => {
|
|
17623
17812
|
utils.optimizer.watchWindowShortcuts(window);
|
|
17624
17813
|
});
|
|
@@ -18218,6 +18407,15 @@ electron.app.whenReady().then(async () => {
|
|
|
18218
18407
|
electron.app.quit();
|
|
18219
18408
|
});
|
|
18220
18409
|
electron.app.on("window-all-closed", () => {
|
|
18410
|
+
if (windowLaunch.mode === "headless") {
|
|
18411
|
+
logger.info(
|
|
18412
|
+
"[window-mode] all windows closed in a headless run; quitting",
|
|
18413
|
+
LogFileType.BACKEND
|
|
18414
|
+
);
|
|
18415
|
+
console.log("[window-mode] all windows closed in a headless run; quitting");
|
|
18416
|
+
electron.app.quit();
|
|
18417
|
+
return;
|
|
18418
|
+
}
|
|
18221
18419
|
if (process.platform === "darwin") {
|
|
18222
18420
|
if (activeUpdateService?.quitForInFlightInstall("last window closed")) {
|
|
18223
18421
|
electron.app.quit();
|
|
@@ -18282,6 +18480,10 @@ const holdQuitForSessionCookieSnapshot = createSessionCookieQuitHold({
|
|
|
18282
18480
|
electron.app.on("before-quit", async (event) => {
|
|
18283
18481
|
if (await holdQuitForSessionCookieSnapshot(event)) return;
|
|
18284
18482
|
logger.info("App is about to quit", LogFileType.BACKEND);
|
|
18483
|
+
if (windowLaunch.mode === "headless") {
|
|
18484
|
+
launcherWatch?.stop();
|
|
18485
|
+
armHeadlessExitDeadline("the app is quitting");
|
|
18486
|
+
}
|
|
18285
18487
|
electron.globalShortcut.unregisterAll();
|
|
18286
18488
|
activeUpdateService?.quitForInFlightInstall("app quit");
|
|
18287
18489
|
void stopBrowserHost();
|
|
@@ -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-CoOaWdnc.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-Ca2UMsT4.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-DusUPS3m.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-Ca2UMsT4.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-BM4zDGYu.js → agent-details-page-CMBp7EaY.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{a as J,r as S,j as e,L as X,T as B,B as c,S as L,b as R,d as F,e as q,f as x,X as Z,g as j,c as U}from"./icon-
|
|
1
|
+
import{a as J,r as S,j as e,L as X,T as B,B as c,S as L,b as R,d as F,e as q,f as x,X as Z,g as j,c as U}from"./icon-CZlr9p2L.js";import{g as $,ap as V,f as E,a9 as f,ab as P,aq as _,ar as M,as as ee,at as te,au as se,av as ae,aw as Q,ax as ne,ay as W,az as ie,h as H,aA as re,aB as oe,u as le,aC as ce,aD as de,aE as me,aF as ue,B as xe,aG as he,aH as ge,aI as je,aJ as fe,aK as O,aL as ye,aM as pe,aN as be}from"./index-B3vEYnM9.js";import{u as we,a as ve,b as Ce,c as Ne}from"./use-agent-like-mutation-CCInCpXQ.js";import{A as Ae}from"./arrow-left-DnuA26Fd.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 ke=[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]],De=J("message-circle",ke),N={all:["agent-comments"],list:t=>[...N.all,"list",t]},Se=({agentId:t,enabled:r=!0})=>$({queryKey:N.list(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch comments.");return(await V(t)).result},enabled:!!t&&r,staleTime:2*60*1e3,gcTime:5*60*1e3,refetchOnWindowFocus:!0}),Fe=()=>{const t=E(),{isAuthenticated:r}=f();return P({mutationFn:async a=>{const{agentId:i,data:s}=a;if(!r)throw new Error("Authentication required.");return ee(i,s)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:N.list(i.agentId)}),M("Comment posted")},onError:a=>{_(`Failed to post comment: ${a.message}`)}})},qe=()=>{const t=E(),{isAuthenticated:r}=f();return P({mutationFn:async a=>{const{agentId:i,commentId:s,data:o}=a;if(!r)throw new Error("Authentication required.");return te(i,s,o)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:N.list(i.agentId)}),M("Comment updated")},onError:a=>{_(`Failed to update comment: ${a.message}`)}})},Le=()=>{const t=E(),{isAuthenticated:r}=f();return P({mutationFn:async a=>{const{agentId:i,commentId:s}=a;if(!r)throw new Error("Authentication required.");return se(i,s)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:N.list(i.agentId)}),M("Comment deleted")},onError:a=>{_(`Failed to delete comment: ${a.message}`)}})},Ee=({agentId:t})=>{const{isAuthenticated:r,user:a}=f(),[i,s]=S.useState(""),[o,y]=S.useState(null),[d,m]=S.useState(""),{data:z,isLoading:A,error:p}=Se({agentId:t}),k=z?.records??[],b=Fe(),w=qe(),v=Le(),C=async n=>{if(n.preventDefault(),!(!i.trim()||!r||!t))try{await b.mutateAsync({agentId:t,data:{text:i}}),s("")}catch(l){console.error("Submit comment error caught in component:",l)}},h=(n,l)=>{y(n),m(l)},u=()=>{y(null),m("")},T=async()=>{if(!(!o||!d.trim()||!r||!t))try{await w.mutateAsync({agentId:t,commentId:o,data:{text:d}}),u()}catch(n){console.error("Update comment error caught in component:",n)}},g=async n=>{if(!(!r||!t)&&window.confirm("Are you sure you want to delete this comment?"))try{await v.mutateAsync({agentId:t,commentId:n})}catch(l){console.error("Delete comment error caught in component:",l)}},D=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(X,{htmlFor:"new-comment",children:[e.jsx(De,{size:14,"aria-hidden":"true"}),"Leave a comment"]}),e.jsxs("form",{onSubmit:C,className:"flex flex-col gap-3",children:[e.jsx(B,{id:"new-comment",placeholder:"Share your thoughts...",rows:3,value:i,onChange:n=>s(n.target.value),required:!0}),e.jsx(c,{type:"submit",variant:"primary",disabled:b.isPending||!i.trim(),className:"self-end",children:b.isPending?e.jsx(L,{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(R,{className:"my-6"}),A&&e.jsx("ul",{className:"flex flex-col",children:[...Array(3)].map((n,l)=>e.jsxs("li",{className:"flex gap-3 pb-6",children:[e.jsx(F,{children:e.jsx(q,{children:e.jsx(x,{className:"size-full"})})}),e.jsxs("div",{className:"flex w-full flex-col gap-1.5",children:[e.jsx(x,{className:"h-3.5 w-24"}),e.jsx(x,{className:"h-3 w-15"}),e.jsx(x,{className:"mt-2 h-3.5 w-full"}),e.jsx(x,{className:"h-3.5 w-4/5"})]})]},`skeleton-${l}`))}),p&&e.jsxs("p",{role:"alert",className:"my-6 text-body-sm text-danger",children:["Failed to load comments: ",p.message]}),!A&&!p&&e.jsx("ul",{className:"flex flex-col gap-6",children:k.length===0?e.jsx("li",{className:"text-body-sm text-ink-muted",children:"No comments yet. Yours would be the first."}):k.map(n=>o===n.id?e.jsxs("li",{className:"flex gap-3",children:[e.jsx(F,{children:e.jsx(q,{children:n.account_metadata?.name?.charAt(0).toUpperCase()||"?"})}),e.jsxs("div",{className:"flex w-full flex-col gap-2",children:[e.jsx(B,{rows:3,value:d,onChange:l=>m(l.target.value),autoFocus:!0,"aria-label":"Edit comment"}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(c,{variant:"secondary",size:"sm",onClick:u,children:[e.jsx(Z,{}),"Cancel"]}),e.jsxs(c,{variant:"primary",size:"sm",onClick:T,disabled:w.isPending||!d.trim(),children:[w.isPending?e.jsx(L,{size:"xs",label:"Saving comment"}):e.jsx(ae,{}),"Save"]})]})]})]},n.id):e.jsxs("li",{className:"flex gap-3",children:[e.jsx(F,{children:e.jsx(q,{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:[Q(new Date(n.created_at))," ","ago"]})]}),D(n)&&e.jsxs("div",{className:"flex gap-0.5",children:[e.jsx(j,{content:"Edit comment",children:e.jsx(c,{variant:"ghost",size:"icon-sm",onClick:()=>h(n.id,n.text),disabled:!!o,"aria-label":"Edit comment",children:e.jsx(be,{})})}),e.jsx(j,{content:"Delete comment",children:e.jsx(c,{variant:"ghost",size:"icon-sm",onClick:()=>g(n.id),disabled:!!o,"aria-label":"Delete comment",children:e.jsx(W,{})})})]})]}),e.jsx("p",{className:"mt-2 text-body-sm text-ink whitespace-pre-wrap",children:n.text})]})]},n.id))})]})},K={all:["agent-details"],detail:t=>[...K.all,t]},Pe=({agentId:t,enabled:r=!0})=>$({queryKey:K.detail(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch details.");return await ne(t)},select:i=>i.result,enabled:!!t&&r,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1}),_e=()=>{const t=E(),r=H(),{isAuthenticated:a}=f();return P({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 re(s)},onSuccess:(s,o)=>{M("Agent delisted"),t.invalidateQueries({queryKey:K.detail(o.agentId)}),t.invalidateQueries({queryKey:ie.list(1,20)}),r("/agent-hub")},onError:s=>{_(`Failed to delist agent: ${s.message}`),console.error("Delist agent error:",s)}})},I=({children:t})=>e.jsx("span",{className:"inline-flex h-4 min-w-5 items-center text-meta text-ink-muted",children:t}),Ke=()=>{const{agentId:t}=oe(),r=H(),{isAuthenticated:a,user:i}=f(),{data:s,isLoading:o,error:y}=Pe({agentId:t??"",enabled:!!t}),{isLiked:d}=we({agentId:t??"",enabled:!!t&&a}),{isFavourited:m}=ve({agentId:t??"",enabled:!!t&&a}),{data:z,isLoading:A}=le({agentId:t??"",enabled:!!t}),{data:p,isLoading:k}=ce({agentId:t??"",enabled:!!t}),{data:b,isLoading:w}=de({agentId:t??"",enabled:!!t}),v=Ce(),C=Ne(),h=me(),u=_e(),[T,g]=S.useState(!1),D=!!i&&!!s&&i.radientUser?.account?.id===s.account_id,n=()=>{!t||!a||v.isPending||v.mutate({agentId:t,isCurrentlyLiked:d})},l=()=>{!t||!a||C.isPending||C.mutate({agentId:t,isCurrentlyFavourited:m})},Y=()=>{!t||!s||h.isPending||h.mutate({agentId:s.id,agentName:s.name})},G=()=>{r("/agent-hub")};return o?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(L,{label:"Loading agent details"})}):y?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsxs("p",{className:"text-body-sm text-danger",children:["Failed to load agent details: ",y.message]})}):s?e.jsxs("div",{className:"m-6 flex flex-1 flex-col rounded-lg border border-hairline 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(c,{variant:"ghost",size:"icon",onClick:G,"aria-label":"Back to Agent hub",children:e.jsx(Ae,{})}),e.jsx(F,{className:"size-11 shrink-0",children:e.jsx(q,{children:e.jsx(ue,{size:22,"aria-hidden":"true"})})}),e.jsx("h1",{className:"truncate text-display text-ink",children:s.name})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[e.jsx(j,{content:"Sign in to Radient to use this feature",disabled:a,children:e.jsx("span",{children:e.jsxs(c,{variant:"ghost",size:"sm",onClick:n,disabled:!a||v.isPending,"aria-label":d?"Unlike agent":"Like agent",className:U(d&&"text-danger"),children:[e.jsx(xe,{fill:d?"currentColor":"none"}),e.jsx(I,{children:A?e.jsx(x,{className:"h-3.5 w-5"}):z??0})]})})}),e.jsx(j,{content:"Sign in to Radient to use this feature",disabled:a,children:e.jsx("span",{children:e.jsxs(c,{variant:"ghost",size:"sm",onClick:l,disabled:!a||C.isPending,"aria-label":m?"Unfavourite agent":"Favourite agent",className:U(m&&"text-warning"),children:[e.jsx(he,{fill:m?"currentColor":"none"}),e.jsx(I,{children:k?e.jsx(x,{className:"h-3.5 w-5"}):p??0})]})})}),e.jsx(j,{content:"Download agent to your computer",children:e.jsx("span",{children:e.jsxs(c,{variant:"ghost",size:"icon",onClick:Y,disabled:h.isPending,"aria-label":"Download agent",className:"ml-1",children:[e.jsx(ge,{}),e.jsx(I,{children:w||h.isPending?e.jsx(x,{className:"h-3.5 w-5"}):b??0})]})})}),D&&e.jsx(j,{content:"Permanently delist this agent from Agent hub",children:e.jsx("span",{children:e.jsx(c,{variant:"ghost",size:"icon",onClick:()=>g(!0),disabled:u.isPending,"aria-label":"Delist agent",className:"ml-1 text-danger hover:bg-danger-wash hover:text-danger",children:e.jsx(W,{})})})})]})]}),e.jsx(je,{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??"No email",")"]}),e.jsxs("p",{children:["Created: ",Q(new Date(s.created_at))," ago (",O(s.created_at),")"]}),e.jsxs("p",{children:["Last modified: ",Q(new Date(s.updated_at))," ","ago (",O(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(R,{className:"my-6"}),e.jsx(Ee,{agentId:s.id}),e.jsx(fe,{open:T,onClose:()=>g(!1),title:"Delist this agent?",maxWidth:"xs",actions:e.jsxs(e.Fragment,{children:[e.jsx(ye,{onClick:()=>g(!1),children:"Cancel"}),e.jsx(pe,{onClick:()=>{!t||!D||u.isPending||(u.mutate({agentId:t}),g(!1))},disabled:u.isPending,children:u.isPending?e.jsx(L,{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 "',s.name,'" 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{Ke as AgentDetailsPage};
|
|
6
|
+
*/const ke=[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]],De=J("message-circle",ke),N={all:["agent-comments"],list:t=>[...N.all,"list",t]},Se=({agentId:t,enabled:r=!0})=>$({queryKey:N.list(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch comments.");return(await V(t)).result},enabled:!!t&&r,staleTime:2*60*1e3,gcTime:5*60*1e3,refetchOnWindowFocus:!0}),Fe=()=>{const t=E(),{isAuthenticated:r}=f();return P({mutationFn:async a=>{const{agentId:i,data:s}=a;if(!r)throw new Error("Authentication required.");return ee(i,s)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:N.list(i.agentId)}),M("Comment posted")},onError:a=>{_(`Failed to post comment: ${a.message}`)}})},qe=()=>{const t=E(),{isAuthenticated:r}=f();return P({mutationFn:async a=>{const{agentId:i,commentId:s,data:o}=a;if(!r)throw new Error("Authentication required.");return te(i,s,o)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:N.list(i.agentId)}),M("Comment updated")},onError:a=>{_(`Failed to update comment: ${a.message}`)}})},Le=()=>{const t=E(),{isAuthenticated:r}=f();return P({mutationFn:async a=>{const{agentId:i,commentId:s}=a;if(!r)throw new Error("Authentication required.");return se(i,s)},onSuccess:(a,i)=>{t.invalidateQueries({queryKey:N.list(i.agentId)}),M("Comment deleted")},onError:a=>{_(`Failed to delete comment: ${a.message}`)}})},Ee=({agentId:t})=>{const{isAuthenticated:r,user:a}=f(),[i,s]=S.useState(""),[o,y]=S.useState(null),[d,m]=S.useState(""),{data:z,isLoading:A,error:p}=Se({agentId:t}),k=z?.records??[],b=Fe(),w=qe(),v=Le(),C=async n=>{if(n.preventDefault(),!(!i.trim()||!r||!t))try{await b.mutateAsync({agentId:t,data:{text:i}}),s("")}catch(l){console.error("Submit comment error caught in component:",l)}},h=(n,l)=>{y(n),m(l)},u=()=>{y(null),m("")},T=async()=>{if(!(!o||!d.trim()||!r||!t))try{await w.mutateAsync({agentId:t,commentId:o,data:{text:d}}),u()}catch(n){console.error("Update comment error caught in component:",n)}},g=async n=>{if(!(!r||!t)&&window.confirm("Are you sure you want to delete this comment?"))try{await v.mutateAsync({agentId:t,commentId:n})}catch(l){console.error("Delete comment error caught in component:",l)}},D=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(X,{htmlFor:"new-comment",children:[e.jsx(De,{size:14,"aria-hidden":"true"}),"Leave a comment"]}),e.jsxs("form",{onSubmit:C,className:"flex flex-col gap-3",children:[e.jsx(B,{id:"new-comment",placeholder:"Share your thoughts...",rows:3,value:i,onChange:n=>s(n.target.value),required:!0}),e.jsx(c,{type:"submit",variant:"primary",disabled:b.isPending||!i.trim(),className:"self-end",children:b.isPending?e.jsx(L,{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(R,{className:"my-6"}),A&&e.jsx("ul",{className:"flex flex-col",children:[...Array(3)].map((n,l)=>e.jsxs("li",{className:"flex gap-3 pb-6",children:[e.jsx(F,{children:e.jsx(q,{children:e.jsx(x,{className:"size-full"})})}),e.jsxs("div",{className:"flex w-full flex-col gap-1.5",children:[e.jsx(x,{className:"h-3.5 w-24"}),e.jsx(x,{className:"h-3 w-15"}),e.jsx(x,{className:"mt-2 h-3.5 w-full"}),e.jsx(x,{className:"h-3.5 w-4/5"})]})]},`skeleton-${l}`))}),p&&e.jsxs("p",{role:"alert",className:"my-6 text-body-sm text-danger",children:["Failed to load comments: ",p.message]}),!A&&!p&&e.jsx("ul",{className:"flex flex-col gap-6",children:k.length===0?e.jsx("li",{className:"text-body-sm text-ink-muted",children:"No comments yet. Yours would be the first."}):k.map(n=>o===n.id?e.jsxs("li",{className:"flex gap-3",children:[e.jsx(F,{children:e.jsx(q,{children:n.account_metadata?.name?.charAt(0).toUpperCase()||"?"})}),e.jsxs("div",{className:"flex w-full flex-col gap-2",children:[e.jsx(B,{rows:3,value:d,onChange:l=>m(l.target.value),autoFocus:!0,"aria-label":"Edit comment"}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(c,{variant:"secondary",size:"sm",onClick:u,children:[e.jsx(Z,{}),"Cancel"]}),e.jsxs(c,{variant:"primary",size:"sm",onClick:T,disabled:w.isPending||!d.trim(),children:[w.isPending?e.jsx(L,{size:"xs",label:"Saving comment"}):e.jsx(ae,{}),"Save"]})]})]})]},n.id):e.jsxs("li",{className:"flex gap-3",children:[e.jsx(F,{children:e.jsx(q,{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:[Q(new Date(n.created_at))," ","ago"]})]}),D(n)&&e.jsxs("div",{className:"flex gap-0.5",children:[e.jsx(j,{content:"Edit comment",children:e.jsx(c,{variant:"ghost",size:"icon-sm",onClick:()=>h(n.id,n.text),disabled:!!o,"aria-label":"Edit comment",children:e.jsx(ne,{})})}),e.jsx(j,{content:"Delete comment",children:e.jsx(c,{variant:"ghost",size:"icon-sm",onClick:()=>g(n.id),disabled:!!o,"aria-label":"Delete comment",children:e.jsx(W,{})})})]})]}),e.jsx("p",{className:"mt-2 text-body-sm text-ink whitespace-pre-wrap",children:n.text})]})]},n.id))})]})},K={all:["agent-details"],detail:t=>[...K.all,t]},Pe=({agentId:t,enabled:r=!0})=>$({queryKey:K.detail(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch details.");return await ie(t)},select:i=>i.result,enabled:!!t&&r,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1}),_e=()=>{const t=E(),r=H(),{isAuthenticated:a}=f();return P({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 oe(s)},onSuccess:(s,o)=>{M("Agent delisted"),t.invalidateQueries({queryKey:K.detail(o.agentId)}),t.invalidateQueries({queryKey:re.list(1,20)}),r("/agent-hub")},onError:s=>{_(`Failed to delist agent: ${s.message}`),console.error("Delist agent error:",s)}})},I=({children:t})=>e.jsx("span",{className:"inline-flex h-4 min-w-5 items-center text-meta text-ink-muted",children:t}),Qe=()=>{const{agentId:t}=le(),r=H(),{isAuthenticated:a,user:i}=f(),{data:s,isLoading:o,error:y}=Pe({agentId:t??"",enabled:!!t}),{isLiked:d}=we({agentId:t??"",enabled:!!t&&a}),{isFavourited:m}=ve({agentId:t??"",enabled:!!t&&a}),{data:z,isLoading:A}=ce({agentId:t??"",enabled:!!t}),{data:p,isLoading:k}=de({agentId:t??"",enabled:!!t}),{data:b,isLoading:w}=me({agentId:t??"",enabled:!!t}),v=Ce(),C=Ne(),h=ue(),u=_e(),[T,g]=S.useState(!1),D=!!i&&!!s&&i.radientUser?.account?.id===s.account_id,n=()=>{!t||!a||v.isPending||v.mutate({agentId:t,isCurrentlyLiked:d})},l=()=>{!t||!a||C.isPending||C.mutate({agentId:t,isCurrentlyFavourited:m})},Y=()=>{!t||!s||h.isPending||h.mutate({agentId:s.id,agentName:s.name})},G=()=>{r("/agent-hub")};return o?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(L,{label:"Loading agent details"})}):y?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsxs("p",{className:"text-body-sm text-danger",children:["Failed to load agent details: ",y.message]})}):s?e.jsxs("div",{className:"m-6 flex flex-1 flex-col rounded-lg border border-hairline 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(c,{variant:"ghost",size:"icon",onClick:G,"aria-label":"Back to Agent hub",children:e.jsx(Ae,{})}),e.jsx(F,{className:"size-11 shrink-0",children:e.jsx(q,{children:e.jsx(xe,{size:22,"aria-hidden":"true"})})}),e.jsx("h1",{className:"truncate text-display text-ink",children:s.name})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[e.jsx(j,{content:"Sign in to Radient to use this feature",disabled:a,children:e.jsx("span",{children:e.jsxs(c,{variant:"ghost",size:"sm",onClick:n,disabled:!a||v.isPending,"aria-label":d?"Unlike agent":"Like agent",className:U(d&&"text-danger"),children:[e.jsx(he,{fill:d?"currentColor":"none"}),e.jsx(I,{children:A?e.jsx(x,{className:"h-3.5 w-5"}):z??0})]})})}),e.jsx(j,{content:"Sign in to Radient to use this feature",disabled:a,children:e.jsx("span",{children:e.jsxs(c,{variant:"ghost",size:"sm",onClick:l,disabled:!a||C.isPending,"aria-label":m?"Unfavourite agent":"Favourite agent",className:U(m&&"text-warning"),children:[e.jsx(ge,{fill:m?"currentColor":"none"}),e.jsx(I,{children:k?e.jsx(x,{className:"h-3.5 w-5"}):p??0})]})})}),e.jsx(j,{content:"Download agent to your computer",children:e.jsx("span",{children:e.jsxs(c,{variant:"ghost",size:"icon",onClick:Y,disabled:h.isPending,"aria-label":"Download agent",className:"ml-1",children:[e.jsx(je,{}),e.jsx(I,{children:w||h.isPending?e.jsx(x,{className:"h-3.5 w-5"}):b??0})]})})}),D&&e.jsx(j,{content:"Permanently delist this agent from Agent hub",children:e.jsx("span",{children:e.jsx(c,{variant:"ghost",size:"icon",onClick:()=>g(!0),disabled:u.isPending,"aria-label":"Delist agent",className:"ml-1 text-danger hover:bg-danger-wash hover:text-danger",children:e.jsx(W,{})})})})]})]}),e.jsx(fe,{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??"No email",")"]}),e.jsxs("p",{children:["Created: ",Q(new Date(s.created_at))," ago (",O(s.created_at),")"]}),e.jsxs("p",{children:["Last modified: ",Q(new Date(s.updated_at))," ","ago (",O(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(R,{className:"my-6"}),e.jsx(Ee,{agentId:s.id}),e.jsx(ye,{open:T,onClose:()=>g(!1),title:"Delist this agent?",maxWidth:"xs",actions:e.jsxs(e.Fragment,{children:[e.jsx(pe,{onClick:()=>g(!1),children:"Cancel"}),e.jsx(be,{onClick:()=>{!t||!D||u.isPending||(u.mutate({agentId:t}),g(!1))},disabled:u.isPending,children:u.isPending?e.jsx(L,{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 "',s.name,'" 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{Qe as AgentDetailsPage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as p,j as e,c as j,r as m,S as y}from"./icon-
|
|
1
|
+
import{a as p,j as e,c as j,r as m,S as y}from"./icon-CZlr9p2L.js";import{C as k}from"./compact-pagination-B0FQ2K6k.js";import{P as v}from"./page-header-M5DAJreE.js";import{a9 as b,al as A,am as h,an as L,ao as N}from"./index-B3vEYnM9.js";import{u as C,a as P,b as w,c as M}from"./use-agent-like-mutation-CCInCpXQ.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,_ as te,h as $,i as z,j as U}from"./index-DVpZx5bQ.js";import{j as e,r as n,B as u,c as P}from"./icon-Cj67f9xD.js";const ae=n.lazy(()=>te(()=>import("./legacy-agents-page-4FlrsC_-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url).then(t=>({default:t.LegacyAgentsPage}))),d="w-full rounded-md border border-control bg-surface px-3 py-2 text-body-sm text-ink";function T({profile:t,creating:v,onSaved:g}){const[r,k]=n.useState(!1),[o,m]=n.useState(v),[p,b]=n.useState(t?.name??""),[x,C]=n.useState(t?.kind??"role"),[h,y]=n.useState(t?.description??""),[j,S]=n.useState(t?.instructions??""),[_,D]=n.useState(t?.tools?.join(", ")??""),[I,N]=n.useState(t?.effort??"inherit"),[R,L]=n.useState(t?.delegate??!1),[f,a]=n.useState(!1),[c,l]=n.useState(null),i=n.useRef(null),w=$(),E=v||r,K=async s=>{if(s.preventDefault(),f)return;const M={kind:x,description:h,instructions:j,tools:_.split(",").map(q=>q.trim()).filter(Boolean),effort:I,delegate:R},A=JSON.stringify({name:p,fields:M,fresh:E});if(i.current&&i.current.body!==A){l("The previous save has not been confirmed. Retry it unchanged or reload the profile to reconcile before editing again.");return}i.current??={id:crypto.randomUUID(),body:A},a(!0),l(null);try{const q=await U({op:E?"profiles.create":"profiles.update",requestId:i.current.id,name:p,fields:M});i.current=null,m(!1),g(q.name)}catch(q){l(q instanceof Error?q.message:"Profile could not be saved.")}finally{a(!1)}},F=async()=>{if(!(!t||f)){a(!0),l(null);try{const s=await U({op:"profiles.install",name:t.name,requestId:crypto.randomUUID()});m(!1),k(!1),i.current=null,b(s.name),C(s.kind),y(s.description??""),S(s.instructions??""),D(s.tools?.join(", ")??""),N(s.effort??"inherit"),L(s.delegate??!1),g(s.name)}catch(s){l(s instanceof Error?s.message:"Profile could not be installed.")}finally{a(!1)}}};return e.jsxs("div",{className:"max-w-3xl space-y-6",children:[e.jsxs("header",{children:[e.jsx("h1",{className:"text-title",children:E?r?"Extend agent":"Create agent":t?.name}),e.jsx("p",{className:"mt-2 text-body-sm text-ink-muted",children:"Reusable instructions shared by agent commands, subagents and teams. Chats remain separate."})]}),t&&!E&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("span",{className:"text-meta text-ink-muted",children:[t.source==="builtin"?"Built-in":t.source==="installed"?"Installed":"Custom",t.divergent_fields?.length?" · Modified":""," ·"," ",t.kind]}),t.source==="builtin"?e.jsx(u,{variant:"outline",onClick:F,disabled:f,children:"Install"}):e.jsx(u,{variant:"outline",onClick:()=>m(!0),children:"Edit"}),e.jsx(u,{variant:"outline",onClick:()=>{k(!0),m(!0),b(""),i.current=null},children:"Extend"}),e.jsx(u,{onClick:()=>{z.getState().stageDraft({kind:"agent",name:t.name}),w("/chat")},children:"New chat"})]}),c&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:c}),!o&&t?.source==="builtin"&&e.jsx("p",{id:"builtin-readonly",className:"text-body-sm text-ink-muted",children:"Built-in agents are read-only. Install this one to edit it, or Extend it to start a separate agent from its instructions."}),e.jsxs("form",{onSubmit:K,className:"space-y-4",children:[e.jsxs("fieldset",{disabled:!o||f,className:"space-y-4",children:[e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{className:d,value:p,disabled:!E,required:!0,"aria-describedby":t?.source==="builtin"?"builtin-readonly":void 0,onChange:s=>b(s.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Kind"}),e.jsxs("select",{className:d,value:x,disabled:!E,onChange:s=>C(s.target.value),children:[e.jsx("option",{value:"role",children:"Role"}),e.jsx("option",{value:"specialist",children:"Specialist"})]})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"When to use this agent"}),e.jsx("input",{className:d,value:h,maxLength:8e3,onChange:s=>y(s.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Instructions"}),e.jsx("textarea",{className:P(d,"min-h-52"),value:j,required:!0,maxLength:8e3,onChange:s=>S(s.target.value)})]}),x==="role"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Allowed tools"}),e.jsx("input",{className:d,value:_,onChange:s=>D(s.target.value),placeholder:"All tools when empty; otherwise comma-separated names"})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Effort tier"}),e.jsx("input",{className:d,value:I,onChange:s=>N(s.target.value),"aria-describedby":"effort-help"}),e.jsx("span",{id:"effort-help",className:"text-meta text-ink-muted",children:"Use inherit, or a tier configured in backend settings. Unsupported tiers are rejected before saving."})]}),e.jsxs("label",{className:"flex items-center gap-2 text-body-sm",children:[e.jsx("input",{type:"checkbox",checked:R,onChange:s=>L(s.target.checked)}),"May delegate to subagents"]})]})]}),o&&e.jsx(u,{type:"submit",disabled:f,children:f?"Saving…":E?"Create agent":"Save changes"})]}),!o&&t?.packaged_instructions&&t.divergent_fields?.length?e.jsxs("details",{className:"text-body-sm",children:[e.jsx("summary",{children:"Compare packaged instructions"}),e.jsx("pre",{className:"mt-2 whitespace-pre-wrap text-body-sm text-ink-muted",children:t.packaged_instructions})]}):null]})}function B({team:t,onSaved:v}){const[g,r]=n.useState(t?.name??""),[k,o]=n.useState(t?.description??""),[m,p]=n.useState(t?.manager??"manager"),[b,x]=n.useState((t?.members??[]).map(a=>({...a,key:crypto.randomUUID()}))),[C,h]=n.useState(t?.instructions??""),[y,j]=n.useState(t?.project??""),[S,_]=n.useState(!1),[D,I]=n.useState(null),N=n.useRef(null),R=$(),L=async a=>{if(a.preventDefault(),S)return;const c={name:g,description:k,manager:m,members:b.map(({key:i,...w})=>w),instructions:C,project:y},l=JSON.stringify(c);if(N.current&&N.current.body!==l){I("The previous save has not been confirmed. Reload the team before changing that request.");return}N.current??={id:crypto.randomUUID(),body:l},_(!0),I(null);try{const i=t?await U({op:"teams.update",name:t.name,requestId:N.current.id,fields:c}):await U({op:"teams.create",requestId:N.current.id,fields:c});N.current=null,v(i.name)}catch(i){I(i instanceof Error?i.message:"Team could not be saved.")}finally{_(!1)}},f=(a,c)=>x(l=>l.map((i,w)=>w===a?{...i,...c}:i));return e.jsxs("div",{className:"max-w-3xl space-y-6",children:[e.jsxs("header",{children:[e.jsx("h1",{className:"text-title",children:t?t.name:"Create team"}),e.jsx("p",{className:"mt-2 text-body-sm text-ink-muted",children:"The manager leads the chat. Members retain their own instructions and start only when delegated work."})]}),t&&e.jsx(u,{onClick:()=>{z.getState().stageDraft({kind:"team",name:t.name}),R("/chat")},children:"New team chat"}),D&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:D}),e.jsxs("form",{onSubmit:L,className:"space-y-4",children:[e.jsxs("fieldset",{disabled:S,className:"space-y-4",children:[e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{className:d,required:!0,maxLength:64,value:g,onChange:a=>r(a.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Description"}),e.jsx("input",{className:d,value:k,onChange:a=>o(a.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Manager agent"}),e.jsx("input",{className:d,required:!0,value:m,onChange:a=>p(a.target.value)})]}),e.jsxs("section",{className:"space-y-2",children:[e.jsx("h2",{className:"text-heading",children:"Members"}),b.map((a,c)=>e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("input",{className:P(d,"w-48 flex-1"),"aria-label":`Member ${c+1} name`,required:!0,value:a.role,onChange:l=>f(c,{role:l.target.value})}),e.jsxs("select",{className:P(d,"w-32"),"aria-label":`Member ${c+1} kind`,value:a.kind,onChange:l=>f(c,{kind:l.target.value}),children:[e.jsx("option",{value:"agent",children:"Agent"}),e.jsx("option",{value:"team",children:"Nested team"})]}),e.jsx("input",{className:P(d,"w-20"),"aria-label":`Member ${c+1} count`,type:"number",min:1,max:16,value:a.count,onChange:l=>f(c,{count:Number(l.target.value)})}),e.jsx(u,{type:"button",variant:"ghost",onClick:()=>x(l=>l.filter((i,w)=>w!==c)),children:"Remove"})]},a.key)),e.jsx(u,{type:"button",variant:"outline",onClick:()=>x(a=>[...a,{role:"",count:1,kind:"agent",key:crypto.randomUUID()}]),children:"Add member"})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Collaboration instructions"}),e.jsx("textarea",{className:P(d,"min-h-36"),maxLength:8e3,value:C,onChange:a=>h(a.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Project brief"}),e.jsx("textarea",{className:P(d,"min-h-36"),maxLength:8e3,value:y,onChange:a=>j(a.target.value)})]})]}),e.jsx(u,{type:"submit",disabled:S,children:S?"Saving…":t?"Save team":"Create team"})]})]})}function re(){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(ae,{})}):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-elevated",j.name===o&&"bg-accent-wash"),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{re as AgentsPage};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./legacy-agents-page-B-bYOL4L.js","./icon-CZlr9p2L.js","./icon-TFBsh9Po.css","./page-header-M5DAJreE.js","./index-B3vEYnM9.js","./index-aW0Bo_1a.css","./radient-auth-buttons-C36cNiEY.js","./compact-pagination-B0FQ2K6k.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,_ as te,h as $,i as z,j as U}from"./index-B3vEYnM9.js";import{j as e,r as n,B as u,c as P}from"./icon-CZlr9p2L.js";const ae=n.lazy(()=>te(()=>import("./legacy-agents-page-B-bYOL4L.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url).then(t=>({default:t.LegacyAgentsPage}))),d="w-full rounded-md border border-control bg-surface px-3 py-2 text-body-sm text-ink";function T({profile:t,creating:v,onSaved:g}){const[r,k]=n.useState(!1),[o,m]=n.useState(v),[p,b]=n.useState(t?.name??""),[x,C]=n.useState(t?.kind??"role"),[h,y]=n.useState(t?.description??""),[j,S]=n.useState(t?.instructions??""),[_,D]=n.useState(t?.tools?.join(", ")??""),[I,N]=n.useState(t?.effort??"inherit"),[R,L]=n.useState(t?.delegate??!1),[f,a]=n.useState(!1),[c,l]=n.useState(null),i=n.useRef(null),w=$(),E=v||r,K=async s=>{if(s.preventDefault(),f)return;const M={kind:x,description:h,instructions:j,tools:_.split(",").map(q=>q.trim()).filter(Boolean),effort:I,delegate:R},A=JSON.stringify({name:p,fields:M,fresh:E});if(i.current&&i.current.body!==A){l("The previous save has not been confirmed. Retry it unchanged or reload the profile to reconcile before editing again.");return}i.current??={id:crypto.randomUUID(),body:A},a(!0),l(null);try{const q=await U({op:E?"profiles.create":"profiles.update",requestId:i.current.id,name:p,fields:M});i.current=null,m(!1),g(q.name)}catch(q){l(q instanceof Error?q.message:"Profile could not be saved.")}finally{a(!1)}},F=async()=>{if(!(!t||f)){a(!0),l(null);try{const s=await U({op:"profiles.install",name:t.name,requestId:crypto.randomUUID()});m(!1),k(!1),i.current=null,b(s.name),C(s.kind),y(s.description??""),S(s.instructions??""),D(s.tools?.join(", ")??""),N(s.effort??"inherit"),L(s.delegate??!1),g(s.name)}catch(s){l(s instanceof Error?s.message:"Profile could not be installed.")}finally{a(!1)}}};return e.jsxs("div",{className:"max-w-3xl space-y-6",children:[e.jsxs("header",{children:[e.jsx("h1",{className:"text-title",children:E?r?"Extend agent":"Create agent":t?.name}),e.jsx("p",{className:"mt-2 text-body-sm text-ink-muted",children:"Reusable instructions shared by agent commands, subagents and teams. Chats remain separate."})]}),t&&!E&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("span",{className:"text-meta text-ink-muted",children:[t.source==="builtin"?"Built-in":t.source==="installed"?"Installed":"Custom",t.divergent_fields?.length?" · Modified":""," ·"," ",t.kind]}),t.source==="builtin"?e.jsx(u,{variant:"outline",onClick:F,disabled:f,children:"Install"}):e.jsx(u,{variant:"outline",onClick:()=>m(!0),children:"Edit"}),e.jsx(u,{variant:"outline",onClick:()=>{k(!0),m(!0),b(""),i.current=null},children:"Extend"}),e.jsx(u,{onClick:()=>{z.getState().stageDraft({kind:"agent",name:t.name}),w("/chat")},children:"New chat"})]}),c&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:c}),!o&&t?.source==="builtin"&&e.jsx("p",{id:"builtin-readonly",className:"text-body-sm text-ink-muted",children:"Built-in agents are read-only. Install this one to edit it, or Extend it to start a separate agent from its instructions."}),e.jsxs("form",{onSubmit:K,className:"space-y-4",children:[e.jsxs("fieldset",{disabled:!o||f,className:"space-y-4",children:[e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{className:d,value:p,disabled:!E,required:!0,"aria-describedby":t?.source==="builtin"?"builtin-readonly":void 0,onChange:s=>b(s.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Kind"}),e.jsxs("select",{className:d,value:x,disabled:!E,onChange:s=>C(s.target.value),children:[e.jsx("option",{value:"role",children:"Role"}),e.jsx("option",{value:"specialist",children:"Specialist"})]})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"When to use this agent"}),e.jsx("input",{className:d,value:h,maxLength:8e3,onChange:s=>y(s.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Instructions"}),e.jsx("textarea",{className:P(d,"min-h-52"),value:j,required:!0,maxLength:8e3,onChange:s=>S(s.target.value)})]}),x==="role"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Allowed tools"}),e.jsx("input",{className:d,value:_,onChange:s=>D(s.target.value),placeholder:"All tools when empty; otherwise comma-separated names"})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Effort tier"}),e.jsx("input",{className:d,value:I,onChange:s=>N(s.target.value),"aria-describedby":"effort-help"}),e.jsx("span",{id:"effort-help",className:"text-meta text-ink-muted",children:"Use inherit, or a tier configured in backend settings. Unsupported tiers are rejected before saving."})]}),e.jsxs("label",{className:"flex items-center gap-2 text-body-sm",children:[e.jsx("input",{type:"checkbox",checked:R,onChange:s=>L(s.target.checked)}),"May delegate to subagents"]})]})]}),o&&e.jsx(u,{type:"submit",disabled:f,children:f?"Saving…":E?"Create agent":"Save changes"})]}),!o&&t?.packaged_instructions&&t.divergent_fields?.length?e.jsxs("details",{className:"text-body-sm",children:[e.jsx("summary",{children:"Compare packaged instructions"}),e.jsx("pre",{className:"mt-2 whitespace-pre-wrap text-body-sm text-ink-muted",children:t.packaged_instructions})]}):null]})}function B({team:t,onSaved:v}){const[g,r]=n.useState(t?.name??""),[k,o]=n.useState(t?.description??""),[m,p]=n.useState(t?.manager??"manager"),[b,x]=n.useState((t?.members??[]).map(a=>({...a,key:crypto.randomUUID()}))),[C,h]=n.useState(t?.instructions??""),[y,j]=n.useState(t?.project??""),[S,_]=n.useState(!1),[D,I]=n.useState(null),N=n.useRef(null),R=$(),L=async a=>{if(a.preventDefault(),S)return;const c={name:g,description:k,manager:m,members:b.map(({key:i,...w})=>w),instructions:C,project:y},l=JSON.stringify(c);if(N.current&&N.current.body!==l){I("The previous save has not been confirmed. Reload the team before changing that request.");return}N.current??={id:crypto.randomUUID(),body:l},_(!0),I(null);try{const i=t?await U({op:"teams.update",name:t.name,requestId:N.current.id,fields:c}):await U({op:"teams.create",requestId:N.current.id,fields:c});N.current=null,v(i.name)}catch(i){I(i instanceof Error?i.message:"Team could not be saved.")}finally{_(!1)}},f=(a,c)=>x(l=>l.map((i,w)=>w===a?{...i,...c}:i));return e.jsxs("div",{className:"max-w-3xl space-y-6",children:[e.jsxs("header",{children:[e.jsx("h1",{className:"text-title",children:t?t.name:"Create team"}),e.jsx("p",{className:"mt-2 text-body-sm text-ink-muted",children:"The manager leads the chat. Members retain their own instructions and start only when delegated work."})]}),t&&e.jsx(u,{onClick:()=>{z.getState().stageDraft({kind:"team",name:t.name}),R("/chat")},children:"New team chat"}),D&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:D}),e.jsxs("form",{onSubmit:L,className:"space-y-4",children:[e.jsxs("fieldset",{disabled:S,className:"space-y-4",children:[e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Name"}),e.jsx("input",{className:d,required:!0,maxLength:64,value:g,onChange:a=>r(a.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Description"}),e.jsx("input",{className:d,value:k,onChange:a=>o(a.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Manager agent"}),e.jsx("input",{className:d,required:!0,value:m,onChange:a=>p(a.target.value)})]}),e.jsxs("section",{className:"space-y-2",children:[e.jsx("h2",{className:"text-heading",children:"Members"}),b.map((a,c)=>e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("input",{className:P(d,"w-48 flex-1"),"aria-label":`Member ${c+1} name`,required:!0,value:a.role,onChange:l=>f(c,{role:l.target.value})}),e.jsxs("select",{className:P(d,"w-32"),"aria-label":`Member ${c+1} kind`,value:a.kind,onChange:l=>f(c,{kind:l.target.value}),children:[e.jsx("option",{value:"agent",children:"Agent"}),e.jsx("option",{value:"team",children:"Nested team"})]}),e.jsx("input",{className:P(d,"w-20"),"aria-label":`Member ${c+1} count`,type:"number",min:1,max:16,value:a.count,onChange:l=>f(c,{count:Number(l.target.value)})}),e.jsx(u,{type:"button",variant:"ghost",onClick:()=>x(l=>l.filter((i,w)=>w!==c)),children:"Remove"})]},a.key)),e.jsx(u,{type:"button",variant:"outline",onClick:()=>x(a=>[...a,{role:"",count:1,kind:"agent",key:crypto.randomUUID()}]),children:"Add member"})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Collaboration instructions"}),e.jsx("textarea",{className:P(d,"min-h-36"),maxLength:8e3,value:C,onChange:a=>h(a.target.value)})]}),e.jsxs("label",{className:"block space-y-1 text-body-sm",children:[e.jsx("span",{children:"Project brief"}),e.jsx("textarea",{className:P(d,"min-h-36"),maxLength:8e3,value:y,onChange:a=>j(a.target.value)})]})]}),e.jsx(u,{type:"submit",disabled:S,children:S?"Saving…":t?"Save team":"Create team"})]})]})}function re(){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(ae,{})}):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-elevated",j.name===o&&"bg-accent-wash"),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{re as AgentsPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{w as ln,p as rn,k as G,s as q,l as k,m as un,n as y,t as tn,o as K,q as _,r as an,v as o,x as sn,y as on,z as fn}from"./index-
|
|
1
|
+
import{w as ln,p as rn,k as G,s as q,l as k,m as un,n as y,t as tn,o as K,q as _,r as an,v as o,x as sn,y as on,z as fn}from"./index-B3vEYnM9.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,z,v,A,B,r){var I=E-l,s=z-h,n=B-v,m=r-A,u=m*I-n*s;if(!(u*u<y))return u=(n*(h-A)-m*(l-v))/u,[l+u*I,h+u*s]}function V(l,h,E,z,v,A,B){var r=l-E,I=h-z,s=(B?A:-A)/K(r*r+I*I),n=s*I,m=-s*r,u=l+n,i=h+m,f=E+n,c=z+m,C=(u+f)/2,t=(i+c)/2,p=f-u,g=c-i,R=p*p+g*g,T=v-A,P=u*c-f*i,O=(g<0?-1:1)*K(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-C,e=j-t,a=w-C,F=d-t;return x*x+e*e>a*a+F*F&&(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=k(0),z=null,v=gn,A=mn,B=pn,r=null,I=ln(s);function s(){var n,m,u=+l.apply(this,arguments),i=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,C=an(c-f),t=c>f;if(r||(r=n=I()),i<u&&(m=i,i=u,u=m),!(i>y))r.moveTo(0,0);else if(C>tn-y)r.moveTo(i*G(f),i*q(f)),r.arc(0,0,i,f,c,!t),u>y&&(r.moveTo(u*G(c),u*q(c)),r.arc(0,0,u,c,f,t));else{var p=f,g=c,R=f,T=c,P=C,O=C,S=B.apply(this,arguments)/2,j=S>y&&(z?+z.apply(this,arguments):K(u*u+i*i)),w=_(an(i-u)/2,+E.apply(this,arguments)),d=w,x=w,e,a;if(j>y){var F=sn(j/u*q(S)),L=sn(j/i*q(S));(P-=F*2)>y?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(O-=L*2)>y?(L*=t?1:-1,p+=L,g-=L):(O=0,p=g=(f+c)/2)}var H=i*G(p),J=i*q(p),M=u*G(T),N=u*q(T);if(w>y){var Q=i*G(g),U=i*q(g),W=u*G(R),X=u*q(R),D;if(C<rn)if(D=dn(H,J,W,X,Q,U,M,N)){var Y=H-D[0],Z=J-D[1],$=Q-D[0],b=U-D[1],nn=1/q(fn((Y*$+Z*b)/(K(Y*Y+Z*Z)*K($*$+b*b)))/2),en=K(D[0]*D[0]+D[1]*D[1]);d=_(w,(u-en)/(nn-1)),x=_(w,(i-en)/(nn+1))}else d=x=0}O>y?x>y?(e=V(W,X,H,J,i,x,t),a=V(Q,U,M,N,i,x,t),r.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?r.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(a.y01,a.x01),!t):(r.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),r.arc(0,0,i,o(e.cy+e.y11,e.cx+e.x11),o(a.cy+a.y11,a.cx+a.x11),!t),r.arc(a.cx,a.cy,x,o(a.y11,a.x11),o(a.y01,a.x01),!t))):(r.moveTo(H,J),r.arc(0,0,i,p,g,!t)):r.moveTo(H,J),!(u>y)||!(P>y)?r.lineTo(M,N):d>y?(e=V(M,N,Q,U,u,-d,t),a=V(H,J,W,X,u,-d,t),r.lineTo(e.cx+e.x01,e.cy+e.y01),d<w?r.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(a.y01,a.x01),!t):(r.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(e.y11,e.x11),!t),r.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(a.cy+a.y11,a.cx+a.x11),t),r.arc(a.cx,a.cy,d,o(a.y11,a.x11),o(a.y01,a.x01),!t))):r.arc(0,0,u,T,R,t)}if(r.closePath(),n)return r=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-rn/2;return[G(m)*n,q(m)*n]},s.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:k(+n),s):l},s.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:k(+n),s):h},s.cornerRadius=function(n){return arguments.length?(E=typeof n=="function"?n:k(+n),s):E},s.padRadius=function(n){return arguments.length?(z=n==null?null:typeof n=="function"?n:k(+n),s):z},s.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:k(+n),s):v},s.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:k(+n),s):A},s.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:k(+n),s):B},s.context=function(n){return arguments.length?(r=n??null,s):r},s}export{hn as d};
|