local-operator-ui 0.31.26 → 0.31.27

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 +143 -3
  2. package/out/renderer/assets/{_basePickBy-D0wlCvva.js → _basePickBy-oM-LmypH.js} +1 -1
  3. package/out/renderer/assets/{_baseUniq-DPa_8DrG.js → _baseUniq-CfyEpPZd.js} +1 -1
  4. package/out/renderer/assets/{agent-details-page-CrARDEtK.js → agent-details-page-DIBks4X5.js} +1 -1
  5. package/out/renderer/assets/{agent-hub-page-tj8FYJ7M.js → agent-hub-page-oV4gEqC4.js} +2 -2
  6. package/out/renderer/assets/agents-page-CZrNPorc.js +7 -0
  7. package/out/renderer/assets/aida-control-CQx1CGx-.js +50 -0
  8. package/out/renderer/assets/{arc-BG4bHuQI.js → arc-DXJiD7SC.js} +1 -1
  9. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-CkYkkIY9.js → architectureDiagram-IEHRJDOE-VHM5BLyo.js} +1 -1
  10. package/out/renderer/assets/{blockDiagram-JOT3LUYC-D0DwK5Ey.js → blockDiagram-JOT3LUYC-Cn1dvDZU.js} +1 -1
  11. package/out/renderer/assets/{book-open-DeQc_I6g.js → book-open-P6KBj9Du.js} +1 -1
  12. package/out/renderer/assets/browser-page-D6eiItUp.js +1 -0
  13. package/out/renderer/assets/{browser-webauthn-prompt-CYou_6QY.js → browser-webauthn-prompt-CByfVm08.js} +1 -1
  14. package/out/renderer/assets/{c4Diagram-VJAJSXHY-CubzqfYr.js → c4Diagram-VJAJSXHY-B8F1XGHT.js} +1 -1
  15. package/out/renderer/assets/channel-DZQWNfux.js +1 -0
  16. package/out/renderer/assets/{chunk-4BMEZGHF-AysrzODh.js → chunk-4BMEZGHF-CVoXO2u6.js} +1 -1
  17. package/out/renderer/assets/{chunk-A2AXSNBT-DfDo-OSy.js → chunk-A2AXSNBT-LFo0s6P7.js} +1 -1
  18. package/out/renderer/assets/{chunk-AEK57VVT-5xgHbFtp.js → chunk-AEK57VVT-B8s36YJo.js} +1 -1
  19. package/out/renderer/assets/{chunk-D6G4REZN-pYCMpQiN.js → chunk-D6G4REZN-BKkRpyOx.js} +1 -1
  20. package/out/renderer/assets/{chunk-RZ5BOZE2-C5bWxzka.js → chunk-RZ5BOZE2-qoB87AlE.js} +1 -1
  21. package/out/renderer/assets/{chunk-XZIHB7SX-B4wB3iEG.js → chunk-XZIHB7SX-BACgoEDe.js} +1 -1
  22. package/out/renderer/assets/classDiagram-GIVACNV2-jw9F6ZK-.js +1 -0
  23. package/out/renderer/assets/classDiagram-v2-COTLJTTW-jw9F6ZK-.js +1 -0
  24. package/out/renderer/assets/clone-DzWAH3PE.js +1 -0
  25. package/out/renderer/assets/{console-mirror-45f9-7QH.js → console-mirror-fXJ5fMxl.js} +1 -1
  26. package/out/renderer/assets/{consoleCapture-GiahzrSM.js → consoleCapture-Df4uIOqu.js} +1 -1
  27. package/out/renderer/assets/{dagre-OKDRZEBW-CBRdPb8k.js → dagre-OKDRZEBW-CLMw1D7m.js} +1 -1
  28. package/out/renderer/assets/{diagram-SSKATNLV-DyGZgIL1.js → diagram-SSKATNLV-plMydQ5N.js} +1 -1
  29. package/out/renderer/assets/{diagram-VNBRO52H-Con45RzE.js → diagram-VNBRO52H-BptPse7H.js} +1 -1
  30. package/out/renderer/assets/{erDiagram-Q7BY3M3F-Cpuc-IVT.js → erDiagram-Q7BY3M3F-CGjlhqbg.js} +1 -1
  31. package/out/renderer/assets/{error-boundary-CdtTgj_c.js → error-boundary-D3Um1PIl.js} +1 -1
  32. package/out/renderer/assets/{flowDiagram-4HSFHLVR-CsO4ubSn.js → flowDiagram-4HSFHLVR-rb1I18B8.js} +1 -1
  33. package/out/renderer/assets/{ganttDiagram-APWFNJXF-LYPPAOmY.js → ganttDiagram-APWFNJXF-D-bSpERZ.js} +3 -3
  34. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-BO_dix1Z.js → gitGraphDiagram-7IBYFJ6S-DDJQIXgd.js} +1 -1
  35. package/out/renderer/assets/{graph-uBeiISg2.js → graph-BkNT14na.js} +1 -1
  36. package/out/renderer/assets/{index-Bi4c5ZZH.js → index-BXamXVGw.js} +1 -1
  37. package/out/renderer/assets/{index-COUHPq03.js → index-D3ICBbhi.js} +514 -405
  38. package/out/renderer/assets/{index-CIj3B-eB.js → index-DHcQTmYa.js} +1 -1
  39. package/out/renderer/assets/index-DuUnXH9L.css +1 -0
  40. package/out/renderer/assets/{index-Dn3kYWFt.js → index-_dbvHdgc.js} +9 -9
  41. package/out/renderer/assets/infoDiagram-PH2N3AL5-Bg2dnJEw.js +2 -0
  42. package/out/renderer/assets/{installer-zpOWwoWQ.js → installer-D-IQpqXR.js} +1 -1
  43. package/out/renderer/assets/{journeyDiagram-U35MCT3I-B6AH0Dcn.js → journeyDiagram-U35MCT3I-B5bji5kb.js} +1 -1
  44. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-C7dciPrH.js → kanban-definition-NDS4AKOZ-BGi8PMEB.js} +1 -1
  45. package/out/renderer/assets/{layout-hxpgEDIm.js → layout-D3rwe0Wt.js} +1 -1
  46. package/out/renderer/assets/{legacy-agents-page-C6kd3fjG.js → legacy-agents-page-DnpWTuf8.js} +4 -4
  47. package/out/renderer/assets/{mermaid.core-CC8CflzC.js → mermaid.core-CHiYins7.js} +5 -5
  48. package/out/renderer/assets/mesh-page-B2_ZtHTQ.js +1 -0
  49. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-BWI1IBWM.js → mindmap-definition-ALO5MXBD-BwO55Ck2.js} +1 -1
  50. package/out/renderer/assets/{mini-Dtj-bCUA.js → mini-D7VYY0xP.js} +1 -1
  51. package/out/renderer/assets/{org-surface-gate-CjPxDSXP.js → org-surface-gate-Da1VmZbG.js} +1 -1
  52. package/out/renderer/assets/{page-header-Dt6h8jvu.js → page-header-B3kbzqCp.js} +1 -1
  53. package/out/renderer/assets/{pieDiagram-IB7DONF6-DNymJR3P.js → pieDiagram-IB7DONF6-j0i7dQ2D.js} +1 -1
  54. package/out/renderer/assets/{projects-page-C3N6NYIX.js → projects-page-f-tkHojn.js} +9 -9
  55. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-bRmQaOWY.js → quadrantDiagram-7GDLP6J5-BZkLgvoE.js} +1 -1
  56. package/out/renderer/assets/{radar-MK3ICKWK-B1I3333M.js → radar-MK3ICKWK-QB0E4nFC.js} +1 -1
  57. package/out/renderer/assets/{radient-auth-buttons-CCXHTNWU.js → radient-auth-buttons-2wnsv7f6.js} +1 -1
  58. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-B29w6CHz.js → requirementDiagram-KVF5MWMF-Cb1rqfe3.js} +1 -1
  59. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-BNv_qf23.js → sankeyDiagram-QLVOVGJD-ST_5m9Zy.js} +1 -1
  60. package/out/renderer/assets/{schedules-page-CXz63fN5.js → schedules-page-DnHKOQij.js} +1 -1
  61. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-D7gyUvnw.js → sequenceDiagram-X6HHIX6F-Bh-yCDC0.js} +1 -1
  62. package/out/renderer/assets/{settings-page-CsCf63si.js → settings-page-D1dF4GZE.js} +8 -8
  63. package/out/renderer/assets/{settings-section-DMXSpP_D.js → settings-section-C9etJXA9.js} +1 -1
  64. package/out/renderer/assets/{stateDiagram-DGXRK772-Dd3BswSO.js → stateDiagram-DGXRK772-D6MGh56o.js} +1 -1
  65. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-Dvv5Bcoz.js +1 -0
  66. package/out/renderer/assets/{textarea-DsHM-W2p.js → textarea-DeXGhzIK.js} +2 -2
  67. package/out/renderer/assets/{timeline-definition-BDJGKUSR-MePOCWzB.js → timeline-definition-BDJGKUSR-pgK_gxyk.js} +1 -1
  68. package/out/renderer/assets/ui-preferences-store-BLiDaCIL.js +1 -0
  69. package/out/renderer/assets/{use-download-agent-mutation-BNAfnIa9.js → use-download-agent-mutation-CXw_g4Rv.js} +3 -3
  70. package/out/renderer/assets/{use-memberships-query-PWqngUAl.js → use-memberships-query-BGPQ6jDl.js} +1 -1
  71. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-heZP1JY-.js → xychartDiagram-VJFVF3MP-CYYxIZAM.js} +1 -1
  72. package/out/renderer/console-capture.html +5 -5
  73. package/out/renderer/index.html +8 -8
  74. package/out/renderer/installer.html +5 -5
  75. package/out/renderer/mini.html +6 -6
  76. package/package.json +3 -3
  77. package/out/renderer/assets/agents-page-CbQN_5wE.js +0 -7
  78. package/out/renderer/assets/aida-control-BuMafqCb.js +0 -50
  79. package/out/renderer/assets/browser-page-CIhGr6vl.js +0 -1
  80. package/out/renderer/assets/channel-B-eIVFbM.js +0 -1
  81. package/out/renderer/assets/classDiagram-GIVACNV2-BN6aG5Qf.js +0 -1
  82. package/out/renderer/assets/classDiagram-v2-COTLJTTW-BN6aG5Qf.js +0 -1
  83. package/out/renderer/assets/clone-C3CHGd7j.js +0 -1
  84. package/out/renderer/assets/index-D8ujEXbz.css +0 -1
  85. package/out/renderer/assets/infoDiagram-PH2N3AL5-BqRYyG2a.js +0 -2
  86. package/out/renderer/assets/mesh-page-M4Y20e0t.js +0 -2
  87. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-D9cOpOSm.js +0 -1
  88. package/out/renderer/assets/ui-preferences-store-BmAT9G_p.js +0 -1
package/out/main/index.js CHANGED
@@ -63,6 +63,7 @@ const id$1 = zod.z.string().min(1).max(128).regex(/^[a-zA-Z0-9_-]+$/);
63
63
  const settingKey = zod.z.string().min(1).max(256).regex(/^[a-zA-Z0-9_][a-zA-Z0-9_.-]*$/);
64
64
  const secret = zod.z.string().min(1).max(32768);
65
65
  const sessionId = zod.z.string().regex(/^[a-f0-9]{12}$/);
66
+ const skillCwd = zod.z.string().min(1).max(4096);
66
67
  const mcpServerName = zod.z.string().regex(/^[A-Za-z0-9_.:-]{1,100}$/);
67
68
  const mcpSecretReference = zod.z.string().regex(/^\$\{[A-Za-z_][A-Za-z0-9_]*\}$/);
68
69
  const mcpOperationId = zod.z.string().regex(/^[a-f0-9]{32}$/);
@@ -262,6 +263,7 @@ const projectKey = zod.z.string().min(1).max(64);
262
263
  const PROJECT_PROGRESS_MAX_CHARS = 1e3;
263
264
  const PROJECT_DESCRIPTION_MAX_CHARS = 240;
264
265
  const PROJECT_MILESTONE_NAME_MAX_CHARS = 80;
266
+ const hubItemKind = zod.z.enum(["agent", "team"]);
265
267
  const desktopRequestUnion = zod.z.discriminatedUnion("op", [
266
268
  zod.z.object({ op: zod.z.literal("capabilities") }).strict(),
267
269
  zod.z.object({ op: zod.z.literal("profiles.list") }).strict(),
@@ -282,6 +284,47 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
282
284
  requestId,
283
285
  fields: profileFields
284
286
  }).strict(),
287
+ /*
288
+ * THE HUB AUTO-UPDATE PLANE (backend `server/routes/desktop_hub.py`, gated by
289
+ * the `hub_updates` capability). `hub.updates` is a STORE READ on the backend
290
+ * (no network, O(items)), which is what makes it safe to poll from the
291
+ * sidebar; the five mutations are the ones that touch the hub or write a
292
+ * local definition, and each carries a `requestId` so a lost response is
293
+ * replayed by the server's receipts rather than re-run.
294
+ *
295
+ * `kind` is closed to the two definition families the hub carries, and `name`
296
+ * is the profile/team NAME because names are the runtime's attachment keys.
297
+ * `prefer` is per-item only: the backend refuses it on apply-all, since a
298
+ * conflict decision cannot be made for a set of items at once, so the
299
+ * apply-all schema does not offer it.
300
+ */
301
+ zod.z.object({ op: zod.z.literal("hub.updates") }).strict(),
302
+ zod.z.object({
303
+ op: zod.z.literal("hub.check"),
304
+ requestId,
305
+ kind: hubItemKind.optional(),
306
+ name: profileName.optional()
307
+ }).strict(),
308
+ zod.z.object({
309
+ op: zod.z.literal("hub.apply"),
310
+ requestId,
311
+ kind: hubItemKind,
312
+ name: profileName,
313
+ prefer: zod.z.enum(["local", "remote"]).optional(),
314
+ acknowledgeUnknownBaseline: zod.z.boolean().optional(),
315
+ dryRun: zod.z.boolean().optional()
316
+ }).strict(),
317
+ zod.z.object({
318
+ op: zod.z.literal("hub.applyAll"),
319
+ requestId,
320
+ kind: hubItemKind.optional()
321
+ }).strict(),
322
+ zod.z.object({
323
+ op: zod.z.literal("hub.retry"),
324
+ requestId,
325
+ kind: hubItemKind,
326
+ name: profileName
327
+ }).strict(),
285
328
  zod.z.object({ op: zod.z.literal("teams.list") }).strict(),
286
329
  zod.z.object({ op: zod.z.literal("teams.get"), name: profileName }).strict(),
287
330
  zod.z.object({
@@ -1163,7 +1206,20 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
1163
1206
  */
1164
1207
  recentLimit: zod.z.number().int().min(0).max(50).optional()
1165
1208
  }).strict(),
1166
- zod.z.object({ op: zod.z.literal("skills.list"), sessionId, name: id$1.optional() }).strict(),
1209
+ zod.z.object({
1210
+ op: zod.z.literal("skills.list"),
1211
+ /*
1212
+ * The sessionless arm's pair, both optional, `cwd` wins when both are sent
1213
+ * (the explicit folder beats the implied one; the route's docstring owns
1214
+ * the rule). `cwd` given → the folder's own discovery roots (identical to
1215
+ * the session created there); `session_id` given → the session's cwd
1216
+ * (compat, for the `/skills` panel and released clients); NEITHER → the
1217
+ * daemon's home roots, explicitly — never the daemon's process cwd.
1218
+ */
1219
+ sessionId: sessionId.optional(),
1220
+ cwd: skillCwd.optional(),
1221
+ name: id$1.optional()
1222
+ }).strict(),
1167
1223
  zod.z.object({ op: zod.z.literal("sessions.failovers"), sessionId }).strict(),
1168
1224
  zod.z.object({
1169
1225
  op: zod.z.literal("sessions.credential"),
@@ -1860,11 +1916,36 @@ function moveClientBoundMs(shape) {
1860
1916
  const waitS = Math.max(0, shape.waitS ?? 0);
1861
1917
  return (MOVE_OP_DEADLINE_S + hold + MOVE_CONTROL_SLACK_S + MOVE_CLIENT_MARGIN_S) * 1e3 + waitS * 1e3;
1862
1918
  }
1919
+ const HUB_ITEM_MERGE_S = 120;
1920
+ const HUB_ITEM_WRITE_DEADLINE_MS = (HUB_ITEM_MERGE_S + 30 + MOVE_CLIENT_MARGIN_S) * 1e3;
1921
+ const HUB_CHECK_DEADLINE_MS = 6e4;
1922
+ const HUB_APPLY_ALL_DEADLINE_MS = 5 * HUB_ITEM_WRITE_DEADLINE_MS;
1923
+ const HUB_WRITE_OPS = /* @__PURE__ */ new Set([
1924
+ "hub.apply",
1925
+ "hub.retry",
1926
+ "hub.check",
1927
+ "hub.applyAll"
1928
+ ]);
1929
+ function hubWriteDeadlineMs(op) {
1930
+ switch (op) {
1931
+ case "hub.apply":
1932
+ case "hub.retry":
1933
+ return HUB_ITEM_WRITE_DEADLINE_MS;
1934
+ case "hub.check":
1935
+ return HUB_CHECK_DEADLINE_MS;
1936
+ case "hub.applyAll":
1937
+ return HUB_APPLY_ALL_DEADLINE_MS;
1938
+ default:
1939
+ return null;
1940
+ }
1941
+ }
1863
1942
  function desktopRequestDeadlineMs(request) {
1864
1943
  if (typeof request !== "string" && request.op === "sessions.transfer") {
1865
1944
  return moveClientBoundMs(request) + MOVE_APP_MARGIN_MS;
1866
1945
  }
1867
1946
  const op = typeof request === "string" ? request : request.op;
1947
+ const hub = hubWriteDeadlineMs(op);
1948
+ if (hub !== null) return hub;
1868
1949
  return LONG_READ_OPS.has(op) ? DESKTOP_LONG_READ_DEADLINE_MS : DESKTOP_CONTROL_DEADLINE_MS;
1869
1950
  }
1870
1951
  const DESKTOP_DEADLINE_EXCEEDED_CODE = "deadline_exceeded";
@@ -1878,6 +1959,7 @@ const READ_ONLY_OPS = /* @__PURE__ */ new Set([
1878
1959
  "commands.list",
1879
1960
  "config.get",
1880
1961
  "credentials.list",
1962
+ "hub.updates",
1881
1963
  "info.get",
1882
1964
  "instructions.get",
1883
1965
  "legacy.agent.get",
@@ -1934,6 +2016,12 @@ function desktopRequestDeadlineDetail(op, deadlineMs) {
1934
2016
  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.`
1935
2017
  };
1936
2018
  }
2019
+ if (HUB_WRITE_OPS.has(op)) {
2020
+ return {
2021
+ code,
2022
+ message: "This is taking longer than expected. It may still finish; the mark will update."
2023
+ };
2024
+ }
1937
2025
  if (READ_ONLY_OPS.has(op)) {
1938
2026
  return {
1939
2027
  code,
@@ -2062,6 +2150,52 @@ function desktopEndpoint(request) {
2062
2150
  method: "PATCH",
2063
2151
  body: { request_id: request.requestId, ...request.fields }
2064
2152
  };
2153
+ case "hub.updates":
2154
+ return { path: "/v1/desktop/hub/updates", method: "GET" };
2155
+ case "hub.check":
2156
+ return {
2157
+ path: "/v1/desktop/hub/updates/check",
2158
+ method: "POST",
2159
+ body: {
2160
+ request_id: request.requestId,
2161
+ ...request.kind ? { kind: request.kind } : {},
2162
+ ...request.name ? { name: request.name } : {}
2163
+ }
2164
+ };
2165
+ case "hub.apply":
2166
+ return {
2167
+ path: "/v1/desktop/hub/updates/apply",
2168
+ method: "POST",
2169
+ body: {
2170
+ request_id: request.requestId,
2171
+ kind: request.kind,
2172
+ name: request.name,
2173
+ ...request.prefer ? { prefer: request.prefer } : {},
2174
+ ...request.acknowledgeUnknownBaseline !== void 0 ? {
2175
+ acknowledge_unknown_baseline: request.acknowledgeUnknownBaseline
2176
+ } : {},
2177
+ ...request.dryRun !== void 0 ? { dry_run: request.dryRun } : {}
2178
+ }
2179
+ };
2180
+ case "hub.applyAll":
2181
+ return {
2182
+ path: "/v1/desktop/hub/updates/apply-all",
2183
+ method: "POST",
2184
+ body: {
2185
+ request_id: request.requestId,
2186
+ ...request.kind ? { kind: request.kind } : {}
2187
+ }
2188
+ };
2189
+ case "hub.retry":
2190
+ return {
2191
+ path: "/v1/desktop/hub/updates/retry",
2192
+ method: "POST",
2193
+ body: {
2194
+ request_id: request.requestId,
2195
+ kind: request.kind,
2196
+ name: request.name
2197
+ }
2198
+ };
2065
2199
  case "teams.list":
2066
2200
  return { path: "/v1/desktop/teams", method: "GET" };
2067
2201
  case "teams.get":
@@ -2684,11 +2818,17 @@ function desktopEndpoint(request) {
2684
2818
  method: "GET"
2685
2819
  };
2686
2820
  }
2687
- case "skills.list":
2821
+ case "skills.list": {
2822
+ const query = new URLSearchParams();
2823
+ if (request.sessionId) query.set("session_id", request.sessionId);
2824
+ if (request.cwd) query.set("cwd", request.cwd);
2825
+ if (request.name) query.set("name", request.name);
2826
+ const encoded = query.toString();
2688
2827
  return {
2689
- path: `/v1/desktop/skills?session_id=${request.sessionId}${request.name ? `&name=${encodeURIComponent(request.name)}` : ""}`,
2828
+ path: `/v1/desktop/skills${encoded ? `?${encoded}` : ""}`,
2690
2829
  method: "GET"
2691
2830
  };
2831
+ }
2692
2832
  case "sessions.failovers":
2693
2833
  return {
2694
2834
  path: `/v1/desktop/sessions/${request.sessionId}/failovers`,
@@ -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-DPa_8DrG.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-CC8CflzC.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-CfyEpPZd.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-CHiYins7.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-CC8CflzC.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-CHiYins7.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 T,j as e,c as G}from"./index-Dn3kYWFt.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-PWqngUAl.js";import{B as ne,u as I,x as we}from"./aida-control-BuMafqCb.js";import{Z as b,_ as K,U as Y,$ as U,a0 as be,a1 as Ce,a2 as ie,a3 as re,a4 as Ne,a5 as Ae,a6 as ke,a7 as Se,a8 as De,a9 as J,T as Ee,aa as Te,ab as Fe}from"./index-COUHPq03.js";import{c as _e,L as Pe,a as ee,B as l,S as z,b as oe,d as L,e as M,f as v,X as qe,g as w,A as te,h as se,i as ae}from"./textarea-DsHM-W2p.js";import{f as W,u as Le,i as Me,a as ze,b as Ie,c as Ke,O as Ue,H as Be,A as Oe}from"./use-download-agent-mutation-BNAfnIa9.js";import"./ui-preferences-store-BmAT9G_p.js";import"./error-boundary-CdtTgj_c.js";import"./console-mirror-45f9-7QH.js";import"./en-US-BcB1DWxG.js";import"./book-open-DeQc_I6g.js";/**
1
+ import{r as T,j as e,c as G}from"./index-_dbvHdgc.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-BGPQ6jDl.js";import{B as ne,u as I,x as we}from"./aida-control-CQx1CGx-.js";import{Z as b,_ as K,U as Y,$ as U,a0 as be,a1 as Ce,a2 as ie,a3 as re,a4 as Ne,a5 as Ae,a6 as ke,a7 as Se,a8 as De,a9 as J,T as Ee,aa as Te,ab as Fe}from"./index-D3ICBbhi.js";import{c as _e,L as Pe,a as ee,B as l,S as z,b as oe,d as L,e as M,f as v,X as qe,g as w,A as te,h as se,i as ae}from"./textarea-DeXGhzIK.js";import{f as W,u as Le,i as Me,a as ze,b as Ie,c as Ke,O as Ue,H as Be,A as Oe}from"./use-download-agent-mutation-CXw_g4Rv.js";import"./ui-preferences-store-BLiDaCIL.js";import"./error-boundary-D3Um1PIl.js";import"./console-mirror-fXJ5fMxl.js";import"./en-US-BcB1DWxG.js";import"./book-open-P6KBj9Du.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-Dn3kYWFt.js";import{B as ms,C as hs,u as xs,f as Re,x as De,a as gs,I as fs}from"./aida-control-BuMafqCb.js";import{P as ps}from"./page-header-Dt6h8jvu.js";import{c as Be,g as Q,B as f,f as x,r as bs,A as J,h as ee,i as se,z as js,E as vs,F as Ns,G as ys,I as ws,s as _e,t as Ae,u as Pe,v as Oe,w as Ee}from"./textarea-DsHM-W2p.js";import{a3 as Ue,Z as xe,a7 as ks,a8 as ze,b1 as Ts,a$ as Cs,b2 as Ss,_ as Rs,b3 as _s,$ as As,b4 as Ps,V as Os,aR as Es,b5 as zs,b6 as Is,b7 as Ms,b8 as $s}from"./index-COUHPq03.js";import{e as Fs,f as Ls,p as Ds,P as Bs,b as Us,h as Vs}from"./use-memberships-query-PWqngUAl.js";import{O as qs,A as Hs,f as Ys,H as Qs,a as Ws,b as Gs,c as Zs,d as Ve,C as Xs,e as Ks,u as Js,i as et}from"./use-download-agent-mutation-BNAfnIa9.js";import{R as st}from"./radient-auth-buttons-CCXHTNWU.js";import{o as qe,u as tt,a as at,b as nt}from"./org-surface-gate-CjPxDSXP.js";import{f as it}from"./format-CZUObkkr.js";import"./ui-preferences-store-BmAT9G_p.js";import"./error-boundary-CdtTgj_c.js";import"./console-mirror-45f9-7QH.js";import"./en-US-BcB1DWxG.js";import"./book-open-DeQc_I6g.js";/**
1
+ import{r,j as e,c as C}from"./index-_dbvHdgc.js";import{B as ms,C as hs,u as xs,f as Re,x as De,a as gs,I as fs}from"./aida-control-CQx1CGx-.js";import{P as ps}from"./page-header-B3kbzqCp.js";import{c as Be,g as Q,B as f,f as x,r as bs,A as J,h as ee,i as se,z as js,E as vs,F as Ns,G as ys,I as ws,s as _e,t as Ae,u as Pe,v as Oe,w as Ee}from"./textarea-DeXGhzIK.js";import{a3 as Ue,Z as xe,a7 as ks,a8 as ze,bj as Ts,bh as Cs,bk as Ss,_ as Rs,bl as _s,$ as As,bm as Ps,V as Os,b0 as Es,bn as zs,bo as Is,bp as Ms,bq as Fs}from"./index-D3ICBbhi.js";import{e as $s,f as Ls,p as Ds,P as Bs,b as Us,h as Vs}from"./use-memberships-query-BGPQ6jDl.js";import{O as qs,A as Hs,f as Ys,H as Qs,a as Ws,b as Gs,c as Zs,d as Ve,C as Xs,e as Ks,u as Js,i as et}from"./use-download-agent-mutation-CXw_g4Rv.js";import{R as st}from"./radient-auth-buttons-2wnsv7f6.js";import{o as qe,u as tt,a as at,b as nt}from"./org-surface-gate-Da1VmZbG.js";import{f as it}from"./format-CZUObkkr.js";import"./ui-preferences-store-BLiDaCIL.js";import"./error-boundary-D3Um1PIl.js";import"./console-mirror-fXJ5fMxl.js";import"./en-US-BcB1DWxG.js";import"./book-open-P6KBj9Du.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -8,4 +8,4 @@ import{r,j as e,c as C}from"./index-Dn3kYWFt.js";import{B as ms,C as hs,u as xs,
8
8
  *
9
9
  * This source code is licensed under the ISC license.
10
10
  * See the LICENSE file in the root directory of this source tree.
11
- */const lt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M7 12h.01",key:"eqddd0"}]],ot=Be("circle-ellipsis",lt),ct=({agent:s,isLiked:t,isFavourited:n,onLikeToggle:i,onFavouriteToggle:l,onDownload:o,isLikeActionLoading:h=!1,isFavouriteActionLoading:j=!1,isDownloading:g=!1,actionError:u=null,onRetryAction:v,showActions:N=!0,viewerStateKnown:p=!0,orgName:b=null})=>{const y=Ue(),{isAuthenticated:m}=xe(),L=s.description??"",[D,I]=r.useState(!1),S=r.useRef(null),M=r.useCallback(d=>{if(S.current?.disconnect(),S.current=null,!d)return;const F=()=>I(d.scrollHeight-d.clientHeight>1);F();const P=new ResizeObserver(F);P.observe(d),S.current=P},[]),Y=m?p?t?"Unlike agent":"Like agent":"Your likes could not be read, so this is not shown as unliked.":"Log in to Radient to like agents",B=m?p?n?"Unfavourite agent":"Favourite agent":"Your favourites could not be read, so this is not shown as unfavourited.":"Log in to Radient to favourite agents",$=p?t?"Unlike agent":"Like agent":"Like state unavailable",A=p?n?"Unfavourite agent":"Favourite agent":"Favourite state unavailable",c=s.visibility==="org";return e.jsxs("div",{className:"flex h-full flex-col overflow-hidden rounded-md bg-surface transition-colors duration-fast ease-out-quart hover:bg-elevated",children:[e.jsxs("button",{type:"button",onClick:()=>y(`/agent-hub/${s.id}`),className:"flex min-h-0 flex-1 cursor-pointer flex-col gap-2 p-4 text-left","aria-label":`View details for ${s.name}`,children:[e.jsx("h3",{className:"truncate font-medium text-heading text-ink",children:s.name}),c&&e.jsx(qs,{orgName:b}),e.jsx(Q,{content:D?L:"",children:e.jsx("span",{ref:M,className:"line-clamp-3 min-h-0 text-body-sm text-ink-muted",children:L})}),e.jsxs("div",{className:"mt-auto flex flex-col gap-2 pt-2",children:[e.jsx(Hs,{tags:s.tags,categories:s.categories}),e.jsxs("p",{className:"truncate text-ink-dim text-meta",children:[s.account_metadata?.name??"Unknown author",e.jsx("span",{"aria-hidden":"true",className:"mx-1.5",children:"·"}),"updated ",Ys(new Date(s.updated_at))," ago"]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 border-t border-hairline px-3 py-2",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-0.5","data-viewer-state":c?"org":m?p?"known":"unknown":"signed-out",children:[!c&&e.jsxs(e.Fragment,{children:[e.jsx(Q,{content:Y,children:e.jsx("span",{children:e.jsxs(f,{variant:"ghost",size:"sm",onClick:m&&p?()=>i(s.id):void 0,disabled:h||!m||!p,"aria-label":$,className:C(t&&"text-danger"),children:[e.jsx(Qs,{fill:t?"currentColor":"none","data-testid":"agent-like-heart"}),e.jsx("span",{"data-testid":"agent-like-count",className:"inline-flex h-4 min-w-4 items-center font-mono text-mono-sm text-ink-muted",children:s.like_count??0})]})})}),e.jsx(Q,{content:B,children:e.jsx("span",{children:e.jsxs(f,{variant:"ghost",size:"sm",onClick:m?()=>l(s.id):void 0,disabled:j||!m||!p,"aria-label":A,className:C(n&&"text-warning"),children:[e.jsx(ks,{fill:n?"currentColor":"none","data-testid":"agent-favourite-star"}),e.jsx("span",{"data-testid":"agent-favourite-count",className:"inline-flex h-4 min-w-4 items-center font-mono text-mono-sm text-ink-muted",children:s.favourite_count??0})]})})})]}),e.jsx(Q,{content:"Downloads",children:e.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 pr-1 text-ink-dim",children:[e.jsx(ze,{"aria-hidden":"true",className:"size-3.5"}),e.jsx("span",{className:"inline-flex h-4 min-w-6 items-center font-mono text-mono-sm",children:g?e.jsx(x,{className:"h-3 w-6"}):(s.download_count??0).toLocaleString()})]})})]}),N&&o&&e.jsx("div",{className:"ml-auto flex shrink-0 items-center",children:e.jsxs(f,{variant:"secondary",size:"sm",onClick:()=>o(s),disabled:g,"aria-label":`Download ${s.name}`,"data-tour-tag":"agent-hub-download-button",children:[e.jsx(ze,{"data-testid":"agent-download"}),"Get"]})})]}),u&&e.jsxs("output",{"data-testid":"agent-card-error",className:"flex flex-wrap items-center gap-x-2 gap-y-1 border-t border-hairline px-3 py-2 text-body-sm text-danger",children:[e.jsx("span",{className:"min-w-0 flex-1",children:u}),v&&e.jsx(f,{variant:"ghost",size:"sm",onClick:v,children:"Try again"})]})]})},dt=({agent:s,status:t,viewerStateKnown:n=!0,orgName:i=null})=>{const{isAuthenticated:l}=xe(),[o,h]=r.useState(null),j=t?.liked??!1,g=t?.favourited??!1,u=Ws(),v=Gs(),N=Zs(),p=()=>{!l||u.isPending||(h(null),u.mutate({agentId:s.id,isCurrentlyLiked:j},{onError:()=>h("like")}))},b=()=>{!l||v.isPending||(h(null),v.mutate({agentId:s.id,isCurrentlyFavourited:g},{onError:()=>h("favourite")}))},y=()=>{N.isPending||(h(null),N.mutate({agentId:s.id,agentName:s.name},{onError:()=>h("download")}))},m=o?o==="like"?{action:"like",error:u.error,retry:p}:o==="favourite"?{action:"favourite",error:v.error,retry:b}:{action:"download",error:N.error,retry:y}:null;return e.jsx(ct,{agent:s,isLiked:l&&j,isFavourited:l&&g,onLikeToggle:p,onFavouriteToggle:b,onDownload:y,isLikeActionLoading:u.isPending,isFavouriteActionLoading:v.isPending,isDownloading:N.isPending,viewerStateKnown:n,orgName:i,actionError:m?Fs(m.action,m.error,s.name):null,onRetryAction:m?.retry})},Ie=({selected:s,onClick:t,children:n,...i})=>e.jsx("button",{type:"button",onClick:t,"aria-pressed":s,className:C("flex w-full cursor-pointer items-center gap-2.5 rounded-sm px-3 py-1.5 text-left","text-body-sm transition-colors duration-fast ease-out-quart",s?Cs:"text-ink hover:bg-row-hover"),...i,children:n}),Me=Object.keys(Xs),ut=s=>[...s].sort((t,n)=>{const i=Me.indexOf(t),l=Me.indexOf(n);return i!==-1&&l!==-1?i-l:i!==-1?-1:l!==-1?1:t.localeCompare(n)}),mt=({selectedCategory:s,onSelectCategory:t,categories:n})=>{const i=ut(s&&!n.includes(s)?[...n,s]:n);return e.jsxs("div",{className:"flex h-full flex-col overflow-y-auto",children:[e.jsx("h2",{className:"mb-2 px-3 font-medium text-ink-dim text-meta",children:"Categories"}),e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsxs(Ie,{selected:s===null,onClick:()=>t(null),"data-testid":"category-all",children:[e.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:e.jsx(Ts,{size:16,"aria-hidden":"true"})}),"All categories"]}),i.map(l=>{const o=Ve(l),h=l==="other"?e.jsx(ot,{size:16}):o.icon;return e.jsxs(Ie,{selected:s===l,onClick:()=>t(l),"data-testid":`category-${l}`,children:[e.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:h}),o.label]},l)})]})]})},ht=({page:s,count:t,onChange:n})=>{const i=r.useRef(null),l=r.useRef(null),o=r.useRef(null);return r.useEffect(()=>{const h=o.current;o.current=null,h==="previous"&&i.current?.focus(),h==="next"&&l.current?.focus()},[s]),t<=1?null:e.jsxs("nav",{"aria-label":"Agent pages",className:"mt-6 flex min-h-13 items-center justify-between gap-3 border-t border-hairline","data-testid":"agent-hub-pager",children:[e.jsxs("span",{className:"select-none text-meta text-ink-dim",children:["Page ",s," of ",t]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(f,{variant:"secondary",size:"sm",ref:i,onClick:()=>{s-1<=1&&(o.current="next"),n(s-1)},disabled:s<=1,"aria-label":"Previous page",children:[e.jsx(Ss,{"aria-hidden":"true"}),"Previous"]}),e.jsxs(f,{variant:"secondary",size:"sm",ref:l,onClick:()=>{s+1>=t&&(o.current="previous"),n(s+1)},disabled:s>=t,"aria-label":"Next page",children:["Next",e.jsx(bs,{"aria-hidden":"true"})]})]})]})},Ye={all:["org-teams"],list:s=>[...Ye.all,"list",s]},Qe=({tenantId:s,enabled:t=!0})=>{const n=ms({queryKey:Ye.list(s??""),queryFn:async()=>(await Ls(s)).result??{teams:[]},enabled:t&&!!s,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,retryOnMount:!1,retry:hs});return{...n,teams:n.data?.teams??[]}},xt=(s,t)=>{const n=s?.name?.trim()||t?.trim()||"Team",i=s?.renamed_from?.trim()||null;return s?.invalid_name===!0&&i?{level:"warning",message:`Pulled "${n}". The published name "${i}" is not usable locally, so the team was stored as "${n}".`}:i?{level:"success",message:`Pulled "${n}" (you already have a team called "${i}").`}:{level:"success",message:`Pulled team "${n}".`}},gt=()=>{const s=xs();return Rs({mutationFn:async({teamId:t,tenantId:n})=>{if(!Re.baseUrl)throw new Error("Local Operator API URL is not configured.");return Ps.pullOrgTeamFromRadient(Re.baseUrl,t,n)},onSuccess:(t,n)=>{const i=xt(t.result,n.name);i.level==="warning"?_s(i.message):As(i.message),s.invalidateQueries({queryKey:["desktop","teams"]})},onError:t=>{console.error("Pulling an organization team failed:",t)}})},ft=/^v/i,pt=s=>s.members.reduce((t,n)=>t+n.count,0),bt=s=>s.count>1?`${s.role} ×${s.count}`:s.role,jt=s=>s.members.map(bt).join(", "),vt=s=>{const t=(s.version??"").trim().replace(ft,"").trim();return t===""?null:t},Nt=s=>{const t=s.account_metadata?.name?.trim();return t||null},yt=s=>{const t=(s.description??"").trim();return t===""?null:t},he=240,wt=he/2,kt=(s,t)=>{if(t||s.length<=he)return s;const n=s.slice(0,he),i=n.lastIndexOf(" ");return`${(i>=wt?n.slice(0,i):n).trimEnd()}…`},te=s=>it(s,"d MMM yyyy"),ae=s=>{if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t},$e=(s,t,n)=>{const i=n-t.getTime();let l;return i<0?l=te(t):i<6e4?l="just now":l=`${Ks(t,new Date(n))} ago`,{label:s,when:l,iso:t.toISOString(),exact:te(t)}},Tt=(s,t=Date.now())=>{const n=ae(s.updated_at);if(n)return $e("updated",n,t);const i=ae(s.created_date);return i?$e("created",i,t):null},Ct=s=>{const t=ae(s.created_date),n=ae(s.updated_at);return{created:t?te(t):null,updated:n?te(n):null}},St=s=>s==="role"?"Role":s==="specialist"?"Specialist":s,Rt=["refresh-hub","retry","sign-in"],_t=({tenantId:s,orgName:t})=>{const{teams:n,isLoading:i,isFetching:l,isError:o,error:h,refetch:j}=Qe({tenantId:s}),g=qe(h),u=gt(),[v,N]=r.useState(null),[p,b]=r.useState(null),y=r.useRef(new Map),m=r.useRef(null);r.useEffect(()=>{u.isPending||m.current===null||(y.current.get(m.current)?.focus(),m.current=null)},[u.isPending]);const[L,D]=r.useState(!1),[I,S]=r.useState(()=>new Set),M=(c,d)=>S(F=>{const P=new Set(F);return d?P.add(c):P.delete(c),P}),Y=(c,d)=>{c.key!=="Escape"||!I.has(d)||(c.target instanceof Element?c.target:null)?.closest('[data-testid="org-team-pull-error"]')||(M(d,!1),c.currentTarget.querySelector("button[aria-expanded]")?.focus(),c.preventDefault())},B=r.useMemo(()=>{if(!Os(u.error))return null;const c=n.find(d=>d.id===v);return Ds({code:u.error.code,message:u.error.message,details:u.error.details},{name:c?.name??"this team",hubAgentId:null,surface:"pull"})},[u.error,v,n]),$=(c,d)=>{switch(c){case"refresh-hub":j();break;case"retry":A(d);break;case"sign-in":D(!0);break}},A=c=>{u.isPending||(m.current=c.id,N(null),b(c.id),u.mutate({teamId:c.id,tenantId:s,name:c.name},{onSettled:()=>b(null),onError:()=>N(c.id)}))};return e.jsxs("section",{className:"mb-6 max-w-4xl rounded-md bg-surface","aria-label":`Teams shared with ${t??"this organization"}`,"data-testid":"org-teams",children:[i&&e.jsxs("div",{"aria-hidden":"true",className:"flex flex-col divide-y divide-hairline","data-testid":"org-teams-loading",children:[e.jsx(me,{}),e.jsx(me,{}),e.jsx(me,{})]}),!i&&o&&e.jsxs(J,{variant:g?"warning":"danger",className:"m-4 w-auto","data-testid":"org-teams-error",children:[e.jsx(ee,{children:g==="plan"?"That organization needs an active Team plan":g==="no_access"?"You do not have access to that organization":"Teams could not be loaded"}),e.jsx(se,{children:g==="plan"?`Reading an organization's teams is part of the Team plan. An owner of ${t??"this organization"} can activate it in the Radient console, and then its teams will be listed here.`:g==="no_access"?`You are not a member of ${t??"that organization"}, so its teams are not listed here. An owner can invite you again.`:De("The teams shared with this organization could not be read.",h)}),g!=="no_access"&&e.jsx("div",{className:"mt-2",children:e.jsx(f,{variant:"primary",size:"sm",onClick:()=>void j(),disabled:l,"aria-busy":l,children:l?"Trying…":"Try again"})})]}),!i&&!o&&n.length===0&&e.jsx("p",{className:"p-4 text-body-sm text-ink-muted","data-testid":"org-teams-empty",children:`Teams shared into ${t??"this organization"} appear here for its members.`}),!i&&!o&&n.length>0&&e.jsx("ul",{className:"flex flex-col divide-y divide-hairline",children:n.map(c=>e.jsxs("li",{className:C(We,"transition-colors duration-fast ease-out-quart hover:bg-elevated first:rounded-t-md last:rounded-b-md"),onKeyDown:d=>Y(d,c.id),children:[e.jsx(Es,{className:"min-w-0",open:I.has(c.id),onOpenChange:d=>M(c.id,d),summaryAlign:"firstLine",triggerClassName:"min-w-0",chevronClassName:"text-ink-dim mt-1",rowClassName:"py-0",summary:e.jsx(Ot,{team:c,expanded:I.has(c.id)}),trailing:e.jsx("div",{className:"-mt-1 ml-3 shrink-0 self-start",children:e.jsx(f,{ref:d=>{d?y.current.set(c.id,d):y.current.delete(c.id)},variant:"secondary",size:"sm",onClick:()=>A(c),disabled:u.isPending,"aria-label":`Pull team ${c.name}`,children:p===c.id?"Pulling…":"Pull"})}),children:e.jsx(Et,{team:c})}),v===c.id&&e.jsxs("div",{className:"mt-1 flex flex-col items-start gap-1 pl-5","data-testid":"org-team-pull-error",children:[e.jsx("output",{className:"text-meta text-danger",children:B?.body??u.error?.message??`"${c.name}" could not be pulled.`}),B?.actions.filter(d=>Rt.includes(d)).map(d=>e.jsx(f,{variant:"primary",size:"sm",onClick:()=>$(d,c),children:Bs[d]},d)),L&&e.jsx("div",{className:"mt-1","data-testid":"org-team-pull-reauth",children:e.jsx(st,{titleText:"Sign in again",descriptionText:"",onSignInSuccess:()=>{D(!1),N(null),j()}})})]})]},c.id))})]})},We="px-4 py-3",Ge=()=>e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",className:"mx-1.5",children:"·"}),e.jsx("span",{className:"sr-only",children:", "})]}),At=({team:s})=>{const t=s.manager?.trim(),n=pt(s);return e.jsxs("span",{className:"block truncate text-meta",children:[t?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-ink-dim",children:"Manager:"})," ",e.jsx("span",{className:"text-ink-muted",children:t})]}):null,t?e.jsx(Ge,{}):null,s.members.length===0?e.jsx("span",{className:"text-ink-dim",children:"No members"}):e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-ink-dim",children:[n," ",n===1?"member":"members",":"]})," ",e.jsx("span",{className:"text-ink-muted",children:jt(s)})]})]})},Pt=({team:s})=>{const t=s.project?.trim(),n=Nt(s),i=Tt(s),l=[];return t&&l.push({key:"project",node:t}),n&&l.push({key:"author",node:n}),i&&l.push({key:"recency",node:e.jsxs(e.Fragment,{children:[i.label," ",e.jsx(Q,{content:i.exact,children:e.jsx("time",{dateTime:i.iso,children:i.when})})]})}),l.length===0?null:e.jsx("span",{className:"block truncate text-ink-dim text-meta",children:l.map((o,h)=>e.jsxs("span",{children:[h>0?e.jsx(Ge,{}):null,o.node]},o.key))})},Ot=({team:s,expanded:t})=>{const n=yt(s),i=vt(s);return e.jsxs("span",{className:"flex min-w-0 flex-col",children:[e.jsxs("span",{className:"flex min-w-0 items-baseline",children:[e.jsx("span",{className:"truncate font-medium text-body text-ink",children:s.name}),i?e.jsxs("span",{className:"ml-2 shrink-0 text-ink-dim text-meta",children:["v",i]}):null]}),n?e.jsxs(e.Fragment,{children:[e.jsx("span",{...zs,"aria-hidden":"true",className:C("mt-1 select-text break-words text-body-sm text-ink-muted",t?"line-clamp-[12] whitespace-pre-line":"line-clamp-2"),children:n}),e.jsx("span",{className:"sr-only",children:kt(n,t)})]}):e.jsx("span",{className:"mt-1 text-body-sm text-ink-dim",children:"No description"}),e.jsxs("span",{className:"mt-1 flex min-w-0 flex-col",children:[e.jsx(At,{team:s}),e.jsx(Pt,{team:s})]})]})},Et=({team:s})=>{const t=s.manager?.trim(),n=Ct(s),i=[n.created?`Created ${n.created}`:null,n.updated?`Updated ${n.updated}`:null].filter(o=>o!==null),l=!!t||s.members.length>0;return e.jsxs("div",{className:"mt-1 flex flex-col gap-2",children:[l||i.length===0?e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("p",{className:"text-ink-dim text-meta",children:"Members"}),e.jsxs("ul",{className:"flex flex-col gap-0.5",children:[t?e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:t}),e.jsx("span",{className:"text-ink-dim text-meta",children:"Manager"})]}):null,s.members.map(o=>e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:o.role}),e.jsx("span",{className:"text-ink-dim text-meta",children:St(o.kind)}),o.count>1?e.jsxs("span",{className:"text-ink-dim text-meta tabular-nums",children:["×",o.count]}):null]},`${o.kind}:${o.role}`)),l?null:e.jsx("li",{className:"text-ink-dim text-meta",children:"No members"})]})]}):null,i.length>0?e.jsx("p",{className:"text-ink-dim text-meta",children:i.join(" · ")}):null]})},me=()=>e.jsxs("div",{className:C(We,"pl-9"),"data-testid":"org-team-skeleton-row",children:[e.jsx("div",{className:"flex h-[1lh] items-center text-body",children:e.jsx(x,{className:"h-4.5 w-40"})}),e.jsxs("div",{className:"mt-1 flex h-[2lh] flex-col justify-evenly text-body-sm",children:[e.jsx(x,{className:"h-3.5 w-full"}),e.jsx(x,{className:"h-3.5 w-2/3"})]}),e.jsx("div",{className:"mt-1 flex h-[1lh] items-center text-meta",children:e.jsx(x,{className:"h-3 w-64"})}),e.jsx("div",{className:"flex h-[1lh] items-center text-meta",children:e.jsx(x,{className:"h-3 w-48"})})]}),zt={loading:"The public hub lists agents only. Checking your organizations…",orgs:"The public hub lists agents only. Choose an organization to see the teams it has shared with its members.","signed-out":"The public hub lists agents only. Sign in to Radient to see the teams shared with the organizations you belong to.",unavailable:"The public hub lists agents only, and this backend does not serve organizations, so there are no teams to list here.",unreadable:"The public hub lists agents only, and your organizations could not be read, so no teams can be listed.",none:"The public hub lists agents only. You are not in an organization on the Team plan yet, and an organization owner can add you or activate the plan in the Radient console."},It=({reason:s,orgs:t,onPickOrg:n,onOpenSettings:i,onRetry:l,retrying:o})=>{const h=r.useRef(null),j=r.useRef(null),g=r.useRef(!1);return r.useEffect(()=>{g.current&&(g.current=!1,(j.current??h.current)?.focus())}),e.jsxs("section",{ref:h,tabIndex:-1,className:"flex max-w-2xl flex-col items-start gap-2 rounded-md bg-surface px-6 py-8","aria-labelledby":"agent-hub-teams-public-heading","data-testid":"agent-hub-teams-public",children:[e.jsx("h2",{id:"agent-hub-teams-public-heading",className:"font-medium text-heading text-ink",children:"Teams are shared inside organizations"}),e.jsx("output",{className:"block max-w-md text-body-sm text-ink-muted",children:zt[s]}),s==="orgs"&&e.jsx("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:t.map(u=>e.jsxs(f,{variant:"secondary",onClick:()=>n(u.tenant_id),children:[e.jsx(He,{"aria-hidden":"true"}),e.jsx("span",{className:"max-w-48 truncate",children:u.tenant_name||"Organization"})]},u.tenant_id))}),s==="signed-out"&&e.jsx("div",{className:"mt-2",children:e.jsx(f,{variant:"secondary",onClick:i,children:"Open settings to sign in"})}),s==="unreadable"&&e.jsx("div",{className:"mt-2",children:e.jsx(f,{ref:j,variant:"secondary",onClick:()=>{g.current=!0,l()},disabled:o,"aria-busy":o,children:o?"Trying…":"Try again"})})]})},Mt=(s,t)=>{const[n,i]=r.useState(s);return r.useEffect(()=>{const l=setTimeout(()=>i(s),t);return()=>clearTimeout(l)},[s,t]),n},K=[{value:"download_count:desc",label:"Most downloaded",sort:"download_count",order:"desc"},{value:"like_count:desc",label:"Most liked",sort:"like_count",order:"desc"},{value:"favourite_count:desc",label:"Most favourited",sort:"favourite_count",order:"desc"},{value:"created_at:desc",label:"Newest",sort:"created_at",order:"desc"},{value:"updated_at:desc",label:"Recently updated",sort:"updated_at",order:"desc"},{value:"name:asc",label:"Name (A to Z)",sort:"name",order:"asc"}],$t=[{value:"name",label:"Name"},{value:"description",label:"Description"}],Ft=300,H="public",Fe={agents:"agent-hub-view-agents",teams:"agent-hub-view-teams"},Le="agent-hub-view-panel",Lt=()=>e.jsxs("div",{className:"flex h-full flex-col overflow-hidden rounded-md bg-surface",children:[e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-2 p-4",children:[e.jsx(x,{className:"h-5.5 w-2/3"}),e.jsx(x,{className:"h-3.5 w-full"}),e.jsx(x,{className:"h-3.5 w-full"}),e.jsx(x,{className:"h-3.5 w-1/2"}),e.jsxs("div",{className:"mt-auto flex flex-col gap-2 pt-2",children:[e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(x,{className:"h-5.5 w-24"}),e.jsx(x,{className:"h-5.5 w-20"})]}),e.jsx("div",{className:"flex items-center gap-1.5",children:e.jsx(x,{className:"h-5.5 w-24"})})]}),e.jsx(x,{className:"h-4.5 w-32"})]})]}),e.jsxs("div",{className:"flex items-center gap-2 border-t border-hairline px-3 py-2",children:[e.jsx(x,{className:"size-4"}),e.jsx(x,{className:"h-4 w-6"}),e.jsx(x,{className:"size-4"}),e.jsx(x,{className:"h-4 w-6"}),e.jsx(x,{className:"ml-auto h-7 w-16"})]})]}),sa=()=>{const s=Ue(),{isAuthenticated:t}=xe(),[n,i]=r.useState(1),[l]=r.useState(12),[o,h]=r.useState(null),[j,g]=r.useState(""),[u,v]=r.useState("name"),[N,p]=r.useState(K[0].value),[b,y]=r.useState(H),[m,L]=r.useState("agents"),[D,I]=r.useState([]),S=Mt(j,Ft),M=K.find(a=>a.value===N)??K[0],Y=gs(),B=Is(),$=fs(Y.data,"radient_org"),A=t?at($,B):null,{memberships:c,isError:d,isPending:F,isFetching:P,refetch:Ze}=Us({enabled:nt($)}),U=r.useMemo(()=>tt(c),[c]),ge=b===H||U.some(a=>a.tenant_id===b);r.useEffect(()=>{ge||y(H)},[ge]);const w=b===H?null:U.find(a=>a.tenant_id===b)??null,T=w?.tenant_id,fe=w?.tenant_name||null,V=o!==null||S!=="",ne=Qe({tenantId:T}),W=T&&ne.isSuccess&&!V?ne.teams.length:null,Xe=w?.role==="owner"||w?.role==="admin",Ke=r.useMemo(()=>new Map(c.map(a=>[a.tenant_id,a.tenant_name])),[c]),{data:G,agents:Je,isLoading:es,isFetching:R,error:O,refetch:pe,pagination:_}=Vs({page:n,perPage:l,categories:o?[o]:void 0,name:u==="name"&&S||void 0,description:u==="description"&&S||void 0,sort:M.sort,order:M.order,tenantId:T}),q=w?qe(O):null,Z=Je??[],be=R&&G!==void 0,{statuses:je,isKnown:ss,isError:ts,isFetching:ie,refetch:as}=Js({agentIds:T?[]:Z.map(a=>a.id)}),re=r.useRef(null),le=r.useRef(null),[ve,ns]=r.useState(0);r.useEffect(()=>{ve!==0&&(re.current??le.current)?.focus()},[ve]);const Ne=r.useRef(null),oe=r.useRef(!1),ce=r.useMemo(()=>[...new Set((G?.records??[]).flatMap(a=>a.categories??[]))],[G]);r.useEffect(()=>{I(a=>ce.every(z=>a.includes(z))?a:[...new Set([...a,...ce])])},[ce]);const is=()=>{h(null),g(""),i(1),ns(a=>a+1)},k=(es||R)&&G===void 0,ye=!k&&!V&&(O!==null||Z.length===0);r.useEffect(()=>{!oe.current||k||(oe.current=!1,O?Ne.current?.focus():(re.current??le.current)?.focus())},[k,O]);const we=r.useRef(null),rs=a=>{i(a),we.current?.scrollIntoView({block:"nearest"})},ls=a=>{h(a),i(1)},os=a=>{g(a),i(1)},ke=a=>{y(a),i(1)},de=r.useRef(new Map),X=r.useRef(null);r.useEffect(()=>{X.current!==null&&(de.current.get(X.current)?.focus(),X.current=null)},[b]);const cs=a=>{v(a),i(1)},Te=_&&!V?_.totalRecords:null,ds=U.length>0?"orgs":t?A?"unavailable":d?"unreadable":$==="unknown"||F?"loading":"none":"signed-out",ue=T?`shared with ${fe??"this organization"}`:"in the public hub",Ce=(a,z)=>`${a} ${z}${a===1?"":"s"} ${ue}`;let E;return m==="teams"?T?ne.isLoading?E="Loading teams…":W!==null?E=Ce(W,"team"):E=`Teams ${ue}`:E=" ":k?E="Loading agents…":_?E=Ce(_.totalRecords,"agent"):E=`Agents ${ue}`,e.jsxs("div",{className:"flex h-full flex-col gap-8 p-6",children:[e.jsx(ps,{title:"Agent hub",subtitle:"Discover and download community agents on Radient",icon:Ms}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4",children:[A&&e.jsxs(J,{variant:"warning",className:"max-w-2xl","data-testid":"agent-hub-org-unavailable",children:[e.jsx(ee,{children:"Organizations are unavailable"}),e.jsx(se,{children:A})]}),e.jsxs("div",{className:"flex shrink-0 flex-wrap items-center gap-x-4 gap-y-2","data-testid":"agent-hub-browse-bar",children:[e.jsx(js,{value:m,onValueChange:a=>L(a),children:e.jsx(vs,{"aria-label":"Browse the hub by type",children:["agents","teams"].map(a=>e.jsxs(Ns,{value:a,id:Fe[a],"aria-controls":m===a?Le:void 0,"data-testid":`agent-hub-view-${a}`,children:[a==="agents"?"Agents":"Teams",(a==="agents"?Te:W)!==null&&e.jsx("span",{className:"min-w-[2ch] font-normal text-ink-dim tabular-nums",children:a==="agents"?Te:W})]},a))})}),U.length>0&&e.jsxs("div",{className:"ml-auto flex min-w-0 items-center gap-2",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","data-testid":"agent-hub-scope",children:[e.jsx("legend",{className:"sr-only",children:"Show the hub of"}),e.jsx("div",{className:"flex flex-wrap gap-0.5 rounded-md bg-sunken p-0.5",children:[{value:H,label:"Public hub",Icon:$s},...U.map(a=>({value:a.tenant_id,label:a.tenant_name||"Organization",Icon:He}))].map(({value:a,label:z,Icon:us})=>e.jsxs(f,{ref:Se=>{Se?de.current.set(a,Se):de.current.delete(a)},variant:"ghost",size:"sm","aria-pressed":b===a,onClick:()=>ke(a),title:z,"data-testid":`agent-hub-scope-${a===H?"public":`org-${a}`}`,className:C("max-w-48",b===a&&"bg-surface text-ink hover:bg-surface"),children:[e.jsx(us,{"aria-hidden":"true"}),e.jsx("span",{className:"truncate",children:z})]},a))})]})]})]}),e.jsx(ys,{id:Le,labelledBy:Fe[m],children:e.jsxs("div",{className:"flex min-h-0 flex-1 flex-row overflow-hidden",children:[m==="agents"&&e.jsx(e.Fragment,{children:e.jsx("div",{className:"mr-6 hidden w-60 shrink-0 rounded-md bg-surface p-2 md:block","data-tour-tag":"agent-hub-sidebar-container",children:!ye&&e.jsx(mt,{selectedCategory:o,onSelectCategory:ls,categories:D})})}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col overflow-y-auto",children:[m==="agents"&&!ye&&e.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:C("flex min-w-56 flex-1 items-center rounded-sm border border-control bg-surface","transition-colors duration-fast ease-out-quart","has-[:focus-visible]:outline-solid has-[:focus-visible]:outline-2","has-[:focus-visible]:outline-accent has-[:focus-visible]:outline-offset-2"),children:[e.jsx(ws,{ref:re,type:"search",value:j,onChange:a=>os(a.target.value),placeholder:"Search agents","aria-label":"Search agents",className:"h-8 min-w-0 flex-1 border-0 bg-transparent outline-none","data-testid":"agent-hub-search"}),e.jsxs(_e,{value:u,onValueChange:cs,children:[e.jsx(Ae,{className:"w-auto shrink-0 border-y-0 border-l border-hairline border-r-0 bg-transparent pl-2 outline-none","aria-label":"Search in","data-testid":"agent-hub-search-scope",children:e.jsx(Pe,{})}),e.jsx(Oe,{children:$t.map(a=>e.jsx(Ee,{value:a.value,children:a.label},a.value))})]})]}),e.jsxs(_e,{value:N,onValueChange:p,children:[e.jsx(Ae,{className:"w-48","aria-label":"Sort agents","data-testid":"agent-hub-sort",children:e.jsx(Pe,{})}),e.jsx(Oe,{children:K.map(a=>e.jsx(Ee,{value:a.value,children:a.label},a.value))})]})]}),e.jsxs("p",{ref:we,"aria-live":"polite",className:"mb-3 text-meta text-ink-dim","data-testid":"agent-hub-status",children:[E,m==="agents"&&be?e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{"data-testid":"agent-hub-updating",children:"Updating…"})]}):null]}),m==="agents"&&e.jsxs(e.Fragment,{children:[t&&ts&&e.jsxs("output",{className:"mb-3 flex flex-wrap items-center gap-2 text-meta text-warning","data-testid":"agent-hub-status-unknown",children:[e.jsx("span",{children:"Your likes and favourites could not be read, so no card shows a viewer state."}),e.jsx(f,{variant:"ghost",size:"sm",onClick:()=>void as(),disabled:ie,"aria-busy":ie,children:ie?"Trying…":"Try again"})]}),k&&e.jsx("div",{"data-testid":"agent-hub-loading",className:"grid grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6",children:Array.from({length:6},(a,z)=>e.jsx(Lt,{},z))}),k&&_===void 0&&e.jsx("div",{"aria-hidden":"true",className:"mt-6 flex min-h-13 items-center justify-center","data-testid":"agent-hub-pager-placeholder",children:e.jsx(x,{className:"h-4 w-24"})}),e.jsx("output",{"aria-live":"polite","data-testid":"agent-hub-outage",className:C(!k&&O&&!q?"block":"sr-only"),children:!k&&O&&!q&&e.jsxs(J,{variant:"danger",className:"max-w-2xl","aria-busy":R,"data-testid":"agent-hub-error",children:[e.jsx(ee,{children:t?"The hub could not be loaded":"Sign in to use the hub"}),e.jsx(se,{children:t?De("The agent list could not be loaded.",O):"You are not signed in to Radient, so the hub has no credential to read the agent list with. Sign in on the settings page, then try again."}),e.jsx("div",{className:"mt-2",children:e.jsx(f,{ref:Ne,variant:"outline",size:"sm",onClick:()=>{oe.current=!0,pe()},disabled:R,"aria-busy":R,children:R?"Trying…":"Try again"})})]})}),!k&&q&&w&&e.jsxs(J,{variant:"warning",className:"max-w-2xl","data-testid":"agent-hub-org-no-access",children:[e.jsx(ee,{children:q==="plan"?"That organization needs an active Team plan":"You do not have access to that organization"}),e.jsx(se,{children:q==="plan"?`Sharing agents inside an organization is part of the Team plan. An owner of ${w.tenant_name||"this organization"} can activate it in the Radient console, and then its agents will be listed here.`:`You are not a member of ${w.tenant_name||"that organization"}, so its agents are not listed here. An owner can invite you again.`}),q==="plan"&&e.jsx("div",{className:"mt-2",children:e.jsx(f,{variant:"primary",size:"sm",onClick:()=>void pe(),disabled:R,"aria-busy":R,children:R?"Trying…":"Try again"})})]}),!k&&!O&&e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6","aria-busy":be,children:Z.length===0?e.jsxs("div",{"data-testid":"agent-hub-empty",className:C("col-span-full w-full flex flex-col items-center gap-2 rounded-md bg-surface px-6 py-10 text-center",!T&&"max-w-2xl justify-self-center"),children:[e.jsx("p",{className:"text-heading text-ink",children:T?"This organization has no shared agents yet.":o?`No agents in ${Ve(o).label}.`:V?"No agents match that search.":"The hub is empty."}),e.jsx("p",{className:"max-w-md text-body-sm text-ink-muted",children:T?`Agents published into ${w?.tenant_name||"this organization"} appear here for its members.`:o?"Nothing in this category yet. Clear the filter to see the whole hub.":V?"No agent's name or description carries that. Clear it to see the whole hub.":"Nobody has published an agent yet. Yours could be the first."}),e.jsx("div",{className:"mt-2 flex flex-wrap items-center justify-center gap-2",children:V?e.jsx(f,{variant:"secondary",onClick:is,children:o?"Clear filter":"Clear search"}):T&&!Xe?null:e.jsx(f,{ref:le,variant:"secondary",onClick:()=>s("/agents"),children:"Publish an agent"})})]}):Z.map(a=>e.jsx(dt,{agent:a,status:t?je[a.id]:void 0,viewerStateKnown:t&&et(ss,je,a.id),orgName:a.visibility==="org"?Ke.get(a.tenant_id)??null:null},a.id))}),!k&&_&&_.totalPages>1&&e.jsx(ht,{count:_.totalPages,page:_.page,onChange:rs})]}),m==="teams"&&(w?e.jsx(_t,{tenantId:w.tenant_id,orgName:fe}):e.jsx(It,{reason:ds,orgs:U,onPickOrg:a=>{X.current=a,ke(a)},onOpenSettings:()=>s("/settings"),onRetry:()=>void Ze(),retrying:P}))]})]})})]})]})};export{sa as AgentHubPage};
11
+ */const lt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M7 12h.01",key:"eqddd0"}]],ot=Be("circle-ellipsis",lt),ct=({agent:s,isLiked:t,isFavourited:n,onLikeToggle:i,onFavouriteToggle:l,onDownload:o,isLikeActionLoading:h=!1,isFavouriteActionLoading:j=!1,isDownloading:g=!1,actionError:u=null,onRetryAction:v,showActions:N=!0,viewerStateKnown:p=!0,orgName:b=null})=>{const y=Ue(),{isAuthenticated:m}=xe(),L=s.description??"",[D,I]=r.useState(!1),S=r.useRef(null),M=r.useCallback(d=>{if(S.current?.disconnect(),S.current=null,!d)return;const $=()=>I(d.scrollHeight-d.clientHeight>1);$();const P=new ResizeObserver($);P.observe(d),S.current=P},[]),Y=m?p?t?"Unlike agent":"Like agent":"Your likes could not be read, so this is not shown as unliked.":"Log in to Radient to like agents",B=m?p?n?"Unfavourite agent":"Favourite agent":"Your favourites could not be read, so this is not shown as unfavourited.":"Log in to Radient to favourite agents",F=p?t?"Unlike agent":"Like agent":"Like state unavailable",A=p?n?"Unfavourite agent":"Favourite agent":"Favourite state unavailable",c=s.visibility==="org";return e.jsxs("div",{className:"flex h-full flex-col overflow-hidden rounded-md bg-surface transition-colors duration-fast ease-out-quart hover:bg-elevated",children:[e.jsxs("button",{type:"button",onClick:()=>y(`/agent-hub/${s.id}`),className:"flex min-h-0 flex-1 cursor-pointer flex-col gap-2 p-4 text-left","aria-label":`View details for ${s.name}`,children:[e.jsx("h3",{className:"truncate font-medium text-heading text-ink",children:s.name}),c&&e.jsx(qs,{orgName:b}),e.jsx(Q,{content:D?L:"",children:e.jsx("span",{ref:M,className:"line-clamp-3 min-h-0 text-body-sm text-ink-muted",children:L})}),e.jsxs("div",{className:"mt-auto flex flex-col gap-2 pt-2",children:[e.jsx(Hs,{tags:s.tags,categories:s.categories}),e.jsxs("p",{className:"truncate text-ink-dim text-meta",children:[s.account_metadata?.name??"Unknown author",e.jsx("span",{"aria-hidden":"true",className:"mx-1.5",children:"·"}),"updated ",Ys(new Date(s.updated_at))," ago"]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 border-t border-hairline px-3 py-2",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-0.5","data-viewer-state":c?"org":m?p?"known":"unknown":"signed-out",children:[!c&&e.jsxs(e.Fragment,{children:[e.jsx(Q,{content:Y,children:e.jsx("span",{children:e.jsxs(f,{variant:"ghost",size:"sm",onClick:m&&p?()=>i(s.id):void 0,disabled:h||!m||!p,"aria-label":F,className:C(t&&"text-danger"),children:[e.jsx(Qs,{fill:t?"currentColor":"none","data-testid":"agent-like-heart"}),e.jsx("span",{"data-testid":"agent-like-count",className:"inline-flex h-4 min-w-4 items-center font-mono text-mono-sm text-ink-muted",children:s.like_count??0})]})})}),e.jsx(Q,{content:B,children:e.jsx("span",{children:e.jsxs(f,{variant:"ghost",size:"sm",onClick:m?()=>l(s.id):void 0,disabled:j||!m||!p,"aria-label":A,className:C(n&&"text-warning"),children:[e.jsx(ks,{fill:n?"currentColor":"none","data-testid":"agent-favourite-star"}),e.jsx("span",{"data-testid":"agent-favourite-count",className:"inline-flex h-4 min-w-4 items-center font-mono text-mono-sm text-ink-muted",children:s.favourite_count??0})]})})})]}),e.jsx(Q,{content:"Downloads",children:e.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 pr-1 text-ink-dim",children:[e.jsx(ze,{"aria-hidden":"true",className:"size-3.5"}),e.jsx("span",{className:"inline-flex h-4 min-w-6 items-center font-mono text-mono-sm",children:g?e.jsx(x,{className:"h-3 w-6"}):(s.download_count??0).toLocaleString()})]})})]}),N&&o&&e.jsx("div",{className:"ml-auto flex shrink-0 items-center",children:e.jsxs(f,{variant:"secondary",size:"sm",onClick:()=>o(s),disabled:g,"aria-label":`Download ${s.name}`,"data-tour-tag":"agent-hub-download-button",children:[e.jsx(ze,{"data-testid":"agent-download"}),"Get"]})})]}),u&&e.jsxs("output",{"data-testid":"agent-card-error",className:"flex flex-wrap items-center gap-x-2 gap-y-1 border-t border-hairline px-3 py-2 text-body-sm text-danger",children:[e.jsx("span",{className:"min-w-0 flex-1",children:u}),v&&e.jsx(f,{variant:"ghost",size:"sm",onClick:v,children:"Try again"})]})]})},dt=({agent:s,status:t,viewerStateKnown:n=!0,orgName:i=null})=>{const{isAuthenticated:l}=xe(),[o,h]=r.useState(null),j=t?.liked??!1,g=t?.favourited??!1,u=Ws(),v=Gs(),N=Zs(),p=()=>{!l||u.isPending||(h(null),u.mutate({agentId:s.id,isCurrentlyLiked:j},{onError:()=>h("like")}))},b=()=>{!l||v.isPending||(h(null),v.mutate({agentId:s.id,isCurrentlyFavourited:g},{onError:()=>h("favourite")}))},y=()=>{N.isPending||(h(null),N.mutate({agentId:s.id,agentName:s.name},{onError:()=>h("download")}))},m=o?o==="like"?{action:"like",error:u.error,retry:p}:o==="favourite"?{action:"favourite",error:v.error,retry:b}:{action:"download",error:N.error,retry:y}:null;return e.jsx(ct,{agent:s,isLiked:l&&j,isFavourited:l&&g,onLikeToggle:p,onFavouriteToggle:b,onDownload:y,isLikeActionLoading:u.isPending,isFavouriteActionLoading:v.isPending,isDownloading:N.isPending,viewerStateKnown:n,orgName:i,actionError:m?$s(m.action,m.error,s.name):null,onRetryAction:m?.retry})},Ie=({selected:s,onClick:t,children:n,...i})=>e.jsx("button",{type:"button",onClick:t,"aria-pressed":s,className:C("flex w-full cursor-pointer items-center gap-2.5 rounded-sm px-3 py-1.5 text-left","text-body-sm transition-colors duration-fast ease-out-quart",s?Cs:"text-ink hover:bg-row-hover"),...i,children:n}),Me=Object.keys(Xs),ut=s=>[...s].sort((t,n)=>{const i=Me.indexOf(t),l=Me.indexOf(n);return i!==-1&&l!==-1?i-l:i!==-1?-1:l!==-1?1:t.localeCompare(n)}),mt=({selectedCategory:s,onSelectCategory:t,categories:n})=>{const i=ut(s&&!n.includes(s)?[...n,s]:n);return e.jsxs("div",{className:"flex h-full flex-col overflow-y-auto",children:[e.jsx("h2",{className:"mb-2 px-3 font-medium text-ink-dim text-meta",children:"Categories"}),e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsxs(Ie,{selected:s===null,onClick:()=>t(null),"data-testid":"category-all",children:[e.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:e.jsx(Ts,{size:16,"aria-hidden":"true"})}),"All categories"]}),i.map(l=>{const o=Ve(l),h=l==="other"?e.jsx(ot,{size:16}):o.icon;return e.jsxs(Ie,{selected:s===l,onClick:()=>t(l),"data-testid":`category-${l}`,children:[e.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:h}),o.label]},l)})]})]})},ht=({page:s,count:t,onChange:n})=>{const i=r.useRef(null),l=r.useRef(null),o=r.useRef(null);return r.useEffect(()=>{const h=o.current;o.current=null,h==="previous"&&i.current?.focus(),h==="next"&&l.current?.focus()},[s]),t<=1?null:e.jsxs("nav",{"aria-label":"Agent pages",className:"mt-6 flex min-h-13 items-center justify-between gap-3 border-t border-hairline","data-testid":"agent-hub-pager",children:[e.jsxs("span",{className:"select-none text-meta text-ink-dim",children:["Page ",s," of ",t]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(f,{variant:"secondary",size:"sm",ref:i,onClick:()=>{s-1<=1&&(o.current="next"),n(s-1)},disabled:s<=1,"aria-label":"Previous page",children:[e.jsx(Ss,{"aria-hidden":"true"}),"Previous"]}),e.jsxs(f,{variant:"secondary",size:"sm",ref:l,onClick:()=>{s+1>=t&&(o.current="previous"),n(s+1)},disabled:s>=t,"aria-label":"Next page",children:["Next",e.jsx(bs,{"aria-hidden":"true"})]})]})]})},Ye={all:["org-teams"],list:s=>[...Ye.all,"list",s]},Qe=({tenantId:s,enabled:t=!0})=>{const n=ms({queryKey:Ye.list(s??""),queryFn:async()=>(await Ls(s)).result??{teams:[]},enabled:t&&!!s,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,retryOnMount:!1,retry:hs});return{...n,teams:n.data?.teams??[]}},xt=(s,t)=>{const n=s?.name?.trim()||t?.trim()||"Team",i=s?.renamed_from?.trim()||null;return s?.invalid_name===!0&&i?{level:"warning",message:`Pulled "${n}". The published name "${i}" is not usable locally, so the team was stored as "${n}".`}:i?{level:"success",message:`Pulled "${n}" (you already have a team called "${i}").`}:{level:"success",message:`Pulled team "${n}".`}},gt=()=>{const s=xs();return Rs({mutationFn:async({teamId:t,tenantId:n})=>{if(!Re.baseUrl)throw new Error("Local Operator API URL is not configured.");return Ps.pullOrgTeamFromRadient(Re.baseUrl,t,n)},onSuccess:(t,n)=>{const i=xt(t.result,n.name);i.level==="warning"?_s(i.message):As(i.message),s.invalidateQueries({queryKey:["desktop","teams"]})},onError:t=>{console.error("Pulling an organization team failed:",t)}})},ft=/^v/i,pt=s=>s.members.reduce((t,n)=>t+n.count,0),bt=s=>s.count>1?`${s.role} ×${s.count}`:s.role,jt=s=>s.members.map(bt).join(", "),vt=s=>{const t=(s.version??"").trim().replace(ft,"").trim();return t===""?null:t},Nt=s=>{const t=s.account_metadata?.name?.trim();return t||null},yt=s=>{const t=(s.description??"").trim();return t===""?null:t},he=240,wt=he/2,kt=(s,t)=>{if(t||s.length<=he)return s;const n=s.slice(0,he),i=n.lastIndexOf(" ");return`${(i>=wt?n.slice(0,i):n).trimEnd()}…`},te=s=>it(s,"d MMM yyyy"),ae=s=>{if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t},Fe=(s,t,n)=>{const i=n-t.getTime();let l;return i<0?l=te(t):i<6e4?l="just now":l=`${Ks(t,new Date(n))} ago`,{label:s,when:l,iso:t.toISOString(),exact:te(t)}},Tt=(s,t=Date.now())=>{const n=ae(s.updated_at);if(n)return Fe("updated",n,t);const i=ae(s.created_date);return i?Fe("created",i,t):null},Ct=s=>{const t=ae(s.created_date),n=ae(s.updated_at);return{created:t?te(t):null,updated:n?te(n):null}},St=s=>s==="role"?"Role":s==="specialist"?"Specialist":s,Rt=["refresh-hub","retry","sign-in"],_t=({tenantId:s,orgName:t})=>{const{teams:n,isLoading:i,isFetching:l,isError:o,error:h,refetch:j}=Qe({tenantId:s}),g=qe(h),u=gt(),[v,N]=r.useState(null),[p,b]=r.useState(null),y=r.useRef(new Map),m=r.useRef(null);r.useEffect(()=>{u.isPending||m.current===null||(y.current.get(m.current)?.focus(),m.current=null)},[u.isPending]);const[L,D]=r.useState(!1),[I,S]=r.useState(()=>new Set),M=(c,d)=>S($=>{const P=new Set($);return d?P.add(c):P.delete(c),P}),Y=(c,d)=>{c.key!=="Escape"||!I.has(d)||(c.target instanceof Element?c.target:null)?.closest('[data-testid="org-team-pull-error"]')||(M(d,!1),c.currentTarget.querySelector("button[aria-expanded]")?.focus(),c.preventDefault())},B=r.useMemo(()=>{if(!Os(u.error))return null;const c=n.find(d=>d.id===v);return Ds({code:u.error.code,message:u.error.message,details:u.error.details},{name:c?.name??"this team",hubAgentId:null,surface:"pull"})},[u.error,v,n]),F=(c,d)=>{switch(c){case"refresh-hub":j();break;case"retry":A(d);break;case"sign-in":D(!0);break}},A=c=>{u.isPending||(m.current=c.id,N(null),b(c.id),u.mutate({teamId:c.id,tenantId:s,name:c.name},{onSettled:()=>b(null),onError:()=>N(c.id)}))};return e.jsxs("section",{className:"mb-6 max-w-4xl rounded-md bg-surface","aria-label":`Teams shared with ${t??"this organization"}`,"data-testid":"org-teams",children:[i&&e.jsxs("div",{"aria-hidden":"true",className:"flex flex-col divide-y divide-hairline","data-testid":"org-teams-loading",children:[e.jsx(me,{}),e.jsx(me,{}),e.jsx(me,{})]}),!i&&o&&e.jsxs(J,{variant:g?"warning":"danger",className:"m-4 w-auto","data-testid":"org-teams-error",children:[e.jsx(ee,{children:g==="plan"?"That organization needs an active Team plan":g==="no_access"?"You do not have access to that organization":"Teams could not be loaded"}),e.jsx(se,{children:g==="plan"?`Reading an organization's teams is part of the Team plan. An owner of ${t??"this organization"} can activate it in the Radient console, and then its teams will be listed here.`:g==="no_access"?`You are not a member of ${t??"that organization"}, so its teams are not listed here. An owner can invite you again.`:De("The teams shared with this organization could not be read.",h)}),g!=="no_access"&&e.jsx("div",{className:"mt-2",children:e.jsx(f,{variant:"primary",size:"sm",onClick:()=>void j(),disabled:l,"aria-busy":l,children:l?"Trying…":"Try again"})})]}),!i&&!o&&n.length===0&&e.jsx("p",{className:"p-4 text-body-sm text-ink-muted","data-testid":"org-teams-empty",children:`Teams shared into ${t??"this organization"} appear here for its members.`}),!i&&!o&&n.length>0&&e.jsx("ul",{className:"flex flex-col divide-y divide-hairline",children:n.map(c=>e.jsxs("li",{className:C(We,"transition-colors duration-fast ease-out-quart hover:bg-elevated first:rounded-t-md last:rounded-b-md"),onKeyDown:d=>Y(d,c.id),children:[e.jsx(Es,{className:"min-w-0",open:I.has(c.id),onOpenChange:d=>M(c.id,d),summaryAlign:"firstLine",triggerClassName:"min-w-0",chevronClassName:"text-ink-dim mt-1",rowClassName:"py-0",summary:e.jsx(Ot,{team:c,expanded:I.has(c.id)}),trailing:e.jsx("div",{className:"-mt-1 ml-3 shrink-0 self-start",children:e.jsx(f,{ref:d=>{d?y.current.set(c.id,d):y.current.delete(c.id)},variant:"secondary",size:"sm",onClick:()=>A(c),disabled:u.isPending,"aria-label":`Pull team ${c.name}`,children:p===c.id?"Pulling…":"Pull"})}),children:e.jsx(Et,{team:c})}),v===c.id&&e.jsxs("div",{className:"mt-1 flex flex-col items-start gap-1 pl-5","data-testid":"org-team-pull-error",children:[e.jsx("output",{className:"text-meta text-danger",children:B?.body??u.error?.message??`"${c.name}" could not be pulled.`}),B?.actions.filter(d=>Rt.includes(d)).map(d=>e.jsx(f,{variant:"primary",size:"sm",onClick:()=>F(d,c),children:Bs[d]},d)),L&&e.jsx("div",{className:"mt-1","data-testid":"org-team-pull-reauth",children:e.jsx(st,{titleText:"Sign in again",descriptionText:"",onSignInSuccess:()=>{D(!1),N(null),j()}})})]})]},c.id))})]})},We="px-4 py-3",Ge=()=>e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",className:"mx-1.5",children:"·"}),e.jsx("span",{className:"sr-only",children:", "})]}),At=({team:s})=>{const t=s.manager?.trim(),n=pt(s);return e.jsxs("span",{className:"block truncate text-meta",children:[t?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-ink-dim",children:"Manager:"})," ",e.jsx("span",{className:"text-ink-muted",children:t})]}):null,t?e.jsx(Ge,{}):null,s.members.length===0?e.jsx("span",{className:"text-ink-dim",children:"No members"}):e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-ink-dim",children:[n," ",n===1?"member":"members",":"]})," ",e.jsx("span",{className:"text-ink-muted",children:jt(s)})]})]})},Pt=({team:s})=>{const t=s.project?.trim(),n=Nt(s),i=Tt(s),l=[];return t&&l.push({key:"project",node:t}),n&&l.push({key:"author",node:n}),i&&l.push({key:"recency",node:e.jsxs(e.Fragment,{children:[i.label," ",e.jsx(Q,{content:i.exact,children:e.jsx("time",{dateTime:i.iso,children:i.when})})]})}),l.length===0?null:e.jsx("span",{className:"block truncate text-ink-dim text-meta",children:l.map((o,h)=>e.jsxs("span",{children:[h>0?e.jsx(Ge,{}):null,o.node]},o.key))})},Ot=({team:s,expanded:t})=>{const n=yt(s),i=vt(s);return e.jsxs("span",{className:"flex min-w-0 flex-col",children:[e.jsxs("span",{className:"flex min-w-0 items-baseline",children:[e.jsx("span",{className:"truncate font-medium text-body text-ink",children:s.name}),i?e.jsxs("span",{className:"ml-2 shrink-0 text-ink-dim text-meta",children:["v",i]}):null]}),n?e.jsxs(e.Fragment,{children:[e.jsx("span",{...zs,"aria-hidden":"true",className:C("mt-1 select-text break-words text-body-sm text-ink-muted",t?"line-clamp-[12] whitespace-pre-line":"line-clamp-2"),children:n}),e.jsx("span",{className:"sr-only",children:kt(n,t)})]}):e.jsx("span",{className:"mt-1 text-body-sm text-ink-dim",children:"No description"}),e.jsxs("span",{className:"mt-1 flex min-w-0 flex-col",children:[e.jsx(At,{team:s}),e.jsx(Pt,{team:s})]})]})},Et=({team:s})=>{const t=s.manager?.trim(),n=Ct(s),i=[n.created?`Created ${n.created}`:null,n.updated?`Updated ${n.updated}`:null].filter(o=>o!==null),l=!!t||s.members.length>0;return e.jsxs("div",{className:"mt-1 flex flex-col gap-2",children:[l||i.length===0?e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("p",{className:"text-ink-dim text-meta",children:"Members"}),e.jsxs("ul",{className:"flex flex-col gap-0.5",children:[t?e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:t}),e.jsx("span",{className:"text-ink-dim text-meta",children:"Manager"})]}):null,s.members.map(o=>e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:o.role}),e.jsx("span",{className:"text-ink-dim text-meta",children:St(o.kind)}),o.count>1?e.jsxs("span",{className:"text-ink-dim text-meta tabular-nums",children:["×",o.count]}):null]},`${o.kind}:${o.role}`)),l?null:e.jsx("li",{className:"text-ink-dim text-meta",children:"No members"})]})]}):null,i.length>0?e.jsx("p",{className:"text-ink-dim text-meta",children:i.join(" · ")}):null]})},me=()=>e.jsxs("div",{className:C(We,"pl-9"),"data-testid":"org-team-skeleton-row",children:[e.jsx("div",{className:"flex h-[1lh] items-center text-body",children:e.jsx(x,{className:"h-4.5 w-40"})}),e.jsxs("div",{className:"mt-1 flex h-[2lh] flex-col justify-evenly text-body-sm",children:[e.jsx(x,{className:"h-3.5 w-full"}),e.jsx(x,{className:"h-3.5 w-2/3"})]}),e.jsx("div",{className:"mt-1 flex h-[1lh] items-center text-meta",children:e.jsx(x,{className:"h-3 w-64"})}),e.jsx("div",{className:"flex h-[1lh] items-center text-meta",children:e.jsx(x,{className:"h-3 w-48"})})]}),zt={loading:"The public hub lists agents only. Checking your organizations…",orgs:"The public hub lists agents only. Choose an organization to see the teams it has shared with its members.","signed-out":"The public hub lists agents only. Sign in to Radient to see the teams shared with the organizations you belong to.",unavailable:"The public hub lists agents only, and this backend does not serve organizations, so there are no teams to list here.",unreadable:"The public hub lists agents only, and your organizations could not be read, so no teams can be listed.",none:"The public hub lists agents only. You are not in an organization on the Team plan yet, and an organization owner can add you or activate the plan in the Radient console."},It=({reason:s,orgs:t,onPickOrg:n,onOpenSettings:i,onRetry:l,retrying:o})=>{const h=r.useRef(null),j=r.useRef(null),g=r.useRef(!1);return r.useEffect(()=>{g.current&&(g.current=!1,(j.current??h.current)?.focus())}),e.jsxs("section",{ref:h,tabIndex:-1,className:"flex max-w-2xl flex-col items-start gap-2 rounded-md bg-surface px-6 py-8","aria-labelledby":"agent-hub-teams-public-heading","data-testid":"agent-hub-teams-public",children:[e.jsx("h2",{id:"agent-hub-teams-public-heading",className:"font-medium text-heading text-ink",children:"Teams are shared inside organizations"}),e.jsx("output",{className:"block max-w-md text-body-sm text-ink-muted",children:zt[s]}),s==="orgs"&&e.jsx("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:t.map(u=>e.jsxs(f,{variant:"secondary",onClick:()=>n(u.tenant_id),children:[e.jsx(He,{"aria-hidden":"true"}),e.jsx("span",{className:"max-w-48 truncate",children:u.tenant_name||"Organization"})]},u.tenant_id))}),s==="signed-out"&&e.jsx("div",{className:"mt-2",children:e.jsx(f,{variant:"secondary",onClick:i,children:"Open settings to sign in"})}),s==="unreadable"&&e.jsx("div",{className:"mt-2",children:e.jsx(f,{ref:j,variant:"secondary",onClick:()=>{g.current=!0,l()},disabled:o,"aria-busy":o,children:o?"Trying…":"Try again"})})]})},Mt=(s,t)=>{const[n,i]=r.useState(s);return r.useEffect(()=>{const l=setTimeout(()=>i(s),t);return()=>clearTimeout(l)},[s,t]),n},K=[{value:"download_count:desc",label:"Most downloaded",sort:"download_count",order:"desc"},{value:"like_count:desc",label:"Most liked",sort:"like_count",order:"desc"},{value:"favourite_count:desc",label:"Most favourited",sort:"favourite_count",order:"desc"},{value:"created_at:desc",label:"Newest",sort:"created_at",order:"desc"},{value:"updated_at:desc",label:"Recently updated",sort:"updated_at",order:"desc"},{value:"name:asc",label:"Name (A to Z)",sort:"name",order:"asc"}],Ft=[{value:"name",label:"Name"},{value:"description",label:"Description"}],$t=300,H="public",$e={agents:"agent-hub-view-agents",teams:"agent-hub-view-teams"},Le="agent-hub-view-panel",Lt=()=>e.jsxs("div",{className:"flex h-full flex-col overflow-hidden rounded-md bg-surface",children:[e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-2 p-4",children:[e.jsx(x,{className:"h-5.5 w-2/3"}),e.jsx(x,{className:"h-3.5 w-full"}),e.jsx(x,{className:"h-3.5 w-full"}),e.jsx(x,{className:"h-3.5 w-1/2"}),e.jsxs("div",{className:"mt-auto flex flex-col gap-2 pt-2",children:[e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(x,{className:"h-5.5 w-24"}),e.jsx(x,{className:"h-5.5 w-20"})]}),e.jsx("div",{className:"flex items-center gap-1.5",children:e.jsx(x,{className:"h-5.5 w-24"})})]}),e.jsx(x,{className:"h-4.5 w-32"})]})]}),e.jsxs("div",{className:"flex items-center gap-2 border-t border-hairline px-3 py-2",children:[e.jsx(x,{className:"size-4"}),e.jsx(x,{className:"h-4 w-6"}),e.jsx(x,{className:"size-4"}),e.jsx(x,{className:"h-4 w-6"}),e.jsx(x,{className:"ml-auto h-7 w-16"})]})]}),sa=()=>{const s=Ue(),{isAuthenticated:t}=xe(),[n,i]=r.useState(1),[l]=r.useState(12),[o,h]=r.useState(null),[j,g]=r.useState(""),[u,v]=r.useState("name"),[N,p]=r.useState(K[0].value),[b,y]=r.useState(H),[m,L]=r.useState("agents"),[D,I]=r.useState([]),S=Mt(j,$t),M=K.find(a=>a.value===N)??K[0],Y=gs(),B=Is(),F=fs(Y.data,"radient_org"),A=t?at(F,B??null):null,{memberships:c,isError:d,isPending:$,isFetching:P,refetch:Ze}=Us({enabled:nt(F)}),U=r.useMemo(()=>tt(c),[c]),ge=b===H||U.some(a=>a.tenant_id===b);r.useEffect(()=>{ge||y(H)},[ge]);const w=b===H?null:U.find(a=>a.tenant_id===b)??null,T=w?.tenant_id,fe=w?.tenant_name||null,V=o!==null||S!=="",ne=Qe({tenantId:T}),W=T&&ne.isSuccess&&!V?ne.teams.length:null,Xe=w?.role==="owner"||w?.role==="admin",Ke=r.useMemo(()=>new Map(c.map(a=>[a.tenant_id,a.tenant_name])),[c]),{data:G,agents:Je,isLoading:es,isFetching:R,error:O,refetch:pe,pagination:_}=Vs({page:n,perPage:l,categories:o?[o]:void 0,name:u==="name"&&S||void 0,description:u==="description"&&S||void 0,sort:M.sort,order:M.order,tenantId:T}),q=w?qe(O):null,Z=Je??[],be=R&&G!==void 0,{statuses:je,isKnown:ss,isError:ts,isFetching:ie,refetch:as}=Js({agentIds:T?[]:Z.map(a=>a.id)}),re=r.useRef(null),le=r.useRef(null),[ve,ns]=r.useState(0);r.useEffect(()=>{ve!==0&&(re.current??le.current)?.focus()},[ve]);const Ne=r.useRef(null),oe=r.useRef(!1),ce=r.useMemo(()=>[...new Set((G?.records??[]).flatMap(a=>a.categories??[]))],[G]);r.useEffect(()=>{I(a=>ce.every(z=>a.includes(z))?a:[...new Set([...a,...ce])])},[ce]);const is=()=>{h(null),g(""),i(1),ns(a=>a+1)},k=(es||R)&&G===void 0,ye=!k&&!V&&(O!==null||Z.length===0);r.useEffect(()=>{!oe.current||k||(oe.current=!1,O?Ne.current?.focus():(re.current??le.current)?.focus())},[k,O]);const we=r.useRef(null),rs=a=>{i(a),we.current?.scrollIntoView({block:"nearest"})},ls=a=>{h(a),i(1)},os=a=>{g(a),i(1)},ke=a=>{y(a),i(1)},de=r.useRef(new Map),X=r.useRef(null);r.useEffect(()=>{X.current!==null&&(de.current.get(X.current)?.focus(),X.current=null)},[b]);const cs=a=>{v(a),i(1)},Te=_&&!V?_.totalRecords:null,ds=U.length>0?"orgs":t?A?"unavailable":d?"unreadable":F==="unknown"||$?"loading":"none":"signed-out",ue=T?`shared with ${fe??"this organization"}`:"in the public hub",Ce=(a,z)=>`${a} ${z}${a===1?"":"s"} ${ue}`;let E;return m==="teams"?T?ne.isLoading?E="Loading teams…":W!==null?E=Ce(W,"team"):E=`Teams ${ue}`:E=" ":k?E="Loading agents…":_?E=Ce(_.totalRecords,"agent"):E=`Agents ${ue}`,e.jsxs("div",{className:"flex h-full flex-col gap-8 p-6",children:[e.jsx(ps,{title:"Agent hub",subtitle:"Discover and download community agents on Radient",icon:Ms}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4",children:[A&&e.jsxs(J,{variant:"warning",className:"max-w-2xl","data-testid":"agent-hub-org-unavailable",children:[e.jsx(ee,{children:"Organizations are unavailable"}),e.jsx(se,{children:A})]}),e.jsxs("div",{className:"flex shrink-0 flex-wrap items-center gap-x-4 gap-y-2","data-testid":"agent-hub-browse-bar",children:[e.jsx(js,{value:m,onValueChange:a=>L(a),children:e.jsx(vs,{"aria-label":"Browse the hub by type",children:["agents","teams"].map(a=>e.jsxs(Ns,{value:a,id:$e[a],"aria-controls":m===a?Le:void 0,"data-testid":`agent-hub-view-${a}`,children:[a==="agents"?"Agents":"Teams",(a==="agents"?Te:W)!==null&&e.jsx("span",{className:"min-w-[2ch] font-normal text-ink-dim tabular-nums",children:a==="agents"?Te:W})]},a))})}),U.length>0&&e.jsxs("div",{className:"ml-auto flex min-w-0 items-center gap-2",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","data-testid":"agent-hub-scope",children:[e.jsx("legend",{className:"sr-only",children:"Show the hub of"}),e.jsx("div",{className:"flex flex-wrap gap-0.5 rounded-md bg-sunken p-0.5",children:[{value:H,label:"Public hub",Icon:Fs},...U.map(a=>({value:a.tenant_id,label:a.tenant_name||"Organization",Icon:He}))].map(({value:a,label:z,Icon:us})=>e.jsxs(f,{ref:Se=>{Se?de.current.set(a,Se):de.current.delete(a)},variant:"ghost",size:"sm","aria-pressed":b===a,onClick:()=>ke(a),title:z,"data-testid":`agent-hub-scope-${a===H?"public":`org-${a}`}`,className:C("max-w-48",b===a&&"bg-surface text-ink hover:bg-surface"),children:[e.jsx(us,{"aria-hidden":"true"}),e.jsx("span",{className:"truncate",children:z})]},a))})]})]})]}),e.jsx(ys,{id:Le,labelledBy:$e[m],children:e.jsxs("div",{className:"flex min-h-0 flex-1 flex-row overflow-hidden",children:[m==="agents"&&e.jsx(e.Fragment,{children:e.jsx("div",{className:"mr-6 hidden w-60 shrink-0 rounded-md bg-surface p-2 md:block","data-tour-tag":"agent-hub-sidebar-container",children:!ye&&e.jsx(mt,{selectedCategory:o,onSelectCategory:ls,categories:D})})}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col overflow-y-auto",children:[m==="agents"&&!ye&&e.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:C("flex min-w-56 flex-1 items-center rounded-sm border border-control bg-surface","transition-colors duration-fast ease-out-quart","has-[:focus-visible]:outline-solid has-[:focus-visible]:outline-2","has-[:focus-visible]:outline-accent has-[:focus-visible]:outline-offset-2"),children:[e.jsx(ws,{ref:re,type:"search",value:j,onChange:a=>os(a.target.value),placeholder:"Search agents","aria-label":"Search agents",className:"h-8 min-w-0 flex-1 border-0 bg-transparent outline-none","data-testid":"agent-hub-search"}),e.jsxs(_e,{value:u,onValueChange:cs,children:[e.jsx(Ae,{className:"w-auto shrink-0 border-y-0 border-l border-hairline border-r-0 bg-transparent pl-2 outline-none","aria-label":"Search in","data-testid":"agent-hub-search-scope",children:e.jsx(Pe,{})}),e.jsx(Oe,{children:Ft.map(a=>e.jsx(Ee,{value:a.value,children:a.label},a.value))})]})]}),e.jsxs(_e,{value:N,onValueChange:p,children:[e.jsx(Ae,{className:"w-48","aria-label":"Sort agents","data-testid":"agent-hub-sort",children:e.jsx(Pe,{})}),e.jsx(Oe,{children:K.map(a=>e.jsx(Ee,{value:a.value,children:a.label},a.value))})]})]}),e.jsxs("p",{ref:we,"aria-live":"polite",className:"mb-3 text-meta text-ink-dim","data-testid":"agent-hub-status",children:[E,m==="agents"&&be?e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{"data-testid":"agent-hub-updating",children:"Updating…"})]}):null]}),m==="agents"&&e.jsxs(e.Fragment,{children:[t&&ts&&e.jsxs("output",{className:"mb-3 flex flex-wrap items-center gap-2 text-meta text-warning","data-testid":"agent-hub-status-unknown",children:[e.jsx("span",{children:"Your likes and favourites could not be read, so no card shows a viewer state."}),e.jsx(f,{variant:"ghost",size:"sm",onClick:()=>void as(),disabled:ie,"aria-busy":ie,children:ie?"Trying…":"Try again"})]}),k&&e.jsx("div",{"data-testid":"agent-hub-loading",className:"grid grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6",children:Array.from({length:6},(a,z)=>e.jsx(Lt,{},z))}),k&&_===void 0&&e.jsx("div",{"aria-hidden":"true",className:"mt-6 flex min-h-13 items-center justify-center","data-testid":"agent-hub-pager-placeholder",children:e.jsx(x,{className:"h-4 w-24"})}),e.jsx("output",{"aria-live":"polite","data-testid":"agent-hub-outage",className:C(!k&&O&&!q?"block":"sr-only"),children:!k&&O&&!q&&e.jsxs(J,{variant:"danger",className:"max-w-2xl","aria-busy":R,"data-testid":"agent-hub-error",children:[e.jsx(ee,{children:t?"The hub could not be loaded":"Sign in to use the hub"}),e.jsx(se,{children:t?De("The agent list could not be loaded.",O):"You are not signed in to Radient, so the hub has no credential to read the agent list with. Sign in on the settings page, then try again."}),e.jsx("div",{className:"mt-2",children:e.jsx(f,{ref:Ne,variant:"outline",size:"sm",onClick:()=>{oe.current=!0,pe()},disabled:R,"aria-busy":R,children:R?"Trying…":"Try again"})})]})}),!k&&q&&w&&e.jsxs(J,{variant:"warning",className:"max-w-2xl","data-testid":"agent-hub-org-no-access",children:[e.jsx(ee,{children:q==="plan"?"That organization needs an active Team plan":"You do not have access to that organization"}),e.jsx(se,{children:q==="plan"?`Sharing agents inside an organization is part of the Team plan. An owner of ${w.tenant_name||"this organization"} can activate it in the Radient console, and then its agents will be listed here.`:`You are not a member of ${w.tenant_name||"that organization"}, so its agents are not listed here. An owner can invite you again.`}),q==="plan"&&e.jsx("div",{className:"mt-2",children:e.jsx(f,{variant:"primary",size:"sm",onClick:()=>void pe(),disabled:R,"aria-busy":R,children:R?"Trying…":"Try again"})})]}),!k&&!O&&e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6","aria-busy":be,children:Z.length===0?e.jsxs("div",{"data-testid":"agent-hub-empty",className:C("col-span-full w-full flex flex-col items-center gap-2 rounded-md bg-surface px-6 py-10 text-center",!T&&"max-w-2xl justify-self-center"),children:[e.jsx("p",{className:"text-heading text-ink",children:T?"This organization has no shared agents yet.":o?`No agents in ${Ve(o).label}.`:V?"No agents match that search.":"The hub is empty."}),e.jsx("p",{className:"max-w-md text-body-sm text-ink-muted",children:T?`Agents published into ${w?.tenant_name||"this organization"} appear here for its members.`:o?"Nothing in this category yet. Clear the filter to see the whole hub.":V?"No agent's name or description carries that. Clear it to see the whole hub.":"Nobody has published an agent yet. Yours could be the first."}),e.jsx("div",{className:"mt-2 flex flex-wrap items-center justify-center gap-2",children:V?e.jsx(f,{variant:"secondary",onClick:is,children:o?"Clear filter":"Clear search"}):T&&!Xe?null:e.jsx(f,{ref:le,variant:"secondary",onClick:()=>s("/agents"),children:"Publish an agent"})})]}):Z.map(a=>e.jsx(dt,{agent:a,status:t?je[a.id]:void 0,viewerStateKnown:t&&et(ss,je,a.id),orgName:a.visibility==="org"?Ke.get(a.tenant_id)??null:null},a.id))}),!k&&_&&_.totalPages>1&&e.jsx(ht,{count:_.totalPages,page:_.page,onChange:rs})]}),m==="teams"&&(w?e.jsx(_t,{tenantId:w.tenant_id,orgName:fe}):e.jsx(It,{reason:ds,orgs:U,onPickOrg:a=>{X.current=a,ke(a)},onOpenSettings:()=>s("/settings"),onRetry:()=>void Ze(),retrying:P}))]})]})})]})]})};export{sa as AgentHubPage};