local-operator-ui 0.34.48 → 0.34.49

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 (120) hide show
  1. package/out/main/index.js +2259 -47
  2. package/out/preload/index.js +1 -0
  3. package/out/renderer/assets/{_basePickBy-4PhBKMwz.js → _basePickBy-Coq1U1Is.js} +1 -1
  4. package/out/renderer/assets/{_baseUniq-DpFJNrpb.js → _baseUniq-CN5nbj15.js} +1 -1
  5. package/out/renderer/assets/agent-details-page-BOHG1UL8.js +6 -0
  6. package/out/renderer/assets/agent-hub-page-lDe6m3U_.js +11 -0
  7. package/out/renderer/assets/agents-page-CS2ctxLL.js +7 -0
  8. package/out/renderer/assets/{arc-DkuXQZT0.js → arc-CyEksofH.js} +1 -1
  9. package/out/renderer/assets/architectureDiagram-IEHRJDOE-o2ZHU4e3.js +36 -0
  10. package/out/renderer/assets/{blockDiagram-JOT3LUYC-2iLLg_nw.js → blockDiagram-JOT3LUYC-B0Yyp4_C.js} +1 -1
  11. package/out/renderer/assets/{book-open-CTi9TDfn.js → book-open-CEakesEi.js} +1 -1
  12. package/out/renderer/assets/browser-page-CjbkyuiR.js +1 -0
  13. package/out/renderer/assets/browser-webauthn-prompt-Dq82YVua.js +1 -0
  14. package/out/renderer/assets/{c4Diagram-VJAJSXHY-SvCGL91g.js → c4Diagram-VJAJSXHY-DLUNsMlf.js} +1 -1
  15. package/out/renderer/assets/channel-BrqzOdfK.js +1 -0
  16. package/out/renderer/assets/{chunk-4BMEZGHF-CzVlqRCP.js → chunk-4BMEZGHF-TEJuQZ1Y.js} +1 -1
  17. package/out/renderer/assets/{chunk-A2AXSNBT-DqhEqW0h.js → chunk-A2AXSNBT-B_dFl8CN.js} +1 -1
  18. package/out/renderer/assets/{chunk-AEK57VVT-BEa7M8E9.js → chunk-AEK57VVT-BZoQ5TO6.js} +1 -1
  19. package/out/renderer/assets/{chunk-D6G4REZN-4tI3iHrd.js → chunk-D6G4REZN-D1bYNZJL.js} +1 -1
  20. package/out/renderer/assets/{chunk-RZ5BOZE2-BSTylGcM.js → chunk-RZ5BOZE2-DbkFvpUt.js} +1 -1
  21. package/out/renderer/assets/{chunk-XZIHB7SX-BWyzWCnC.js → chunk-XZIHB7SX-C0c85hT-.js} +1 -1
  22. package/out/renderer/assets/classDiagram-GIVACNV2-C4Q7B2pX.js +1 -0
  23. package/out/renderer/assets/classDiagram-v2-COTLJTTW-C4Q7B2pX.js +1 -0
  24. package/out/renderer/assets/clone-T21nSsyt.js +1 -0
  25. package/out/renderer/assets/{console-mirror-CxkpeCdB.js → console-mirror-DDhXu5hQ.js} +2 -2
  26. package/out/renderer/assets/consoleCapture-DomsRGWw.js +1 -0
  27. package/out/renderer/assets/{conversation-input-sync-DFpqmO4l.js → conversation-input-sync-B3FVv0Mq.js} +257 -257
  28. package/out/renderer/assets/dagre-OKDRZEBW-CAb1XIuS.js +4 -0
  29. package/out/renderer/assets/diagram-SSKATNLV-CAh7vH7L.js +43 -0
  30. package/out/renderer/assets/diagram-VNBRO52H-CU4FF4Qr.js +24 -0
  31. package/out/renderer/assets/en-US-CHJkXXr4.js +1 -0
  32. package/out/renderer/assets/{erDiagram-Q7BY3M3F-D1W_lttQ.js → erDiagram-Q7BY3M3F-CbnNz_kj.js} +1 -1
  33. package/out/renderer/assets/error-boundary-etstfCzN.js +126 -0
  34. package/out/renderer/assets/{flowDiagram-4HSFHLVR-3Jb09NsW.js → flowDiagram-4HSFHLVR-BB6aJVKV.js} +1 -1
  35. package/out/renderer/assets/{format-CZUObkkr.js → format-esAOn2VS.js} +1 -1
  36. package/out/renderer/assets/{ganttDiagram-APWFNJXF-BuFcOiO1.js → ganttDiagram-APWFNJXF-CtOJM4d7.js} +1 -1
  37. package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-DvrevAjH.js +65 -0
  38. package/out/renderer/assets/{graph-D8Y4lmRI.js → graph-DOR9Sgwh.js} +1 -1
  39. package/out/renderer/assets/index-5vl5RXGq.js +1 -0
  40. package/out/renderer/assets/index-9_-S4Njy.js +809 -0
  41. package/out/renderer/assets/index-CZ5usiad.js +7 -0
  42. package/out/renderer/assets/index-CftawgM9.js +57 -0
  43. package/out/renderer/assets/index-VwZaZzVv.css +1 -0
  44. package/out/renderer/assets/infoDiagram-PH2N3AL5-CTd32x3B.js +2 -0
  45. package/out/renderer/assets/installer-CjbOLDvI.js +1 -0
  46. package/out/renderer/assets/{journeyDiagram-U35MCT3I-BWLCHSce.js → journeyDiagram-U35MCT3I-2BsbTilL.js} +1 -1
  47. package/out/renderer/assets/{kanban-definition-NDS4AKOZ-D7-FbJp3.js → kanban-definition-NDS4AKOZ-DoYAcNl0.js} +1 -1
  48. package/out/renderer/assets/{layout-DogvO2Ky.js → layout-DSk91znb.js} +1 -1
  49. package/out/renderer/assets/legacy-agents-page-BGSPncrN.js +33 -0
  50. package/out/renderer/assets/{mermaid.core-CdeoM9AZ.js → mermaid.core-BqK7XNWH.js} +5 -5
  51. package/out/renderer/assets/mesh-page-BxEA5Aan.js +1 -0
  52. package/out/renderer/assets/mindmap-definition-ALO5MXBD-HV-ovM7g.js +95 -0
  53. package/out/renderer/assets/mini-Bco2ITLo.js +1 -0
  54. package/out/renderer/assets/{notebook-pen-D7t7mRlh.js → notebook-pen-DsGb6zKu.js} +1 -1
  55. package/out/renderer/assets/org-access-B_xqEqnd.js +1 -0
  56. package/out/renderer/assets/{org-surface-gate-n0a6WDBY.js → org-surface-gate-D4SilXIt.js} +1 -1
  57. package/out/renderer/assets/{page-header-CJAvj3rs.js → page-header-DZ04Whs5.js} +1 -1
  58. package/out/renderer/assets/{parseISO-CZfAC2_J.js → parseISO-BHJWTxrA.js} +1 -1
  59. package/out/renderer/assets/{pieDiagram-IB7DONF6-B22hqaTH.js → pieDiagram-IB7DONF6-BArx4Jik.js} +1 -1
  60. package/out/renderer/assets/{projects-page-Dg-fywlg.js → projects-page-DABVK4s_.js} +14 -14
  61. package/out/renderer/assets/publication-validation-BmkCCv-H.js +1 -0
  62. package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-DJXJe1Jf.js → quadrantDiagram-7GDLP6J5-Dmmo_urD.js} +1 -1
  63. package/out/renderer/assets/{radar-MK3ICKWK-COD-ZwKJ.js → radar-MK3ICKWK-D8Sc1Ajv.js} +1 -1
  64. package/out/renderer/assets/radient-auth-buttons-BmQt2D1Y.js +1 -0
  65. package/out/renderer/assets/{requirementDiagram-KVF5MWMF-Cg7p0tZp.js → requirementDiagram-KVF5MWMF-BU04-wPA.js} +1 -1
  66. package/out/renderer/assets/sankeyDiagram-QLVOVGJD-CIQO7kso.js +10 -0
  67. package/out/renderer/assets/schedules-page-DllGJFS2.js +115 -0
  68. package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-B2P7CUDU.js → sequenceDiagram-X6HHIX6F-BN2soxj_.js} +1 -1
  69. package/out/renderer/assets/settings-page-DKzDa5P5.js +292 -0
  70. package/out/renderer/assets/stateDiagram-DGXRK772-bGNaZvy4.js +1 -0
  71. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-CNVQhmQM.js +1 -0
  72. package/out/renderer/assets/{timeline-definition-BDJGKUSR-CbnWjiR-.js → timeline-definition-BDJGKUSR-DmM_eb2d.js} +1 -1
  73. package/out/renderer/assets/ui-preferences-store-Byw1dJtt.js +1 -0
  74. package/out/renderer/assets/use-download-agent-mutation-CXv_tRQE.js +61 -0
  75. package/out/renderer/assets/{use-memberships-query-DR_Lujnw.js → use-memberships-query-C4IVeIBl.js} +1 -1
  76. package/out/renderer/assets/{use-session-snapshot-DKL97J-r.js → use-session-snapshot-CrOrWGgL.js} +1 -1
  77. package/out/renderer/assets/{xychartDiagram-VJFVF3MP-Cq_N4nhd.js → xychartDiagram-VJFVF3MP-CbbQZrKE.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 +3 -5
  83. package/out/renderer/assets/agent-details-page-Ci1JjvpV.js +0 -6
  84. package/out/renderer/assets/agent-hub-page-NtBm1phk.js +0 -11
  85. package/out/renderer/assets/agents-page-YFjN8oZC.js +0 -7
  86. package/out/renderer/assets/architectureDiagram-IEHRJDOE-DWa4IuFf.js +0 -36
  87. package/out/renderer/assets/browser-page-DEUUMy_g.js +0 -1
  88. package/out/renderer/assets/browser-webauthn-prompt-AacQARJZ.js +0 -1
  89. package/out/renderer/assets/channel-CRKSwn0G.js +0 -1
  90. package/out/renderer/assets/classDiagram-GIVACNV2-BxJWvaym.js +0 -1
  91. package/out/renderer/assets/classDiagram-v2-COTLJTTW-BxJWvaym.js +0 -1
  92. package/out/renderer/assets/clone-BCVTFSZA.js +0 -1
  93. package/out/renderer/assets/consoleCapture-C9FjfQJX.js +0 -1
  94. package/out/renderer/assets/dagre-OKDRZEBW-Bro14G70.js +0 -4
  95. package/out/renderer/assets/diagram-SSKATNLV-DxML5WmE.js +0 -43
  96. package/out/renderer/assets/diagram-VNBRO52H-C1VKCLuH.js +0 -24
  97. package/out/renderer/assets/en-US-BcB1DWxG.js +0 -1
  98. package/out/renderer/assets/error-boundary-C6UV5tx-.js +0 -126
  99. package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-BbZdk2nO.js +0 -65
  100. package/out/renderer/assets/index-B8qxAfMF.js +0 -55
  101. package/out/renderer/assets/index-D3f_KfVo.css +0 -1
  102. package/out/renderer/assets/index-D7GWaNpY.js +0 -809
  103. package/out/renderer/assets/index-Dhq36hI2.js +0 -7
  104. package/out/renderer/assets/index-Hr50KutK.js +0 -1
  105. package/out/renderer/assets/infoDiagram-PH2N3AL5-BVHpnvtw.js +0 -2
  106. package/out/renderer/assets/installer-B8s-TXTU.js +0 -1
  107. package/out/renderer/assets/legacy-agents-page-Dlp--Xt6.js +0 -33
  108. package/out/renderer/assets/mesh-page-BzfNUAkq.js +0 -1
  109. package/out/renderer/assets/messages-CZNg7vOE.js +0 -3
  110. package/out/renderer/assets/mindmap-definition-ALO5MXBD-CfocVEGs.js +0 -95
  111. package/out/renderer/assets/mini-D-rHRr3X.js +0 -1
  112. package/out/renderer/assets/org-access-BIipdCDk.js +0 -1
  113. package/out/renderer/assets/publication-validation-mYDoNagz.js +0 -1
  114. package/out/renderer/assets/radient-auth-buttons-BJmqjZos.js +0 -1
  115. package/out/renderer/assets/sankeyDiagram-QLVOVGJD-Qir1GlwB.js +0 -10
  116. package/out/renderer/assets/schedules-page-CtMNJr6J.js +0 -115
  117. package/out/renderer/assets/settings-page-CFbI2wWy.js +0 -292
  118. package/out/renderer/assets/stateDiagram-DGXRK772-CGQsk3sX.js +0 -1
  119. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-CpHmsYwj.js +0 -1
  120. package/out/renderer/assets/use-download-agent-mutation-C7H5xbvf.js +0 -61
@@ -3394,6 +3394,7 @@ const api = {
3394
3394
  closeTabs: (intent) => electron.ipcRenderer.invoke("browser-close-tabs", intent),
3395
3395
  activateTab: (tabId) => electron.ipcRenderer.invoke("browser-activate-tab", tabId),
3396
3396
  navigate: (url) => electron.ipcRenderer.invoke("browser-navigate", url),
3397
+ home: () => electron.ipcRenderer.invoke("browser-home"),
3397
3398
  reload: (hard = false) => electron.ipcRenderer.invoke("browser-reload", hard),
3398
3399
  stop: () => electron.ipcRenderer.invoke("browser-stop"),
3399
3400
  history: (direction) => electron.ipcRenderer.invoke("browser-history", direction),
@@ -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-DpFJNrpb.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-CdeoM9AZ.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-CN5nbj15.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-BqK7XNWH.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-CdeoM9AZ.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-BqK7XNWH.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};
@@ -0,0 +1,6 @@
1
+ import{t as a,r as E,j as e,c as Z}from"./index-CftawgM9.js";import{i as ge,a as fe}from"./publication-validation-BmkCCv-H.js";import{C as oe,u as O,B as C,aG as U,aF as $,aH as B,aI as le,aJ as ce,aK as be,_ as je,aL as pe,aM as ee,aE as ye,aN as we,aO as ve}from"./conversation-input-sync-B3FVv0Mq.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 q,j as I,k as v,X as Ae,l as N,A as se,m as ae,n as ne}from"./error-boundary-etstfCzN.js";import{f as De,h as Se,u as _e,i as Te,a as Ee,b as Fe,c as Me,O as Pe,H as ze,A as Le,d as ie}from"./use-download-agent-mutation-CXv_tRQE.js";import{e as re}from"./en-US-CHJkXXr4.js";import{b as qe,c as Ie,u as Ke,d as Oe,g as Ue,e as Be,f as Qe}from"./use-memberships-query-C4IVeIBl.js";import{S as Re,a as He,A as We,b as Ye,c as $e}from"./index-9_-S4Njy.js";import"./ui-preferences-store-Byw1dJtt.js";import"./book-open-CEakesEi.js";import"./console-mirror-DDhXu5hQ.js";/**
2
+ * @license lucide-react v0.507.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const Ge=[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]],Je=Ne("message-circle",Ge);function Ve(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]},Xe=({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 qe(t)).result},enabled:!!t&&o,staleTime:2*60*1e3,gcTime:5*60*1e3,refetchOnWindowFocus:!0}),Ze=()=>{const t=O(),{isAuthenticated:o}=C();return U({mutationFn:async n=>{const{agentId:i,data:s}=n;if(!o)throw new Error(a("ui.hub.comments.mutation.unauthorized"));return Ie(i,s)},onSuccess:(n,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),B(a("ui.hub.comments.mutation.posted"))},onError:n=>{$(a("ui.hub.comments.mutation.post_failed",{reason:n.message}))}})},et=()=>{const t=O(),{isAuthenticated:o}=C();return U({mutationFn:async n=>{const{agentId:i,commentId:s,data:c}=n;if(!o)throw new Error(a("ui.hub.comments.mutation.unauthorized"));return Ke(i,s,c)},onSuccess:(n,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),B(a("ui.hub.comments.mutation.updated"))},onError:n=>{$(a("ui.hub.comments.mutation.update_failed",{reason:n.message}))}})},tt=()=>{const t=O(),{isAuthenticated:o}=C();return U({mutationFn:async n=>{const{agentId:i,commentId:s}=n;if(!o)throw new Error(a("ui.hub.comments.mutation.unauthorized"));return Oe(i,s)},onSuccess:(n,i)=>{t.invalidateQueries({queryKey:F.list(i.agentId)}),B(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,j]=E.useState(null),[x,k]=E.useState(""),{data:u,isLoading:p,error:A}=Xe({agentId:t}),M=u?.records??[],g=Ze(),D=et(),Q=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)=>{j(r),k(d)},m=()=>{j(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)}},w=async r=>{if(!(!o||!t)&&window.confirm(a("ui.hub.comments.delete.confirm")))try{await Q.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(Je,{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(q,{children:e.jsx(I,{children:e.jsx(v,{className:"size-full"})})}),e.jsxs("div",{className:"flex w-full flex-col gap-1.5",children:[e.jsx(v,{className:"h-3.5 w-24"}),e.jsx(v,{className:"h-3 w-15"}),e.jsx(v,{className:"mt-2 h-3.5 w-full"}),e.jsx(v,{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:M.length===0?e.jsx("li",{className:"text-body-sm text-ink-muted",children:a("ui.hub.comments.empty")}):M.map(r=>c===r.id?e.jsxs("li",{className:"flex gap-3",children:[e.jsx(q,{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(Re,{}),a("ui.hub.comments.edit.save")]})]})]})]},r.id):e.jsxs("li",{className:"flex gap-3",children:[e.jsx(q,{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:Ve(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(He,{})})}),e.jsx(N,{content:a("ui.hub.comments.delete.label"),children:e.jsx(l,{variant:"ghost",size:"icon-sm",onClick:()=>w(r.id),disabled:!!c,"aria-label":a("ui.hub.comments.delete.label"),children:e.jsx(le,{})})})]})]}),e.jsx("p",{className:"mt-2 text-body-sm text-ink whitespace-pre-wrap",children:r.text})]})]},r.id))})]})},G={all:["agent-details"],detail:t=>[...G.all,t]},at=({agentId:t,enabled:o=!0})=>oe({queryKey:G.detail(t||"invalid"),queryFn:async()=>{if(!t)throw new Error("Agent ID is required to fetch details.");return await Ue(t)},select:i=>i.result,enabled:!!t&&o,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1}),nt=()=>{const t=O(),o=ce(),{isAuthenticated:n}=C();return U({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)=>{B("Agent delisted"),t.invalidateQueries({queryKey:G.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}),bt=()=>{const{agentId:t}=be(),o=ce(),{isAuthenticated:n,user:i}=C(),{data:s,isLoading:c,isFetching:j,error:x,refetch:k}=at({agentId:t??"",enabled:!!t}),u=s?.visibility==="org",p=s?Se(s.name):"",{memberships:A}=Qe({enabled:u}),M=u?A.find(xe=>xe.tenant_id===s?.tenant_id)?.tenant_name??null:null,{statuses:g,isKnown:D,isError:Q,isFetching:S,refetch:R}=_e({agentIds:t&&!u?[t]:[]}),m=Te(D,g,t),y=m&&g[t??""]?.liked===!0,w=m&&g[t??""]?.favourited===!0,H=s?.like_count??0,r=s?.favourite_count??0,d=s?.download_count??0,P=Ee(),z=Fe(),_=Me(),f=nt(),[ue,L]=E.useState(!1),[b,h]=E.useState(null),W=!!i&&!!s&&i.radientUser?.account?.id===s.account_id,J=()=>{!t||!n||P.isPending||(h(null),P.mutate({agentId:t,isCurrentlyLiked:y},{onError:()=>h("like")}))},V=()=>{!t||!n||z.isPending||(h(null),z.mutate({agentId:t,isCurrentlyFavourited:w},{onError:()=>h("favourite")}))},X=()=>{!t||!s||_.isPending||(h(null),_.mutate({agentId:s.id,agentName:s.name},{onError:()=>h("download")}))},me=()=>{!t||!W||f.isPending||(h(null),f.mutate({agentId:t},{onError:()=>h("delist")}),L(!1))},T=b?b==="like"?{action:"like",error:P.error,retry:J}:b==="favourite"?{action:"favourite",error:z.error,retry:V}:b==="download"?{action:"download",error:_.error,retry:X}:{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:je("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:j,"aria-busy":j,children:j?"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(We,{})}),e.jsx(q,{className:"size-11 shrink-0",children:e.jsx(I,{children:e.jsx(Ye,{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:M})]})]}),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:J,disabled:!n||P.isPending||!m,"aria-label":m?y?"Unlike agent":"Like agent":"Like state unavailable",className:Z(y&&"text-danger"),children:[e.jsx(ze,{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:V,disabled:!n||z.isPending||!m,"aria-label":m?w?"Unfavourite agent":"Favourite agent":"Favourite state unavailable",className:Z(w&&"text-warning"),children:[e.jsx($e,{fill:w?"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:X,disabled:_.isPending,"aria-label":"Download agent",className:"ml-1",children:[e.jsx(pe,{}),e.jsx(Y,{children:_.isPending?e.jsx(v,{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:()=>L(!0),disabled:f.isPending,"aria-label":"Delist agent",className:"ml-1 text-danger hover:bg-danger-wash hover:text-danger",children:e.jsx(le,{})})})})]})]}),n&&Q&&!b&&!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"})]}),T&&b&&e.jsxs(se,{variant:"danger",className:"mb-6","data-testid":"agent-details-error",children:[e.jsx(ae,{children:it[b]}),e.jsx(ne,{children:fe(T.action,T.error,p)}),T.retry&&e.jsx("div",{className:"mt-2",children:e.jsx(l,{variant:"outline",size:"sm",onClick:T.retry,children:"Try again"})})]}),e.jsx(Le,{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:()=>L(!1),title:"Delist this agent?",maxWidth:"xs",actions:e.jsxs(e.Fragment,{children:[e.jsx(we,{onClick:()=>L(!1),children:"Cancel"}),e.jsx(ve,{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{bt as AgentDetailsPage};
@@ -0,0 +1,11 @@
1
+ import{r as c,j as e,c as D,t as u}from"./index-CftawgM9.js";import{aJ as cs,B as Ce,aL as Ve,bA as Ws,A as os,C as Z,ag as Q,u as ae,a as Re,D as Ae,c as me,aG as Ie,d as Ee,bB as Ye,bC as Gs,aH as Js,bD as Zs,$ as ds,_ as $e,aP as us,bE as ce,bF as Xs,by as et,bG as st,aT as tt,bH as at}from"./conversation-input-sync-B3FVv0Mq.js";import{P as nt}from"./page-header-DZ04Whs5.js";import{c as ms,l as J,B as C,k as _,u as he,y as it,I as te,T as hs,A as X,m as ee,n as se,Y as lt,Z as rt,_ as ct,$ as ot,F as We,G as Ge,H as Je,J as Ze,K as Xe}from"./error-boundary-etstfCzN.js";import{a as dt,p as xs,P as gs,u as ut}from"./publication-validation-BmkCCv-H.js";import{h as W,O as mt,A as ht,d as xt,H as gt,a as bt,b as pt,c as ft,e as bs,C as jt,f as kt,n as yt,u as vt,i as Nt}from"./use-download-agent-mutation-CXv_tRQE.js";import{c as wt,aD as St,aC as Pt,ay as Se,ao as Tt,ai as ps,aE as _t}from"./index-9_-S4Njy.js";import{n as Pe,i as Ct,H as fs,p as es,o as js,u as Rt}from"./org-access-B_xqEqnd.js";import{p as ks,r as ys,P as vs,h as At,i as It,j as Et,f as $t}from"./use-memberships-query-C4IVeIBl.js";import"./ui-preferences-store-Byw1dJtt.js";import{R as Ns}from"./radient-auth-buttons-BmQt2D1Y.js";import{f as Ft}from"./format-esAOn2VS.js";import{o as Ot,a as ss}from"./org-surface-gate-D4SilXIt.js";import"./en-US-CHJkXXr4.js";import"./book-open-CEakesEi.js";import"./console-mirror-DDhXu5hQ.js";/**
2
+ * @license lucide-react v0.507.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const Lt=[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]],zt=ms("building-2",Lt);/**
7
+ * @license lucide-react v0.507.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const Mt=[["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"}]],Dt=ms("circle-ellipsis",Mt),qt=({agent:s,isLiked:t,isFavourited:n,onLikeToggle:a,onFavouriteToggle:i,onDownload:o,isLikeActionLoading:m=!1,isFavouriteActionLoading:w=!1,isDownloading:y=!1,actionError:j=null,onRetryAction:N,showActions:x=!0,viewerStateKnown:f=!0,orgName:g=null})=>{const S=cs(),{isAuthenticated:d}=Ce(),T=s.description??"",[R,k]=c.useState(!1),b=c.useRef(null),P=c.useCallback(L=>{if(b.current?.disconnect(),b.current=null,!L)return;const $=()=>k(L.scrollHeight-L.clientHeight>1);$();const q=new ResizeObserver($);q.observe(L),b.current=q},[]),I=d?f?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",A=d?f?n?"Unfavourite agent":"Favourite agent":"Your favourites could not be read, so this is not shown as unfavourited.":"Log in to Radient to favourite agents",h=f?t?"Unlike agent":"Like agent":"Like state unavailable",E=f?n?"Unfavourite agent":"Favourite agent":"Favourite state unavailable",l=s.visibility==="org",p=W(s.name);return e.jsxs("div",{className:"flex h-full flex-col overflow-hidden rounded-md bg-surface transition-colors duration-fast ease-out-quart hover:bg-elevated",children:[e.jsxs("button",{type:"button",onClick:()=>S(`/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 ${p}`,children:[e.jsx("h3",{className:"truncate font-medium text-heading text-ink",children:p}),l&&e.jsx(mt,{orgName:g}),e.jsx(J,{content:R?T:"",children:e.jsx("span",{ref:P,className:"line-clamp-3 min-h-0 text-body-sm text-ink-muted",children:T})}),e.jsxs("div",{className:"mt-auto flex flex-col gap-2 pt-2",children:[e.jsx(ht,{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 ",xt(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":l?"org":d?f?"known":"unknown":"signed-out",children:[!l&&e.jsxs(e.Fragment,{children:[e.jsx(J,{content:I,children:e.jsx("span",{children:e.jsxs(C,{variant:"ghost",size:"sm",onClick:d&&f?()=>a(s.id):void 0,disabled:m||!d||!f,"aria-label":h,className:D(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(J,{content:A,children:e.jsx("span",{children:e.jsxs(C,{variant:"ghost",size:"sm",onClick:d?()=>i(s.id):void 0,disabled:w||!d||!f,"aria-label":E,className:D(n&&"text-warning"),children:[e.jsx(wt,{fill:n?"currentColor":"none","data-testid":"agent-favourite-star"}),e.jsx("span",{"data-testid":"agent-favourite-count",className:"inline-flex h-4 min-w-4 items-center font-mono text-mono-sm text-ink-muted",children:s.favourite_count??0})]})})})]}),e.jsx(J,{content:"Downloads",children:e.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 pr-1 text-ink-dim",children:[e.jsx(Ve,{"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:y?e.jsx(_,{className:"h-3 w-6"}):(s.download_count??0).toLocaleString()})]})})]}),x&&o&&e.jsx("div",{className:"ml-auto flex shrink-0 items-center",children:e.jsxs(C,{variant:"secondary",size:"sm",onClick:()=>o(s),disabled:y,"aria-label":`Download ${p}`,"data-tour-tag":"agent-hub-download-button",children:[e.jsx(Ve,{"data-testid":"agent-download"}),"Get"]})})]}),j&&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:j}),N&&e.jsx(C,{variant:"ghost",size:"sm",onClick:N,children:"Try again"})]})]})},Bt=({agent:s,status:t,viewerStateKnown:n=!0,orgName:a=null})=>{const{isAuthenticated:i}=Ce(),[o,m]=c.useState(null),w=t?.liked??!1,y=t?.favourited??!1,j=bt(),N=pt(),x=ft(),f=()=>{!i||j.isPending||(m(null),j.mutate({agentId:s.id,isCurrentlyLiked:w},{onError:()=>m("like")}))},g=()=>{!i||N.isPending||(m(null),N.mutate({agentId:s.id,isCurrentlyFavourited:y},{onError:()=>m("favourite")}))},S=()=>{x.isPending||(m(null),x.mutate({agentId:s.id,agentName:s.name},{onError:()=>m("download")}))},d=o?o==="like"?{action:"like",error:j.error,retry:f}:o==="favourite"?{action:"favourite",error:N.error,retry:g}:{action:"download",error:x.error,retry:S}:null;return e.jsx(qt,{agent:s,isLiked:i&&w,isFavourited:i&&y,onLikeToggle:f,onFavouriteToggle:g,onDownload:S,isLikeActionLoading:j.isPending,isFavouriteActionLoading:N.isPending,isDownloading:x.isPending,viewerStateKnown:n,orgName:a,actionError:d?dt(d.action,d.error,W(s.name)):null,onRetryAction:d?.retry})},ts=({selected:s,onClick:t,children:n,...a})=>e.jsx("button",{type:"button",onClick:t,"aria-pressed":s,className:D("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?Pt:"text-ink hover:bg-row-hover"),...a,children:n}),as=Object.keys(jt),Ut=s=>[...s].sort((t,n)=>{const a=as.indexOf(t),i=as.indexOf(n);return a!==-1&&i!==-1?a-i:a!==-1?-1:i!==-1?1:t.localeCompare(n)}),Ht=({selectedCategory:s,onSelectCategory:t,categories:n})=>{he();const a=Ut(s&&!n.includes(s)?[...n,s]:n);return e.jsxs("div",{className:"flex h-full flex-col overflow-y-auto",children:[e.jsx("h2",{className:"mb-2 px-3 font-medium text-ink-dim text-meta",children:u("ui.hub.taxonomy.heading")}),e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsxs(ts,{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(St,{size:16,"aria-hidden":"true"})}),u("ui.hub.taxonomy.all")]}),a.map(i=>{const o=bs(i),m=i==="other"?e.jsx(Dt,{size:16}):o.icon;return e.jsxs(ts,{selected:s===i,onClick:()=>t(i),"data-testid":`category-${i}`,children:[e.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:m}),o.label]},i)})]})]})},Fe=({page:s,count:t,onChange:n,ariaLabel:a="Agent pages"})=>{const i=c.useRef(null),o=c.useRef(null),m=c.useRef(null);return c.useEffect(()=>{const w=m.current;m.current=null,w==="previous"&&i.current?.focus(),w==="next"&&o.current?.focus()},[s]),t<=1?null:e.jsxs("nav",{"aria-label":a,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(C,{variant:"secondary",size:"sm",ref:i,onClick:()=>{s-1<=1&&(m.current="next"),n(s-1)},disabled:s<=1,"aria-label":"Previous page",children:[e.jsx(Ws,{"aria-hidden":"true"}),"Previous"]}),e.jsxs(C,{variant:"secondary",size:"sm",ref:o,onClick:()=>{s+1>=t&&(m.current="previous"),n(s+1)},disabled:s>=t,"aria-label":"Next page",children:["Next",e.jsx(it,{"aria-hidden":"true"})]})]})]})},ns=s=>s?.skills===1&&s.revision_cas===1;function Qt(s,t=1,n=20){const a=new URL(ks(s,"skills"));return a.searchParams.set("page",String(t)),a.searchParams.set("per_page",String(n)),ys(a.toString())}function Kt(s,t){return ys(ks(s,"skills",t))}function Vt(s){return os({operation:"org_skills.list",tenantId:s})}function Yt(s,t){return os({operation:"org_skill.get",tenantId:s,skillId:t})}const ws=12,oe={all:["public-teams"],list:(s,t)=>[...oe.all,"list",{page:s,perPage:t}],detail:s=>[...oe.all,"detail",s]},xe=(s,t)=>t instanceof vs?t.status===null?!1:t.status>=500&&s<1:s<1,Wt=({page:s=1,perPage:t=ws,enabled:n=!0}={})=>{const a=Z({queryKey:oe.list(s,t),queryFn:()=>At(Q.radientBaseUrl,s,t),select:i=>i.result,enabled:n,retry:xe,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,placeholderData:i=>i});return{...a,teams:a.data?.records??[],isRefreshing:a.isFetching&&a.data!==void 0,pagination:a.data?{page:a.data.page,perPage:a.data.per_page,totalPages:a.data.total_pages,totalRecords:a.data.total_records}:void 0}},Gt=({teamId:s,enabled:t=!0})=>{const n=Z({queryKey:oe.detail(s??""),queryFn:()=>It(Q.radientBaseUrl,s),select:a=>a.result,enabled:t&&!!s,retry:xe,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,retryOnMount:!1});return{...n,team:n.data}};function ge(s){if(s.getQueryState(Ye.capabilities)?.status!=="success"||!me(s.getQueryData(Ye.capabilities),"hub_skills"))throw new Error("This backend does not support the complete Hub Skills adapter.")}function Jt(s,t,n){const a=ae(),i=Re();return Z({queryKey:["hub-skills",Q.radientBaseUrl,s.visibility,s.tenantId,t],enabled:n&&!i.isError&&me(i.data,"hub_skills"),queryFn:async()=>{if(ge(a),s.visibility==="org"){const m=(await Vt(s.tenantId)).result;return{rows:m.skills,pages:1,contract:m.sync_contract}}const o=(await Qt(Q.radientBaseUrl,t,20)).result;return{rows:o.records,pages:o.total_pages,contract:o.sync_contract}},staleTime:3e4,retry:s.visibility==="org"?Ae:xe,retryOnMount:!1,refetchOnWindowFocus:!1})}function Zt(s,t,n){const a=ae(),i=Re();return Z({queryKey:["hub-skill",Q.radientBaseUrl,s.visibility,s.tenantId,t],enabled:n&&t!==null&&!i.isError&&me(i.data,"hub_skills"),queryFn:async()=>(ge(a),(s.visibility==="org"?await Yt(s.tenantId,t):await Kt(Q.radientBaseUrl,t)).result),staleTime:3e4,retry:s.visibility==="org"?Ae:xe,retryOnMount:!1})}function Xt(){const s=ae();return Ie({mutationFn:t=>(ge(s),Ee({op:"hub.skillPull",requestId:t.requestId,hubId:t.remoteId,hubSource:Q.radientBaseUrl,visibility:t.scope.visibility,tenantId:t.scope.tenantId,localAlias:t.alias,subscribe:t.subscribe,autoPush:t.autoPush,confirmPublicEgress:t.consent})),onSuccess:t=>{s.setQueryData(Se,t.links)},onSettled:()=>{s.invalidateQueries({queryKey:Se}),s.invalidateQueries({queryKey:["desktop","skills"]})}})}function ea(){const s=ae();return Ie({mutationFn:t=>(ge(s),Ee({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:Se}),s.invalidateQueries({queryKey:["desktop","skills"]}),s.invalidateQueries({queryKey:["hub-skills"]}))}})}function sa({scope:s,source:t,verifiedCas:n,enabled:a=!0}){he();const i=c.useId(),[o,m]=c.useState(""),[w,y]=c.useState(""),[j,N]=c.useState(Pe),[x,f]=c.useState(null),[g,S]=c.useState(!1),d=ea(),T=c.useRef(null),R=Z({queryKey:["desktop","skills","hub-publication"],queryFn:()=>Ee({op:"skills.list"}),staleTime:3e4,retry:!1}),k=`${s.visibility}:${s.tenantId??""}`,b=c.useRef(k);c.useEffect(()=>{b.current!==k&&(b.current=k,N(h=>({...h,autoPush:!1,confirmPublicEgress:!1})),f(null),S(!0))},[k]);const P={sourceSkill:o,localAlias:w,visibility:s.visibility,tenantId:s.tenantId,...j},I=x?Ct(x,P):!1;c.useEffect(()=>{if(!x)return;const h=setTimeout(()=>{f(null),S(!0)},Math.max(0,Math.min(Date.parse(x.expires_at)-Date.now(),2147483647)));return()=>clearTimeout(h)},[x]);const A=h=>{if(!a||d.isPending||!o||!w||h&&!I)return;const E=JSON.stringify({draft:P,receipt:h?x?.preview_receipt:null}),l=T.current&&T.current.tuple===E&&(h||d.error)?T.current:{tuple:E,id:crypto.randomUUID()};T.current=l,h||(f(null),S(!1)),d.mutate({requestId:l.id,draft:P,...h&&x?{previewReceipt:x.preview_receipt}:{}},{onSuccess:p=>{p.preview?(f(p.preview),S(!1)):es(p)&&f(null)}})};return e.jsxs("section",{className:"flex min-w-0 flex-col gap-4","data-hub-skill-publication":!0,children:[e.jsx("h3",{className:"text-heading text-ink",children:u("ui.hub.skills.publish_title")}),e.jsx("label",{htmlFor:`${i}-source`,className:"text-body-sm text-ink",children:u("ui.hub.skills.select_authored")}),e.jsxs("select",{id:`${i}-source`,"data-testid":"hub-skill-publish-source",value:o,disabled:d.isPending||!a,className:"rounded-md border border-control bg-surface px-3 py-2 text-body-sm text-ink",onChange:h=>{m(h.target.value),y(h.target.value),f(null),N(E=>({...E,autoPush:!1,confirmPublicEgress:!1}))},children:[e.jsx("option",{value:"",children:u("ui.hub.skills.select_authored")}),R.data?.data.skills.map(h=>e.jsx("option",{value:h.name,children:h.name},h.name))]}),e.jsx("label",{htmlFor:`${i}-alias`,className:"text-body-sm text-ink",children:u("ui.hub.subscriptions.alias")}),e.jsx(te,{id:`${i}-alias`,"data-testid":"hub-skill-publish-alias",value:w,disabled:d.isPending||!a,onChange:h=>{y(h.target.value),N(E=>({...E,autoPush:!1,confirmPublicEgress:!1}))}}),e.jsx("p",{className:"text-meta text-ink-muted",children:u("ui.hub.skills.text_limits")}),e.jsx(fs,{value:j,onChange:N,source:t,item:o||w,visibility:s.visibility,organization:s.organization,destinationKey:`${k}:${o}`,canEnableAutoPush:n,disabled:d.isPending||!a}),R.isLoading&&e.jsx("output",{className:"text-meta text-ink-muted",children:u("ui.hub.skills.loading")}),R.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:u("ui.hub.status.other_error")}),d.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:u("ui.hub.links.action_failed",{direction:u("ui.hub.links.direction_push"),item:o||w,source:t})}),(g||x&&!I&&x.can_confirm)&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:u("ui.hub.links.preview_changed")}),x&&x.visibility===s.visibility&&x.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:u("ui.hub.links.preview_payload",{source:t})}),e.jsx(hs,{readOnly:!0,rows:12,"aria-label":u("ui.hub.links.preview_payload",{source:t}),value:JSON.stringify(x.proposal.fields,null,2),className:"max-h-96 bg-sunken text-mono-sm"}),x.warnings.map((h,E)=>e.jsx("p",{className:"break-words text-body-sm text-warning",children:h},`${E}-${h}`)),x.reason&&e.jsx("p",{className:"text-body-sm text-warning",children:Tt(x.reason)})]}),d.data?.publication===null&&d.data.local_link_receipt?.state==="pending-reconciliation"&&e.jsx("output",{className:"text-body-sm text-warning","data-testid":"hub-skill-pending-reconcile",children:u("ui.hub.links.publication_pending")}),d.data?.publication&&e.jsx("output",{className:"text-body-sm text-ink","data-testid":"hub-skill-published",children:es(d.data)?u("ui.hub.links.published",{item:d.data.link?.name??w,source:d.data.link?ps(d.data.link):t}):u("ui.hub.skills.policy_pending")}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(C,{variant:"outline","data-testid":"hub-skill-publish-preview",disabled:!a||d.isPending||!o||!w,onClick:()=>A(!1),children:u("ui.hub.subscriptions.preview_publish")}),e.jsx(C,{"data-testid":"hub-skill-publish-confirm",disabled:!a||d.isPending||!I,onClick:()=>A(!0),children:u("ui.hub.links.confirm_publish")})]})]})}function ta({scope:s,signedIn:t,accessible:n=!0}){he();const a=c.useId(),[i,o]=c.useState(1),[m,w]=c.useState(""),[y,j]=c.useState(null),[N,x]=c.useState(""),[f,g]=c.useState(Pe),S=c.useRef(null),d=s.visibility==="public"?u("ui.hub.links.source_public"):s.organization?u("ui.hub.links.source_private",{organization:s.organization}):u("ui.hub.links.source_unavailable"),T=Jt(s,i,n&&(s.visibility==="public"||t)),R=ns(T.data?.contract),k=Zt(s,y,R&&n),b=Xt(),P=b.data?.link?.link_id,I=k.data?.visibility===s.visibility&&(s.visibility==="public"?!k.data.tenant_id:k.data.tenant_id===s.tenantId),A=n&&!k.error&&!T.error&&I&&ns(k.data?.sync_contract)&&!!k.data?.revision,h=(T.data?.rows??[]).filter(l=>`${l.name} ${l.description}`.toLocaleLowerCase().includes(m.toLocaleLowerCase())),E=()=>{if(!y||!A||!N||b.isPending||!t)return;const l=JSON.stringify({selected:y,scope:s,alias:N,policy:f});S.current?.tuple!==l&&(S.current={tuple:l,id:crypto.randomUUID()}),b.mutate({requestId:S.current.id,remoteId:y,scope:s,alias:N,subscribe:f.subscribe,autoPush:f.autoPush,consent:f.confirmPublicEgress})};return e.jsxs("section",{className:"flex min-w-0 flex-col gap-5","data-hub-skills-library":!0,children:[e.jsxs("header",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsx("h2",{className:"text-heading text-ink",children:u("ui.hub.skills.title")}),e.jsx("span",{className:"text-meta text-ink-muted","data-testid":"hub-skill-source",children:d})]}),s.visibility==="org"&&!t?e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:u("ui.hub.status.no_credential")}):e.jsxs(e.Fragment,{children:[e.jsx("label",{className:"sr-only",htmlFor:`${a}-search`,children:u("ui.hub.skills.search")}),e.jsx(te,{id:`${a}-search`,"data-testid":"hub-skill-search",value:m,placeholder:u("ui.hub.skills.search"),onChange:l=>w(l.target.value)}),e.jsx("p",{className:"text-meta text-ink-muted",children:u("ui.hub.skills.search_loaded")}),T.isLoading&&e.jsx("output",{className:"min-h-20 text-body-sm text-ink-muted",children:u("ui.hub.skills.loading")}),T.error&&e.jsxs("div",{role:"alert",className:"flex flex-col gap-2 text-body-sm text-warning",children:[e.jsx("p",{children:u("ui.hub.skills.catalogue_failed",{source:d})}),e.jsx(C,{variant:"outline",disabled:T.isFetching,onClick:()=>void T.refetch(),children:u("ui.hub.links.retry")})]}),T.isSuccess&&!R&&e.jsx("p",{className:"text-body-sm text-warning",children:u("ui.hub.skills.unavailable")}),R&&e.jsxs(e.Fragment,{children:[h.length===0&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:u(m?"ui.hub.skills.search_empty":"ui.hub.skills.remote_empty")}),e.jsx("div",{className:"grid min-w-0 gap-3 sm:grid-cols-2",children:h.map(l=>e.jsxs("div",{className:"flex min-w-0 flex-col gap-3 rounded-md border border-hairline p-4",children:[e.jsx("h3",{className:"break-words text-body-sm font-medium text-ink",children:l.name}),e.jsx("p",{className:"break-words text-meta text-ink-muted",children:l.description}),e.jsx(C,{variant:"outline","aria-pressed":y===l.id,"data-testid":"hub-skill-open",disabled:b.isPending,onClick:()=>{j(l.id),x(l.name),g(Pe()),b.reset()},children:u("ui.hub.skills.open_detail",{item:l.name})})]},l.id))}),e.jsx(Fe,{page:i,count:T.data?.pages??1,onChange:o,ariaLabel:u("ui.hub.skills.title")})]})]}),y&&R&&e.jsxs("section",{className:"flex min-w-0 flex-col gap-3 border-t border-hairline pt-4","data-hub-skill-detail":!0,children:[k.isLoading&&e.jsx("output",{className:"text-meta text-ink-muted",children:u("ui.hub.skills.loading")}),k.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:u("ui.hub.status.other_error")}),k.data&&I&&e.jsxs(e.Fragment,{children:[e.jsx("h3",{className:"break-words text-heading text-ink",children:k.data.name}),e.jsx("p",{className:"text-meta text-ink-muted",children:u("ui.hub.skills.file_count",{count:k.data.files.length})}),k.data.files.map(l=>e.jsxs("details",{className:"min-w-0",children:[e.jsx("summary",{className:"break-words text-mono-sm text-ink",children:l.path}),e.jsx(hs,{readOnly:!0,rows:12,"aria-label":l.path,value:l.content,className:"max-h-96 bg-sunken text-mono-sm"})]},l.path)),e.jsx("label",{htmlFor:`${a}-alias`,className:"text-body-sm text-ink",children:u("ui.hub.subscriptions.alias")}),e.jsx(te,{id:`${a}-alias`,"data-testid":"hub-skill-alias",value:N,disabled:b.isPending,onChange:l=>{x(l.target.value),g(p=>({...p,autoPush:!1,confirmPublicEgress:!1}))}}),e.jsx("p",{className:"text-meta text-ink-muted",children:u("ui.hub.skills.pull_help")}),e.jsx(fs,{value:f,onChange:g,source:d,item:N,visibility:s.visibility,organization:s.organization,destinationKey:`${s.visibility}:${s.tenantId??""}:${y}`,canEnableAutoPush:!!A,disabled:b.isPending}),e.jsx(C,{"data-testid":"hub-skill-create",disabled:!t||!A||!N||b.isPending,onClick:E,children:u("ui.hub.subscriptions.create_copy")})]}),!t&&e.jsx("p",{className:"text-meta text-ink-muted",children:u("ui.hub.status.no_credential")}),(b.error||b.data&&!b.data.reports?.some(l=>l.applied||l.outcome==="unchanged"))&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger","data-testid":"hub-skill-pull-failed",children:u("ui.hub.skills.pull_failed")}),b.data?.link&&b.data.reports?.some(l=>l.link_id===P&&l.direction==="pull"&&l.applied)&&e.jsx("output",{className:"text-body-sm text-ink","data-testid":"hub-skill-installed",children:u("ui.hub.skills.installed_alias",{item:b.data.link.name,source:ps(b.data.link)})}),b.data?.link&&e.jsx("p",{className:"text-meta text-ink-muted",children:u("ui.hub.skills.session_selection")})]}),!n&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:u("ui.hub.status.access_lost")}),e.jsx("div",{className:"border-t border-hairline pt-5",children:e.jsx(sa,{scope:s,source:d,verifiedCas:R&&n&&t,enabled:R&&n&&t})})]})}const Ss={all:["org-teams"],list:s=>[...Ss.all,"list",s]},Ps=({tenantId:s,enabled:t=!0})=>{const n=Z({queryKey:Ss.list(s??""),queryFn:async()=>(await Et(s)).result??{teams:[]},enabled:t&&!!s,staleTime:3e5,gcTime:6e5,refetchOnWindowFocus:!1,retryOnMount:!1,retry:Ae});return{...n,teams:n.data?.teams??[]}},aa=(s,t)=>{const n=s?.name?.trim()||t?.trim()||"Team",a=s?.renamed_from?.trim()||null;return s?.invalid_name===!0&&a?{level:"warning",message:`Pulled "${n}". The published name "${a}" is not usable locally, so the team was stored as "${n}".`}:a?{level:"success",message:`Pulled "${n}" (you already have a team called "${a}").`}:{level:"success",message:`Pulled team "${n}".`}},Ts=()=>{const s=ae();return Ie({mutationFn:async({teamId:t,tenantId:n})=>{if(!Q.baseUrl)throw new Error("Local Operator API URL is not configured.");return Zs.pullOrgTeamFromRadient(Q.baseUrl,t,n)},onSuccess:(t,n)=>{const a=aa(t.result,n.name);a.level==="warning"?Gs(a.message):Js(a.message),s.invalidateQueries({queryKey:["desktop","teams"]})},onError:t=>{console.error("Pulling an organization team failed:",t)}})},na=/^v/i,_s=s=>s.members.reduce((t,n)=>t+n.count,0),ia=s=>s.count>1?`${s.role} ×${s.count}`:s.role,Te=s=>s.members.map(ia).join(", "),Cs=s=>{const t=(s.version??"").trim().replace(na,"").trim();return t===""?null:t},Rs=s=>{const t=s.account_metadata?.name?.trim();return t||null},la=s=>{const t=(s.description??"").trim();return t===""?null:t},_e=240,ra=_e/2,ca=(s,t)=>{if(t||s.length<=_e)return s;const n=s.slice(0,_e),a=n.lastIndexOf(" ");return`${(a>=ra?n.slice(0,a):n).trimEnd()}…`},de=s=>Ft(s,"d MMM yyyy"),ue=s=>{if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t},is=(s,t,n)=>{const a=n-t.getTime();let i;return a<0?i=de(t):a<6e4?i="just now":i=`${kt(t,new Date(n))} ago`,{label:s,when:i,iso:t.toISOString(),exact:de(t)}},oa=(s,t=Date.now())=>{const n=ue(s.updated_at);if(n)return is("updated",n,t);const a=ue(s.created_date);return a?is("created",a,t):null},da=s=>{const t=ue(s.created_date),n=ue(s.updated_at);return{created:t?de(t):null,updated:n?de(n):null}},ua=s=>s==="role"?"Role":s==="specialist"?"Specialist":s,ma=["refresh-hub","retry","sign-in"],ha=({tenantId:s,orgName:t})=>{const{teams:n,isLoading:a,isFetching:i,isError:o,error:m,refetch:w}=Ps({tenantId:s}),y=js(m),j=Ts(),[N,x]=c.useState(null),[f,g]=c.useState(null),S=c.useRef(new Map),d=c.useRef(null);c.useEffect(()=>{j.isPending||d.current===null||(S.current.get(d.current)?.focus(),d.current=null)},[j.isPending]);const[T,R]=c.useState(!1),[k,b]=c.useState(()=>new Set),P=(l,p)=>b(L=>{const $=new Set(L);return p?$.add(l):$.delete(l),$}),I=(l,p)=>{l.key!=="Escape"||!k.has(p)||(l.target instanceof Element?l.target:null)?.closest('[data-testid="org-team-pull-error"]')||(P(p,!1),l.currentTarget.querySelector("button[aria-expanded]")?.focus(),l.preventDefault())},A=c.useMemo(()=>{if(!ds(j.error))return null;const l=n.find(p=>p.id===N);return xs({code:j.error.code,message:j.error.message,details:j.error.details},{name:l?.name??"this team",hubAgentId:null,surface:"pull"})},[j.error,N,n]),h=(l,p)=>{switch(l){case"refresh-hub":w();break;case"retry":E(p);break;case"sign-in":R(!0);break}},E=l=>{j.isPending||(d.current=l.id,x(null),g(l.id),j.mutate({teamId:l.id,tenantId:s,name:l.name},{onSettled:()=>g(null),onError:()=>x(l.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:[a&&e.jsxs("div",{"aria-hidden":"true",className:"flex flex-col divide-y divide-hairline","data-testid":"org-teams-loading",children:[e.jsx(Ne,{}),e.jsx(Ne,{}),e.jsx(Ne,{})]}),!a&&o&&e.jsxs(X,{variant:y?"warning":"danger",className:"m-4 w-auto","data-testid":"org-teams-error",children:[e.jsx(ee,{children:y==="plan"?"That organization needs an active Team plan":y==="no_access"?"You do not have access to that organization":"Teams could not be loaded"}),e.jsx(se,{children:y==="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.`:y==="no_access"?`You are not a member of ${t??"that organization"}, so its teams are not listed here. An owner can invite you again.`:$e("The teams shared with this organization could not be read.",m)}),y!=="no_access"&&e.jsx("div",{className:"mt-2",children:e.jsx(C,{variant:"primary",size:"sm",onClick:()=>void w(),disabled:i,"aria-busy":i,children:i?"Trying…":"Try again"})})]}),!a&&!o&&n.length===0&&e.jsx("p",{className:"p-4 text-body-sm text-ink-muted","data-testid":"org-teams-empty",children:`Teams shared into ${t??"this organization"} appear here for its members.`}),!a&&!o&&n.length>0&&e.jsx("ul",{className:"flex flex-col divide-y divide-hairline",children:n.map(l=>e.jsxs("li",{className:D(As,"transition-colors duration-fast ease-out-quart hover:bg-elevated first:rounded-t-md last:rounded-b-md"),onKeyDown:p=>I(p,l.id),children:[e.jsx(us,{className:"min-w-0",open:k.has(l.id),onOpenChange:p=>P(l.id,p),summaryAlign:"firstLine",triggerClassName:"min-w-0",chevronClassName:"text-ink-dim mt-1",rowClassName:"py-0",summary:e.jsx(ba,{team:l,expanded:k.has(l.id)}),trailing:e.jsx("div",{className:"-mt-1 ml-3 shrink-0 self-start",children:e.jsx(C,{ref:p=>{p?S.current.set(l.id,p):S.current.delete(l.id)},variant:"secondary",size:"sm",onClick:()=>E(l),disabled:j.isPending,"aria-label":`Pull team ${W(l.name)}`,children:f===l.id?"Pulling…":"Pull"})}),children:e.jsx(pa,{team:l})}),N===l.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:A?.body??j.error?.message??`"${W(l.name)}" could not be pulled.`}),A?.actions.filter(p=>ma.includes(p)).map(p=>e.jsx(C,{variant:"primary",size:"sm",onClick:()=>h(p,l),children:gs[p]},p)),T&&e.jsx("div",{className:"mt-1","data-testid":"org-team-pull-reauth",children:e.jsx(Ns,{titleText:"Sign in again",descriptionText:"",onSignInSuccess:()=>{R(!1),x(null),w()}})})]})]},l.id))})]})},As="px-4 py-3",Is=()=>e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",className:"mx-1.5",children:"·"}),e.jsx("span",{className:"sr-only",children:", "})]}),xa=({team:s})=>{const t=s.manager?.trim(),n=_s(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(Is,{}):null,s.members.length===0?e.jsx("span",{className:"text-ink-dim",children:"No members"}):e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-ink-dim",children:[n," ",n===1?"member":"members",":"]})," ",e.jsx("span",{className:"text-ink-muted",children:Te(s)})]})]})},ga=({team:s})=>{const t=s.project?.trim(),n=Rs(s),a=oa(s),i=[];return t&&i.push({key:"project",node:t}),n&&i.push({key:"author",node:n}),a&&i.push({key:"recency",node:e.jsxs(e.Fragment,{children:[a.label," ",e.jsx(J,{content:a.exact,children:e.jsx("time",{dateTime:a.iso,children:a.when})})]})}),i.length===0?null:e.jsx("span",{className:"block truncate text-ink-dim text-meta",children:i.map((o,m)=>e.jsxs("span",{children:[m>0?e.jsx(Is,{}):null,o.node]},o.key))})},ba=({team:s,expanded:t})=>{const n=la(s),a=Cs(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:W(s.name)}),a?e.jsxs("span",{className:"ml-2 shrink-0 text-ink-dim text-meta",children:["v",a]}):null]}),n?e.jsxs(e.Fragment,{children:[e.jsx("span",{...ce,"aria-hidden":"true",className:D("mt-1 select-text break-words text-body-sm text-ink-muted",t?"line-clamp-[12] whitespace-pre-line":"line-clamp-2"),children:n}),e.jsx("span",{className:"sr-only",children:ca(n,t)})]}):e.jsx("span",{className:"mt-1 text-body-sm text-ink-dim",children:"No description"}),e.jsxs("span",{className:"mt-1 flex min-w-0 flex-col",children:[e.jsx(xa,{team:s}),e.jsx(ga,{team:s})]})]})},pa=({team:s})=>{const t=s.manager?.trim(),n=da(s),a=[n.created?`Created ${n.created}`:null,n.updated?`Updated ${n.updated}`:null].filter(o=>o!==null),i=!!t||s.members.length>0;return e.jsxs("div",{className:"mt-1 flex flex-col gap-2",children:[i||a.length===0?e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("p",{className:"text-ink-dim text-meta",children:"Members"}),e.jsxs("ul",{className:"flex flex-col gap-0.5",children:[t?e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:t}),e.jsx("span",{className:"text-ink-dim text-meta",children:"Manager"})]}):null,s.members.map(o=>e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:o.role}),e.jsx("span",{className:"text-ink-dim text-meta",children:ua(o.kind)}),o.count>1?e.jsxs("span",{className:"text-ink-dim text-meta tabular-nums",children:["×",o.count]}):null]},`${o.kind}:${o.role}`)),i?null:e.jsx("li",{className:"text-ink-dim text-meta",children:"No members"})]})]}):null,a.length>0?e.jsx("p",{className:"text-ink-dim text-meta",children:a.join(" · ")}):null]})},Ne=()=>e.jsxs("div",{className:D(As,"pl-9"),"data-testid":"org-team-skeleton-row",children:[e.jsx("div",{className:"flex h-[1lh] items-center text-body",children:e.jsx(_,{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(_,{className:"h-3.5 w-full"}),e.jsx(_,{className:"h-3.5 w-2/3"})]}),e.jsx("div",{className:"mt-1 flex h-[1lh] items-center text-meta",children:e.jsx(_,{className:"h-3 w-64"})}),e.jsx("div",{className:"flex h-[1lh] items-center text-meta",children:e.jsx(_,{className:"h-3 w-48"})})]}),Es=(s,t)=>t instanceof vs?t.message:$e(s,t),fa=["refresh-hub","retry","sign-in"],ja=({signedIn:s,onOpenSettings:t})=>{const[n,a]=c.useState(1),[i,o]=c.useState(""),{teams:m,isLoading:w,isFetching:y,isError:j,error:N,refetch:x,pagination:f}=Wt({page:n,perPage:ws}),g=Ts(),[S,d]=c.useState(null),[T,R]=c.useState(null),k=c.useRef(new Map),b=c.useRef(null);c.useEffect(()=>{g.isPending||b.current===null||(k.current.get(b.current)?.focus(),b.current=null)},[g.isPending]);const P=yt(i.trim()),I=c.useMemo(()=>P?m.filter(v=>W(v.name).toLowerCase().includes(P)||(v.description??"").toLowerCase().includes(P)):m,[m,P]),A=v=>{g.isPending||(d(null),R(v.id),b.current=v.id,g.mutate({teamId:v.id,name:v.name},{onSettled:()=>R(null),onError:()=>d(v.id)}))},h=c.useMemo(()=>{if(!ds(g.error))return null;const v=m.find(O=>O.id===S);return xs({code:g.error.code,message:g.error.message,details:g.error.details},{name:v?.name??"this team",hubAgentId:null,surface:"pull"})},[g.error,S,m]),E=h?.body??(Xs(g.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."),[l,p]=c.useState(!1),L=(v,O)=>{switch(v){case"refresh-hub":x();break;case"retry":A(O);break;case"sign-in":p(!0);break}},$=w&&m.length===0,q=f?.totalRecords??m.length,F=c.useRef(null),z=v=>{const O=i!=="";o(v),O&&v===""&&F.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(C,{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:D("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(et,{"aria-hidden":"true",className:"ml-2 shrink-0 text-ink-dim"}),e.jsx(te,{ref:F,type:"search",value:i,onChange:v=>z(v.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"})]})}),$&&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(we,{}),e.jsx(we,{}),e.jsx(we,{})]}),!$&&j&&e.jsxs(X,{variant:"danger",className:"w-auto max-w-2xl","data-testid":"agent-hub-public-teams-error",children:[e.jsx(ee,{children:"Public teams could not be loaded"}),e.jsx(se,{children:Es("The public team catalogue could not be read.",N)}),e.jsx("div",{className:"mt-2",children:e.jsx(C,{variant:"primary",size:"sm",onClick:()=>void x(),disabled:y,"aria-busy":y,children:y?"Trying…":"Try again"})})]}),!$&&!j&&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."}),!$&&!j&&m.length>0&&e.jsxs(e.Fragment,{children:[!P||I.length>0?e.jsxs("p",{className:"mb-3 text-meta text-ink-dim","data-testid":"agent-hub-public-teams-status",children:[P?`${I.length} of ${m.length} teams on this page match "${i.trim()}"`:`${q} ${q===1?"team":"teams"} in the public hub`,P?e.jsxs("span",{className:"text-ink-dim",children:[" ","· search covers the teams loaded here"]}):null]}):null,I.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 "${i.trim()}".`}):e.jsx("ul",{className:"flex max-w-4xl flex-col gap-3",children:I.map(v=>e.jsx(ka,{team:v,pulling:T===v.id,pullPending:g.isPending,onPull:A,pullButtonRef:O=>{O?k.current.set(v.id,O):k.current.delete(v.id)},failed:S===v.id,failureBody:E,treatment:h,onTreatmentAction:L,reauthenticating:l,onReauthenticated:()=>{p(!1),d(null),x()}},v.id))}),!P&&f&&f.totalPages>1&&e.jsx(Fe,{count:f.totalPages,page:f.page,onChange:v=>{a(v),F.current?.scrollIntoView({block:"nearest"})}})]})]})},ka=({team:s,pulling:t,pullPending:n,onPull:a,failed:i,failureBody:o,treatment:m,onTreatmentAction:w,reauthenticating:y,onReauthenticated:j,pullButtonRef:N})=>{const[x,f]=c.useState(!1),g=Gt({teamId:x?s.id:void 0}),S=W(s.name),d=Cs(s),T=Rs(s),R=s.manager?.trim(),k=_s(s),b=(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:S}),d?e.jsxs("span",{className:"ml-2 shrink-0 text-ink-dim text-meta",children:["v",d]}):null]}),b?e.jsx("p",{...ce,className:"mt-1 line-clamp-3 max-w-3xl select-text text-body-sm text-ink-muted",children:b}):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:[R?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-ink-dim",children:"Manager:"}),e.jsx("span",{className:"text-ink-muted",children:R})]}):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:[k," ",k===1?"member":"members",":"]}),e.jsx(J,{content:Te(s),children:e.jsx("span",{className:"truncate text-ink-muted",children:Te(s)})})]})]}),T?e.jsxs("p",{className:"mt-1 text-ink-dim text-meta",children:["Published by ",e.jsx("span",{className:"text-ink-muted",children:T})]}):null]}),e.jsxs("div",{className:"flex shrink-0 flex-col items-end gap-2",children:[e.jsx(C,{ref:N,variant:"secondary",size:"sm",onClick:()=>a(s),disabled:n,"aria-label":`Pull team ${S}`,children:t?"Pulling…":"Pull"}),i&&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:o}),m?.actions.filter(P=>fa.includes(P)).map(P=>e.jsx(C,{variant:"primary",size:"sm",onClick:()=>w(P,s),children:gs[P]},P)),y&&e.jsx("div",{"data-testid":"agent-hub-public-team-pull-reauth",children:e.jsx(Ns,{titleText:"Sign in again",descriptionText:"",onSignInSuccess:j})})]})]})]}),e.jsx("div",{className:"mt-2",children:e.jsx(us,{summary:"Brief",open:x,onOpenChange:f,className:"w-full",triggerClassName:"w-full",triggerLabel:`View the brief for ${S}`,chevronClassName:"text-ink-dim",children:e.jsx(ya,{detail:g})})})]})},ya=({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(_,{className:"h-[1lh] w-2/3"}),e.jsx(_,{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:Es("This team's brief could not be read.",s.error)}),e.jsx(C,{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 n=(t.instructions??"").trim(),a=(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"}),n?e.jsx("p",{...ce,className:"whitespace-pre-line select-text text-ink-muted",children:n}):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"}),a?e.jsx("p",{...ce,className:"whitespace-pre-line select-text text-ink-muted",children:a}):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(i=>e.jsxs("li",{className:"flex items-baseline gap-1.5",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:i.count>1?`${i.role} ×${i.count}`:i.role}),e.jsx("span",{className:"text-ink-dim text-meta",children:i.kind})]},`${i.kind}:${i.role}`))]})]})]})},we=()=>e.jsxs("div",{className:"rounded-md bg-surface p-4",children:[e.jsx(_,{className:"h-[1lh] w-1/3"}),e.jsx(_,{className:"mt-1 flex h-[3lh] w-full"}),e.jsx(_,{className:"mt-2 h-[1lh] w-2/3"})]}),va=(s,t)=>{const[n,a]=c.useState(s);return c.useEffect(()=>{const i=setTimeout(()=>a(s),t);return()=>clearTimeout(i)},[s,t]),n},re=[{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"}],Na=[{value:"name",label:"Name"},{value:"description",label:"Description"}],wa=300,Y="public",ls={agents:"agent-hub-view-agents",teams:"agent-hub-view-teams",skills:"agent-hub-view-skills"},rs="agent-hub-view-panel",Sa=()=>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(_,{className:"h-5.5 w-2/3"}),e.jsx(_,{className:"h-3.5 w-full"}),e.jsx(_,{className:"h-3.5 w-full"}),e.jsx(_,{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(_,{className:"h-5.5 w-24"}),e.jsx(_,{className:"h-5.5 w-20"})]}),e.jsx("div",{className:"flex items-center gap-1.5",children:e.jsx(_,{className:"h-5.5 w-24"})})]}),e.jsx(_,{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(_,{className:"size-4"}),e.jsx(_,{className:"h-4 w-6"}),e.jsx(_,{className:"size-4"}),e.jsx(_,{className:"h-4 w-6"}),e.jsx(_,{className:"ml-auto h-7 w-16"})]})]}),Ba=()=>{const s=cs(),{isAuthenticated:t}=Ce(),[n,a]=c.useState(1),[i]=c.useState(12),[o,m]=c.useState(null),[w,y]=c.useState(""),[j,N]=c.useState("name"),[x,f]=c.useState(re[0].value),[g,S]=c.useState(Y),[d,T]=c.useState("agents");he();const[R,k]=c.useState([]),b=va(w,wa),P=re.find(r=>r.value===x)??re[0],I=Re(),A=!I.isError&&me(I.data,"hub_skills"),h=d==="skills"&&!A?"agents":d;c.useEffect(()=>{d==="skills"&&!A&&T("agents")},[d,A]);const E=st(),l=tt(I.data,"radient_org"),p=t?Ot(l,E??null):null,{memberships:L}=$t({enabled:ss(l)}),$=c.useMemo(()=>Rt(L),[L]),q=g===Y||$.some(r=>r.tenant_id===g);c.useEffect(()=>{!q&&h!=="skills"&&S(Y)},[q,h]);const F=g===Y?null:$.find(r=>r.tenant_id===g)??null,z=F?.tenant_id,v=F?.tenant_name||null,O=o!==null||b!=="",be=Ps({tenantId:z}),ne=z&&be.isSuccess&&!O?be.teams.length:null,$s=F?.role==="owner"||F?.role==="admin",Fs=c.useMemo(()=>new Map(L.map(r=>[r.tenant_id,r.tenant_name])),[L]),{data:ie,agents:Os,isLoading:Ls,isFetching:B,error:K,refetch:Oe,pagination:U}=ut({page:n,perPage:i,categories:o?[o]:void 0,name:j==="name"&&b||void 0,description:j==="description"&&b||void 0,sort:P.sort,order:P.order,tenantId:z}),G=F?js(K):null,le=Os??[],Le=B&&ie!==void 0,{statuses:ze,isKnown:zs,isError:Ms,isFetching:pe,refetch:Ds}=vt({agentIds:z?[]:le.map(r=>r.id)}),fe=c.useRef(null),je=c.useRef(null),[Me,qs]=c.useState(0);c.useEffect(()=>{Me!==0&&(fe.current??je.current)?.focus()},[Me]);const De=c.useRef(null),ke=c.useRef(!1),ye=c.useMemo(()=>[...new Set((ie?.records??[]).flatMap(r=>r.categories??[]))],[ie]);c.useEffect(()=>{k(r=>ye.every(V=>r.includes(V))?r:[...new Set([...r,...ye])])},[ye]);const Bs=()=>{m(null),y(""),a(1),qs(r=>r+1)},M=(Ls||B)&&ie===void 0,qe=!M&&!O&&(K!==null||le.length===0);c.useEffect(()=>{!ke.current||M||(ke.current=!1,K?De.current?.focus():(fe.current??je.current)?.focus())},[M,K]);const Be=c.useRef(null),Us=r=>{a(r),Be.current?.scrollIntoView({block:"nearest"})},Hs=r=>{m(r),a(1)},Qs=r=>{y(r),a(1)},Ks=r=>{S(r),a(1)},Ue=c.useRef(new Map),Vs=r=>{N(r),a(1)},He=U&&!O?U.totalRecords:null,ve=z?`shared with ${v??"this organization"}`:"in the public hub",Qe=(r,V)=>`${r} ${V}${r===1?"":"s"} ${ve}`;let H;return h==="skills"?H=" ":h==="teams"?z?be.isLoading?H="Loading teams…":ne!==null?H=Qe(ne,"team"):H=`Teams ${ve}`:H=" ":M?H="Loading agents…":U?H=Qe(U.totalRecords,"agent"):H=`Agents ${ve}`,e.jsxs("div",{className:"flex h-full flex-col gap-8 p-6",children:[e.jsx(nt,{title:"Agent hub",subtitle:"Discover and download community agents on Radient",icon:_t}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4",children:[p&&e.jsxs(X,{variant:"warning",className:"max-w-2xl","data-testid":"agent-hub-org-unavailable",children:[e.jsx(ee,{children:"Organizations are unavailable"}),e.jsx(se,{children:p})]}),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(lt,{value:h,onValueChange:r=>T(r),children:e.jsx(rt,{"aria-label":"Browse the hub by type",children:["agents","teams",...A?["skills"]:[]].map(r=>e.jsxs(ct,{value:r,id:ls[r],"aria-controls":h===r?rs:void 0,"data-testid":`agent-hub-view-${r}`,children:[r==="agents"?"Agents":r==="teams"?"Teams":u("ui.hub.skills.title"),r!=="skills"&&(r==="agents"?He:ne)!==null&&e.jsx("span",{className:"min-w-[2ch] font-normal text-ink-dim tabular-nums",children:r==="agents"?He:ne})]},r))})}),$.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:Y,label:"Public hub",Icon:at},...$.map(r=>({value:r.tenant_id,label:r.tenant_name||"Organization",Icon:zt}))].map(({value:r,label:V,Icon:Ys})=>e.jsxs(C,{ref:Ke=>{Ke?Ue.current.set(r,Ke):Ue.current.delete(r)},variant:"ghost",size:"sm","aria-pressed":g===r,onClick:()=>Ks(r),title:V,"data-testid":`agent-hub-scope-${r===Y?"public":`org-${r}`}`,className:D("max-w-48",g===r&&"bg-surface text-ink hover:bg-surface"),children:[e.jsx(Ys,{"aria-hidden":"true"}),e.jsx("span",{className:"truncate",children:V})]},r))})]})]})]}),e.jsx(ot,{id:rs,labelledBy:ls[h],children:e.jsxs("div",{className:"flex min-h-0 flex-1 flex-row overflow-hidden",children:[h==="agents"&&e.jsx(e.Fragment,{children:e.jsx("div",{className:"mr-6 hidden w-60 shrink-0 rounded-md bg-surface p-2 md:block","data-tour-tag":"agent-hub-sidebar-container",children:!qe&&e.jsx(Ht,{selectedCategory:o,onSelectCategory:Hs,categories:R})})}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col overflow-y-auto",children:[h==="agents"&&!qe&&e.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[e.jsxs("div",{className:D("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(te,{ref:fe,type:"search",value:w,onChange:r=>Qs(r.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(We,{value:j,onValueChange:Vs,children:[e.jsx(Ge,{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(Je,{})}),e.jsx(Ze,{children:Na.map(r=>e.jsx(Xe,{value:r.value,children:r.label},r.value))})]})]}),e.jsxs(We,{value:x,onValueChange:f,children:[e.jsx(Ge,{className:"w-48","aria-label":"Sort agents","data-testid":"agent-hub-sort",children:e.jsx(Je,{})}),e.jsx(Ze,{children:re.map(r=>e.jsx(Xe,{value:r.value,children:r.label},r.value))})]})]}),e.jsxs("p",{ref:Be,"aria-live":"polite",className:"mb-3 text-meta text-ink-dim","data-testid":"agent-hub-status",children:[H,h==="agents"&&Le?e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{"data-testid":"agent-hub-updating",children:"Updating…"})]}):null]}),h==="agents"&&e.jsxs(e.Fragment,{children:[t&&Ms&&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(C,{variant:"ghost",size:"sm",onClick:()=>void Ds(),disabled:pe,"aria-busy":pe,children:pe?"Trying…":"Try again"})]}),M&&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},(r,V)=>e.jsx(Sa,{},V))}),M&&U===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(_,{className:"h-4 w-24"})}),e.jsx("output",{"aria-live":"polite","data-testid":"agent-hub-outage",className:D(!M&&K&&!G?"block":"sr-only"),children:!M&&K&&!G&&e.jsxs(X,{variant:"danger",className:"max-w-2xl","aria-busy":B,"data-testid":"agent-hub-error",children:[e.jsx(ee,{children:t?"The hub could not be loaded":"Sign in to use the hub"}),e.jsx(se,{children:t?$e("The agent list could not be loaded.",K):"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(C,{ref:De,variant:"outline",size:"sm",onClick:()=>{ke.current=!0,Oe()},disabled:B,"aria-busy":B,children:B?"Trying…":"Try again"})})]})}),!M&&G&&F&&e.jsxs(X,{variant:"warning",className:"max-w-2xl","data-testid":"agent-hub-org-no-access",children:[e.jsx(ee,{children:G==="plan"?"That organization needs an active Team plan":"You do not have access to that organization"}),e.jsx(se,{children:G==="plan"?`Sharing agents inside an organization is part of the Team plan. An owner of ${F.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 ${F.tenant_name||"that organization"}, so its agents are not listed here. An owner can invite you again.`}),G==="plan"&&e.jsx("div",{className:"mt-2",children:e.jsx(C,{variant:"primary",size:"sm",onClick:()=>void Oe(),disabled:B,"aria-busy":B,children:B?"Trying…":"Try again"})})]}),!M&&!K&&e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(17.5rem,1fr))] gap-6","aria-busy":Le,children:le.length===0?e.jsxs("div",{"data-testid":"agent-hub-empty",className:D("col-span-full w-full flex flex-col items-center gap-2 rounded-md bg-surface px-6 py-10 text-center",!z&&"max-w-2xl justify-self-center"),children:[e.jsx("p",{className:"text-heading text-ink",children:z?"This organization has no shared agents yet.":o?`No agents in ${bs(o).label}.`:O?"No agents match that search.":"The hub is empty."}),e.jsx("p",{className:"max-w-md text-body-sm text-ink-muted",children:z?`Agents published into ${F?.tenant_name||"this organization"} appear here for its members.`:o?"Nothing in this category yet. Clear the filter to see the whole hub.":O?"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:O?e.jsx(C,{variant:"secondary",onClick:Bs,children:o?"Clear filter":"Clear search"}):z&&!$s?null:e.jsx(C,{ref:je,variant:"secondary",onClick:()=>s("/agents"),children:"Publish an agent"})})]}):le.map(r=>e.jsx(Bt,{agent:r,status:t?ze[r.id]:void 0,viewerStateKnown:t&&Nt(zs,ze,r.id),orgName:r.visibility==="org"?Fs.get(r.tenant_id)??null:null},r.id))}),!M&&U&&U.totalPages>1&&e.jsx(Fe,{count:U.totalPages,page:U.page,onChange:Us})]}),h==="skills"&&(A?e.jsx(ta,{scope:g===Y?{visibility:"public",tenantId:null,organization:null}:{visibility:"org",tenantId:g,organization:v},signedIn:t,accessible:q&&(g===Y||ss(l))},`skills:${g}`):e.jsx("p",{className:"text-body-sm text-warning",children:u("ui.hub.skills.unavailable")})),h==="teams"&&(F?e.jsx(ha,{tenantId:F.tenant_id,orgName:v}):e.jsx(ja,{signedIn:t,onOpenSettings:()=>s("/settings")}))]})]})})]})]})};export{Ba as AgentHubPage};
@@ -0,0 +1,7 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./legacy-agents-page-BGSPncrN.js","./index-CftawgM9.js","./index-VwZaZzVv.css","./conversation-input-sync-B3FVv0Mq.js","./ui-preferences-store-Byw1dJtt.js","./error-boundary-etstfCzN.js","./conversation-input-sync-CAX4_ErH.css","./page-header-DZ04Whs5.js","./index-9_-S4Njy.js","./console-mirror-DDhXu5hQ.js","./console-mirror-DOrYoP_4.css","./index-DHKnfVbX.css","./notebook-pen-DsGb6zKu.js","./use-memberships-query-C4IVeIBl.js","./org-access-B_xqEqnd.js","./org-surface-gate-D4SilXIt.js","./radient-auth-buttons-BmQt2D1Y.js","./publication-validation-BmkCCv-H.js"])))=>i.map(i=>d[i]);
2
+ import{aw as Ie,bh as os,ap as Ye,a as Oe,c as ee,C as St,bi as cs,az as ds,bj as _e,bk as Ct,bl as Qe,bm as us,u as Et,bn as ms,d as Z,bo as it,aH as he,a0 as Be,aj as hs,ak as fs,am as gs,Z as Ae,aJ as Ze,aS as ps,aP as Xe,aF as Re,B as It,bp as At,ag as xs,bq as bs,aG as js,br as Rt,bs as vs,aK as ys,bt as ks,bu as Ns,bv as rt,bw as ws,bx as _s,by as Ss,bz as Cs}from"./conversation-input-sync-B3FVv0Mq.js";import{r as o,j as e,c as q,t as c,s as Es}from"./index-CftawgM9.js";import{ae as Is,af as As,ag as Tt,ah as Rs,ai as et,aj as Ts,ak as Ds,al as lt,am as Dt,an as Ls,ao as Ke,ap as Ge,aq as $s,ar as Os,as as Fs,at as Ps,au as Ms,av as Bs,aw as Us,ax as zs,ay as qs,az as Lt,aA as Hs,aB as Ws,b as Ks,aC as $t,A as Gs}from"./index-9_-S4Njy.js";import{c as Js,B as _,x as Vs,y as Ys,k as be,z as se,A as le,m as oe,n as ce,I as ve,F as Ot,G as Ft,H as Pt,J as Mt,K as Te,M as Fe,N as De,q as Qs,r as Zs,s as Xs,w as en,T as Je,u as fe,D as Bt,a as Ut,b as zt,d as qt,e as Ht,C as tn,f as Wt,O as sn,P as ot,Q as ct,R as Ee,U as ge,V as dt,W as pe,Y as nn,Z as an,_ as ut}from"./error-boundary-etstfCzN.js";import{e as rn}from"./ui-preferences-store-Byw1dJtt.js";import{f as Kt}from"./use-memberships-query-C4IVeIBl.js";import{u as Gt,n as Ue,H as ln,p as on}from"./org-access-B_xqEqnd.js";import"./console-mirror-DDhXu5hQ.js";/**
3
+ * @license lucide-react v0.507.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */const cn=[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]],dn=Js("log-in",cn),un=[],we="config-composer-note",mt="Configure agents by conversation",mn=["A reviewer that only reads code","Add the coder twice to release-crew","A team called shipping with a manager and two coders"],hn={idle:"bg-ink-dim",running:"bg-accent",stopping:"bg-warning",done:"bg-success",stopped:"bg-ink-muted",error:"bg-danger"};function fn({status:t,pulse:s}){return e.jsx("span",{"aria-hidden":"true",className:q("size-2 shrink-0 rounded-full",hn[t]??"bg-ink-dim",s&&"animate-pulse")})}function gn({run:t}){return t.activity.length===0?e.jsx("p",{className:"text-meta text-ink-muted",children:"Nothing to show yet — the run has not called a tool."}):e.jsx("ul",{className:"space-y-1",children:t.activity.map((s,n)=>e.jsxs("li",{className:"flex items-baseline gap-2 text-body-sm",children:[e.jsx("span",{className:"text-ink-dim tabular-nums",children:new Date(s.ts).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),e.jsx("span",{className:"text-ink",children:s.verb})]},`${s.ts}:${s.verb}:${n}`))})}const ht="-mr-2",pn="max-h-[clamp(3.5rem,10vh,5.5rem)]";function xn(){const t=o.useRef(null),[s,n]=o.useState(!1);return o.useEffect(()=>{const a=t.current;if(!a)return;const i=()=>n(a.scrollHeight>a.clientHeight+1);i();const d=new ResizeObserver(i);return d.observe(a),()=>d.disconnect()}),{ref:t,overflowing:s}}function bn({children:t}){const{ref:s,overflowing:n}=xn();return e.jsx("div",{ref:s,tabIndex:n?0:void 0,role:n?"region":void 0,"aria-label":n?"Run details":void 0,"data-lo-region-cue":n?"":void 0,className:q("mb-2 overflow-y-auto empty:hidden",pn),children:t})}const jn="mb-1 flex min-h-7 items-center gap-3",ft=t=>t===1?"1 definition":`${t} definitions`;function vn({run:t,about:s,blockedReason:n,hasDraft:a,onClearAbout:i,onDismiss:d}){const[h,p]=o.useState(!1),x=o.useRef(null),u=t.status==="running"||t.status==="stopping",l=t.enabled&&t.status!=="idle",m=!!n&&a&&!l,N=!!n&&a&&l&&!u;o.useEffect(()=>{if(!u)return;const f=S=>{S.key!=="Escape"||S.defaultPrevented||document.querySelector('[role="alertdialog"], [role="dialog"]')||x.current?.focus()};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[u]);const v=t.status==="running"?t.step??"Working on your request":t.status==="stopping"?"Stopping":t.status==="done"?t.results.length>0?"Finished":"Finished without changing anything":t.status==="stopped"?"Stopped":t.status==="error"?t.canRetry?"Stopped with an error":"Finished with an error":"";return e.jsxs("div",{className:_e,"data-testid":l?"config-run-strip":void 0,children:[e.jsxs("div",{className:jn,children:[l?e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[e.jsx(fn,{status:t.status,pulse:u}),e.jsxs("span",{"aria-live":"polite",className:"min-w-0 truncate text-body-sm text-ink",children:[v,t.status==="done"&&t.touched.length>0?e.jsx("span",{className:"sr-only",children:`. Configured ${ft(t.touched.length)}`}):null]}),(u||t.status==="stopped"||t.status==="done")&&t.elapsed!=="0s"?e.jsx("span",{className:"shrink-0 text-meta text-ink-muted tabular-nums",children:t.elapsed}):null,t.touched.length>0?e.jsxs("span",{"aria-hidden":t.status==="done"?!0:void 0,className:"shrink-0 text-meta text-ink-muted",children:[e.jsx("span",{className:"sr-only",children:"Configured "}),ft(t.touched.length)]}):null]}):null,t.enabled&&!N?e.jsxs(e.Fragment,{children:[m?null:e.jsx("span",{id:n?void 0:we,"data-testid":n?void 0:"config-composer-note",className:l?"sr-only":"min-w-0 flex-1 truncate text-meta text-ink-dim",children:"Runs in the background. This does not appear in your conversation."}),n?e.jsx("span",{id:we,"data-testid":"config-composer-note",className:m?"min-w-0 flex-1 truncate text-meta text-ink-dim":"sr-only",children:n}):null]}):e.jsx("span",{className:"flex-1","aria-hidden":"true"}),e.jsxs("div",{className:"ml-auto flex shrink-0 items-center gap-1",children:[s?e.jsxs(e.Fragment,{children:[e.jsxs("span",{"data-testid":"config-composer-about",title:`About ${s.kind} ${s.name}`,className:"max-w-56 truncate text-meta text-ink-muted",children:["About ",s.kind," ",s.name]}),e.jsx(_,{variant:"ghost",size:"sm",className:l?void 0:ht,onClick:i,children:"Clear"})]}):null,l&&t.activity.length>0?e.jsxs(_,{variant:"ghost",size:"sm","aria-expanded":h,onClick:()=>p(f=>!f),children:[h?e.jsx(Vs,{className:"size-3.5"}):e.jsx(Ys,{className:"size-3.5"}),"Watch"]}):null,l?u?e.jsxs(_,{ref:x,variant:"secondary",size:"sm",disabled:t.status==="stopping",onClick:()=>void t.stop(),children:[e.jsx(us,{className:"size-3.5"}),t.status==="stopping"?"Stopping…":"Stop"]}):e.jsx(_,{variant:"ghost",size:"sm",className:ht,onClick:d,children:"Dismiss"}):null]})]}),t.enabled?null:e.jsx("p",{id:we,"data-testid":"config-composer-note",className:"mb-2 text-meta text-ink-dim",children:t.disabledReason}),N?e.jsx("p",{id:we,"data-testid":"config-composer-note",className:"mb-2 text-meta text-ink-muted",children:n}):null,l?e.jsxs(bn,{children:[t.attached?e.jsx("p",{className:"mt-1 text-meta text-ink-muted",children:"Another configuration run was already going, so this page attached to it. Your request was not sent — it is still in the box."}):null,t.stopError?e.jsxs("div",{className:"mt-2 border-danger-border border-t pt-2","data-testid":"config-stop-refused",children:[e.jsx("p",{className:"text-body-sm text-danger",children:"The stop did not take — the run is still going."}),e.jsx("p",{className:"mt-0.5 text-meta text-ink-muted",children:t.stopError})]}):null,h?e.jsx("div",{className:"mt-2 border-hairline border-t pt-2",children:e.jsx(gn,{run:t})}):null,t.status==="stopped"?e.jsxs("div",{className:"mt-2 space-y-1 border-hairline border-t pt-2 text-body-sm",children:[e.jsx("p",{className:"text-ink",children:t.results.length>0?"Stopped. Changes it had already made were kept.":"Stopped. Nothing had been changed yet."}),t.results.length>0?e.jsx("ul",{className:"space-y-0.5",children:t.results.map(f=>e.jsxs("li",{className:"text-ink-muted",children:[f.created?"Created ":"Changed ",e.jsx("span",{className:"text-ink",children:f.target.name})]},`${f.target.kind}:${f.target.name}`))}):null]}):null,t.status==="done"?e.jsx(yn,{run:t}):null,t.status==="error"&&t.error?e.jsx("div",{className:"mt-2 border-danger-border border-t pt-2",children:e.jsx("p",{className:"text-body-sm text-danger",children:t.error})}):null]}):null,l&&t.status==="error"&&t.error?e.jsxs("div",{className:"mb-2.5 flex items-center gap-2",children:[t.canRetry?e.jsx(_,{variant:"secondary",size:"sm","data-testid":"config-retry",disabled:t.starting,onClick:()=>void t.retry(),children:t.starting?"Sending…":"Retry"}):null,e.jsx("p",{className:"text-meta text-ink-muted",children:"Nothing else was changed by this run."})]}):null]})}function yn({run:t}){return t.results.length===0?e.jsxs("div",{className:"mt-2 border-hairline border-t pt-2 text-body-sm",children:[e.jsx("p",{className:"text-ink-muted",children:"The run answered without changing any agent or team."}),t.answer?e.jsx("p",{className:"mt-1 whitespace-pre-wrap text-ink",children:t.answer}):null,t.topic?e.jsxs("p",{className:"mt-1 text-meta text-ink-muted",children:["You asked: ",t.topic]}):null]}):e.jsxs("div",{className:"mt-2 space-y-1 border-hairline border-t pt-2",children:[e.jsx("ul",{className:"space-y-1 text-body-sm",children:t.results.map(s=>e.jsxs("li",{children:[e.jsxs("span",{className:"text-ink",children:[s.created?"Created ":"Updated ",s.target.name]}),e.jsxs("span",{className:"text-ink-muted",children:[" (",s.target.kind,")"]}),s.changes.length>0?e.jsxs("span",{className:"text-ink-muted",children:[": ",s.changes.map(n=>n.label).join(", ")]}):s.created?null:e.jsx("span",{className:"text-ink-muted",children:": its settings changed. The list does not show instructions, so open it to see what was written."})]},`${s.target.kind}:${s.target.name}`))}),t.answer?e.jsx("p",{className:"whitespace-pre-wrap text-body-sm text-ink-muted",children:t.answer}):null]})}const ye="agents-config",kn=t=>`Change the ${t.kind} ${t.name}: `;function ze(t,s,n){t.setAbout(s);const a=Ie.getState();a.getCurrentInput(ye)||a.setComposerText(ye,n)}function Nn(t){const s=Ie.getState();s.getCurrentInput(ye).trim()===kn(t).trim()&&s.setComposerText(ye,"")}function Jt({run:t,hero:s=!1,blockedReason:n,about:a,onClearAbout:i}){const d=o.useRef(null),h=os(),p=Ye(E=>E.cwd),x=Oe(),u=t.frontend===null&&t.status==="idle"&&p.length>0&&ee(x.data,"draft_preview"),l=St({...cs({cwd:p,model:null}),enabled:u}),m=ye,N=E=>Ie.getState().setCurrentInput(m,E),v=t.status==="running"||t.status==="stopping",f=!t.enabled||!!n,S=Ie(E=>(E.inputByConversation[ye]?.currentInput??"").trim().length>0),j=n||(v?"Working on your request…":t.enabled?void 0:mt),k=a?`Change ${a.name}…`:t.enabled?s?"Describe what you want…":"Ask for a change, or describe something new…":mt,A=a?`${a.kind}:${a.name}`:null;o.useEffect(()=>{A&&d.current?.focusInput()},[A]);const R=()=>{t.dismiss(),d.current?.focusInput()},D=()=>{i(),d.current?.focusInput()};return e.jsxs("div",{"data-testid":"config-composer",children:[e.jsx("div",{className:"sr-only",id:"config-composer-label",children:"Ask for an agent or team change"}),e.jsx(ds,{ref:d,conversationId:m,messages:un,isLoading:!1,transcriptless:!0,placeholderOverride:k,sessionStatus:t.frontend?{frontend:t.frontend,costChannels:ee(x.data,"cost_channels")}:l.data?{frontend:l.data.snapshot,draft:!0,costChannels:ee(x.data,"cost_channels")}:void 0,recordingProbe:h,hostNotice:{id:we,blocksInput:!t.enabled||!!n||v,placeholder:j,statedByNode:S,node:e.jsx(vn,{run:t,about:a,blockedReason:n,hasDraft:S,onClearAbout:D,onDismiss:R})},onSendMessage:(E,g)=>t.start(E,a,g)}),s&&t.enabled?e.jsx("div",{className:q(Qe,Ct),children:e.jsx("div",{className:q(_e,"mt-2 flex flex-col items-start gap-0.5",!a&&!v?"":"invisible"),children:mn.map(E=>e.jsx(_,{variant:"ghost",size:"sm",className:"-ml-2 h-auto max-w-full justify-start whitespace-normal break-words px-2 py-1 text-left text-body-sm text-ink-muted hover:bg-elevated hover:text-ink disabled:text-ink-disabled disabled:hover:bg-transparent",disabled:f,onClick:()=>{N(E),d.current?.focusInput()},children:E},E))})}):null]})}const gt=(t,s)=>t.kind===s.kind&&t.name===s.name;function wn(t){return`${t.kind}:${t.name}`}const K=rn(t=>({sessionId:null,status:"idle",topic:"",images:[],about:null,error:null,stopError:null,unsent:!1,startedAt:null,settledAt:null,touched:[],results:[],answer:"",marks:[],before:null,setAbout:s=>t({about:s}),adopt:(s,n,a,i=[])=>t({sessionId:s,status:"running",topic:n,images:i,error:null,stopError:null,startedAt:Date.now(),settledAt:null,touched:[],results:[],answer:"",before:a,unsent:!1}),noteTouched:s=>t(n=>n.touched.some(a=>gt(a,s))?n:{touched:[...n.touched,s]}),stopping:()=>t(s=>s.status==="running"?{status:"stopping",stopError:null}:s),stopFailed:s=>t({status:"running",stopError:s}),settle:(s,n,a)=>t(()=>({status:n,settledAt:Date.now(),results:s,answer:a,marks:s.map(i=>({...i.target,created:i.created})),sessionId:null,images:[],stopError:null,before:null,unsent:!1})),fail:s=>t({status:"error",error:s,unsent:!1,stopError:null}),failUnsent:s=>t({status:"error",error:s,unsent:!0,stopError:null}),dismiss:()=>t({status:"idle",sessionId:null,error:null,stopError:null,unsent:!1,topic:"",images:[],touched:[],results:[],answer:"",marks:[],startedAt:null,settledAt:null,before:null}),clearMark:s=>t(n=>({marks:n.marks.filter(a=>!gt(a,s))}))})),_n=/Value error,\s*([\s\S]*?)\s*\[type=/,Sn=/^\d+ validation errors? for \S+[\s\S]*?\n\s*/i,Cn=/\s*\[type=[^\]]*\][\s\S]*$/m,En=/\s*For further information visit \S+/g,In=/'([^']+)' already exists/,An=/cannot contain spaces or path separators/i,Rn=/effort tier '([^']+)' is unavailable/i,Tn=/team name must be/i,Dn=/manager '([^']+)'/i,Ln=/(?:member|role) '([^']+)' (?:is not|does not)/i,$n=/depth|cycle|circular/i,On=/instructions/i,Fn=/description/i;function Pn(t){const s=t.match(_n);return s?.[1]?s[1].trim():t.replace(Sn,"").replace(Cn,"").replace(En,"").trim()}function Se(t){const s=Pn(t),n=s.match(In);if(n)return{message:c("ui.agents.refusals.name_taken",{name:n[1]}),field:"name"};if(An.test(s))return{message:c("ui.agents.refusals.name_grammar"),field:"name"};const a=s.match(Rn);if(a)return{message:c("ui.agents.refusals.effort_unavailable",{tier:a[1]}),field:"effort"};if(s.match(Tn))return{message:c("ui.agents.refusals.team_name_bound"),field:"name"};const d=s.match(Dn);if(d)return{message:c("ui.agents.refusals.missing_manager",{name:d[1]}),field:"manager"};const h=s.match(Ln);return h?{message:c("ui.agents.refusals.missing_member",{name:h[1]}),field:"members"}:$n.test(s)?{message:c("ui.agents.refusals.team_nesting"),field:"members"}:On.test(s)?{message:s,field:"instructions"}:Fn.test(s)?{message:s,field:"description"}:{message:s,field:null}}function Mn(t,s){const n=new Set(s),a=`${t}-copy`;if(!n.has(a))return a;for(let i=2;i<100;i+=1){const d=`${a}-${i}`;if(!n.has(d))return d}return a}function Ce(t){return t.action_class==="proactive"?"proactive":"reactive"}const Vt={get proactive(){return c("ui.agents.refusals.class.label.proactive")}},Bn={get proactive(){return c("ui.agents.refusals.class.meaning.proactive")},get reactive(){return c("ui.agents.refusals.class.meaning.reactive")}},Un={get proactive(){return c("ui.agents.refusals.class.effect.proactive")},get reactive(){return c("ui.agents.refusals.class.effect.reactive")}};let Yt=c("ui.agents.refusals.class.install_disclosure");Es(()=>{Yt=c("ui.agents.refusals.class.install_disclosure")});function zn(t,s){const n=[];return t.source==="builtin"&&n.push({op:"profiles.install",name:t.name}),n.push({op:"profiles.update",name:t.name,fields:{action_class:s}}),n}async function qn(t,s,n,a=()=>crypto.randomUUID()){if(Ce(t)===s)return null;let i=null;const d=zn(t,s);for(let h=0;h<d.length;h+=1){const p=d[h];try{i=await n(p,a())}catch(x){throw new Qt(x,d.slice(0,h))}}return i}class Qt extends Error{completed;constructor(s,n){super(s instanceof Error?s.message:String(s)),this.name="ClassSwitchError",this.completed=n}}function Hn(t,s){const n=t instanceof Error&&t.message?t.message:c("ui.agents.refusals.class.error.no_reason"),a=Se(n).message;return s.some(i=>i.op==="profiles.install")?c("ui.agents.refusals.class.error.install_landed",{reason:a}):a}const Wn=new Set(["agent","team"]);function Kn(t){const s=typeof t.args?.op=="string"?t.args.op:null,n=typeof t.args?.name=="string"?t.args.name:null,a=t.toolName==="team"?"team":"agent",i=n?{kind:a,name:n}:null,d=t.phase==="done"&&!t.isError&&!t.notRunReason&&!t.neverSent,h=p=>({writes:p&&d});switch(s){case"create":return{verb:n?`Creating ${a} ${n}`:`Creating a ${a}`,target:i,...h(!0)};case"update":return{verb:n?`Updating ${a} ${n}`:`Updating a ${a}`,target:i,...h(!0)};case"install":return{verb:n?`Installing ${n}`:"Installing an agent",target:i,...h(!0)};case"list":case"search":case"show":return{verb:n?`Reading ${n}`:`Reading ${a}s`,target:i,...h(!1)};default:return{verb:t.phase==="running"?`Working on ${a}s`:`Checked ${a}s`,target:i,...h(!0)}}}const Gn={description:"description",kind:"kind",tools:"tools",effort:"effort tier",delegate:"delegation",action_class:"class",manager:"manager",members:"members",instructions:"instructions"};function Jn(t){return{description:t.description??"",kind:t.kind,tools:t.tools&&t.tools.length>0?[...t.tools].sort().join(","):"*",effort:t.effort??"inherit",delegate:String(!!t.delegate),action_class:Ce(t)}}function Vn(t){return{description:t.description??"",manager:t.manager??"",members:(t.members??[]).map(s=>`${s.kind}:${s.role}x${s.count}`).sort().join(",")}}function pt(t,s){return{agents:Object.fromEntries((t??[]).map(n=>[n.name,Jn(n)])),teams:Object.fromEntries((s??[]).map(n=>[n.name,Vn(n)]))}}function Yn(t,s){if(t===s)return"tools";const n=p=>p==="*"?null:new Set(p.split(",")),a=n(t),i=n(s);if(i===null)return"tools widened to every tool";if(a===null)return"tools narrowed to a list";const d=[...i].filter(p=>!a.has(p)),h=[...a].filter(p=>!i.has(p));return d.length&&!h.length?d.length===1?`tool added: ${d[0]}`:`${d.length} tools added`:h.length&&!d.length?h.length===1?`tool removed: ${h[0]}`:`${h.length} tools removed`:"tools changed"}function Qn(t,s,n){if(t==="tools")return Yn(s,n);if(t==="delegate")return n==="true"?"delegation turned on":"delegation turned off";if(t==="action_class")return n==="proactive"?"class changed to proactive":"class changed to reactive — proactive messaging stopped";if(t==="members"){const a=i=>i?i.split(",").length:0;return`members changed (${a(s)} to ${a(n)})`}return`${Gn[t]??t} changed`}function Zn(t,s,n){const a=[],i=new Set;for(const d of n){const h=`${d.kind}:${d.name}`;if(i.has(h))continue;i.add(h);const p=t[d.kind==="agent"?"agents":"teams"][d.name],x=s[d.kind==="agent"?"agents":"teams"][d.name];if(!x)continue;if(!p){a.push({target:d,created:!0,changes:[]});continue}const u=[];for(const l of Object.keys(x))x[l]!==p[l]&&u.push({label:Qn(l,p[l],x[l]),before:p[l],after:x[l]});a.push({target:d,created:!1,changes:u})}for(const[d,h]of[["agent",s.agents],["team",s.teams]])for(const p of Object.keys(h))i.has(`${d}:${p}`)||(d==="agent"?t.agents[p]:t.teams[p])||a.push({target:{kind:d,name:p},created:!0,changes:[]});return a}function Xn(t){return ee(t,"agents_config")&&ee(t,"session_interrupt")&&ee(t,"profile_catalogue")&&ee(t,"team_catalogue")}function ea(t){if(!(t instanceof Ae)||t.status!==409)return null;const n=t.detail?.session_id;return typeof n=="string"&&n.length>0?n:null}function ta(t,s){const[n,a]=o.useState(()=>Date.now());return o.useEffect(()=>{if(!t||!s)return;const i=setInterval(()=>a(Date.now()),1e3);return()=>clearInterval(i)},[t,s]),t?Math.max(0,n-t):0}function sa(t){const s=Math.floor(t/1e3);return s<60?`${s}s`:`${Math.floor(s/60)}m ${String(s%60).padStart(2,"0")}s`}function xt(t){for(let s=(t?.length??0)-1;s>=0;s-=1){const n=t?.[s];if(n?.kind==="assistant"&&n.text?.trim())return n.text.trim()}return""}function na(t){const n=t?.payload?.frontend;if(!n||typeof n!="object")return null;const a=n.streaming;if(typeof a=="boolean")return a;const i=n.snapshot?.streaming;return typeof i=="boolean"?i:null}function aa(){const t=Oe(),s=Xn(t.data),n=Et(),a=K(),[i,d]=o.useState(!1),[h,p]=o.useState(!1),x=o.useRef(!1),u=a.status==="running"||a.status==="stopping",l=ms(a.sessionId??void 0,!!a.sessionId),m=o.useMemo(()=>xt(l.transcript?.records),[l.transcript?.records]);Is(a.sessionId??void 0,l.subscriptionId);const N=l.transcript?.records,v=o.useRef(N);o.useEffect(()=>{v.current=N},[N]);const f=o.useMemo(()=>(l.transcript?.records??[]).filter(w=>w.kind==="tool"&&Wn.has(w.toolName)).map(w=>({...Kn({toolName:w.toolName,args:w.args??null,phase:w.phase,ts:w.ts,isError:w.isError,notRunReason:w.notRunReason,neverSent:w.neverSent}),ts:w.ts})),[l.transcript]);o.useEffect(()=>{if(u)for(const r of f)r.target&&r.writes&&a.noteTouched(r.target)},[f,u,a]);const S=u&&f.length>0?f[f.length-1].verb:null,j=sa(ta(a.startedAt,u)),k=o.useCallback(async(r,w="")=>{if(x.current)return;x.current=!0;const C=a.before;let P=[];try{const[H,z]=await Promise.all([Z({op:"profiles.list"}),Z({op:"teams.list"})]);C&&(P=Zn(C,pt(H.profiles,z.teams),a.touched))}catch{K.getState().fail("The run finished, but the agents and teams lists could not be read to describe what changed."),it(n);return}if(it(n),K.getState().settle(P,r,w),r==="done"&&P.length>0){const H=P.filter(z=>z.created).length;he(H>0?`Configuration run finished: ${P.length} definition${P.length===1?"":"s"} changed.`:`Configuration run finished: ${P.length} definition${P.length===1?"":"s"} updated.`)}},[n,a.before,a.touched]);o.useEffect(()=>{if(u){if(l.failure){K.getState().fail(l.failure.statement);return}x.current||l.frontend&&(l.frontend.streaming||l.turnsCompleted!==0&&k(a.status==="stopping"?"stopped":"done",m))}},[u,m,l.failure,l.frontend,l.turnsCompleted,a.status,k]),o.useEffect(()=>{const r=a.sessionId;if(!u||!r)return;let w=!1;const C=async()=>{if(!(w||x.current))try{const z=await Z({op:"sessions.get",sessionId:r});if(w||x.current||na(z)!==!1)return;const W=xt(v.current);if(!W)return;k(K.getState().status==="stopping"?"stopped":"done",W)}catch{}},P=setTimeout(()=>void C(),400),H=setInterval(()=>void C(),4e3);return()=>{w=!0,clearTimeout(P),clearInterval(H)}},[u,a.sessionId,k]);const A=async(r,w,C=[])=>{if(i||!r.trim()&&C.length===0)return!1;d(!0),p(!1),x.current=!1;const P=pt(n.getQueryData(["desktop","profiles"]),n.getQueryData(["desktop","teams"])),H=w?`About the ${w.kind} “${w.name}”: ${r.trim()}`:r.trim(),{images:z,unreadable:W,overflow:J}=await hs(C,H),V=fs(W);if(V)return K.getState().fail(V),!1;const ne=gs(J);if(ne)return K.getState().fail(ne),!1;try{let B;try{B=(await Z({op:"sessions.create",requestId:crypto.randomUUID(),purpose:"agents-config"})).session_id}catch(L){const G=ea(L);if(G)return p(!0),a.adopt(G,r.trim(),P,z),!1;throw L}return a.adopt(B,H,P,z),await R(B,H,z),!0}catch(B){const L=K.getState().sessionId;return K.getState().failUnsent(Be(B,L?"The run was set up, but your request could not be sent. It is still in the box — send it again when the backend is reachable.":"The configuration run could not be started. Your request is still here.")),!1}finally{d(!1)}},R=async(r,w,C=[])=>{await Z({op:"sessions.message",sessionId:r,requestId:crypto.randomUUID(),text:w,...C.length>0?{images:C}:{}})},D=async()=>{const r=K.getState();if(!(i||!r.unsent||!r.sessionId||!r.topic&&r.images.length===0)){d(!0);try{await R(r.sessionId,r.topic,r.images),a.adopt(r.sessionId,r.topic,r.before),x.current=!1}catch(w){K.getState().failUnsent(Be(w,"The request could not be sent. It is still in the box."))}finally{d(!1)}}},E=async()=>{const r=K.getState().sessionId;if(r){a.stopping();try{await As(r,crypto.randomUUID())}catch(w){K.getState().stopFailed(Be(w,"The run did not acknowledge the request."))}}},g=s?null:t.isLoading?"Connecting to the backend…":t.error?"The backend could not be reached, so the composer is unavailable for now.":"Ask for a change needs a newer backend. Update Local Operator to configure agents by conversation.";return{enabled:s,disabledReason:g,status:a.status,sessionId:a.sessionId,frontend:l.frontend,topic:a.topic,error:a.error,stopError:a.stopError,about:a.about,setAbout:a.setAbout,touched:a.touched,results:a.results,answer:a.answer,step:S,elapsed:j,activity:f,start:A,stop:E,retry:D,canRetry:a.unsent&&!!a.sessionId,dismiss:a.dismiss,starting:i,attached:h}}function ia(t){return JSON.stringify(t.agent_id?["agent","id",t.agent_id]:["agent","source",t.source,t.name])}function ra(t){return JSON.stringify(t.id?["team","id",t.id]:["team","local",t.name])}function M({title:t,description:s,actions:n,children:a,className:i}){return e.jsxs("section",{className:q("space-y-2",i),children:[e.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1",children:[e.jsx("h3",{className:"text-heading",children:t}),n]}),s?e.jsx("p",{className:"text-meta text-ink-muted",children:s}):null,a]})}const tt="min-h-6",Zt="h-[calc(var(--text-title)*var(--text-title--line-height))]";function je({text:t,empty:s="Nothing here yet.",mono:n=!1}){const[a,i]=o.useState(!1),[d,h]=o.useState(!1),p=o.useRef(null);return o.useEffect(()=>{if(a)return;const x=p.current;if(!x)return;const u=()=>h(!!t&&x.scrollHeight>x.clientHeight+1);u();const l=new ResizeObserver(u);return l.observe(x),()=>l.disconnect()},[t,a]),t.trim()?e.jsxs("div",{children:[e.jsx("div",{ref:p,className:q("whitespace-pre-wrap text-body text-ink",!a&&"line-clamp-10",n&&"font-mono text-meta"),children:t}),d?e.jsx(_,{variant:"link",size:"sm",className:q("mt-px -mb-[3px]",tt),"aria-expanded":a,onClick:()=>i(x=>!x),children:a?"Show less":"Show all"}):null]}):e.jsx("p",{className:"text-body-sm text-ink-muted",children:s})}function la({source:t,appearance:s="chip"}){const n=Xt(t);return s==="text"?e.jsx("span",{className:"shrink-0 text-meta text-ink-dim",children:n}):e.jsx(se,{variant:"neutral",children:n})}function Xt(t){return t==="builtin"?"Built-in":t==="installed"?"Installed":"Custom"}let st=!1,es=null;function bt(t,s){st=t,es=t?s??null:null}function ts(t,s){o.useEffect(()=>{if(!s)return;const n=a=>{a.key!=="Escape"||a.defaultPrevented||st||(a.preventDefault(),t())};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[s,t])}function nt({dirty:t,pending:s,onSave:n,onCancel:a,saveLabel:i="Save changes",pendingLabel:d="Saving…",dirtyHint:h,submit:p,confirming:x,onConfirmingChange:u}){const[l,m]=o.useState(!1),N=o.useRef(null),v=o.useRef(null),f=x!==void 0,S=f?x:l,j=o.useRef(!1);o.useEffect(()=>{S?v.current?.focus():j.current&&document.activeElement===document.body&&N.current?.focus(),j.current=S},[S]);const k=o.useRef(null);o.useEffect(()=>{const R=k.current,D=R?.closest("[data-agents-pane]");if(!R||!D)return;const E=()=>D.style.setProperty("--lo-pane-footer-h",`${R.getBoundingClientRect().height}px`);E();const g=new ResizeObserver(E);return g.observe(R),()=>{g.disconnect(),D.style.removeProperty("--lo-pane-footer-h")}},[]);const A=R=>{f||m(R),u?.(R)};return o.useEffect(()=>{t||(f||m(!1),u?.(!1))},[t,f,u]),e.jsxs("div",{ref:k,"data-testid":"edit-footer","data-lo-pane-footer":!0,className:"sticky bottom-0 z-10 flex flex-wrap items-center gap-2 border-hairline border-t bg-canvas py-3",children:[e.jsx(_,{ref:N,type:p?"submit":void 0,variant:"primary",onClick:p?void 0:n,disabled:s,children:s?d:i}),S?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:h??"Discard your unsaved changes?"}),e.jsx(_,{variant:"danger",onClick:a,children:"Discard changes"}),e.jsx(_,{ref:v,variant:"ghost",onClick:()=>{A(!1),N.current?.focus()},children:"Keep editing"})]}):e.jsx(_,{variant:"ghost",onClick:()=>{st&&es?.(),t?A(!0):a()},disabled:s,children:"Cancel"}),t&&!S?e.jsx("span",{className:"ml-auto text-meta text-ink-dim",children:"Unsaved changes"}):null]})}let Ve=!1;function ss(){Ve=!0}function ns(){const t=Ve;return Ve=!1,t}function oa({rows:t=6}){return e.jsx("div",{className:"space-y-1","aria-hidden":"true",children:ca.slice(0,t).map(s=>e.jsx(be,{className:"h-12 w-full"},s))})}const ca=["a","b","c","d","e","f","g","h"];function jt(){return e.jsxs("div",{className:"space-y-8","aria-hidden":"true",children:[e.jsx(be,{className:"h-7 w-64"}),e.jsx(be,{className:"h-5 w-40"}),e.jsx(be,{className:"h-28 w-full"}),e.jsx(be,{className:"h-24 w-full"})]})}function vt({title:t,what:s,meaning:n,onRetry:a,retrying:i=!1}){return e.jsxs("div",{role:"alert",className:"max-w-xl space-y-2",children:[e.jsx("h2",{className:"text-heading",children:t}),e.jsx("p",{className:"text-body-sm text-ink",children:s}),e.jsx("p",{className:"text-body-sm text-ink-muted",children:n}),e.jsx(_,{variant:"secondary",onClick:a,disabled:i,children:i?"Retrying…":"Retry"})]})}function de({label:t,htmlFor:s,error:n}){return e.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[e.jsx("label",{htmlFor:s,className:"text-body-sm text-ink-muted",children:t}),n?e.jsx("span",{className:"text-meta text-danger",role:"alert",children:n}):null]})}const da=/^[A-Za-z0-9_.:-]{1,128}$/;function ue(t){return{description:t.description??"",instructions:t.instructions??"",tools:t.tools&&t.tools.length>0?[...t.tools]:null,effort:t.effort??"inherit",delegate:t.delegate??!1}}function ua(t,s){const n={};return s.description!==t.description&&(n.description=s.description),s.instructions!==t.instructions&&(n.instructions=s.instructions),JSON.stringify(s.tools)!==JSON.stringify(t.tools)&&(n.tools=s.tools??[]),s.effort!==t.effort&&(n.effort=s.effort),s.delegate!==t.delegate&&(n.delegate=s.delegate),n}function ma({profile:t}){const s=[Xt(t.source),Ce(t)==="proactive"?Vt.proactive:null,t.delegate?"Delegates":null,t.kind==="specialist"?"Specialist":null].filter(Boolean);return e.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1",children:[e.jsx("p",{className:"text-body-sm text-ink-muted",children:s.join(" · ")}),t.divergent_fields?.length?e.jsx(se,{variant:"warning",children:"Modified"}):null]})}const ha=5e3;let qe=null;function fa({profile:t,displayedName:s,notice:n,onNotice:a,onChanged:i}){const d=Ce(t),[h,p]=o.useState(null),[x,u]=o.useState(!1),l=o.useRef(null),m=o.useId();o.useEffect(()=>{h!==null&&d===h&&p(null)},[d,h]),o.useEffect(()=>{const f=qe;!f||f.name!==t.name||(qe=null,!(Date.now()-f.at>ha)&&l.current?.focus())},[t.name]);const N=h??d,v=async f=>{if(!(x||f===N)){qe={name:t.name,at:Date.now()},a(null),p(f),u(!0);try{await qn(t,f,(S,j)=>S.op==="profiles.install"?Z({op:"profiles.install",name:S.name,requestId:j}):Z({op:"profiles.update",name:S.name,requestId:j,fields:S.fields??{}})),i(t.name),he(f==="proactive"?`${s} is now proactive — it may message you on its own.`:`${s} is now reactive — proactive messaging stopped.`)}catch(S){p(null);const j=S instanceof Qt?S.completed:[],k=Hn(S,j);a(k),Re(k),i(t.name)}finally{u(!1)}}};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative flex items-center gap-2 text-body-sm",children:[e.jsx(Fe,{ref:l,checked:N==="proactive","aria-disabled":x,"aria-labelledby":m,"data-testid":"agent-class-switch",className:"after:absolute after:inset-0 after:content-['']",onCheckedChange:f=>void v(f?"proactive":"reactive")}),e.jsx("span",{id:m,className:"text-ink",children:"Can message me on its own"}),e.jsx("span",{"aria-live":"polite",className:"text-ink-muted",children:x?"Switching…":N==="proactive"?"On":"Off"})]}),e.jsx("p",{className:"text-body-sm text-ink",children:Bn[N]}),e.jsx("p",{className:"text-meta text-ink-muted",children:Un[N]}),t.source==="builtin"?e.jsx("p",{className:"text-meta text-ink-muted",children:Yt}):null,n?e.jsxs(le,{variant:"danger",role:"alert","data-testid":"agent-class-error",children:[e.jsx(oe,{children:"The switch did not go through"}),e.jsx(ce,{children:n})]}):null]})}function as({tools:t,onChange:s,error:n}){const[a,i]=o.useState(""),[d,h]=o.useState(null),p=o.useId(),x=()=>{const u=a.trim();if(u){if(!da.test(u)){h("Tool names are letters, digits, dot, underscore, dash or colon.");return}if(t?.includes(u)){h("That tool is already listed.");return}h(null),i(""),s([...t??[],u])}};return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-body-sm",children:[e.jsx(Fe,{checked:t===null,onCheckedChange:u=>s(u?null:[]),"aria-label":"Give this agent every tool"}),e.jsx("span",{children:"All tools"})]}),t===null?e.jsx("p",{className:"text-meta text-ink-muted",children:"This agent may use whatever the session offers."}):e.jsxs(e.Fragment,{children:[t.length>0?e.jsx("ul",{className:"flex flex-wrap gap-1.5",children:t.map(u=>e.jsx("li",{children:e.jsxs(se,{variant:"outline",children:[u,e.jsx(_,{variant:"ghost",size:"sm","aria-label":`Remove ${u}`,onClick:()=>s(t.filter(l=>l!==u)),className:"ml-1 h-4 px-1",children:"×"})]})},u))}):e.jsx("p",{className:"text-meta text-ink-muted",children:"No tools yet. Add one below, or turn on All tools."}),e.jsxs("div",{className:"flex items-end gap-2",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(de,{label:"Add a tool",htmlFor:p,error:d??n}),e.jsx(ve,{id:p,value:a,inputSize:"md",placeholder:"Tool name","aria-invalid":!!(d??n),onChange:u=>{i(u.target.value),h(null)},onKeyDown:u=>{u.key==="Enter"&&(u.preventDefault(),x())}})]}),e.jsx(_,{variant:"secondary",onClick:x,disabled:!a.trim(),children:"Add"})]})]})]})}function ga({profile:t,displayedName:s,classNotice:n,onClassNotice:a,teams:i,effortTiers:d,askEnabled:h,onSaved:p,onDuplicate:x,onOpenTeam:u,onAskAgent:l,onDirtyChange:m}){const[N,v]=o.useState(!1),[f,S]=o.useState(()=>ue(t)),[j,k]=o.useState(()=>ue(t)),[A,R]=o.useState(!1),[D,E]=o.useState(null),[g,r]=o.useState(null),[w,C]=o.useState(!1),[P,H]=o.useState(!1),[z,W]=o.useState(!1),J=o.useRef(null),V=o.useRef(t.definition_revision),ne=Ze(),B=JSON.stringify(j)!==JSON.stringify(f);o.useEffect(()=>(m?.(N&&B),()=>m?.(!1)),[m,N,B]),o.useEffect(()=>{ns()&&requestAnimationFrame(()=>J.current?.focus())},[]),o.useEffect(()=>{if(N&&B)return;const I=ue(t);S(I),k(I)},[t,N,B]),o.useEffect(()=>{if(!N){H(!1);return}const I=ue(t);H(B&&JSON.stringify(I)!==JSON.stringify(f))},[t,N,B,f]);const L=()=>{v(!1),E(null),r(null),C(!1),W(!1);const I=ue(t);S(I),k(I),V.current=t.definition_revision};ts(()=>{if(z){W(!1);return}B?W(!0):L()},N);const ae=async I=>{if(I?.preventDefault(),A)return;const F=ua(f,j);if(Object.keys(F).length===0){L();return}if(typeof F.instructions=="string"&&!F.instructions.trim()){E("Give the agent instructions."),r("instructions");return}R(!0),E(null),r(null);try{const Y=await Z({op:"profiles.update",name:t.name,requestId:crypto.randomUUID(),fields:F,expectedDefinitionRevision:V.current});v(!1),C(!1);const y=ue(Y);S(y),k(y),V.current=Y.definition_revision,p(Y.name),he(`Saved ${Y.name}.`),requestAnimationFrame(()=>J.current?.focus())}catch(Y){const y=Se(Y instanceof Error?Y.message:"The agent could not be saved.");E(y.message),r(y.field);const T=Y?.status;if(Y?.code==="local-concurrent-edit"){H(!0),R(!1);return}const O=typeof T=="number"&&T!==408&&T>=400&&T<500;C(!O),O||Re("The save could not be confirmed. Check whether it was applied before retrying.")}finally{R(!1)}},te=async()=>{if(!A){R(!0),E(null);try{const I=await Z({op:"profiles.install",name:t.name,requestId:crypto.randomUUID()}),F=ue(I);S(F),k(F),p(I.name),he(`Installed ${I.name}. It can be edited now.`),requestAnimationFrame(()=>J.current?.focus())}catch(I){const F=Se(I instanceof Error?I.message:"The agent could not be installed.");E(F.message),Re(F.message)}finally{R(!1)}}},ie=(i??[]).filter(I=>I.manager===t.name||(I.members??[]).some(F=>F.role===t.name)),X=t.source==="builtin";return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("header",{className:"space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-x-4 gap-y-3",children:[e.jsxs("div",{className:"min-w-0 flex-[1_1_16rem] space-y-1",children:[e.jsx("h2",{ref:J,tabIndex:-1,title:s,className:"truncate text-title focus:outline-none",children:s}),e.jsx(ma,{profile:t})]}),N?null:e.jsxs("div",{className:q("flex shrink-0 items-center gap-2",Zt),children:[e.jsx(_,{variant:"primary",onClick:()=>{Ye.getState().stageDraft({kind:"agent",name:t.name}),ne("/chat")},children:"New chat"}),X?e.jsxs(_,{variant:"secondary",onClick:te,disabled:A,children:[e.jsx(dn,{className:"size-4"}),A?"Installing…":"Install to edit"]}):e.jsx(_,{variant:"secondary",onClick:()=>{v(!0),E(null),r(null),V.current=t.definition_revision},children:"Edit"}),h?e.jsx(_,{variant:"ghost",onClick:()=>l(`Change the agent ${t.name}: `),children:"Ask for a change"}):null,e.jsxs(Qs,{children:[e.jsx(Zs,{asChild:!0,children:e.jsx(_,{variant:"ghost",size:"icon","aria-label":"More actions",className:"-mr-2",children:e.jsx(ps,{"aria-hidden":"true"})})}),e.jsx(Xs,{align:"end",children:e.jsx(en,{onSelect:()=>x(t),children:"Duplicate as new agent"})})]})]})]}),X?e.jsxs(le,{variant:"info",children:[e.jsx(oe,{children:"Built-in agent"}),e.jsx(ce,{children:"This one ships with the app and cannot be edited in place. Install it to get an editable copy, or duplicate it as a new agent."})]}):null,P?e.jsxs(le,{variant:"warning","data-testid":"agent-conflict",children:[e.jsx(oe,{children:"This changed while you were editing"}),e.jsxs(ce,{children:[e.jsx("span",{className:"block",children:"Something else — a configuration run, or another window — wrote to this agent after you opened it. Your edits are kept; saving writes only the fields you changed."}),e.jsx(_,{variant:"secondary",size:"sm",className:"mt-2",onClick:L,children:"Reload the saved version"})]})]}):null,w?e.jsxs(le,{variant:"danger","data-testid":"agent-unconfirmed",children:[e.jsx(oe,{children:"The last save was not confirmed"}),e.jsx(ce,{children:"The backend did not answer, so the write may or may not have landed. Check the agent below, then edit again."})]}):null,D&&!g?e.jsxs(le,{variant:"danger",role:"alert","data-testid":"agent-save-error",children:[e.jsx(oe,{children:"That did not save"}),e.jsx(ce,{children:D})]}):null]}),e.jsx("form",{noValidate:!0,onSubmit:I=>{I.preventDefault(),ae(I)},className:"space-y-8",children:N?e.jsxs(e.Fragment,{children:[e.jsx(Le,{title:"When to use it",description:"One sentence the model reads to decide when this agent is the right one.",label:"When to use this agent",value:j.description,error:g==="description"?D:null,onChange:I=>k(F=>({...F,description:I}))}),e.jsx(Le,{title:"Instructions",description:"What the agent is told to do. This is the agent's whole behaviour.",label:"Instructions",value:j.instructions,rows:12,required:!0,error:g==="instructions"?D:null,onChange:I=>k(F=>({...F,instructions:I}))}),e.jsx(M,{title:"Tools",children:e.jsx(as,{tools:j.tools,error:g==="tools"?D:null,onChange:I=>k(F=>({...F,tools:I}))})}),e.jsx(M,{title:"Delegation and effort",description:"Whether this agent may hand work to subagents, and which effort tier it runs at.",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-body-sm",children:[e.jsx(Fe,{checked:j.delegate,onCheckedChange:I=>k(F=>({...F,delegate:I})),"aria-label":"May delegate to subagents"}),e.jsx("span",{children:"May delegate to subagents"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(de,{label:"Effort tier",htmlFor:"agent-effort",error:g==="effort"?D:null}),e.jsx(De,{ariaLabel:"Effort tier",showLabel:!1,placeholder:"Choose an effort tier",busyLabel:"Loading effort tiers",options:["inherit",...d].map(I=>({id:I,name:I,description:I==="inherit"?"Use the session's own effort":void 0})),selected:{id:j.effort,name:j.effort},onSelect:I=>k(F=>({...F,effort:I.id})),helperText:"Tiers come from the backend's subagent model settings."})]})]})}),e.jsx(nt,{submit:!0,confirming:z,onConfirmingChange:W,dirty:B,pending:A,onSave:()=>void ae(),onCancel:L,saveLabel:"Save changes",dirtyHint:"Discard your unsaved changes to this agent?"})]}):e.jsxs(e.Fragment,{children:[e.jsx(M,{title:"When to use it",children:e.jsx(je,{text:t.description||"",empty:"No description yet — add one so a model knows when to pick this agent."})}),e.jsx(M,{title:"Instructions",children:e.jsx(je,{text:t.instructions??t.packaged_instructions??"",empty:"No instructions yet."})}),e.jsx(M,{title:"Tools",children:t.tools&&t.tools.length>0?e.jsx("ul",{className:"flex flex-wrap gap-1.5",children:t.tools.map(I=>e.jsx("li",{children:e.jsx(se,{variant:"outline",children:I})},I))}):e.jsx(se,{variant:"neutral",children:"All tools"})}),e.jsxs(M,{title:"Delegation and effort",children:[e.jsx("p",{className:"text-body-sm text-ink",children:t.delegate?"May hand work to subagents.":"Does its own work; it does not delegate."}),e.jsxs("p",{className:"text-body-sm text-ink-muted",children:["Effort tier: ",t.effort??"inherit"]})]}),e.jsx(M,{title:"Messaging",description:"Reactive agents only reply. Proactive agents may also message you first.",children:e.jsx(fa,{profile:t,displayedName:s,notice:n,onNotice:a,onChanged:p})}),e.jsx(M,{title:"Used by",description:"Teams that name this agent as a manager or a member.",children:ie.length>0?e.jsx("ul",{className:"flex flex-wrap gap-x-3 gap-y-1",children:ie.map(I=>e.jsx("li",{children:e.jsx(_,{variant:"link",className:q("-my-0.5",tt),onClick:()=>u(I.name),children:I.name})},I.id))}):e.jsx("p",{className:"text-body-sm text-ink-muted",children:"No team uses it yet."})}),e.jsxs(M,{title:"Where it came from",description:t.source==="builtin"?"Shipped with the app.":t.source==="installed"?"Installed from a packaged starter.":"Created on this machine.",children:[e.jsxs("dl",{className:"space-y-1 text-body-sm",children:[t.seed_origin?e.jsxs("div",{className:"flex gap-2",children:[e.jsx("dt",{className:"text-ink-muted",children:"Source"}),e.jsx("dd",{className:"text-ink",children:t.seed_origin})]}):null,t.divergent_fields?.length?e.jsxs("div",{className:"flex gap-2",children:[e.jsx("dt",{className:"text-ink-muted",children:"Changed from the packaged copy"}),e.jsx("dd",{className:"text-ink",children:t.divergent_fields.join(", ")})]}):null]}),t.packaged_instructions&&t.divergent_fields?.length?e.jsx(Xe,{summary:"Compare with the packaged instructions",className:"mt-2",children:e.jsx(je,{text:t.packaged_instructions,mono:!0})}):null]})]})})]})}function Le({title:t,description:s,label:n,value:a,onChange:i,rows:d,required:h,error:p,fieldRef:x}){const u=o.useId();return e.jsxs(M,{title:t,description:s,children:[e.jsx(de,{label:n,htmlFor:u,error:p}),d?e.jsx(Je,{id:u,ref:x,value:a,rows:d,required:h,"aria-invalid":!!p,className:q("min-h-0"),onChange:l=>i(l.target.value)}):e.jsx(ve,{id:u,value:a,"aria-invalid":!!p,onChange:l=>i(l.target.value)})]})}function pa({initial:t,takenNames:s,effortTiers:n,onDirtyChange:a,onSaved:i,onCancel:d}){const[h,p]=o.useState(()=>t?Mn(t.name,s):""),[x,u]=o.useState(t?.kind??"role"),[l,m]=o.useState(()=>t?{...ue(t),description:t.description??""}:{description:"",instructions:"",tools:null,effort:"inherit",delegate:!1}),[N,v]=o.useState(!1),[f,S]=o.useState(null),[j,k]=o.useState(null),A=o.useRef(null),R=o.useRef(null);o.useEffect(()=>(a?.(!!(h.trim()||l.instructions.trim())),()=>a?.(!1)),[a,h,l.instructions]),o.useEffect(()=>{A.current?.focus(),A.current?.select()},[]);const D=async g=>{if(g?.preventDefault(),!N){if(!h.trim()){S("Give the agent a name."),k("name"),A.current?.focus();return}if(/[\\/\s]/.test(h.trim())){S("Names cannot contain spaces or slashes."),k("name"),A.current?.focus();return}if(s.includes(h.trim())){S(`An agent called “${h.trim()}” already exists. Choose another name, or open the existing one to change it.`),k("name"),A.current?.focus();return}if(!l.instructions.trim()){S("Give the agent instructions."),k("instructions"),R.current?.focus();return}v(!0),S(null),k(null);try{const r=await Z({op:"profiles.create",requestId:crypto.randomUUID(),name:h.trim(),fields:{kind:x,description:l.description,instructions:l.instructions,tools:l.tools??[],effort:l.effort,delegate:l.delegate}});he(`Created ${r.name}.`),ss(),i(r.name)}catch(r){const w=Se(r instanceof Error?r.message:"The agent could not be created.");S(w.message),k(w.field)}finally{v(!1)}}},E=t?"Duplicate as a new agent":"New agent";return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("header",{className:"space-y-2",children:[e.jsx("h2",{className:"text-title",children:E}),e.jsx("p",{className:"text-body-sm text-ink-muted",children:t?`A copy of ${t.name}. It is a separate agent: changing it does not change the original.`:"Reusable instructions shared by agent commands, subagents and teams. Chats stay separate."})]}),f&&!j?e.jsxs(le,{variant:"danger",role:"alert","data-testid":"agent-create-error",children:[e.jsx(oe,{children:"That did not save"}),e.jsx(ce,{children:f})]}):null,e.jsxs("form",{noValidate:!0,onSubmit:g=>{g.preventDefault(),D(g)},className:"space-y-8",children:[e.jsx(M,{title:"Name and role",children:e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(de,{label:"Name",htmlFor:"agent-create-name",error:j==="name"?f:null}),e.jsx(ve,{id:"agent-create-name",ref:A,value:h,required:!0,"aria-invalid":j==="name",onChange:g=>p(g.target.value)})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(de,{label:"How it works with others",htmlFor:"agent-create-kind"}),e.jsxs(Ot,{value:x,onValueChange:g=>u(g),children:[e.jsx(Ft,{id:"agent-create-kind",children:e.jsx(Pt,{})}),e.jsxs(Mt,{children:[e.jsx(Te,{value:"role",children:"You can chat with it directly"}),e.jsx(Te,{value:"specialist",children:"Other agents can call on it"})]})]})]})]})}),e.jsx(Le,{title:"When to use it",description:"One sentence the model reads to decide when this agent is the right one.",label:"When to use this agent",value:l.description,error:j==="description"?f:null,onChange:g=>m(r=>({...r,description:g}))}),e.jsx(Le,{title:"Instructions",description:"What the agent is told to do. This is the agent's whole behaviour.",label:"Instructions",value:l.instructions,rows:12,required:!0,fieldRef:R,error:j==="instructions"?f:null,onChange:g=>m(r=>({...r,instructions:g}))}),e.jsx(M,{title:"Delegation and effort",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-body-sm",children:[e.jsx(Fe,{checked:l.delegate,onCheckedChange:g=>m(r=>({...r,delegate:g})),"aria-label":"May delegate to subagents"}),e.jsx("span",{children:"May delegate to subagents"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(de,{label:"Effort tier",htmlFor:"agent-create-effort"}),e.jsx(De,{ariaLabel:"Effort tier",showLabel:!1,busyLabel:"Loading effort tiers",placeholder:"Choose an effort tier",options:["inherit",...n].map(g=>({id:g,name:g,description:g==="inherit"?"Use the session's own effort":"A tier configured in Settings"})),selected:{id:l.effort,name:l.effort},onSelect:g=>m(r=>({...r,effort:g.id}))})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-body-sm text-ink-muted",children:"Tools"}),e.jsx(as,{tools:l.tools,error:j==="tools"?f:null,onChange:g=>m(r=>({...r,tools:g}))})]})]})}),e.jsx(nt,{submit:!0,dirty:!!(h.trim()||l.instructions),pending:N,saveLabel:t?"Create the copy":"Create agent",pendingLabel:"Creating…",dirtyHint:"Discard this new agent?",onSave:()=>void D(),onCancel:d})]})]})}function is(t,s,n=Date.now()){const a=Date.parse(t.expires_at);return t.local_fingerprint.length>0&&t.proposal_fingerprint.length>0&&t.link_id===s.link_id&&(t.direction==="push"||t.remote_fingerprint.length>0)&&t.proposal.kind===s.kind&&t.hub_source===s.hub_source&&t.visibility===s.visibility&&t.tenant_id===s.tenant_id&&t.expected_policy_revision===s.policy.revision&&t.expected_remote_revision===s.remote_revision&&Number.isFinite(a)&&a>n}function yt(t,s,n=Date.now()){return t.can_confirm&&t.preview_receipt.length>0&&is(t,s,n)}const He=t=>Number.isFinite(Date.parse(t))?bs(new Date(t)):c("ui.hub.status.unknown"),xa=t=>[t.pull.state,t.push.state].some(s=>["checking","merging","applying","pushing"].includes(s));function ba({link:t}){fe();const s=Ts(t.link_id),n=et(t),a=Ds(t),[i,d]=o.useState(null),[h,p]=o.useState(null),[x,u]=o.useState(null),[l,m]=o.useState(!1),[N,v]=o.useState(!1),f=o.useRef(null),S=o.useId(),j=s.isPending||xa(t),k=!lt(t.baseline_state),A=i??h;o.useEffect(()=>{A&&!is(A,t)&&(d(null),p(null),v(!0))},[t,A]),o.useEffect(()=>{if(!A)return;const g=Date.parse(A.expires_at)-Date.now(),r=setTimeout(()=>{d(null),p(null),v(!0)},Math.max(0,Math.min(g,2147483647)));return()=>clearTimeout(r)},[A]);const R=g=>{j||(g.action==="preview"&&v(!1),s.mutate(g,{onSuccess:r=>{if(g.action==="preview")d(r.preview?.direction==="push"?r.preview:null);else if(g.action==="apply"&&g.preview){const w=r.preview?.direction==="pull"?r.preview:null;p(w),u(JSON.stringify(r.reports,null,2)),m(w?.choices.acknowledge_unknown_baseline??!1)}else d(null),p(null)},onError:r=>{r instanceof Ae&&["publication-preview-changed","application-preview-changed","remote-revision-changed"].includes(r.code??"")&&(d(null),p(null),v(!0))}}))},D=()=>{s.isPending||(d(null),p(null))},E=g=>c(g==="pull"?"ui.hub.links.direction_pull":"ui.hub.links.direction_push");return e.jsxs("section",{className:"flex min-w-0 flex-col gap-4 py-4","data-hub-link":t.link_id,children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("h3",{className:"break-words text-heading text-ink",children:n}),e.jsx("p",{className:"break-words text-meta text-ink-muted",children:t.name}),e.jsx("p",{className:"break-all text-meta text-ink-dim",children:c("ui.hub.links.source_address",{address:t.hub_source})})]}),e.jsx(Dt,{link:t}),e.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2",children:["pull","push"].map(g=>{const r=t[g];return e.jsxs("div",{className:"flex min-w-0 flex-col items-start gap-1","data-hub-direction":g,children:[e.jsx("h4",{className:"text-body-sm text-ink",children:E(g)}),e.jsx("p",{className:q("text-body-sm",r.state==="failed"?"text-danger":r.state==="available"?"text-accent":"text-ink-muted"),children:Ls(r)}),r.error_class&&e.jsx("p",{className:"text-meta text-warning",children:Ke(r.error_class)}),r.last_checked_at&&e.jsx("p",{className:"text-meta text-ink-muted",children:c("ui.hub.status.last_checked",{time:He(r.last_checked_at)})}),r.last_success_at&&e.jsx("p",{className:"text-meta text-ink-muted",children:c("ui.hub.links.last_success",{time:He(r.last_success_at)})}),r.next_retry_at&&e.jsx("p",{className:"text-meta text-ink-muted",children:c("ui.hub.status.next_retry",{time:He(r.next_retry_at)})}),r.model_used&&e.jsx("p",{className:"break-words text-meta text-ink-muted",children:c("ui.hub.links.actual_model",{model:r.model_used})}),r.operation_id&&e.jsx("p",{className:"break-all text-meta text-ink-dim",children:c("ui.hub.status.receipt",{operation:r.operation_id})}),a[g].retryable&&(g==="pull"||t.policy.auto_push)&&e.jsx(_,{variant:"outline",size:"sm",disabled:j||!s.canWrite,onClick:()=>R({action:"retry",linkId:t.link_id,direction:g}),children:c("ui.hub.links.retry")})]},g)})}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(_,{variant:"outline",size:"sm",disabled:j||!s.canWrite,onClick:()=>R({action:"check",linkId:t.link_id}),children:c("ui.hub.subscriptions.check")}),e.jsx(_,{variant:"outline",size:"sm",disabled:j||!s.canWrite,onClick:()=>R({action:"apply",linkId:t.link_id,preview:!0}),children:c("ui.hub.links.preview_pull")}),e.jsx(_,{variant:"outline",size:"sm",disabled:j||!s.canWrite||!t.remote_revision||!lt(t.baseline_state)||t.visibility==="org"&&!t.tenant_name,onClick:()=>R({action:"preview",linkId:t.link_id}),children:c("ui.hub.subscriptions.preview_publish")})]}),N&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:c("ui.hub.links.preview_changed")}),s.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:s.error instanceof Ge?s.error.message:c("ui.hub.links.action_failed",{direction:E(s.variables?.action==="preview"||s.variables?.action==="confirm"?"push":"pull"),item:t.name,source:n})}),s.data?.reports.filter(g=>g.link_id===t.link_id).map((g,r)=>e.jsx("output",{className:"text-meta text-ink-muted",children:c("ui.hub.links.action_result",{direction:E(g.direction),item:t.name,source:n,outcome:g.outcome})},`${g.operation_id??g.direction}-${r}`)),e.jsx(Bt,{open:i!==null||h!==null,onOpenChange:g=>{g||D()},children:e.jsxs(Ut,{className:"max-w-3xl",closeDisabled:s.isPending,onOpenAutoFocus:g=>{g.preventDefault(),f.current?.focus()},onEscapeKeyDown:g=>{s.isPending&&g.preventDefault()},children:[e.jsxs(zt,{children:[e.jsx(qt,{children:i?c("ui.hub.links.preview_payload",{source:n}):c("ui.hub.links.preview_pull")}),e.jsx(Ht,{children:i||!k?c("ui.hub.subscriptions.enable_safety"):c("ui.hub.links.unknown_baseline")})]}),e.jsx("pre",{className:"max-h-[50vh] overflow-auto whitespace-pre-wrap break-words rounded-md bg-sunken p-3 text-mono-sm text-ink",children:JSON.stringify(A?.proposal,null,2)}),A?.warnings.length?e.jsxs("div",{children:[e.jsx("h4",{className:"text-body-sm text-ink",children:c("ui.hub.links.preview_warnings")}),A.warnings.map((g,r)=>e.jsx("p",{className:"break-words text-body-sm text-warning",children:g},`${r}-${g}`))]}):null,A?.reason&&e.jsx("p",{className:"text-body-sm text-warning",children:Ke(A.reason)}),h&&x&&e.jsx("pre",{className:"max-h-48 overflow-auto whitespace-pre-wrap break-words bg-sunken p-3 text-mono-sm text-ink",children:x}),h&&k&&e.jsxs("label",{htmlFor:S,className:"flex items-start gap-2 text-body-sm text-ink",children:[e.jsx(tn,{id:S,checked:l,onCheckedChange:g=>m(g===!0)}),c("ui.hub.links.acknowledge_baseline")]}),s.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:s.error instanceof Ge?s.error.message:c("ui.hub.links.action_failed",{direction:E(i?"push":"pull"),item:t.name,source:n})}),e.jsxs(Wt,{children:[e.jsx(_,{ref:f,variant:"outline",disabled:s.isPending,onClick:D,children:c("ui.hub.subscriptions.cancel")}),i?e.jsx(_,{disabled:s.isPending||!s.canWrite||!yt(i,t),onClick:()=>R({action:"confirm",linkId:t.link_id,previewReceipt:i.preview_receipt}),children:c("ui.hub.links.confirm_publish")}):e.jsxs(e.Fragment,{children:[["local","remote"].map(g=>e.jsx(_,{variant:"outline",disabled:s.isPending||!s.canWrite||k&&!l,onClick:()=>R({action:"apply",linkId:t.link_id,preview:!0,prefer:g,acknowledgeUnknownBaseline:k&&l}),children:c(g==="local"?"ui.hub.links.prefer_local":"ui.hub.links.prefer_remote")},g)),e.jsx(_,{disabled:s.isPending||!s.canWrite||!h||!yt(h,t)||h.choices.acknowledge_unknown_baseline!==l||h.choices.replace!==null||h.choices.confirm_replace,onClick:()=>{h&&R({action:"apply",linkId:t.link_id,previewReceipt:h.preview_receipt,confirmApply:!0,prefer:h.choices.prefer??void 0,acknowledgeUnknownBaseline:h.choices.acknowledge_unknown_baseline})},children:c("ui.hub.subscriptions.pull")})]})]})]})})]})}function ja({row:t,source:s,organizations:n,isAuthenticated:a,onSignIn:i,initialOpen:d}){fe();const[h,p]=o.useState(d??!1),[x,u]=o.useState(""),l=$s(),m=o.useRef(null),N=o.useRef(null);o.useEffect(()=>{h&&m.current?.focus()},[h]),o.useEffect(()=>{l.isSuccess&&he(c("ui.hub.links.resolve_action_done"))},[l.isSuccess]);const v=x!=="public"&&x!=="",f=v?n.find(k=>k.tenant_id===x):null,j=x!==""&&(!v||!!f)&&(v||x==="public");return e.jsxs("section",{className:"flex min-w-0 flex-col gap-1 py-3","data-hub-source-unresolved":t.local_id,children:[l.upgradeMessage&&e.jsx("output",{className:"block text-meta text-warning","data-hub-core-upgrade":!0,children:l.upgradeMessage}),e.jsx("h4",{className:"break-words text-body-sm text-ink",children:t.name}),e.jsx("p",{className:"text-body-sm text-warning","data-hub-unresolved-label":!0,children:c("ui.hub.links.source_not_confirmed")}),e.jsx("p",{className:"break-all text-mono-sm text-ink-dim",children:c("ui.hub.links.source_address",{address:t.hub_id})}),h?e.jsxs("div",{ref:m,tabIndex:-1,className:"mt-1 flex flex-col gap-2 outline-none",children:[e.jsx("h5",{className:"text-body-sm text-ink",children:c("ui.hub.links.resolve_title")}),e.jsx("p",{className:"text-meta text-ink-muted",children:c("ui.hub.links.resolve_description",{item:t.name})}),e.jsx("code",{className:"break-all text-mono-sm text-ink-muted",children:s}),e.jsx("p",{className:"rounded-md border border-warning/40 bg-warning/5 px-3 py-2 text-body-sm text-warning",children:c("ui.hub.links.resolve_irreversible")}),a?e.jsxs("label",{className:"text-body-sm text-ink",children:[c("ui.hub.links.scope_label"),e.jsxs("select",{className:"mt-1 w-full rounded-md border border-control bg-surface px-2 py-1 text-body-sm text-ink",value:x,disabled:l.isPending,onChange:k=>u(k.target.value),children:[e.jsx("option",{value:"",disabled:!0,children:c("ui.hub.links.scope_placeholder")}),e.jsx("option",{value:"public",children:c("ui.hub.links.scope_public")}),n.map(k=>e.jsx("option",{value:k.tenant_id,children:c("ui.hub.links.scope_private",{organization:k.tenant_name})},k.tenant_id))]})]}):e.jsx(_,{variant:"outline",onClick:i,children:c("ui.hub.links.sign_in_to_publish")}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(_,{variant:"outline",disabled:l.isPending,onClick:()=>{p(!1),N.current?.focus()},children:c("ui.hub.subscriptions.cancel")}),e.jsx(_,{disabled:l.isPending||!l.canWrite||!j,onClick:()=>l.mutate({kind:t.kind,localId:t.local_id,name:t.name,hubSource:s,visibility:v?"org":"public",tenantId:v?f?.tenant_id??null:null}),children:l.isPending?c("ui.hub.links.resolve_action_confirming"):l.isSuccess?c("ui.hub.links.resolve_action_done"):c("ui.hub.links.resolve_action_confirm")})]}),!j&&!l.isPending&&a?e.jsx("p",{className:"text-meta text-ink-muted",children:c("ui.hub.links.scope_required")}):null,l.error?e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:l.error instanceof Ge?l.error.message:l.error instanceof Ae&&l.error.code==="origin-conflict"?c("ui.hub.links.resolve_conflict"):l.error instanceof Ae&&l.error.code?Ke(l.error.code):c("ui.hub.links.resolve_failed_generic")}):null]}):e.jsx(_,{ref:N,variant:"outline",size:"sm",className:"mt-1 self-start",onClick:()=>p(!0),children:c("ui.hub.links.resolve_action")})]})}function va({enabled:t,kind:s,name:n,localId:a}){fe();const i=Tt(t),{isAuthenticated:d}=It(),h=Ze(),[p]=At(),x=p.get("resolve"),u=x!==null,{memberships:l}=Kt({enabled:t&&d}),m=Gt(l).map(r=>({tenant_id:r.tenant_id,tenant_name:r.tenant_name})),N=xs.radientBaseUrl;if(!t)return null;const v=s&&n?Rs(i.data,s,a,n):i.data?.links.filter(r=>!s||r.kind===s)??[],f=(i.data?.unresolved??[]).filter(r=>(!s||r.kind===s)&&(!n||(a?r.local_id===a:r.name===n))),S=r=>c(r?"ui.hub.subscriptions.configured_on":"ui.hub.subscriptions.configured_off"),j=r=>{const w=v[0]?r(v[0]):!1;return v.every(C=>r(C)===w)},k=r=>j(r)?S(r(v[0])):c("ui.hub.links.mixed"),A=(()=>{if(v.length>0){const r=v[0],w=v.length>1?` · ${c("ui.hub.links.sources_count",{count:v.length})}`:"";return`${et(r)}${w} · ${c("ui.hub.subscriptions.subscribe")} ${k(C=>C.policy.subscribe)} · ${c("ui.hub.subscriptions.auto_push")} ${k(C=>C.policy.auto_push)}`}if(f.length>0){const r=f.length>1?` · ${c("ui.hub.links.links_count",{count:f.length})}`:"";return`${c("ui.hub.links.source_not_confirmed")}${r}`}return c("ui.hub.links.empty")})(),R=f.length>0||v.some(r=>[r.pull.state,r.push.state].some(w=>w==="available"||w==="failed")),[D,E]=o.useState(R),g=o.useRef(R);return o.useEffect(()=>{R&&!g.current&&E(!0),g.current=R},[R]),e.jsxs(Xe,{open:D,onOpenChange:E,summary:`${c("ui.hub.links.title")} · ${A}`,className:"min-w-0","data-hub-links-panel":!0,children:[i.isLoading?e.jsx("output",{className:"text-body-sm text-ink-muted",children:c("ui.hub.links.loading")}):i.error&&!i.data?e.jsxs("div",{children:[e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:c("ui.hub.links.load_failed")}),e.jsx(_,{variant:"outline",size:"sm",onClick:()=>void i.refetch(),children:c("ui.hub.links.retry")})]}):v.length===0&&f.length===0?e.jsx("p",{className:"text-body-sm text-ink-muted",children:c("ui.hub.links.empty")}):e.jsxs("div",{className:"divide-y divide-hairline",children:[v.map(r=>e.jsx(ba,{link:r},r.link_id)),f.map(r=>e.jsx(ja,{row:r,source:N,organizations:m,isAuthenticated:d,onSignIn:()=>h("/settings"),initialOpen:u},`${r.kind}:${r.local_id}:${x}`))]}),i.error&&i.data&&e.jsx("p",{role:"alert",className:"text-meta text-warning",children:c("ui.hub.links.load_failed")})]})}const $e=t=>t==null?"":typeof t=="string"?t:JSON.stringify(t,null,2),ya={available:"border-hairline",updating:"border-hairline",applied:"border-hairline",review:"border-warning-border",failed:"border-danger-border"};function ka(t){const s=[];for(const n of t??[])for(const a of n.fields??[])for(const i of a.regions??[])(i.provenance==="unresolved"||$e(i.local)!==$e(i.remote))&&s.push({field:a.field,region:i});return s}function Na({regions:t}){return fe(),t.length?e.jsx("ul",{className:"space-y-3","data-testid":"hub-update-preview",children:t.map(({field:s,region:n},a)=>e.jsxs("li",{className:"space-y-1 text-meta",children:[e.jsx("p",{className:"font-medium text-ink",children:n.heading||n.name||s}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-ink-muted",children:c("ui.agents.navigation.updates.preview.local")}),e.jsx("pre",{className:"max-h-40 overflow-auto whitespace-pre-wrap rounded-sm border border-hairline p-2 text-ink",children:$e(n.local)||c("ui.agents.navigation.updates.preview.nothing")})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-ink-muted",children:c("ui.agents.navigation.updates.preview.remote")}),e.jsx("pre",{className:"max-h-40 overflow-auto whitespace-pre-wrap rounded-sm border border-hairline p-2 text-ink",children:$e(n.remote)||c("ui.agents.navigation.updates.preview.nothing")})]})]})]},`${s}:${n.id??a}`))}):e.jsx("p",{className:"text-meta text-ink-muted",children:c("ui.agents.navigation.updates.preview.empty")})}function wa({kind:t,name:s,enabled:n}){fe();const a=Os(n),i=Fs(),[d,h]=o.useState(null),p=Ms(t,s),x=Ps(a.data).get(p),u=Bs(x),l=i.notes[p],m=i.pending.has(p);if(!x||!u)return l?e.jsx("section",{"data-testid":"hub-update-panel","aria-label":c("ui.agents.navigation.updates.accessible"),className:"mb-8 rounded-md border border-hairline p-3 text-body-sm",children:e.jsx("p",{role:l.tone==="error"?"alert":"status",className:l.tone==="error"?"text-danger":"text-ink",children:l.message})}):null;const N=u.kind==="review",v=x.classification==="baseline-unknown",f=j=>({prefer:j,acknowledgeUnknownBaseline:v}),S=async()=>{const j=await i.applyItem(t,s,{...f(),dryRun:!0});h(j??[])};return e.jsxs("section",{"data-testid":"hub-update-panel","aria-label":c("ui.agents.navigation.updates.accessible"),className:q("mb-8 space-y-2 rounded-md border p-3 text-body-sm",ya[u.kind]),children:[e.jsxs("p",{className:"flex items-start gap-2 text-ink",children:[e.jsx(Us,{mark:u,className:"mt-0.5"}),e.jsx("span",{className:q(u.kind==="failed"&&"text-danger"),children:zs(x,u)})]}),i.upgradeMessage&&e.jsx("output",{className:"block text-meta text-warning","data-hub-core-upgrade":!0,children:i.upgradeMessage}),N&&v&&e.jsx("p",{className:"text-meta text-ink-muted",children:c("ui.agents.navigation.updates.baseline_unknown")}),N&&!v&&e.jsx("p",{className:"text-meta text-ink-muted",children:c("ui.agents.navigation.updates.merge_guidance")}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[u.kind==="available"&&e.jsx(_,{size:"sm",variant:"outline","aria-disabled":m||!i.canWrite||void 0,onClick:()=>!m&&i.canWrite&&void i.applyItem(t,s),children:m?c("ui.agents.navigation.updates.action.updating"):c("ui.agents.navigation.updates.action.update")}),u.kind==="failed"&&u.retryable&&e.jsx(_,{size:"sm",variant:"outline","aria-disabled":m||!i.canWrite||void 0,onClick:()=>!m&&i.canWrite&&void i.retryItem(t,s),children:m?c("ui.agents.navigation.updates.action.retrying"):c("ui.agents.navigation.updates.action.retry")}),N&&e.jsxs(e.Fragment,{children:[e.jsx(_,{size:"sm",variant:"outline","aria-disabled":m||!i.canWrite||void 0,onClick:()=>!m&&i.canWrite&&void S(),children:m&&!d?c("ui.agents.navigation.updates.action.loading"):c("ui.agents.navigation.updates.action.preview")}),e.jsx(_,{size:"sm",variant:"ghost","aria-disabled":m||!i.canWrite||void 0,onClick:()=>!m&&i.canWrite&&void i.applyItem(t,s,f("local")),children:c("ui.agents.navigation.updates.action.keep_local")}),e.jsx(_,{size:"sm",variant:"ghost","aria-disabled":m||!i.canWrite||void 0,onClick:()=>!m&&i.canWrite&&void i.applyItem(t,s,f("remote")),children:c("ui.agents.navigation.updates.action.use_remote")})]})]}),d&&N&&e.jsx(Na,{regions:ka(d)}),l&&e.jsx("p",{role:l.tone==="error"?"alert":"status",className:l.tone==="error"?"text-meta text-danger":"text-meta text-ink-muted",children:l.message})]})}function _a({team:t}){fe();const s=o.useId(),n=Oe(),{isAuthenticated:a}=It(),i=ee(n.data,"hub_links"),[d,h]=o.useState(!1),[p,x]=o.useState(null),[u,l]=o.useState(Ue),m=o.useRef(null),N=o.useRef(null),v=Tt(i),f=Kt({enabled:d&&a&&ee(n.data,"radient_org")}),S=Gt(f.memberships),j=p?S.find(C=>C.tenant_id===p):null,k=p?j?.tenant_name?c("ui.hub.links.source_private",{organization:j.tenant_name}):c("ui.hub.links.source_unavailable"):c("ui.hub.links.source_public"),A=(v.data?.links??[]).filter(C=>C.kind==="team"&&C.local_id===t.id),R=A.find(C=>C.visibility===(p?"org":"public")&&C.tenant_id===p),D=A.find(C=>C.link_id!==R?.link_id),E=v.data?.unresolved.some(C=>C.kind==="team"&&C.local_id===t.id),g=Et(),r=js({mutationFn:async()=>{if(!a||R||!i||!v.isSuccess||D||E||p&&!j)throw new Error("hub-team-destination-not-ready");const C=JSON.stringify({id:t.id,target:p,policy:R?null:u}),P=m.current?.tuple===C?m.current:{tuple:C,id:crypto.randomUUID()};return m.current=P,Z({op:"team.publish",teamId:t.id,requestId:P.id,...p?{visibility:"org",tenantId:p}:{},...R?{}:u})},onSuccess:()=>{g.invalidateQueries({queryKey:qs})}});if(!i||!d&&(A.length>0||E))return null;const w=!a||!v.isSuccess||!!R||!!D||!!E||!!p&&!j;return e.jsxs(e.Fragment,{children:[e.jsx(_,{variant:"outline",disabled:!a||!v.isSuccess,onClick:()=>{h(!0),x(null),l(Ue()),m.current=null,r.reset()},children:c("ui.hub.subscriptions.preview_publish")}),e.jsx(Bt,{open:d,onOpenChange:C=>{r.isPending||h(C)},children:e.jsxs(Ut,{onOpenAutoFocus:C=>{C.preventDefault(),N.current?.focus()},children:[e.jsxs(zt,{children:[e.jsx(qt,{children:c("ui.hub.subscriptions.preview_publish")}),e.jsx(Ht,{children:c("ui.hub.skills.initial_policy_description")})]}),e.jsx("label",{htmlFor:`${s}-target`,className:"text-body-sm text-ink",children:k}),e.jsxs("select",{id:`${s}-target`,disabled:r.isPending||r.isSuccess,value:p??"",className:"rounded-md border border-control bg-surface px-3 py-2 text-body-sm text-ink",onChange:C=>{x(C.target.value||null),l(Ue()),m.current=null},children:[e.jsx("option",{value:"",children:c("ui.hub.links.source_public")}),S.map(C=>e.jsx("option",{value:C.tenant_id,children:C.tenant_name},C.tenant_id))]}),D?e.jsx("p",{className:"text-body-sm text-warning",children:c("ui.hub.subscriptions.source_separation",{currentSource:et(D),newSource:k})}):E?e.jsx("p",{className:"text-body-sm text-warning",children:c("ui.hub.links.source_unavailable")}):R?e.jsx(Dt,{link:R}):e.jsx(ln,{value:u,onChange:l,source:k,item:t.name,visibility:p?"org":"public",organization:j?.tenant_name??null,destinationKey:`${t.id}:${p??"public"}`,canEnableAutoPush:!1,disabled:w||r.isPending||r.isSuccess}),v.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-warning",children:c("ui.hub.links.load_failed")}),r.error&&e.jsx("p",{role:"alert",className:"text-body-sm text-danger",children:c("ui.hub.links.action_failed",{direction:c("ui.hub.links.direction_push"),item:t.name,source:k})}),r.isSuccess&&e.jsx("output",{className:"text-body-sm text-ink",children:on(r.data)?c("ui.hub.links.published",{item:t.name,source:k}):c("ui.hub.skills.policy_pending")}),e.jsxs(Wt,{children:[e.jsx(_,{ref:N,variant:"outline",disabled:r.isPending,onClick:()=>h(!1),children:c("ui.hub.subscriptions.cancel")}),e.jsx(_,{disabled:w||r.isPending||r.isSuccess,onClick:()=>r.mutate(),children:c("ui.hub.links.confirm_publish")})]})]})})]})}function Ne(t){return{description:t?.description??"",manager:t?.manager??"manager",members:(t?.members??[]).map(s=>({...s,count:at(s),key:crypto.randomUUID()})),instructions:t?.instructions??"",project:t?.project??""}}function Sa(t,s){const n={};return s.description!==t.description&&(n.description=s.description),s.manager!==t.manager&&(n.manager=s.manager),JSON.stringify(s.members.map(({key:a,...i})=>i))!==JSON.stringify(t.members.map(({key:a,...i})=>i))&&(n.members=s.members.map(({key:a,...i})=>i)),s.instructions!==t.instructions&&(n.instructions=s.instructions),s.project!==t.project&&(n.project=s.project),n}function kt(t,s,n){return(t.kind==="agent"?(s??[]).map(i=>i.name):(n??[]).map(i=>i.name)).includes(t.role)}function Ca(t){return(t??[]).reduce((s,n)=>s+at(n),0)}function at(t){return t.count||1}function rs(t){const s=Ca(t);return s===1?"1 member":`${s} members`}function Nt(){return e.jsxs("colgroup",{children:[e.jsx("col",{}),e.jsx("col",{className:"w-24"}),e.jsx("col",{className:"w-16"})]})}function wt({team:t,agents:s,teams:n,askEnabled:a,onSaved:i,onCancelCreate:d,onOpenAgent:h,onAskAgent:p,onDirtyChange:x}){const u=!t,[l,m]=o.useState(u),[N,v]=o.useState(t?.name??""),[f,S]=o.useState(()=>Ne(t)),[j,k]=o.useState(()=>Ne(t)),[A,R]=o.useState(!1),[D,E]=o.useState(null),[g,r]=o.useState(null),[w,C]=o.useState(!1),[P,H]=o.useState(!1),z=o.useRef(t?.definition_revision),W=o.useRef(null),J=o.useRef(null),V=o.useRef(null),ne=o.useRef(null),B=o.useRef(!1);o.useEffect(()=>{ns()&&requestAnimationFrame(()=>W.current?.focus())},[]);const L=Ze();fe();const G=u?!!(N.trim()||j.description||j.members.length):JSON.stringify(j)!==JSON.stringify(f);o.useEffect(()=>(x?.((u||l)&&G),()=>x?.(!1)),[x,u,l,G]),o.useEffect(()=>{if(l&&G)return;const y=Ne(t);S(y),k(y)},[t,l,G]),o.useEffect(()=>{if(!B.current)return;B.current=!1;const y=ne.current;typeof y?.scrollIntoView=="function"&&y.scrollIntoView({block:"nearest"})});const ae=()=>{if(u){d?.();return}m(!1),E(null),r(null),C(!1),z.current=t?.definition_revision;const y=Ne(t);S(y),k(y)};ts(()=>{if(w){C(!1);return}G?C(!0):ae()},l);const ie=async y=>{if(y?.preventDefault(),!A){if(u&&!N.trim()){E("Give the team a name."),r("name"),V.current?.focus();return}if(u&&/[\\/\s]/.test(N.trim())){E("Names cannot contain spaces or slashes."),r("name"),V.current?.focus();return}if(u&&(n??[]).some(T=>T.name===N.trim())){E(`A team called “${N.trim()}” already exists. Open it to change it, or choose another name.`),r("name"),V.current?.focus();return}if(u&&!j.instructions.trim()){E("Give the team instructions."),r("instructions"),J.current?.focus();return}R(!0),E(null),r(null);try{const T=t?await Z({op:"teams.update",name:t.name,requestId:crypto.randomUUID(),fields:Sa(f,j),expectedDefinitionRevision:z.current}):await Z({op:"teams.create",requestId:crypto.randomUUID(),fields:{name:N,description:j.description,manager:j.manager,members:j.members.map(({key:O,...re})=>re),instructions:j.instructions,project:j.project}}),U=Ne(T);S(U),k(U),H(!1),z.current=T.definition_revision,m(!1),i(T.name),he(`${u?"Created":"Saved"} ${T.name}.`),u&&ss(),requestAnimationFrame(()=>W.current?.focus())}catch(T){if(T?.code==="local-concurrent-edit"){H(!0),E(null),r(null);return}const O=Se(T instanceof Error?T.message:"The team could not be saved.");E(O.message),r(O.field),Re(O.message)}finally{R(!1)}}},X=(y,T)=>k(U=>({...U,members:U.members.map((O,re)=>re===y?{...O,...T}:O)})),I=j.members.length?j.members:t?.members,F=t?Rt(t):"New team",Y=j.members.some(y=>y.kind==="team");return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("header",{className:"space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-x-4 gap-y-3",children:[e.jsxs("div",{className:"min-w-0 flex-[1_1_16rem] space-y-1",children:[e.jsx("h2",{ref:W,tabIndex:-1,title:F,className:"truncate text-title focus:outline-none",children:F}),t?e.jsxs("p",{className:"text-body-sm text-ink-muted",children:[rs(I),Y?" · Includes a team":""]}):null]}),t&&!l?e.jsxs("div",{className:q("flex shrink-0 items-center gap-2",Zt,a&&"-mr-3"),children:[e.jsx(_,{variant:"primary",onClick:()=>{Ye.getState().stageDraft({kind:"team",name:t.name}),L("/chat")},children:"New team chat"}),e.jsx(_a,{team:t}),e.jsx(_,{variant:"secondary",onClick:()=>{z.current=t.definition_revision,m(!0)},children:"Edit"}),a?e.jsx(_,{variant:"ghost",onClick:()=>p(`Change the team ${t.name}: `),children:"Ask for a change"}):null]}):null]}),D&&!g?e.jsxs(le,{variant:"danger",role:"alert","data-testid":"team-save-error",children:[e.jsx(oe,{children:"That did not save"}),e.jsx(ce,{children:D})]}):null]}),l&&P?e.jsxs(le,{variant:"warning","data-testid":"team-conflict",children:[e.jsx(oe,{children:c("ui.hub.conflict.title")}),e.jsxs(ce,{children:[e.jsx("span",{className:"block",children:c("ui.hub.conflict.body")}),e.jsx(_,{variant:"secondary",size:"sm",className:"mt-2",onClick:ae,children:c("ui.hub.conflict.reload")})]})]}):null,e.jsx("form",{noValidate:!0,onSubmit:y=>{y.preventDefault(),ie(y)},className:"space-y-8",children:u||l?e.jsxs(e.Fragment,{children:[u?e.jsxs(M,{title:"Name",description:"How you and your chats will refer to this team.",children:[e.jsx(de,{label:"Team name",htmlFor:"team-name",error:g==="name"?D:null}),e.jsx(ve,{ref:V,id:"team-name","data-testid":"team-name-input",value:N,required:!0,maxLength:64,autoFocus:!0,"aria-invalid":g==="name",onChange:y=>v(y.target.value)})]}):null,e.jsx(M,{title:"Manager",description:"The agent that leads the chat and decides who works on what.",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx(de,{label:"Manager agent",htmlFor:"team-manager",error:g==="manager"?D:null}),e.jsx(De,{ariaLabel:"Manager agent",showLabel:!1,placeholder:"Choose a manager",busyLabel:"Loading agents",options:xe(s,n),selected:xe(s,n).find(y=>y.id===j.manager)??null,onSelect:y=>k(T=>({...T,manager:y.id})),onCustomSubmit:y=>k(T=>({...T,manager:y})),listNotice:"Agents and teams on this machine"}),xe(s,n).some(y=>y.id===j.manager)?null:e.jsxs(se,{variant:"warning","data-testid":"team-manager-missing",children:["Not found: ",j.manager]})]})}),e.jsx(M,{title:"Members",description:"Who the manager can delegate to, and how many of each.",children:e.jsxs("div",{className:"space-y-2",children:[j.members.map((y,T)=>{const U=!kt(y,s,n);return e.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_8rem_auto_auto] items-center gap-2",children:[e.jsx("div",{className:"min-w-0",children:e.jsx(De,{ariaLabel:`Member ${T+1}`,showLabel:!1,placeholder:"Choose an agent or team",busyLabel:"Loading agents",options:[...xe(s,n).filter(O=>y.kind==="team"?O.group==="Teams":O.group==="Agents")],selected:xe(s,n).find(O=>O.id===y.role)??null,onSelect:O=>X(T,{role:O.id,kind:O.group==="Teams"?"team":"agent"}),onCustomSubmit:O=>X(T,{role:O})})}),e.jsxs(Ot,{value:y.kind,onValueChange:O=>X(T,{kind:O}),children:[e.jsx(Ft,{"aria-label":`Member ${T+1} kind`,className:"w-full",children:e.jsx(Pt,{})}),e.jsxs(Mt,{children:[e.jsx(Te,{value:"agent",children:"Agent"}),e.jsx(Te,{value:"team",children:"Team"})]})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(_,{variant:"secondary",size:"icon-sm","aria-label":`One fewer ${y.role}`,disabled:y.count<=1,onClick:()=>X(T,{count:y.count-1}),children:e.jsx(sn,{"aria-hidden":"true"})}),e.jsx("span",{className:"min-w-6 text-center text-body-sm tabular-nums","aria-label":`${y.count} of ${y.role}`,children:y.count}),e.jsx(_,{variant:"secondary",size:"icon-sm","aria-label":`One more ${y.role}`,disabled:y.count>=16,onClick:()=>X(T,{count:y.count+1}),children:e.jsx(Lt,{"aria-hidden":"true"})})]}),e.jsx(_,{variant:"ghost",onClick:()=>k(O=>({...O,members:O.members.filter((re,me)=>me!==T)})),children:"Remove"}),U?e.jsxs(se,{variant:"warning",className:"col-span-full w-fit",children:["Not found: ",y.role]}):null]},y.key)}),e.jsx(_,{ref:ne,variant:"secondary",onClick:()=>{B.current=!0,k(y=>({...y,members:[...y.members,{role:"",count:1,kind:"agent",key:crypto.randomUUID()}]}))},children:"Add member"})]})}),e.jsxs(M,{title:"Description",children:[e.jsx(de,{label:"What this team is for",htmlFor:"team-description",error:g==="description"?D:null}),e.jsx(ve,{id:"team-description",value:j.description,onChange:y=>k(T=>({...T,description:y.target.value}))})]}),e.jsxs(M,{title:"Collaboration instructions",children:[g==="instructions"?e.jsx("p",{className:"text-meta text-danger",role:"alert","data-testid":"team-instructions-error",children:D}):null,e.jsx(Je,{ref:J,"aria-label":"Collaboration instructions","aria-invalid":g==="instructions",className:"min-h-36",maxLength:8e3,value:j.instructions,onChange:y=>k(T=>({...T,instructions:y.target.value}))})]}),e.jsx(M,{title:"Project brief",children:e.jsx(Je,{"aria-label":"Project brief",className:"min-h-36",maxLength:8e3,value:j.project,onChange:y=>k(T=>({...T,project:y.target.value}))})}),e.jsx(nt,{submit:!0,confirming:w,onConfirmingChange:C,dirty:G,pending:A,saveLabel:u?"Create team":"Save changes",pendingLabel:u?"Creating…":"Saving…",dirtyHint:"Discard this team?",onSave:()=>void ie(),onCancel:ae})]}):e.jsxs(e.Fragment,{children:[e.jsx(M,{title:"Manager",children:e.jsxs(ot,{className:"table-fixed","aria-label":"Manager: the agent that leads the chat",children:[e.jsx(Nt,{}),e.jsx(ct,{className:"sr-only",children:e.jsxs(Ee,{children:[e.jsx(ge,{children:"Member"}),e.jsx(ge,{children:"Type"}),e.jsx(ge,{children:"Count"})]})}),e.jsx(dt,{children:e.jsxs(Ee,{className:"border-0",children:[e.jsx(pe,{className:"px-0 py-2",children:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx(_,{variant:"link",className:q("-my-0.5 min-w-0 justify-start truncate",tt),onClick:()=>h(j.manager),children:j.manager}),xe(s,n).some(y=>y.id===j.manager)?null:e.jsx(se,{variant:"warning","data-testid":"team-manager-missing",children:"Not found"})]})}),e.jsx(pe,{className:"px-2 py-2 text-ink-dim text-meta",children:"Agent"}),e.jsx(pe,{})]})})]})}),e.jsx(M,{title:"Members",children:e.jsxs(ot,{className:"table-fixed","aria-label":"Members",children:[e.jsx(Nt,{}),e.jsx(ct,{className:"sr-only",children:e.jsxs(Ee,{children:[e.jsx(ge,{children:"Member"}),e.jsx(ge,{children:"Type"}),e.jsx(ge,{children:"Count"})]})}),e.jsx(dt,{children:(t?.members??[]).map(y=>e.jsxs(Ee,{className:"last:border-0",children:[e.jsx(pe,{className:"px-0 py-2 text-ink",children:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"min-w-0 truncate",children:y.role}),kt(y,s,n)?null:e.jsx(se,{variant:"warning","data-testid":"team-member-missing",children:"Not found"})]})}),e.jsx(pe,{className:"px-2 py-2 text-ink-dim text-meta",children:y.kind==="team"?"Team":"Agent"}),e.jsx(pe,{className:"px-0 py-2 text-right text-ink-muted tabular-nums",children:`×${at(y)}`})]},`${y.kind}:${y.role}`))})]})}),e.jsx(M,{title:"What it is for",children:e.jsx(je,{text:t?.description??"",empty:"No description yet."})}),t?.instructions?e.jsx(M,{title:"Collaboration instructions",children:e.jsx(je,{text:t.instructions})}):null,t?.project?e.jsx(Xe,{summary:"Project brief",children:e.jsx(je,{text:t.project})}):null]})})]})}function xe(t,s){return[...(t??[]).map(n=>({id:n.name,name:n.name,description:n.description,group:"Agents"})),...(s??[]).map(n=>({id:n.name,name:n.name,description:n.description,group:"Teams"}))]}const Ea=o.lazy(()=>Cs(()=>import("./legacy-agents-page-BGSPncrN.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),import.meta.url).then(t=>({default:t.LegacyAgentsPage}))),_t=/^subagents\.models\.([^.]+)$/,Ia=["lo","med","hi"],We={all:"All",custom:"Custom",installed:"Installed",builtin:"Built-in"};function Aa(t){return!t||t.getAttribute("role")!=="tab"||t.getAttribute("aria-selected")==="true"?t:t.closest('[role="tablist"]')?.querySelector('[role="tab"][aria-selected="true"]')??null}function qa(){const t=vs("surface"),{agentId:s}=ys(),[n,a]=At(),i=n.get("kind")==="team"||n.get("create")==="team",d=n.has("create"),h=n.get("name"),p=n.get("duplicate"),x=Oe(),u=ee(x.data,i?"team_catalogue":"profile_catalogue"),l=ks(u),m=Ns(u),N=u&&!!h&&!d,v=rt(i?null:h,N),f=ws(i?h:null,N),S=rt(i?null:p,!!p),[j,k]=o.useState(""),[A,R]=o.useState("all"),[D,E]=o.useState(null),[g,r]=o.useState(null),w=aa(),C=K(b=>b.marks),P=K(b=>b.clearMark),H=St({queryKey:["desktop","settings","effort-tiers"],enabled:u,queryFn:()=>Z({op:"settings.list"}),staleTime:6e4}),z=o.useMemo(()=>(H.data?.settings??[]).filter(b=>{const $=b.key.match(_t)?.[1];return!$||!Ia.includes($)?!1:typeof b.value=="string"&&b.value.trim().length>0}).map(b=>b.key.match(_t)?.[1]).filter(b=>!!b),[H.data]),W=Hs(),J=o.useCallback(b=>Ws(b,W),[W]),V=o.useMemo(()=>Da(l.data,j,A,J),[l.data,j,A,J]),ne=o.useMemo(()=>La(m.data,j),[m.data,j]),B=i?ne:V,L=h??null,[G,ae]=o.useState(null);G!==null&&G.name!==L&&ae(null);const te=o.useCallback(b=>{const $=new URLSearchParams;(b.kind??(i?"team":"agent"))==="team"&&$.set("kind","team"),b.name&&$.set("name",b.name),b.create!==null&&b.create!==void 0&&$.set("create",b.create),b.duplicate&&$.set("duplicate",b.duplicate),E(null),a($)},[i,a]),ie=`${i?"team":"agent"}:${d??""}:${L??""}`,X=o.useCallback(b=>r(b?ie:null),[ie]),I=g!==null&&g===ie,F=(b,$,Q)=>e.jsxs(e.Fragment,{children:[e.jsx(va,{kind:b,name:$,localId:Q,enabled:ee(x.data,"hub_links")}),e.jsx(wa,{kind:b,name:$,enabled:ee(x.data,"hub_updates")&&!ee(x.data,"hub_links")})]}),Y=o.useRef(null),y=o.useRef(null),T=o.useRef(null),U=o.useCallback(b=>{if(I){const $=y.current,Q=document.activeElement;Y.current=$?.isConnected&&$.closest("form")?$:Q instanceof HTMLElement?Q:null,E(b);return}te(b)},[I,te]),O=o.useCallback(()=>{E(null);const b=Y.current;requestAnimationFrame(()=>{const $=Aa(b);$?.isConnected&&$.focus()})},[]),re=D!==null;o.useEffect(()=>{if(!re)return;bt(!0,()=>E(null)),T.current?.focus();const b=requestAnimationFrame(()=>{const Q=T.current?.closest('[role="alertdialog"]');Q&&!Q.contains(document.activeElement)&&T.current?.focus()}),$=Q=>{Q.key!=="Escape"||Q.defaultPrevented||(Q.preventDefault(),O())};return window.addEventListener("keydown",$),()=>{cancelAnimationFrame(b),window.removeEventListener("keydown",$),bt(!1)}},[re,O]),o.useEffect(()=>{const b=$=>{$.key!=="Escape"||$.defaultPrevented||window.matchMedia("(max-width: 999px)").matches&&(!L&&!d||I||re||($.preventDefault(),U({name:null})))};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[U,L,d,I,re]),o.useEffect(()=>{const $=K.getState().about;if(!$)return;const Q=i?"team":"agent";L&&$.kind===Q&&$.name===L||(w.setAbout(null),Nn($))},[L,i,w]),o.useEffect(()=>{L&&P({kind:i?"team":"agent",name:L})},[L,i,P]);const me=()=>{l.refetch(),m.refetch(),v.refetch(),f.refetch()};if(s)return e.jsx(o.Suspense,{fallback:e.jsx("p",{className:"p-6 text-body",children:"Loading saved agent…"}),children:e.jsx(Ea,{})});const Pe=i?f.error:v.error,ke=i?m.error:l.error,Me=u&&!ke&&!d&&!L,ls=i?f.isLoading:v.isLoading;return e.jsxs("div",{className:"flex h-full min-h-0 bg-canvas text-ink",children:[e.jsxs("aside",{ref:t,"data-open":L?"true":void 0,className:"flex w-72 shrink-0 flex-col gap-3 bg-surface p-4 max-[999px]:data-[open=true]:hidden",children:[e.jsx("h1",{className:"text-heading",children:"Agents and teams"}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(nn,{value:i?"team":"agent",onValueChange:b=>U({kind:b,name:null}),children:e.jsxs(an,{"aria-label":"Browse definitions by type",className:"w-full",children:[e.jsxs(ut,{value:"agent",className:"flex-1","data-testid":"agents-tab",children:[e.jsx(Ks,{className:"size-3.5"}),"Agents",l.data?e.jsx("span",{className:"min-w-[2ch] font-normal text-ink-dim tabular-nums",children:l.data.length}):null]}),e.jsxs(ut,{value:"team",className:"flex-1","data-testid":"teams-tab",children:[e.jsx(_s,{className:"size-3.5"}),"Teams",m.data?e.jsx("span",{className:"min-w-[2ch] font-normal text-ink-dim tabular-nums",children:m.data.length}):null]})]})}),e.jsxs("div",{className:"relative",children:[e.jsx(Ss,{"aria-hidden":"true",className:"pointer-events-none absolute top-2 left-2 size-4 text-ink-dim"}),e.jsx(ve,{className:"pl-8",type:"search","aria-label":"Search agents and teams",placeholder:i?"Search teams":"Search agents",value:j,onChange:b=>k(b.target.value)})]}),!i&&l.data?e.jsxs("fieldset",{className:"m-0 min-w-0 border-0 p-0",children:[e.jsx("legend",{className:"sr-only",children:"Show definitions owned by"}),e.jsx("div",{className:"flex gap-0.5 rounded-md bg-sunken p-0.5",children:Object.keys(We).map(b=>e.jsx(_,{variant:"ghost",size:"sm","aria-pressed":A===b,onClick:()=>R(b),className:q("flex-1",A===b&&$t),children:We[b]},b))})]}):null]}),e.jsx("div",{"data-lo-pane-edge-cues":!0,className:"min-h-0 flex-1 overflow-y-auto",children:ke?null:!l.data&&!m.data?e.jsx(oa,{}):B.length===0?e.jsx("p",{className:"px-1 py-2 text-body-sm text-ink-muted",children:j?`Nothing matches “${j}”.`:i?"No teams yet. Ask for one below, or add one by hand.":A==="all"?"No agents yet. Ask for one below, or add one by hand.":`No ${We[A].toLowerCase()} agents.`}):e.jsx(Ta,{rows:B,name:d?null:L,teamMode:i,printName:J,marked:new Map(C.map(b=>[wn(b),b.created])),onOpen:b=>U({name:b})})}),e.jsxs(_,{variant:"ghost",className:"w-full justify-start",disabled:!u,onClick:()=>U({create:i?"team":"agent"}),children:[e.jsx(Lt,{className:"size-4"}),i?"Add team manually":"Add agent manually"]})]}),e.jsxs("main",{className:"flex min-w-0 flex-1 flex-col",children:[L||d?e.jsx("div",{className:"flex shrink-0 items-center border-hairline border-b px-4 py-2 min-[1000px]:hidden",children:e.jsxs(_,{variant:"ghost",size:"sm",onClick:()=>U({name:null}),children:[e.jsx(Gs,{className:"size-4"}),"Back to the list"]})}):null,e.jsx("div",{"data-agents-pane":!0,onFocus:b=>{b.target instanceof HTMLElement&&(y.current=b.target)},"data-lo-pane-edge-cues":!0,className:q("min-h-0 flex-1 overflow-auto",Me?void 0:"px-4 pt-6 [scroll-padding-bottom:calc(var(--lo-pane-footer-h)+var(--lo-pane-footer-cue-h)+4px)] [scrollbar-gutter:stable_both-edges]"),children:Me?e.jsx(Ra,{teamMode:i,run:w,onAddManually:()=>U({create:i?"team":"agent"})}):e.jsx("div",{className:Qe,children:e.jsx("div",{className:_e,children:u?ke?e.jsx(vt,{title:i?"Teams could not be read":"Agents could not be read",what:ke instanceof Error?ke.message:"The request did not complete.",meaning:"Nothing is lost. This is a read that failed — the backend answered an error, which is different from the backend being out of date.",onRetry:me,retrying:l.isFetching||m.isFetching}):L&&ls?e.jsx(jt,{}):L&&Pe?e.jsx(vt,{title:i?`“${L}” could not be read`:`“${L}” could not be read`,what:Pe instanceof Error?Pe.message:"The request did not complete.",meaning:"The definition may have been removed, or the backend refused the read.",onRetry:()=>{v.refetch(),f.refetch()},retrying:v.isFetching||f.isFetching}):d&&i?e.jsx(wt,{agents:l.data,teams:m.data,askEnabled:w.enabled,onDirtyChange:X,onSaved:b=>{me(),te({name:b})},onCancelCreate:()=>te({name:null}),onOpenAgent:b=>U({kind:"agent",name:b}),onAskAgent:b=>{ze(w,{kind:"team",name:h??""},b)}},"team:create"):d&&p&&S.isLoading?e.jsx(jt,{}):d?e.jsx(pa,{initial:S.data??null,takenNames:(l.data??[]).map(b=>b.name),effortTiers:z,onDirtyChange:X,onSaved:b=>{me(),te({name:b})},onCancel:()=>te({name:null})},"agent:create"):i&&f.data?e.jsxs(e.Fragment,{children:[F("team",f.data.name,f.data.id),e.jsx(wt,{team:f.data,agents:l.data,teams:m.data,askEnabled:w.enabled,onDirtyChange:X,onSaved:b=>{me(),te({name:b})},onOpenAgent:b=>U({kind:"agent",name:b}),onAskAgent:b=>{ze(w,{kind:"team",name:f.data?.name??""},b)}},ra(f.data))]}):!i&&v.data?e.jsxs(e.Fragment,{children:[F("agent",v.data.name,v.data.agent_id??void 0),e.jsx(ga,{profile:v.data,displayedName:J(v.data.name),classNotice:G?.name===v.data.name?G.copy:null,onClassNotice:b=>ae(b?{name:v.data.name,copy:b}:null),teams:m.data,effortTiers:z,askEnabled:w.enabled,onDirtyChange:X,onSaved:b=>{me(),te({name:b})},onDuplicate:b=>U({create:"agent",duplicate:b.name}),onOpenTeam:b=>U({kind:"team",name:b}),onAskAgent:b=>{ze(w,{kind:"agent",name:v.data?.name??""},b)}},ia(v.data))]}):L?e.jsx(be,{className:"h-6 w-40"}):null:e.jsxs(le,{variant:x.isLoading?"neutral":"warning",className:"max-w-xl",children:[e.jsx(oe,{children:x.isLoading?"Connecting to the backend":x.error?"The backend could not be reached":"Reusable agents need a newer backend"}),e.jsx(ce,{children:x.isLoading?"Loading what this backend can do…":x.error?x.error.message:"Update the backend to manage reusable agents and teams. Saved chats are unchanged."})]})})})}),D?e.jsxs("div",{className:"flex flex-wrap items-center gap-2 border-hairline border-t bg-surface px-4 py-3",role:"alertdialog","aria-label":"Discard your unsaved changes?",children:[e.jsx("span",{className:"text-body-sm text-ink",children:i?"Discard your unsaved changes to this team?":"Discard your unsaved changes to this agent?"}),e.jsx(_,{variant:"danger",onClick:()=>{r(null),te(D)},children:"Discard changes"}),e.jsx(_,{ref:T,variant:"ghost",onClick:O,children:"Keep editing"})]}):null,Me?null:e.jsx("div",{className:"shrink-0 bg-canvas",children:e.jsx(Jt,{run:w,about:w.about,onClearAbout:()=>w.setAbout(null),blockedReason:I?"Finish or cancel your edit first.":null})})]})]})}function Ra({teamMode:t,run:s,onAddManually:n}){const a=q(Qe,Ct);return e.jsxs("div",{className:"flex min-h-full flex-col justify-center space-y-4 pb-12",children:[e.jsx("div",{className:a,children:e.jsxs("div",{className:q(_e,"space-y-2"),children:[e.jsx("h2",{className:"text-title",children:t?"Ask for a team":"Ask for an agent"}),e.jsx("p",{className:"text-body text-ink-muted",children:t?"A team has one agent that leads the chat and members it can hand work to. Describe what you want and a configuration run sets it up.":"An agent is a reusable set of instructions you can start a chat with, or let other agents call on. Describe what you want and a configuration run sets it up."})]})}),e.jsx(Jt,{run:s,hero:!0,about:s.about,onClearAbout:()=>s.setAbout(null)}),e.jsx("div",{className:a,children:e.jsx("div",{className:_e,children:e.jsx(_,{variant:"ghost",className:"-ml-3",onClick:n,children:t?"Or add a team by hand":"Or add an agent by hand"})})})]})}function Ta({rows:t,name:s,teamMode:n,marked:a,printName:i,onOpen:d}){const h=o.useRef(new Map),[p,x]=o.useState(s),u=m=>"members"in m?Rt(m):i(m.name),l=(m,N)=>{const v=t.findIndex(S=>S.name===m);if(v<0)return;const f=t[Math.min(t.length-1,Math.max(0,v+N))];f&&(x(f.name),h.current.get(f.name)?.focus())};return e.jsx("ul",{"aria-label":n?"Teams":"Agents",className:"space-y-0.5",children:t.map(m=>{const N="source"in m,v=a.get(`${n?"team":"agent"}:${m.name}`);return e.jsx("li",{children:e.jsxs("button",{ref:f=>{f?h.current.set(m.name,f):h.current.delete(m.name)},type:"button","aria-current":m.name===s?"true":void 0,tabIndex:m.name===(p??t[0]?.name)?0:-1,"data-testid":`roster-row-${m.name}`,title:m.description?`${u(m)} - ${m.description}`:u(m),className:q("flex min-h-12 w-full flex-col items-start gap-0.5 rounded-md px-2 py-1.5 text-left hover:bg-row-hover",m.name===s&&$t),onFocus:()=>x(m.name),onClick:()=>d(m.name),onKeyDown:f=>{f.key==="ArrowDown"?(f.preventDefault(),l(m.name,1)):f.key==="ArrowUp"?(f.preventDefault(),l(m.name,-1)):f.key==="Home"?(f.preventDefault(),l(m.name,-t.length)):f.key==="End"&&(f.preventDefault(),l(m.name,t.length))},children:[e.jsxs("span",{className:"flex w-full items-center gap-2",children:[e.jsx("span",{className:"min-w-0 truncate text-body-sm text-ink",children:u(m)}),v!==void 0?e.jsx(se,{variant:"attention","data-testid":"roster-row-updated",children:v?"New":"Updated"}):null,e.jsx("span",{className:"ml-auto shrink-0 text-meta text-ink-dim tabular-nums",children:"members"in m?rs(m.members):e.jsx(la,{source:m.source,appearance:"text"})})]}),e.jsxs("span",{className:"flex min-h-lh w-full items-baseline text-meta text-ink-muted",children:[N&&Ce(m)==="proactive"?e.jsxs("span",{className:"mr-1 shrink-0","data-testid":"roster-row-proactive",children:[e.jsx("span",{className:"text-ink",children:Vt.proactive}),e.jsx("span",{className:"text-ink-dim",children:" ·"})]}):null,m.description?e.jsx("span",{className:"min-w-0 flex-1 truncate",children:m.description}):e.jsx("span",{className:"min-w-0 flex-1 truncate text-ink-dim",children:"No description"})]})]})},m.name)})})}function Da(t,s,n,a){const i=s.trim().toLowerCase();return(t??[]).filter(d=>n==="builtin"&&d.source!=="builtin"||n==="installed"&&d.source!=="installed"||n==="custom"&&d.source!=="custom"?!1:i?a(d.name).toLowerCase().includes(i)||d.name.toLowerCase().includes(i)||(d.description??"").toLowerCase().includes(i):!0)}function La(t,s){const n=s.trim().toLowerCase();return(t??[]).filter(a=>!n||a.name.toLowerCase().includes(n)||(a.label??"").toLowerCase().includes(n)||(a.description??"").toLowerCase().includes(n))}export{qa as AgentsPage};