local-operator-ui 0.25.8 → 0.25.10

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.
Files changed (71) hide show
  1. package/out/main/index.js +130 -61
  2. package/out/renderer/assets/{_basePickBy-BUp7x6jU.js → _basePickBy-Dc7CsGGc.js} +1 -1
  3. package/out/renderer/assets/{_baseUniq-CoCrDJx-.js → _baseUniq-BcI4o9r1.js} +1 -1
  4. package/out/renderer/assets/{agent-details-page-BLDLpEb1.js → agent-details-page-Bbzz81h0.js} +1 -1
  5. package/out/renderer/assets/{agent-hub-page-BUn37enG.js → agent-hub-page-BehmTi1m.js} +1 -1
  6. package/out/renderer/assets/{agents-page-OVHzMi16.js → agents-page-C-nkjaiF.js} +2 -2
  7. package/out/renderer/assets/{arc-BLv3f38C.js → arc-DRqvxu6i.js} +1 -1
  8. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-Df_JI2c3.js → architectureDiagram-IEHRJDOE-C-aO5oDt.js} +1 -1
  9. package/out/renderer/assets/{arrow-left-DyxwZyAJ.js → arrow-left-CiJceI8e.js} +1 -1
  10. package/out/renderer/assets/{blockDiagram-JOT3LUYC-o4k2qf_P.js → blockDiagram-JOT3LUYC-BS3JLZvl.js} +1 -1
  11. package/out/renderer/assets/browser-page-BNjbdOsx.js +1 -0
  12. package/out/renderer/assets/{c4Diagram-VJAJSXHY-DZoCqh6d.js → c4Diagram-VJAJSXHY-Beuab6Az.js} +1 -1
  13. package/out/renderer/assets/channel-BW4mzN_3.js +1 -0
  14. package/out/renderer/assets/{chunk-4BMEZGHF-C9KxulNf.js → chunk-4BMEZGHF-nHScUB-6.js} +1 -1
  15. package/out/renderer/assets/{chunk-A2AXSNBT-B0uutJ7J.js → chunk-A2AXSNBT-CpH0MbZ1.js} +1 -1
  16. package/out/renderer/assets/{chunk-AEK57VVT-DrVzlSsk.js → chunk-AEK57VVT-B8z14xij.js} +1 -1
  17. package/out/renderer/assets/{chunk-D6G4REZN-Di8HvLBs.js → chunk-D6G4REZN-X_olriGu.js} +1 -1
  18. package/out/renderer/assets/{chunk-RZ5BOZE2-DhSzFvBx.js → chunk-RZ5BOZE2-k05aTsX1.js} +1 -1
  19. package/out/renderer/assets/{chunk-XZIHB7SX-CrKHxN5n.js → chunk-XZIHB7SX-CFzOVhMD.js} +1 -1
  20. package/out/renderer/assets/classDiagram-GIVACNV2-I4mBQb8Y.js +1 -0
  21. package/out/renderer/assets/classDiagram-v2-COTLJTTW-I4mBQb8Y.js +1 -0
  22. package/out/renderer/assets/clone-CFuPc3b2.js +1 -0
  23. package/out/renderer/assets/{compact-pagination-CNBAdNPU.js → compact-pagination-DcQd1Yw-.js} +1 -1
  24. package/out/renderer/assets/{dagre-OKDRZEBW-aYs-xc7o.js → dagre-OKDRZEBW-CzfJf6s3.js} +1 -1
  25. package/out/renderer/assets/{diagram-SSKATNLV-Bgem-Ln0.js → diagram-SSKATNLV-C52lZrA0.js} +1 -1
  26. package/out/renderer/assets/{diagram-VNBRO52H-OapiSdC-.js → diagram-VNBRO52H-PR22VW_W.js} +1 -1
  27. package/out/renderer/assets/{erDiagram-Q7BY3M3F-EEjrCI7w.js → erDiagram-Q7BY3M3F-C_GPAogs.js} +1 -1
  28. package/out/renderer/assets/{flowDiagram-4HSFHLVR-CpSdnyRv.js → flowDiagram-4HSFHLVR-DZnJIoPr.js} +1 -1
  29. package/out/renderer/assets/{ganttDiagram-APWFNJXF-xAxniJyQ.js → ganttDiagram-APWFNJXF-DQBsrrpK.js} +1 -1
  30. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-QJfnhKzT.js → gitGraphDiagram-7IBYFJ6S-AfFACac2.js} +1 -1
  31. package/out/renderer/assets/{graph-CJbm8ZQQ.js → graph-Bjxe6B9O.js} +1 -1
  32. package/out/renderer/assets/icon-BDu7a_-6.css +1 -0
  33. package/out/renderer/assets/{icon-CxZRbnZ0.js → icon-giwXJbjk.js} +9 -9
  34. package/out/renderer/assets/{index-B4QMd4wd.js → index-BHDf26BA.js} +1 -1
  35. package/out/renderer/assets/{index-wEl5qXpr.js → index-C8lN9NIR.js} +1 -1
  36. package/out/renderer/assets/{index-B1sPyxD9.js → index-DOR1dMWN.js} +372 -367
  37. package/out/renderer/assets/{infoDiagram-PH2N3AL5-CfIeEQCN.js → infoDiagram-PH2N3AL5-g5maBrjp.js} +1 -1
  38. package/out/renderer/assets/{installer-D2fj-5T0.js → installer-BQl_2uJr.js} +2 -2
  39. package/out/renderer/assets/{journeyDiagram-U35MCT3I-luLKAjn5.js → journeyDiagram-U35MCT3I-BlXoyGIt.js} +1 -1
  40. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-DAqYH2jg.js → kanban-definition-NDS4AKOZ-BSPXz__X.js} +1 -1
  41. package/out/renderer/assets/{layout-KEWoz4kc.js → layout-R71oDIMJ.js} +1 -1
  42. package/out/renderer/assets/{legacy-agents-page-CLxBXrre.js → legacy-agents-page-Dl_OPtYj.js} +1 -1
  43. package/out/renderer/assets/{mermaid.core-DDCvJ8Vn.js → mermaid.core-CjJqe_d-.js} +5 -5
  44. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-B2x84hA5.js → mindmap-definition-ALO5MXBD-BujOxX7c.js} +1 -1
  45. package/out/renderer/assets/{page-header-Bng1g_7d.js → page-header-B_TbLiZC.js} +1 -1
  46. package/out/renderer/assets/{parseISO-DQ95ZERt.js → parseISO-WLamiqnN.js} +1 -1
  47. package/out/renderer/assets/{pieDiagram-IB7DONF6-BHy_DobL.js → pieDiagram-IB7DONF6-CHZYRhVG.js} +1 -1
  48. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-bcV3OZ6D.js → quadrantDiagram-7GDLP6J5-mOsQ00cE.js} +1 -1
  49. package/out/renderer/assets/{radar-MK3ICKWK-DIlH1Xs5.js → radar-MK3ICKWK-C0G40Mrt.js} +1 -1
  50. package/out/renderer/assets/{radient-auth-buttons-DRxDX6j9.js → radient-auth-buttons-BvMD0K4b.js} +1 -1
  51. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-BXUnD0o1.js → requirementDiagram-KVF5MWMF-BYjlnn4c.js} +1 -1
  52. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-Coh0ilUH.js → sankeyDiagram-QLVOVGJD-Bd-AbvK-.js} +1 -1
  53. package/out/renderer/assets/{schedules-page-BCAMG5yW.js → schedules-page-DieuF5Xp.js} +1 -1
  54. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-B_6uZwut.js → sequenceDiagram-X6HHIX6F-BcmQ0lXI.js} +1 -1
  55. package/out/renderer/assets/{settings-page-BuiXVsMQ.js → settings-page-DIb8gPLb.js} +6 -6
  56. package/out/renderer/assets/{shield-check-mGp_9qQu.js → shield-check-BJ9wbi-7.js} +1 -1
  57. package/out/renderer/assets/{stateDiagram-DGXRK772-C7IFD5CK.js → stateDiagram-DGXRK772-DDC41wRc.js} +1 -1
  58. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-tZkQuuhw.js +1 -0
  59. package/out/renderer/assets/{timeline-definition-BDJGKUSR-BNpgqQbY.js → timeline-definition-BDJGKUSR-BvNMSpcF.js} +1 -1
  60. package/out/renderer/assets/{use-agent-like-mutation-C9n9Cndz.js → use-agent-like-mutation-AG1SEqKe.js} +1 -1
  61. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-ru4Dm4qw.js → xychartDiagram-VJFVF3MP-CrFd9Hqj.js} +1 -1
  62. package/out/renderer/index.html +3 -3
  63. package/out/renderer/installer.html +4 -4
  64. package/package.json +2 -3
  65. package/out/renderer/assets/browser-page-BfMAVdEN.js +0 -1
  66. package/out/renderer/assets/channel-KwBrp9g3.js +0 -1
  67. package/out/renderer/assets/classDiagram-GIVACNV2-0VHkvdbA.js +0 -1
  68. package/out/renderer/assets/classDiagram-v2-COTLJTTW-0VHkvdbA.js +0 -1
  69. package/out/renderer/assets/clone-CdQ90gYk.js +0 -1
  70. package/out/renderer/assets/icon-Bmor1CgO.css +0 -1
  71. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-Dpy0mk6X.js +0 -1
package/out/main/index.js CHANGED
@@ -2107,13 +2107,18 @@ function pythonBytecodeCacheDir(userDataDir) {
2107
2107
  }
2108
2108
  function withPythonBytecodeCache(env, userDataDir) {
2109
2109
  const existing = env.PYTHONPYCACHEPREFIX?.trim();
2110
- const prefix = existing && !insideAppBundle(existing) ? existing : pythonBytecodeCacheDir(userDataDir);
2110
+ const prefix = isUsablePrefix(existing) ? existing : pythonBytecodeCacheDir(userDataDir);
2111
2111
  return {
2112
2112
  ...env,
2113
2113
  PYTHONPYCACHEPREFIX: prefix,
2114
2114
  PYTHONDONTWRITEBYTECODE: "1"
2115
2115
  };
2116
2116
  }
2117
+ function isUsablePrefix(value) {
2118
+ if (!value) return false;
2119
+ if (!path$1.isAbsolute(value)) return false;
2120
+ return !insideAppBundle(value);
2121
+ }
2117
2122
  const VENV_BYTECODE_GUARD_FILE = "sitecustomize.py";
2118
2123
  const VENV_BYTECODE_GUARD_SENTINEL = "# Local Operator bytecode guard";
2119
2124
  function venvBytecodeGuardSource() {
@@ -2310,8 +2315,6 @@ function isPythonBytecodePath(bundlePath, candidate) {
2310
2315
  );
2311
2316
  const separator = "/";
2312
2317
  if (!path2.endsWith(".pyc")) return false;
2313
- const segments = path2.split(separator);
2314
- if (!segments.includes("__pycache__")) return false;
2315
2318
  return dirs.some((dir) => path2.startsWith(`${dir}${separator}`));
2316
2319
  }
2317
2320
  function planPythonBytecodeHeal(bundlePath, violations) {
@@ -8337,13 +8340,35 @@ class ApprovalStore {
8337
8340
  /**
8338
8341
  * Raise a request, or report that one already covers this caller.
8339
8342
  *
8340
- * The rules are `vendor/driver/access-flow.ts`'s, applied to the queue: a repeat
8341
- * request for the same origin by the same requester is idempotent with its
8342
- * original TTL, a request for a different origin REPLACES the live one (with
8343
- * a tombstone for the displaced requester), and a DURABLE denial answers
8344
- * "denied" without re-prompting, because that is what the button promises —
8345
- * "Don't allow" says the agent stops asking about this site until the denial is
8346
- * revoked.
8343
+ * THE QUEUE IS A QUEUE, and this comment is the record of what changed. Until
8344
+ * this round `requestAccess` called `displaceLive` on every new request, which
8345
+ * cleared the WHOLE live queue and tombstoned it: one prompt slot,
8346
+ * replace-don't-queue, so a second agent's request destroyed the first agent's
8347
+ * (and the test said so plainly, `"one prompt slot, replace-don't-queue"`).
8348
+ * The design authority says the opposite — "the queue is FIFO with a 10-minute
8349
+ * async TTL" (design 9.1), which is why `access-queue.ts` ships a cap of 16 that
8350
+ * this host could never reach — and the operator asked for it by name ("allow a
8351
+ * queue"). So:
8352
+ *
8353
+ * 1. A repeat request for the same origin by the same requester is idempotent
8354
+ * with its ORIGINAL TTL. Resetting the TTL would let a polling agent extend
8355
+ * the window indefinitely.
8356
+ * 2. A live receipt answers without re-prompting (see the deny arm below), so a
8357
+ * user does not learn to click Allow to make the prompt stop.
8358
+ * 3. A request for a different origin, or from a different requester, is
8359
+ * APPENDED in `sequence` order and waits its turn.
8360
+ * 4. At the cap the OLDEST live entry is displaced, with a `superseded`
8361
+ * tombstone so the agent that raised it learns what happened rather than
8362
+ * timing out into an anonymous `none`. The NEWEST requester is never refused:
8363
+ * refusing the agent that is behaving normally would turn a full queue into a
8364
+ * hard, unactionable failure for the one caller that did nothing wrong.
8365
+ *
8366
+ * WHAT THE CHANGE COSTS, stated because it is a real trade a reviewer should not
8367
+ * have to find: a displaced request taught its agent immediately, where a queued
8368
+ * one now waits for its own `await_access` budget and then re-requests
8369
+ * (idempotent while its entry is live). In exchange, a user with four agents
8370
+ * working sees four requests instead of one, and no agent's request is destroyed
8371
+ * by another's arrival.
8347
8372
  */
8348
8373
  requestAccess(rawUrl, requester, kind = "async", commandId) {
8349
8374
  const url = safeHttpUrl(rawUrl);
@@ -8360,13 +8385,8 @@ class ApprovalStore {
8360
8385
  }
8361
8386
  this.sweep(now);
8362
8387
  if (liveQueue(this.queue, now).length >= ACCESS_QUEUE_CAP) {
8363
- throw new BridgeCommandError(
8364
- "access_queue_full",
8365
- `site approval queue is full with ${liveQueue(this.queue, now).length} pending requests`,
8366
- { pending_count: liveQueue(this.queue, now).length }
8367
- );
8388
+ this.displaceOldest(now);
8368
8389
  }
8369
- this.displaceLive(now);
8370
8390
  const entry = newEntry(
8371
8391
  url.origin,
8372
8392
  displayAuthority(url),
@@ -8415,18 +8435,19 @@ class ApprovalStore {
8415
8435
  requestedAt: entry.requestedAt,
8416
8436
  expiresAt: entry.expiresAt
8417
8437
  /*
8418
- * NO `decision` TERM, and the removal is the point. The vendored
8419
- * `accessState()` takes an optional decision so that a LIVE record can read
8420
- * `allowed`/`denied` before the grant lands, and this host fed it from the
8421
- * decision receipts — but every arm that writes a receipt removes its entry
8422
- * from the queue FIRST (`respond` filters, `cancelAccess` splices), entry ids
8423
- * are minted per entry and nothing here is restored from disk, so a record
8424
- * with a decision can never be the record this reads. It was unreachable code
8425
- * carrying the residue of the defect this fix closes, and a reader would
8426
- * reasonably infer from it that a receipt can still answer. It cannot:
8427
- * `requestAccess` answers from `liveAuthority` and from a durable verdict, and
8428
- * the receipts are the store's record of what was decided (swept by TTL)
8429
- * rather than a reader's source.
8438
+ * NO `decision` TERM, and the removal is the point (review round 1,
8439
+ * finding 5). The vendored `accessState()` takes an optional decision so
8440
+ * that a LIVE record can read `allowed`/`denied` before the grant lands,
8441
+ * and this host fed it from the decision receipts — but every arm that
8442
+ * writes a receipt removes its entry from the queue FIRST (`respond`
8443
+ * filters, `cancelAccess` splices), entry ids are minted per entry and
8444
+ * nothing here is restored from disk, so a record with a decision can
8445
+ * never be the record this reads. It was unreachable code carrying the
8446
+ * residue of the defect this PR fixes, and a reader would reasonably infer
8447
+ * from it that a receipt can still answer. It cannot: `requestAccess`
8448
+ * answers from `liveAuthority` and from a durable verdict, and the
8449
+ * receipts are the store's record of what was decided (purged by
8450
+ * `revokeOrigin` and swept by TTL) rather than a reader's source.
8430
8451
  */
8431
8452
  } : void 0,
8432
8453
  this.tombstones,
@@ -8484,6 +8505,16 @@ class ApprovalStore {
8484
8505
  );
8485
8506
  }
8486
8507
  const now = this.now();
8508
+ if (now >= entry.expiresAt) {
8509
+ this.queue = this.queue.filter(
8510
+ (candidate) => candidate.entryId !== entryId
8511
+ );
8512
+ this.onChanged();
8513
+ throw new BridgeCommandError(
8514
+ "internal",
8515
+ "that site approval request expired before it was answered; the agent has to ask again"
8516
+ );
8517
+ }
8487
8518
  this.queue = this.queue.filter(
8488
8519
  (candidate) => candidate.entryId !== entryId
8489
8520
  );
@@ -8644,6 +8675,9 @@ class ApprovalStore {
8644
8675
  delete this.store.origins[origin];
8645
8676
  removed += 1;
8646
8677
  }
8678
+ for (const key of Object.keys(this.results)) {
8679
+ if (this.results[key]?.origin === origin) delete this.results[key];
8680
+ }
8647
8681
  if (this.sessionGrants.delete(origin)) removed += 1;
8648
8682
  const before = this.store.records.length;
8649
8683
  this.store.records = this.store.records.filter(
@@ -8701,13 +8735,17 @@ class ApprovalStore {
8701
8735
  this.onChanged();
8702
8736
  }
8703
8737
  // ---- internals -----------------------------------------------------------
8704
- /** Replace-don't-queue: the live entry for another origin (or another
8705
- * requester) is displaced, and its requester gets a tombstone so its next poll
8738
+ /** At the cap: the OLDEST live entry (or entries, if a queue was restored over
8739
+ * the cap) steps aside, and its requester gets a tombstone so its next poll
8706
8740
  * reads "superseded" rather than the neutral "none". */
8707
- displaceLive(now) {
8741
+ displaceOldest(now) {
8708
8742
  const live = liveQueue(this.queue, now);
8709
8743
  if (!live.length) return;
8710
- for (const entry of live) {
8744
+ const displaced = live.slice(
8745
+ 0,
8746
+ Math.max(1, live.length - ACCESS_QUEUE_CAP + 1)
8747
+ );
8748
+ for (const entry of displaced) {
8711
8749
  this.tombstones[receiptKey(entry.origin, entry.requester)] = tombstoneFor(
8712
8750
  {
8713
8751
  origin: entry.origin,
@@ -8718,7 +8756,8 @@ class ApprovalStore {
8718
8756
  }
8719
8757
  );
8720
8758
  }
8721
- this.queue = [];
8759
+ const displacedIds = new Set(displaced.map((entry) => entry.entryId));
8760
+ this.queue = this.queue.filter((entry) => !displacedIds.has(entry.entryId));
8722
8761
  this.trimTombstones();
8723
8762
  }
8724
8763
  trimTombstones() {
@@ -9147,45 +9186,56 @@ class CdpPool {
9147
9186
  }
9148
9187
  }
9149
9188
  const CONSENT_TITLE = "Site approval needed";
9150
- function consentBody(origin) {
9151
- return `An agent wants to open ${origin}. Approve or deny it in the browser tab.`;
9189
+ function consentBody(count, origin) {
9190
+ return count === 1 ? `An agent wants to open ${origin}. Approve or deny it in the browser tab.` : `${count} site approvals are waiting. Approve or deny them in the browser tab.`;
9152
9191
  }
9153
9192
  class ConsentNotifier {
9154
9193
  constructor(options) {
9155
9194
  this.options = options;
9156
9195
  }
9157
- announced = /* @__PURE__ */ new Set();
9196
+ announced = 0;
9158
9197
  /**
9159
- * Announce the pending entries that have not been announced yet.
9198
+ * Announce a change in the size of the pending set — ONE banner per increase.
9199
+ *
9200
+ * WHY A COUNT WATERMARK RATHER THAN A SET OF ANNOUNCED IDS, which is what this
9201
+ * was: with one prompt slot the set could hold at most one entry, and with a
9202
+ * real queue (`approvals.ts` no longer displaces) the old rule raised one
9203
+ * banner PER UNANNOUNCED ENTRY — up to 16 banners for one busy minute, against
9204
+ * a rule that exists to avoid interrupting the operator (design 9.2, 11.4).
9205
+ * The count of the live set is the thing the user can act on, so an increase is
9206
+ * the event and a banner is the whole response to it.
9160
9207
  *
9161
- * Called with the CURRENT pending list on every change rather than on an
9162
- * "added" event: the store's change hook is one callback for a mutable set,
9163
- * and a diff against what was already announced is both simpler and correct
9164
- * when an entry is superseded and replaced by a new one with a new id.
9208
+ * WHAT THIS GIVES UP, deliberately: a request that replaces another without
9209
+ * changing the count (a displacement at the cap, a cancel plus an arrival in
9210
+ * one refresh) raises no second banner. The alternative is a banner per entry,
9211
+ * and the banner's job is to bring the user to the band — where the tray shows
9212
+ * the whole live set, numbered. The click names the OLDEST live entry, which is
9213
+ * the one the tray selects by default.
9165
9214
  */
9166
9215
  announce(pending) {
9167
- const live = new Set(pending.map((entry) => entry.entryId));
9168
- for (const entryId of [...this.announced]) {
9169
- if (!live.has(entryId)) this.announced.delete(entryId);
9170
- }
9216
+ const count = pending.length;
9217
+ const increased = count > this.announced;
9218
+ this.announced = count;
9219
+ if (!increased) return;
9171
9220
  if (this.options.show !== "focus") return;
9172
- if (!electron.Notification.isSupported()) return;
9173
- for (const entry of pending) {
9174
- if (this.announced.has(entry.entryId)) continue;
9175
- this.announced.add(entry.entryId);
9176
- try {
9177
- const notification = new electron.Notification({
9221
+ const create = this.options.createNotification;
9222
+ if (!create && !electron.Notification.isSupported()) return;
9223
+ const oldest = pending[0];
9224
+ if (!oldest) return;
9225
+ try {
9226
+ const notification = (create ?? ((options) => new electron.Notification(options)))(
9227
+ {
9178
9228
  title: CONSENT_TITLE,
9179
- body: consentBody(entry.origin),
9229
+ body: consentBody(count, oldest.origin),
9180
9230
  silent: false
9181
- });
9182
- notification.on("click", () => this.options.onAttention(entry.entryId));
9183
- notification.show();
9184
- } catch (error) {
9185
- this.options.log?.(
9186
- `[browser] could not raise a consent banner: ${String(error)}`
9187
- );
9188
- }
9231
+ }
9232
+ );
9233
+ notification.on("click", () => this.options.onAttention(oldest.entryId));
9234
+ notification.show();
9235
+ } catch (error) {
9236
+ this.options.log?.(
9237
+ `[browser] could not raise a consent banner: ${String(error)}`
9238
+ );
9189
9239
  }
9190
9240
  }
9191
9241
  }
@@ -10718,6 +10768,16 @@ class BrowserHost {
10718
10768
  titleForChrome(title) {
10719
10769
  return title === "about:blank" ? "" : title;
10720
10770
  }
10771
+ /** Whether a tab is loading right now, false for a tab that is gone or whose
10772
+ * webContents has already been destroyed. Guarded the same way `snapshot()`
10773
+ * guards its reads: a read that lands between destruction and the
10774
+ * `destroyed` handler would otherwise throw "Object has been destroyed" out of
10775
+ * an IPC handler and blank the whole strip instead of dropping one tab. */
10776
+ tabLoading(tabId) {
10777
+ const record = this.registry.get(tabId);
10778
+ if (!record || record.view.webContents.isDestroyed()) return false;
10779
+ return record.view.webContents.isLoading();
10780
+ }
10721
10781
  chromeState() {
10722
10782
  const activeRecord = this.registry.activeTab;
10723
10783
  const active = activeRecord && !activeRecord.view.webContents.isDestroyed() ? activeRecord : null;
@@ -10734,7 +10794,16 @@ class BrowserHost {
10734
10794
  // Per TAB, not only for the active one: a background tab whose load was
10735
10795
  // refused has no other way to say so - its page area is blank and the
10736
10796
  // band belongs to the active tab - so the strip carries the mark.
10737
- failed: this.loadFailures.has(entry.tabId)
10797
+ failed: this.loadFailures.has(entry.tabId),
10798
+ // PER TAB, and it is the one projection field this feature adds. The strip
10799
+ // could only ever see the ACTIVE tab's loading state before (`loading`
10800
+ // below), so a background agent tab that is loading a page showed nothing
10801
+ // at all - and since an agent tab is created non-active and only the active
10802
+ // tab occupies the content rect (`registry.ts:492-503`), "nothing at all"
10803
+ // was the whole of what the user saw of an agent's work. Read from the
10804
+ // record rather than the snapshot: `snapshot()` is the diagnostic
10805
+ // projection shared with `status`/`tabs`, and this field is chrome.
10806
+ loading: this.tabLoading(entry.tabId)
10738
10807
  })),
10739
10808
  activeTabId: activeRecord?.tabId ?? null,
10740
10809
  url: active ? active.view.webContents.getURL() : "",
@@ -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-CoCrDJx-.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-DDCvJ8Vn.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
+ 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-BcI4o9r1.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-CjJqe_d-.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-DDCvJ8Vn.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&Re;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-CjJqe_d-.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&Re;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,4 +1,4 @@
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-CxZRbnZ0.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-B1sPyxD9.js";import{u as we,a as ve,b as Ce,c as Ne}from"./use-agent-like-mutation-C9n9Cndz.js";import{A as Ae}from"./arrow-left-DyxwZyAJ.js";/**
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-giwXJbjk.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-DOR1dMWN.js";import{u as we,a as ve,b as Ce,c as Ne}from"./use-agent-like-mutation-AG1SEqKe.js";import{A as Ae}from"./arrow-left-CiJceI8e.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{a as p,j as e,c as j,r as m,S as y}from"./icon-CxZRbnZ0.js";import{C as k}from"./compact-pagination-CNBAdNPU.js";import{P as v}from"./page-header-Bng1g_7d.js";import{a9 as b,al as A,am as h,an as L,ao as N}from"./index-B1sPyxD9.js";import{u as C,a as P,b as w,c as M}from"./use-agent-like-mutation-C9n9Cndz.js";/**
1
+ import{a as p,j as e,c as j,r as m,S as y}from"./icon-giwXJbjk.js";import{C as k}from"./compact-pagination-DcQd1Yw-.js";import{P as v}from"./page-header-B_TbLiZC.js";import{a9 as b,al as A,am as h,an as L,ao as N}from"./index-DOR1dMWN.js";import{u as C,a as P,b as w,c as M}from"./use-agent-like-mutation-AG1SEqKe.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-CLxBXrre.js","./icon-CxZRbnZ0.js","./icon-Bmor1CgO.css","./page-header-Bng1g_7d.js","./index-B1sPyxD9.js","./index-aW0Bo_1a.css","./radient-auth-buttons-DRxDX6j9.js","./compact-pagination-CNBAdNPU.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-B1sPyxD9.js";import{j as e,r as n,B as u,c as P}from"./icon-CxZRbnZ0.js";const ae=n.lazy(()=>te(()=>import("./legacy-agents-page-CLxBXrre.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-Dl_OPtYj.js","./icon-giwXJbjk.js","./icon-BDu7a_-6.css","./page-header-B_TbLiZC.js","./index-DOR1dMWN.js","./index-aW0Bo_1a.css","./radient-auth-buttons-BvMD0K4b.js","./compact-pagination-DcQd1Yw-.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-DOR1dMWN.js";import{j as e,r as n,B as u,c as P}from"./icon-giwXJbjk.js";const ae=n.lazy(()=>te(()=>import("./legacy-agents-page-Dl_OPtYj.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-B1sPyxD9.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};
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-DOR1dMWN.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};