local-operator-ui 0.31.30 → 0.31.32

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 (88) hide show
  1. package/out/main/index.js +121 -15
  2. package/out/preload/index.js +9 -0
  3. package/out/renderer/assets/{_basePickBy-Y9GC34gi.js → _basePickBy-BzFdg-GF.js} +1 -1
  4. package/out/renderer/assets/{_baseUniq-B0peOdjF.js → _baseUniq-Bm2KnnbI.js} +1 -1
  5. package/out/renderer/assets/{agent-details-page-DVzsvKvr.js → agent-details-page-BMiohCvb.js} +1 -1
  6. package/out/renderer/assets/{agent-hub-page-Dp8llcze.js → agent-hub-page-CAJMRlDU.js} +1 -1
  7. package/out/renderer/assets/agents-page-GLKOnCr6.js +7 -0
  8. package/out/renderer/assets/{arc-DQzRvMGZ.js → arc-CcekKWMM.js} +1 -1
  9. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-BHLUr3Vi.js → architectureDiagram-IEHRJDOE-8foMClj9.js} +1 -1
  10. package/out/renderer/assets/{blockDiagram-JOT3LUYC-CVK0U-3j.js → blockDiagram-JOT3LUYC-DhfZvGTr.js} +1 -1
  11. package/out/renderer/assets/{book-open-j4JS3yvI.js → book-open-CueO0nwZ.js} +1 -1
  12. package/out/renderer/assets/browser-page-MbQ-dd2e.js +1 -0
  13. package/out/renderer/assets/{browser-webauthn-prompt-nwdqBWnv.js → browser-webauthn-prompt-DrMpnMBW.js} +1 -1
  14. package/out/renderer/assets/{c4Diagram-VJAJSXHY-BqLTGVHe.js → c4Diagram-VJAJSXHY-BtAFjDFO.js} +1 -1
  15. package/out/renderer/assets/channel-er9Isqc8.js +1 -0
  16. package/out/renderer/assets/{chunk-4BMEZGHF-BSPZPecM.js → chunk-4BMEZGHF-hEpjTUlR.js} +1 -1
  17. package/out/renderer/assets/{chunk-A2AXSNBT-CEEG3uIi.js → chunk-A2AXSNBT-BQE33qQV.js} +1 -1
  18. package/out/renderer/assets/{chunk-AEK57VVT-CvyIUWUR.js → chunk-AEK57VVT-Bfv-VOfu.js} +1 -1
  19. package/out/renderer/assets/{chunk-D6G4REZN-D4lVOdW7.js → chunk-D6G4REZN-CDEQDet7.js} +1 -1
  20. package/out/renderer/assets/{chunk-RZ5BOZE2-znegx9P6.js → chunk-RZ5BOZE2-BHPvStD5.js} +1 -1
  21. package/out/renderer/assets/{chunk-XZIHB7SX-DPz_D8Nf.js → chunk-XZIHB7SX-DOAEvfwX.js} +1 -1
  22. package/out/renderer/assets/classDiagram-GIVACNV2-CiL29Sc-.js +1 -0
  23. package/out/renderer/assets/classDiagram-v2-COTLJTTW-CiL29Sc-.js +1 -0
  24. package/out/renderer/assets/clone-Bsk4HvnO.js +1 -0
  25. package/out/renderer/assets/{console-mirror-GUGtzmyW.js → console-mirror-CiDuCMfE.js} +1 -1
  26. package/out/renderer/assets/{consoleCapture-D8nStIVt.js → consoleCapture-PlJxiaGX.js} +1 -1
  27. package/out/renderer/assets/{conversation-input-sync-CGaXAqah.js → conversation-input-sync-zDEtF-9C.js} +237 -237
  28. package/out/renderer/assets/{dagre-OKDRZEBW-ByuMXl-x.js → dagre-OKDRZEBW-DY30NVKc.js} +1 -1
  29. package/out/renderer/assets/{diagram-SSKATNLV-DrN1Clbm.js → diagram-SSKATNLV-Cj6GWkPW.js} +1 -1
  30. package/out/renderer/assets/{diagram-VNBRO52H-BU95qC98.js → diagram-VNBRO52H-B1BnbNGr.js} +1 -1
  31. package/out/renderer/assets/{erDiagram-Q7BY3M3F-CLttNK5z.js → erDiagram-Q7BY3M3F-Dt2TZzKY.js} +1 -1
  32. package/out/renderer/assets/error-boundary-BCN3_4Dn.js +126 -0
  33. package/out/renderer/assets/{flowDiagram-4HSFHLVR-BCsFW1Gf.js → flowDiagram-4HSFHLVR-B0y5c9qz.js} +1 -1
  34. package/out/renderer/assets/{ganttDiagram-APWFNJXF-Cdg1Q_-7.js → ganttDiagram-APWFNJXF-twBGRDsR.js} +1 -1
  35. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-0tWQBOZl.js → gitGraphDiagram-7IBYFJ6S-vi21DxCt.js} +1 -1
  36. package/out/renderer/assets/{graph-BOvjqm1y.js → graph-BVnn4QNL.js} +1 -1
  37. package/out/renderer/assets/index-B4ItTI5Q.css +1 -0
  38. package/out/renderer/assets/{index-Bbr0EFhm.js → index-D94pB35A.js} +1 -1
  39. package/out/renderer/assets/{index-DbuNRNvX.js → index-Dwxu7UOq.js} +1 -1
  40. package/out/renderer/assets/index-QVureTEn.js +784 -0
  41. package/out/renderer/assets/{infoDiagram-PH2N3AL5-cyj8Lve1.js → infoDiagram-PH2N3AL5-B-Ch65yi.js} +1 -1
  42. package/out/renderer/assets/{installer-DDGjYv9v.js → installer-DovMkJto.js} +1 -1
  43. package/out/renderer/assets/{journeyDiagram-U35MCT3I-DWBKDniU.js → journeyDiagram-U35MCT3I-Bp6eVPe6.js} +1 -1
  44. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-Cl5Gtazo.js → kanban-definition-NDS4AKOZ-D6I-GN7U.js} +1 -1
  45. package/out/renderer/assets/{layout-CxuQX-mj.js → layout-DFC3HVFP.js} +1 -1
  46. package/out/renderer/assets/{legacy-agents-page-EmhBvGX8.js → legacy-agents-page-Dfrz_ZCe.js} +2 -2
  47. package/out/renderer/assets/{mermaid.core-eIMT1oSc.js → mermaid.core-DKfPxzKU.js} +5 -5
  48. package/out/renderer/assets/mesh-page-DoKTWh-X.js +1 -0
  49. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-zPRivaIU.js → mindmap-definition-ALO5MXBD-kM4s__rt.js} +1 -1
  50. package/out/renderer/assets/{mini-D6nPFjTs.js → mini-D0On64Oc.js} +1 -1
  51. package/out/renderer/assets/{org-surface-gate-BeX5voGq.js → org-surface-gate-DArMk6ID.js} +1 -1
  52. package/out/renderer/assets/{page-header-BLBgjVqc.js → page-header-ouA0fPx9.js} +1 -1
  53. package/out/renderer/assets/{pieDiagram-IB7DONF6-CUTT0oqK.js → pieDiagram-IB7DONF6-DM1JhBgg.js} +1 -1
  54. package/out/renderer/assets/projects-page-Bb200mtz.js +55 -0
  55. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-B6ksoL9Y.js → quadrantDiagram-7GDLP6J5-B8T16HnV.js} +1 -1
  56. package/out/renderer/assets/{radar-MK3ICKWK-BpDoqWc2.js → radar-MK3ICKWK-DnM_Vl89.js} +1 -1
  57. package/out/renderer/assets/{radient-auth-buttons-Ep1e0Z5I.js → radient-auth-buttons-Doso02jc.js} +1 -1
  58. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-DQwmYS7R.js → requirementDiagram-KVF5MWMF-M7JjuiAa.js} +1 -1
  59. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-Dc8VJLoV.js → sankeyDiagram-QLVOVGJD-pZ0w_k-t.js} +1 -1
  60. package/out/renderer/assets/{schedules-page-DyMkIr1h.js → schedules-page-OVNdDci6.js} +10 -10
  61. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-SsVDN37O.js → sequenceDiagram-X6HHIX6F-B7YWpV3i.js} +1 -1
  62. package/out/renderer/assets/{settings-page-C_1ja3uN.js → settings-page-CrOBuOHy.js} +6 -6
  63. package/out/renderer/assets/{settings-section-BLUoPALO.js → settings-section-8d2ITQC3.js} +1 -1
  64. package/out/renderer/assets/{stateDiagram-DGXRK772-vwQ-TB_f.js → stateDiagram-DGXRK772-DwDArxIb.js} +1 -1
  65. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-CEqnEMuN.js +1 -0
  66. package/out/renderer/assets/{timeline-definition-BDJGKUSR-CQ_pAZms.js → timeline-definition-BDJGKUSR-COfMTtoJ.js} +1 -1
  67. package/out/renderer/assets/{ui-preferences-store-CxJfZcpf.js → ui-preferences-store-BaXpFsZf.js} +1 -1
  68. package/out/renderer/assets/{use-download-agent-mutation-DIujvdLj.js → use-download-agent-mutation-fP7MSQui.js} +2 -2
  69. package/out/renderer/assets/{use-memberships-query-BhO5nUlo.js → use-memberships-query-B_qwJ7_k.js} +1 -1
  70. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-Cs3B-KEl.js → xychartDiagram-VJFVF3MP-COiK9nJs.js} +1 -1
  71. package/out/renderer/console-capture.html +5 -5
  72. package/out/renderer/index.html +7 -7
  73. package/out/renderer/installer.html +4 -4
  74. package/out/renderer/mini.html +6 -6
  75. package/package.json +8 -3
  76. package/out/renderer/assets/agents-page-DlN3w0Rq.js +0 -7
  77. package/out/renderer/assets/browser-page-BI7a4ZtV.js +0 -1
  78. package/out/renderer/assets/channel-BP8e6HYH.js +0 -1
  79. package/out/renderer/assets/classDiagram-GIVACNV2-DVXt0ycE.js +0 -1
  80. package/out/renderer/assets/classDiagram-v2-COTLJTTW-DVXt0ycE.js +0 -1
  81. package/out/renderer/assets/clone-D0eJwRGh.js +0 -1
  82. package/out/renderer/assets/error-boundary-BR1z8pWF.js +0 -126
  83. package/out/renderer/assets/index-Cy3MjKxd.css +0 -1
  84. package/out/renderer/assets/index-D09I1LXM.js +0 -784
  85. package/out/renderer/assets/mesh-page-B8pGIWvO.js +0 -1
  86. package/out/renderer/assets/projects-page-D60z6cvI.js +0 -55
  87. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-D30uaRbQ.js +0 -1
  88. /package/out/renderer/assets/{index-CSNQxVPq.js → index-DvjcW_EJ.js} +0 -0
package/out/main/index.js CHANGED
@@ -73,6 +73,7 @@ const mcpCatalogCwd = zod.z.string().min(1).max(4096).regex(mcpCatalogCwdPattern
73
73
  const SUBSCRIPTION_ID_PATTERN = /^[a-f0-9]{32}$/;
74
74
  const requestId = zod.z.string().regex(/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/);
75
75
  const meshId = zod.z.string().regex(/^[A-Za-z0-9_-]{1,128}$/);
76
+ const approvalId = zod.z.string().regex(/^ap_[0-9a-hjkmnp-tv-z]{1,64}$/);
76
77
  const sessionImage = zod.z.object({
77
78
  data_b64: zod.z.string().min(1).max(1e6),
78
79
  mime_type: zod.z.enum(["image/png", "image/jpeg", "image/gif", "image/webp"])
@@ -275,6 +276,9 @@ const projectKey = zod.z.string().min(1).max(64);
275
276
  const PROJECT_PROGRESS_MAX_CHARS = 1e3;
276
277
  const PROJECT_DESCRIPTION_MAX_CHARS = 240;
277
278
  const PROJECT_MILESTONE_NAME_MAX_CHARS = 80;
279
+ const PROJECTS_SEARCH_MAX_CHARS = 256;
280
+ const PROJECTS_SEARCH_DEFAULT_LIMIT = 100;
281
+ const PROJECTS_SEARCH_MAX_LIMIT = 200;
278
282
  const hubItemKind = zod.z.enum(["agent", "team"]);
279
283
  const desktopRequestUnion = zod.z.discriminatedUnion("op", [
280
284
  zod.z.object({ op: zod.z.literal("capabilities") }).strict(),
@@ -1753,6 +1757,34 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
1753
1757
  waitS: zod.z.number().min(0).max(300).optional(),
1754
1758
  requestId: requestId.optional()
1755
1759
  }).strict(),
1760
+ /*
1761
+ * THE ONBOARDING APPROVALS (`features.approvals`), the third mesh-adjacent
1762
+ * family: one durable, signed record per remote-onboarding request, kept
1763
+ * DEVICE-LOCALLY under `<config>/network/approvals/` (remote-onboarding
1764
+ * design §2.3 — the badge must answer on a machine whose relay is down, which
1765
+ * is why the record is a flat file rather than something behind the relay).
1766
+ *
1767
+ * THE LIST IS THE BADGE READ and it dials nothing: every row comes off this
1768
+ * machine's own directory, so a rail-mounted interval costs one local scan
1769
+ * rather than a peer fan-out — the reason it is the ONE mesh-family read a
1770
+ * sidebar badge may poll (see `mesh-approvals.ts` for the cadence argument).
1771
+ * Each row is the frozen §3.5 shape — `what` (the scope block), the
1772
+ * where-block (`device` for `device_onboard`, `machine` for `local_authority`;
1773
+ * the KIND is which key is present), `requested_by` and the expiry — and the
1774
+ * surfaces do their own wording, so the wire stays the record's own
1775
+ * vocabulary and a new scope does not need a wire change.
1776
+ *
1777
+ * THE DECISIONS TAKE NO BODY, deliberately (`routes/desktop_approvals.py`:
1778
+ * "the two decision routes take NO body at all — approving is the gesture").
1779
+ * `approve` runs the SAME presence-gated signing call the CLI's `approve`
1780
+ * verb runs, so its latency includes a human's — see
1781
+ * `APPROVAL_APPROVE_DEADLINE_MS` for why this op alone carries its own
1782
+ * budget. `deny` never signs: it is write-once and settles in the safe
1783
+ * direction.
1784
+ */
1785
+ zod.z.object({ op: zod.z.literal("approvals.list") }).strict(),
1786
+ zod.z.object({ op: zod.z.literal("approvals.approve"), approvalId }).strict(),
1787
+ zod.z.object({ op: zod.z.literal("approvals.deny"), approvalId }).strict(),
1756
1788
  /*
1757
1789
  * The Projects surface (`/v1/desktop/projects*`), APPENDED to the union
1758
1790
  * rather than inserted beside the other catalogue ops: the backend serves
@@ -1848,6 +1880,27 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
1848
1880
  op: zod.z.literal("projects.request_update"),
1849
1881
  key: projectKey
1850
1882
  }).strict(),
1883
+ /*
1884
+ * THE DERIVED SEARCH INDEX (`GET /v1/desktop/projects/search`). APPENDED like
1885
+ * its siblings, and gated by a `projects` VERSION BUMP (1 -> 2) rather than a
1886
+ * key of its own: the route ranks over the same store the listing reads and is
1887
+ * additive by construction — every version-1 call keeps its exact behaviour —
1888
+ * so the version is what lets a client ask for the new read without a second
1889
+ * negotiation. The backend's own register states the same split
1890
+ * (`routes/capabilities.py`: "a client gates ONLY the two new calls on
1891
+ * ``>= 2``").
1892
+ *
1893
+ * `.min(1)`: an EMPTY query is not a search. The route answers one with the
1894
+ * listing's own order truncated to `limit`, but this surface already holds
1895
+ * that list — its box is a filter over the catalogue — so an empty `q` would
1896
+ * ask the server to send back everything the client is holding, which is the
1897
+ * refusal `sessions.search` above states in the same words.
1898
+ */
1899
+ zod.z.object({
1900
+ op: zod.z.literal("projects.search"),
1901
+ q: zod.z.string().min(1).max(PROJECTS_SEARCH_MAX_CHARS),
1902
+ limit: zod.z.number().int().min(1).max(PROJECTS_SEARCH_MAX_LIMIT).optional()
1903
+ }).strict(),
1851
1904
  /*
1852
1905
  * AIDA'S CONTROL PLANE: one read and one control op on the same route
1853
1906
  * (`/v1/desktop/aida`), because the rail's row and the composer's `/aida`
@@ -2048,6 +2101,8 @@ function moveClientBoundMs(shape) {
2048
2101
  const waitS = Math.max(0, shape.waitS ?? 0);
2049
2102
  return (MOVE_OP_DEADLINE_S + hold + MOVE_CONTROL_SLACK_S + MOVE_CLIENT_MARGIN_S) * 1e3 + waitS * 1e3;
2050
2103
  }
2104
+ const PRESENCE_GESTURE_DEADLINE_MS = 18e4;
2105
+ const APPROVAL_APPROVE_DEADLINE_MS = PRESENCE_GESTURE_DEADLINE_MS + 15e3;
2051
2106
  const HUB_ITEM_MERGE_S = 120;
2052
2107
  const HUB_ITEM_WRITE_DEADLINE_MS = (HUB_ITEM_MERGE_S + 30 + MOVE_CLIENT_MARGIN_S) * 1e3;
2053
2108
  const HUB_CHECK_DEADLINE_MS = 6e4;
@@ -2076,6 +2131,7 @@ function desktopRequestDeadlineMs(request) {
2076
2131
  return moveClientBoundMs(request) + MOVE_APP_MARGIN_MS;
2077
2132
  }
2078
2133
  const op = typeof request === "string" ? request : request.op;
2134
+ if (op === "approvals.approve") return APPROVAL_APPROVE_DEADLINE_MS;
2079
2135
  const hub = hubWriteDeadlineMs(op);
2080
2136
  if (hub !== null) return hub;
2081
2137
  return LONG_READ_OPS.has(op) ? DESKTOP_LONG_READ_DEADLINE_MS : DESKTOP_CONTROL_DEADLINE_MS;
@@ -2087,6 +2143,7 @@ const READ_ONLY_OPS = /* @__PURE__ */ new Set([
2087
2143
  "accounts.list",
2088
2144
  "analytics.get",
2089
2145
  "analytics.models",
2146
+ "approvals.list",
2090
2147
  "commands.entities",
2091
2148
  "commands.list",
2092
2149
  "config.get",
@@ -2111,6 +2168,9 @@ const READ_ONLY_OPS = /* @__PURE__ */ new Set([
2111
2168
  "peers.list",
2112
2169
  "profiles.get",
2113
2170
  "profiles.list",
2171
+ // A ranked read over the same store the listing reads: it changes nothing, so
2172
+ // a failure is reported with a read's patience rather than a write's caution.
2173
+ "projects.search",
2114
2174
  "providers.list",
2115
2175
  // A reader that changes nothing (the route's own docstring): the straggler
2116
2176
  // census, and the app re-reads it rather than caching a stale count.
@@ -2151,6 +2211,12 @@ function desktopRequestDeadlineDetail(op, deadlineMs) {
2151
2211
  message: `The app waits up to ${seconds} seconds for a move, and it was still running when the app stopped waiting. The move was asked for, so its outcome is unknown from here: read the session again before moving it anywhere else.`
2152
2212
  };
2153
2213
  }
2214
+ if (op === "approvals.approve") {
2215
+ return {
2216
+ code,
2217
+ message: `The app waits up to ${seconds} seconds for an approval, and the signing prompt was still open when it stopped waiting. The request was sent, so the decision may or may not have landed: read the approvals again — if the record still waits, answering it again is safe, because the store keeps the first decision and refuses a second.`
2218
+ };
2219
+ }
2154
2220
  if (HUB_WRITE_OPS.has(op)) {
2155
2221
  return {
2156
2222
  code,
@@ -2258,6 +2324,24 @@ function desktopEndpoint(request) {
2258
2324
  ...request.requestId ? { request_id: request.requestId } : {}
2259
2325
  }
2260
2326
  };
2327
+ case "approvals.list":
2328
+ return { path: "/v1/desktop/approvals", method: "GET" };
2329
+ /*
2330
+ * The decision paths carry the record's OWN id, `encodeURIComponent`ed even
2331
+ * though the schema already refuses `/`, `.` and `%`: the pattern is this
2332
+ * client's check, and a hand-built request must not be able to turn an id
2333
+ * into a path fragment (the same rule the mesh writes state).
2334
+ */
2335
+ case "approvals.approve":
2336
+ return {
2337
+ path: `/v1/desktop/approvals/${encodeURIComponent(request.approvalId)}/approve`,
2338
+ method: "POST"
2339
+ };
2340
+ case "approvals.deny":
2341
+ return {
2342
+ path: `/v1/desktop/approvals/${encodeURIComponent(request.approvalId)}/deny`,
2343
+ method: "POST"
2344
+ };
2261
2345
  case "profiles.list":
2262
2346
  return { path: "/v1/desktop/profiles", method: "GET" };
2263
2347
  case "profiles.get":
@@ -3248,6 +3332,16 @@ function desktopEndpoint(request) {
3248
3332
  path: `/v1/desktop/projects/${encodeURIComponent(request.key)}/request-update`,
3249
3333
  method: "POST"
3250
3334
  };
3335
+ case "projects.search": {
3336
+ const query = new URLSearchParams({
3337
+ q: request.q,
3338
+ limit: String(request.limit ?? PROJECTS_SEARCH_DEFAULT_LIMIT)
3339
+ });
3340
+ return {
3341
+ path: `/v1/desktop/projects/search?${query}`,
3342
+ method: "GET"
3343
+ };
3344
+ }
3251
3345
  case "aida.status":
3252
3346
  return { path: "/v1/desktop/aida", method: "GET" };
3253
3347
  case "aida.control":
@@ -16109,7 +16203,7 @@ async function dispatchConsole(host, method, params) {
16109
16203
  cols,
16110
16204
  rows,
16111
16205
  reveal: optionalReveal(params.reveal),
16112
- retain: optionalBoolean(params.retain, "retain"),
16206
+ retain: optionalBoolean$1(params.retain, "retain"),
16113
16207
  sizing: optionalSizing(params.sizing)
16114
16208
  })
16115
16209
  };
@@ -16154,7 +16248,7 @@ async function dispatchConsole(host, method, params) {
16154
16248
  {
16155
16249
  text,
16156
16250
  bytes,
16157
- paste: optionalBoolean(params.paste, "paste")
16251
+ paste: optionalBoolean$1(params.paste, "paste")
16158
16252
  },
16159
16253
  "agent"
16160
16254
  );
@@ -16200,8 +16294,8 @@ async function dispatchConsole(host, method, params) {
16200
16294
  case "console_close": {
16201
16295
  const surface = requiredSurface(params.surface);
16202
16296
  return host.close(surface, {
16203
- kill: optionalBoolean(params.kill, "kill"),
16204
- retain: optionalBoolean(params.retain, "retain")
16297
+ kill: optionalBoolean$1(params.kill, "kill"),
16298
+ retain: optionalBoolean$1(params.retain, "retain")
16205
16299
  });
16206
16300
  }
16207
16301
  }
@@ -16237,7 +16331,7 @@ function optionalStringList(value, name) {
16237
16331
  }
16238
16332
  return value;
16239
16333
  }
16240
- function optionalBoolean(value, name) {
16334
+ function optionalBoolean$1(value, name) {
16241
16335
  if (value === void 0 || value === null) return void 0;
16242
16336
  if (typeof value !== "boolean") {
16243
16337
  throw new ConsoleError("internal", `${name} must be true or false`, {
@@ -16568,6 +16662,7 @@ function enforceModes(path2) {
16568
16662
  const CONSOLE_IPC_CHANNELS = [
16569
16663
  "console-state",
16570
16664
  "console-create-surface",
16665
+ "console-close-surface",
16571
16666
  "console-open-pane",
16572
16667
  "console-close-pane",
16573
16668
  "console-select-surface",
@@ -16623,6 +16718,17 @@ function registerConsoleIpc(options) {
16623
16718
  });
16624
16719
  return { ...surface };
16625
16720
  });
16721
+ electron.ipcMain.handle(
16722
+ "console-close-surface",
16723
+ (event, surface, options2) => {
16724
+ const host = authorize(event);
16725
+ const input = options2 && typeof options2 === "object" ? options2 : {};
16726
+ return host.close(stringOrThrow(surface, "surface"), {
16727
+ kill: optionalBoolean(input.kill, "kill"),
16728
+ retain: optionalBoolean(input.retain, "retain")
16729
+ });
16730
+ }
16731
+ );
16626
16732
  electron.ipcMain.handle("console-open-pane", (event, surface) => {
16627
16733
  const host = authorize(event);
16628
16734
  host.setDisplayed(stringOrThrow(surface, "surface"));
@@ -16738,6 +16844,13 @@ function optionalString(value, name) {
16738
16844
  if (value === void 0 || value === null) return void 0;
16739
16845
  return stringOrThrow(value, name);
16740
16846
  }
16847
+ function optionalBoolean(value, name) {
16848
+ if (value === void 0 || value === null) return void 0;
16849
+ if (typeof value !== "boolean") {
16850
+ throw new Error(`${name} must be a boolean.`);
16851
+ }
16852
+ return value;
16853
+ }
16741
16854
  function contentReportOrThrow(value) {
16742
16855
  if (!value || typeof value !== "object") {
16743
16856
  throw new Error("A console content report is required.");
@@ -19238,23 +19351,16 @@ async function screenshot(ctx, params) {
19238
19351
  );
19239
19352
  }
19240
19353
  await ctx.cdp.attach(contents);
19241
- const beyondViewport = !record.presented;
19242
- const viewportBounds = record.view.getBounds?.();
19243
- const clip2 = beyondViewport && viewportBounds ? { ...viewportBounds, scale: 1 } : void 0;
19244
- const attempts = beyondViewport ? 3 : 1;
19354
+ const attempts = record.presented ? 1 : 3;
19245
19355
  let lastError;
19246
19356
  for (let attempt = 0; attempt < attempts; attempt += 1) {
19247
19357
  try {
19248
19358
  const attemptShot = await ctx.cdp.send(
19249
19359
  contents,
19250
19360
  "Page.captureScreenshot",
19361
+ { format: "png", captureBeyondViewport: false },
19251
19362
  {
19252
- format: "png",
19253
- captureBeyondViewport: beyondViewport,
19254
- ...clip2 ? { clip: clip2 } : {}
19255
- },
19256
- {
19257
- deadlineMs: beyondViewport ? BACKGROUND_CAPTURE_ATTEMPT_MS : void 0
19363
+ deadlineMs: record.presented ? void 0 : BACKGROUND_CAPTURE_ATTEMPT_MS
19258
19364
  }
19259
19365
  );
19260
19366
  return finishCapture(ctx, record, attemptShot);
@@ -877,6 +877,15 @@ const api = {
877
877
  /** Create a surface the USER asked for. Main sets the origin to `user`; the
878
878
  * renderer cannot name it, because provenance is not a renderer's to claim. */
879
879
  createSurface: (request) => electron.ipcRenderer.invoke("console-create-surface", request),
880
+ /** Close or dismiss one surface (design 6.7, 7.3): `kill: true` signals a
881
+ * running surface's process — the pane asks first — and `retain: false`
882
+ * removes its history so a relaunch cannot restore it. An ended surface is
883
+ * closed with `retain: false` only: there is no process left to signal, and
884
+ * "dismissed" means gone from the retained registry rather than hidden.
885
+ *
886
+ * Both flags are the CALLER's, because the meaning depends on the state the
887
+ * pane is looking at (see the handler in `src/main/console/ipc.ts`). */
888
+ closeSurface: (surface, options) => electron.ipcRenderer.invoke("console-close-surface", surface, options ?? {}),
880
889
  /** A pane is now showing this surface. Never resizes it. */
881
890
  openPane: (surface) => electron.ipcRenderer.invoke("console-open-pane", surface),
882
891
  /** No pane is showing any surface. Never resizes anything. */
@@ -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-B0peOdjF.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-eIMT1oSc.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-Bm2KnnbI.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-DKfPxzKU.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-eIMT1oSc.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-DKfPxzKU.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{r as E,j as e,c as G}from"./index-CSNQxVPq.js";import{l as ue,c as he,u as xe,d as ge,g as je,i as fe,a as pe,b as ye,e as ve}from"./use-memberships-query-BhO5nUlo.js";import{aF as ne,u as I,aL as b,aM as K,aw as Y,aN as O,aO as ie,aP as re,aQ as we,ax as be,aR as Ce,aS as J,av as Ne,aT as Ae,aU as ke}from"./conversation-input-sync-CGaXAqah.js";import{c as Se,L as De,T as ee,B as l,S as z,a as oe,b as L,d as M,e as v,X as Te,f as w,A as te,g as se,h as ae}from"./error-boundary-BR1z8pWF.js";import{f as W,u as Ee,i as Fe,a as _e,b as Pe,c as qe,O as Le,H as Me,A as ze}from"./use-download-agent-mutation-DIujvdLj.js";import{S as Ie,a as Ke,A as Oe,b as Qe,c as Ue}from"./index-D09I1LXM.js";import"./ui-preferences-store-CxJfZcpf.js";import"./en-US-BcB1DWxG.js";import"./book-open-j4JS3yvI.js";import"./console-mirror-GUGtzmyW.js";/**
1
+ import{r as E,j as e,c as G}from"./index-DvjcW_EJ.js";import{l as ue,c as he,u as xe,d as ge,g as je,i as fe,a as pe,b as ye,e as ve}from"./use-memberships-query-B_qwJ7_k.js";import{aF as ne,u as I,aL as b,aM as K,aw as Y,aN as O,aO as ie,aP as re,aQ as we,ax as be,aR as Ce,aS as J,av as Ne,aT as Ae,aU as ke}from"./conversation-input-sync-zDEtF-9C.js";import{c as Se,L as De,T as ee,B as l,S as z,a as oe,b as L,d as M,e as v,X as Te,f as w,A as te,g as se,h as ae}from"./error-boundary-BCN3_4Dn.js";import{f as W,u as Ee,i as Fe,a as _e,b as Pe,c as qe,O as Le,H as Me,A as ze}from"./use-download-agent-mutation-fP7MSQui.js";import{S as Ie,a as Ke,A as Oe,b as Qe,c as Ue}from"./index-QVureTEn.js";import"./ui-preferences-store-BaXpFsZf.js";import"./en-US-BcB1DWxG.js";import"./book-open-CueO0nwZ.js";import"./console-mirror-CiDuCMfE.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{r,j as e,c as C}from"./index-CSNQxVPq.js";import{aP as De,aL as xe,aR as Re,aF as ms,aG as hs,u as xs,aM as gs,bc as fs,aN as ps,a8 as _e,bd as bs,ay as js,ax as Be,b1 as vs,be as Ns,a as ys,bf as ws,aY as ks,bg as Ts}from"./conversation-input-sync-CGaXAqah.js";import{P as Cs}from"./page-header-BLBgjVqc.js";import{c as Ue,f as Q,B as f,e as x,r as Ss,A as J,g as ee,h as se,z as Rs,F as _s,G as As,H as Ps,I as Os,s as Ae,t as Pe,u as Oe,v as Ee,w as ze}from"./error-boundary-BR1z8pWF.js";import{e as Es,f as zs,p as Is,P as Ms,b as Fs,h as Ls}from"./use-memberships-query-BhO5nUlo.js";import{O as $s,A as Ds,f as Bs,H as Us,a as Vs,b as qs,c as Hs,d as Ve,C as Ys,e as Qs,u as Ws,i as Gs}from"./use-download-agent-mutation-DIujvdLj.js";import{c as Xs,ab as Zs,aa as Ks,ac as Js,ad as et}from"./index-D09I1LXM.js";import{R as st}from"./radient-auth-buttons-Ep1e0Z5I.js";import{o as qe,u as tt,a as at,b as nt}from"./org-surface-gate-BeX5voGq.js";import{f as it}from"./format-CZUObkkr.js";import"./ui-preferences-store-CxJfZcpf.js";import"./en-US-BcB1DWxG.js";import"./book-open-j4JS3yvI.js";import"./console-mirror-GUGtzmyW.js";/**
1
+ import{r,j as e,c as C}from"./index-DvjcW_EJ.js";import{aP as De,aL as xe,aR as Re,aF as ms,aG as hs,u as xs,aM as gs,bd as fs,aN as ps,a8 as _e,be as bs,ay as js,ax as Be,b2 as vs,bf as Ns,a as ys,bg as ws,aY as ks,bh as Ts}from"./conversation-input-sync-zDEtF-9C.js";import{P as Cs}from"./page-header-ouA0fPx9.js";import{c as Ue,f as Q,B as f,e as x,r as Ss,A as J,g as ee,h as se,z as Rs,F as _s,G as As,H as Ps,I as Os,s as Ae,t as Pe,u as Oe,v as Ee,w as ze}from"./error-boundary-BCN3_4Dn.js";import{e as Es,f as zs,p as Is,P as Ms,b as Fs,h as Ls}from"./use-memberships-query-B_qwJ7_k.js";import{O as $s,A as Ds,f as Bs,H as Us,a as Vs,b as qs,c as Hs,d as Ve,C as Ys,e as Qs,u as Ws,i as Gs}from"./use-download-agent-mutation-fP7MSQui.js";import{c as Xs,at as Zs,as as Ks,au as Js,av as et}from"./index-QVureTEn.js";import{R as st}from"./radient-auth-buttons-Doso02jc.js";import{o as qe,u as tt,a as at,b as nt}from"./org-surface-gate-DArMk6ID.js";import{f as it}from"./format-CZUObkkr.js";import"./ui-preferences-store-BaXpFsZf.js";import"./en-US-BcB1DWxG.js";import"./book-open-CueO0nwZ.js";import"./console-mirror-CiDuCMfE.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1,7 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./legacy-agents-page-Dfrz_ZCe.js","./index-DvjcW_EJ.js","./index-B4ItTI5Q.css","./conversation-input-sync-zDEtF-9C.js","./ui-preferences-store-BaXpFsZf.js","./error-boundary-BCN3_4Dn.js","./conversation-input-sync-CIGg7Rga.css","./page-header-ouA0fPx9.js","./index-QVureTEn.js","./console-mirror-CiDuCMfE.js","./console-mirror-DOrYoP_4.css","./index-DHKnfVbX.css","./settings-section-8d2ITQC3.js","./use-memberships-query-B_qwJ7_k.js","./org-surface-gate-DArMk6ID.js","./radient-auth-buttons-Doso02jc.js"])))=>i.map(i=>d[i]);
2
+ import{an as _e,a_ as yt,ar as vt,a$ as kt,a as et,u as wt,b0 as Nt,X as G,b1 as Pe,aN as me,d as ce,az as Te,ab as St,ac as Ct,S as Et,aP as tt,ag as st,b2 as nt,aw as ke,b3 as at,b4 as It,aQ as At,b5 as Tt,b6 as Rt,b7 as $t,b8 as Be,b9 as Dt,aF as Lt,ba as Ft,bb as _t,bc as Ot}from"./conversation-input-sync-zDEtF-9C.js";import{r as o,j as e,c as Q}from"./index-DvjcW_EJ.js";import{ag as Mt,ah as Ut,ai as Pt,aj as Bt,ak as qt,al as zt,am as Wt,an as Ht,ao as Kt,ap as it,aq as Gt,ar as Vt,b as Jt,as as rt,A as Yt}from"./index-QVureTEn.js";import{c as Qt,j as M,B as N,q as Xt,r as Zt,e as de,A as se,g as ne,h as ae,I as he,s as ot,t as lt,u as ct,v as dt,w as we,x as Ee,y as Ne,T as Le,M as es,z as ts,F as ss,G as qe}from"./error-boundary-BCN3_4Dn.js";import{C as ns,c as as}from"./ui-preferences-store-BaXpFsZf.js";import"./console-mirror-CiDuCMfE.js";/**
3
+ * @license lucide-react v0.507.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */const is=[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]],rs=Qt("log-in",is),os=[],ze="config-composer-note",We="Configure agents by conversation",ls=["A reviewer that only reads code","Add the coder twice to release-crew","A team called shipping with a manager and two coders"],cs={idle:"bg-ink-dim",running:"bg-accent",stopping:"bg-warning",done:"bg-success",stopped:"bg-ink-muted",error:"bg-danger"};function ds({status:t,pulse:s}){return e.jsx("span",{"aria-hidden":"true",className:Q("size-2 shrink-0 rounded-full",cs[t]??"bg-ink-dim",s&&"animate-pulse")})}function us({run:t}){return t.activity.length===0?e.jsx("p",{className:"text-meta text-ink-muted",children:"Nothing to show yet — the run has not called a tool."}):e.jsx("ul",{className:"max-h-48 space-y-1 overflow-y-auto",children:t.activity.map((s,n)=>e.jsxs("li",{className:"flex items-baseline gap-2 text-body-sm",children:[e.jsx("span",{className:"text-ink-dim tabular-nums",children:new Date(s.ts).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),e.jsx("span",{className:"text-ink",children:s.verb})]},`${s.ts}:${s.verb}:${n}`))})}function He({run:t,onDismiss:s}){const[n,a]=o.useState(!1),i=o.useRef(null),l=t.status==="running"||t.status==="stopping";o.useEffect(()=>{if(!l)return;const h=g=>{g.key!=="Escape"||g.defaultPrevented||document.querySelector('[role="alertdialog"], [role="dialog"]')||i.current?.focus()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[l]);const u=t.status==="running"?t.step??"Working on your request":t.status==="stopping"?"Stopping":t.status==="done"?t.results.length>0?"Finished":"Finished without changing anything":t.status==="stopped"?"Stopped":t.status==="error"?t.canRetry?"Stopped with an error":"Finished with an error":"";return e.jsxs("div",{className:"border-hairline border-b pb-2","data-testid":"config-run-strip",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1",children:[e.jsx(ds,{status:t.status,pulse:l}),e.jsx("span",{"aria-live":"polite",className:"text-body-sm text-ink",children:u}),(l||t.status==="stopped"||t.status==="done")&&t.elapsed!=="0s"?e.jsx("span",{className:"text-meta text-ink-muted tabular-nums",children:t.elapsed}):null,t.touched.length>0?e.jsx(M,{variant:"neutral",children:t.touched.length===1?"1 definition":`${t.touched.length} definitions`}):null,e.jsxs("div",{className:"ml-auto flex items-center gap-1",children:[t.activity.length>0?e.jsxs(N,{variant:"ghost",size:"sm","aria-expanded":n,onClick:()=>a(h=>!h),children:[n?e.jsx(Xt,{className:"size-3.5"}):e.jsx(Zt,{className:"size-3.5"}),"Watch"]}):null,l?e.jsxs(N,{ref:i,variant:"secondary",size:"sm",disabled:t.status==="stopping",onClick:()=>void t.stop(),children:[e.jsx(kt,{className:"size-3.5"}),t.status==="stopping"?"Stopping…":"Stop"]}):e.jsx(N,{variant:"ghost",size:"sm",onClick:()=>s?s():t.dismiss(),children:"Dismiss"})]})]}),t.attached?e.jsx("p",{className:"mt-1 text-meta text-ink-muted",children:"Another configuration run was already going, so this page attached to it. Your request was not sent — it is still in the box."}):null,t.stopError?e.jsxs("div",{className:"mt-2 border-danger-border border-t pt-2","data-testid":"config-stop-refused",children:[e.jsx("p",{className:"text-body-sm text-danger",children:"The stop did not take — the run is still going."}),e.jsx("p",{className:"mt-0.5 text-meta text-ink-muted",children:t.stopError})]}):null,n?e.jsx("div",{className:"mt-2 border-hairline border-t pt-2",children:e.jsx(us,{run:t})}):null,t.status==="stopped"?e.jsxs("div",{className:"mt-2 space-y-1 border-hairline border-t pt-2 text-body-sm",children:[e.jsx("p",{className:"text-ink",children:t.results.length>0?"Stopped. Changes it had already made were kept.":"Stopped. Nothing had been changed yet."}),t.results.length>0?e.jsx("ul",{className:"space-y-0.5",children:t.results.map(h=>e.jsxs("li",{className:"text-ink-muted",children:[h.created?"Created ":"Changed ",e.jsx("span",{className:"text-ink",children:h.target.name})]},`${h.target.kind}:${h.target.name}`))}):null]}):null,t.status==="done"?e.jsx(ms,{run:t}):null,t.status==="error"&&t.error?e.jsxs("div",{className:"mt-2 border-danger-border border-t pt-2",children:[e.jsx("p",{className:"text-body-sm text-danger",children:t.error}),e.jsxs("div",{className:"mt-1 flex items-center gap-2",children:[t.canRetry?e.jsx(N,{variant:"secondary",size:"sm","data-testid":"config-retry",disabled:t.starting,onClick:()=>void t.retry(),children:t.starting?"Sending…":"Retry"}):null,e.jsx("p",{className:"text-meta text-ink-muted",children:"Nothing else was changed by this run."})]})]}):null]})}function ms({run:t}){return t.results.length===0?e.jsxs("div",{className:"mt-2 border-hairline border-t pt-2 text-body-sm",children:[e.jsx("p",{className:"text-ink-muted",children:"The run answered without changing any agent or team."}),t.answer?e.jsx("p",{className:"mt-1 whitespace-pre-wrap text-ink",children:t.answer}):null,t.topic?e.jsxs("p",{className:"mt-1 text-meta text-ink-muted",children:["You asked: ",t.topic]}):null]}):e.jsxs("div",{className:"mt-2 space-y-1 border-hairline border-t pt-2",children:[e.jsx("ul",{className:"space-y-1 text-body-sm",children:t.results.map(s=>e.jsxs("li",{children:[e.jsxs("span",{className:"text-ink",children:[s.created?"Created ":"Updated ",s.target.name]}),e.jsxs("span",{className:"text-ink-muted",children:[" (",s.target.kind,")"]}),s.changes.length>0?e.jsxs("span",{className:"text-ink-muted",children:[": ",s.changes.map(n=>n.label).join(", ")]}):s.created?null:e.jsx("span",{className:"text-ink-muted",children:": its settings changed. The list does not show instructions, so open it to see what was written."})]},`${s.target.kind}:${s.target.name}`))}),t.answer?e.jsx("p",{className:"whitespace-pre-wrap text-body-sm text-ink-muted",children:t.answer}):null]})}const je="agents-config",hs=t=>`Change the ${t.kind} ${t.name}: `;function Re(t,s,n){t.setAbout(s);const a=_e.getState();a.getCurrentInput(je)||a.setComposerText(je,n)}function fs(t){const s=_e.getState();s.getCurrentInput(je).trim()===hs(t).trim()&&s.setComposerText(je,"")}function ut({run:t,hero:s=!1,blockedReason:n,about:a,onClearAbout:i,onStripHeightChange:l}){const u=o.useRef(null),h=o.useRef(null),g=yt(),c=je,r=T=>_e.getState().setCurrentInput(c,T),y=o.useCallback(T=>{if(h.current?.disconnect(),h.current=null,!l)return;if(!T){l(0);return}const $=()=>l(T.getBoundingClientRect().height);if($(),typeof ResizeObserver>"u")return;const D=new ResizeObserver($);D.observe(T),h.current=D},[l]),v=t.status==="running"||t.status==="stopping",j=!t.enabled||!!n,b=n||(v?"Working on your request…":t.enabled?void 0:We),C=a?`Change ${a.name}…`:t.enabled?"Describe what you want…":We,p=a?`${a.kind}:${a.name}`:null;o.useEffect(()=>{p&&u.current?.focusInput()},[p]);const k=()=>{t.dismiss(),u.current?.focusInput()},R=()=>{i(),u.current?.focusInput()};return e.jsxs("div",{className:Q("relative rounded-md border border-hairline bg-surface p-3",s&&"shadow-none"),"data-testid":"config-composer",children:[e.jsx("div",{className:"sr-only",id:"config-composer-label",children:"Ask for an agent or team change"}),t.enabled&&t.status!=="idle"?s?e.jsx(He,{run:t,onDismiss:k}):e.jsx("div",{ref:y,className:"absolute inset-x-0 bottom-full rounded-t-md border-hairline border bg-canvas p-3",children:e.jsx(He,{run:t,onDismiss:k})}):null,a?e.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[e.jsxs(M,{variant:"accent","data-testid":"config-composer-about",children:["About ",a.kind," ",a.name]}),e.jsx(N,{variant:"ghost",size:"sm",onClick:R,children:"Clear"})]}):null,e.jsx(vt,{ref:u,conversationId:c,messages:os,isLoading:!1,transcriptless:!0,placeholderOverride:C,sessionStatus:t.frontend?{frontend:t.frontend}:void 0,recordingProbe:g,hostNotice:{id:ze,blocksInput:!t.enabled||!!n||v,placeholder:b,node:e.jsx("p",{id:ze,"data-testid":"config-composer-note",className:"mb-2 text-meta text-ink-muted",children:t.enabled?"Runs in the background. This does not appear in your conversation.":t.disabledReason})},onSendMessage:(T,$)=>t.start(T,a,$)}),t.enabled?e.jsx("div",{className:Q("mt-2 flex flex-wrap gap-1.5",ns,t.enabled&&!a&&!v?"":"invisible"),children:ls.map(T=>e.jsx(N,{variant:"outline",size:"sm",disabled:j,onClick:()=>{r(T),u.current?.focusInput()},children:T},T))}):null]})}const Ke=(t,s)=>t.kind===s.kind&&t.name===s.name;function gs(t){return`${t.kind}:${t.name}`}const z=as(t=>({sessionId:null,status:"idle",topic:"",images:[],about:null,error:null,stopError:null,unsent:!1,startedAt:null,settledAt:null,touched:[],results:[],answer:"",marks:[],before:null,setAbout:s=>t({about:s}),adopt:(s,n,a,i=[])=>t({sessionId:s,status:"running",topic:n,images:i,error:null,stopError:null,startedAt:Date.now(),settledAt:null,touched:[],results:[],answer:"",before:a,unsent:!1}),noteTouched:s=>t(n=>n.touched.some(a=>Ke(a,s))?n:{touched:[...n.touched,s]}),stopping:()=>t(s=>s.status==="running"?{status:"stopping",stopError:null}:s),stopFailed:s=>t({status:"running",stopError:s}),settle:(s,n,a)=>t(()=>({status:n,settledAt:Date.now(),results:s,answer:a,marks:s.map(i=>({...i.target,created:i.created})),sessionId:null,images:[],stopError:null,before:null,unsent:!1})),fail:s=>t({status:"error",error:s,unsent:!1,stopError:null}),failUnsent:s=>t({status:"error",error:s,unsent:!0,stopError:null}),dismiss:()=>t({status:"idle",sessionId:null,error:null,stopError:null,unsent:!1,topic:"",images:[],touched:[],results:[],answer:"",marks:[],startedAt:null,settledAt:null,before:null}),clearMark:s=>t(n=>({marks:n.marks.filter(a=>!Ke(a,s))}))})),ps=/Value error,\s*([\s\S]*?)\s*\[type=/,xs=/^\d+ validation errors? for \S+[\s\S]*?\n\s*/i,bs=/\s*\[type=[^\]]*\][\s\S]*$/m,js=/\s*For further information visit \S+/g,ys=/'([^']+)' already exists/,vs=/cannot contain spaces or path separators/i,ks=/effort tier '([^']+)' is unavailable/i,ws=/team name must be/i,Ns=/manager '([^']+)'/i,Ss=/(?:member|role) '([^']+)' (?:is not|does not)/i,Cs=/depth|cycle|circular/i,Es=/instructions/i,Is=/description/i;function As(t){const s=t.match(ps);return s?.[1]?s[1].trim():t.replace(xs,"").replace(bs,"").replace(js,"").trim()}function ye(t){const s=As(t),n=s.match(ys);if(n)return{message:`An agent called “${n[1]}” already exists. Choose another name, or open the existing one to change it.`,field:"name"};if(vs.test(s))return{message:"Names cannot contain spaces or slashes.",field:"name"};const a=s.match(ks);if(a)return{message:`“${a[1]}” is not a configured effort tier. Use inherit, or add the tier in Settings.`,field:"effort"};if(s.match(ws))return{message:"A team name is 1-64 characters.",field:"name"};const l=s.match(Ns);if(l)return{message:`“${l[1]}” is not an agent or a team on this machine.`,field:"manager"};const u=s.match(Ss);return u?{message:`“${u[1]}” is not an agent or a team on this machine.`,field:"members"}:Cs.test(s)?{message:"That team would nest too deeply, or would contain itself. Check its members.",field:"members"}:Es.test(s)?{message:s,field:"instructions"}:Is.test(s)?{message:s,field:"description"}:{message:s,field:null}}function Ts(t,s){const n=new Set(s),a=`${t}-copy`;if(!n.has(a))return a;for(let i=2;i<100;i+=1){const l=`${a}-${i}`;if(!n.has(l))return l}return a}function Ie(t){return t.action_class==="proactive"?"proactive":"reactive"}const Rs={proactive:"Proactive"},$s={proactive:"It may message you on its own: after sending you something it waits a few minutes for a reply, nudges again with growing gaps for a fixed number of tries, then waits for you — and it may also wake on its own schedule.",reactive:"It replies when you write to it. It does not nudge you, and it does not wake on its own schedule."},Ds={proactive:"Turning this off stops the nudging and the scheduled wakes. It still replies when you write to it.",reactive:"Turning this on lets it write first: it will wait a few minutes for your reply, nudge you again up to a fixed number of tries, and it may wake on its own schedule. It still replies when you write to it."},Ls="This one ships with the app and has no copy of its own yet, so switching installs it first — the same agent and the same instructions, now editable — and then sets its class.";function Fs(t,s){const n=[];return t.source==="builtin"&&n.push({op:"profiles.install",name:t.name}),n.push({op:"profiles.update",name:t.name,fields:{action_class:s}}),n}async function _s(t,s,n,a=()=>crypto.randomUUID()){if(Ie(t)===s)return null;let i=null;const l=Fs(t,s);for(let u=0;u<l.length;u+=1){const h=l[u];try{i=await n(h,a())}catch(g){throw new mt(g,l.slice(0,u))}}return i}class mt extends Error{completed;constructor(s,n){super(s instanceof Error?s.message:String(s)),this.name="ClassSwitchError",this.completed=n}}function Os(t,s){const n=t instanceof Error&&t.message?t.message:"The backend sent no reason for it. Try the switch again.",a=ye(n).message;return s.some(i=>i.op==="profiles.install")?`${a} The install did land, so the agent is editable now.`:a}const Ms=new Set(["agent","team"]);function Us(t){const s=typeof t.args?.op=="string"?t.args.op:null,n=typeof t.args?.name=="string"?t.args.name:null,a=t.toolName==="team"?"team":"agent",i=n?{kind:a,name:n}:null,l=t.phase==="done"&&!t.isError&&!t.notRunReason&&!t.neverSent,u=h=>({writes:h&&l});switch(s){case"create":return{verb:n?`Creating ${a} ${n}`:`Creating a ${a}`,target:i,...u(!0)};case"update":return{verb:n?`Updating ${a} ${n}`:`Updating a ${a}`,target:i,...u(!0)};case"install":return{verb:n?`Installing ${n}`:"Installing an agent",target:i,...u(!0)};case"list":case"search":case"show":return{verb:n?`Reading ${n}`:`Reading ${a}s`,target:i,...u(!1)};default:return{verb:t.phase==="running"?`Working on ${a}s`:`Checked ${a}s`,target:i,...u(!0)}}}const Ps={description:"description",kind:"kind",tools:"tools",effort:"effort tier",delegate:"delegation",action_class:"class",manager:"manager",members:"members",instructions:"instructions"};function Bs(t){return{description:t.description??"",kind:t.kind,tools:t.tools&&t.tools.length>0?[...t.tools].sort().join(","):"*",effort:t.effort??"inherit",delegate:String(!!t.delegate),action_class:Ie(t)}}function qs(t){return{description:t.description??"",manager:t.manager??"",members:(t.members??[]).map(s=>`${s.kind}:${s.role}x${s.count}`).sort().join(",")}}function Ge(t,s){return{agents:Object.fromEntries((t??[]).map(n=>[n.name,Bs(n)])),teams:Object.fromEntries((s??[]).map(n=>[n.name,qs(n)]))}}function zs(t,s){if(t===s)return"tools";const n=h=>h==="*"?null:new Set(h.split(",")),a=n(t),i=n(s);if(i===null)return"tools widened to every tool";if(a===null)return"tools narrowed to a list";const l=[...i].filter(h=>!a.has(h)),u=[...a].filter(h=>!i.has(h));return l.length&&!u.length?l.length===1?`tool added: ${l[0]}`:`${l.length} tools added`:u.length&&!l.length?u.length===1?`tool removed: ${u[0]}`:`${u.length} tools removed`:"tools changed"}function Ws(t,s,n){if(t==="tools")return zs(s,n);if(t==="delegate")return n==="true"?"delegation turned on":"delegation turned off";if(t==="action_class")return n==="proactive"?"class changed to proactive":"class changed to reactive — proactive messaging stopped";if(t==="members"){const a=i=>i?i.split(",").length:0;return`members changed (${a(s)} to ${a(n)})`}return`${Ps[t]??t} changed`}function Hs(t,s,n){const a=[],i=new Set;for(const l of n){const u=`${l.kind}:${l.name}`;if(i.has(u))continue;i.add(u);const h=t[l.kind==="agent"?"agents":"teams"][l.name],g=s[l.kind==="agent"?"agents":"teams"][l.name];if(!g)continue;if(!h){a.push({target:l,created:!0,changes:[]});continue}const c=[];for(const r of Object.keys(g))g[r]!==h[r]&&c.push({label:Ws(r,h[r],g[r]),before:h[r],after:g[r]});a.push({target:l,created:!1,changes:c})}for(const[l,u]of[["agent",s.agents],["team",s.teams]])for(const h of Object.keys(u))i.has(`${l}:${h}`)||(l==="agent"?t.agents[h]:t.teams[h])||a.push({target:{kind:l,name:h},created:!0,changes:[]});return a}function Ks(t){return ce(t,"agents_config")&&ce(t,"session_interrupt")&&ce(t,"profile_catalogue")&&ce(t,"team_catalogue")}function Gs(t){if(!(t instanceof Et)||t.status!==409)return null;const n=t.detail?.session_id;return typeof n=="string"&&n.length>0?n:null}function Vs(t,s){const[n,a]=o.useState(()=>Date.now());return o.useEffect(()=>{if(!t||!s)return;const i=setInterval(()=>a(Date.now()),1e3);return()=>clearInterval(i)},[t,s]),t?Math.max(0,n-t):0}function Js(t){const s=Math.floor(t/1e3);return s<60?`${s}s`:`${Math.floor(s/60)}m ${String(s%60).padStart(2,"0")}s`}function Ve(t){for(let s=(t?.length??0)-1;s>=0;s-=1){const n=t?.[s];if(n?.kind==="assistant"&&n.text?.trim())return n.text.trim()}return""}function Ys(t){const n=t?.payload?.frontend;if(!n||typeof n!="object")return null;const a=n.streaming;if(typeof a=="boolean")return a;const i=n.snapshot?.streaming;return typeof i=="boolean"?i:null}function Qs(){const t=et(),s=Ks(t.data),n=wt(),a=z(),[i,l]=o.useState(!1),[u,h]=o.useState(!1),g=o.useRef(!1),c=a.status==="running"||a.status==="stopping",r=Nt(a.sessionId??void 0,!!a.sessionId),y=o.useMemo(()=>Ve(r.transcript?.records),[r.transcript?.records]);Mt(a.sessionId??void 0,r.subscriptionId);const v=r.transcript?.records,j=o.useRef(v);o.useEffect(()=>{j.current=v},[v]);const b=o.useMemo(()=>(r.transcript?.records??[]).filter(E=>E.kind==="tool"&&Ms.has(E.toolName)).map(E=>({...Us({toolName:E.toolName,args:E.args??null,phase:E.phase,ts:E.ts,isError:E.isError,notRunReason:E.notRunReason,neverSent:E.neverSent}),ts:E.ts})),[r.transcript]);o.useEffect(()=>{if(c)for(const x of b)x.target&&x.writes&&a.noteTouched(x.target)},[b,c,a]);const C=c&&b.length>0?b[b.length-1].verb:null,p=Js(Vs(a.startedAt,c)),k=o.useCallback(async(x,E="")=>{if(g.current)return;g.current=!0;const F=a.before;let I=[];try{const[P,_]=await Promise.all([G({op:"profiles.list"}),G({op:"teams.list"})]);F&&(I=Hs(F,Ge(P.profiles,_.teams),a.touched))}catch{z.getState().fail("The run finished, but the agents and teams lists could not be read to describe what changed."),Pe(n);return}if(Pe(n),z.getState().settle(I,x,E),x==="done"&&I.length>0){const P=I.filter(_=>_.created).length;me(P>0?`Configuration run finished: ${I.length} definition${I.length===1?"":"s"} changed.`:`Configuration run finished: ${I.length} definition${I.length===1?"":"s"} updated.`)}},[n,a.before,a.touched]);o.useEffect(()=>{if(c){if(r.failure){z.getState().fail(r.failure.statement);return}g.current||r.frontend&&(r.frontend.streaming||r.turnsCompleted!==0&&k(a.status==="stopping"?"stopped":"done",y))}},[c,y,r.failure,r.frontend,r.turnsCompleted,a.status,k]),o.useEffect(()=>{const x=a.sessionId;if(!c||!x)return;let E=!1;const F=async()=>{if(!(E||g.current))try{const _=await G({op:"sessions.get",sessionId:x});if(E||g.current||Ys(_)!==!1)return;const W=Ve(j.current);if(!W)return;k(z.getState().status==="stopping"?"stopped":"done",W)}catch{}},I=setTimeout(()=>void F(),400),P=setInterval(()=>void F(),4e3);return()=>{E=!0,clearTimeout(I),clearInterval(P)}},[c,a.sessionId,k]);const R=async(x,E,F=[])=>{if(i||!x.trim())return!1;l(!0),h(!1),g.current=!1;const I=Ge(n.getQueryData(["desktop","profiles"]),n.getQueryData(["desktop","teams"])),P=E?`About the ${E.kind} “${E.name}”: ${x.trim()}`:x.trim(),{images:_,unreadable:W}=await St(F,P),B=Ct(W);if(B)return z.getState().fail(B),!1;try{let K;try{K=(await G({op:"sessions.create",requestId:crypto.randomUUID(),purpose:"agents-config"})).session_id}catch(O){const V=Gs(O);if(V)return h(!0),a.adopt(V,x.trim(),I,_),!1;throw O}return a.adopt(K,P,I,_),await T(K,P,_),!0}catch(K){const O=z.getState().sessionId;return z.getState().failUnsent(Te(K,O?"The run was set up, but your request could not be sent. It is still in the box — send it again when the backend is reachable.":"The configuration run could not be started. Your request is still here.")),!1}finally{l(!1)}},T=async(x,E,F=[])=>{await G({op:"sessions.message",sessionId:x,requestId:crypto.randomUUID(),text:E,...F.length>0?{images:F}:{}})},$=async()=>{const x=z.getState();if(!(i||!x.unsent||!x.sessionId||!x.topic)){l(!0);try{await T(x.sessionId,x.topic,x.images),a.adopt(x.sessionId,x.topic,x.before),g.current=!1}catch(E){z.getState().failUnsent(Te(E,"The request could not be sent. It is still in the box."))}finally{l(!1)}}},D=async()=>{const x=z.getState().sessionId;if(x){a.stopping();try{await Ut(x,crypto.randomUUID())}catch(E){z.getState().stopFailed(Te(E,"The run did not acknowledge the request."))}}},w=s?null:t.isLoading?"Connecting to the backend…":t.error?"The backend could not be reached, so the composer is unavailable for now.":"Ask for a change needs a newer backend. Update Local Operator to configure agents by conversation.";return{enabled:s,disabledReason:w,status:a.status,sessionId:a.sessionId,frontend:r.frontend,topic:a.topic,error:a.error,stopError:a.stopError,about:a.about,setAbout:a.setAbout,touched:a.touched,results:a.results,answer:a.answer,step:C,elapsed:p,activity:b,start:R,stop:D,retry:$,canRetry:a.unsent&&!!a.sessionId,dismiss:a.dismiss,starting:i,attached:u}}function L({title:t,description:s,actions:n,children:a,className:i}){return e.jsxs("section",{className:Q("space-y-2 border-hairline border-t pt-4 first:border-t-0 first:pt-0",i),children:[e.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1",children:[e.jsx("h3",{className:"text-heading",children:t}),n]}),s?e.jsx("p",{className:"text-meta text-ink-muted",children:s}):null,a]})}function ue({text:t,empty:s="Nothing here yet.",mono:n=!1}){const[a,i]=o.useState(!1),[l,u]=o.useState(!1),h=o.useRef(null);return o.useEffect(()=>{if(a)return;const g=h.current;g&&u(!!t&&g.scrollHeight>g.clientHeight+1)},[t,a]),t.trim()?e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{ref:h,tabIndex:0,"aria-label":"The full text",className:Q("whitespace-pre-wrap rounded-sm border border-hairline bg-surface px-3 py-2 text-body-sm text-ink",!a&&"max-h-64 overflow-y-auto",n&&"font-mono text-meta"),children:t}),l?e.jsx(N,{variant:"link",size:"sm",onClick:()=>i(g=>!g),children:a?"Show less":"Show all"}):null]}):e.jsx("p",{className:"text-body-sm text-ink-muted",children:s})}function ht({source:t,appearance:s="chip"}){const n=t==="builtin"?"Built-in":t==="installed"?"Installed":"Custom";return s==="text"?e.jsx("span",{className:"shrink-0 text-meta text-ink-dim",children:n}):e.jsx(M,{variant:"neutral",children:n})}function ft(t,s){o.useEffect(()=>{if(!s)return;const n=a=>{a.key!=="Escape"||a.defaultPrevented||(a.preventDefault(),t())};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[s,t])}function Oe({dirty:t,pending:s,onSave:n,onCancel:a,saveLabel:i="Save changes",pendingLabel:l="Saving…",dirtyHint:u,submit:h,confirming:g,onConfirmingChange:c}){const[r,y]=o.useState(!1),v=o.useRef(null),j=o.useRef(null),b=g!==void 0,C=b?g:r;o.useEffect(()=>{C&&j.current?.focus()},[C]);const p=k=>{b||y(k),c?.(k)};return o.useEffect(()=>{t||(b||y(!1),c?.(!1))},[t,b,c]),e.jsxs("div",{"data-testid":"edit-footer",className:"sticky bottom-0 z-10 -mx-6 mt-6 flex flex-wrap items-center gap-2 border-hairline border-t bg-canvas px-6 py-3",children:[e.jsx(N,{ref:v,type:h?"submit":void 0,variant:"primary",onClick:h?void 0:n,disabled:s,children:s?l:i}),C?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:u??"Discard your unsaved changes?"}),e.jsx(N,{variant:"danger",onClick:a,children:"Discard changes"}),e.jsx(N,{ref:j,variant:"ghost",onClick:()=>{p(!1),v.current?.focus()},children:"Keep editing"})]}):e.jsx(N,{variant:"ghost",onClick:()=>t?p(!0):a(),disabled:s,children:"Cancel"}),t&&!C?e.jsx("span",{className:"text-meta text-ink-muted",children:"Unsaved changes"}):null]})}let Fe=!1;function gt(){Fe=!0}function pt(){const t=Fe;return Fe=!1,t}function Xs({rows:t=6}){return e.jsx("div",{className:"space-y-1","aria-hidden":"true",children:Zs.slice(0,t).map(s=>e.jsx(de,{className:"h-11 w-full"},s))})}const Zs=["a","b","c","d","e","f","g","h"];function Je(){return e.jsxs("div",{className:"max-w-3xl space-y-6","aria-hidden":"true",children:[e.jsx(de,{className:"h-7 w-64"}),e.jsx(de,{className:"h-5 w-40"}),e.jsx(de,{className:"h-28 w-full"}),e.jsx(de,{className:"h-24 w-full"})]})}function Ye({title:t,what:s,meaning:n,onRetry:a,retrying:i=!1}){return e.jsxs("div",{role:"alert",className:"max-w-xl space-y-2",children:[e.jsx("h2",{className:"text-heading",children:t}),e.jsx("p",{className:"text-body-sm text-ink",children:s}),e.jsx("p",{className:"text-body-sm text-ink-muted",children:n}),e.jsx(N,{variant:"secondary",onClick:a,disabled:i,children:i?"Retrying…":"Retry"})]})}function X({label:t,htmlFor:s,error:n}){return e.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[e.jsx("label",{htmlFor:s,className:"text-body-sm text-ink-muted",children:t}),n?e.jsx("span",{className:"text-meta text-danger",role:"alert",children:n}):null]})}const en=/^[A-Za-z0-9_.:-]{1,128}$/;function te(t){return{description:t.description??"",instructions:t.instructions??"",tools:t.tools&&t.tools.length>0?[...t.tools]:null,effort:t.effort??"inherit",delegate:t.delegate??!1}}function tn(t,s){const n={};return s.description!==t.description&&(n.description=s.description),s.instructions!==t.instructions&&(n.instructions=s.instructions),JSON.stringify(s.tools)!==JSON.stringify(t.tools)&&(n.tools=s.tools??[]),s.effort!==t.effort&&(n.effort=s.effort),s.delegate!==t.delegate&&(n.delegate=s.delegate),n}function sn({profile:t}){return e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx(ht,{source:t.source}),t.divergent_fields?.length?e.jsx(M,{variant:"warning",children:"Modified"}):null,t.kind==="specialist"?e.jsx(M,{variant:"neutral",children:"Specialist"}):null,t.delegate?e.jsx(M,{variant:"neutral",children:"Delegates"}):null,t.tools&&t.tools.length>0?e.jsx(M,{variant:"neutral",children:t.tools.length===1?"1 tool":`${t.tools.length} tools`}):null]})}const nn=5e3;let $e=null;function an({profile:t,displayedName:s,notice:n,onNotice:a,onChanged:i}){const l=Ie(t),[u,h]=o.useState(null),[g,c]=o.useState(!1),r=o.useRef(null),y=o.useId();o.useEffect(()=>{u!==null&&l===u&&h(null)},[l,u]),o.useEffect(()=>{const b=$e;!b||b.name!==t.name||($e=null,!(Date.now()-b.at>nn)&&r.current?.focus())},[t.name]);const v=u??l,j=async b=>{if(!(g||b===v)){$e={name:t.name,at:Date.now()},a(null),h(b),c(!0);try{await _s(t,b,(C,p)=>C.op==="profiles.install"?G({op:"profiles.install",name:C.name,requestId:p}):G({op:"profiles.update",name:C.name,requestId:p,fields:C.fields??{}})),i(t.name),me(b==="proactive"?`${s} is now proactive — it may message you on its own.`:`${s} is now reactive — proactive messaging stopped.`)}catch(C){h(null);const p=C instanceof mt?C.completed:[],k=Os(C,p);a(k),ke(k),i(t.name)}finally{c(!1)}}};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative flex items-center gap-2 text-body-sm",children:[e.jsx(Ee,{ref:r,checked:v==="proactive","aria-disabled":g,"aria-labelledby":y,"data-testid":"agent-class-switch",className:"after:absolute after:inset-0 after:content-['']",onCheckedChange:b=>void j(b?"proactive":"reactive")}),e.jsx("span",{id:y,className:"text-ink",children:"Can message me on its own"}),e.jsx("span",{"aria-live":"polite",className:"text-ink-muted",children:g?"Switching…":v==="proactive"?"On":"Off"})]}),e.jsx("p",{className:"text-body-sm text-ink",children:$s[v]}),e.jsx("p",{className:"text-meta text-ink-muted",children:Ds[v]}),t.source==="builtin"?e.jsx("p",{className:"text-meta text-ink-muted",children:Ls}):null,n?e.jsxs(se,{variant:"danger",role:"alert","data-testid":"agent-class-error",children:[e.jsx(ne,{children:"The switch did not go through"}),e.jsx(ae,{children:n})]}):null]})}function xt({tools:t,onChange:s,error:n}){const[a,i]=o.useState(""),[l,u]=o.useState(null),h=o.useId(),g=()=>{const c=a.trim();if(c){if(!en.test(c)){u("Tool names are letters, digits, dot, underscore, dash or colon.");return}if(t?.includes(c)){u("That tool is already listed.");return}u(null),i(""),s([...t??[],c])}};return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-body-sm",children:[e.jsx(Ee,{checked:t===null,onCheckedChange:c=>s(c?null:[]),"aria-label":"Give this agent every tool"}),e.jsx("span",{children:"All tools"})]}),t===null?e.jsx("p",{className:"text-meta text-ink-muted",children:"This agent may use whatever the session offers."}):e.jsxs(e.Fragment,{children:[t.length>0?e.jsx("ul",{className:"flex flex-wrap gap-1.5",children:t.map(c=>e.jsx("li",{children:e.jsxs(M,{variant:"outline",children:[c,e.jsx(N,{variant:"ghost",size:"sm","aria-label":`Remove ${c}`,onClick:()=>s(t.filter(r=>r!==c)),className:"ml-1 h-4 px-1",children:"×"})]})},c))}):e.jsx("p",{className:"text-meta text-ink-muted",children:"No tools yet. Add one below, or turn on All tools."}),e.jsxs("div",{className:"flex items-end gap-2",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(X,{label:"Add a tool",htmlFor:h,error:l??n}),e.jsx(he,{id:h,value:a,inputSize:"md",placeholder:"Tool name","aria-invalid":!!(l??n),onChange:c=>{i(c.target.value),u(null)},onKeyDown:c=>{c.key==="Enter"&&(c.preventDefault(),g())}})]}),e.jsx(N,{variant:"secondary",onClick:g,disabled:!a.trim(),children:"Add"})]})]})]})}function rn({profile:t,displayedName:s,classNotice:n,onClassNotice:a,teams:i,effortTiers:l,askEnabled:u,onSaved:h,onDuplicate:g,onOpenTeam:c,onAskAgent:r,onDirtyChange:y}){const[v,j]=o.useState(!1),[b,C]=o.useState(()=>te(t)),[p,k]=o.useState(()=>te(t)),[R,T]=o.useState(!1),[$,D]=o.useState(null),[w,x]=o.useState(null),[E,F]=o.useState(!1),[I,P]=o.useState(!1),[_,W]=o.useState(!1),B=o.useRef(null),K=tt(),O=JSON.stringify(p)!==JSON.stringify(b);o.useEffect(()=>(y?.(v&&O),()=>y?.(!1)),[y,v,O]),o.useEffect(()=>{pt()&&requestAnimationFrame(()=>B.current?.focus())},[]),o.useEffect(()=>{if(v&&O)return;const f=te(t);C(f),k(f)},[t,v,O]),o.useEffect(()=>{if(!v){P(!1);return}const f=te(t);P(O&&JSON.stringify(f)!==JSON.stringify(b))},[t,v,O,b]);const V=()=>{j(!1),D(null),x(null),F(!1),W(!1);const f=te(t);C(f),k(f)};ft(()=>{if(_){W(!1);return}O?W(!0):V()},v);const ee=async f=>{if(f?.preventDefault(),R)return;const A=tn(b,p);if(Object.keys(A).length===0){V();return}if(typeof A.instructions=="string"&&!A.instructions.trim()){D("Give the agent instructions."),x("instructions");return}T(!0),D(null),x(null);try{const H=await G({op:"profiles.update",name:t.name,requestId:crypto.randomUUID(),fields:A});j(!1),F(!1);const J=te(H);C(J),k(J),h(H.name),me(`Saved ${H.name}.`),requestAnimationFrame(()=>B.current?.focus())}catch(H){const J=ye(H instanceof Error?H.message:"The agent could not be saved.");D(J.message),x(J.field);const re=H?.status,fe=typeof re=="number"&&re!==408&&re>=400&&re<500;F(!fe),fe||ke("The save could not be confirmed. Check whether it was applied before retrying.")}finally{T(!1)}},d=async()=>{if(!R){T(!0),D(null);try{const f=await G({op:"profiles.install",name:t.name,requestId:crypto.randomUUID()}),A=te(f);C(A),k(A),h(f.name),me(`Installed ${f.name}. It can be edited now.`),requestAnimationFrame(()=>B.current?.focus())}catch(f){const A=ye(f instanceof Error?f.message:"The agent could not be installed.");D(A.message),ke(A.message)}finally{T(!1)}}},S=(i??[]).filter(f=>f.manager===t.name||(f.members??[]).some(A=>A.role===t.name)),q=t.source==="builtin";return e.jsxs("div",{className:"max-w-3xl space-y-6",children:[e.jsxs("header",{className:"space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-x-4 gap-y-3",children:[e.jsxs("div",{className:"min-w-0 space-y-2",children:[e.jsx("h2",{ref:B,tabIndex:-1,className:"text-title focus:outline-none",children:s}),e.jsx(sn,{profile:t})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(N,{variant:"primary",onClick:()=>{st.getState().stageDraft({kind:"agent",name:t.name}),K("/chat")},children:"New chat"}),q?e.jsxs(N,{variant:"secondary",onClick:d,disabled:R,children:[e.jsx(rs,{className:"size-4"}),R?"Installing…":"Install to edit"]}):e.jsx(N,{variant:"secondary",onClick:()=>{j(!0),D(null),x(null)},children:"Edit"}),e.jsx(N,{variant:"ghost",onClick:()=>g(t),children:"Duplicate as new agent"}),u?e.jsx(N,{variant:"ghost",onClick:()=>r(`Change the agent ${t.name}: `),children:"Ask for a change"}):null]})]}),q?e.jsxs(se,{variant:"info",children:[e.jsx(ne,{children:"Built-in agent"}),e.jsx(ae,{children:"This one ships with the app and cannot be edited in place. Install it to get an editable copy, or duplicate it as a new agent."})]}):null,I?e.jsxs(se,{variant:"warning","data-testid":"agent-conflict",children:[e.jsx(ne,{children:"This changed while you were editing"}),e.jsxs(ae,{children:[e.jsx("span",{className:"block",children:"Something else — a configuration run, or another window — wrote to this agent after you opened it. Your edits are kept; saving writes only the fields you changed."}),e.jsx(N,{variant:"secondary",size:"sm",className:"mt-2",onClick:V,children:"Reload the saved version"})]})]}):null,E?e.jsxs(se,{variant:"danger","data-testid":"agent-unconfirmed",children:[e.jsx(ne,{children:"The last save was not confirmed"}),e.jsx(ae,{children:"The backend did not answer, so the write may or may not have landed. Check the agent below, then edit again."})]}):null,$&&!w?e.jsxs(se,{variant:"danger",role:"alert","data-testid":"agent-save-error",children:[e.jsx(ne,{children:"That did not save"}),e.jsx(ae,{children:$})]}):null]}),e.jsx("form",{noValidate:!0,onSubmit:f=>{f.preventDefault(),ee(f)},className:"space-y-6",children:v?e.jsxs(e.Fragment,{children:[e.jsx(Se,{title:"When to use it",description:"One sentence the model reads to decide when this agent is the right one.",label:"When to use this agent",value:p.description,error:w==="description"?$:null,onChange:f=>k(A=>({...A,description:f}))}),e.jsx(Se,{title:"Instructions",description:"What the agent is told to do. This is the agent's whole behaviour.",label:"Instructions",value:p.instructions,rows:12,required:!0,error:w==="instructions"?$:null,onChange:f=>k(A=>({...A,instructions:f}))}),e.jsx(L,{title:"Tools",children:e.jsx(xt,{tools:p.tools,error:w==="tools"?$:null,onChange:f=>k(A=>({...A,tools:f}))})}),e.jsx(L,{title:"Delegation and effort",description:"Whether this agent may hand work to subagents, and which effort tier it runs at.",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-body-sm",children:[e.jsx(Ee,{checked:p.delegate,onCheckedChange:f=>k(A=>({...A,delegate:f})),"aria-label":"May delegate to subagents"}),e.jsx("span",{children:"May delegate to subagents"})]}),e.jsxs("div",{className:"max-w-sm space-y-1",children:[e.jsx(X,{label:"Effort tier",htmlFor:"agent-effort",error:w==="effort"?$:null}),e.jsx(Ne,{ariaLabel:"Effort tier",showLabel:!1,placeholder:"Choose an effort tier",busyLabel:"Loading effort tiers",options:["inherit",...l].map(f=>({id:f,name:f,description:f==="inherit"?"Use the session's own effort":void 0})),selected:{id:p.effort,name:p.effort},onSelect:f=>k(A=>({...A,effort:f.id})),helperText:"Tiers come from the backend's subagent model settings."})]})]})}),e.jsx(Oe,{submit:!0,confirming:_,onConfirmingChange:W,dirty:O,pending:R,onSave:()=>void ee(),onCancel:V,saveLabel:"Save changes",dirtyHint:"Discard your unsaved changes to this agent?"})]}):e.jsxs(e.Fragment,{children:[e.jsx(L,{title:"When to use it",children:e.jsx(ue,{text:t.description||"",empty:"No description yet — add one so a model knows when to pick this agent."})}),e.jsx(L,{title:"Instructions",children:e.jsx(ue,{text:t.instructions??t.packaged_instructions??"",empty:"No instructions yet."})}),e.jsx(L,{title:"Tools",children:t.tools&&t.tools.length>0?e.jsx("ul",{className:"flex flex-wrap gap-1.5",children:t.tools.map(f=>e.jsx("li",{children:e.jsx(M,{variant:"outline",children:f})},f))}):e.jsx(M,{variant:"neutral",children:"All tools"})}),e.jsxs(L,{title:"Delegation and effort",children:[e.jsx("p",{className:"text-body-sm text-ink",children:t.delegate?"May hand work to subagents.":"Does its own work; it does not delegate."}),e.jsxs("p",{className:"text-body-sm text-ink-muted",children:["Effort tier: ",t.effort??"inherit"]})]}),e.jsx(L,{title:"Messaging",description:"Reactive agents only reply. Proactive agents may also message you first.",children:e.jsx(an,{profile:t,displayedName:s,notice:n,onNotice:a,onChanged:h})}),e.jsx(L,{title:"Used by",description:"Teams that name this agent as a manager or a member.",children:S.length>0?e.jsx("ul",{className:"flex flex-wrap gap-x-3 gap-y-1",children:S.map(f=>e.jsx("li",{children:e.jsx(N,{variant:"link",onClick:()=>c(f.name),children:f.name})},f.id))}):e.jsx("p",{className:"text-body-sm text-ink-muted",children:"No team uses it yet."})}),e.jsxs(L,{title:"Where it came from",description:t.source==="builtin"?"Shipped with the app.":t.source==="installed"?"Installed from a packaged starter.":"Created on this machine.",children:[e.jsxs("dl",{className:"space-y-1 text-body-sm",children:[t.seed_origin?e.jsxs("div",{className:"flex gap-2",children:[e.jsx("dt",{className:"text-ink-muted",children:"Source"}),e.jsx("dd",{className:"text-ink",children:t.seed_origin})]}):null,t.divergent_fields?.length?e.jsxs("div",{className:"flex gap-2",children:[e.jsx("dt",{className:"text-ink-muted",children:"Changed from the packaged copy"}),e.jsx("dd",{className:"text-ink",children:t.divergent_fields.join(", ")})]}):null]}),t.packaged_instructions&&t.divergent_fields?.length?e.jsx(nt,{summary:"Compare with the packaged instructions",className:"mt-2",children:e.jsx(ue,{text:t.packaged_instructions,mono:!0})}):null]})]})})]})}function Se({title:t,description:s,label:n,value:a,onChange:i,rows:l,required:u,error:h,fieldRef:g}){const c=o.useId();return e.jsxs(L,{title:t,description:s,children:[e.jsx(X,{label:n,htmlFor:c,error:h}),l?e.jsx(Le,{id:c,ref:g,value:a,rows:l,required:u,"aria-invalid":!!h,className:Q("min-h-0"),onChange:r=>i(r.target.value)}):e.jsx(he,{id:c,value:a,"aria-invalid":!!h,onChange:r=>i(r.target.value)})]})}function on({initial:t,takenNames:s,effortTiers:n,onDirtyChange:a,onSaved:i,onCancel:l}){const[u,h]=o.useState(()=>t?Ts(t.name,s):""),[g,c]=o.useState(t?.kind??"role"),[r,y]=o.useState(()=>t?{...te(t),description:t.description??""}:{description:"",instructions:"",tools:null,effort:"inherit",delegate:!1}),[v,j]=o.useState(!1),[b,C]=o.useState(null),[p,k]=o.useState(null),R=o.useRef(null),T=o.useRef(null);o.useEffect(()=>(a?.(!!(u.trim()||r.instructions.trim())),()=>a?.(!1)),[a,u,r.instructions]),o.useEffect(()=>{R.current?.focus(),R.current?.select()},[]);const $=async w=>{if(w?.preventDefault(),!v){if(!u.trim()){C("Give the agent a name."),k("name"),R.current?.focus();return}if(/[\\/\s]/.test(u.trim())){C("Names cannot contain spaces or slashes."),k("name"),R.current?.focus();return}if(s.includes(u.trim())){C(`An agent called “${u.trim()}” already exists. Choose another name, or open the existing one to change it.`),k("name"),R.current?.focus();return}if(!r.instructions.trim()){C("Give the agent instructions."),k("instructions"),T.current?.focus();return}j(!0),C(null),k(null);try{const x=await G({op:"profiles.create",requestId:crypto.randomUUID(),name:u.trim(),fields:{kind:g,description:r.description,instructions:r.instructions,tools:r.tools??[],effort:r.effort,delegate:r.delegate}});me(`Created ${x.name}.`),gt(),i(x.name)}catch(x){const E=ye(x instanceof Error?x.message:"The agent could not be created.");C(E.message),k(E.field)}finally{j(!1)}}},D=t?"Duplicate as a new agent":"New agent";return e.jsxs("div",{className:"max-w-3xl space-y-6",children:[e.jsxs("header",{className:"space-y-2",children:[e.jsx("h2",{className:"text-title",children:D}),e.jsx("p",{className:"text-body-sm text-ink-muted",children:t?`A copy of ${t.name}. It is a separate agent: changing it does not change the original.`:"Reusable instructions shared by agent commands, subagents and teams. Chats stay separate."})]}),b&&!p?e.jsxs(se,{variant:"danger",role:"alert","data-testid":"agent-create-error",children:[e.jsx(ne,{children:"That did not save"}),e.jsx(ae,{children:b})]}):null,e.jsxs("form",{noValidate:!0,onSubmit:w=>{w.preventDefault(),$(w)},className:"space-y-6",children:[e.jsx(L,{title:"Name and role",children:e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(X,{label:"Name",htmlFor:"agent-create-name",error:p==="name"?b:null}),e.jsx(he,{id:"agent-create-name",ref:R,value:u,required:!0,"aria-invalid":p==="name",onChange:w=>h(w.target.value)})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(X,{label:"How it works with others",htmlFor:"agent-create-kind"}),e.jsxs(ot,{value:g,onValueChange:w=>c(w),children:[e.jsx(lt,{id:"agent-create-kind",children:e.jsx(ct,{})}),e.jsxs(dt,{children:[e.jsx(we,{value:"role",children:"You can chat with it directly"}),e.jsx(we,{value:"specialist",children:"Other agents can call on it"})]})]})]})]})}),e.jsx(Se,{title:"When to use it",description:"One sentence the model reads to decide when this agent is the right one.",label:"When to use this agent",value:r.description,error:p==="description"?b:null,onChange:w=>y(x=>({...x,description:w}))}),e.jsx(Se,{title:"Instructions",description:"What the agent is told to do. This is the agent's whole behaviour.",label:"Instructions",value:r.instructions,rows:12,required:!0,fieldRef:T,error:p==="instructions"?b:null,onChange:w=>y(x=>({...x,instructions:w}))}),e.jsx(L,{title:"Delegation and effort",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-body-sm",children:[e.jsx(Ee,{checked:r.delegate,onCheckedChange:w=>y(x=>({...x,delegate:w})),"aria-label":"May delegate to subagents"}),e.jsx("span",{children:"May delegate to subagents"})]}),e.jsxs("div",{className:"max-w-sm space-y-1",children:[e.jsx(X,{label:"Effort tier",htmlFor:"agent-create-effort"}),e.jsx(Ne,{ariaLabel:"Effort tier",showLabel:!1,busyLabel:"Loading effort tiers",placeholder:"Choose an effort tier",options:["inherit",...n].map(w=>({id:w,name:w,description:w==="inherit"?"Use the session's own effort":"A tier configured in Settings"})),selected:{id:r.effort,name:r.effort},onSelect:w=>y(x=>({...x,effort:w.id}))})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:"Tools"}),e.jsx(xt,{tools:r.tools,error:p==="tools"?b:null,onChange:w=>y(x=>({...x,tools:w}))})]})]})}),e.jsx(Oe,{submit:!0,dirty:!!(u.trim()||r.instructions),pending:v,saveLabel:t?"Create the copy":"Create agent",pendingLabel:"Creating…",dirtyHint:"Discard this new agent?",onSave:()=>void $(),onCancel:l})]})]})}const Ce=t=>t==null?"":typeof t=="string"?t:JSON.stringify(t,null,2),ln={available:"border-hairline",updating:"border-hairline",applied:"border-hairline",review:"border-warning-border",failed:"border-danger-border"};function cn(t){const s=[];for(const n of t??[])for(const a of n.fields??[])for(const i of a.regions??[])(i.provenance==="unresolved"||Ce(i.local)!==Ce(i.remote))&&s.push({field:a.field,region:i});return s}function dn({regions:t}){return t.length?e.jsx("ul",{className:"space-y-3","data-testid":"hub-update-preview",children:t.map(({field:s,region:n},a)=>e.jsxs("li",{className:"space-y-1 text-meta",children:[e.jsx("p",{className:"font-medium text-ink",children:n.heading||n.name||s}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-ink-muted",children:"Yours"}),e.jsx("pre",{className:"max-h-40 overflow-auto whitespace-pre-wrap rounded-sm border border-hairline p-2 text-ink",children:Ce(n.local)||"(nothing)"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-ink-muted",children:"The hub's"}),e.jsx("pre",{className:"max-h-40 overflow-auto whitespace-pre-wrap rounded-sm border border-hairline p-2 text-ink",children:Ce(n.remote)||"(nothing)"})]})]})]},`${s}:${n.id??a}`))}):e.jsx("p",{className:"text-meta text-ink-muted",children:"No differences to show: the hub's version matches yours."})}function un({kind:t,name:s,enabled:n}){const a=Pt(n),i=Bt(),[l,u]=o.useState(null),h=zt(t,s),g=qt(a.data).get(h),c=Wt(g),r=i.notes[h],y=i.pending.has(h);if(!g||!c)return r?e.jsx("section",{"data-testid":"hub-update-panel","aria-label":"Hub update",className:"mb-6 max-w-3xl rounded-md border border-hairline p-3 text-body-sm",children:e.jsx("p",{role:r.tone==="error"?"alert":"status",className:r.tone==="error"?"text-danger":"text-ink",children:r.message})}):null;const v=c.kind==="review",j=g.classification==="baseline-unknown",b=p=>({prefer:p,acknowledgeUnknownBaseline:j}),C=async()=>{const p=await i.applyItem(t,s,{...b(),dryRun:!0});u(p??[])};return e.jsxs("section",{"data-testid":"hub-update-panel","aria-label":"Hub update",className:Q("mb-6 max-w-3xl space-y-2 rounded-md border p-3 text-body-sm",ln[c.kind]),children:[e.jsxs("p",{className:"flex items-start gap-2 text-ink",children:[e.jsx(Ht,{mark:c,className:"mt-0.5"}),e.jsx("span",{className:Q(c.kind==="failed"&&"text-danger"),children:Kt(g,c)})]}),v&&j&&e.jsx("p",{className:"text-meta text-ink-muted",children:"Nothing records what you changed on this device. Either choice adds the hub's additions and deletes nothing of yours; where the two versions differ, your choice decides which wording stays."}),v&&!j&&e.jsx("p",{className:"text-meta text-ink-muted",children:"Where the two versions differ, your choice decides which wording stays. Everything else is merged, and your current version is saved as a backup first."}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[c.kind==="available"&&e.jsx(N,{size:"sm",variant:"outline","aria-disabled":y||void 0,onClick:()=>!y&&void i.applyItem(t,s),children:y?"Updating…":"Update from the hub"}),c.kind==="failed"&&c.retryable&&e.jsx(N,{size:"sm",variant:"outline","aria-disabled":y||void 0,onClick:()=>!y&&void i.retryItem(t,s),children:y?"Retrying…":"Retry"}),v&&e.jsxs(e.Fragment,{children:[e.jsx(N,{size:"sm",variant:"outline","aria-disabled":y||void 0,onClick:()=>!y&&void C(),children:y&&!l?"Loading…":"Preview the differences"}),e.jsx(N,{size:"sm",variant:"ghost","aria-disabled":y||void 0,onClick:()=>!y&&void i.applyItem(t,s,b("local")),children:"Keep mine where they differ"}),e.jsx(N,{size:"sm",variant:"ghost","aria-disabled":y||void 0,onClick:()=>!y&&void i.applyItem(t,s,b("remote")),children:"Use the hub's where they differ"})]})]}),l&&v&&e.jsx(dn,{regions:cn(l)}),r&&e.jsx("p",{role:r.tone==="error"?"alert":"status",className:r.tone==="error"?"text-meta text-danger":"text-meta text-ink-muted",children:r.message})]})}function be(t){return{description:t?.description??"",manager:t?.manager??"manager",members:(t?.members??[]).map(s=>({...s,key:crypto.randomUUID()})),instructions:t?.instructions??"",project:t?.project??""}}function mn(t,s){const n={};return s.description!==t.description&&(n.description=s.description),s.manager!==t.manager&&(n.manager=s.manager),JSON.stringify(s.members.map(({key:a,...i})=>i))!==JSON.stringify(t.members.map(({key:a,...i})=>i))&&(n.members=s.members.map(({key:a,...i})=>i)),s.instructions!==t.instructions&&(n.instructions=s.instructions),s.project!==t.project&&(n.project=s.project),n}function Qe(t,s,n){return(t.kind==="agent"?(s??[]).map(i=>i.name):(n??[]).map(i=>i.name)).includes(t.role)}function Xe({team:t,agents:s,teams:n,askEnabled:a,onSaved:i,onCancelCreate:l,onOpenAgent:u,onAskAgent:h,onDirtyChange:g}){const c=!t,[r,y]=o.useState(c),[v,j]=o.useState(t?.name??""),[b,C]=o.useState(()=>be(t)),[p,k]=o.useState(()=>be(t)),[R,T]=o.useState(!1),[$,D]=o.useState(null),[w,x]=o.useState(null),[E,F]=o.useState(!1),I=o.useRef(null),P=o.useRef(null),_=o.useRef(null);o.useEffect(()=>{pt()&&requestAnimationFrame(()=>I.current?.focus())},[]);const W=tt(),B=c?!!(v.trim()||p.description||p.members.length):JSON.stringify(p)!==JSON.stringify(b);o.useEffect(()=>(g?.((c||r)&&B),()=>g?.(!1)),[g,c,r,B]),o.useEffect(()=>{if(r&&B)return;const d=be(t);C(d),k(d)},[t,r,B]);const K=()=>{if(c){l?.();return}y(!1),D(null),x(null),F(!1);const d=be(t);C(d),k(d)};ft(()=>{if(E){F(!1);return}B?F(!0):K()},r);const V=async d=>{if(d?.preventDefault(),!R){if(c&&!v.trim()){D("Give the team a name."),x("name"),_.current?.focus();return}if(c&&/[\\/\s]/.test(v.trim())){D("Names cannot contain spaces or slashes."),x("name"),_.current?.focus();return}if(c&&(n??[]).some(S=>S.name===v.trim())){D(`A team called “${v.trim()}” already exists. Open it to change it, or choose another name.`),x("name"),_.current?.focus();return}if(c&&!p.instructions.trim()){D("Give the team instructions."),x("instructions"),P.current?.focus();return}T(!0),D(null),x(null);try{const S=t?await G({op:"teams.update",name:t.name,requestId:crypto.randomUUID(),fields:mn(b,p)}):await G({op:"teams.create",requestId:crypto.randomUUID(),fields:{name:v,description:p.description,manager:p.manager,members:p.members.map(({key:f,...A})=>A),instructions:p.instructions,project:p.project}}),q=be(S);C(q),k(q),y(!1),i(S.name),me(`${c?"Created":"Saved"} ${S.name}.`),c&&gt(),requestAnimationFrame(()=>I.current?.focus())}catch(S){const q=ye(S instanceof Error?S.message:"The team could not be saved.");D(q.message),x(q.field),ke(q.message)}finally{T(!1)}}},Z=(d,S)=>k(q=>({...q,members:q.members.map((f,A)=>A===d?{...f,...S}:f)})),ee=(p.members.length?p.members:t?.members??[]).reduce((d,S)=>d+(S.count||1),0);return e.jsxs("div",{className:"max-w-3xl space-y-6",children:[e.jsxs("header",{className:"space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-x-4 gap-y-3",children:[e.jsxs("div",{className:"min-w-0 space-y-2",children:[e.jsx("h2",{ref:I,tabIndex:-1,className:"text-title focus:outline-none",children:t?at(t):"New team"}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx(M,{variant:"neutral",children:ee===1?"1 agent":`${ee} agents`}),p.members.some(d=>d.kind==="team")?e.jsx(M,{variant:"neutral",children:"Includes a team"}):null]})]}),t?e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(N,{variant:"primary",onClick:()=>{st.getState().stageDraft({kind:"team",name:t.name}),W("/chat")},children:"New team chat"}),r?null:e.jsx(N,{variant:"secondary",onClick:()=>y(!0),children:"Edit"}),a?e.jsx(N,{variant:"ghost",onClick:()=>h(`Change the team ${t.name}: `),children:"Ask for a change"}):null]}):null]}),$&&!w?e.jsxs(se,{variant:"danger",role:"alert","data-testid":"team-save-error",children:[e.jsx(ne,{children:"That did not save"}),e.jsx(ae,{children:$})]}):null]}),e.jsx("form",{noValidate:!0,onSubmit:d=>{d.preventDefault(),V(d)},className:"space-y-6",children:c||r?e.jsxs(e.Fragment,{children:[c?e.jsxs(L,{title:"Name",description:"How you and your chats will refer to this team.",children:[e.jsx(X,{label:"Team name",htmlFor:"team-name",error:w==="name"?$:null}),e.jsx(he,{ref:_,id:"team-name","data-testid":"team-name-input",value:v,required:!0,maxLength:64,autoFocus:!0,"aria-invalid":w==="name",onChange:d=>j(d.target.value)})]}):null,e.jsx(L,{title:"Manager",description:"The agent that leads the chat and decides who works on what.",children:e.jsxs("div",{className:"max-w-md space-y-2",children:[e.jsx(X,{label:"Manager agent",htmlFor:"team-manager",error:w==="manager"?$:null}),e.jsx(Ne,{ariaLabel:"Manager agent",showLabel:!1,placeholder:"Choose a manager",busyLabel:"Loading agents",options:le(s,n),selected:le(s,n).find(d=>d.id===p.manager)??null,onSelect:d=>k(S=>({...S,manager:d.id})),onCustomSubmit:d=>k(S=>({...S,manager:d})),listNotice:"Agents and teams on this machine"}),le(s,n).some(d=>d.id===p.manager)?null:e.jsxs(M,{variant:"warning","data-testid":"team-manager-missing",children:["Not found: ",p.manager]})]})}),e.jsx(L,{title:"Members",description:"Who the manager can delegate to, and how many of each.",children:e.jsxs("div",{className:"space-y-2",children:[p.members.map((d,S)=>{const q=!Qe(d,s,n);return e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("div",{className:"w-56",children:e.jsx(Ne,{ariaLabel:`Member ${S+1}`,showLabel:!1,placeholder:"Choose an agent or team",busyLabel:"Loading agents",options:[...le(s,n).filter(f=>d.kind==="team"?f.group==="Teams":f.group==="Agents")],selected:le(s,n).find(f=>f.id===d.role)??null,onSelect:f=>Z(S,{role:f.id,kind:f.group==="Teams"?"team":"agent"}),onCustomSubmit:f=>Z(S,{role:f})})}),e.jsxs(ot,{value:d.kind,onValueChange:f=>Z(S,{kind:f}),children:[e.jsx(lt,{"aria-label":`Member ${S+1} kind`,className:"w-32",children:e.jsx(ct,{})}),e.jsxs(dt,{children:[e.jsx(we,{value:"agent",children:"Agent"}),e.jsx(we,{value:"team",children:"Team"})]})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(N,{variant:"secondary",size:"icon-sm","aria-label":`One fewer ${d.role}`,disabled:d.count<=1,onClick:()=>Z(S,{count:d.count-1}),children:e.jsx(es,{"aria-hidden":"true"})}),e.jsx("span",{className:"min-w-6 text-center text-body-sm tabular-nums","aria-label":`${d.count} of ${d.role}`,children:d.count}),e.jsx(N,{variant:"secondary",size:"icon-sm","aria-label":`One more ${d.role}`,disabled:d.count>=16,onClick:()=>Z(S,{count:d.count+1}),children:e.jsx(it,{"aria-hidden":"true"})})]}),e.jsx(N,{variant:"ghost",onClick:()=>k(f=>({...f,members:f.members.filter((A,H)=>H!==S)})),children:"Remove"}),q?e.jsxs(M,{variant:"warning",children:["Not found: ",d.role]}):null]},d.key)}),e.jsx(N,{variant:"secondary",onClick:()=>k(d=>({...d,members:[...d.members,{role:"",count:1,kind:"agent",key:crypto.randomUUID()}]})),children:"Add member"})]})}),e.jsxs(L,{title:"Description",children:[e.jsx(X,{label:"What this team is for",htmlFor:"team-description",error:w==="description"?$:null}),e.jsx(he,{id:"team-description",value:p.description,onChange:d=>k(S=>({...S,description:d.target.value}))})]}),e.jsxs(L,{title:"Collaboration instructions",children:[w==="instructions"?e.jsx("p",{className:"text-meta text-danger",role:"alert","data-testid":"team-instructions-error",children:$}):null,e.jsx(Le,{ref:P,"aria-label":"Collaboration instructions","aria-invalid":w==="instructions",className:"min-h-36",maxLength:8e3,value:p.instructions,onChange:d=>k(S=>({...S,instructions:d.target.value}))})]}),e.jsx(L,{title:"Project brief",children:e.jsx(Le,{"aria-label":"Project brief",className:"min-h-36",maxLength:8e3,value:p.project,onChange:d=>k(S=>({...S,project:d.target.value}))})}),e.jsx(Oe,{submit:!0,confirming:E,onConfirmingChange:F,dirty:B,pending:R,saveLabel:c?"Create team":"Save changes",pendingLabel:c?"Creating…":"Saving…",dirtyHint:"Discard this team?",onSave:()=>void V(),onCancel:K})]}):e.jsxs(e.Fragment,{children:[e.jsx(L,{title:"Manager",description:"The agent that leads the chat.",children:e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(N,{variant:"link",onClick:()=>u(p.manager),children:p.manager}),le(s,n).some(d=>d.id===p.manager)?null:e.jsx(M,{variant:"warning","data-testid":"team-manager-missing",children:"Not found"})]})}),e.jsx(L,{title:"Members",children:e.jsx("ul",{className:"space-y-1",children:(t?.members??[]).map(d=>e.jsxs("li",{className:"flex flex-wrap items-center gap-2 text-body-sm",children:[e.jsx("span",{className:"text-ink",children:d.role}),e.jsx(M,{variant:"neutral",children:d.kind==="team"?"Team":"Agent"}),e.jsx("span",{className:"text-ink-muted",children:d.count===1?"×1":`×${d.count}`}),Qe(d,s,n)?null:e.jsx(M,{variant:"warning","data-testid":"team-member-missing",children:"Not found"})]},`${d.kind}:${d.role}`))})}),e.jsx(L,{title:"What it is for",children:e.jsx(ue,{text:t?.description??"",empty:"No description yet."})}),t?.instructions?e.jsx(L,{title:"Collaboration instructions",children:e.jsx(ue,{text:t.instructions})}):null,t?.project?e.jsx(nt,{summary:"Project brief",children:e.jsx(ue,{text:t.project})}):null]})})]})}function le(t,s){return[...(t??[]).map(n=>({id:n.name,name:n.name,description:n.description,group:"Agents"})),...(s??[]).map(n=>({id:n.name,name:n.name,description:n.description,group:"Teams"}))]}const hn=o.lazy(()=>Ot(()=>import("./legacy-agents-page-Dfrz_ZCe.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]),import.meta.url).then(t=>({default:t.LegacyAgentsPage}))),Ze=/^subagents\.models\.([^.]+)$/,fn=["lo","med","hi"],De={all:"All",custom:"Custom",installed:"Installed",builtin:"Built-in"},ve=t=>{const s=JSON.stringify(t)??"";let n=5381;for(let a=0;a<s.length;a+=1)n=(n*33^s.charCodeAt(a))>>>0;return`${s.length}.${n.toString(36)}`};function Sn(){const t=It("surface"),{agentId:s}=At(),[n,a]=Tt(),i=n.get("kind")==="team"||n.get("create")==="team",l=n.has("create"),u=n.get("name"),h=n.get("duplicate"),g=et(),c=ce(g.data,i?"team_catalogue":"profile_catalogue"),r=Rt(c),y=$t(c),v=c&&!!u&&!l,j=Be(i?null:u,v),b=Dt(i?u:null,v),C=Be(i?null:h,!!h),[p,k]=o.useState(""),[R,T]=o.useState("all"),[$,D]=o.useState(null),[w,x]=o.useState(null),[E,F]=o.useState(0),I=Qs(),P=z(m=>m.marks),_=z(m=>m.clearMark),W=Lt({queryKey:["desktop","settings","effort-tiers"],enabled:c,queryFn:()=>G({op:"settings.list"}),staleTime:6e4}),B=o.useMemo(()=>(W.data?.settings??[]).filter(m=>{const U=m.key.match(Ze)?.[1];return!U||!fn.includes(U)?!1:typeof m.value=="string"&&m.value.trim().length>0}).map(m=>m.key.match(Ze)?.[1]).filter(m=>!!m),[W.data]),K=Gt(),O=o.useCallback(m=>Vt(m,K),[K]),V=o.useMemo(()=>xn(r.data,p,R,O),[r.data,p,R,O]),Z=o.useMemo(()=>bn(y.data,p),[y.data,p]),ee=i?Z:V,d=u??null,[S,q]=o.useState(null);S!==null&&S.name!==d&&q(null);const f=o.useCallback(m=>{const U=new URLSearchParams;(m.kind??(i?"team":"agent"))==="team"&&U.set("kind","team"),m.name&&U.set("name",m.name),m.create!==null&&m.create!==void 0&&U.set("create",m.create),m.duplicate&&U.set("duplicate",m.duplicate),D(null),a(U)},[i,a]),A=`${i?"team":"agent"}:${l??""}:${d??""}`,H=o.useCallback(m=>x(m?A:null),[A]),J=w!==null&&w===A,[re,fe]=o.useState(!1),ge=`${i?"team":"agent"}:${d??""}`,ie=i?b.data?ve(b.data):null:j.data?ve(j.data):null,oe=o.useRef({identity:ge,content:ie});o.useEffect(()=>{if(oe.current.identity!==ge){oe.current={identity:ge,content:ie},fe(!1);return}if(ie===null||oe.current.content===null){oe.current={identity:ge,content:ie};return}oe.current.content!==ie&&(oe.current.content=ie,J&&fe(!0))},[ge,ie,J]);const Me=(m,U)=>e.jsxs(e.Fragment,{children:[e.jsx(un,{kind:m,name:U,enabled:ce(g.data,"hub_updates")}),re&&e.jsx("output",{className:"mb-6 block max-w-3xl rounded-md border border-warning-border px-3 py-2 text-meta text-ink-muted",children:"The hub updated this definition while you were editing, and the form below now shows the merged version. Edits you had not saved were replaced."})]}),Y=o.useCallback(m=>{if(J){D(m);return}f(m)},[J,f]);o.useEffect(()=>{const m=U=>{U.key!=="Escape"||U.defaultPrevented||window.matchMedia("(max-width: 999px)").matches&&(!d&&!l||(U.preventDefault(),Y({name:null})))};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[Y,d,l]),o.useEffect(()=>{const U=z.getState().about;if(!U)return;const Ue=i?"team":"agent";d&&U.kind===Ue&&U.name===d||(I.setAbout(null),fs(U))},[d,i,I]),o.useEffect(()=>{d&&_({kind:i?"team":"agent",name:d})},[d,i,_]);const pe=()=>{r.refetch(),y.refetch(),j.refetch(),b.refetch()};if(s)return e.jsx(o.Suspense,{fallback:e.jsx("p",{className:"p-6 text-body",children:"Loading saved agent…"}),children:e.jsx(hn,{})});const Ae=i?b.error:j.error,xe=i?y.error:r.error,bt=c&&!xe&&!l&&!d,jt=i?b.isLoading:j.isLoading;return e.jsxs("div",{className:"flex h-full min-h-0 bg-canvas text-ink",children:[e.jsxs("aside",{ref:t,"data-open":d?"true":void 0,className:"flex w-72 shrink-0 flex-col gap-3 bg-surface p-4 max-[999px]:data-[open=true]:hidden",children:[e.jsx("h1",{className:"text-heading",children:"Agents and teams"}),e.jsx(ts,{value:i?"team":"agent",onValueChange:m=>Y({kind:m,name:null}),children:e.jsxs(ss,{"aria-label":"Browse definitions by type",className:"w-full",children:[e.jsxs(qe,{value:"agent",className:"flex-1","data-testid":"agents-tab",children:[e.jsx(Jt,{className:"size-3.5"}),"Agents",r.data?e.jsx("span",{className:"min-w-[2ch] font-normal text-ink-dim tabular-nums",children:r.data.length}):null]}),e.jsxs(qe,{value:"team",className:"flex-1","data-testid":"teams-tab",children:[e.jsx(Ft,{className:"size-3.5"}),"Teams",y.data?e.jsx("span",{className:"min-w-[2ch] font-normal text-ink-dim tabular-nums",children:y.data.length}):null]})]})}),e.jsxs("div",{className:"relative",children:[e.jsx(_t,{"aria-hidden":"true",className:"pointer-events-none absolute top-2 left-2 size-4 text-ink-dim"}),e.jsx(he,{className:"pl-8",type:"search","aria-label":"Search agents and teams",placeholder:i?"Search teams":"Search agents",value:p,onChange:m=>k(m.target.value)})]}),!i&&r.data?e.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1",children:[e.jsx("span",{"aria-hidden":"true",className:"text-meta text-ink-muted",children:"Showing"}),e.jsxs("fieldset",{className:"m-0 min-w-0 border-0 p-0",children:[e.jsx("legend",{className:"sr-only",children:"Show definitions owned by"}),e.jsx("div",{className:"flex flex-wrap gap-0.5 rounded-md bg-sunken p-0.5",children:Object.keys(De).map(m=>e.jsx(N,{variant:"ghost",size:"sm","aria-pressed":R===m,onClick:()=>T(m),className:Q(R===m&&rt),children:De[m]},m))})]})]}):null,e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:xe?null:!r.data&&!y.data?e.jsx(Xs,{}):ee.length===0?e.jsx("p",{className:"px-1 py-2 text-body-sm text-ink-muted",children:p?`Nothing matches “${p}”.`:i?"No teams yet. Ask for one below, or add one by hand.":R==="all"?"No agents yet. Ask for one below, or add one by hand.":`No ${De[R].toLowerCase()} agents.`}):e.jsx(pn,{rows:ee,name:l?null:d,teamMode:i,printName:O,marked:new Map(P.map(m=>[gs(m),m.created])),onOpen:m=>Y({name:m})})}),e.jsxs(N,{variant:"secondary",disabled:!c,onClick:()=>Y({create:i?"team":"agent"}),children:[e.jsx(it,{className:"size-4"}),i?"Add team manually":"Add agent manually"]})]}),e.jsxs("main",{className:"flex min-w-0 flex-1 flex-col",children:[d||l?e.jsx("div",{className:"flex shrink-0 items-center border-hairline border-b px-4 py-2 min-[1000px]:hidden",children:e.jsxs(N,{variant:"ghost",size:"sm",onClick:()=>Y({name:null}),children:[e.jsx(Yt,{className:"size-4"}),"Back to the list"]})}):null,e.jsx("div",{"data-agents-pane":!0,className:"min-h-0 flex-1 overflow-auto p-6 pb-0",style:E>0?{paddingBottom:E+16}:void 0,children:c?xe?e.jsx(Ye,{title:i?"Teams could not be read":"Agents could not be read",what:xe instanceof Error?xe.message:"The request did not complete.",meaning:"Nothing is lost. This is a read that failed — the backend answered an error, which is different from the backend being out of date.",onRetry:pe,retrying:r.isFetching||y.isFetching}):d&&jt?e.jsx(Je,{}):d&&Ae?e.jsx(Ye,{title:i?`“${d}” could not be read`:`“${d}” could not be read`,what:Ae instanceof Error?Ae.message:"The request did not complete.",meaning:"The definition may have been removed, or the backend refused the read.",onRetry:()=>{j.refetch(),b.refetch()},retrying:j.isFetching||b.isFetching}):l&&i?e.jsx(Xe,{agents:r.data,teams:y.data,askEnabled:I.enabled,onDirtyChange:H,onSaved:m=>{pe(),f({name:m})},onCancelCreate:()=>f({name:null}),onOpenAgent:m=>Y({kind:"agent",name:m}),onAskAgent:m=>{Re(I,{kind:"team",name:u??""},m)}},"team:create"):l&&h&&C.isLoading?e.jsx(Je,{}):l?e.jsx(on,{initial:C.data??null,takenNames:(r.data??[]).map(m=>m.name),effortTiers:B,onDirtyChange:H,onSaved:m=>{pe(),f({name:m})},onCancel:()=>f({name:null})},"agent:create"):i&&b.data?e.jsxs(e.Fragment,{children:[Me("team",b.data.name),e.jsx(Xe,{team:b.data,agents:r.data,teams:y.data,askEnabled:I.enabled,onDirtyChange:H,onSaved:m=>{pe(),f({name:m})},onOpenAgent:m=>Y({kind:"agent",name:m}),onAskAgent:m=>{Re(I,{kind:"team",name:b.data?.name??""},m)}},`team:${b.data.name}:${ve(b.data)}`)]}):!i&&j.data?e.jsxs(e.Fragment,{children:[Me("agent",j.data.name),e.jsx(rn,{profile:j.data,displayedName:O(j.data.name),classNotice:S?.name===j.data.name?S.copy:null,onClassNotice:m=>q(m?{name:j.data.name,copy:m}:null),teams:y.data,effortTiers:B,askEnabled:I.enabled,onDirtyChange:H,onSaved:m=>{pe(),f({name:m})},onDuplicate:m=>Y({create:"agent",duplicate:m.name}),onOpenTeam:m=>Y({kind:"team",name:m}),onAskAgent:m=>{Re(I,{kind:"agent",name:j.data?.name??""},m)}},`agent:${j.data.name}:${j.data.source}:${ve(j.data)}`)]}):d?e.jsx(de,{className:"h-6 w-40"}):e.jsx(gn,{teamMode:i,run:I,onAddManually:()=>Y({create:i?"team":"agent"})}):e.jsxs(se,{variant:g.isLoading?"neutral":"warning",className:"max-w-xl",children:[e.jsx(ne,{children:g.isLoading?"Connecting to the backend":g.error?"The backend could not be reached":"Reusable agents need a newer backend"}),e.jsx(ae,{children:g.isLoading?"Loading what this backend can do…":g.error?g.error.message:"Update the backend to manage reusable agents and teams. Saved chats are unchanged."})]})}),$?e.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-hairline border-t bg-surface px-4 py-3",role:"alertdialog","aria-label":"Discard your unsaved changes?",children:[e.jsx("span",{className:"text-body-sm text-ink",children:i?"Discard your unsaved changes to this team?":"Discard your unsaved changes to this agent?"}),e.jsx(N,{variant:"danger",onClick:()=>{x(null),f($)},children:"Discard changes"}),e.jsx(N,{variant:"ghost",onClick:()=>D(null),children:"Keep editing"})]}):null,bt?null:e.jsx("div",{className:"shrink-0 border-hairline border-t bg-canvas p-4",children:e.jsx(ut,{run:I,about:I.about,onClearAbout:()=>I.setAbout(null),onStripHeightChange:F,blockedReason:J?"Finish or cancel your edit first.":null})})]})]})}function gn({teamMode:t,run:s,onAddManually:n}){return e.jsxs("div",{className:"max-w-xl space-y-4",children:[e.jsx("h2",{className:"text-title",children:t?"Ask for a team":"Ask for an agent"}),e.jsx("p",{className:"text-body text-ink-muted",children:t?"A team has one agent that leads the chat and members it can hand work to. Describe what you want and a configuration run sets it up.":"An agent is a reusable set of instructions you can start a chat with, or let other agents call on. Describe what you want and a configuration run sets it up."}),e.jsx(ut,{run:s,hero:!0,about:s.about,onClearAbout:()=>s.setAbout(null)}),e.jsx(N,{variant:"ghost",onClick:n,children:t?"Or add a team by hand":"Or add an agent by hand"})]})}function pn({rows:t,name:s,teamMode:n,marked:a,printName:i,onOpen:l}){const u=o.useRef(new Map),[h,g]=o.useState(s),c=(r,y)=>{const v=t.findIndex(b=>b.name===r);if(v<0)return;const j=t[Math.min(t.length-1,Math.max(0,v+y))];j&&(g(j.name),u.current.get(j.name)?.focus())};return e.jsx("ul",{"aria-label":n?"Teams":"Agents",className:"space-y-1",children:t.map(r=>{const y="source"in r,v=a.get(`${n?"team":"agent"}:${r.name}`);return e.jsx("li",{children:e.jsxs("button",{ref:j=>{j?u.current.set(r.name,j):u.current.delete(r.name)},type:"button","aria-current":r.name===s?"true":void 0,tabIndex:r.name===(h??t[0]?.name)?0:-1,"data-testid":`roster-row-${r.name}`,className:Q("flex min-h-11 w-full flex-col items-start gap-0.5 rounded-md px-2 py-1.5 text-left hover:bg-row-hover",r.name===s&&rt),onFocus:()=>g(r.name),onClick:()=>l(r.name),onKeyDown:j=>{j.key==="ArrowDown"?(j.preventDefault(),c(r.name,1)):j.key==="ArrowUp"?(j.preventDefault(),c(r.name,-1)):j.key==="Home"?(j.preventDefault(),c(r.name,-t.length)):j.key==="End"&&(j.preventDefault(),c(r.name,t.length))},children:[e.jsxs("span",{className:"flex w-full items-center gap-2",children:[e.jsx("span",{className:"truncate text-body-sm text-ink",children:"members"in r?at(r):i(r.name)}),y?e.jsx(ht,{source:r.source,appearance:"text"}):null,v!==void 0?e.jsx(M,{variant:"attention","data-testid":"roster-row-updated",children:v?"New":"Updated"}):null]}),e.jsxs("span",{className:"flex w-full flex-wrap items-center gap-1.5",children:["members"in r?e.jsx(M,{variant:"neutral",children:r.members.length===1?"1 member":`${r.members.length} members`}):null,y&&Ie(r)==="proactive"?e.jsx(M,{variant:"neutral","data-testid":"roster-row-proactive",children:Rs.proactive}):null,r.description?e.jsx("span",{className:"min-w-0 flex-1 truncate text-meta text-ink-muted",children:r.description}):null]})]})},r.name)})})}function xn(t,s,n,a){const i=s.trim().toLowerCase();return(t??[]).filter(l=>n==="builtin"&&l.source!=="builtin"||n==="installed"&&l.source!=="installed"||n==="custom"&&l.source!=="custom"?!1:i?a(l.name).toLowerCase().includes(i)||l.name.toLowerCase().includes(i)||(l.description??"").toLowerCase().includes(i):!0)}function bn(t,s){const n=s.trim().toLowerCase();return(t??[]).filter(a=>!n||a.name.toLowerCase().includes(n)||(a.label??"").toLowerCase().includes(n)||(a.description??"").toLowerCase().includes(n))}export{Sn as AgentsPage};
@@ -1 +1 @@
1
- import{w as ln,p as un,c as G,s as j,e as z,h as an,f as g,t as tn,g as K,m as _,i as rn,j as o,k as sn,l as on,n as fn}from"./conversation-input-sync-CGaXAqah.js";function cn(l){return l.innerRadius}function gn(l){return l.outerRadius}function yn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,E,q,v,A,B,u){var I=E-l,i=q-h,n=B-v,m=u-A,a=m*I-n*i;if(!(a*a<g))return a=(n*(h-A)-m*(l-v))/a,[l+a*I,h+a*i]}function V(l,h,E,q,v,A,B){var u=l-E,I=h-q,i=(B?A:-A)/K(u*u+I*I),n=i*I,m=-i*u,a=l+n,s=h+m,f=E+n,c=q+m,C=(a+f)/2,t=(s+c)/2,p=f-a,y=c-s,R=p*p+y*y,T=v-A,P=a*c-f*s,O=(y<0?-1:1)*K(on(0,T*T*R-P*P)),S=(P*y-p*O)/R,k=(-P*p-y*O)/R,w=(P*y+p*O)/R,d=(-P*p+y*O)/R,x=S-C,e=k-t,r=w-C,F=d-t;return x*x+e*e>r*r+F*F&&(S=w,k=d),{cx:S,cy:k,x01:-n,y01:-m,x11:S*(v/T-1),y11:k*(v/T-1)}}function hn(){var l=cn,h=gn,E=z(0),q=null,v=yn,A=mn,B=pn,u=null,I=ln(i);function i(){var n,m,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,C=rn(c-f),t=c>f;if(u||(u=n=I()),s<a&&(m=s,s=a,a=m),!(s>g))u.moveTo(0,0);else if(C>tn-g)u.moveTo(s*G(f),s*j(f)),u.arc(0,0,s,f,c,!t),a>g&&(u.moveTo(a*G(c),a*j(c)),u.arc(0,0,a,c,f,t));else{var p=f,y=c,R=f,T=c,P=C,O=C,S=B.apply(this,arguments)/2,k=S>g&&(q?+q.apply(this,arguments):K(a*a+s*s)),w=_(rn(s-a)/2,+E.apply(this,arguments)),d=w,x=w,e,r;if(k>g){var F=sn(k/a*j(S)),L=sn(k/s*j(S));(P-=F*2)>g?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(O-=L*2)>g?(L*=t?1:-1,p+=L,y-=L):(O=0,p=y=(f+c)/2)}var H=s*G(p),J=s*j(p),M=a*G(T),N=a*j(T);if(w>g){var Q=s*G(y),U=s*j(y),W=a*G(R),X=a*j(R),D;if(C<un)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/j(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,(a-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else d=x=0}O>g?x>g?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),u.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),u.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(u.moveTo(H,J),u.arc(0,0,s,p,y,!t)):u.moveTo(H,J),!(a>g)||!(P>g)?u.lineTo(M,N):d>g?(e=V(M,N,Q,U,a,-d,t),r=V(H,J,W,X,a,-d,t),u.lineTo(e.cx+e.x01,e.cy+e.y01),d<w?u.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,a,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),u.arc(r.cx,r.cy,d,o(r.y11,r.x11),o(r.y01,r.x01),!t))):u.arc(0,0,a,T,R,t)}if(u.closePath(),n)return u=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,m=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-un/2;return[G(m)*n,j(m)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(E=typeof n=="function"?n:z(+n),i):E},i.padRadius=function(n){return arguments.length?(q=n==null?null:typeof n=="function"?n:z(+n),i):q},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(u=n??null,i):u},i}export{hn as d};
1
+ import{w as ln,p as un,c as G,s as j,e as z,h as an,f as g,t as tn,g as K,m as _,i as rn,j as o,k as sn,l as on,n as fn}from"./conversation-input-sync-zDEtF-9C.js";function cn(l){return l.innerRadius}function gn(l){return l.outerRadius}function yn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,E,q,v,A,B,u){var I=E-l,i=q-h,n=B-v,m=u-A,a=m*I-n*i;if(!(a*a<g))return a=(n*(h-A)-m*(l-v))/a,[l+a*I,h+a*i]}function V(l,h,E,q,v,A,B){var u=l-E,I=h-q,i=(B?A:-A)/K(u*u+I*I),n=i*I,m=-i*u,a=l+n,s=h+m,f=E+n,c=q+m,C=(a+f)/2,t=(s+c)/2,p=f-a,y=c-s,R=p*p+y*y,T=v-A,P=a*c-f*s,O=(y<0?-1:1)*K(on(0,T*T*R-P*P)),S=(P*y-p*O)/R,k=(-P*p-y*O)/R,w=(P*y+p*O)/R,d=(-P*p+y*O)/R,x=S-C,e=k-t,r=w-C,F=d-t;return x*x+e*e>r*r+F*F&&(S=w,k=d),{cx:S,cy:k,x01:-n,y01:-m,x11:S*(v/T-1),y11:k*(v/T-1)}}function hn(){var l=cn,h=gn,E=z(0),q=null,v=yn,A=mn,B=pn,u=null,I=ln(i);function i(){var n,m,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,C=rn(c-f),t=c>f;if(u||(u=n=I()),s<a&&(m=s,s=a,a=m),!(s>g))u.moveTo(0,0);else if(C>tn-g)u.moveTo(s*G(f),s*j(f)),u.arc(0,0,s,f,c,!t),a>g&&(u.moveTo(a*G(c),a*j(c)),u.arc(0,0,a,c,f,t));else{var p=f,y=c,R=f,T=c,P=C,O=C,S=B.apply(this,arguments)/2,k=S>g&&(q?+q.apply(this,arguments):K(a*a+s*s)),w=_(rn(s-a)/2,+E.apply(this,arguments)),d=w,x=w,e,r;if(k>g){var F=sn(k/a*j(S)),L=sn(k/s*j(S));(P-=F*2)>g?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(O-=L*2)>g?(L*=t?1:-1,p+=L,y-=L):(O=0,p=y=(f+c)/2)}var H=s*G(p),J=s*j(p),M=a*G(T),N=a*j(T);if(w>g){var Q=s*G(y),U=s*j(y),W=a*G(R),X=a*j(R),D;if(C<un)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/j(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,(a-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else d=x=0}O>g?x>g?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),u.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),u.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(u.moveTo(H,J),u.arc(0,0,s,p,y,!t)):u.moveTo(H,J),!(a>g)||!(P>g)?u.lineTo(M,N):d>g?(e=V(M,N,Q,U,a,-d,t),r=V(H,J,W,X,a,-d,t),u.lineTo(e.cx+e.x01,e.cy+e.y01),d<w?u.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,d,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,a,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),u.arc(r.cx,r.cy,d,o(r.y11,r.x11),o(r.y01,r.x01),!t))):u.arc(0,0,a,T,R,t)}if(u.closePath(),n)return u=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,m=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-un/2;return[G(m)*n,j(m)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(E=typeof n=="function"?n:z(+n),i):E},i.padRadius=function(n){return arguments.length?(q=n==null?null:typeof n=="function"?n:z(+n),i):q},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(u=n??null,i):u},i}export{hn as d};