local-operator-ui 0.40.0 → 0.41.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/out/main/index.js +19 -1
  2. package/out/renderer/assets/{_basePickBy-DpS1gi-o.js → _basePickBy-BP7Q8i4W.js} +1 -1
  3. package/out/renderer/assets/{_baseUniq-BU_W0zZ3.js → _baseUniq-D36dAcoY.js} +1 -1
  4. package/out/renderer/assets/{agent-details-page-mS7IJBVP.js → agent-details-page-D3ljlPdf.js} +2 -2
  5. package/out/renderer/assets/{agent-hub-page-CWGw4Aok.js → agent-hub-page-BMyIHnNM.js} +2 -2
  6. package/out/renderer/assets/{agents-page-CzMpVd20.js → agents-page-mMqgQd2V.js} +3 -3
  7. package/out/renderer/assets/{arc-T0TkGR-7.js → arc-GVvow4so.js} +1 -1
  8. package/out/renderer/assets/{architectureDiagram-IEHRJDOE-FOFq1O67.js → architectureDiagram-IEHRJDOE-BjGwXAtH.js} +1 -1
  9. package/out/renderer/assets/{blockDiagram-JOT3LUYC-Dbo2qDB8.js → blockDiagram-JOT3LUYC-BTuigKlt.js} +1 -1
  10. package/out/renderer/assets/{book-open-Dt6NrEVH.js → book-open-C1uak1LZ.js} +1 -1
  11. package/out/renderer/assets/browser-page-B3mjDx8k.js +1 -0
  12. package/out/renderer/assets/{browser-webauthn-prompt-CwtoTzl0.js → browser-webauthn-prompt-CzYoJfO4.js} +1 -1
  13. package/out/renderer/assets/{building-2-C1lADJ7I.js → building-2-Bpz1qaDa.js} +1 -1
  14. package/out/renderer/assets/{c4Diagram-VJAJSXHY-B5h8VwBj.js → c4Diagram-VJAJSXHY-DK7eaKE8.js} +1 -1
  15. package/out/renderer/assets/channel-B05rL6In.js +1 -0
  16. package/out/renderer/assets/{chunk-4BMEZGHF-MR8YxQC8.js → chunk-4BMEZGHF-DkQrsDhM.js} +1 -1
  17. package/out/renderer/assets/{chunk-A2AXSNBT-DCwZuOlD.js → chunk-A2AXSNBT-guh0INPR.js} +1 -1
  18. package/out/renderer/assets/{chunk-AEK57VVT-DiUHgqSA.js → chunk-AEK57VVT-DvgIx6-r.js} +1 -1
  19. package/out/renderer/assets/{chunk-D6G4REZN-BLBf1anZ.js → chunk-D6G4REZN-FNdvnFYo.js} +1 -1
  20. package/out/renderer/assets/{chunk-RZ5BOZE2-8iG8Y9sJ.js → chunk-RZ5BOZE2-CgCQC9Mn.js} +1 -1
  21. package/out/renderer/assets/{chunk-XZIHB7SX-BUzPkuyD.js → chunk-XZIHB7SX-D1VRTTc4.js} +1 -1
  22. package/out/renderer/assets/classDiagram-GIVACNV2-DpB8-8cT.js +1 -0
  23. package/out/renderer/assets/classDiagram-v2-COTLJTTW-DpB8-8cT.js +1 -0
  24. package/out/renderer/assets/clone-BHHjv3HP.js +1 -0
  25. package/out/renderer/assets/{console-mirror-VlsurRTu.js → console-mirror-DRkz3vUY.js} +1 -1
  26. package/out/renderer/assets/{consoleCapture-BAEbuUE1.js → consoleCapture-BJfSUatx.js} +1 -1
  27. package/out/renderer/assets/{conversation-input-sync-D8QfxmnI.js → conversation-input-sync-CJU5GIzR.js} +242 -242
  28. package/out/renderer/assets/{dagre-OKDRZEBW-BVOSa9Ir.js → dagre-OKDRZEBW-DeeYQh6O.js} +1 -1
  29. package/out/renderer/assets/{diagram-SSKATNLV-Cd2OUAVJ.js → diagram-SSKATNLV-DD-xNxKH.js} +1 -1
  30. package/out/renderer/assets/{diagram-VNBRO52H-CtrjNGKr.js → diagram-VNBRO52H-YAoPlXaR.js} +1 -1
  31. package/out/renderer/assets/{erDiagram-Q7BY3M3F-DfVP3bcN.js → erDiagram-Q7BY3M3F-OKzGXyMI.js} +1 -1
  32. package/out/renderer/assets/{error-boundary-B3EFBlFF.js → error-boundary-ZYkSCpZC.js} +2 -2
  33. package/out/renderer/assets/{flowDiagram-4HSFHLVR-CGAjhZfs.js → flowDiagram-4HSFHLVR-BG-3pPqS.js} +1 -1
  34. package/out/renderer/assets/{ganttDiagram-APWFNJXF-Drljtxgq.js → ganttDiagram-APWFNJXF-CRyD5vsE.js} +1 -1
  35. package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-BHemdXzF.js → gitGraphDiagram-7IBYFJ6S-aly2C__q.js} +1 -1
  36. package/out/renderer/assets/{graph-CHQd8w8o.js → graph-CCWwMmhg.js} +1 -1
  37. package/out/renderer/assets/hash-BN0ECl3H.js +6 -0
  38. package/out/renderer/assets/{heart-NsStSoql.js → heart-tKYqMVIH.js} +1 -1
  39. package/out/renderer/assets/{index-Y7gJQGpG.js → index-BaNzqqGN.js} +1 -1
  40. package/out/renderer/assets/{index-ew1hMKtY.js → index-CRjnV9wx.js} +195 -195
  41. package/out/renderer/assets/{index-CGOyAbPs.js → index-DaCf2W9T.js} +1 -1
  42. package/out/renderer/assets/index-ZovyVTxQ.css +1 -0
  43. package/out/renderer/assets/{infoDiagram-PH2N3AL5-DAlyVNJm.js → infoDiagram-PH2N3AL5-BY536sF5.js} +1 -1
  44. package/out/renderer/assets/{installer-BUHF69aB.js → installer-Dw1P6j8q.js} +1 -1
  45. package/out/renderer/assets/{journeyDiagram-U35MCT3I-1EO-cM2S.js → journeyDiagram-U35MCT3I-DGvx__t6.js} +1 -1
  46. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-BjWHx1j6.js → kanban-definition-NDS4AKOZ-CG2Lgkpw.js} +1 -1
  47. package/out/renderer/assets/{layout-BITZWXG5.js → layout-vpRrwE7T.js} +1 -1
  48. package/out/renderer/assets/{legacy-agents-page-EkXsYE5Y.js → legacy-agents-page-D6Yma1Gm.js} +6 -6
  49. package/out/renderer/assets/library-page-B0gC-rRh.js +157 -0
  50. package/out/renderer/assets/{mermaid.core-BoximGnF.js → mermaid.core-COeGB8I0.js} +5 -5
  51. package/out/renderer/assets/{mesh-page-CbJ0YzZR.js → mesh-page-PabU05tN.js} +1 -1
  52. package/out/renderer/assets/{mindmap-definition-ALO5MXBD-CtxUEaL0.js → mindmap-definition-ALO5MXBD-B0hkjZLY.js} +1 -1
  53. package/out/renderer/assets/{mini-B95cJkWv.js → mini-Df5C4rpd.js} +1 -1
  54. package/out/renderer/assets/{notebook-pen-BxTTwLf8.js → notebook-pen-C3CwzwGA.js} +1 -1
  55. package/out/renderer/assets/{org-access-BO4A2FAr.js → org-access-BacMtLkn.js} +1 -1
  56. package/out/renderer/assets/{org-surface-gate-Bp_arWAv.js → org-surface-gate-tkB025lu.js} +1 -1
  57. package/out/renderer/assets/{page-header-DhME4jBY.js → page-header-6mrV9W-E.js} +1 -1
  58. package/out/renderer/assets/{path-utils-DXMoAzHL.js → path-utils-Ct0VTUZS.js} +2 -2
  59. package/out/renderer/assets/{pieDiagram-IB7DONF6-BET_kuRa.js → pieDiagram-IB7DONF6-DfFtQXU5.js} +1 -1
  60. package/out/renderer/assets/{projects-page-CrvzCjsd.js → projects-page-CoHTKLZH.js} +1 -1
  61. package/out/renderer/assets/{publication-validation-BSKuV2BJ.js → publication-validation-B0Mf3mmP.js} +1 -1
  62. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-Wn0SqLL-.js → quadrantDiagram-7GDLP6J5-C4eDJWaK.js} +1 -1
  63. package/out/renderer/assets/{radar-MK3ICKWK-DrM9X8dD.js → radar-MK3ICKWK-BEv1HS9Q.js} +1 -1
  64. package/out/renderer/assets/{radient-auth-buttons-DQnvQV0I.js → radient-auth-buttons-BX5vf982.js} +1 -1
  65. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-BdDYpNvz.js → requirementDiagram-KVF5MWMF-B7f3qUcB.js} +1 -1
  66. package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-C5mpSMB8.js → sankeyDiagram-QLVOVGJD-xM7E-74l.js} +1 -1
  67. package/out/renderer/assets/{schedules-page-C4tiK1q4.js → schedules-page-5q7pvL1H.js} +1 -1
  68. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-B3Cs3RcE.js → sequenceDiagram-X6HHIX6F-upwR02kU.js} +1 -1
  69. package/out/renderer/assets/{settings-page-BZEp-NUB.js → settings-page-DcnGr-GP.js} +9 -9
  70. package/out/renderer/assets/{smartart-0y9MEJnm.js → smartart-CYnMNs5u.js} +1 -1
  71. package/out/renderer/assets/{stateDiagram-DGXRK772-TzXzPiSs.js → stateDiagram-DGXRK772-BqTri7Q-.js} +1 -1
  72. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-D8Sl1QhX.js +1 -0
  73. package/out/renderer/assets/team-bridge-page-vnNJdCi3.js +16 -0
  74. package/out/renderer/assets/{timeline-definition-BDJGKUSR-D9poGZsh.js → timeline-definition-BDJGKUSR-Bi2is17s.js} +1 -1
  75. package/out/renderer/assets/{use-download-agent-mutation-CpziX3j_.js → use-download-agent-mutation-PHtokPlg.js} +2 -2
  76. package/out/renderer/assets/{use-session-snapshot-uuzUNGgk.js → use-session-snapshot-B5sxthdQ.js} +1 -1
  77. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-Bpq99cbF.js → xychartDiagram-VJFVF3MP-B0TrjzLJ.js} +1 -1
  78. package/out/renderer/console-capture.html +5 -5
  79. package/out/renderer/index.html +7 -7
  80. package/out/renderer/installer.html +4 -4
  81. package/out/renderer/mini.html +7 -7
  82. package/package.json +2 -2
  83. package/out/renderer/assets/browser-page-4D5CfHGL.js +0 -1
  84. package/out/renderer/assets/channel-ChMTCIo9.js +0 -1
  85. package/out/renderer/assets/classDiagram-GIVACNV2-olxpExNZ.js +0 -1
  86. package/out/renderer/assets/classDiagram-v2-COTLJTTW-olxpExNZ.js +0 -1
  87. package/out/renderer/assets/clone-BH-xWYVr.js +0 -1
  88. package/out/renderer/assets/hash-CgPb_SeD.js +0 -6
  89. package/out/renderer/assets/index-BkGcHmBa.css +0 -1
  90. package/out/renderer/assets/library-page-A0nXlev9.js +0 -157
  91. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-CvQ7ch2C.js +0 -1
  92. package/out/renderer/assets/team-bridge-page-ybfd-TgP.js +0 -26
  93. /package/out/renderer/assets/{index-DAftzhq_.js → index-BDzV3bGH.js} +0 -0
package/out/main/index.js CHANGED
@@ -9108,6 +9108,19 @@ const mediaRequestSchema = zod.z.discriminatedUnion("op", [
9108
9108
  op: zod.z.literal("library.thumbnail"),
9109
9109
  assetId: zod.z.string().regex(/^la_[0-9a-f]{16}$/),
9110
9110
  width: zod.z.number().int().min(1).max(480).optional()
9111
+ }).strict(),
9112
+ /*
9113
+ * A Library audio asset's PRE-RENDER peaks sidecar, the same `{version,
9114
+ * bars, peaks}` document a generated sound's attachment route serves. It
9115
+ * rides this relay for the reason `library.content` does: the renderer must
9116
+ * not learn the store's layout or hold the bearer, and the asset id has to
9117
+ * be validated before it becomes a path segment. The route answers 404 when
9118
+ * the catalog has no sidecar for the asset (a path-backed file imported
9119
+ * rather than generated), which the renderer draws as its flat scrubber.
9120
+ */
9121
+ zod.z.object({
9122
+ op: zod.z.literal("library.waveform"),
9123
+ assetId: zod.z.string().regex(/^la_[0-9a-f]{16}$/)
9111
9124
  }).strict()
9112
9125
  ]);
9113
9126
  function endpoint(request) {
@@ -9152,6 +9165,11 @@ function endpoint(request) {
9152
9165
  path: `/v1/desktop/library/assets/${request.assetId}/thumbnail?w=${request.width ?? 480}`,
9153
9166
  method: "GET"
9154
9167
  };
9168
+ case "library.waveform":
9169
+ return {
9170
+ path: `/v1/desktop/library/assets/${request.assetId}/waveform`,
9171
+ method: "GET"
9172
+ };
9155
9173
  }
9156
9174
  }
9157
9175
  async function requestDesktopMediaOutcome(input, bytes, backendUrl, token) {
@@ -9191,7 +9209,7 @@ async function requestDesktopMediaOutcome(input, bytes, backendUrl, token) {
9191
9209
  const target2 = endpoint(request);
9192
9210
  let body;
9193
9211
  let contentType;
9194
- if (request.op === "agent.export" || request.op === "sessions.attachment" || request.op === "subagents.attachment" || request.op === "sessions.attachment.waveform" || request.op === "sessions.supplementDocument" || request.op === "library.content" || request.op === "library.thumbnail") {
9212
+ if (request.op === "agent.export" || request.op === "sessions.attachment" || request.op === "subagents.attachment" || request.op === "sessions.attachment.waveform" || request.op === "sessions.supplementDocument" || request.op === "library.content" || request.op === "library.thumbnail" || request.op === "library.waveform") {
9195
9213
  body = void 0;
9196
9214
  } else if (request.op === "speech.create" || request.op === "speech.agent") {
9197
9215
  body = JSON.stringify(request.request);
@@ -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-BU_W0zZ3.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-BoximGnF.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-D36dAcoY.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-COeGB8I0.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-BoximGnF.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-COeGB8I0.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,6 +1,6 @@
1
- import{t as a,r as E,j as e,c as J}from"./index-DAftzhq_.js";import{i as ge,a as fe}from"./publication-validation-BSKuV2BJ.js";import{l as oe,u as U,E as le,F as je,j as be}from"./path-utils-DXMoAzHL.js";import{ao as C,ap as O,T as $,aq as Q,ar as ce,as as pe,at as ee,S as ye,au as ve,av as we}from"./conversation-input-sync-D8QfxmnI.js";import{c as Ne,u as Ce,L as ke,T as te,B as l,S as K,h as de,i as L,j as I,k as w,X as Ae,l as N,A as se,m as ae,n as ne}from"./error-boundary-B3EFBlFF.js";import{f as De,h as Se,u as Te,i as _e,a as Ee,b as Fe,c as ze,O as Pe,A as qe,d as ie}from"./use-download-agent-mutation-CpziX3j_.js";import{e as re}from"./en-US-CHJkXXr4.js";import{m as Me,o as Le,p as Ie,q as Ke,S as Ue,s as Oe,t as Qe,v as Be,x as Re,A as He,y as We,z as Ye}from"./index-ew1hMKtY.js";import{H as $e}from"./heart-NsStSoql.js";import"./book-open-Dt6NrEVH.js";import"./console-mirror-VlsurRTu.js";/**
1
+ import{t as a,r as E,j as e,c as J}from"./index-BDzV3bGH.js";import{i as ge,a as fe}from"./publication-validation-B0Mf3mmP.js";import{h as oe,u as U,z as le,A as je,f as be}from"./path-utils-Ct0VTUZS.js";import{ao as C,ap as O,T as $,aq as Q,ar as ce,as as pe,at as ee,S as ye,au as ve,av as we}from"./conversation-input-sync-CJU5GIzR.js";import{c as Ne,u as Ce,L as Ae,T as te,B as l,S as K,h as de,i as L,j as I,k as w,X as ke,l as N,A as se,m as ae,n as ne}from"./error-boundary-ZYkSCpZC.js";import{f as De,h as Se,u as Te,i as _e,a as Ee,b as Fe,c as ze,O as Pe,A as qe,d as ie}from"./use-download-agent-mutation-PHtokPlg.js";import{e as re}from"./en-US-CHJkXXr4.js";import{m as Me,o as Le,p as Ie,q as Ke,S as Ue,s as Oe,t as Qe,v as Be,x as Re,A as He,y as We,z as Ye}from"./index-CRjnV9wx.js";import{H as $e}from"./heart-tKYqMVIH.js";import"./book-open-C1uak1LZ.js";import"./console-mirror-DRkz3vUY.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
- */const Ve=[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]],Xe=Ne("message-circle",Ve);function Ze(t,o=Date.now()){return De(t,o,{locale:{...re,formatDistance(n,i,s){switch(n){case"xSeconds":return a("ui.hub.comments.age.seconds",{count:i});case"xMinutes":return a("ui.hub.comments.age.minutes",{count:i});case"xHours":return a("ui.hub.comments.age.hours",{count:i});case"xDays":return a("ui.hub.comments.age.days",{count:i});case"xMonths":return a("ui.hub.comments.age.months",{count:i});case"xYears":return a("ui.hub.comments.age.years",{count:i});default:return a("ui.hub.comments.age.fallback",{duration:re.formatDistance(n,i,s)})}}}})}const F={all:["agent-comments"],list:t=>[...F.all,"list",t]},Ge=({agentId:t,enabled:o=!0})=>oe({queryKey:F.list(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch comments.");return(await Me(t)).result},enabled:!!t&&o,staleTime:2*60*1e3,gcTime:5*60*1e3,refetchOnWindowFocus:!0}),Je=()=>{const t=U(),{isAuthenticated:o}=C();return O({mutationFn:async n=>{const{agentId:i,data:s}=n;if(!o)throw new Error(a("ui.hub.comments.mutation.unauthorized"));return Le(i,s)},onSuccess:(n,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),Q(a("ui.hub.comments.mutation.posted"))},onError:n=>{$(a("ui.hub.comments.mutation.post_failed",{reason:n.message}))}})},et=()=>{const t=U(),{isAuthenticated:o}=C();return O({mutationFn:async n=>{const{agentId:i,commentId:s,data:c}=n;if(!o)throw new Error(a("ui.hub.comments.mutation.unauthorized"));return Ie(i,s,c)},onSuccess:(n,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),Q(a("ui.hub.comments.mutation.updated"))},onError:n=>{$(a("ui.hub.comments.mutation.update_failed",{reason:n.message}))}})},tt=()=>{const t=U(),{isAuthenticated:o}=C();return O({mutationFn:async n=>{const{agentId:i,commentId:s}=n;if(!o)throw new Error(a("ui.hub.comments.mutation.unauthorized"));return Ke(i,s)},onSuccess:(n,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),Q(a("ui.hub.comments.mutation.deleted"))},onError:n=>{$(a("ui.hub.comments.mutation.delete_failed",{reason:n.message}))}})},st=({agentId:t})=>{Ce();const{isAuthenticated:o,user:n}=C(),[i,s]=E.useState(""),[c,b]=E.useState(null),[x,k]=E.useState(""),{data:u,isLoading:p,error:A}=Ge({agentId:t}),z=u?.records??[],g=Je(),D=et(),B=tt(),S=async r=>{if(r.preventDefault(),!(!i.trim()||!o||!t))try{await g.mutateAsync({agentId:t,data:{text:i}}),s("")}catch(d){console.error("Submit comment error caught in component:",d)}},R=(r,d)=>{b(r),k(d)},m=()=>{b(null),k("")},y=async()=>{if(!(!c||!x.trim()||!o||!t))try{await D.mutateAsync({agentId:t,commentId:c,data:{text:x}}),m()}catch(r){console.error("Update comment error caught in component:",r)}},v=async r=>{if(!(!o||!t)&&window.confirm(a("ui.hub.comments.delete.confirm")))try{await B.mutateAsync({agentId:t,commentId:r})}catch(d){console.error("Delete comment error caught in component:",d)}},H=r=>o&&n?.radientUser?.account?.id===r.account_id;return e.jsxs("div",{className:"mt-6",children:[e.jsx("h2",{className:"mb-4 font-semibold text-heading text-ink",children:a("ui.hub.comments.heading")}),o?e.jsxs("div",{className:"mb-4 flex flex-col gap-1.5",children:[e.jsxs(ke,{htmlFor:"new-comment",children:[e.jsx(Xe,{size:14,"aria-hidden":"true"}),a("ui.hub.comments.form.label")]}),e.jsxs("form",{onSubmit:S,className:"flex flex-col gap-3",children:[e.jsx(te,{id:"new-comment",placeholder:a("ui.hub.comments.form.placeholder"),rows:3,value:i,onChange:r=>s(r.target.value),required:!0}),e.jsx(l,{type:"submit",variant:"primary",disabled:g.isPending||!i.trim(),className:"self-end",children:g.isPending?e.jsx(K,{size:"sm",label:a("ui.hub.comments.form.posting")}):a("ui.hub.comments.form.submit")})]})]}):e.jsx("p",{className:"mt-6 mb-4 text-body-sm text-ink-muted",children:a("ui.hub.comments.form.sign_in")}),e.jsx(de,{className:"my-6"}),p&&e.jsx("ul",{className:"flex flex-col",children:[...Array(3)].map((r,d)=>e.jsxs("li",{className:"flex gap-3 pb-6",children:[e.jsx(L,{children:e.jsx(I,{children:e.jsx(w,{className:"size-full"})})}),e.jsxs("div",{className:"flex w-full flex-col gap-1.5",children:[e.jsx(w,{className:"h-3.5 w-24"}),e.jsx(w,{className:"h-3 w-15"}),e.jsx(w,{className:"mt-2 h-3.5 w-full"}),e.jsx(w,{className:"h-3.5 w-4/5"})]})]},`skeleton-${d}`))}),A&&e.jsx("p",{role:"alert",className:"my-6 text-body-sm text-danger",children:a("ui.hub.comments.load_error",{reason:A.message})}),!p&&!A&&e.jsx("ul",{className:"flex flex-col gap-6",children:z.length===0?e.jsx("li",{className:"text-body-sm text-ink-muted",children:a("ui.hub.comments.empty")}):z.map(r=>c===r.id?e.jsxs("li",{className:"flex gap-3",children:[e.jsx(L,{children:e.jsx(I,{children:r.account_metadata?.name?.charAt(0).toUpperCase()||"?"})}),e.jsxs("div",{className:"flex w-full flex-col gap-2",children:[e.jsx(te,{rows:3,value:x,onChange:d=>k(d.target.value),autoFocus:!0,"aria-label":a("ui.hub.comments.edit.label")}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(l,{variant:"secondary",size:"sm",onClick:m,children:[e.jsx(Ae,{}),a("ui.hub.comments.edit.cancel")]}),e.jsxs(l,{variant:"primary",size:"sm",onClick:y,disabled:D.isPending||!x.trim(),children:[D.isPending?e.jsx(K,{size:"xs",label:a("ui.hub.comments.edit.saving")}):e.jsx(Ue,{}),a("ui.hub.comments.edit.save")]})]})]})]},r.id):e.jsxs("li",{className:"flex gap-3",children:[e.jsx(L,{children:e.jsx(I,{children:r.account_metadata?.name?.charAt(0).toUpperCase()||"?"})}),e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex w-full items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-body text-ink",children:r.account_metadata?.name||a("ui.hub.comments.author.unknown")}),e.jsx("p",{className:"text-ink-muted text-meta",children:Ze(new Date(r.created_at))})]}),H(r)&&e.jsxs("div",{className:"flex gap-0.5",children:[e.jsx(N,{content:a("ui.hub.comments.edit.label"),children:e.jsx(l,{variant:"ghost",size:"icon-sm",onClick:()=>R(r.id,r.text),disabled:!!c,"aria-label":a("ui.hub.comments.edit.label"),children:e.jsx(Oe,{})})}),e.jsx(N,{content:a("ui.hub.comments.delete.label"),children:e.jsx(l,{variant:"ghost",size:"icon-sm",onClick:()=>v(r.id),disabled:!!c,"aria-label":a("ui.hub.comments.delete.label"),children:e.jsx(ce,{})})})]})]}),e.jsx("p",{className:"mt-2 text-body-sm text-ink whitespace-pre-wrap",children:r.text})]})]},r.id))})]})},V={all:["agent-details"],detail:t=>[...V.all,t]},at=({agentId:t,enabled:o=!0})=>oe({queryKey:V.detail(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch details.");return await Qe(t)},select:i=>i.result,enabled:!!t&&o,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1}),nt=()=>{const t=U(),o=le(),{isAuthenticated:n}=C();return O({mutationFn:async({agentId:s})=>{if(!n)throw new Error("Authentication required to delist an agent.");if(!s)throw new Error("Agent ID is required to delist.");return Be(s)},onSuccess:(s,c)=>{Q("Agent delisted"),t.invalidateQueries({queryKey:V.detail(c.agentId)}),ge(t),o("/agent-hub")},onError:s=>{console.error("Delist agent error:",s)}})},it={like:"The like did not go through",favourite:"The favourite did not go through",download:"The download did not start",delist:"The agent was not delisted"},Y=({children:t})=>e.jsx("span",{className:"inline-flex h-4 min-w-5 items-center text-meta text-ink-muted",children:t}),jt=()=>{const{agentId:t}=je(),o=le(),{isAuthenticated:n,user:i}=C(),{data:s,isLoading:c,isFetching:b,error:x,refetch:k}=at({agentId:t??"",enabled:!!t}),u=s?.visibility==="org",p=s?Se(s.name):"",{memberships:A}=Re({enabled:u}),z=u?A.find(xe=>xe.tenant_id===s?.tenant_id)?.tenant_name??null:null,{statuses:g,isKnown:D,isError:B,isFetching:S,refetch:R}=Te({agentIds:t&&!u?[t]:[]}),m=_e(D,g,t),y=m&&g[t??""]?.liked===!0,v=m&&g[t??""]?.favourited===!0,H=s?.like_count??0,r=s?.favourite_count??0,d=s?.download_count??0,P=Ee(),q=Fe(),T=ze(),f=nt(),[ue,M]=E.useState(!1),[j,h]=E.useState(null),W=!!i&&!!s&&i.radientUser?.account?.id===s.account_id,X=()=>{!t||!n||P.isPending||(h(null),P.mutate({agentId:t,isCurrentlyLiked:y},{onError:()=>h("like")}))},Z=()=>{!t||!n||q.isPending||(h(null),q.mutate({agentId:t,isCurrentlyFavourited:v},{onError:()=>h("favourite")}))},G=()=>{!t||!s||T.isPending||(h(null),T.mutate({agentId:s.id,agentName:s.name},{onError:()=>h("download")}))},me=()=>{!t||!W||f.isPending||(h(null),f.mutate({agentId:t},{onError:()=>h("delist")}),M(!1))},_=j?j==="like"?{action:"like",error:P.error,retry:X}:j==="favourite"?{action:"favourite",error:q.error,retry:Z}:j==="download"?{action:"download",error:T.error,retry:G}:{action:"delist",error:f.error,retry:void 0}:null,he=()=>{o("/agent-hub")};return c?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(K,{label:"Loading agent details"})}):x?e.jsx("div",{className:"flex h-full items-center justify-center p-6",children:e.jsxs(se,{variant:"danger",className:"max-w-2xl",children:[e.jsx(ae,{children:"This agent could not be loaded"}),e.jsx(ne,{children:be("The Radient agent catalogue did not answer.",x)}),e.jsx("div",{className:"mt-2",children:e.jsx(l,{variant:"outline",size:"sm",onClick:()=>void k(),disabled:b,"aria-busy":b,children:b?"Trying…":"Try again"})})]})}):s?e.jsxs("div",{className:"m-6 flex flex-1 flex-col rounded-md bg-surface p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-4",children:[e.jsx(l,{variant:"ghost",size:"icon",onClick:he,"aria-label":"Back to Agent Hub",children:e.jsx(He,{})}),e.jsx(L,{className:"size-11 shrink-0",children:e.jsx(I,{children:e.jsx(We,{size:22,"aria-hidden":"true"})})}),e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("h1",{className:"truncate text-display text-ink",children:p}),u&&e.jsx(Pe,{orgName:z})]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[!u&&e.jsxs(e.Fragment,{children:[e.jsx(N,{content:"Sign in to Radient to use this feature",disabled:n,children:e.jsx("span",{children:e.jsxs(l,{variant:"ghost",size:"sm",onClick:X,disabled:!n||P.isPending||!m,"aria-label":m?y?"Unlike agent":"Like agent":"Like state unavailable",className:J(y&&"text-danger"),children:[e.jsx($e,{fill:y?"currentColor":"none"}),e.jsx(Y,{children:H})]})})}),e.jsx(N,{content:"Sign in to Radient to use this feature",disabled:n,children:e.jsx("span",{children:e.jsxs(l,{variant:"ghost",size:"sm",onClick:Z,disabled:!n||q.isPending||!m,"aria-label":m?v?"Unfavourite agent":"Favourite agent":"Favourite state unavailable",className:J(v&&"text-warning"),children:[e.jsx(Ye,{fill:v?"currentColor":"none"}),e.jsx(Y,{children:r})]})})})]}),e.jsx(N,{content:"Download agent to your computer",children:e.jsx("span",{children:e.jsxs(l,{variant:"ghost",size:"icon",onClick:G,disabled:T.isPending,"aria-label":"Download agent",className:"ml-1",children:[e.jsx(pe,{}),e.jsx(Y,{children:T.isPending?e.jsx(w,{className:"h-3.5 w-5"}):d})]})})}),W&&!u&&e.jsx(N,{content:"Permanently delist this agent from Agent Hub",children:e.jsx("span",{children:e.jsx(l,{variant:"ghost",size:"icon",onClick:()=>M(!0),disabled:f.isPending,"aria-label":"Delist agent",className:"ml-1 text-danger hover:bg-danger-wash hover:text-danger",children:e.jsx(ce,{})})})})]})]}),n&&B&&!j&&!u&&e.jsxs("output",{className:"mb-6 flex flex-wrap items-center gap-2 text-meta text-warning","data-testid":"agent-details-status-unknown",children:[e.jsx("span",{children:"Your likes and favourites could not be read, so this agent's viewer state is not shown."}),e.jsx(l,{variant:"ghost",size:"sm",onClick:()=>void R(),disabled:S,"aria-busy":S,children:S?"Trying…":"Try again"})]}),_&&j&&e.jsxs(se,{variant:"danger",className:"mb-6","data-testid":"agent-details-error",children:[e.jsx(ae,{children:it[j]}),e.jsx(ne,{children:fe(_.action,_.error,p)}),_.retry&&e.jsx("div",{className:"mt-2",children:e.jsx(l,{variant:"outline",size:"sm",onClick:_.retry,children:"Try again"})})]}),e.jsx(qe,{tags:s.tags,categories:s.categories}),e.jsxs("div",{className:"mt-4 mb-6 flex flex-col gap-2 text-body-sm text-ink-muted",children:[e.jsxs("p",{children:["Created by: ",s.account_metadata?.name??"Unknown",s.account_metadata?.email?` (${s.account_metadata.email})`:""]}),e.jsxs("p",{children:["Created: ",ie(new Date(s.created_at))," ago (",ee(s.created_at),")"]}),e.jsxs("p",{children:["Last modified: ",ie(new Date(s.updated_at))," ","ago (",ee(s.updated_at),")"]})]}),e.jsx("div",{className:"mt-2 mb-8 leading-relaxed text-body text-ink",children:s.description||"No description provided."}),e.jsx(de,{className:"my-6"}),!u&&e.jsx(st,{agentId:s.id}),e.jsx(ye,{open:ue,onClose:()=>M(!1),title:"Delist this agent?",maxWidth:"xs",actions:e.jsxs(e.Fragment,{children:[e.jsx(ve,{onClick:()=>M(!1),children:"Cancel"}),e.jsx(we,{onClick:()=>{!t||!W||f.isPending||me()},disabled:f.isPending,children:f.isPending?e.jsx(K,{size:"sm",label:"Delisting agent"}):"Delist"})]}),dialogProps:{"aria-describedby":"delist-dialog-description"},children:e.jsxs("div",{id:"delist-dialog-description",className:"text-body text-ink-muted",children:['This takes "',p,'" off the hub straight away, and nobody will be able to download it. You can upload it again later.']})})]}):e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx("p",{className:"text-body text-ink",children:"Agent not found."})})};export{jt as AgentDetailsPage};
6
+ */const Ve=[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]],Xe=Ne("message-circle",Ve);function Ze(t,o=Date.now()){return De(t,o,{locale:{...re,formatDistance(n,i,s){switch(n){case"xSeconds":return a("ui.hub.comments.age.seconds",{count:i});case"xMinutes":return a("ui.hub.comments.age.minutes",{count:i});case"xHours":return a("ui.hub.comments.age.hours",{count:i});case"xDays":return a("ui.hub.comments.age.days",{count:i});case"xMonths":return a("ui.hub.comments.age.months",{count:i});case"xYears":return a("ui.hub.comments.age.years",{count:i});default:return a("ui.hub.comments.age.fallback",{duration:re.formatDistance(n,i,s)})}}}})}const F={all:["agent-comments"],list:t=>[...F.all,"list",t]},Ge=({agentId:t,enabled:o=!0})=>oe({queryKey:F.list(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch comments.");return(await Me(t)).result},enabled:!!t&&o,staleTime:2*60*1e3,gcTime:5*60*1e3,refetchOnWindowFocus:!0}),Je=()=>{const t=U(),{isAuthenticated:o}=C();return O({mutationFn:async n=>{const{agentId:i,data:s}=n;if(!o)throw new Error(a("ui.hub.comments.mutation.unauthorized"));return Le(i,s)},onSuccess:(n,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),Q(a("ui.hub.comments.mutation.posted"))},onError:n=>{$(a("ui.hub.comments.mutation.post_failed",{reason:n.message}))}})},et=()=>{const t=U(),{isAuthenticated:o}=C();return O({mutationFn:async n=>{const{agentId:i,commentId:s,data:c}=n;if(!o)throw new Error(a("ui.hub.comments.mutation.unauthorized"));return Ie(i,s,c)},onSuccess:(n,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),Q(a("ui.hub.comments.mutation.updated"))},onError:n=>{$(a("ui.hub.comments.mutation.update_failed",{reason:n.message}))}})},tt=()=>{const t=U(),{isAuthenticated:o}=C();return O({mutationFn:async n=>{const{agentId:i,commentId:s}=n;if(!o)throw new Error(a("ui.hub.comments.mutation.unauthorized"));return Ke(i,s)},onSuccess:(n,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),Q(a("ui.hub.comments.mutation.deleted"))},onError:n=>{$(a("ui.hub.comments.mutation.delete_failed",{reason:n.message}))}})},st=({agentId:t})=>{Ce();const{isAuthenticated:o,user:n}=C(),[i,s]=E.useState(""),[c,b]=E.useState(null),[x,A]=E.useState(""),{data:u,isLoading:p,error:k}=Ge({agentId:t}),z=u?.records??[],g=Je(),D=et(),B=tt(),S=async r=>{if(r.preventDefault(),!(!i.trim()||!o||!t))try{await g.mutateAsync({agentId:t,data:{text:i}}),s("")}catch(d){console.error("Submit comment error caught in component:",d)}},R=(r,d)=>{b(r),A(d)},m=()=>{b(null),A("")},y=async()=>{if(!(!c||!x.trim()||!o||!t))try{await D.mutateAsync({agentId:t,commentId:c,data:{text:x}}),m()}catch(r){console.error("Update comment error caught in component:",r)}},v=async r=>{if(!(!o||!t)&&window.confirm(a("ui.hub.comments.delete.confirm")))try{await B.mutateAsync({agentId:t,commentId:r})}catch(d){console.error("Delete comment error caught in component:",d)}},H=r=>o&&n?.radientUser?.account?.id===r.account_id;return e.jsxs("div",{className:"mt-6",children:[e.jsx("h2",{className:"mb-4 font-semibold text-heading text-ink",children:a("ui.hub.comments.heading")}),o?e.jsxs("div",{className:"mb-4 flex flex-col gap-1.5",children:[e.jsxs(Ae,{htmlFor:"new-comment",children:[e.jsx(Xe,{size:14,"aria-hidden":"true"}),a("ui.hub.comments.form.label")]}),e.jsxs("form",{onSubmit:S,className:"flex flex-col gap-3",children:[e.jsx(te,{id:"new-comment",placeholder:a("ui.hub.comments.form.placeholder"),rows:3,value:i,onChange:r=>s(r.target.value),required:!0}),e.jsx(l,{type:"submit",variant:"primary",disabled:g.isPending||!i.trim(),className:"self-end",children:g.isPending?e.jsx(K,{size:"sm",label:a("ui.hub.comments.form.posting")}):a("ui.hub.comments.form.submit")})]})]}):e.jsx("p",{className:"mt-6 mb-4 text-body-sm text-ink-muted",children:a("ui.hub.comments.form.sign_in")}),e.jsx(de,{className:"my-6"}),p&&e.jsx("ul",{className:"flex flex-col",children:[...Array(3)].map((r,d)=>e.jsxs("li",{className:"flex gap-3 pb-6",children:[e.jsx(L,{children:e.jsx(I,{children:e.jsx(w,{className:"size-full"})})}),e.jsxs("div",{className:"flex w-full flex-col gap-1.5",children:[e.jsx(w,{className:"h-3.5 w-24"}),e.jsx(w,{className:"h-3 w-15"}),e.jsx(w,{className:"mt-2 h-3.5 w-full"}),e.jsx(w,{className:"h-3.5 w-4/5"})]})]},`skeleton-${d}`))}),k&&e.jsx("p",{role:"alert",className:"my-6 text-body-sm text-danger",children:a("ui.hub.comments.load_error",{reason:k.message})}),!p&&!k&&e.jsx("ul",{className:"flex flex-col gap-6",children:z.length===0?e.jsx("li",{className:"text-body-sm text-ink-muted",children:a("ui.hub.comments.empty")}):z.map(r=>c===r.id?e.jsxs("li",{className:"flex gap-3",children:[e.jsx(L,{children:e.jsx(I,{children:r.account_metadata?.name?.charAt(0).toUpperCase()||"?"})}),e.jsxs("div",{className:"flex w-full flex-col gap-2",children:[e.jsx(te,{rows:3,value:x,onChange:d=>A(d.target.value),autoFocus:!0,"aria-label":a("ui.hub.comments.edit.label")}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(l,{variant:"secondary",size:"sm",onClick:m,children:[e.jsx(ke,{}),a("ui.hub.comments.edit.cancel")]}),e.jsxs(l,{variant:"primary",size:"sm",onClick:y,disabled:D.isPending||!x.trim(),children:[D.isPending?e.jsx(K,{size:"xs",label:a("ui.hub.comments.edit.saving")}):e.jsx(Ue,{}),a("ui.hub.comments.edit.save")]})]})]})]},r.id):e.jsxs("li",{className:"flex gap-3",children:[e.jsx(L,{children:e.jsx(I,{children:r.account_metadata?.name?.charAt(0).toUpperCase()||"?"})}),e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex w-full items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-body text-ink",children:r.account_metadata?.name||a("ui.hub.comments.author.unknown")}),e.jsx("p",{className:"text-ink-muted text-meta",children:Ze(new Date(r.created_at))})]}),H(r)&&e.jsxs("div",{className:"flex gap-0.5",children:[e.jsx(N,{content:a("ui.hub.comments.edit.label"),children:e.jsx(l,{variant:"ghost",size:"icon-sm",onClick:()=>R(r.id,r.text),disabled:!!c,"aria-label":a("ui.hub.comments.edit.label"),children:e.jsx(Oe,{})})}),e.jsx(N,{content:a("ui.hub.comments.delete.label"),children:e.jsx(l,{variant:"ghost",size:"icon-sm",onClick:()=>v(r.id),disabled:!!c,"aria-label":a("ui.hub.comments.delete.label"),children:e.jsx(ce,{})})})]})]}),e.jsx("p",{className:"mt-2 text-body-sm text-ink whitespace-pre-wrap",children:r.text})]})]},r.id))})]})},V={all:["agent-details"],detail:t=>[...V.all,t]},at=({agentId:t,enabled:o=!0})=>oe({queryKey:V.detail(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch details.");return await Qe(t)},select:i=>i.result,enabled:!!t&&o,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1}),nt=()=>{const t=U(),o=le(),{isAuthenticated:n}=C();return O({mutationFn:async({agentId:s})=>{if(!n)throw new Error("Authentication required to delist an agent.");if(!s)throw new Error("Agent ID is required to delist.");return Be(s)},onSuccess:(s,c)=>{Q("Agent delisted"),t.invalidateQueries({queryKey:V.detail(c.agentId)}),ge(t),o("/agent-hub")},onError:s=>{console.error("Delist agent error:",s)}})},it={like:"The like did not go through",favourite:"The favourite did not go through",download:"The download did not start",delist:"The agent was not delisted"},Y=({children:t})=>e.jsx("span",{className:"inline-flex h-4 min-w-5 items-center text-meta text-ink-muted",children:t}),jt=()=>{const{agentId:t}=je(),o=le(),{isAuthenticated:n,user:i}=C(),{data:s,isLoading:c,isFetching:b,error:x,refetch:A}=at({agentId:t??"",enabled:!!t}),u=s?.visibility==="org",p=s?Se(s.name):"",{memberships:k}=Re({enabled:u}),z=u?k.find(xe=>xe.tenant_id===s?.tenant_id)?.tenant_name??null:null,{statuses:g,isKnown:D,isError:B,isFetching:S,refetch:R}=Te({agentIds:t&&!u?[t]:[]}),m=_e(D,g,t),y=m&&g[t??""]?.liked===!0,v=m&&g[t??""]?.favourited===!0,H=s?.like_count??0,r=s?.favourite_count??0,d=s?.download_count??0,P=Ee(),q=Fe(),T=ze(),f=nt(),[ue,M]=E.useState(!1),[j,h]=E.useState(null),W=!!i&&!!s&&i.radientUser?.account?.id===s.account_id,X=()=>{!t||!n||P.isPending||(h(null),P.mutate({agentId:t,isCurrentlyLiked:y},{onError:()=>h("like")}))},Z=()=>{!t||!n||q.isPending||(h(null),q.mutate({agentId:t,isCurrentlyFavourited:v},{onError:()=>h("favourite")}))},G=()=>{!t||!s||T.isPending||(h(null),T.mutate({agentId:s.id,agentName:s.name},{onError:()=>h("download")}))},me=()=>{!t||!W||f.isPending||(h(null),f.mutate({agentId:t},{onError:()=>h("delist")}),M(!1))},_=j?j==="like"?{action:"like",error:P.error,retry:X}:j==="favourite"?{action:"favourite",error:q.error,retry:Z}:j==="download"?{action:"download",error:T.error,retry:G}:{action:"delist",error:f.error,retry:void 0}:null,he=()=>{o("/agent-hub")};return c?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(K,{label:"Loading agent details"})}):x?e.jsx("div",{className:"flex h-full items-center justify-center p-6",children:e.jsxs(se,{variant:"danger",className:"max-w-2xl",children:[e.jsx(ae,{children:"This agent could not be loaded"}),e.jsx(ne,{children:be("The Radient agent catalogue did not answer.",x)}),e.jsx("div",{className:"mt-2",children:e.jsx(l,{variant:"outline",size:"sm",onClick:()=>void A(),disabled:b,"aria-busy":b,children:b?"Trying…":"Try again"})})]})}):s?e.jsxs("div",{className:"m-6 flex flex-1 flex-col rounded-md bg-surface p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-4",children:[e.jsx(l,{variant:"ghost",size:"icon",onClick:he,"aria-label":"Back to Agent Hub",children:e.jsx(He,{})}),e.jsx(L,{className:"size-11 shrink-0",children:e.jsx(I,{children:e.jsx(We,{size:22,"aria-hidden":"true"})})}),e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("h1",{className:"truncate text-display text-ink",children:p}),u&&e.jsx(Pe,{orgName:z})]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[!u&&e.jsxs(e.Fragment,{children:[e.jsx(N,{content:"Sign in to Radient to use this feature",disabled:n,children:e.jsx("span",{children:e.jsxs(l,{variant:"ghost",size:"sm",onClick:X,disabled:!n||P.isPending||!m,"aria-label":m?y?"Unlike agent":"Like agent":"Like state unavailable",className:J(y&&"text-danger"),children:[e.jsx($e,{fill:y?"currentColor":"none"}),e.jsx(Y,{children:H})]})})}),e.jsx(N,{content:"Sign in to Radient to use this feature",disabled:n,children:e.jsx("span",{children:e.jsxs(l,{variant:"ghost",size:"sm",onClick:Z,disabled:!n||q.isPending||!m,"aria-label":m?v?"Unfavourite agent":"Favourite agent":"Favourite state unavailable",className:J(v&&"text-warning"),children:[e.jsx(Ye,{fill:v?"currentColor":"none"}),e.jsx(Y,{children:r})]})})})]}),e.jsx(N,{content:"Download agent to your computer",children:e.jsx("span",{children:e.jsxs(l,{variant:"ghost",size:"icon",onClick:G,disabled:T.isPending,"aria-label":"Download agent",className:"ml-1",children:[e.jsx(pe,{}),e.jsx(Y,{children:T.isPending?e.jsx(w,{className:"h-3.5 w-5"}):d})]})})}),W&&!u&&e.jsx(N,{content:"Permanently delist this agent from Agent Hub",children:e.jsx("span",{children:e.jsx(l,{variant:"ghost",size:"icon",onClick:()=>M(!0),disabled:f.isPending,"aria-label":"Delist agent",className:"ml-1 text-danger hover:bg-danger-wash hover:text-danger",children:e.jsx(ce,{})})})})]})]}),n&&B&&!j&&!u&&e.jsxs("output",{className:"mb-6 flex flex-wrap items-center gap-2 text-meta text-warning","data-testid":"agent-details-status-unknown",children:[e.jsx("span",{children:"Your likes and favourites could not be read, so this agent's viewer state is not shown."}),e.jsx(l,{variant:"ghost",size:"sm",onClick:()=>void R(),disabled:S,"aria-busy":S,children:S?"Trying…":"Try again"})]}),_&&j&&e.jsxs(se,{variant:"danger",className:"mb-6","data-testid":"agent-details-error",children:[e.jsx(ae,{children:it[j]}),e.jsx(ne,{children:fe(_.action,_.error,p)}),_.retry&&e.jsx("div",{className:"mt-2",children:e.jsx(l,{variant:"outline",size:"sm",onClick:_.retry,children:"Try again"})})]}),e.jsx(qe,{tags:s.tags,categories:s.categories}),e.jsxs("div",{className:"mt-4 mb-6 flex flex-col gap-2 text-body-sm text-ink-muted",children:[e.jsxs("p",{children:["Created by: ",s.account_metadata?.name??"Unknown",s.account_metadata?.email?` (${s.account_metadata.email})`:""]}),e.jsxs("p",{children:["Created: ",ie(new Date(s.created_at))," ago (",ee(s.created_at),")"]}),e.jsxs("p",{children:["Last modified: ",ie(new Date(s.updated_at))," ","ago (",ee(s.updated_at),")"]})]}),e.jsx("div",{className:"mt-2 mb-8 leading-relaxed text-body text-ink",children:s.description||"No description provided."}),e.jsx(de,{className:"my-6"}),!u&&e.jsx(st,{agentId:s.id}),e.jsx(ye,{open:ue,onClose:()=>M(!1),title:"Delist this agent?",maxWidth:"xs",actions:e.jsxs(e.Fragment,{children:[e.jsx(ve,{onClick:()=>M(!1),children:"Cancel"}),e.jsx(we,{onClick:()=>{!t||!W||f.isPending||me()},disabled:f.isPending,children:f.isPending?e.jsx(K,{size:"sm",label:"Delisting agent"}):"Delist"})]}),dialogProps:{"aria-describedby":"delist-dialog-description"},children:e.jsxs("div",{id:"delist-dialog-description",className:"text-body text-ink-muted",children:['This takes "',p,'" off the hub straight away, and nobody will be able to download it. You can upload it again later.']})})]}):e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx("p",{className:"text-body text-ink",children:"Agent not found."})})};export{jt as AgentDetailsPage};
@@ -1,6 +1,6 @@
1
- import{r,j as e,c as U,t as l}from"./index-DAftzhq_.js";import{E as zs,D as yt,l as ce,u as ie,a as Ce,c as re,r as es,d as fe,a3 as ps,j as ss,a2 as vt,O as Nt}from"./path-utils-DXMoAzHL.js";import{P as wt}from"./page-header-DhME4jBY.js";import{c as St,l as le,B as P,k as C,u as ke,y as _t,I as Ie,T as Ms,D as qe,a as Ue,b as He,d as Be,e as Ke,f as Qe,A as be,m as pe,n as ge,Y as Pt,Z as Tt,_ as Ct,$ as It,F as gs,G as fs,H as ks,J as js,K as ys}from"./error-boundary-B3EFBlFF.js";import{ao as ts,as as vs,be as Rt,bf as Ds,a4 as G,ap as je,bc as qs,bg as At,aq as Et,bh as Ot,P as Us,aw as Hs,bi as Se,bj as Lt,bk as Ft}from"./conversation-input-sync-D8QfxmnI.js";import{a as $t,p as Bs,P as Ks,u as zt}from"./publication-validation-BSKuV2BJ.js";import{h as ae,O as Mt,A as Dt,d as qt,a as Ut,b as Ht,c as Bt,e as Qs,C as Kt,f as Qt,n as Vt,u as Wt,i as Yt}from"./use-download-agent-mutation-CpziX3j_.js";import{H as Gt}from"./heart-NsStSoql.js";import{z as Jt,aP as Xt,aO as Zt,aQ as Vs,aR as Ws,aS as Ys,aT as ea,aU as sa,aK as as,aV as Ge,aD as ta,aB as Gs,aW as aa,az as ia,u as na,h as la,c as Ns,aI as ra,d as ca,H as oa,aX as da,x as ua,aY as ma}from"./index-ew1hMKtY.js";import{n as ha,i as xa,H as ba,p as ws,a as pa,o as Js,u as ga}from"./org-access-BO4A2FAr.js";import{R as Xs}from"./radient-auth-buttons-DQnvQV0I.js";import{f as fa}from"./format-esAOn2VS.js";import{o as ka,a as Ve}from"./org-surface-gate-Bp_arWAv.js";import{B as ja}from"./building-2-C1lADJ7I.js";import"./en-US-CHJkXXr4.js";import"./book-open-Dt6NrEVH.js";import"./console-mirror-VlsurRTu.js";/**
1
+ import{r,j as e,c as U,t as l}from"./index-BDzV3bGH.js";import{z as zs,D as yt,h as ce,u as ie,a as Ce,c as re,r as es,d as fe,$ as ps,f as ss,Z as vt,K as Nt}from"./path-utils-Ct0VTUZS.js";import{P as wt}from"./page-header-6mrV9W-E.js";import{c as St,l as le,B as P,k as C,u as ke,y as _t,I as Ie,T as Ms,D as qe,a as Ue,b as He,d as Be,e as Ke,f as Qe,A as be,m as pe,n as ge,Y as Pt,Z as Tt,_ as Ct,a3 as It,F as gs,G as fs,H as ks,J as js,K as ys}from"./error-boundary-ZYkSCpZC.js";import{ao as ts,as as vs,bk as Rt,bl as Ds,a4 as G,ap as je,bc as qs,bm as At,aq as Lt,bn as Ot,P as Us,aw as Hs,bo as Se,bp as Et,bq as Ft}from"./conversation-input-sync-CJU5GIzR.js";import{a as $t,p as Bs,P as Ks,u as zt}from"./publication-validation-B0Mf3mmP.js";import{h as ae,O as Mt,A as Dt,d as qt,a as Ut,b as Ht,c as Bt,e as Qs,C as Kt,f as Qt,n as Vt,u as Wt,i as Yt}from"./use-download-agent-mutation-PHtokPlg.js";import{H as Gt}from"./heart-tKYqMVIH.js";import{z as Jt,bF as Zt,aO as Xt,bG as Vs,bH as Ws,bI as Ys,bJ as ea,bK as sa,aK as as,bL as Ge,aD as ta,aB as Gs,bM as aa,az as ia,u as na,h as la,c as Ns,aI as ra,d as ca,H as oa,bN as da,x as ua,bO as ma}from"./index-CRjnV9wx.js";import{n as ha,i as xa,H as ba,p as ws,a as pa,o as Js,u as ga}from"./org-access-BacMtLkn.js";import{R as Zs}from"./radient-auth-buttons-BX5vf982.js";import{f as fa}from"./format-esAOn2VS.js";import{o as ka,a as Ve}from"./org-surface-gate-tkB025lu.js";import{B as ja}from"./building-2-Bpz1qaDa.js";import"./en-US-CHJkXXr4.js";import"./book-open-C1uak1LZ.js";import"./console-mirror-DRkz3vUY.js";/**
2
2
  * @license lucide-react v0.507.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
- */const ya=[["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"}]],va=St("circle-ellipsis",ya),Na=({agent:s,isLiked:t,isFavourited:a,onLikeToggle:i,onFavouriteToggle:n,onDownload:u,isLikeActionLoading:m=!1,isFavouriteActionLoading:O=!1,isDownloading:p=!1,actionError:v=null,onRetryAction:L,showActions:_=!0,viewerStateKnown:b=!0,orgName:h=null})=>{const E=zs(),{isAuthenticated:f}=ts(),w=s.description??"",[I,F]=r.useState(!1),T=r.useRef(null),g=r.useCallback(A=>{if(T.current?.disconnect(),T.current=null,!A)return;const z=()=>F(A.scrollHeight-A.clientHeight>1);z();const H=new ResizeObserver(z);H.observe(A),T.current=H},[]),R=f?b?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",k=f?b?a?"Unfavourite agent":"Favourite agent":"Your favourites could not be read, so this is not shown as unfavourited.":"Log in to Radient to favourite agents",j=b?t?"Unlike agent":"Like agent":"Like state unavailable",y=b?a?"Unfavourite agent":"Favourite agent":"Favourite state unavailable",o=s.visibility==="org",x=ae(s.name);return e.jsxs("div",{"data-glass-block":"",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:()=>E(`/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 ${x}`,children:[e.jsx("h3",{className:"truncate font-medium text-heading text-ink",children:x}),o&&e.jsx(Mt,{orgName:h}),e.jsx(le,{content:I?w:"",children:e.jsx("span",{ref:g,className:"line-clamp-3 min-h-0 text-body-sm text-ink-muted",children:w})}),e.jsxs("div",{className:"mt-auto flex flex-col gap-2 pt-2",children:[e.jsx(Dt,{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 ",qt(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":o?"org":f?b?"known":"unknown":"signed-out",children:[!o&&e.jsxs(e.Fragment,{children:[e.jsx(le,{content:R,children:e.jsx("span",{children:e.jsxs(P,{variant:"ghost",size:"sm",onClick:f&&b?()=>i(s.id):void 0,disabled:m||!f||!b,"aria-label":j,className:U(t&&"text-danger"),children:[e.jsx(Gt,{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(le,{content:k,children:e.jsx("span",{children:e.jsxs(P,{variant:"ghost",size:"sm",onClick:f?()=>n(s.id):void 0,disabled:O||!f||!b,"aria-label":y,className:U(a&&"text-warning"),children:[e.jsx(Jt,{fill:a?"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(le,{content:"Downloads",children:e.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 pr-1 text-ink-dim",children:[e.jsx(vs,{"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:p?e.jsx(C,{className:"h-3 w-6"}):(s.download_count??0).toLocaleString()})]})})]}),_&&u&&e.jsx("div",{className:"ml-auto flex shrink-0 items-center",children:e.jsxs(P,{variant:"secondary",size:"sm",onClick:()=>u(s),disabled:p,"aria-label":`Download ${x}`,"data-tour-tag":"agent-hub-download-button",children:[e.jsx(vs,{"data-testid":"agent-download"}),"Get"]})})]}),v&&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:v}),L&&e.jsx(P,{variant:"ghost",size:"sm",onClick:L,children:"Try again"})]})]})},wa=({agent:s,status:t,viewerStateKnown:a=!0,orgName:i=null})=>{const{isAuthenticated:n}=ts(),[u,m]=r.useState(null),O=t?.liked??!1,p=t?.favourited??!1,v=Ut(),L=Ht(),_=Bt(),b=()=>{!n||v.isPending||(m(null),v.mutate({agentId:s.id,isCurrentlyLiked:O},{onError:()=>m("like")}))},h=()=>{!n||L.isPending||(m(null),L.mutate({agentId:s.id,isCurrentlyFavourited:p},{onError:()=>m("favourite")}))},E=()=>{_.isPending||(m(null),_.mutate({agentId:s.id,agentName:s.name},{onError:()=>m("download")}))},f=u?u==="like"?{action:"like",error:v.error,retry:b}:u==="favourite"?{action:"favourite",error:L.error,retry:h}:{action:"download",error:_.error,retry:E}:null;return e.jsx(Na,{agent:s,isLiked:n&&O,isFavourited:n&&p,onLikeToggle:b,onFavouriteToggle:h,onDownload:E,isLikeActionLoading:v.isPending,isFavouriteActionLoading:L.isPending,isDownloading:_.isPending,viewerStateKnown:a,orgName:i,actionError:f?$t(f.action,f.error,ae(s.name)):null,onRetryAction:f?.retry})},Ss=({selected:s,onClick:t,children:a,...i})=>e.jsx("button",{type:"button",onClick:t,"aria-pressed":s,className:U("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?Zt:"text-ink hover:bg-row-hover"),...i,children:a}),_s=Object.keys(Kt),Sa=s=>[...s].sort((t,a)=>{const i=_s.indexOf(t),n=_s.indexOf(a);return i!==-1&&n!==-1?i-n:i!==-1?-1:n!==-1?1:t.localeCompare(a)}),_a=({selectedCategory:s,onSelectCategory:t,categories:a})=>{ke();const i=Sa(s&&!a.includes(s)?[...a,s]:a);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:l("ui.hub.taxonomy.heading")}),e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsxs(Ss,{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(Xt,{size:16,"aria-hidden":"true"})}),l("ui.hub.taxonomy.all")]}),i.map(n=>{const u=Qs(n),m=n==="other"?e.jsx(va,{size:16}):u.icon;return e.jsxs(Ss,{selected:s===n,onClick:()=>t(n),"data-testid":`category-${n}`,children:[e.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:m}),u.label]},n)})]})]})},is=({page:s,count:t,onChange:a,ariaLabel:i="Agent pages"})=>{const n=r.useRef(null),u=r.useRef(null),m=r.useRef(null);return r.useEffect(()=>{const O=m.current;m.current=null,O==="previous"&&n.current?.focus(),O==="next"&&u.current?.focus()},[s]),t<=1?null:e.jsxs("nav",{"aria-label":i,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(P,{variant:"secondary",size:"sm",ref:n,onClick:()=>{s-1<=1&&(m.current="next"),a(s-1)},disabled:s<=1,"aria-label":"Previous page",children:[e.jsx(Rt,{"aria-hidden":"true"}),"Previous"]}),e.jsxs(P,{variant:"secondary",size:"sm",ref:u,onClick:()=>{s+1>=t&&(m.current="previous"),a(s+1)},disabled:s>=t,"aria-label":"Next page",children:["Next",e.jsx(_t,{"aria-hidden":"true"})]})]})]})},Pa=/alias/i;function Ps(s){return s instanceof yt?s.code==="alias-occupied"?!0:s.code==="origin-conflict"&&Pa.test(s.message):!1}const Ta=/\/+$/;function ns(s){const t=s.replace(Ta,"");try{const{pathname:a}=new URL(t);return a===""||a==="/"?`${t}/v1`:t}catch{return`${t}/v1`}}const Ts=s=>s?.skills===1&&s.revision_cas===1;function Ca(s,t=1,a=20){const i=new URL(Vs(s,"skills"));return i.searchParams.set("page",String(t)),i.searchParams.set("per_page",String(a)),Ws(i.toString())}function Ia(s,t){return Ws(Vs(s,"skills",t))}function Ra(s){return Ds({operation:"org_skills.list",tenantId:s})}function Aa(s,t){return Ds({operation:"org_skill.get",tenantId:s,skillId:t})}const ls=12,_e={all:["public-teams"],list:(s,t)=>[..._e.all,"list",{page:s,perPage:t}],detail:s=>[..._e.all,"detail",s]},Re=(s,t)=>t instanceof Ys?t.status===null?!1:t.status>=500&&s<1:s<1,Zs=({page:s=1,perPage:t=ls,enabled:a=!0}={})=>{const i=ce({queryKey:_e.list(s,t),queryFn:()=>ea(G.radientBaseUrl,s,t),select:n=>n.result,enabled:a,retry:Re,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,placeholderData:n=>n});return{...i,teams:i.data?.records??[],isRefreshing:i.isFetching&&i.data!==void 0,pagination:i.data?{page:i.data.page,perPage:i.data.per_page,totalPages:i.data.total_pages,totalRecords:i.data.total_records}:void 0}},Ea=({teamId:s,enabled:t=!0})=>{const a=ce({queryKey:_e.detail(s??""),queryFn:()=>sa(G.radientBaseUrl,s),select:i=>i.result,enabled:t&&!!s,retry:Re,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,retryOnMount:!1});return{...a,team:a.data}};function oe(s){if(s.getQueryState(ps.capabilities)?.status!=="success"||!re(s.getQueryData(ps.capabilities),"hub_skills"))throw new Error("This backend does not support the complete Hub Skills adapter.")}function et(s,t,a){const i=ie(),n=Ce();return ce({queryKey:["hub-skills",G.radientBaseUrl,s.visibility,s.tenantId,t],enabled:a&&!n.isError&&re(n.data,"hub_skills"),queryFn:async()=>{if(oe(i),s.visibility==="org"){const m=(await Ra(s.tenantId)).result;return{rows:m.skills,pages:1,total:m.skills.length,contract:m.sync_contract}}const u=(await Ca(G.radientBaseUrl,t,20)).result;return{rows:u.records,pages:u.total_pages,total:u.total_records,contract:u.sync_contract}},staleTime:3e4,retry:s.visibility==="org"?es:Re,retryOnMount:!1,refetchOnWindowFocus:!1})}function Oa(s,t,a){const i=ie(),n=Ce();return ce({queryKey:["hub-skill",G.radientBaseUrl,s.visibility,s.tenantId,t],enabled:a&&t!==null&&!n.isError&&re(n.data,"hub_skills"),queryFn:async()=>(oe(i),(s.visibility==="org"?await Aa(s.tenantId,t):await Ia(G.radientBaseUrl,t)).result),staleTime:3e4,retry:s.visibility==="org"?es:Re,retryOnMount:!1})}function rs(s,t){s.setQueryData(as,t.links)}function cs(s){s.invalidateQueries({queryKey:as}),s.invalidateQueries({queryKey:["desktop","skills"]})}function La(){const s=ie();return je({mutationFn:t=>(oe(s),fe({op:"hub.skillPull",requestId:t.requestId,hubId:t.remoteId,hubSource:ns(G.radientBaseUrl),visibility:t.scope.visibility,tenantId:t.scope.tenantId,localAlias:t.alias,subscribe:t.subscribe,autoPush:t.autoPush,confirmPublicEgress:t.consent})),onSuccess:t=>{rs(s,t)},onSettled:()=>{cs(s)}})}function Fa(){const s=ie();return je({mutationFn:t=>(oe(s),fe({op:"hub.skillSubscribe",requestId:t.requestId,hubId:t.remoteId,hubSource:ns(G.radientBaseUrl),visibility:t.scope.visibility,tenantId:t.scope.tenantId,localAlias:t.alias})),onSuccess:t=>{rs(s,t)},onSettled:()=>{cs(s)}})}function $a(){const s=ie();return je({mutationFn:t=>(oe(s),fe({op:"hub.skillUnpull",requestId:t.requestId,linkId:t.linkId})),onSuccess:t=>{rs(s,t)},onSettled:()=>{cs(s)}})}function za(){const s=ie();return je({mutationFn:t=>(oe(s),fe({op:"hub.skillPublish",requestId:t.requestId,...t.draft,dryRun:t.previewReceipt===void 0,...t.previewReceipt?{previewReceipt:t.previewReceipt,confirmPublish:!0}:{}})),onSuccess:t=>{t.local_link_receipt?.state==="complete"&&(s.invalidateQueries({queryKey:as}),s.invalidateQueries({queryKey:["desktop","skills"]}),s.invalidateQueries({queryKey:["hub-skills"]}))}})}const Ma=/\/+$/;function Cs(s){return s.replace(Ma,"")}function Da(s,t){return t.visibility==="public"?s.visibility==="public"&&!s.tenant_id:s.visibility==="org"&&s.tenant_id===t.tenantId}function Je(s){const t=s.id??s.hub_id??"",a=s.tenantId??s.tenant_id??"";return`${t}\0${s.visibility}\0${a}`}function qa(s,t){const a=Cs(t),i=new Map;for(const n of s??[])n.kind==="skill"&&Cs(n.hub_source)===a&&i.set(Je({hub_id:n.hub_id,visibility:n.visibility,tenantId:n.tenant_id}),n);return i}function Is(s,t,a=!0){if(!a)return{kind:"unknown"};if(!s)return{kind:"not-present"};const i=Ge(s);return i==="present"&&(s.pull.state==="available"||t?.state==="available"&&!t.error_class)?{kind:"update",link:s,automatic:t?.auto_will_apply===!0||s.auto_will_apply}:i==="absent"?s.policy.subscribe?{kind:"subscribed",link:s}:{kind:"detached",link:s}:s.policy.subscribe?{kind:"pulled",link:s}:{kind:"manual",link:s}}function Ua(s){return s?"policy":"create"}function Ha(s){return JSON.stringify({op:"pull",selected:s.selected,scope:s.scope,localAlias:s.localAlias,subscribe:s.subscribe,autoPush:s.autoPush,consent:s.consent})}function Ba({scope:s,source:t,verifiedCas:a,enabled:i=!0,heading:n=!0}){ke();const u=r.useId(),[m,O]=r.useState(""),[p,v]=r.useState(""),[L,_]=r.useState(ha),[b,h]=r.useState(null),[E,f]=r.useState(!1),w=za(),I=r.useRef(null),F=ce({queryKey:["desktop","skills","hub-publication"],queryFn:()=>fe({op:"skills.list"}),staleTime:3e4,retry:!1}),T=`${s.visibility}:${s.tenantId??""}`,g=r.useRef(T);r.useEffect(()=>{g.current!==T&&(g.current=T,_(y=>({...y,autoPush:!1,confirmPublicEgress:!1})),h(null),f(!0))},[T]);const R={sourceSkill:m,localAlias:p,visibility:s.visibility,tenantId:s.tenantId,...L},k=b?xa(b,R):!1;r.useEffect(()=>{if(!b)return;const y=setTimeout(()=>{h(null),f(!0)},Math.max(0,Math.min(Date.parse(b.expires_at)-Date.now(),2147483647)));return()=>clearTimeout(y)},[b]);const j=y=>{if(!i||w.isPending||!m||!p||y&&!k)return;const o=JSON.stringify({draft:R,receipt:y?b?.preview_receipt:null}),x=I.current&&I.current.tuple===o&&(y||w.error)?I.current:{tuple:o,id:crypto.randomUUID()};I.current=x,y||(h(null),f(!1)),w.mutate({requestId:x.id,draft:R,...y&&b?{previewReceipt:b.preview_receipt}:{}},{onSuccess:A=>{A.preview?(h(A.preview),f(!1)):ws(A)&&h(null)}})};return e.jsxs("section",{className:"flex min-w-0 flex-col gap-4","data-hub-skill-publication":!0,children:[n&&e.jsx("h3",{className:"text-heading text-ink",children:l("ui.hub.skills.publish_title")}),e.jsx("label",{htmlFor:`${u}-source`,className:"text-body-sm text-ink",children:l("ui.hub.skills.select_authored")}),e.jsxs("select",{id:`${u}-source`,"data-testid":"hub-skill-publish-source",value:m,disabled:w.isPending||!i,className:"rounded-md border border-control bg-surface px-3 py-2 text-body-sm text-ink",onChange:y=>{O(y.target.value),v(y.target.value),h(null),_(o=>({...o,autoPush:!1,confirmPublicEgress:!1}))},children:[e.jsx("option",{value:"",children:l("ui.hub.skills.select_authored")}),F.data?.data.skills.map(y=>e.jsx("option",{value:y.name,children:y.name},y.name))]}),e.jsx("label",{htmlFor:`${u}-alias`,className:"text-body-sm text-ink",children:l("ui.hub.subscriptions.alias")}),e.jsx(Ie,{id:`${u}-alias`,"data-testid":"hub-skill-publish-alias",value:p,disabled:w.isPending||!i,onChange:y=>{v(y.target.value),_(o=>({...o,autoPush:!1,confirmPublicEgress:!1}))}}),e.jsx("p",{className:"text-meta text-ink-muted",children:l("ui.hub.skills.text_limits")}),e.jsx(ba,{value:L,onChange:_,source:t,item:m||p,visibility:s.visibility,organization:s.organization,destinationKey:`${T}:${m}`,canEnableAutoPush:a,disabled:w.isPending||!i}),F.isLoading&&e.jsx("output",{className:"text-meta text-ink-muted",children:l("ui.hub.skills.loading")}),F.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:l("ui.hub.status.other_error")}),w.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:l("ui.hub.links.action_failed",{direction:l("ui.hub.links.direction_push"),item:m||p,source:t})}),(E||b&&!k&&b.can_confirm)&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:l("ui.hub.links.preview_changed")}),b&&b.visibility===s.visibility&&b.tenant_id===s.tenantId&&e.jsxs("div",{className:"flex min-w-0 flex-col gap-3",children:[e.jsx("h4",{className:"text-body-sm text-ink",children:l("ui.hub.links.preview_payload",{source:t})}),e.jsx(Ms,{readOnly:!0,rows:12,"aria-label":l("ui.hub.links.preview_payload",{source:t}),value:JSON.stringify(b.proposal.fields,null,2),className:"max-h-96 bg-sunken text-mono-sm"}),b.warnings.map((y,o)=>e.jsx("p",{className:"break-words text-body-sm text-warning",children:y},`${o}-${y}`)),b.reason&&e.jsx("p",{className:"text-body-sm text-warning",children:ta(b.reason)})]}),w.data?.publication===null&&w.data.local_link_receipt?.state==="pending-reconciliation"&&e.jsx("output",{className:"text-body-sm text-warning","data-testid":"hub-skill-pending-reconcile",children:l("ui.hub.links.publication_pending")}),w.data?.publication&&e.jsx("output",{className:"text-body-sm text-ink","data-testid":"hub-skill-published",children:ws(w.data)?l("ui.hub.links.published",{item:w.data.link?.name??p,source:w.data.link?Gs(w.data.link):t}):l("ui.hub.skills.policy_pending")}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(P,{variant:"outline","data-testid":"hub-skill-publish-preview",disabled:!i||w.isPending||!m||!p,onClick:()=>j(!1),children:l("ui.hub.subscriptions.preview_publish")}),e.jsx(P,{"data-testid":"hub-skill-publish-confirm",disabled:!i||w.isPending||!k,onClick:()=>j(!0),children:l("ui.hub.links.confirm_publish")})]})]})}const Ka={available:"text-accent",applied:"text-success",failed:"text-danger",review:"text-warning",updating:"text-ink-muted"},Qa={available:"ui.hub.skills.update_available",applied:"ui.hub.skills.update_applied",failed:"ui.hub.skills.update_failed",review:"ui.hub.links.mark_review",updating:"ui.hub.links.mark_busy"},Va={"not-present":"ui.hub.skills.not_downloaded",subscribed:"ui.hub.skills.subscribed_absent",pulled:"ui.hub.skills.pulled",manual:"ui.hub.skills.manual",detached:"ui.hub.skills.detached"};function Rs(s,t,a){const i=t?ca(t):null;return i&&(s.kind==="update"||a&&(t?.state==="applied"||t?.state==="failed"||t?.error_class))?i:s.kind==="update"?{kind:"available",auto:s.automatic}:null}function As(s,t){return s.kind==="unknown"?t:s.kind!=="update"?l(Va[s.kind]):l(s.link.policy.subscribe?"ui.hub.skills.pulled":"ui.hub.skills.manual")}function Es({mark:s}){return ke(),s?e.jsxs("span",{"data-hub-mark-state":s.kind,className:U("flex shrink-0 items-center gap-1 text-meta",Ka[s.kind]),children:[e.jsx(oa,{mark:s}),e.jsx("span",{children:l(Qa[s.kind])})]}):null}function Os(s,t){const a=s.publisher?.trim();return a?l("ui.hub.skills.published_by",{publisher:a}):s.visibility==="org"?t??l("ui.hub.links.source_unavailable"):l("ui.hub.skills.public_hub")}function Wa({scope:s,signedIn:t,accessible:a=!0}){ke();const i=r.useId(),[n,u]=r.useState(1),[m,O]=r.useState(""),[p,v]=r.useState(null),[L,_]=r.useState(!1),[b,h]=r.useState("unsubscribe"),[E,f]=r.useState(!1),w=r.useRef(null),I=s.visibility==="public"?l("ui.hub.links.source_public"):s.organization?l("ui.hub.links.source_private",{organization:s.organization}):l("ui.hub.links.source_unavailable"),F=Ce(),T=a&&re(F.data,"hub_updates"),g=et(s,n,a&&(s.visibility==="public"||t)),R=Ts(g.data?.contract),k=Oa(s,p,R&&a),j=La(),y=Fa(),o=$a(),x=aa(),A=ia(a&&re(F.data,"hub_links")),z=na(T),H=r.useMemo(()=>qa(A.data?.links,ns(G.radientBaseUrl)),[A.data]),M=r.useMemo(()=>la(z.data),[z.data]),q=j.data?.link?.link_id,N=!A.isLoading&&!A.error,D=A.error?l("ui.hub.skills.inventory_unknown"):l("ui.hub.links.loading"),se=k.data?.visibility===s.visibility&&(s.visibility==="public"?!k.data.tenant_id:k.data.tenant_id===s.tenantId),te=a&&!k.error&&!g.error&&se&&Ts(k.data?.sync_contract)&&!!k.data?.revision,de=(g.data?.rows??[]).filter(d=>Da(d,s)),ye=de.filter(d=>`${d.name} ${d.description}`.toLocaleLowerCase().includes(m.toLocaleLowerCase())),Q=de.find(d=>d.id===p),S=Q?H.get(Je({id:Q.id,visibility:Q.visibility,tenantId:Q.tenant_id??null})):void 0,ve=S?M.get(Ns("skill",S.name)):void 0,ue=Is(S,ve,N),ee=S?Ge(S)==="present":!1,Ae=d=>{const $=H.get(Je({id:d.id,visibility:d.visibility,tenantId:d.tenant_id??null})),X=$?M.get(Ns("skill",$.name)):void 0;return{link:$,update:X,state:Is($,X,N)}},me=d=>(w.current?.tuple!==d&&(w.current={tuple:d,id:crypto.randomUUID()}),w.current.id),ne=d=>{if(!p||!te||!t)return;const $=d?.name??Q?.name??"";if(!$)return;const X=d?d.policy.subscribe:!1,xe=d?.policy.auto_push??!1,Ne=!1;j.mutate({requestId:me(Ha({selected:p,scope:s,localAlias:$,subscribe:X,autoPush:xe,consent:Ne})),remoteId:p,scope:s,alias:$,subscribe:X,autoPush:xe,consent:Ne})},Ee=()=>{if(!p||!te||!t)return;if(Ua(S)==="policy"&&S){if(S.policy.subscribe||x.isPending)return;h("subscribe"),x.mutate({link:S,patch:{subscribe:!0}});return}const d=Q?.name??"";d&&y.mutate({requestId:me(JSON.stringify({op:"subscribe",selected:p,scope:s,localAlias:d})),remoteId:p,scope:s,alias:d})},Oe=()=>{S&&o.mutate({requestId:me(JSON.stringify({op:"unpull",link:S.link_id})),linkId:S.link_id},{onSuccess:()=>{j.reset(),y.reset()}})},V=()=>{!S||S.policy.subscribe===!1||x.isPending||!x.canWrite||(h("unsubscribe"),x.mutate({link:S,patch:{subscribe:!1}}))},J=t&&R&&a&&!g.error,he=g.data?.total??de.length,B=g.error?null:g.isLoading?l("ui.hub.skills.loading"):s.organization?l("ui.hub.skills.count_shared",{count:he,organization:s.organization}):l("ui.hub.skills.count",{count:he});return e.jsxs("section",{className:"flex min-w-0 flex-col gap-4","data-hub-skills-library":!0,children:[s.visibility==="org"&&!t?e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:l("ui.hub.status.no_credential")}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:U("flex min-w-56 max-w-md 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(qs,{"aria-hidden":"true",className:"ml-2 shrink-0 text-ink-dim"}),e.jsx(Ie,{id:`${i}-search`,type:"search","data-testid":"hub-skill-search",value:m,placeholder:l("ui.hub.skills.search"),"aria-label":l("ui.hub.skills.search"),onChange:d=>O(d.target.value),className:"h-8 min-w-0 flex-1 border-0 bg-transparent outline-none"})]}),J&&e.jsx(P,{variant:"secondary","data-testid":"hub-skill-publish-open",onClick:()=>f(!0),children:l("ui.hub.skills.publish_title")})]}),B!==null&&e.jsx("p",{"aria-live":"polite",className:"text-meta text-ink-dim","data-testid":"hub-skill-status",children:s.organization||g.isLoading?e.jsx("span",{"data-testid":"hub-skill-source",children:B}):e.jsxs(e.Fragment,{children:[e.jsx("span",{children:B})," · ",e.jsx("span",{"data-testid":"hub-skill-source",children:l("ui.hub.skills.public_hub")})]})}),g.error&&e.jsxs("div",{role:"alert",className:"flex flex-col items-start gap-2 text-body-sm text-warning",children:[e.jsx("p",{children:l("ui.hub.skills.catalogue_failed",{source:I})}),e.jsx(P,{variant:"outline",className:"self-start",disabled:g.isFetching,onClick:()=>void g.refetch(),children:l("ui.hub.links.retry")})]}),g.isSuccess&&!R&&e.jsx("p",{className:"text-body-sm text-warning",children:l("ui.hub.skills.unavailable")}),R&&e.jsxs(e.Fragment,{children:[ye.length===0&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:l(m?"ui.hub.skills.search_empty":"ui.hub.skills.remote_empty")}),e.jsx("ul",{className:"grid list-none grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6 p-0",children:ye.map(d=>{const $=Ae(d),X=Rs($.state,$.update,$.link?Ge($.link)==="present":!1);return e.jsx("li",{className:"min-w-0",children:e.jsxs("button",{type:"button","aria-haspopup":"dialog","aria-expanded":p===d.id,"aria-label":l("ui.hub.skills.open_detail",{item:d.name}),"data-testid":"hub-skill-open","data-skill-id":d.id,"data-skill-state":$.state.kind,onClick:()=>{v(d.id),j.reset(),y.reset(),o.reset(),x.reset()},className:U("flex h-full w-full flex-col overflow-hidden rounded-md bg-surface text-left","transition-colors duration-fast ease-out-quart hover:bg-elevated","focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-1"),children:[e.jsxs("span",{className:"flex min-h-0 flex-1 flex-col gap-2 p-4",children:[e.jsx("span",{className:"truncate font-medium text-heading text-ink",children:d.name}),d.description?e.jsx("span",{className:"line-clamp-3 text-body-sm text-ink-muted",children:d.description}):null,e.jsx("span",{className:"mt-auto truncate text-ink-dim text-meta",children:Os(d,s.organization)})]}),e.jsxs("span",{className:"flex items-center justify-between gap-2 border-t border-hairline px-4 py-2 text-meta",children:[e.jsx("span",{className:"truncate text-ink-muted",children:As($.state,D)}),e.jsx(Es,{mark:X})]})]})},d.id)})}),e.jsx(is,{page:n,count:g.data?.pages??1,onChange:u,ariaLabel:l("ui.hub.skills.title")})]})]}),!a&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:l("ui.hub.status.access_lost")}),e.jsx(qe,{open:!!p&&R,onOpenChange:d=>{d||v(null)},children:e.jsxs(Ue,{"data-hub-skill-detail":"",className:"max-h-[85vh] overflow-y-auto sm:max-w-2xl",children:[e.jsxs(He,{children:[e.jsx(Be,{"data-testid":"hub-skill-detail-name",children:k.data?.name??Q?.name??l("ui.hub.skills.title")}),e.jsx(Ke,{children:k.data&&se?Os(k.data,s.organization):I})]}),k.isLoading&&e.jsx("output",{className:"text-meta text-ink-muted",children:l("ui.hub.skills.loading")}),k.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:l("ui.hub.status.other_error")}),k.data&&se&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("p",{className:"text-body-sm text-ink-muted",children:[As(ue,D),e.jsx("span",{"aria-hidden":"true",className:"mx-1.5",children:"·"}),l("ui.hub.skills.revision",{revision:String(k.data.content_revision)})]}),e.jsx(Es,{mark:Rs(ue,ve,ee)})]}),e.jsx("p",{"data-testid":"hub-skill-description",className:"max-w-3xl select-text whitespace-pre-wrap break-words text-body-sm text-ink-muted",children:k.data.description}),S&&ee&&S.local_path&&e.jsx("p",{"data-testid":"hub-skill-local-path",className:"break-words font-mono text-meta text-ink-dim",children:l("ui.hub.skills.local_path",{path:`⁨${S.local_path}⁩`})}),e.jsx("h4",{className:"text-body-sm text-ink",children:l("ui.hub.skills.files")}),e.jsx("p",{className:"text-meta text-ink-muted",children:l("ui.hub.skills.file_count",{count:k.data.files.length})}),k.data.files.map(d=>e.jsxs("details",{className:"min-w-0",children:[e.jsx("summary",{className:"break-words text-mono-sm text-ink",children:d.path}),e.jsx(Ms,{readOnly:!0,rows:12,"aria-label":d.path,value:d.content,className:"max-h-96 bg-sunken text-mono-sm"})]},d.path)),S&&e.jsxs("div",{className:"flex flex-col gap-2 border-t border-hairline pt-3",children:[e.jsx(ra,{link:S}),S.policy.subscribe&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(P,{variant:"outline",size:"sm","data-testid":"hub-skill-unsubscribe",disabled:x.isPending||!x.canWrite,onClick:V,children:l("ui.hub.skills.unsubscribe")}),e.jsx("span",{className:"text-meta text-ink-muted",children:l("ui.hub.skills.unsubscribe_help")})]}),x.error&&e.jsx("p",{role:"alert",className:"text-meta text-danger",children:l("ui.hub.subscriptions.save_failed",{setting:b==="subscribe"?l("ui.hub.subscriptions.subscribe"):l("ui.hub.skills.unsubscribe"),source:I})})]}),S&&ee&&e.jsx(pa,{kind:"skill",name:S.name,enabled:T}),j.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger","data-testid":"hub-skill-pull-failed",children:l(Ps(j.error)?"ui.hub.skills.local_exists":"ui.hub.skills.pull_failed")}),j.data&&!j.data.reports?.some(d=>d.applied||d.outcome==="unchanged")&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger","data-testid":"hub-skill-pull-failed",children:l("ui.hub.skills.pull_failed")}),j.data?.link&&j.data.reports?.some(d=>d.link_id===q&&d.direction==="pull"&&d.applied)&&e.jsx("output",{"data-testid":"hub-skill-installed",className:"text-body-sm text-ink",children:l("ui.hub.skills.installed_alias",{item:j.data.link.name,source:Gs(j.data.link)})}),o.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger","data-testid":"hub-skill-unpull-failed",children:l("ui.hub.skills.unpull_failed")}),y.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger","data-testid":"hub-skill-subscribe-failed",children:l(Ps(y.error)?"ui.hub.skills.local_exists":"ui.hub.skills.subscribe_failed")}),!t&&e.jsx("p",{className:"text-meta text-ink-muted",children:l("ui.hub.status.no_credential")}),(!S||!ee)&&e.jsxs(Qe,{className:"flex-row flex-wrap justify-start gap-2",children:[e.jsx(P,{"data-testid":"hub-skill-download",disabled:!t||!te||j.isPending||!N,"aria-label":l("ui.hub.skills.pull_title",{item:k.data.name,source:I}),onClick:()=>ne(S),children:l("ui.hub.skills.download")}),!S?.policy.subscribe&&e.jsx(P,{variant:"outline","data-testid":"hub-skill-subscribe",disabled:!t||!te||!N||y.isPending||x.isPending||(S?!x.canWrite:!1),onClick:Ee,children:l("ui.hub.subscriptions.subscribe")})]}),S&&ee&&e.jsx(Qe,{className:"flex-row flex-wrap justify-start gap-2",children:e.jsx(P,{variant:"outline","data-testid":"hub-skill-unpull",disabled:o.isPending,onClick:()=>{o.reset(),_(!0)},children:l("ui.hub.skills.unpull")})}),(!S||!ee)&&e.jsx("p",{className:"text-meta text-ink-muted",children:S?.policy.subscribe?l("ui.hub.skills.download_help"):l("ui.hub.skills.subscribe_help")})]})]})}),e.jsx(qe,{open:L,onOpenChange:d=>{d||_(!1)},children:e.jsxs(Ue,{className:"sm:max-w-md",children:[e.jsxs(He,{children:[e.jsx(Be,{children:l("ui.hub.skills.unpull_title",{item:k.data?.name??S?.name??""})}),e.jsx(Ke,{children:l("ui.hub.skills.unpull_body")})]}),e.jsxs(Qe,{children:[e.jsx(P,{variant:"outline",onClick:()=>_(!1),children:l("ui.hub.subscriptions.cancel")}),e.jsx(P,{"data-testid":"hub-skill-unpull-confirm",disabled:o.isPending,onClick:()=>{Oe(),_(!1)},children:l("ui.hub.skills.unpull")})]})]})}),e.jsx(qe,{open:E,onOpenChange:f,children:e.jsxs(Ue,{className:"max-h-[85vh] overflow-y-auto sm:max-w-2xl",children:[e.jsxs(He,{children:[e.jsx(Be,{children:l("ui.hub.skills.publish_title")}),e.jsx(Ke,{children:I})]}),e.jsx(Ba,{scope:s,source:I,verifiedCas:R&&a&&t,enabled:R&&a&&t,heading:!1})]})})]})}const st={all:["org-teams"],list:s=>[...st.all,"list",s]},tt=({tenantId:s,enabled:t=!0})=>{const a=ce({queryKey:st.list(s??""),queryFn:async()=>(await da(s)).result??{teams:[]},enabled:t&&!!s,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,retryOnMount:!1,retry:es});return{...a,teams:a.data?.teams??[]}},Ya=(s,t)=>{const a=s?.name?.trim()||t?.trim()||"Team",i=s?.renamed_from?.trim()||null;return s?.invalid_name===!0&&i?{level:"warning",message:`Pulled "${a}". The published name "${i}" is not usable locally, so the team was stored as "${a}".`}:i?{level:"success",message:`Pulled "${a}" (you already have a team called "${i}").`}:{level:"success",message:`Pulled team "${a}".`}},at=()=>{const s=ie();return je({mutationFn:async({teamId:t,tenantId:a})=>{if(!G.baseUrl)throw new Error("Local Operator API URL is not configured.");return Ot.pullOrgTeamFromRadient(G.baseUrl,t,a)},onSuccess:(t,a)=>{const i=Ya(t.result,a.name);i.level==="warning"?At(i.message):Et(i.message),s.invalidateQueries({queryKey:["desktop","teams"]})},onError:t=>{console.error("Pulling an organization team failed:",t)}})},Ga=/^v/i,it=s=>s.members.reduce((t,a)=>t+a.count,0),Ja=s=>s.count>1?`${s.role} ×${s.count}`:s.role,Xe=s=>s.members.map(Ja).join(", "),nt=s=>{const t=(s.version??"").trim().replace(Ga,"").trim();return t===""?null:t},lt=s=>{const t=s.account_metadata?.name?.trim();return t||null},Xa=s=>{const t=(s.description??"").trim();return t===""?null:t},Ze=240,Za=Ze/2,ei=(s,t)=>{if(t||s.length<=Ze)return s;const a=s.slice(0,Ze),i=a.lastIndexOf(" ");return`${(i>=Za?a.slice(0,i):a).trimEnd()}…`},Pe=s=>fa(s,"d MMM yyyy"),Te=s=>{if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t},Ls=(s,t,a)=>{const i=a-t.getTime();let n;return i<0?n=Pe(t):i<6e4?n="just now":n=`${Qt(t,new Date(a))} ago`,{label:s,when:n,iso:t.toISOString(),exact:Pe(t)}},si=(s,t=Date.now())=>{const a=Te(s.updated_at);if(a)return Ls("updated",a,t);const i=Te(s.created_date);return i?Ls("created",i,t):null},ti=s=>{const t=Te(s.created_date),a=Te(s.updated_at);return{created:t?Pe(t):null,updated:a?Pe(a):null}},ai=s=>s==="role"?"Role":s==="specialist"?"Specialist":s,ii=["refresh-hub","retry","sign-in"],ni=({tenantId:s,orgName:t})=>{const{teams:a,isLoading:i,isFetching:n,isError:u,error:m,refetch:O}=tt({tenantId:s}),p=Js(m),v=at(),[L,_]=r.useState(null),[b,h]=r.useState(null),E=r.useRef(new Map),f=r.useRef(null);r.useEffect(()=>{v.isPending||f.current===null||(E.current.get(f.current)?.focus(),f.current=null)},[v.isPending]);const[w,I]=r.useState(!1),[F,T]=r.useState(()=>new Set),g=(o,x)=>T(A=>{const z=new Set(A);return x?z.add(o):z.delete(o),z}),R=(o,x)=>{o.key!=="Escape"||!F.has(x)||(o.target instanceof Element?o.target:null)?.closest('[data-testid="org-team-pull-error"]')||(g(x,!1),o.currentTarget.querySelector("button[aria-expanded]")?.focus(),o.preventDefault())},k=r.useMemo(()=>{if(!Us(v.error))return null;const o=a.find(x=>x.id===L);return Bs({code:v.error.code,message:v.error.message,details:v.error.details},{name:o?.name??"this team",hubAgentId:null,surface:"pull"})},[v.error,L,a]),j=(o,x)=>{switch(o){case"refresh-hub":O();break;case"retry":y(x);break;case"sign-in":I(!0);break}},y=o=>{v.isPending||(f.current=o.id,_(null),h(o.id),v.mutate({teamId:o.id,tenantId:s,name:o.name},{onSettled:()=>h(null),onError:()=>_(o.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(We,{}),e.jsx(We,{}),e.jsx(We,{})]}),!i&&u&&e.jsxs(be,{variant:p?"warning":"danger",className:"m-4 w-auto","data-testid":"org-teams-error",children:[e.jsx(pe,{children:p==="plan"?"That organization needs an active Team plan":p==="no_access"?"You do not have access to that organization":"Teams could not be loaded"}),e.jsx(ge,{children:p==="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.`:p==="no_access"?`You are not a member of ${t??"that organization"}, so its teams are not listed here. An owner can invite you again.`:ss("The teams shared with this organization could not be read.",m)}),p!=="no_access"&&e.jsx("div",{className:"mt-2",children:e.jsx(P,{variant:"primary",size:"sm",onClick:()=>void O(),disabled:n,"aria-busy":n,children:n?"Trying…":"Try again"})})]}),!i&&!u&&a.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&&!u&&a.length>0&&e.jsx("ul",{className:"flex flex-col divide-y divide-hairline",children:a.map(o=>e.jsxs("li",{className:U(rt,"transition-colors duration-fast ease-out-quart hover:bg-elevated first:rounded-t-md last:rounded-b-md"),onKeyDown:x=>R(x,o.id),children:[e.jsx(Hs,{className:"min-w-0",open:F.has(o.id),onOpenChange:x=>g(o.id,x),summaryAlign:"firstLine",triggerClassName:"min-w-0",chevronClassName:"text-ink-dim mt-1",rowClassName:"py-0",summary:e.jsx(ci,{team:o,expanded:F.has(o.id)}),trailing:e.jsx("div",{className:"-mt-1 ml-3 shrink-0 self-start",children:e.jsx(P,{ref:x=>{x?E.current.set(o.id,x):E.current.delete(o.id)},variant:"secondary",size:"sm",onClick:()=>y(o),disabled:v.isPending,"aria-label":`Pull team ${ae(o.name)}`,children:b===o.id?"Pulling…":"Pull"})}),children:e.jsx(oi,{team:o})}),L===o.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:k?.body??v.error?.message??`"${ae(o.name)}" could not be pulled.`}),k?.actions.filter(x=>ii.includes(x)).map(x=>e.jsx(P,{variant:"primary",size:"sm",onClick:()=>j(x,o),children:Ks[x]},x)),w&&e.jsx("div",{className:"mt-1","data-testid":"org-team-pull-reauth",children:e.jsx(Xs,{titleText:"Sign in again",descriptionText:"",onSignInSuccess:()=>{I(!1),_(null),O()}})})]})]},o.id))})]})},rt="px-4 py-3",ct=()=>e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",className:"mx-1.5",children:"·"}),e.jsx("span",{className:"sr-only",children:", "})]}),li=({team:s})=>{const t=s.manager?.trim(),a=it(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(ct,{}):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:[a," ",a===1?"member":"members",":"]})," ",e.jsx("span",{className:"text-ink-muted",children:Xe(s)})]})]})},ri=({team:s})=>{const t=s.project?.trim(),a=lt(s),i=si(s),n=[];return t&&n.push({key:"project",node:t}),a&&n.push({key:"author",node:a}),i&&n.push({key:"recency",node:e.jsxs(e.Fragment,{children:[i.label," ",e.jsx(le,{content:i.exact,children:e.jsx("time",{dateTime:i.iso,children:i.when})})]})}),n.length===0?null:e.jsx("span",{className:"block truncate text-ink-dim text-meta",children:n.map((u,m)=>e.jsxs("span",{children:[m>0?e.jsx(ct,{}):null,u.node]},u.key))})},ci=({team:s,expanded:t})=>{const a=Xa(s),i=nt(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:ae(s.name)}),i?e.jsxs("span",{className:"ml-2 shrink-0 text-ink-dim text-meta",children:["v",i]}):null]}),a?e.jsxs(e.Fragment,{children:[e.jsx("span",{...Se,"aria-hidden":"true",className:U("mt-1 select-text break-words text-body-sm text-ink-muted",t?"line-clamp-[12] whitespace-pre-line":"line-clamp-2"),children:a}),e.jsx("span",{className:"sr-only",children:ei(a,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(li,{team:s}),e.jsx(ri,{team:s})]})]})},oi=({team:s})=>{const t=s.manager?.trim(),a=ti(s),i=[a.created?`Created ${a.created}`:null,a.updated?`Updated ${a.updated}`:null].filter(u=>u!==null),n=!!t||s.members.length>0;return e.jsxs("div",{className:"mt-1 flex flex-col gap-2",children:[n||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(u=>e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:u.role}),e.jsx("span",{className:"text-ink-dim text-meta",children:ai(u.kind)}),u.count>1?e.jsxs("span",{className:"text-ink-dim text-meta tabular-nums",children:["×",u.count]}):null]},`${u.kind}:${u.role}`)),n?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]})},We=()=>e.jsxs("div",{className:U(rt,"pl-9"),"data-testid":"org-team-skeleton-row",children:[e.jsx("div",{className:"flex h-[1lh] items-center text-body",children:e.jsx(C,{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(C,{className:"h-3.5 w-full"}),e.jsx(C,{className:"h-3.5 w-2/3"})]}),e.jsx("div",{className:"mt-1 flex h-[1lh] items-center text-meta",children:e.jsx(C,{className:"h-3 w-64"})}),e.jsx("div",{className:"flex h-[1lh] items-center text-meta",children:e.jsx(C,{className:"h-3 w-48"})})]}),ot=(s,t)=>t instanceof Ys?t.message:ss(s,t),di=["refresh-hub","retry","sign-in"],ui=({signedIn:s,onOpenSettings:t})=>{const[a,i]=r.useState(1),[n,u]=r.useState(""),{teams:m,isLoading:O,isFetching:p,isError:v,error:L,refetch:_,pagination:b}=Zs({page:a,perPage:ls}),h=at(),[E,f]=r.useState(null),[w,I]=r.useState(null),F=r.useRef(new Map),T=r.useRef(null);r.useEffect(()=>{h.isPending||T.current===null||(F.current.get(T.current)?.focus(),T.current=null)},[h.isPending]);const g=Vt(n.trim()),R=r.useMemo(()=>g?m.filter(N=>ae(N.name).toLowerCase().includes(g)||(N.description??"").toLowerCase().includes(g)):m,[m,g]),k=N=>{h.isPending||(f(null),I(N.id),T.current=N.id,h.mutate({teamId:N.id,name:N.name},{onSettled:()=>I(null),onError:()=>f(N.id)}))},j=r.useMemo(()=>{if(!Us(h.error))return null;const N=m.find(D=>D.id===E);return Bs({code:h.error.code,message:h.error.message,details:h.error.details},{name:N?.name??"this team",hubAgentId:null,surface:"pull"})},[h.error,E,m]),y=j?.body??(vt(h.error)==="unauthorized"?"The team could not be pulled: this machine has no Radient sign-in for the hub. Sign in on the settings page, then pull again.":"The team could not be pulled."),[o,x]=r.useState(!1),A=(N,D)=>{switch(N){case"refresh-hub":_();break;case"retry":k(D);break;case"sign-in":x(!0);break}},z=O&&m.length===0,H=b?.totalRecords??m.length,M=r.useRef(null),q=N=>{const D=n!=="";u(N),D&&N===""&&M.current?.focus()};return e.jsxs("section",{"aria-label":"Public teams",className:"flex flex-col","data-testid":"agent-hub-public-teams",children:[e.jsx("h2",{className:"sr-only",children:"Public teams"}),e.jsx("p",{className:"mb-3 max-w-3xl text-body-sm text-ink-muted",children:"Public teams are published to the hub by anyone and can be read here without signing in. Pulling one copies it into this machine's local team registry."}),s?null:e.jsxs("div",{className:"mb-3 flex flex-wrap items-center gap-2","data-testid":"agent-hub-public-teams-signed-out",children:[e.jsx("span",{className:"text-meta text-ink-dim",children:"Sign in to Radient to pull a team into this machine."}),e.jsx(P,{variant:"secondary",size:"sm",onClick:t,children:"Open settings to sign in"})]}),e.jsx("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:e.jsxs("div",{className:U("flex min-w-56 max-w-md 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(qs,{"aria-hidden":"true",className:"ml-2 shrink-0 text-ink-dim"}),e.jsx(Ie,{ref:M,type:"search",value:n,onChange:N=>q(N.target.value),placeholder:"Search teams","aria-label":"Search teams",className:"h-8 min-w-0 flex-1 border-0 bg-transparent outline-none","data-testid":"agent-hub-public-teams-search"})]})}),z&&e.jsxs("div",{"aria-hidden":"true",className:"flex max-w-4xl flex-col gap-3","data-testid":"agent-hub-public-teams-loading",children:[e.jsx(Ye,{}),e.jsx(Ye,{}),e.jsx(Ye,{})]}),!z&&v&&e.jsxs(be,{variant:"danger",className:"w-auto max-w-2xl","data-testid":"agent-hub-public-teams-error",children:[e.jsx(pe,{children:"Public teams could not be loaded"}),e.jsx(ge,{children:ot("The public team catalogue could not be read.",L)}),e.jsx("div",{className:"mt-2",children:e.jsx(P,{variant:"primary",size:"sm",onClick:()=>void _(),disabled:p,"aria-busy":p,children:p?"Trying…":"Try again"})})]}),!z&&!v&&m.length===0&&e.jsx("p",{className:"max-w-2xl text-body-sm text-ink-muted","data-testid":"agent-hub-public-teams-empty",children:"No teams have been published to the public hub yet."}),!z&&!v&&m.length>0&&e.jsxs(e.Fragment,{children:[!g||R.length>0?e.jsxs("p",{className:"mb-3 text-meta text-ink-dim","data-testid":"agent-hub-public-teams-status",children:[g?`${R.length} of ${m.length} teams on this page match "${n.trim()}"`:`${H} ${H===1?"team":"teams"} in the public hub`,g?e.jsxs("span",{className:"text-ink-dim",children:[" ","· search covers the teams loaded here"]}):null]}):null,R.length===0?e.jsx("p",{className:"max-w-2xl text-body-sm text-ink-muted","data-testid":"agent-hub-public-teams-search-miss",children:`No team on this page matches "${n.trim()}".`}):e.jsx("ul",{className:"flex max-w-4xl flex-col gap-3",children:R.map(N=>e.jsx(mi,{team:N,pulling:w===N.id,pullPending:h.isPending,onPull:k,pullButtonRef:D=>{D?F.current.set(N.id,D):F.current.delete(N.id)},failed:E===N.id,failureBody:y,treatment:j,onTreatmentAction:A,reauthenticating:o,onReauthenticated:()=>{x(!1),f(null),_()}},N.id))}),!g&&b&&b.totalPages>1&&e.jsx(is,{count:b.totalPages,page:b.page,onChange:N=>{i(N),M.current?.scrollIntoView({block:"nearest"})}})]})]})},mi=({team:s,pulling:t,pullPending:a,onPull:i,failed:n,failureBody:u,treatment:m,onTreatmentAction:O,reauthenticating:p,onReauthenticated:v,pullButtonRef:L})=>{const[_,b]=r.useState(!1),h=Ea({teamId:_?s.id:void 0}),E=ae(s.name),f=nt(s),w=lt(s),I=s.manager?.trim(),F=it(s),T=(s.description??"").trim();return e.jsxs("li",{className:"rounded-md bg-surface p-4","data-testid":"agent-hub-public-team","data-team-name":s.name,children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-baseline",children:[e.jsx("h3",{className:"truncate font-medium text-heading text-ink",children:E}),f?e.jsxs("span",{className:"ml-2 shrink-0 text-ink-dim text-meta",children:["v",f]}):null]}),T?e.jsx("p",{...Se,className:"mt-1 line-clamp-3 max-w-3xl select-text text-body-sm text-ink-muted",children:T}):e.jsx("p",{className:"mt-1 text-body-sm text-ink-dim",children:"No description"}),e.jsxs("p",{className:"mt-2 flex flex-wrap items-baseline gap-x-2 text-meta",children:[I?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-ink-dim",children:"Manager:"}),e.jsx("span",{className:"text-ink-muted",children:I})]}):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:[F," ",F===1?"member":"members",":"]}),e.jsx(le,{content:Xe(s),children:e.jsx("span",{className:"truncate text-ink-muted",children:Xe(s)})})]})]}),w?e.jsxs("p",{className:"mt-1 text-ink-dim text-meta",children:["Published by ",e.jsx("span",{className:"text-ink-muted",children:w})]}):null]}),e.jsxs("div",{className:"flex shrink-0 flex-col items-end gap-2",children:[e.jsx(P,{ref:L,variant:"secondary",size:"sm",onClick:()=>i(s),disabled:a,"aria-label":`Pull team ${E}`,children:t?"Pulling…":"Pull"}),n&&e.jsxs("div",{className:"flex max-w-56 flex-col items-end gap-1","data-testid":"agent-hub-public-team-pull-error",children:[e.jsx("output",{className:"text-right text-meta text-danger",children:u}),m?.actions.filter(g=>di.includes(g)).map(g=>e.jsx(P,{variant:"primary",size:"sm",onClick:()=>O(g,s),children:Ks[g]},g)),p&&e.jsx("div",{"data-testid":"agent-hub-public-team-pull-reauth",children:e.jsx(Xs,{titleText:"Sign in again",descriptionText:"",onSignInSuccess:v})})]})]})]}),e.jsx("div",{className:"mt-2",children:e.jsx(Hs,{summary:"Brief",open:_,onOpenChange:b,className:"w-full",triggerClassName:"w-full",triggerLabel:`View the brief for ${E}`,chevronClassName:"text-ink-dim",children:e.jsx(hi,{detail:h})})})]})},hi=({detail:s})=>{if(s.isLoading)return e.jsxs("div",{className:"flex flex-col gap-1","data-testid":"agent-hub-public-team-brief-loading",children:[e.jsx(C,{className:"h-[1lh] w-2/3"}),e.jsx(C,{className:"h-[2lh] w-full"})]});if(s.isError)return e.jsxs("div",{className:"flex flex-col items-start gap-1",children:[e.jsx("output",{className:"text-meta text-danger",children:ot("This team's brief could not be read.",s.error)}),e.jsx(P,{variant:"primary",size:"sm",onClick:()=>void s.refetch(),disabled:s.isFetching,"aria-busy":s.isFetching,children:s.isFetching?"Trying…":"Try again"})]});const t=s.team;if(!t)return null;const a=(t.instructions??"").trim(),i=(t.project??"").trim();return e.jsxs("div",{className:"flex max-w-3xl flex-col gap-3 text-body-sm","data-testid":"agent-hub-public-team-brief",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("p",{className:"text-ink-dim text-meta",children:"Collaboration brief"}),a?e.jsx("p",{...Se,className:"whitespace-pre-line select-text text-ink-muted",children:a}):e.jsx("p",{className:"text-ink-dim",children:"This team has no collaboration brief."})]}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("p",{className:"text-ink-dim text-meta",children:"Project brief"}),i?e.jsx("p",{...Se,className:"whitespace-pre-line select-text text-ink-muted",children:i}):e.jsx("p",{className:"text-ink-dim",children:"This team has no project brief."})]}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("p",{className:"text-ink-dim text-meta",children:"Roster"}),e.jsxs("ul",{className:"flex flex-col gap-0.5",children:[t.manager?.trim()?e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:t.manager.trim()}),e.jsx("span",{className:"text-ink-dim text-meta",children:"Manager"})]}):null,t.members.length===0?e.jsx("li",{className:"text-ink-dim",children:"No members"}):t.members.map(n=>e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:n.count>1?`${n.role} ×${n.count}`:n.role}),e.jsx("span",{className:"text-ink-dim text-meta",children:n.kind})]},`${n.kind}:${n.role}`))]})]})]})},Ye=()=>e.jsxs("div",{className:"rounded-md bg-surface p-4",children:[e.jsx(C,{className:"h-[1lh] w-1/3"}),e.jsx(C,{className:"mt-1 flex h-[3lh] w-full"}),e.jsx(C,{className:"mt-2 h-[1lh] w-2/3"})]}),xi=(s,t)=>{const[a,i]=r.useState(s);return r.useEffect(()=>{const n=setTimeout(()=>i(s),t);return()=>clearTimeout(n)},[s,t]),a},we=[{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"}],bi=[{value:"name",label:"Name"},{value:"description",label:"Description"}],pi=300,K="public",Fs={agents:"agent-hub-view-agents",teams:"agent-hub-view-teams",skills:"agent-hub-view-skills"},$s="agent-hub-view-panel",gi=()=>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(C,{className:"h-5.5 w-2/3"}),e.jsx(C,{className:"h-3.5 w-full"}),e.jsx(C,{className:"h-3.5 w-full"}),e.jsx(C,{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(C,{className:"h-5.5 w-24"}),e.jsx(C,{className:"h-5.5 w-20"})]}),e.jsx("div",{className:"flex items-center gap-1.5",children:e.jsx(C,{className:"h-5.5 w-24"})})]}),e.jsx(C,{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(C,{className:"size-4"}),e.jsx(C,{className:"h-4 w-6"}),e.jsx(C,{className:"size-4"}),e.jsx(C,{className:"h-4 w-6"}),e.jsx(C,{className:"ml-auto h-7 w-16"})]})]}),Li=()=>{const s=zs(),{isAuthenticated:t}=ts(),[a,i]=r.useState(1),[n]=r.useState(12),[u,m]=r.useState(null),[O,p]=r.useState(""),[v,L]=r.useState("name"),[_,b]=r.useState(we[0].value),[h,E]=r.useState(K),[f,w]=r.useState("agents");ke();const[I,F]=r.useState([]),T=xi(O,pi),g=we.find(c=>c.value===_)??we[0],R=Ce(),k=!R.isError&&re(R.data,"hub_skills"),j=f==="skills"&&!k?"agents":f;r.useEffect(()=>{f==="skills"&&!k&&w("agents")},[f,k]);const y=Lt(),o=Nt(R.data,"radient_org"),x=t?ka(o,y??null):null,{memberships:A}=ua({enabled:Ve(o)}),z=r.useMemo(()=>ga(A),[A]),H=h===K||z.some(c=>c.tenant_id===h);r.useEffect(()=>{!H&&j!=="skills"&&E(K)},[H,j]);const M=h===K?null:z.find(c=>c.tenant_id===h)??null,q=M?.tenant_id,N=M?.tenant_name||null,D=u!==null||T!=="",se=tt({tenantId:q}),te=Zs({page:1,perPage:ls,enabled:h===K}),de=q&&se.isSuccess?se.teams.length:null,ye=te.isSuccess?te.pagination?.totalRecords??null:null,Q=D?null:h===K?ye:de,S=h===K?{visibility:"public",tenantId:null}:{visibility:"org",tenantId:h},ve=H&&(h===K||Ve(o)),ue=et(S,1,k&&ve&&(h===K||t)),ee=ue.isSuccess?ue.data.total:null,Ae=M?.role==="owner"||M?.role==="admin",me=r.useMemo(()=>new Map(A.map(c=>[c.tenant_id,c.tenant_name])),[A]),{data:ne,agents:Ee,isLoading:Oe,isFetching:V,error:J,refetch:he,pagination:B}=zt({page:a,perPage:n,categories:u?[u]:void 0,name:v==="name"&&T||void 0,description:v==="description"&&T||void 0,sort:g.sort,order:g.order,tenantId:q}),d=M?Js(J):null,$=Ee??[],X=V&&ne!==void 0,{statuses:xe,isKnown:Ne,isError:dt,isFetching:Le,refetch:ut}=Wt({agentIds:q?[]:$.map(c=>c.id)}),Fe=r.useRef(null),$e=r.useRef(null),[os,mt]=r.useState(0);r.useEffect(()=>{os!==0&&(Fe.current??$e.current)?.focus()},[os]);const ds=r.useRef(null),ze=r.useRef(!1),Me=r.useMemo(()=>[...new Set((ne?.records??[]).flatMap(c=>c.categories??[]))],[ne]);r.useEffect(()=>{F(c=>Me.every(Y=>c.includes(Y))?c:[...new Set([...c,...Me])])},[Me]);const ht=()=>{m(null),p(""),i(1),mt(c=>c+1)},W=(Oe||V)&&ne===void 0,us=!W&&!D&&(J!==null||$.length===0);r.useEffect(()=>{!ze.current||W||(ze.current=!1,J?ds.current?.focus():(Fe.current??$e.current)?.focus())},[W,J]);const ms=r.useRef(null),xt=c=>{i(c),ms.current?.scrollIntoView({block:"nearest"})},bt=c=>{m(c),i(1)},pt=c=>{p(c),i(1)},gt=c=>{E(c),i(1)},hs=r.useRef(new Map),ft=c=>{L(c),i(1)},kt=B&&!D?B.totalRecords:null,De=q?`shared with ${N??"this organization"}`:"in the public hub",xs=(c,Y)=>`${c} ${Y}${c===1?"":"s"} ${De}`;let Z;return j==="skills"?Z=" ":j==="teams"?q?se.isLoading?Z="Loading teams…":Q!==null?Z=xs(Q,"team"):Z=`Teams ${De}`:Z=" ":W?Z="Loading agents…":B?Z=xs(B.totalRecords,"agent"):Z=`Agents ${De}`,e.jsxs("div",{className:"flex h-full flex-col gap-8 p-6",children:[e.jsx(wt,{title:"Agent Hub",subtitle:"Discover and download agents, teams and skills on Radient",icon:ma}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4",children:[x&&e.jsxs(be,{variant:"warning",className:"max-w-2xl","data-testid":"agent-hub-org-unavailable",children:[e.jsx(pe,{children:"Organizations are unavailable"}),e.jsx(ge,{children:x})]}),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(Pt,{value:j,onValueChange:c=>w(c),children:e.jsx(Tt,{"aria-label":"Browse the hub by type",children:["agents","teams",...k?["skills"]:[]].map(c=>{const Y=c==="agents"?kt:c==="teams"?Q:ee;return e.jsxs(Ct,{value:c,id:Fs[c],"aria-controls":j===c?$s:void 0,"data-testid":`agent-hub-view-${c}`,children:[c==="agents"?"Agents":c==="teams"?"Teams":l("ui.hub.skills.title"),Y!==null&&e.jsx("span",{className:"min-w-[2ch] font-normal text-ink-dim tabular-nums",children:Y})]},c)})})}),z.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:K,label:"Public hub",Icon:Ft},...z.map(c=>({value:c.tenant_id,label:c.tenant_name||"Organization",Icon:ja}))].map(({value:c,label:Y,Icon:jt})=>e.jsxs(P,{ref:bs=>{bs?hs.current.set(c,bs):hs.current.delete(c)},variant:"ghost",size:"sm","aria-pressed":h===c,onClick:()=>gt(c),title:Y,"data-testid":`agent-hub-scope-${c===K?"public":`org-${c}`}`,className:U("max-w-48",h===c&&"bg-surface text-ink hover:bg-surface"),children:[e.jsx(jt,{"aria-hidden":"true"}),e.jsx("span",{className:"truncate",children:Y})]},c))})]})]})]}),e.jsx(It,{id:$s,labelledBy:Fs[j],children:e.jsxs("div",{className:"flex min-h-0 flex-1 flex-row overflow-hidden",children:[j==="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-glass-region":"panel","data-tour-tag":"agent-hub-sidebar-container",children:!us&&e.jsx(_a,{selectedCategory:u,onSelectCategory:bt,categories:I})})}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col overflow-y-auto",children:[j==="agents"&&!us&&e.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:U("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(Ie,{ref:Fe,type:"search",value:O,onChange:c=>pt(c.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(gs,{value:v,onValueChange:ft,children:[e.jsx(fs,{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(ks,{})}),e.jsx(js,{children:bi.map(c=>e.jsx(ys,{value:c.value,children:c.label},c.value))})]})]}),e.jsxs(gs,{value:_,onValueChange:b,children:[e.jsx(fs,{className:"w-48","aria-label":"Sort agents","data-testid":"agent-hub-sort",children:e.jsx(ks,{})}),e.jsx(js,{children:we.map(c=>e.jsx(ys,{value:c.value,children:c.label},c.value))})]})]}),e.jsxs("p",{ref:ms,"aria-live":"polite",className:"mb-3 text-meta text-ink-dim","data-testid":"agent-hub-status",children:[Z,j==="agents"&&X?e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{"data-testid":"agent-hub-updating",children:"Updating…"})]}):null]}),j==="agents"&&e.jsxs(e.Fragment,{children:[t&&dt&&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(P,{variant:"ghost",size:"sm",onClick:()=>void ut(),disabled:Le,"aria-busy":Le,children:Le?"Trying…":"Try again"})]}),W&&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},(c,Y)=>e.jsx(gi,{},Y))}),W&&B===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(C,{className:"h-4 w-24"})}),e.jsx("output",{"aria-live":"polite","data-testid":"agent-hub-outage",className:U(!W&&J&&!d?"block":"sr-only"),children:!W&&J&&!d&&e.jsxs(be,{variant:"danger",className:"max-w-2xl","aria-busy":V,"data-testid":"agent-hub-error",children:[e.jsx(pe,{children:t?"The hub could not be loaded":"Sign in to use the hub"}),e.jsx(ge,{children:t?ss("The agent list could not be loaded.",J):"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(P,{ref:ds,variant:"outline",size:"sm",onClick:()=>{ze.current=!0,he()},disabled:V,"aria-busy":V,children:V?"Trying…":"Try again"})})]})}),!W&&d&&M&&e.jsxs(be,{variant:"warning",className:"max-w-2xl","data-testid":"agent-hub-org-no-access",children:[e.jsx(pe,{children:d==="plan"?"That organization needs an active Team plan":"You do not have access to that organization"}),e.jsx(ge,{children:d==="plan"?`Sharing agents inside an organization is part of the Team plan. An owner of ${M.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 ${M.tenant_name||"that organization"}, so its agents are not listed here. An owner can invite you again.`}),d==="plan"&&e.jsx("div",{className:"mt-2",children:e.jsx(P,{variant:"primary",size:"sm",onClick:()=>void he(),disabled:V,"aria-busy":V,children:V?"Trying…":"Try again"})})]}),!W&&!J&&e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6","aria-busy":X,children:$.length===0?e.jsxs("div",{"data-testid":"agent-hub-empty",className:U("col-span-full w-full flex flex-col items-center gap-2 rounded-md bg-surface px-6 py-10 text-center",!q&&"max-w-2xl justify-self-center"),children:[e.jsx("p",{className:"text-heading text-ink",children:q?"This organization has no shared agents yet.":u?`No agents in ${Qs(u).label}.`:D?"No agents match that search.":"The hub is empty."}),e.jsx("p",{className:"max-w-md text-body-sm text-ink-muted",children:q?`Agents published into ${M?.tenant_name||"this organization"} appear here for its members.`:u?"Nothing in this category yet. Clear the filter to see the whole hub.":D?"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:D?e.jsx(P,{variant:"secondary",onClick:ht,children:u?"Clear filter":"Clear search"}):q&&!Ae?null:e.jsx(P,{ref:$e,variant:"secondary",onClick:()=>s("/agents"),children:"Publish an agent"})})]}):$.map(c=>e.jsx(wa,{agent:c,status:t?xe[c.id]:void 0,viewerStateKnown:t&&Yt(Ne,xe,c.id),orgName:c.visibility==="org"?me.get(c.tenant_id)??null:null},c.id))}),!W&&B&&B.totalPages>1&&e.jsx(is,{count:B.totalPages,page:B.page,onChange:xt})]}),j==="skills"&&(k?e.jsx(Wa,{scope:h===K?{visibility:"public",tenantId:null,organization:null}:{visibility:"org",tenantId:h,organization:N},signedIn:t,accessible:H&&(h===K||Ve(o))},`skills:${h}`):e.jsx("p",{className:"text-body-sm text-warning",children:l("ui.hub.skills.unavailable")})),j==="teams"&&(M?e.jsx(ni,{tenantId:M.tenant_id,orgName:N}):e.jsx(ui,{signedIn:t,onOpenSettings:()=>s("/settings")}))]})]})})]})]})};export{Li as AgentHubPage};
6
+ */const ya=[["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"}]],va=St("circle-ellipsis",ya),Na=({agent:s,isLiked:t,isFavourited:a,onLikeToggle:i,onFavouriteToggle:n,onDownload:u,isLikeActionLoading:m=!1,isFavouriteActionLoading:O=!1,isDownloading:p=!1,actionError:v=null,onRetryAction:E,showActions:_=!0,viewerStateKnown:b=!0,orgName:h=null})=>{const L=zs(),{isAuthenticated:f}=ts(),w=s.description??"",[I,F]=r.useState(!1),T=r.useRef(null),g=r.useCallback(A=>{if(T.current?.disconnect(),T.current=null,!A)return;const z=()=>F(A.scrollHeight-A.clientHeight>1);z();const H=new ResizeObserver(z);H.observe(A),T.current=H},[]),R=f?b?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",k=f?b?a?"Unfavourite agent":"Favourite agent":"Your favourites could not be read, so this is not shown as unfavourited.":"Log in to Radient to favourite agents",j=b?t?"Unlike agent":"Like agent":"Like state unavailable",y=b?a?"Unfavourite agent":"Favourite agent":"Favourite state unavailable",o=s.visibility==="org",x=ae(s.name);return e.jsxs("div",{"data-glass-block":"",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:()=>L(`/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 ${x}`,children:[e.jsx("h3",{className:"truncate font-medium text-heading text-ink",children:x}),o&&e.jsx(Mt,{orgName:h}),e.jsx(le,{content:I?w:"",children:e.jsx("span",{ref:g,className:"line-clamp-3 min-h-0 text-body-sm text-ink-muted",children:w})}),e.jsxs("div",{className:"mt-auto flex flex-col gap-2 pt-2",children:[e.jsx(Dt,{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 ",qt(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":o?"org":f?b?"known":"unknown":"signed-out",children:[!o&&e.jsxs(e.Fragment,{children:[e.jsx(le,{content:R,children:e.jsx("span",{children:e.jsxs(P,{variant:"ghost",size:"sm",onClick:f&&b?()=>i(s.id):void 0,disabled:m||!f||!b,"aria-label":j,className:U(t&&"text-danger"),children:[e.jsx(Gt,{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(le,{content:k,children:e.jsx("span",{children:e.jsxs(P,{variant:"ghost",size:"sm",onClick:f?()=>n(s.id):void 0,disabled:O||!f||!b,"aria-label":y,className:U(a&&"text-warning"),children:[e.jsx(Jt,{fill:a?"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(le,{content:"Downloads",children:e.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 pr-1 text-ink-dim",children:[e.jsx(vs,{"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:p?e.jsx(C,{className:"h-3 w-6"}):(s.download_count??0).toLocaleString()})]})})]}),_&&u&&e.jsx("div",{className:"ml-auto flex shrink-0 items-center",children:e.jsxs(P,{variant:"secondary",size:"sm",onClick:()=>u(s),disabled:p,"aria-label":`Download ${x}`,"data-tour-tag":"agent-hub-download-button",children:[e.jsx(vs,{"data-testid":"agent-download"}),"Get"]})})]}),v&&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:v}),E&&e.jsx(P,{variant:"ghost",size:"sm",onClick:E,children:"Try again"})]})]})},wa=({agent:s,status:t,viewerStateKnown:a=!0,orgName:i=null})=>{const{isAuthenticated:n}=ts(),[u,m]=r.useState(null),O=t?.liked??!1,p=t?.favourited??!1,v=Ut(),E=Ht(),_=Bt(),b=()=>{!n||v.isPending||(m(null),v.mutate({agentId:s.id,isCurrentlyLiked:O},{onError:()=>m("like")}))},h=()=>{!n||E.isPending||(m(null),E.mutate({agentId:s.id,isCurrentlyFavourited:p},{onError:()=>m("favourite")}))},L=()=>{_.isPending||(m(null),_.mutate({agentId:s.id,agentName:s.name},{onError:()=>m("download")}))},f=u?u==="like"?{action:"like",error:v.error,retry:b}:u==="favourite"?{action:"favourite",error:E.error,retry:h}:{action:"download",error:_.error,retry:L}:null;return e.jsx(Na,{agent:s,isLiked:n&&O,isFavourited:n&&p,onLikeToggle:b,onFavouriteToggle:h,onDownload:L,isLikeActionLoading:v.isPending,isFavouriteActionLoading:E.isPending,isDownloading:_.isPending,viewerStateKnown:a,orgName:i,actionError:f?$t(f.action,f.error,ae(s.name)):null,onRetryAction:f?.retry})},Ss=({selected:s,onClick:t,children:a,...i})=>e.jsx("button",{type:"button",onClick:t,"aria-pressed":s,className:U("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?Xt:"text-ink hover:bg-row-hover"),...i,children:a}),_s=Object.keys(Kt),Sa=s=>[...s].sort((t,a)=>{const i=_s.indexOf(t),n=_s.indexOf(a);return i!==-1&&n!==-1?i-n:i!==-1?-1:n!==-1?1:t.localeCompare(a)}),_a=({selectedCategory:s,onSelectCategory:t,categories:a})=>{ke();const i=Sa(s&&!a.includes(s)?[...a,s]:a);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:l("ui.hub.taxonomy.heading")}),e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsxs(Ss,{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(Zt,{size:16,"aria-hidden":"true"})}),l("ui.hub.taxonomy.all")]}),i.map(n=>{const u=Qs(n),m=n==="other"?e.jsx(va,{size:16}):u.icon;return e.jsxs(Ss,{selected:s===n,onClick:()=>t(n),"data-testid":`category-${n}`,children:[e.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:m}),u.label]},n)})]})]})},is=({page:s,count:t,onChange:a,ariaLabel:i="Agent pages"})=>{const n=r.useRef(null),u=r.useRef(null),m=r.useRef(null);return r.useEffect(()=>{const O=m.current;m.current=null,O==="previous"&&n.current?.focus(),O==="next"&&u.current?.focus()},[s]),t<=1?null:e.jsxs("nav",{"aria-label":i,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(P,{variant:"secondary",size:"sm",ref:n,onClick:()=>{s-1<=1&&(m.current="next"),a(s-1)},disabled:s<=1,"aria-label":"Previous page",children:[e.jsx(Rt,{"aria-hidden":"true"}),"Previous"]}),e.jsxs(P,{variant:"secondary",size:"sm",ref:u,onClick:()=>{s+1>=t&&(m.current="previous"),a(s+1)},disabled:s>=t,"aria-label":"Next page",children:["Next",e.jsx(_t,{"aria-hidden":"true"})]})]})]})},Pa=/alias/i;function Ps(s){return s instanceof yt?s.code==="alias-occupied"?!0:s.code==="origin-conflict"&&Pa.test(s.message):!1}const Ta=/\/+$/;function ns(s){const t=s.replace(Ta,"");try{const{pathname:a}=new URL(t);return a===""||a==="/"?`${t}/v1`:t}catch{return`${t}/v1`}}const Ts=s=>s?.skills===1&&s.revision_cas===1;function Ca(s,t=1,a=20){const i=new URL(Vs(s,"skills"));return i.searchParams.set("page",String(t)),i.searchParams.set("per_page",String(a)),Ws(i.toString())}function Ia(s,t){return Ws(Vs(s,"skills",t))}function Ra(s){return Ds({operation:"org_skills.list",tenantId:s})}function Aa(s,t){return Ds({operation:"org_skill.get",tenantId:s,skillId:t})}const ls=12,_e={all:["public-teams"],list:(s,t)=>[..._e.all,"list",{page:s,perPage:t}],detail:s=>[..._e.all,"detail",s]},Re=(s,t)=>t instanceof Ys?t.status===null?!1:t.status>=500&&s<1:s<1,Xs=({page:s=1,perPage:t=ls,enabled:a=!0}={})=>{const i=ce({queryKey:_e.list(s,t),queryFn:()=>ea(G.radientBaseUrl,s,t),select:n=>n.result,enabled:a,retry:Re,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,placeholderData:n=>n});return{...i,teams:i.data?.records??[],isRefreshing:i.isFetching&&i.data!==void 0,pagination:i.data?{page:i.data.page,perPage:i.data.per_page,totalPages:i.data.total_pages,totalRecords:i.data.total_records}:void 0}},La=({teamId:s,enabled:t=!0})=>{const a=ce({queryKey:_e.detail(s??""),queryFn:()=>sa(G.radientBaseUrl,s),select:i=>i.result,enabled:t&&!!s,retry:Re,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,retryOnMount:!1});return{...a,team:a.data}};function oe(s){if(s.getQueryState(ps.capabilities)?.status!=="success"||!re(s.getQueryData(ps.capabilities),"hub_skills"))throw new Error("This backend does not support the complete Hub Skills adapter.")}function et(s,t,a){const i=ie(),n=Ce();return ce({queryKey:["hub-skills",G.radientBaseUrl,s.visibility,s.tenantId,t],enabled:a&&!n.isError&&re(n.data,"hub_skills"),queryFn:async()=>{if(oe(i),s.visibility==="org"){const m=(await Ra(s.tenantId)).result;return{rows:m.skills,pages:1,total:m.skills.length,contract:m.sync_contract}}const u=(await Ca(G.radientBaseUrl,t,20)).result;return{rows:u.records,pages:u.total_pages,total:u.total_records,contract:u.sync_contract}},staleTime:3e4,retry:s.visibility==="org"?es:Re,retryOnMount:!1,refetchOnWindowFocus:!1})}function Oa(s,t,a){const i=ie(),n=Ce();return ce({queryKey:["hub-skill",G.radientBaseUrl,s.visibility,s.tenantId,t],enabled:a&&t!==null&&!n.isError&&re(n.data,"hub_skills"),queryFn:async()=>(oe(i),(s.visibility==="org"?await Aa(s.tenantId,t):await Ia(G.radientBaseUrl,t)).result),staleTime:3e4,retry:s.visibility==="org"?es:Re,retryOnMount:!1})}function rs(s,t){s.setQueryData(as,t.links)}function cs(s){s.invalidateQueries({queryKey:as}),s.invalidateQueries({queryKey:["desktop","skills"]})}function Ea(){const s=ie();return je({mutationFn:t=>(oe(s),fe({op:"hub.skillPull",requestId:t.requestId,hubId:t.remoteId,hubSource:ns(G.radientBaseUrl),visibility:t.scope.visibility,tenantId:t.scope.tenantId,localAlias:t.alias,subscribe:t.subscribe,autoPush:t.autoPush,confirmPublicEgress:t.consent})),onSuccess:t=>{rs(s,t)},onSettled:()=>{cs(s)}})}function Fa(){const s=ie();return je({mutationFn:t=>(oe(s),fe({op:"hub.skillSubscribe",requestId:t.requestId,hubId:t.remoteId,hubSource:ns(G.radientBaseUrl),visibility:t.scope.visibility,tenantId:t.scope.tenantId,localAlias:t.alias})),onSuccess:t=>{rs(s,t)},onSettled:()=>{cs(s)}})}function $a(){const s=ie();return je({mutationFn:t=>(oe(s),fe({op:"hub.skillUnpull",requestId:t.requestId,linkId:t.linkId})),onSuccess:t=>{rs(s,t)},onSettled:()=>{cs(s)}})}function za(){const s=ie();return je({mutationFn:t=>(oe(s),fe({op:"hub.skillPublish",requestId:t.requestId,...t.draft,dryRun:t.previewReceipt===void 0,...t.previewReceipt?{previewReceipt:t.previewReceipt,confirmPublish:!0}:{}})),onSuccess:t=>{t.local_link_receipt?.state==="complete"&&(s.invalidateQueries({queryKey:as}),s.invalidateQueries({queryKey:["desktop","skills"]}),s.invalidateQueries({queryKey:["hub-skills"]}))}})}const Ma=/\/+$/;function Cs(s){return s.replace(Ma,"")}function Da(s,t){return t.visibility==="public"?s.visibility==="public"&&!s.tenant_id:s.visibility==="org"&&s.tenant_id===t.tenantId}function Je(s){const t=s.id??s.hub_id??"",a=s.tenantId??s.tenant_id??"";return`${t}\0${s.visibility}\0${a}`}function qa(s,t){const a=Cs(t),i=new Map;for(const n of s??[])n.kind==="skill"&&Cs(n.hub_source)===a&&i.set(Je({hub_id:n.hub_id,visibility:n.visibility,tenantId:n.tenant_id}),n);return i}function Is(s,t,a=!0){if(!a)return{kind:"unknown"};if(!s)return{kind:"not-present"};const i=Ge(s);return i==="present"&&(s.pull.state==="available"||t?.state==="available"&&!t.error_class)?{kind:"update",link:s,automatic:t?.auto_will_apply===!0||s.auto_will_apply}:i==="absent"?s.policy.subscribe?{kind:"subscribed",link:s}:{kind:"detached",link:s}:s.policy.subscribe?{kind:"pulled",link:s}:{kind:"manual",link:s}}function Ua(s){return s?"policy":"create"}function Ha(s){return JSON.stringify({op:"pull",selected:s.selected,scope:s.scope,localAlias:s.localAlias,subscribe:s.subscribe,autoPush:s.autoPush,consent:s.consent})}function Ba({scope:s,source:t,verifiedCas:a,enabled:i=!0,heading:n=!0}){ke();const u=r.useId(),[m,O]=r.useState(""),[p,v]=r.useState(""),[E,_]=r.useState(ha),[b,h]=r.useState(null),[L,f]=r.useState(!1),w=za(),I=r.useRef(null),F=ce({queryKey:["desktop","skills","hub-publication"],queryFn:()=>fe({op:"skills.list"}),staleTime:3e4,retry:!1}),T=`${s.visibility}:${s.tenantId??""}`,g=r.useRef(T);r.useEffect(()=>{g.current!==T&&(g.current=T,_(y=>({...y,autoPush:!1,confirmPublicEgress:!1})),h(null),f(!0))},[T]);const R={sourceSkill:m,localAlias:p,visibility:s.visibility,tenantId:s.tenantId,...E},k=b?xa(b,R):!1;r.useEffect(()=>{if(!b)return;const y=setTimeout(()=>{h(null),f(!0)},Math.max(0,Math.min(Date.parse(b.expires_at)-Date.now(),2147483647)));return()=>clearTimeout(y)},[b]);const j=y=>{if(!i||w.isPending||!m||!p||y&&!k)return;const o=JSON.stringify({draft:R,receipt:y?b?.preview_receipt:null}),x=I.current&&I.current.tuple===o&&(y||w.error)?I.current:{tuple:o,id:crypto.randomUUID()};I.current=x,y||(h(null),f(!1)),w.mutate({requestId:x.id,draft:R,...y&&b?{previewReceipt:b.preview_receipt}:{}},{onSuccess:A=>{A.preview?(h(A.preview),f(!1)):ws(A)&&h(null)}})};return e.jsxs("section",{className:"flex min-w-0 flex-col gap-4","data-hub-skill-publication":!0,children:[n&&e.jsx("h3",{className:"text-heading text-ink",children:l("ui.hub.skills.publish_title")}),e.jsx("label",{htmlFor:`${u}-source`,className:"text-body-sm text-ink",children:l("ui.hub.skills.select_authored")}),e.jsxs("select",{id:`${u}-source`,"data-testid":"hub-skill-publish-source",value:m,disabled:w.isPending||!i,className:"rounded-md border border-control bg-surface px-3 py-2 text-body-sm text-ink",onChange:y=>{O(y.target.value),v(y.target.value),h(null),_(o=>({...o,autoPush:!1,confirmPublicEgress:!1}))},children:[e.jsx("option",{value:"",children:l("ui.hub.skills.select_authored")}),F.data?.data.skills.map(y=>e.jsx("option",{value:y.name,children:y.name},y.name))]}),e.jsx("label",{htmlFor:`${u}-alias`,className:"text-body-sm text-ink",children:l("ui.hub.subscriptions.alias")}),e.jsx(Ie,{id:`${u}-alias`,"data-testid":"hub-skill-publish-alias",value:p,disabled:w.isPending||!i,onChange:y=>{v(y.target.value),_(o=>({...o,autoPush:!1,confirmPublicEgress:!1}))}}),e.jsx("p",{className:"text-meta text-ink-muted",children:l("ui.hub.skills.text_limits")}),e.jsx(ba,{value:E,onChange:_,source:t,item:m||p,visibility:s.visibility,organization:s.organization,destinationKey:`${T}:${m}`,canEnableAutoPush:a,disabled:w.isPending||!i}),F.isLoading&&e.jsx("output",{className:"text-meta text-ink-muted",children:l("ui.hub.skills.loading")}),F.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:l("ui.hub.status.other_error")}),w.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:l("ui.hub.links.action_failed",{direction:l("ui.hub.links.direction_push"),item:m||p,source:t})}),(L||b&&!k&&b.can_confirm)&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:l("ui.hub.links.preview_changed")}),b&&b.visibility===s.visibility&&b.tenant_id===s.tenantId&&e.jsxs("div",{className:"flex min-w-0 flex-col gap-3",children:[e.jsx("h4",{className:"text-body-sm text-ink",children:l("ui.hub.links.preview_payload",{source:t})}),e.jsx(Ms,{readOnly:!0,rows:12,"aria-label":l("ui.hub.links.preview_payload",{source:t}),value:JSON.stringify(b.proposal.fields,null,2),className:"max-h-96 bg-sunken text-mono-sm"}),b.warnings.map((y,o)=>e.jsx("p",{className:"break-words text-body-sm text-warning",children:y},`${o}-${y}`)),b.reason&&e.jsx("p",{className:"text-body-sm text-warning",children:ta(b.reason)})]}),w.data?.publication===null&&w.data.local_link_receipt?.state==="pending-reconciliation"&&e.jsx("output",{className:"text-body-sm text-warning","data-testid":"hub-skill-pending-reconcile",children:l("ui.hub.links.publication_pending")}),w.data?.publication&&e.jsx("output",{className:"text-body-sm text-ink","data-testid":"hub-skill-published",children:ws(w.data)?l("ui.hub.links.published",{item:w.data.link?.name??p,source:w.data.link?Gs(w.data.link):t}):l("ui.hub.skills.policy_pending")}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(P,{variant:"outline","data-testid":"hub-skill-publish-preview",disabled:!i||w.isPending||!m||!p,onClick:()=>j(!1),children:l("ui.hub.subscriptions.preview_publish")}),e.jsx(P,{"data-testid":"hub-skill-publish-confirm",disabled:!i||w.isPending||!k,onClick:()=>j(!0),children:l("ui.hub.links.confirm_publish")})]})]})}const Ka={available:"text-accent",applied:"text-success",failed:"text-danger",review:"text-warning",updating:"text-ink-muted"},Qa={available:"ui.hub.skills.update_available",applied:"ui.hub.skills.update_applied",failed:"ui.hub.skills.update_failed",review:"ui.hub.links.mark_review",updating:"ui.hub.links.mark_busy"},Va={"not-present":"ui.hub.skills.not_downloaded",subscribed:"ui.hub.skills.subscribed_absent",pulled:"ui.hub.skills.pulled",manual:"ui.hub.skills.manual",detached:"ui.hub.skills.detached"};function Rs(s,t,a){const i=t?ca(t):null;return i&&(s.kind==="update"||a&&(t?.state==="applied"||t?.state==="failed"||t?.error_class))?i:s.kind==="update"?{kind:"available",auto:s.automatic}:null}function As(s,t){return s.kind==="unknown"?t:s.kind!=="update"?l(Va[s.kind]):l(s.link.policy.subscribe?"ui.hub.skills.pulled":"ui.hub.skills.manual")}function Ls({mark:s}){return ke(),s?e.jsxs("span",{"data-hub-mark-state":s.kind,className:U("flex shrink-0 items-center gap-1 text-meta",Ka[s.kind]),children:[e.jsx(oa,{mark:s}),e.jsx("span",{children:l(Qa[s.kind])})]}):null}function Os(s,t){const a=s.publisher?.trim();return a?l("ui.hub.skills.published_by",{publisher:a}):s.visibility==="org"?t??l("ui.hub.links.source_unavailable"):l("ui.hub.skills.public_hub")}function Wa({scope:s,signedIn:t,accessible:a=!0}){ke();const i=r.useId(),[n,u]=r.useState(1),[m,O]=r.useState(""),[p,v]=r.useState(null),[E,_]=r.useState(!1),[b,h]=r.useState("unsubscribe"),[L,f]=r.useState(!1),w=r.useRef(null),I=s.visibility==="public"?l("ui.hub.links.source_public"):s.organization?l("ui.hub.links.source_private",{organization:s.organization}):l("ui.hub.links.source_unavailable"),F=Ce(),T=a&&re(F.data,"hub_updates"),g=et(s,n,a&&(s.visibility==="public"||t)),R=Ts(g.data?.contract),k=Oa(s,p,R&&a),j=Ea(),y=Fa(),o=$a(),x=aa(),A=ia(a&&re(F.data,"hub_links")),z=na(T),H=r.useMemo(()=>qa(A.data?.links,ns(G.radientBaseUrl)),[A.data]),M=r.useMemo(()=>la(z.data),[z.data]),q=j.data?.link?.link_id,N=!A.isLoading&&!A.error,D=A.error?l("ui.hub.skills.inventory_unknown"):l("ui.hub.links.loading"),se=k.data?.visibility===s.visibility&&(s.visibility==="public"?!k.data.tenant_id:k.data.tenant_id===s.tenantId),te=a&&!k.error&&!g.error&&se&&Ts(k.data?.sync_contract)&&!!k.data?.revision,de=(g.data?.rows??[]).filter(d=>Da(d,s)),ye=de.filter(d=>`${d.name} ${d.description}`.toLocaleLowerCase().includes(m.toLocaleLowerCase())),Q=de.find(d=>d.id===p),S=Q?H.get(Je({id:Q.id,visibility:Q.visibility,tenantId:Q.tenant_id??null})):void 0,ve=S?M.get(Ns("skill",S.name)):void 0,ue=Is(S,ve,N),ee=S?Ge(S)==="present":!1,Ae=d=>{const $=H.get(Je({id:d.id,visibility:d.visibility,tenantId:d.tenant_id??null})),Z=$?M.get(Ns("skill",$.name)):void 0;return{link:$,update:Z,state:Is($,Z,N)}},me=d=>(w.current?.tuple!==d&&(w.current={tuple:d,id:crypto.randomUUID()}),w.current.id),ne=d=>{if(!p||!te||!t)return;const $=d?.name??Q?.name??"";if(!$)return;const Z=d?d.policy.subscribe:!1,xe=d?.policy.auto_push??!1,Ne=!1;j.mutate({requestId:me(Ha({selected:p,scope:s,localAlias:$,subscribe:Z,autoPush:xe,consent:Ne})),remoteId:p,scope:s,alias:$,subscribe:Z,autoPush:xe,consent:Ne})},Le=()=>{if(!p||!te||!t)return;if(Ua(S)==="policy"&&S){if(S.policy.subscribe||x.isPending)return;h("subscribe"),x.mutate({link:S,patch:{subscribe:!0}});return}const d=Q?.name??"";d&&y.mutate({requestId:me(JSON.stringify({op:"subscribe",selected:p,scope:s,localAlias:d})),remoteId:p,scope:s,alias:d})},Oe=()=>{S&&o.mutate({requestId:me(JSON.stringify({op:"unpull",link:S.link_id})),linkId:S.link_id},{onSuccess:()=>{j.reset(),y.reset()}})},V=()=>{!S||S.policy.subscribe===!1||x.isPending||!x.canWrite||(h("unsubscribe"),x.mutate({link:S,patch:{subscribe:!1}}))},J=t&&R&&a&&!g.error,he=g.data?.total??de.length,B=g.error?null:g.isLoading?l("ui.hub.skills.loading"):s.organization?l("ui.hub.skills.count_shared",{count:he,organization:s.organization}):l("ui.hub.skills.count",{count:he});return e.jsxs("section",{className:"flex min-w-0 flex-col gap-4","data-hub-skills-library":!0,children:[s.visibility==="org"&&!t?e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:l("ui.hub.status.no_credential")}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:U("flex min-w-56 max-w-md 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(qs,{"aria-hidden":"true",className:"ml-2 shrink-0 text-ink-dim"}),e.jsx(Ie,{id:`${i}-search`,type:"search","data-testid":"hub-skill-search",value:m,placeholder:l("ui.hub.skills.search"),"aria-label":l("ui.hub.skills.search"),onChange:d=>O(d.target.value),className:"h-8 min-w-0 flex-1 border-0 bg-transparent outline-none"})]}),J&&e.jsx(P,{variant:"secondary","data-testid":"hub-skill-publish-open",onClick:()=>f(!0),children:l("ui.hub.skills.publish_title")})]}),B!==null&&e.jsx("p",{"aria-live":"polite",className:"text-meta text-ink-dim","data-testid":"hub-skill-status",children:s.organization||g.isLoading?e.jsx("span",{"data-testid":"hub-skill-source",children:B}):e.jsxs(e.Fragment,{children:[e.jsx("span",{children:B})," · ",e.jsx("span",{"data-testid":"hub-skill-source",children:l("ui.hub.skills.public_hub")})]})}),g.error&&e.jsxs("div",{role:"alert",className:"flex flex-col items-start gap-2 text-body-sm text-warning",children:[e.jsx("p",{children:l("ui.hub.skills.catalogue_failed",{source:I})}),e.jsx(P,{variant:"outline",className:"self-start",disabled:g.isFetching,onClick:()=>void g.refetch(),children:l("ui.hub.links.retry")})]}),g.isSuccess&&!R&&e.jsx("p",{className:"text-body-sm text-warning",children:l("ui.hub.skills.unavailable")}),R&&e.jsxs(e.Fragment,{children:[ye.length===0&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:l(m?"ui.hub.skills.search_empty":"ui.hub.skills.remote_empty")}),e.jsx("ul",{className:"grid list-none grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6 p-0",children:ye.map(d=>{const $=Ae(d),Z=Rs($.state,$.update,$.link?Ge($.link)==="present":!1);return e.jsx("li",{className:"min-w-0",children:e.jsxs("button",{type:"button","aria-haspopup":"dialog","aria-expanded":p===d.id,"aria-label":l("ui.hub.skills.open_detail",{item:d.name}),"data-testid":"hub-skill-open","data-skill-id":d.id,"data-skill-state":$.state.kind,onClick:()=>{v(d.id),j.reset(),y.reset(),o.reset(),x.reset()},className:U("flex h-full w-full flex-col overflow-hidden rounded-md bg-surface text-left","transition-colors duration-fast ease-out-quart hover:bg-elevated","focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-1"),children:[e.jsxs("span",{className:"flex min-h-0 flex-1 flex-col gap-2 p-4",children:[e.jsx("span",{className:"truncate font-medium text-heading text-ink",children:d.name}),d.description?e.jsx("span",{className:"line-clamp-3 text-body-sm text-ink-muted",children:d.description}):null,e.jsx("span",{className:"mt-auto truncate text-ink-dim text-meta",children:Os(d,s.organization)})]}),e.jsxs("span",{className:"flex items-center justify-between gap-2 border-t border-hairline px-4 py-2 text-meta",children:[e.jsx("span",{className:"truncate text-ink-muted",children:As($.state,D)}),e.jsx(Ls,{mark:Z})]})]})},d.id)})}),e.jsx(is,{page:n,count:g.data?.pages??1,onChange:u,ariaLabel:l("ui.hub.skills.title")})]})]}),!a&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:l("ui.hub.status.access_lost")}),e.jsx(qe,{open:!!p&&R,onOpenChange:d=>{d||v(null)},children:e.jsxs(Ue,{"data-hub-skill-detail":"",className:"max-h-[85vh] overflow-y-auto sm:max-w-2xl",children:[e.jsxs(He,{children:[e.jsx(Be,{"data-testid":"hub-skill-detail-name",children:k.data?.name??Q?.name??l("ui.hub.skills.title")}),e.jsx(Ke,{children:k.data&&se?Os(k.data,s.organization):I})]}),k.isLoading&&e.jsx("output",{className:"text-meta text-ink-muted",children:l("ui.hub.skills.loading")}),k.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:l("ui.hub.status.other_error")}),k.data&&se&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("p",{className:"text-body-sm text-ink-muted",children:[As(ue,D),e.jsx("span",{"aria-hidden":"true",className:"mx-1.5",children:"·"}),l("ui.hub.skills.revision",{revision:String(k.data.content_revision)})]}),e.jsx(Ls,{mark:Rs(ue,ve,ee)})]}),e.jsx("p",{"data-testid":"hub-skill-description",className:"max-w-3xl select-text whitespace-pre-wrap break-words text-body-sm text-ink-muted",children:k.data.description}),S&&ee&&S.local_path&&e.jsx("p",{"data-testid":"hub-skill-local-path",className:"break-words font-mono text-meta text-ink-dim",children:l("ui.hub.skills.local_path",{path:`⁨${S.local_path}⁩`})}),e.jsx("h4",{className:"text-body-sm text-ink",children:l("ui.hub.skills.files")}),e.jsx("p",{className:"text-meta text-ink-muted",children:l("ui.hub.skills.file_count",{count:k.data.files.length})}),k.data.files.map(d=>e.jsxs("details",{className:"min-w-0",children:[e.jsx("summary",{className:"break-words text-mono-sm text-ink",children:d.path}),e.jsx(Ms,{readOnly:!0,rows:12,"aria-label":d.path,value:d.content,className:"max-h-96 bg-sunken text-mono-sm"})]},d.path)),S&&e.jsxs("div",{className:"flex flex-col gap-2 border-t border-hairline pt-3",children:[e.jsx(ra,{link:S}),S.policy.subscribe&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(P,{variant:"outline",size:"sm","data-testid":"hub-skill-unsubscribe",disabled:x.isPending||!x.canWrite,onClick:V,children:l("ui.hub.skills.unsubscribe")}),e.jsx("span",{className:"text-meta text-ink-muted",children:l("ui.hub.skills.unsubscribe_help")})]}),x.error&&e.jsx("p",{role:"alert",className:"text-meta text-danger",children:l("ui.hub.subscriptions.save_failed",{setting:b==="subscribe"?l("ui.hub.subscriptions.subscribe"):l("ui.hub.skills.unsubscribe"),source:I})})]}),S&&ee&&e.jsx(pa,{kind:"skill",name:S.name,enabled:T}),j.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger","data-testid":"hub-skill-pull-failed",children:l(Ps(j.error)?"ui.hub.skills.local_exists":"ui.hub.skills.pull_failed")}),j.data&&!j.data.reports?.some(d=>d.applied||d.outcome==="unchanged")&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger","data-testid":"hub-skill-pull-failed",children:l("ui.hub.skills.pull_failed")}),j.data?.link&&j.data.reports?.some(d=>d.link_id===q&&d.direction==="pull"&&d.applied)&&e.jsx("output",{"data-testid":"hub-skill-installed",className:"text-body-sm text-ink",children:l("ui.hub.skills.installed_alias",{item:j.data.link.name,source:Gs(j.data.link)})}),o.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger","data-testid":"hub-skill-unpull-failed",children:l("ui.hub.skills.unpull_failed")}),y.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger","data-testid":"hub-skill-subscribe-failed",children:l(Ps(y.error)?"ui.hub.skills.local_exists":"ui.hub.skills.subscribe_failed")}),!t&&e.jsx("p",{className:"text-meta text-ink-muted",children:l("ui.hub.status.no_credential")}),(!S||!ee)&&e.jsxs(Qe,{className:"flex-row flex-wrap justify-start gap-2",children:[e.jsx(P,{"data-testid":"hub-skill-download",disabled:!t||!te||j.isPending||!N,"aria-label":l("ui.hub.skills.pull_title",{item:k.data.name,source:I}),onClick:()=>ne(S),children:l("ui.hub.skills.download")}),!S?.policy.subscribe&&e.jsx(P,{variant:"outline","data-testid":"hub-skill-subscribe",disabled:!t||!te||!N||y.isPending||x.isPending||(S?!x.canWrite:!1),onClick:Le,children:l("ui.hub.subscriptions.subscribe")})]}),S&&ee&&e.jsx(Qe,{className:"flex-row flex-wrap justify-start gap-2",children:e.jsx(P,{variant:"outline","data-testid":"hub-skill-unpull",disabled:o.isPending,onClick:()=>{o.reset(),_(!0)},children:l("ui.hub.skills.unpull")})}),(!S||!ee)&&e.jsx("p",{className:"text-meta text-ink-muted",children:S?.policy.subscribe?l("ui.hub.skills.download_help"):l("ui.hub.skills.subscribe_help")})]})]})}),e.jsx(qe,{open:E,onOpenChange:d=>{d||_(!1)},children:e.jsxs(Ue,{className:"sm:max-w-md",children:[e.jsxs(He,{children:[e.jsx(Be,{children:l("ui.hub.skills.unpull_title",{item:k.data?.name??S?.name??""})}),e.jsx(Ke,{children:l("ui.hub.skills.unpull_body")})]}),e.jsxs(Qe,{children:[e.jsx(P,{variant:"outline",onClick:()=>_(!1),children:l("ui.hub.subscriptions.cancel")}),e.jsx(P,{"data-testid":"hub-skill-unpull-confirm",disabled:o.isPending,onClick:()=>{Oe(),_(!1)},children:l("ui.hub.skills.unpull")})]})]})}),e.jsx(qe,{open:L,onOpenChange:f,children:e.jsxs(Ue,{className:"max-h-[85vh] overflow-y-auto sm:max-w-2xl",children:[e.jsxs(He,{children:[e.jsx(Be,{children:l("ui.hub.skills.publish_title")}),e.jsx(Ke,{children:I})]}),e.jsx(Ba,{scope:s,source:I,verifiedCas:R&&a&&t,enabled:R&&a&&t,heading:!1})]})})]})}const st={all:["org-teams"],list:s=>[...st.all,"list",s]},tt=({tenantId:s,enabled:t=!0})=>{const a=ce({queryKey:st.list(s??""),queryFn:async()=>(await da(s)).result??{teams:[]},enabled:t&&!!s,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,retryOnMount:!1,retry:es});return{...a,teams:a.data?.teams??[]}},Ya=(s,t)=>{const a=s?.name?.trim()||t?.trim()||"Team",i=s?.renamed_from?.trim()||null;return s?.invalid_name===!0&&i?{level:"warning",message:`Pulled "${a}". The published name "${i}" is not usable locally, so the team was stored as "${a}".`}:i?{level:"success",message:`Pulled "${a}" (you already have a team called "${i}").`}:{level:"success",message:`Pulled team "${a}".`}},at=()=>{const s=ie();return je({mutationFn:async({teamId:t,tenantId:a})=>{if(!G.baseUrl)throw new Error("Local Operator API URL is not configured.");return Ot.pullOrgTeamFromRadient(G.baseUrl,t,a)},onSuccess:(t,a)=>{const i=Ya(t.result,a.name);i.level==="warning"?At(i.message):Lt(i.message),s.invalidateQueries({queryKey:["desktop","teams"]})},onError:t=>{console.error("Pulling an organization team failed:",t)}})},Ga=/^v/i,it=s=>s.members.reduce((t,a)=>t+a.count,0),Ja=s=>s.count>1?`${s.role} ×${s.count}`:s.role,Ze=s=>s.members.map(Ja).join(", "),nt=s=>{const t=(s.version??"").trim().replace(Ga,"").trim();return t===""?null:t},lt=s=>{const t=s.account_metadata?.name?.trim();return t||null},Za=s=>{const t=(s.description??"").trim();return t===""?null:t},Xe=240,Xa=Xe/2,ei=(s,t)=>{if(t||s.length<=Xe)return s;const a=s.slice(0,Xe),i=a.lastIndexOf(" ");return`${(i>=Xa?a.slice(0,i):a).trimEnd()}…`},Pe=s=>fa(s,"d MMM yyyy"),Te=s=>{if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t},Es=(s,t,a)=>{const i=a-t.getTime();let n;return i<0?n=Pe(t):i<6e4?n="just now":n=`${Qt(t,new Date(a))} ago`,{label:s,when:n,iso:t.toISOString(),exact:Pe(t)}},si=(s,t=Date.now())=>{const a=Te(s.updated_at);if(a)return Es("updated",a,t);const i=Te(s.created_date);return i?Es("created",i,t):null},ti=s=>{const t=Te(s.created_date),a=Te(s.updated_at);return{created:t?Pe(t):null,updated:a?Pe(a):null}},ai=s=>s==="role"?"Role":s==="specialist"?"Specialist":s,ii=["refresh-hub","retry","sign-in"],ni=({tenantId:s,orgName:t})=>{const{teams:a,isLoading:i,isFetching:n,isError:u,error:m,refetch:O}=tt({tenantId:s}),p=Js(m),v=at(),[E,_]=r.useState(null),[b,h]=r.useState(null),L=r.useRef(new Map),f=r.useRef(null);r.useEffect(()=>{v.isPending||f.current===null||(L.current.get(f.current)?.focus(),f.current=null)},[v.isPending]);const[w,I]=r.useState(!1),[F,T]=r.useState(()=>new Set),g=(o,x)=>T(A=>{const z=new Set(A);return x?z.add(o):z.delete(o),z}),R=(o,x)=>{o.key!=="Escape"||!F.has(x)||(o.target instanceof Element?o.target:null)?.closest('[data-testid="org-team-pull-error"]')||(g(x,!1),o.currentTarget.querySelector("button[aria-expanded]")?.focus(),o.preventDefault())},k=r.useMemo(()=>{if(!Us(v.error))return null;const o=a.find(x=>x.id===E);return Bs({code:v.error.code,message:v.error.message,details:v.error.details},{name:o?.name??"this team",hubAgentId:null,surface:"pull"})},[v.error,E,a]),j=(o,x)=>{switch(o){case"refresh-hub":O();break;case"retry":y(x);break;case"sign-in":I(!0);break}},y=o=>{v.isPending||(f.current=o.id,_(null),h(o.id),v.mutate({teamId:o.id,tenantId:s,name:o.name},{onSettled:()=>h(null),onError:()=>_(o.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(We,{}),e.jsx(We,{}),e.jsx(We,{})]}),!i&&u&&e.jsxs(be,{variant:p?"warning":"danger",className:"m-4 w-auto","data-testid":"org-teams-error",children:[e.jsx(pe,{children:p==="plan"?"That organization needs an active Team plan":p==="no_access"?"You do not have access to that organization":"Teams could not be loaded"}),e.jsx(ge,{children:p==="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.`:p==="no_access"?`You are not a member of ${t??"that organization"}, so its teams are not listed here. An owner can invite you again.`:ss("The teams shared with this organization could not be read.",m)}),p!=="no_access"&&e.jsx("div",{className:"mt-2",children:e.jsx(P,{variant:"primary",size:"sm",onClick:()=>void O(),disabled:n,"aria-busy":n,children:n?"Trying…":"Try again"})})]}),!i&&!u&&a.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&&!u&&a.length>0&&e.jsx("ul",{className:"flex flex-col divide-y divide-hairline",children:a.map(o=>e.jsxs("li",{className:U(rt,"transition-colors duration-fast ease-out-quart hover:bg-elevated first:rounded-t-md last:rounded-b-md"),onKeyDown:x=>R(x,o.id),children:[e.jsx(Hs,{className:"min-w-0",open:F.has(o.id),onOpenChange:x=>g(o.id,x),summaryAlign:"firstLine",triggerClassName:"min-w-0",chevronClassName:"text-ink-dim mt-1",rowClassName:"py-0",summary:e.jsx(ci,{team:o,expanded:F.has(o.id)}),trailing:e.jsx("div",{className:"-mt-1 ml-3 shrink-0 self-start",children:e.jsx(P,{ref:x=>{x?L.current.set(o.id,x):L.current.delete(o.id)},variant:"secondary",size:"sm",onClick:()=>y(o),disabled:v.isPending,"aria-label":`Pull team ${ae(o.name)}`,children:b===o.id?"Pulling…":"Pull"})}),children:e.jsx(oi,{team:o})}),E===o.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:k?.body??v.error?.message??`"${ae(o.name)}" could not be pulled.`}),k?.actions.filter(x=>ii.includes(x)).map(x=>e.jsx(P,{variant:"primary",size:"sm",onClick:()=>j(x,o),children:Ks[x]},x)),w&&e.jsx("div",{className:"mt-1","data-testid":"org-team-pull-reauth",children:e.jsx(Zs,{titleText:"Sign in again",descriptionText:"",onSignInSuccess:()=>{I(!1),_(null),O()}})})]})]},o.id))})]})},rt="px-4 py-3",ct=()=>e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",className:"mx-1.5",children:"·"}),e.jsx("span",{className:"sr-only",children:", "})]}),li=({team:s})=>{const t=s.manager?.trim(),a=it(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(ct,{}):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:[a," ",a===1?"member":"members",":"]})," ",e.jsx("span",{className:"text-ink-muted",children:Ze(s)})]})]})},ri=({team:s})=>{const t=s.project?.trim(),a=lt(s),i=si(s),n=[];return t&&n.push({key:"project",node:t}),a&&n.push({key:"author",node:a}),i&&n.push({key:"recency",node:e.jsxs(e.Fragment,{children:[i.label," ",e.jsx(le,{content:i.exact,children:e.jsx("time",{dateTime:i.iso,children:i.when})})]})}),n.length===0?null:e.jsx("span",{className:"block truncate text-ink-dim text-meta",children:n.map((u,m)=>e.jsxs("span",{children:[m>0?e.jsx(ct,{}):null,u.node]},u.key))})},ci=({team:s,expanded:t})=>{const a=Za(s),i=nt(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:ae(s.name)}),i?e.jsxs("span",{className:"ml-2 shrink-0 text-ink-dim text-meta",children:["v",i]}):null]}),a?e.jsxs(e.Fragment,{children:[e.jsx("span",{...Se,"aria-hidden":"true",className:U("mt-1 select-text break-words text-body-sm text-ink-muted",t?"line-clamp-[12] whitespace-pre-line":"line-clamp-2"),children:a}),e.jsx("span",{className:"sr-only",children:ei(a,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(li,{team:s}),e.jsx(ri,{team:s})]})]})},oi=({team:s})=>{const t=s.manager?.trim(),a=ti(s),i=[a.created?`Created ${a.created}`:null,a.updated?`Updated ${a.updated}`:null].filter(u=>u!==null),n=!!t||s.members.length>0;return e.jsxs("div",{className:"mt-1 flex flex-col gap-2",children:[n||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(u=>e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:u.role}),e.jsx("span",{className:"text-ink-dim text-meta",children:ai(u.kind)}),u.count>1?e.jsxs("span",{className:"text-ink-dim text-meta tabular-nums",children:["×",u.count]}):null]},`${u.kind}:${u.role}`)),n?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]})},We=()=>e.jsxs("div",{className:U(rt,"pl-9"),"data-testid":"org-team-skeleton-row",children:[e.jsx("div",{className:"flex h-[1lh] items-center text-body",children:e.jsx(C,{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(C,{className:"h-3.5 w-full"}),e.jsx(C,{className:"h-3.5 w-2/3"})]}),e.jsx("div",{className:"mt-1 flex h-[1lh] items-center text-meta",children:e.jsx(C,{className:"h-3 w-64"})}),e.jsx("div",{className:"flex h-[1lh] items-center text-meta",children:e.jsx(C,{className:"h-3 w-48"})})]}),ot=(s,t)=>t instanceof Ys?t.message:ss(s,t),di=["refresh-hub","retry","sign-in"],ui=({signedIn:s,onOpenSettings:t})=>{const[a,i]=r.useState(1),[n,u]=r.useState(""),{teams:m,isLoading:O,isFetching:p,isError:v,error:E,refetch:_,pagination:b}=Xs({page:a,perPage:ls}),h=at(),[L,f]=r.useState(null),[w,I]=r.useState(null),F=r.useRef(new Map),T=r.useRef(null);r.useEffect(()=>{h.isPending||T.current===null||(F.current.get(T.current)?.focus(),T.current=null)},[h.isPending]);const g=Vt(n.trim()),R=r.useMemo(()=>g?m.filter(N=>ae(N.name).toLowerCase().includes(g)||(N.description??"").toLowerCase().includes(g)):m,[m,g]),k=N=>{h.isPending||(f(null),I(N.id),T.current=N.id,h.mutate({teamId:N.id,name:N.name},{onSettled:()=>I(null),onError:()=>f(N.id)}))},j=r.useMemo(()=>{if(!Us(h.error))return null;const N=m.find(D=>D.id===L);return Bs({code:h.error.code,message:h.error.message,details:h.error.details},{name:N?.name??"this team",hubAgentId:null,surface:"pull"})},[h.error,L,m]),y=j?.body??(vt(h.error)==="unauthorized"?"The team could not be pulled: this machine has no Radient sign-in for the hub. Sign in on the settings page, then pull again.":"The team could not be pulled."),[o,x]=r.useState(!1),A=(N,D)=>{switch(N){case"refresh-hub":_();break;case"retry":k(D);break;case"sign-in":x(!0);break}},z=O&&m.length===0,H=b?.totalRecords??m.length,M=r.useRef(null),q=N=>{const D=n!=="";u(N),D&&N===""&&M.current?.focus()};return e.jsxs("section",{"aria-label":"Public teams",className:"flex flex-col","data-testid":"agent-hub-public-teams",children:[e.jsx("h2",{className:"sr-only",children:"Public teams"}),e.jsx("p",{className:"mb-3 max-w-3xl text-body-sm text-ink-muted",children:"Public teams are published to the hub by anyone and can be read here without signing in. Pulling one copies it into this machine's local team registry."}),s?null:e.jsxs("div",{className:"mb-3 flex flex-wrap items-center gap-2","data-testid":"agent-hub-public-teams-signed-out",children:[e.jsx("span",{className:"text-meta text-ink-dim",children:"Sign in to Radient to pull a team into this machine."}),e.jsx(P,{variant:"secondary",size:"sm",onClick:t,children:"Open settings to sign in"})]}),e.jsx("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:e.jsxs("div",{className:U("flex min-w-56 max-w-md 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(qs,{"aria-hidden":"true",className:"ml-2 shrink-0 text-ink-dim"}),e.jsx(Ie,{ref:M,type:"search",value:n,onChange:N=>q(N.target.value),placeholder:"Search teams","aria-label":"Search teams",className:"h-8 min-w-0 flex-1 border-0 bg-transparent outline-none","data-testid":"agent-hub-public-teams-search"})]})}),z&&e.jsxs("div",{"aria-hidden":"true",className:"flex max-w-4xl flex-col gap-3","data-testid":"agent-hub-public-teams-loading",children:[e.jsx(Ye,{}),e.jsx(Ye,{}),e.jsx(Ye,{})]}),!z&&v&&e.jsxs(be,{variant:"danger",className:"w-auto max-w-2xl","data-testid":"agent-hub-public-teams-error",children:[e.jsx(pe,{children:"Public teams could not be loaded"}),e.jsx(ge,{children:ot("The public team catalogue could not be read.",E)}),e.jsx("div",{className:"mt-2",children:e.jsx(P,{variant:"primary",size:"sm",onClick:()=>void _(),disabled:p,"aria-busy":p,children:p?"Trying…":"Try again"})})]}),!z&&!v&&m.length===0&&e.jsx("p",{className:"max-w-2xl text-body-sm text-ink-muted","data-testid":"agent-hub-public-teams-empty",children:"No teams have been published to the public hub yet."}),!z&&!v&&m.length>0&&e.jsxs(e.Fragment,{children:[!g||R.length>0?e.jsxs("p",{className:"mb-3 text-meta text-ink-dim","data-testid":"agent-hub-public-teams-status",children:[g?`${R.length} of ${m.length} teams on this page match "${n.trim()}"`:`${H} ${H===1?"team":"teams"} in the public hub`,g?e.jsxs("span",{className:"text-ink-dim",children:[" ","· search covers the teams loaded here"]}):null]}):null,R.length===0?e.jsx("p",{className:"max-w-2xl text-body-sm text-ink-muted","data-testid":"agent-hub-public-teams-search-miss",children:`No team on this page matches "${n.trim()}".`}):e.jsx("ul",{className:"flex max-w-4xl flex-col gap-3",children:R.map(N=>e.jsx(mi,{team:N,pulling:w===N.id,pullPending:h.isPending,onPull:k,pullButtonRef:D=>{D?F.current.set(N.id,D):F.current.delete(N.id)},failed:L===N.id,failureBody:y,treatment:j,onTreatmentAction:A,reauthenticating:o,onReauthenticated:()=>{x(!1),f(null),_()}},N.id))}),!g&&b&&b.totalPages>1&&e.jsx(is,{count:b.totalPages,page:b.page,onChange:N=>{i(N),M.current?.scrollIntoView({block:"nearest"})}})]})]})},mi=({team:s,pulling:t,pullPending:a,onPull:i,failed:n,failureBody:u,treatment:m,onTreatmentAction:O,reauthenticating:p,onReauthenticated:v,pullButtonRef:E})=>{const[_,b]=r.useState(!1),h=La({teamId:_?s.id:void 0}),L=ae(s.name),f=nt(s),w=lt(s),I=s.manager?.trim(),F=it(s),T=(s.description??"").trim();return e.jsxs("li",{className:"rounded-md bg-surface p-4","data-testid":"agent-hub-public-team","data-team-name":s.name,children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-baseline",children:[e.jsx("h3",{className:"truncate font-medium text-heading text-ink",children:L}),f?e.jsxs("span",{className:"ml-2 shrink-0 text-ink-dim text-meta",children:["v",f]}):null]}),T?e.jsx("p",{...Se,className:"mt-1 line-clamp-3 max-w-3xl select-text text-body-sm text-ink-muted",children:T}):e.jsx("p",{className:"mt-1 text-body-sm text-ink-dim",children:"No description"}),e.jsxs("p",{className:"mt-2 flex flex-wrap items-baseline gap-x-2 text-meta",children:[I?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-ink-dim",children:"Manager:"}),e.jsx("span",{className:"text-ink-muted",children:I})]}):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:[F," ",F===1?"member":"members",":"]}),e.jsx(le,{content:Ze(s),children:e.jsx("span",{className:"truncate text-ink-muted",children:Ze(s)})})]})]}),w?e.jsxs("p",{className:"mt-1 text-ink-dim text-meta",children:["Published by ",e.jsx("span",{className:"text-ink-muted",children:w})]}):null]}),e.jsxs("div",{className:"flex shrink-0 flex-col items-end gap-2",children:[e.jsx(P,{ref:E,variant:"secondary",size:"sm",onClick:()=>i(s),disabled:a,"aria-label":`Pull team ${L}`,children:t?"Pulling…":"Pull"}),n&&e.jsxs("div",{className:"flex max-w-56 flex-col items-end gap-1","data-testid":"agent-hub-public-team-pull-error",children:[e.jsx("output",{className:"text-right text-meta text-danger",children:u}),m?.actions.filter(g=>di.includes(g)).map(g=>e.jsx(P,{variant:"primary",size:"sm",onClick:()=>O(g,s),children:Ks[g]},g)),p&&e.jsx("div",{"data-testid":"agent-hub-public-team-pull-reauth",children:e.jsx(Zs,{titleText:"Sign in again",descriptionText:"",onSignInSuccess:v})})]})]})]}),e.jsx("div",{className:"mt-2",children:e.jsx(Hs,{summary:"Brief",open:_,onOpenChange:b,className:"w-full",triggerClassName:"w-full",triggerLabel:`View the brief for ${L}`,chevronClassName:"text-ink-dim",children:e.jsx(hi,{detail:h})})})]})},hi=({detail:s})=>{if(s.isLoading)return e.jsxs("div",{className:"flex flex-col gap-1","data-testid":"agent-hub-public-team-brief-loading",children:[e.jsx(C,{className:"h-[1lh] w-2/3"}),e.jsx(C,{className:"h-[2lh] w-full"})]});if(s.isError)return e.jsxs("div",{className:"flex flex-col items-start gap-1",children:[e.jsx("output",{className:"text-meta text-danger",children:ot("This team's brief could not be read.",s.error)}),e.jsx(P,{variant:"primary",size:"sm",onClick:()=>void s.refetch(),disabled:s.isFetching,"aria-busy":s.isFetching,children:s.isFetching?"Trying…":"Try again"})]});const t=s.team;if(!t)return null;const a=(t.instructions??"").trim(),i=(t.project??"").trim();return e.jsxs("div",{className:"flex max-w-3xl flex-col gap-3 text-body-sm","data-testid":"agent-hub-public-team-brief",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("p",{className:"text-ink-dim text-meta",children:"Collaboration brief"}),a?e.jsx("p",{...Se,className:"whitespace-pre-line select-text text-ink-muted",children:a}):e.jsx("p",{className:"text-ink-dim",children:"This team has no collaboration brief."})]}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("p",{className:"text-ink-dim text-meta",children:"Project brief"}),i?e.jsx("p",{...Se,className:"whitespace-pre-line select-text text-ink-muted",children:i}):e.jsx("p",{className:"text-ink-dim",children:"This team has no project brief."})]}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("p",{className:"text-ink-dim text-meta",children:"Roster"}),e.jsxs("ul",{className:"flex flex-col gap-0.5",children:[t.manager?.trim()?e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:t.manager.trim()}),e.jsx("span",{className:"text-ink-dim text-meta",children:"Manager"})]}):null,t.members.length===0?e.jsx("li",{className:"text-ink-dim",children:"No members"}):t.members.map(n=>e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:n.count>1?`${n.role} ×${n.count}`:n.role}),e.jsx("span",{className:"text-ink-dim text-meta",children:n.kind})]},`${n.kind}:${n.role}`))]})]})]})},Ye=()=>e.jsxs("div",{className:"rounded-md bg-surface p-4",children:[e.jsx(C,{className:"h-[1lh] w-1/3"}),e.jsx(C,{className:"mt-1 flex h-[3lh] w-full"}),e.jsx(C,{className:"mt-2 h-[1lh] w-2/3"})]}),xi=(s,t)=>{const[a,i]=r.useState(s);return r.useEffect(()=>{const n=setTimeout(()=>i(s),t);return()=>clearTimeout(n)},[s,t]),a},we=[{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"}],bi=[{value:"name",label:"Name"},{value:"description",label:"Description"}],pi=300,K="public",Fs={agents:"agent-hub-view-agents",teams:"agent-hub-view-teams",skills:"agent-hub-view-skills"},$s="agent-hub-view-panel",gi=()=>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(C,{className:"h-5.5 w-2/3"}),e.jsx(C,{className:"h-3.5 w-full"}),e.jsx(C,{className:"h-3.5 w-full"}),e.jsx(C,{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(C,{className:"h-5.5 w-24"}),e.jsx(C,{className:"h-5.5 w-20"})]}),e.jsx("div",{className:"flex items-center gap-1.5",children:e.jsx(C,{className:"h-5.5 w-24"})})]}),e.jsx(C,{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(C,{className:"size-4"}),e.jsx(C,{className:"h-4 w-6"}),e.jsx(C,{className:"size-4"}),e.jsx(C,{className:"h-4 w-6"}),e.jsx(C,{className:"ml-auto h-7 w-16"})]})]}),Ei=()=>{const s=zs(),{isAuthenticated:t}=ts(),[a,i]=r.useState(1),[n]=r.useState(12),[u,m]=r.useState(null),[O,p]=r.useState(""),[v,E]=r.useState("name"),[_,b]=r.useState(we[0].value),[h,L]=r.useState(K),[f,w]=r.useState("agents");ke();const[I,F]=r.useState([]),T=xi(O,pi),g=we.find(c=>c.value===_)??we[0],R=Ce(),k=!R.isError&&re(R.data,"hub_skills"),j=f==="skills"&&!k?"agents":f;r.useEffect(()=>{f==="skills"&&!k&&w("agents")},[f,k]);const y=Et(),o=Nt(R.data,"radient_org"),x=t?ka(o,y??null):null,{memberships:A}=ua({enabled:Ve(o)}),z=r.useMemo(()=>ga(A),[A]),H=h===K||z.some(c=>c.tenant_id===h);r.useEffect(()=>{!H&&j!=="skills"&&L(K)},[H,j]);const M=h===K?null:z.find(c=>c.tenant_id===h)??null,q=M?.tenant_id,N=M?.tenant_name||null,D=u!==null||T!=="",se=tt({tenantId:q}),te=Xs({page:1,perPage:ls,enabled:h===K}),de=q&&se.isSuccess?se.teams.length:null,ye=te.isSuccess?te.pagination?.totalRecords??null:null,Q=D?null:h===K?ye:de,S=h===K?{visibility:"public",tenantId:null}:{visibility:"org",tenantId:h},ve=H&&(h===K||Ve(o)),ue=et(S,1,k&&ve&&(h===K||t)),ee=ue.isSuccess?ue.data.total:null,Ae=M?.role==="owner"||M?.role==="admin",me=r.useMemo(()=>new Map(A.map(c=>[c.tenant_id,c.tenant_name])),[A]),{data:ne,agents:Le,isLoading:Oe,isFetching:V,error:J,refetch:he,pagination:B}=zt({page:a,perPage:n,categories:u?[u]:void 0,name:v==="name"&&T||void 0,description:v==="description"&&T||void 0,sort:g.sort,order:g.order,tenantId:q}),d=M?Js(J):null,$=Le??[],Z=V&&ne!==void 0,{statuses:xe,isKnown:Ne,isError:dt,isFetching:Ee,refetch:ut}=Wt({agentIds:q?[]:$.map(c=>c.id)}),Fe=r.useRef(null),$e=r.useRef(null),[os,mt]=r.useState(0);r.useEffect(()=>{os!==0&&(Fe.current??$e.current)?.focus()},[os]);const ds=r.useRef(null),ze=r.useRef(!1),Me=r.useMemo(()=>[...new Set((ne?.records??[]).flatMap(c=>c.categories??[]))],[ne]);r.useEffect(()=>{F(c=>Me.every(Y=>c.includes(Y))?c:[...new Set([...c,...Me])])},[Me]);const ht=()=>{m(null),p(""),i(1),mt(c=>c+1)},W=(Oe||V)&&ne===void 0,us=!W&&!D&&(J!==null||$.length===0);r.useEffect(()=>{!ze.current||W||(ze.current=!1,J?ds.current?.focus():(Fe.current??$e.current)?.focus())},[W,J]);const ms=r.useRef(null),xt=c=>{i(c),ms.current?.scrollIntoView({block:"nearest"})},bt=c=>{m(c),i(1)},pt=c=>{p(c),i(1)},gt=c=>{L(c),i(1)},hs=r.useRef(new Map),ft=c=>{E(c),i(1)},kt=B&&!D?B.totalRecords:null,De=q?`shared with ${N??"this organization"}`:"in the public hub",xs=(c,Y)=>`${c} ${Y}${c===1?"":"s"} ${De}`;let X;return j==="skills"?X=" ":j==="teams"?q?se.isLoading?X="Loading teams…":Q!==null?X=xs(Q,"team"):X=`Teams ${De}`:X=" ":W?X="Loading agents…":B?X=xs(B.totalRecords,"agent"):X=`Agents ${De}`,e.jsxs("div",{className:"flex h-full flex-col gap-8 p-6",children:[e.jsx(wt,{title:"Agent Hub",subtitle:"Discover and download agents, teams and skills on Radient",icon:ma}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4",children:[x&&e.jsxs(be,{variant:"warning",className:"max-w-2xl","data-testid":"agent-hub-org-unavailable",children:[e.jsx(pe,{children:"Organizations are unavailable"}),e.jsx(ge,{children:x})]}),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(Pt,{value:j,onValueChange:c=>w(c),children:e.jsx(Tt,{"aria-label":"Browse the hub by type",children:["agents","teams",...k?["skills"]:[]].map(c=>{const Y=c==="agents"?kt:c==="teams"?Q:ee;return e.jsxs(Ct,{value:c,id:Fs[c],"aria-controls":j===c?$s:void 0,"data-testid":`agent-hub-view-${c}`,children:[c==="agents"?"Agents":c==="teams"?"Teams":l("ui.hub.skills.title"),Y!==null&&e.jsx("span",{className:"min-w-[2ch] font-normal text-ink-dim tabular-nums",children:Y})]},c)})})}),z.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:K,label:"Public hub",Icon:Ft},...z.map(c=>({value:c.tenant_id,label:c.tenant_name||"Organization",Icon:ja}))].map(({value:c,label:Y,Icon:jt})=>e.jsxs(P,{ref:bs=>{bs?hs.current.set(c,bs):hs.current.delete(c)},variant:"ghost",size:"sm","aria-pressed":h===c,onClick:()=>gt(c),title:Y,"data-testid":`agent-hub-scope-${c===K?"public":`org-${c}`}`,className:U("max-w-48",h===c&&"bg-surface text-ink hover:bg-surface"),children:[e.jsx(jt,{"aria-hidden":"true"}),e.jsx("span",{className:"truncate",children:Y})]},c))})]})]})]}),e.jsx(It,{id:$s,labelledBy:Fs[j],children:e.jsxs("div",{className:"flex min-h-0 flex-1 flex-row overflow-hidden",children:[j==="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-glass-region":"panel","data-tour-tag":"agent-hub-sidebar-container",children:!us&&e.jsx(_a,{selectedCategory:u,onSelectCategory:bt,categories:I})})}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col overflow-y-auto",children:[j==="agents"&&!us&&e.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:U("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(Ie,{ref:Fe,type:"search",value:O,onChange:c=>pt(c.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(gs,{value:v,onValueChange:ft,children:[e.jsx(fs,{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(ks,{})}),e.jsx(js,{children:bi.map(c=>e.jsx(ys,{value:c.value,children:c.label},c.value))})]})]}),e.jsxs(gs,{value:_,onValueChange:b,children:[e.jsx(fs,{className:"w-48","aria-label":"Sort agents","data-testid":"agent-hub-sort",children:e.jsx(ks,{})}),e.jsx(js,{children:we.map(c=>e.jsx(ys,{value:c.value,children:c.label},c.value))})]})]}),e.jsxs("p",{ref:ms,"aria-live":"polite",className:"mb-3 text-meta text-ink-dim","data-testid":"agent-hub-status",children:[X,j==="agents"&&Z?e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{"data-testid":"agent-hub-updating",children:"Updating…"})]}):null]}),j==="agents"&&e.jsxs(e.Fragment,{children:[t&&dt&&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(P,{variant:"ghost",size:"sm",onClick:()=>void ut(),disabled:Ee,"aria-busy":Ee,children:Ee?"Trying…":"Try again"})]}),W&&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},(c,Y)=>e.jsx(gi,{},Y))}),W&&B===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(C,{className:"h-4 w-24"})}),e.jsx("output",{"aria-live":"polite","data-testid":"agent-hub-outage",className:U(!W&&J&&!d?"block":"sr-only"),children:!W&&J&&!d&&e.jsxs(be,{variant:"danger",className:"max-w-2xl","aria-busy":V,"data-testid":"agent-hub-error",children:[e.jsx(pe,{children:t?"The hub could not be loaded":"Sign in to use the hub"}),e.jsx(ge,{children:t?ss("The agent list could not be loaded.",J):"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(P,{ref:ds,variant:"outline",size:"sm",onClick:()=>{ze.current=!0,he()},disabled:V,"aria-busy":V,children:V?"Trying…":"Try again"})})]})}),!W&&d&&M&&e.jsxs(be,{variant:"warning",className:"max-w-2xl","data-testid":"agent-hub-org-no-access",children:[e.jsx(pe,{children:d==="plan"?"That organization needs an active Team plan":"You do not have access to that organization"}),e.jsx(ge,{children:d==="plan"?`Sharing agents inside an organization is part of the Team plan. An owner of ${M.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 ${M.tenant_name||"that organization"}, so its agents are not listed here. An owner can invite you again.`}),d==="plan"&&e.jsx("div",{className:"mt-2",children:e.jsx(P,{variant:"primary",size:"sm",onClick:()=>void he(),disabled:V,"aria-busy":V,children:V?"Trying…":"Try again"})})]}),!W&&!J&&e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6","aria-busy":Z,children:$.length===0?e.jsxs("div",{"data-testid":"agent-hub-empty",className:U("col-span-full w-full flex flex-col items-center gap-2 rounded-md bg-surface px-6 py-10 text-center",!q&&"max-w-2xl justify-self-center"),children:[e.jsx("p",{className:"text-heading text-ink",children:q?"This organization has no shared agents yet.":u?`No agents in ${Qs(u).label}.`:D?"No agents match that search.":"The hub is empty."}),e.jsx("p",{className:"max-w-md text-body-sm text-ink-muted",children:q?`Agents published into ${M?.tenant_name||"this organization"} appear here for its members.`:u?"Nothing in this category yet. Clear the filter to see the whole hub.":D?"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:D?e.jsx(P,{variant:"secondary",onClick:ht,children:u?"Clear filter":"Clear search"}):q&&!Ae?null:e.jsx(P,{ref:$e,variant:"secondary",onClick:()=>s("/agents"),children:"Publish an agent"})})]}):$.map(c=>e.jsx(wa,{agent:c,status:t?xe[c.id]:void 0,viewerStateKnown:t&&Yt(Ne,xe,c.id),orgName:c.visibility==="org"?me.get(c.tenant_id)??null:null},c.id))}),!W&&B&&B.totalPages>1&&e.jsx(is,{count:B.totalPages,page:B.page,onChange:xt})]}),j==="skills"&&(k?e.jsx(Wa,{scope:h===K?{visibility:"public",tenantId:null,organization:null}:{visibility:"org",tenantId:h,organization:N},signedIn:t,accessible:H&&(h===K||Ve(o))},`skills:${h}`):e.jsx("p",{className:"text-body-sm text-warning",children:l("ui.hub.skills.unavailable")})),j==="teams"&&(M?e.jsx(ni,{tenantId:M.tenant_id,orgName:N}):e.jsx(ui,{signedIn:t,onOpenSettings:()=>s("/settings")}))]})]})})]})]})};export{Ei as AgentHubPage};