@exulu/frontend 1.8.0 → 1.9.0
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.
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +129 -131
- package/dist/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/build-manifest.json +2 -2
- package/dist/.next/prerender-manifest.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page.js +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +7 -7
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js +4 -4
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/page.js +1 -1
- package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/prompts/page.js +1 -1
- package/dist/.next/server/app/(application)/prompts/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +1 -1
- package/dist/.next/server/app-paths-manifest.json +6 -6
- package/dist/.next/server/chunks/1025.js +1 -0
- package/dist/.next/server/chunks/2270.js +11 -48
- package/dist/.next/server/chunks/3434.js +1 -1
- package/dist/.next/server/chunks/3503.js +1 -0
- package/dist/.next/server/chunks/5084.js +1 -0
- package/dist/.next/server/chunks/5192.js +1 -1
- package/dist/.next/server/chunks/5485.js +1 -1
- package/dist/.next/server/chunks/5600.js +1 -1
- package/dist/.next/server/chunks/5974.js +1 -0
- package/dist/.next/server/chunks/6590.js +1 -1
- package/dist/.next/server/chunks/7471.js +1 -1
- package/dist/.next/server/chunks/8286.js +1 -1
- package/dist/.next/server/chunks/{3679.js → 9874.js} +5 -5
- package/dist/.next/server/middleware-manifest.json +5 -5
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js +2 -0
- package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js.map +1 -0
- package/dist/.next/static/chunks/{4811-316807e25b634f9f.js → 192-72d6868cd891ccc6.js} +8 -8
- package/dist/.next/static/chunks/192-72d6868cd891ccc6.js.map +1 -0
- package/dist/.next/static/chunks/1957-cf44b1d31a9c7d5c.js +2 -0
- package/dist/.next/static/chunks/1957-cf44b1d31a9c7d5c.js.map +1 -0
- package/dist/.next/static/chunks/342-d9c2d6ae9f9435cb.js +2 -0
- package/dist/.next/static/chunks/342-d9c2d6ae9f9435cb.js.map +1 -0
- package/dist/.next/static/chunks/552-39155a93c527ec6d.js +2 -0
- package/dist/.next/static/chunks/552-39155a93c527ec6d.js.map +1 -0
- package/dist/.next/static/chunks/6367-59655a85d75e19be.js +2 -0
- package/dist/.next/static/chunks/6367-59655a85d75e19be.js.map +1 -0
- package/dist/.next/static/chunks/6373-601400fab8a3bb55.js +2 -0
- package/dist/.next/static/chunks/6373-601400fab8a3bb55.js.map +1 -0
- package/dist/.next/static/chunks/8030-9c926ea4dfd3a54e.js +2 -0
- package/dist/.next/static/chunks/8030-9c926ea4dfd3a54e.js.map +1 -0
- package/dist/.next/static/chunks/{6805-792cc8008b165c07.js → 8293-0e69d89d2dac7111.js} +10 -10
- package/dist/.next/static/chunks/8293-0e69d89d2dac7111.js.map +1 -0
- package/dist/.next/static/chunks/9953-95900a236271a222.js +2 -0
- package/dist/.next/static/chunks/9953-95900a236271a222.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-e4a4693953329671.js +2 -0
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-e4a4693953329671.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-7edb1c7c850f982c.js +2 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-7edb1c7c850f982c.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-a7728cf9b0524489.js +2 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-a7728cf9b0524489.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-a39fef7444581565.js → page-827f50c6d1f150d0.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-a39fef7444581565.js.map → page-827f50c6d1f150d0.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-f04fd5291a1ef7b1.js +2 -0
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-f04fd5291a1ef7b1.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/prompts/page-2c500e9898447506.js +2 -0
- package/dist/.next/static/chunks/app/(application)/prompts/page-2c500e9898447506.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/workflows/{page-47dedb88cec600d5.js → page-e38f9456120dab69.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/workflows/page-e38f9456120dab69.js.map +1 -0
- package/dist/.next/static/css/6f8c5212af8ef284.css +4 -0
- package/dist/.next/static/css/6f8c5212af8ef284.css.map +1 -0
- package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
- package/package.json +1 -1
- package/dist/.next/server/chunks/2948.js +0 -1
- package/dist/.next/server/chunks/38.js +0 -1
- package/dist/.next/server/chunks/7958.js +0 -1
- package/dist/.next/server/chunks/8050.js +0 -1
- package/dist/.next/static/chunks/1685-9cacdee7e3f0942f.js +0 -2
- package/dist/.next/static/chunks/1685-9cacdee7e3f0942f.js.map +0 -1
- package/dist/.next/static/chunks/1957-39a01a3915f246ab.js +0 -2
- package/dist/.next/static/chunks/1957-39a01a3915f246ab.js.map +0 -1
- package/dist/.next/static/chunks/4811-316807e25b634f9f.js.map +0 -1
- package/dist/.next/static/chunks/5282-68f9880f1f951f44.js +0 -2
- package/dist/.next/static/chunks/5282-68f9880f1f951f44.js.map +0 -1
- package/dist/.next/static/chunks/6367-59cef3c74213925b.js +0 -2
- package/dist/.next/static/chunks/6367-59cef3c74213925b.js.map +0 -1
- package/dist/.next/static/chunks/6373-4c5dffaf4193621c.js +0 -2
- package/dist/.next/static/chunks/6373-4c5dffaf4193621c.js.map +0 -1
- package/dist/.next/static/chunks/6805-792cc8008b165c07.js.map +0 -1
- package/dist/.next/static/chunks/8030-c1b6be46253076cb.js +0 -2
- package/dist/.next/static/chunks/8030-c1b6be46253076cb.js.map +0 -1
- package/dist/.next/static/chunks/9621-f81c4d7c0ecf5a67.js +0 -2
- package/dist/.next/static/chunks/9621-f81c4d7c0ecf5a67.js.map +0 -1
- package/dist/.next/static/chunks/9953-dfb5fc0e5b74ec09.js +0 -2
- package/dist/.next/static/chunks/9953-dfb5fc0e5b74ec09.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-4e7e02768ed1a72a.js +0 -2
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-4e7e02768ed1a72a.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-38f845d5ccdad76b.js +0 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-38f845d5ccdad76b.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-a391b8407f74e9b4.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-a391b8407f74e9b4.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-cf6f8d2bd4e9c819.js +0 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-cf6f8d2bd4e9c819.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-bc859da58d8505f7.js +0 -2
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-bc859da58d8505f7.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/prompts/page-d2f36ff149385efd.js +0 -2
- package/dist/.next/static/chunks/app/(application)/prompts/page-d2f36ff149385efd.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-47dedb88cec600d5.js.map +0 -1
- package/dist/.next/static/css/c8c015815c72d053.css +0 -4
- package/dist/.next/static/css/c8c015815c72d053.css.map +0 -1
- /package/dist/.next/static/{GOwerAkBncYx0J8q1TqQb → ls-syPkq9-MWp-VWWDEZJ}/_buildManifest.js +0 -0
- /package/dist/.next/static/{GOwerAkBncYx0J8q1TqQb → ls-syPkq9-MWp-VWWDEZJ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9953],{69953:function(e,s,i){i.d(s,{f:function(){return en},Z:function(){return er}});var l=i(57437),a=i(7211),n=i(12199),t=i(13590),r=i(99376),d=i(2265),c=i(29501),o=i(67119),m=i(18930),x=i(62869),h=i(26110),u=i(95186),v=i(26815),j=i(10492);function p(e){let{deleteAgent:s,deleteAgentResult:i,agent:a}=e,n="delete this agent",[t,r]=(0,d.useState)("");return(0,l.jsxs)(h.Vq,{children:[(0,l.jsx)(h.hg,{asChild:!0,children:(0,l.jsx)(x.z,{disabled:!(null==a?void 0:a.id),variant:"destructive",children:(0,l.jsx)(m.Z,{className:"size-4"})})}),(0,l.jsxs)(h.cZ,{className:"sm:max-w-[475px]",children:[(0,l.jsx)(h.fK,{children:(0,l.jsx)(h.$N,{children:"Delete this agent"})}),(0,l.jsx)("div",{className:"grid gap-4 py-4",children:(0,l.jsxs)("div",{className:"grid gap-2",children:[(0,l.jsxs)(v._,{htmlFor:"name",children:['Type "',n,'" to confirm']}),(0,l.jsx)(u.I,{onChange:e=>{r(e.target.value)},id:"name",autoFocus:!0})]})}),(0,l.jsx)(h.cN,{children:(0,l.jsxs)(x.z,{disabled:t!==n||i.loading,onClick:()=>{s({variables:{id:a.id}})},variant:"destructive",type:"submit",children:["Delete ",i.loading&&(0,l.jsx)(j.g,{})]})})]})]})}var g=i(27689),f=i(66070),N=i(15681),b=i(6512),y=i(1828),w=i(12339),C=i(76818),z=i(13832),k=i(35974),Z=i(77992);function S(){return(0,l.jsx)("svg",{width:"19",height:"20",viewBox:"0 0 19 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,l.jsx)("path",{d:"M3.5 12.5003C2.72343 12.5003 2.33515 12.5003 2.02886 12.3735C1.62048 12.2043 1.29602 11.8798 1.12687 11.4715C1 11.1652 1 10.7769 1 10.0003V4.33366C1 3.40024 1 2.93353 1.18166 2.57701C1.34144 2.2634 1.59641 2.00844 1.91002 1.84865C2.26654 1.66699 2.73325 1.66699 3.66667 1.66699H9.33333C10.1099 1.66699 10.4982 1.66699 10.8045 1.79386C11.2129 1.96302 11.5373 2.28747 11.7065 2.69585C11.8333 3.00214 11.8333 3.39042 11.8333 4.16699M9.5 18.3337H15C15.9334 18.3337 16.4001 18.3337 16.7567 18.152C17.0703 17.9922 17.3252 17.7372 17.485 17.4236C17.6667 17.0671 17.6667 16.6004 17.6667 15.667V10.167C17.6667 9.23357 17.6667 8.76686 17.485 8.41034C17.3252 8.09674 17.0703 7.84177 16.7567 7.68198C16.4001 7.50033 15.9334 7.50033 15 7.50033H9.5C8.56658 7.50033 8.09987 7.50033 7.74335 7.68198C7.42975 7.84177 7.17478 8.09674 7.01499 8.41034C6.83333 8.76686 6.83333 9.23357 6.83333 10.167V15.667C6.83333 16.6004 6.83333 17.0671 7.01499 17.4236C7.17478 17.7372 7.42975 17.9922 7.74335 18.152C8.09987 18.3337 8.56658 18.3337 9.5 18.3337Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}var A=i(53647),F=i(57054),_=i(23518),I=i(24156),D=i(30401),O=i(49137),T=i(53113),R=i(48736),M=i(81706),P=i(29374),J=i(99397),E=i(73247),V=i(32489),G=i(22252),B=i(98728),q=i(33245),Y=i(94508),L=i(8014),U=i(74928),W=i(81103),K=i(69304),Q=i(78361),X=i(92279),H=i(44045),$=i(68656),ee=i(76367),es=i(35283),ei=i(12194),el=i(35629);let ea=["marketing","sales","finance","hr","coding","support","research","knowledge","product"],en=e=>{let{configItem:s,currentValue:i,variables:a,onVariableSelect:n}=e,[t,r]=d.useState(!1),c=a.find(e=>e.name===i);return(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsxs)("div",{className:"text-sm",children:[(0,l.jsx)("div",{className:"font-medium capitalize",children:s.name}),(0,l.jsx)("div",{className:"text-muted-foreground text-xs capitalize",children:s.description})]}),(0,l.jsxs)(F.J2,{open:t,onOpenChange:r,modal:!0,children:[(0,l.jsx)(F.xo,{asChild:!0,children:(0,l.jsxs)(x.z,{variant:"outline",role:"combobox","aria-expanded":t,className:"w-full justify-between text-sm",children:[c?c.name:"Select variable...",(0,l.jsx)(I.Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,l.jsx)(F.yk,{className:"w-full p-0",children:(0,l.jsxs)(_.mY,{children:[(0,l.jsx)(_.sZ,{placeholder:"Search variables..."}),(0,l.jsxs)(_.e8,{children:[(0,l.jsx)(_.rb,{children:"No variables found."}),(0,l.jsx)(_.fu,{children:a.map(e=>(0,l.jsxs)(_.di,{onSelect:()=>{n(e.name),console.log("variable",e),r(!1)},children:[(0,l.jsx)(D.Z,{className:(0,Y.cn)("mr-2 h-4 w-4",i===e.name?"opacity-100":"opacity-0")}),(0,l.jsxs)("div",{className:"flex flex-col",children:[(0,l.jsx)("span",{children:e.name}),e.encrypted&&(0,l.jsx)("span",{className:"text-xs text-muted-foreground",children:"\uD83D\uDD12 Encrypted"})]})]},e.id))})]})]})}),s.default&&(0,l.jsxs)(f.Zb,{children:[(0,l.jsx)(f.Ol,{children:(0,l.jsx)(f.ll,{className:"text-md",children:"Default value"})}),(0,l.jsx)(f.aY,{children:(0,l.jsx)($.J,{text:s.default,sliceLength:200})})]})]})]})},et=o.Ry({name:o.Z_().min(2,{message:"Agent name must be at least 2 characters."}).max(300,{message:"Agent name must not be longer than 300 characters."}),category:o.Z_().optional(),description:o.Z_().max(1e4,{message:"Agent description must not be longer than 10.000 characters."}).nullable().optional(),instructions:o.Z_().max(4e4,{message:"Agent instructions must not be longer than 40.000 characters."}).nullable().optional(),id:o.Z_().or(o.Rx()).nullable().optional(),active:o.Yj(),providerapikey:o.Z_().nullable().optional(),firewall:o.Ry({enabled:o.O7().optional(),scanners:o.Ry({promptGuard:o.O7().optional(),codeShield:o.O7().optional(),agentAlignment:o.O7().optional(),hiddenAscii:o.O7().optional(),piiDetection:o.O7().optional()}).optional()}).optional()});function er(e){var s,i,o,m,h,v,$,er,ed,ec,eo,em,ex,eh,eu,ev,ej,ep,eg,ef,eN,eb,ey,ew,eC,ez,ek,eZ,eS,eA,eF,e_,eI,eD,eO,eT,eR,eM,eP;let{agent:eJ,refetch:eE}=e,eV=(0,r.useRouter)(),{user:eG}=(0,d.useContext)(z.S),eB=(0,d.useContext)(H.E),[eq,eY]=(0,d.useState)(eJ.tools?eJ.tools:[]),[eL,eU]=(0,d.useState)(!1),[eW,eK]=(0,d.useState)(""),[eQ,eX]=(0,d.useState)("all"),[eH,e$]=(0,d.useState)(""),[e0,e1]=(0,d.useState)(new Set),[e2,e3]=(0,d.useState)(!1);(0,d.useEffect)(()=>{let e=setTimeout(()=>{e$(eW)},300);return()=>clearTimeout(e)},[eW]);let[e4,e7]=(0,d.useState)(eJ.providerapikey||""),[e6,e5]=(0,d.useState)((null===(s=eJ.firewall)||void 0===s?void 0:s.enabled)||!1),[e9,e8]=(0,d.useState)(eJ.animation_idle||""),[se,ss]=(0,d.useState)(eJ.animation_responding||""),[si,sl]=(0,d.useState)({rights_mode:eJ.rights_mode,users:null===(i=eJ.RBAC)||void 0===i?void 0:i.users,roles:null===(o=eJ.RBAC)||void 0===o?void 0:o.roles}),[sa,sn]=(0,d.useState)({promptGuard:(null===(h=eJ.firewall)||void 0===h?void 0:null===(m=h.scanners)||void 0===m?void 0:m.promptGuard)||!1,codeShield:(null===($=eJ.firewall)||void 0===$?void 0:null===(v=$.scanners)||void 0===v?void 0:v.codeShield)||!1,agentAlignment:(null===(ed=eJ.firewall)||void 0===ed?void 0:null===(er=ed.scanners)||void 0===er?void 0:er.agentAlignment)||!1,hiddenAscii:(null===(eo=eJ.firewall)||void 0===eo?void 0:null===(ec=eo.scanners)||void 0===ec?void 0:ec.hiddenAscii)||!1,piiDetection:(null===(ex=eJ.firewall)||void 0===ex?void 0:null===(em=ex.scanners)||void 0===em?void 0:em.piiDetection)||!1}),{toast:st}=(0,Z.pm)(),sr=(0,d.useMemo)(()=>({search:eH||void 0,category:"all"===eQ?void 0:eQ,limit:100,page:0}),[eH,eQ]),{data:sd,loading:sc}=(0,a.aM)(g.Ul,{variables:sr}),{data:so}=(0,a.aM)(g.Az,{variables:{page:1,limit:100}}),{data:sm}=(0,a.aM)(g.Tp),sx=(null==so?void 0:null===(eh=so.variablesPagination)||void 0===eh?void 0:eh.items)||[],{data:sh,loading:su,refetch:sv}=(0,ei.Sh)({page:1,limit:100,filters:[{assigned_agents:{contains:eJ.id}}]}),sj=(null==sh?void 0:null===(eu=sh.prompt_libraryPagination)||void 0===eu?void 0:eu.items)||[],sp=(0,d.useMemo)(()=>{var e,s;return(null==sd?void 0:null===(s=sd.tools)||void 0===s?void 0:null===(e=s.items)||void 0===e?void 0:e.filter(e=>e.id!==eJ.id))||[]},[null==sd?void 0:null===(ev=sd.tools)||void 0===ev?void 0:ev.items,eJ.id]),sg=(0,d.useMemo)(()=>sp.reduce((e,s)=>(e[s.category]||(e[s.category]=[]),e[s.category].push(s),e),{}),[sp]),sf=(null==sm?void 0:sm.toolCategories)||[];(0,d.useEffect)(()=>{sf.length>0&&e1(new Set(Object.keys(sg)))},[sg]);let sN=()=>{eK(""),eX("all")},sb=e=>{e1(s=>{let i=new Set(s);return i.has(e)?i.delete(e):i.add(e),i})},sy=async()=>{try{await navigator.clipboard.writeText(eJ.id),st({title:"Agent ID copied to clipboard"})}catch(e){st({title:"Failed to copy Agent ID",variant:"destructive"})}},[sw,sC]=(0,n.D)(g.fG,{onCompleted:()=>{eV.push("/agents",{scroll:!1})}}),[sz,sk]=(0,n.D)(g.Dt,{refetchQueries:[g.as,"GetAgentById"]}),sZ=(0,c.cI)({resolver:(0,t.F)(et),defaultValues:null!=eJ?eJ:{name:"New agent",instructions:"",steps:[],firewall:{enabled:!1,scanners:{promptGuard:!1,codeShield:!1,agentAlignment:!1,hiddenAscii:!1,piiDetection:!1}}},mode:"onChange"}),[sS]=(0,n.D)(g.fB);return(0,l.jsxs)("div",{className:"h-full flex-col md:flex",children:[(0,l.jsx)("div",{className:"container flex flex-col items-start justify-between space-y-2 py-4 sm:flex-row sm:items-center sm:space-y-0 md:h-16",children:(0,l.jsxs)("div",{className:"ml-auto flex w-full space-x-2 sm:justify-end",children:[(null==eJ?void 0:eJ.id)&&(0,l.jsxs)(x.z,{onClick:sZ.handleSubmit(async e=>{console.log("data",e),sz({variables:{id:e.id,name:e.name,description:e.description,instructions:e.instructions,category:e.category,active:e.active,providerapikey:e4,animation_idle:e9,animation_responding:se,rights_mode:si.rights_mode,RBAC:{users:si.users||[],roles:si.roles||[]},firewall:JSON.stringify({enabled:e6,scanners:sa}),tools:JSON.stringify(eq)}}),eE()},e=>{console.error("form data invalid",e)}),disabled:sk.loading,variant:"secondary",type:"submit",children:["Save ",sk.loading&&(0,l.jsx)(j.g,{className:"ml-2"})]}),(0,l.jsx)(x.z,{onClick:()=>{eV.push("/agents",{scroll:!1})},variant:"secondary",type:"button",children:"Back"}),(0,l.jsx)(p,{agent:eJ,deleteAgent:sw,deleteAgentResult:sC})]})}),(0,l.jsx)(b.Z,{}),(0,l.jsx)(w.mQ,{defaultValue:"complete",className:"flex-1",children:(0,l.jsx)("div",{className:"container py-6",children:(0,l.jsx)("div",{className:"grid items-stretch gap-6",children:(0,l.jsx)("div",{className:"md:order-1",children:(0,l.jsx)("div",{className:"flex flex-col space-y-4",children:(0,l.jsx)("div",{className:"h-full",children:(0,l.jsx)(N.l0,{...sZ,children:(0,l.jsx)("form",{className:"space-y-8",children:(0,l.jsxs)("div",{className:"grid grid-rows-1 grid-flow-col gap-6 lg:grid-cols-2",children:[(0,l.jsx)("div",{className:"col",children:(0,l.jsx)("div",{className:"flex flex-col space-y-4",children:(0,l.jsx)("div",{className:"flex flex-col space-y-2",children:(0,l.jsxs)(f.Zb,{children:[(0,l.jsx)(f.Ol,{children:(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[eJ.image&&(0,l.jsx)("div",{className:"w-10 h-10 rounded-full overflow-hidden flex-shrink-0",children:(0,l.jsx)("img",{src:eJ.image,alt:"".concat(eJ.name," profile"),className:"w-full h-full object-cover"})}),(0,l.jsx)(f.ll,{children:"Agent"})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,l.jsxs)("span",{children:["ID: ",eJ.id]}),(0,l.jsx)("button",{type:"button",onClick:sy,className:"p-1 hover:bg-muted rounded transition-colors text-muted-foreground",title:"Copy Agent ID",children:(0,l.jsx)(S,{})})]})]})}),(0,l.jsxs)(f.aY,{className:"grid gap-4",children:[(0,l.jsx)(N.Wi,{control:sZ.control,name:"name",render:e=>{let{field:s}=e;return(0,l.jsxs)(N.xJ,{children:[(0,l.jsx)(N.lX,{children:"Name"}),(0,l.jsx)(N.NI,{children:(0,l.jsx)(u.I,{type:"text",className:"resize-none",...s})}),(0,l.jsx)(N.zG,{})]})}}),(0,l.jsxs)("div",{children:[(0,l.jsx)("div",{className:"text-sm font-medium mb-2",children:"Modalities"}),(0,l.jsxs)("p",{className:"text-sm text-muted-foreground mb-2",children:["This agent uses ",(0,l.jsx)("b",{children:eJ.modelName})," from ",(0,l.jsx)("b",{children:eJ.providerName})," and can use the following capabilities:"]}),(0,l.jsx)(W.pn,{children:(0,l.jsxs)("div",{className:"flex items-center gap-3 mt-2",children:[(0,l.jsx)("div",{className:"p-2 rounded-md ".concat((null===(ej=eJ.capabilities)||void 0===ej?void 0:ej.text)?"bg-primary text-primary-foreground":"bg-gray-500 text-white"),children:(0,l.jsx)(O.Z,{className:"h-4 w-4"})}),(0,l.jsxs)(W.u,{children:[(0,l.jsx)(W.aJ,{asChild:!0,children:(0,l.jsx)("div",{className:"p-2 rounded-md ".concat((null===(eg=eJ.capabilities)||void 0===eg?void 0:null===(ep=eg.images)||void 0===ep?void 0:ep.length)?"bg-primary text-primary-foreground":"bg-gray-500 text-white"),children:(0,l.jsx)(T.Z,{className:"h-4 w-4"})})}),(0,l.jsx)(W._v,{children:(0,l.jsxs)("p",{children:["Images: ",(null===(eN=eJ.capabilities)||void 0===eN?void 0:null===(ef=eN.images)||void 0===ef?void 0:ef.length)?eJ.capabilities.images.join(", "):"None"]})})]}),(0,l.jsxs)(W.u,{children:[(0,l.jsx)(W.aJ,{asChild:!0,children:(0,l.jsx)("div",{className:"p-2 rounded-md ".concat((null===(ey=eJ.capabilities)||void 0===ey?void 0:null===(eb=ey.files)||void 0===eb?void 0:eb.length)?"bg-primary text-primary-foreground":"bg-gray-500 text-white"),children:(0,l.jsx)(R.Z,{className:"h-4 w-4"})})}),(0,l.jsx)(W._v,{children:(0,l.jsxs)("p",{children:["Files: ",(null===(eC=eJ.capabilities)||void 0===eC?void 0:null===(ew=eC.files)||void 0===ew?void 0:ew.length)?eJ.capabilities.files.join(", "):"None"]})})]}),(0,l.jsxs)(W.u,{children:[(0,l.jsx)(W.aJ,{asChild:!0,children:(0,l.jsx)("div",{className:"p-2 rounded-md ".concat((null===(ek=eJ.capabilities)||void 0===ek?void 0:null===(ez=ek.audio)||void 0===ez?void 0:ez.length)?"bg-primary text-primary-foreground":"bg-gray-500 text-white"),children:(0,l.jsx)(M.Z,{className:"h-4 w-4"})})}),(0,l.jsx)(W._v,{children:(0,l.jsxs)("p",{children:["Audio: ",(null===(eS=eJ.capabilities)||void 0===eS?void 0:null===(eZ=eS.audio)||void 0===eZ?void 0:eZ.length)?eJ.capabilities.audio.join(", "):"None"]})})]}),(0,l.jsxs)(W.u,{children:[(0,l.jsx)(W.aJ,{asChild:!0,children:(0,l.jsx)("div",{className:"p-2 rounded-md ".concat((null===(eF=eJ.capabilities)||void 0===eF?void 0:null===(eA=eF.video)||void 0===eA?void 0:eA.length)?"bg-primary text-primary-foreground":"bg-gray-500 text-white"),children:(0,l.jsx)(P.Z,{className:"h-4 w-4"})})}),(0,l.jsx)(W._v,{children:(0,l.jsxs)("p",{children:["Video: ",(null===(eI=eJ.capabilities)||void 0===eI?void 0:null===(e_=eI.video)||void 0===e_?void 0:e_.length)?eJ.capabilities.video.join(", "):"None"]})})]})]})})]}),(0,l.jsx)(N.Wi,{control:sZ.control,name:"category",render:e=>{let{field:s}=e;return s.value||(s.value=""),(0,l.jsxs)(N.xJ,{children:[(0,l.jsx)(N.lX,{children:"Category"}),(0,l.jsx)(N.NI,{children:(0,l.jsxs)(A.Ph,{onValueChange:e=>{s.onChange(e)},children:[(0,l.jsx)(A.i4,{children:(0,l.jsx)(A.ki,{className:"capitalize",placeholder:s.value||"Select a category"})}),(0,l.jsx)(A.Bw,{children:ea.map(e=>(0,l.jsx)(A.Ql,{className:"capitalize",value:e,children:e},e))})]})}),(0,l.jsx)(N.zG,{})]})}}),(0,l.jsx)(N.Wi,{control:sZ.control,name:"description",render:e=>{var s;let{field:i}=e;return i.value||(i.value=""),(0,l.jsxs)(N.xJ,{children:[(0,l.jsx)(N.lX,{children:"Description"}),(0,l.jsx)(N.NI,{children:(0,l.jsx)(C.g,{rows:2,className:"resize-none",...i,value:null!==(s=i.value)&&void 0!==s?s:""})}),(0,l.jsx)(N.zG,{})]})}}),(0,l.jsx)(N.Wi,{control:sZ.control,name:"instructions",render:e=>{var s;let{field:i}=e;return i.value||(i.value=""),(0,l.jsxs)(N.xJ,{children:[(0,l.jsx)(N.lX,{children:"Instructions"}),(0,l.jsx)(N.NI,{children:(0,l.jsx)(C.g,{rows:5,className:"resize-none",...i,value:null!==(s=i.value)&&void 0!==s?s:""})}),(0,l.jsx)(N.zG,{})]})}}),(0,l.jsxs)("div",{className:"space-y-2 w-full overflow-x-hidden",children:[(0,l.jsxs)("div",{className:"text-sm",children:[(0,l.jsx)("div",{className:"font-medium",children:"Provider API Key"}),(0,l.jsx)("div",{className:"text-muted-foreground text-xs",children:"Select a variable containing the API key for the provider"}),eJ.authenticationInformation&&(0,l.jsx)("div",{className:"text-muted-foreground text-xs",children:(0,l.jsx)(el.H,{children:eJ.authenticationInformation})})]}),(0,l.jsxs)(F.J2,{children:[(0,l.jsx)(F.xo,{asChild:!0,children:(0,l.jsxs)(x.z,{variant:"outline",role:"combobox",className:"w-full justify-between text-sm",children:[(null===(eD=sx.find(e=>e.name===e4))||void 0===eD?void 0:eD.name)||"Select variable...",(0,l.jsx)(I.Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,l.jsx)(F.yk,{className:"w-full p-0 z-[9999]",children:(0,l.jsxs)(_.mY,{children:[(0,l.jsx)(_.sZ,{placeholder:"Search variables..."}),(0,l.jsxs)(_.e8,{children:[(0,l.jsx)(_.rb,{children:"No variables found."}),(0,l.jsx)(_.fu,{children:sx.map(e=>(0,l.jsxs)(_.di,{onSelect:()=>{e7(e.name)},children:[(0,l.jsx)(D.Z,{className:(0,Y.cn)("mr-2 h-4 w-4",e4===e.name?"opacity-100":"opacity-0")}),(0,l.jsxs)("div",{className:"flex flex-col",children:[(0,l.jsx)("span",{children:e.name}),e.encrypted&&(0,l.jsx)("span",{className:"text-xs text-muted-foreground",children:"\uD83D\uDD12 Encrypted"})]})]},e.id))})]})]})})]})]}),(null==eB?void 0:null===(eO=eB.fileUploads)||void 0===eO?void 0:eO.s3endpoint)&&(0,l.jsx)(f.Zb,{className:"bg-transparent",children:(0,l.jsxs)(U.zF,{children:[(0,l.jsx)(f.Ol,{className:"p-4",children:(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex flex-col",children:[(0,l.jsx)("p",{className:"text-base",children:"Custom visualizations"}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground mb-0",children:"Upload custom Lottie animations for idle and responding states."})]}),(0,l.jsx)(U.wy,{asChild:!0,children:(0,l.jsxs)(x.z,{variant:"ghost",size:"icon",className:"size-8",children:[(0,l.jsx)(I.Z,{className:"size-4"}),(0,l.jsx)("span",{className:"sr-only",children:"Toggle"})]})})]})}),(0,l.jsx)(U.Fw,{className:"mt-5",children:(0,l.jsx)(f.aY,{className:"space-y-4",children:(0,l.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("div",{className:"text-sm font-medium",children:"Idle Animation"}),(0,l.jsx)("div",{className:"text-xs text-muted-foreground",children:"Animation when agent is waiting"})]}),(0,l.jsxs)(Q.jF,{s3key:e9,children:[(0,l.jsx)(Q.ZP,{id:"agent-idle-animation",allowedFileTypes:[".json"],selectionLimit:1,buttonText:"",dependencies:[eJ.id],onConfirm:e=>{e.length>0&&e8(e[0])}}),e9&&(0,l.jsxs)("div",{className:"mt-2 p-2 border rounded bg-muted/30",children:[(0,l.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Preview:"}),(0,l.jsx)("div",{className:"w-12 h-12 mx-auto",children:(0,l.jsx)(X.Z,{agent:{...eJ,animation_idle:e9},status:"ready"})})]})]})]}),(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("div",{className:"text-sm font-medium",children:"Responding Animation"}),(0,l.jsx)("div",{className:"text-xs text-muted-foreground",children:"Animation when agent is responding"})]}),(0,l.jsxs)(Q.jF,{s3key:se,children:[(0,l.jsx)(Q.ZP,{id:"agent-responding-animation",allowedFileTypes:[".json"],selectionLimit:1,buttonText:"",dependencies:[eJ.id],onConfirm:e=>{e.length>0&&ss(e[0])}}),se&&(0,l.jsxs)("div",{className:"mt-2 p-2 border rounded bg-muted/30",children:[(0,l.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Preview:"}),(0,l.jsx)("div",{className:"w-12 h-12 mx-auto",children:(0,l.jsx)(X.Z,{agent:{...eJ,animation_responding:se},status:"streaming"})})]})]})]})]})})})]})}),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"text-sm font-medium mb-0",children:" You can test this agent using the Exulu UI without activating the agent if you are a super admin:"}),(0,l.jsx)(x.z,{className:"mt-0",onClick:async()=>{var e,s,i;console.log("agent",eJ);let l=await sS({variables:{title:"New session",user:eG.id,agent:eJ.id}});console.log("result",l);let a=null==l?void 0:null===(i=l.data)||void 0===i?void 0:null===(s=i.agent_sessionsCreateOne)||void 0===s?void 0:null===(e=s.item)||void 0===e?void 0:e.id;eV.push("/chat/".concat(eJ.id,"/").concat(a))},type:"button",variant:"default",children:"Go to chat"})]})]})]})})})}),(0,l.jsx)("div",{className:"col",children:(0,l.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,l.jsx)(N.Wi,{control:sZ.control,name:"active",render:e=>{let{field:s}=e;return(0,l.jsxs)(N.xJ,{className:"flex flex-row items-center justify-between rounded-lg border p-4",children:[(0,l.jsxs)("div",{className:"space-y-0.5",children:[(0,l.jsx)(N.lX,{className:"text-base",children:"Is this agent active?"}),(0,l.jsx)(N.pf,{children:"When active this agent will be available via the Exulu UI and API endpoint."})]}),(0,l.jsx)(N.NI,{children:(0,l.jsx)(y.r,{checked:s.value,onCheckedChange:s.onChange})})]})}}),(0,l.jsx)(f.Zb,{className:"bg-transparent",children:(0,l.jsxs)(U.zF,{children:[(0,l.jsx)(f.Ol,{className:"p-4",children:(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex flex-col",children:[(0,l.jsx)("p",{className:"text-base",children:"Access Control"}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground mb-0",children:"Control access to this agent."})]}),(0,l.jsx)(U.wy,{asChild:!0,children:(0,l.jsxs)(x.z,{variant:"ghost",size:"icon",className:"size-8",children:[(0,l.jsx)(I.Z,{className:"size-4"}),(0,l.jsx)("span",{className:"sr-only",children:"Toggle"})]})})]})}),(0,l.jsx)(U.Fw,{className:"mt-5",children:(0,l.jsx)(f.aY,{className:"space-y-4",children:(0,l.jsx)(L.P,{initialRightsMode:eJ.rights_mode,initialUsers:null===(eT=eJ.RBAC)||void 0===eT?void 0:eT.users,initialRoles:null===(eR=eJ.RBAC)||void 0===eR?void 0:eR.roles,onChange:(e,s,i)=>{sl({rights_mode:e,users:s,roles:i})}})})})]})}),(0,l.jsx)(f.Zb,{className:"bg-transparent",children:(0,l.jsxs)(U.zF,{children:[(0,l.jsx)(f.Ol,{className:"p-4",children:(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex flex-col",children:[(0,l.jsx)("p",{className:"text-base",children:"Prompt Templates"}),(0,l.jsxs)("p",{className:"text-sm text-muted-foreground mb-0",children:["Manage prompt templates assigned to this agent (",sj.length,")"]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsxs)(x.z,{type:"button",variant:"outline",size:"sm",onClick:()=>e3(!0),children:[(0,l.jsx)(J.Z,{className:"h-4 w-4 mr-2"}),"New Prompt"]}),(0,l.jsx)(U.wy,{asChild:!0,children:(0,l.jsxs)(x.z,{variant:"ghost",size:"icon",className:"size-8",children:[(0,l.jsx)(I.Z,{className:"size-4"}),(0,l.jsx)("span",{className:"sr-only",children:"Toggle"})]})})]})]})}),(0,l.jsx)(U.Fw,{className:"mt-5",children:(0,l.jsx)(f.aY,{className:"space-y-4",children:su?(0,l.jsx)("div",{className:"text-sm text-muted-foreground",children:"Loading prompts..."}):0===sj.length?(0,l.jsxs)("div",{className:"text-center py-6 border-2 border-dashed rounded-lg",children:[(0,l.jsx)("p",{className:"text-sm text-muted-foreground mb-2",children:"No prompts assigned to this agent yet"}),(0,l.jsxs)(x.z,{type:"button",variant:"outline",size:"sm",onClick:()=>e3(!0),children:[(0,l.jsx)(J.Z,{className:"h-4 w-4 mr-2"}),"Create First Prompt"]})]}):(0,l.jsx)("div",{className:"grid gap-4",children:sj.map(e=>(0,l.jsx)(ee.$,{prompt:e,user:eG,onUpdate:sv},e.id))})})})]})}),(0,l.jsxs)(f.Zb,{children:[(0,l.jsxs)(f.Ol,{children:[(0,l.jsxs)(f.ll,{className:"flex items-center gap-2",children:["Tools",sc&&(0,l.jsx)(j.g,{className:"h-4 w-4"})]}),(0,l.jsx)(f.SZ,{children:eq.length>0?"".concat(eq.length," tool").concat(1===eq.length?"":"s"," enabled for this agent"):"No tools enabled for this agent"})]}),(0,l.jsx)(f.aY,{children:(0,l.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,l.jsxs)("div",{className:"space-y-3",children:[(0,l.jsx)("div",{className:"flex items-center gap-2",children:(0,l.jsxs)("div",{className:"relative flex-1",children:[(0,l.jsx)(E.Z,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,l.jsx)(u.I,{placeholder:"Search tools by name or description...",value:eW,onChange:e=>eK(e.target.value),className:"pl-10 pr-10"}),eW&&(0,l.jsx)(x.z,{variant:"ghost",size:"sm",className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0",onClick:()=>eK(""),children:(0,l.jsx)(V.Z,{className:"h-3 w-3"})})]})}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsxs)(A.Ph,{value:eQ,onValueChange:eX,children:[(0,l.jsx)(A.i4,{className:"w-[200px]",children:(0,l.jsx)(A.ki,{placeholder:"Filter by category"})}),(0,l.jsxs)(A.Bw,{children:[(0,l.jsx)(A.Ql,{value:"all",children:"All categories"}),sf.map(e=>(0,l.jsx)(A.Ql,{value:e,className:"capitalize",children:e},e))]})]}),(eW||"all"!==eQ)&&(0,l.jsxs)(x.z,{variant:"outline",onClick:sN,children:[(0,l.jsx)(V.Z,{className:"h-4 w-4"}),(0,l.jsx)("span",{className:"sr-only",children:"Clear filters"})]}),(0,l.jsx)(x.z,{type:"button",variant:"outline",onClick:()=>{e1(new Set)},children:"Expand all"}),(0,l.jsx)(x.z,{type:"button",variant:"outline",onClick:()=>{e1(new Set(Object.keys(sg)))},children:"Collapse all"})]}),(0,l.jsxs)("div",{className:"ml-auto text-sm text-muted-foreground",children:[(null==sd?void 0:null===(eM=sd.tools)||void 0===eM?void 0:eM.total)||0," tool",1!==((null==sd?void 0:null===(eP=sd.tools)||void 0===eP?void 0:eP.total)||0)?"s":"",eH||"all"!==eQ?" found":" available","."]})]}),(0,l.jsxs)("div",{className:"space-y-6",children:["all"===eQ?Object.entries(sg).map(e=>{let[s,i]=e,a=i.filter(e=>eq.some(s=>s.id===e.id)).length,n=e0.has(s);return(0,l.jsxs)(U.zF,{open:!n,onOpenChange:()=>sb(s),children:[(0,l.jsxs)("div",{className:"flex items-center justify-between p-3 border rounded-lg bg-muted/30",children:[(0,l.jsx)(U.wy,{asChild:!0,children:(0,l.jsxs)(x.z,{variant:"ghost",className:"flex items-center gap-2 p-0 h-auto font-medium",children:[(0,l.jsx)(I.Z,{className:"h-4 w-4"}),(0,l.jsx)("span",{className:"capitalize",children:s}),(0,l.jsxs)(k.C,{variant:"secondary",className:"text-xs",children:[a,"/",i.length]})]})}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)(x.z,{variant:"outline",size:"sm",onClick:()=>{let e=i.filter(e=>!eq.some(s=>s.id===e.id)).map(e=>{var s;return{id:e.id,type:e.type,config:(null===(s=e.config)||void 0===s?void 0:s.map(e=>({name:e.name,variable:""})))||[]}});eY([...eq,...e])},disabled:a===i.length,children:"Enable All"}),(0,l.jsx)(x.z,{variant:"outline",size:"sm",onClick:()=>{let e=i.map(e=>e.id);eY(eq.filter(s=>!e.includes(s.id)))},disabled:0===a,children:"Disable All"})]})]}),(0,l.jsx)(U.Fw,{className:"mt-2",children:(0,l.jsx)("div",{className:"space-y-2 pl-4",children:i.map(e=>{var s,i;let a=eq.some(s=>s.id===e.id),n=eq.find(s=>s.id===e.id),t=(null===(s=e.config)||void 0===s?void 0:s.length)||0,r=(null==n?void 0:null===(i=n.config)||void 0===i?void 0:i.filter(e=>e.variable&&""!==e.variable.trim()).length)||0,d=a&&t>0&&r<t;return(0,l.jsx)("div",{className:"rounded-lg border p-4",children:(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex items-center flex-1",children:[(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("div",{className:"font-medium",children:null==e?void 0:e.name}),(0,l.jsxs)("div",{className:"flex items-center gap-1",children:[t>0&&a&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(k.C,{variant:"secondary",className:"text-xs",children:[r,"/",t]}),d&&(0,l.jsx)(G.Z,{className:"h-4 w-4 text-destructive"})]}),(0,l.jsx)(k.C,{variant:"outline",children:null==e?void 0:e.category})]})]}),(0,l.jsx)("div",{className:"text-sm text-muted-foreground mt-1 line-clamp-2",children:null==e?void 0:e.description})]}),(0,l.jsxs)(K.yo,{open:eL===e.id,onOpenChange:()=>{eL===e.id?eU(!1):eU(e.id)},children:[t>0&&!a?(0,l.jsx)(K.aM,{asChild:!0,children:(0,l.jsx)(x.z,{variant:"ghost",size:"sm",children:(0,l.jsx)(B.Z,{className:"h-4 w-4"})})}):(0,l.jsx)(x.z,{type:"button",disabled:!0,variant:"ghost",size:"sm",children:(0,l.jsx)(B.Z,{className:"h-4 w-4"})}),(0,l.jsx)(K.aM,{asChild:!0,children:(0,l.jsx)(x.z,{className:"mr-2",variant:"ghost",size:"sm",children:(0,l.jsx)(q.Z,{className:"h-4 w-4"})})}),(0,l.jsxs)(K.ue,{className:"w-[400px] sm:w-[540px]",children:[(0,l.jsxs)(K.Tu,{children:[(0,l.jsx)(K.bC,{children:null==e?void 0:e.name}),(0,l.jsx)(K.Ei,{children:null==e?void 0:e.description})]}),(0,l.jsx)("div",{className:"py-6",children:(0,l.jsx)("div",{className:"space-y-4",children:e.config&&e.config.length>0&&(0,l.jsxs)("div",{className:"space-y-4",children:[(0,l.jsx)("div",{className:"text-md font-medium",children:"Configuration variables:"}),e.config.map((s,i)=>{var t;let r=(null==n?void 0:null===(t=n.config.find(e=>e.name===s.name))||void 0===t?void 0:t.variable)||"";return(0,l.jsx)("div",{className:"space-y-2",children:a?(0,l.jsx)(en,{configItem:s,currentValue:r,variables:sx,onVariableSelect:i=>{let l=eq.map(l=>l.id===e.id?{...l,config:l.config.map(e=>e.name===s.name?{...e,variable:i}:e)}:l);console.log("updated",l),eY(l)}}):(0,l.jsx)("div",{className:"text-xs text-muted-foreground p-2 bg-muted rounded",children:"Enable this tool to configure"})},i)})]})})})]})]})]}),(0,l.jsx)(y.r,{checked:a,onCheckedChange:s=>{let i=[...eq];if(s){var l,a;i=[...eq,{id:e.id,type:e.type,config:(null===(l=e.config)||void 0===l?void 0:l.map(e=>({name:e.name,variable:""})))||[]}],(null===(a=e.config)||void 0===a?void 0:a.length)>0&&eU(e.id)}else i=eq.filter(s=>s.id!==e.id);eY(i)}})]})},null==e?void 0:e.id)})})})]},s)}):(0,l.jsx)("div",{className:"space-y-2",children:sp.map(e=>{var s,i;let a=eq.some(s=>s.id===e.id),n=eq.find(s=>s.id===e.id),t=(null===(s=e.config)||void 0===s?void 0:s.length)||0,r=(null==n?void 0:null===(i=n.config)||void 0===i?void 0:i.filter(e=>e.variable&&""!==e.variable.trim()).length)||0,d=a&&t>0&&r<t;return(0,l.jsx)("div",{className:"rounded-lg border p-4",children:(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex items-center flex-1",children:[(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("div",{className:"font-medium",children:null==e?void 0:e.name}),(0,l.jsxs)("div",{className:"flex items-center gap-1",children:[t>0&&a&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(k.C,{variant:"secondary",className:"text-xs",children:[r,"/",t]}),d&&(0,l.jsx)(G.Z,{className:"h-4 w-4 text-destructive"})]}),(0,l.jsx)(k.C,{variant:"outline",children:null==e?void 0:e.category})]})]}),(0,l.jsx)("div",{className:"text-sm text-muted-foreground mt-1 line-clamp-2",children:null==e?void 0:e.description})]}),(0,l.jsxs)(K.yo,{open:eL===e.id,onOpenChange:()=>{eL===e.id?eU(!1):eU(e.id)},children:[t>0&&!a?(0,l.jsx)(K.aM,{asChild:!0,children:(0,l.jsx)(x.z,{variant:"ghost",size:"sm",children:(0,l.jsx)(B.Z,{className:"h-4 w-4"})})}):(0,l.jsx)(x.z,{type:"button",disabled:!0,variant:"ghost",size:"sm",children:(0,l.jsx)(B.Z,{className:"h-4 w-4"})}),(0,l.jsx)(K.aM,{asChild:!0,children:(0,l.jsx)(x.z,{className:"mr-2",variant:"ghost",size:"sm",children:(0,l.jsx)(q.Z,{className:"h-4 w-4"})})}),(0,l.jsxs)(K.ue,{className:"w-[400px] sm:w-[540px]",children:[(0,l.jsxs)(K.Tu,{children:[(0,l.jsx)(K.bC,{children:null==e?void 0:e.name}),(0,l.jsx)(K.Ei,{children:null==e?void 0:e.description})]}),(0,l.jsx)("div",{className:"py-6",children:(0,l.jsx)("div",{className:"space-y-4",children:e.config&&e.config.length>0&&(0,l.jsxs)("div",{className:"space-y-4",children:[(0,l.jsx)("div",{className:"text-md font-medium",children:"Configuration variables:"}),e.config.map((s,i)=>{var t;let r=(null==n?void 0:null===(t=n.config.find(e=>e.name===s.name))||void 0===t?void 0:t.variable)||"";return(0,l.jsx)("div",{className:"space-y-2",children:a?(0,l.jsx)(en,{configItem:s,currentValue:r,variables:sx,onVariableSelect:i=>{let l=eq.map(l=>l.id===e.id?{...l,config:l.config.map(e=>e.name===s.name?{...e,variable:i}:e)}:l);console.log("updated",l),eY(l)}}):(0,l.jsx)("div",{className:"text-xs text-muted-foreground p-2 bg-muted rounded",children:"Enable this tool to configure"})},i)})]})})})]})]})]}),(0,l.jsx)(y.r,{checked:a,onCheckedChange:s=>{let i=[...eq];if(s){var l,a;i=[...eq,{id:e.id,type:e.type,config:(null===(l=e.config)||void 0===l?void 0:l.map(e=>({name:e.name,variable:""})))||[]}],(null===(a=e.config)||void 0===a?void 0:a.length)>0&&eU(e.id)}else i=eq.filter(s=>s.id!==e.id);eY(i)}})]})},null==e?void 0:e.id)})}),0===sp.length&&(eW||"all"!==eQ)&&(0,l.jsxs)("div",{className:"text-center py-8",children:[(0,l.jsx)("div",{className:"text-muted-foreground",children:"No tools found matching your criteria."}),(0,l.jsx)(x.z,{variant:"outline",size:"sm",className:"mt-2",onClick:sN,children:"Clear filters"})]})]})]})})]})]})})]})})})})})})})})}),(0,l.jsx)(es.D,{open:e2,onOpenChange:e3,onSuccess:sv,user:eG,defaultAssignedAgents:[eJ.id]})]})}},68656:function(e,s,i){i.d(s,{J:function(){return p}});var l=i(57437);i(2265);var a=i(26110),n=i(77992),t=i(35629),r=i(62869),d=i(81103),c=i(94508);let o=e=>{let{className:s,...i}=e;return(0,l.jsx)("div",{className:(0,c.cn)("flex flex-col overflow-hidden rounded-lg border bg-background shadow-sm",s),...i})},m=e=>{let{className:s,...i}=e;return(0,l.jsx)("div",{className:(0,c.cn)("flex items-center justify-between border-b bg-muted/50 px-4 py-3",s),...i})},x=e=>{let{className:s,...i}=e;return(0,l.jsx)("div",{className:(0,c.cn)("flex items-center gap-1",s),...i})},h=e=>{let{tooltip:s,label:i,icon:a,children:n,className:t,size:o="sm",variant:m="ghost",...x}=e,h=(0,l.jsxs)(r.z,{className:(0,c.cn)("size-8 p-0 text-muted-foreground hover:text-foreground",t),size:o,type:"button",variant:m,...x,children:[a?(0,l.jsx)(a,{className:"size-4"}):n,(0,l.jsx)("span",{className:"sr-only",children:i||s})]});return s?(0,l.jsx)(d.pn,{children:(0,l.jsxs)(d.u,{children:[(0,l.jsx)(d.aJ,{asChild:!0,children:h}),(0,l.jsx)(d._v,{children:(0,l.jsx)("p",{children:s})})]})}):h},u=e=>{let{className:s,...i}=e;return(0,l.jsx)("div",{className:(0,c.cn)("flex-1 overflow-auto p-4",s),...i})};var v=i(33245),j=i(78867);function p(e){let{text:s,sliceLength:i}=e,{toast:r}=(0,n.pm)();return(0,l.jsxs)(a.Vq,{children:[(0,l.jsx)(a.hg,{asChild:!0,children:(0,l.jsxs)("button",{className:"cursor-pointer text-sm text-left w-full hover:bg-accent/50 transition-colors rounded-md p-2 group",children:[(0,l.jsxs)("span",{className:"block",children:[null==s?void 0:s.slice(0,null!=i?i:200),i&&s.length>i?"...":""]}),(0,l.jsxs)("span",{className:"flex items-center gap-1 text-xs text-muted-foreground mt-1 group-hover:text-foreground transition-colors",children:[(0,l.jsx)(v.Z,{className:"w-3 h-3"}),"Click to view full text"]})]})}),(0,l.jsx)(a.cZ,{className:"sm:max-w-[800px] max-h-[500px] overflow-y-scroll",children:(0,l.jsxs)(o,{children:[(0,l.jsx)(m,{children:(0,l.jsx)(x,{children:(0,l.jsx)(h,{icon:j.Z,label:"Copy",tooltip:"Copy to clipboard",onClick:async()=>{await navigator.clipboard.writeText(s),r({title:"Copied to clipboard"})}})})}),(0,l.jsx)(u,{children:(0,l.jsx)(t.H,{children:s})})]})})]})}},92279:function(e,s,i){var l=i(57437),a=i(7882),n=i(11713),t=i(78361);let r=e=>{let{agent:s,status:i,className:r}=e,{data:d}=(0,n.a)({queryKey:["defaultAnimation","idle"],queryFn:async()=>(await fetch("/agent-idle.json")).json(),staleTime:36e5,enabled:!s.animation_idle}),{data:c}=(0,n.a)({queryKey:["defaultAnimation","responding"],queryFn:async()=>(await fetch("/agent-responding.json")).json(),staleTime:36e5,enabled:!s.animation_responding}),{data:o}=(0,n.a)({queryKey:["customAnimation",s.animation_idle],queryFn:async()=>{if(!s.animation_idle)return null;let e=await (0,t.NF)(s.animation_idle);return(await fetch(e)).json()},enabled:!!s.animation_idle,staleTime:3e5}),{data:m}=(0,n.a)({queryKey:["customAnimation",s.animation_responding],queryFn:async()=>{if(!s.animation_responding)return null;let e=await (0,t.NF)(s.animation_responding);return(await fetch(e)).json()},enabled:!!s.animation_responding,staleTime:3e5}),{View:x}=(0,a.useLottie)((()=>{switch(i){case"submitted":case"ready":case"error":default:return{animationData:o||d,loop:!0,autoplay:!0};case"streaming":return{animationData:m||c,loop:!0,autoplay:!0}}})());return(0,l.jsx)(l.Fragment,{children:(0,l.jsx)("div",{className:"",children:(0,l.jsx)("div",{className:r,children:x})})})};s.Z=e=>{let{agent:s,status:i,className:a}=e;return(0,l.jsx)(r,{className:a,agent:s,status:i})}},15681:function(e,s,i){i.d(s,{NI:function(){return j},Wi:function(){return m},l0:function(){return c},lX:function(){return v},pf:function(){return p},xJ:function(){return u},zG:function(){return g}});var l=i(57437),a=i(37053),n=i(2265),t=i(29501),r=i(26815),d=i(94508);let c=t.RV,o=n.createContext({}),m=e=>{let{...s}=e;return(0,l.jsx)(o.Provider,{value:{name:s.name},children:(0,l.jsx)(t.Qr,{...s})})},x=()=>{let e=n.useContext(o),s=n.useContext(h),{getFieldState:i,formState:l}=(0,t.Gc)(),a=i(e.name,l);if(!e)throw Error("useFormField should be used within <FormField>");let{id:r}=s;return{id:r,name:e.name,formItemId:"".concat(r,"-form-item"),formDescriptionId:"".concat(r,"-form-item-description"),formMessageId:"".concat(r,"-form-item-message"),...a}},h=n.createContext({}),u=n.forwardRef((e,s)=>{let{className:i,...a}=e,t=n.useId();return(0,l.jsx)(h.Provider,{value:{id:t},children:(0,l.jsx)("div",{ref:s,className:(0,d.cn)("space-y-2",i),...a})})});u.displayName="FormItem";let v=n.forwardRef((e,s)=>{let{className:i,...a}=e,{error:n,formItemId:t}=x();return(0,l.jsx)(r._,{ref:s,className:(0,d.cn)(n&&"text-destructive",i),htmlFor:t,...a})});v.displayName="FormLabel";let j=n.forwardRef((e,s)=>{let{...i}=e,{error:n,formItemId:t,formDescriptionId:r,formMessageId:d}=x();return(0,l.jsx)(a.g7,{ref:s,id:t,"aria-describedby":n?"".concat(r," ").concat(d):"".concat(r),"aria-invalid":!!n,...i})});j.displayName="FormControl";let p=n.forwardRef((e,s)=>{let{className:i,...a}=e,{formDescriptionId:n}=x();return(0,l.jsx)("p",{ref:s,id:n,className:(0,d.cn)("text-sm text-muted-foreground",i),...a})});p.displayName="FormDescription";let g=n.forwardRef((e,s)=>{let{className:i,children:a,...n}=e,{error:t,formMessageId:r}=x(),c=t?String(null==t?void 0:t.message):a;return c?(0,l.jsx)("p",{ref:s,id:r,className:(0,d.cn)("text-sm font-medium text-destructive",i),...n,children:c}):null});g.displayName="FormMessage"},10492:function(e,s,i){i.d(s,{g:function(){return n}});var l=i(57437),a=i(94508);let n=e=>{let{className:s}=e;return(0,l.jsxs)("svg",{"aria-hidden":"true",role:"status",className:(0,a.cn)("inline w-4 h-4 text-white animate-spin fill-inherit",s),viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,l.jsx)("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",className:"fill-inherit opacity-20"}),(0,l.jsx)("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",className:"fill-inherit"})]})}},1828:function(e,s,i){i.d(s,{r:function(){return r}});var l=i(57437),a=i(50721),n=i(2265),t=i(94508);let r=n.forwardRef((e,s)=>{let{className:i,...n}=e;return(0,l.jsx)(a.fC,{className:(0,t.cn)("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",i),...n,ref:s,children:(0,l.jsx)(a.bU,{className:(0,t.cn)("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})})});r.displayName=a.fC.displayName}}]);
|
|
2
|
+
//# sourceMappingURL=9953-95900a236271a222.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/chunks/9953-95900a236271a222.js","mappings":"wTAgBO,SAASA,EAAYC,CAI3B,KAJ2B,CAC1BC,YAAAA,CAAW,CACXC,kBAAAA,CAAiB,CACjBC,MAAAA,CAAK,CACN,CAJ2BH,EAMpBI,EAAe,oBACf,CAACC,EAAOC,EAAS,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAEnC,MACE,GAAAC,EAAAC,IAAA,EAACC,EAAAA,EAAMA,CAAAA,WACL,GAAAF,EAAAG,GAAA,EAACC,EAAAA,EAAaA,CAAAA,CAACC,QAAO,YACpB,GAAAL,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACC,SAAU,CAACZ,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAOa,EAAE,EAAEC,QAAQ,uBACpC,GAAAT,EAAAG,GAAA,EAACO,EAAAA,CAAMA,CAAAA,CAACC,UAAU,eAGtB,GAAAX,EAAAC,IAAA,EAACW,EAAAA,EAAaA,CAAAA,CAACD,UAAU,6BACvB,GAAAX,EAAAG,GAAA,EAACU,EAAAA,EAAYA,CAAAA,UACX,GAAAb,EAAAG,GAAA,EAACW,EAAAA,EAAWA,CAAAA,UAAC,wBAEf,GAAAd,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,2BACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,uBACb,GAAAX,EAAAC,IAAA,EAACe,EAAAA,CAAKA,CAAAA,CAACC,QAAQ,iBAAO,SAAOrB,EAAa,kBAC1C,GAAAI,EAAAG,GAAA,EAACe,EAAAA,CAAKA,CAAAA,CACJC,SAAU,IACRrB,EAASsB,EAAEC,MAAM,CAACxB,KAAK,CACzB,EACAW,GAAG,OACHc,UAAS,UAIf,GAAAtB,EAAAG,GAAA,EAACoB,EAAAA,EAAYA,CAAAA,UACX,GAAAvB,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CACLC,SAAUV,IAAUD,GAAgBF,EAAkB8B,OAAO,CAC7DC,QAAS,KACPhC,EAAY,CACViC,UAAW,CACTlB,GAAIb,EAAMa,EAAE,CAEhB,EACF,EACAC,QAAS,cACTkB,KAAK,mBACN,UACSjC,EAAkB8B,OAAO,EAAI,GAAAxB,EAAAG,GAAA,EAACyB,EAAAA,CAAOA,CAAAA,CAAAA,aAMzD,iHC3BO,SAASC,IACd,MACE,GAAA7B,EAAAG,GAAA,EAAC2B,MAAAA,CACCC,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,OACLC,MAAM,sCAEN,GAAAnC,EAAAG,GAAA,EAACiC,OAAAA,CACCC,EAAE,mgCACFC,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,WAIvB,uUC+BA,IAAMC,GAAa,CACjB,YACA,QACA,UACA,KACA,SACA,UACA,WACA,YACA,UACD,CAGYC,GAA2B,OAAC,CACvCC,WAAAA,CAAU,CACVC,aAAAA,CAAY,CACZnB,UAAAA,CAAS,CACToB,iBAAAA,CAAgB,CAMjB,CAAAtD,EACO,CAACuD,EAAaC,EAAe,CAAGC,EAAAA,QAAc,CAAC,IAC/CC,EAAmBxB,EAAUyB,IAAI,CAAC,GAAYC,EAAEC,IAAI,GAAKR,GAE/D,MACE,GAAA7C,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,sBACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oBACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,kCAA0BiC,EAAWS,IAAI,GACxD,GAAArD,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,oDAA4CiC,EAAWU,WAAW,MAEnF,GAAAtD,EAAAC,IAAA,EAACsD,EAAAA,EAAOA,CAAAA,CAACC,KAAMT,EAAaU,aAAcT,EAAgBU,MAAO,aAC/D,GAAA1D,EAAAG,GAAA,EAACwD,EAAAA,EAAcA,CAAAA,CAACtD,QAAO,YACrB,GAAAL,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CACLG,QAAQ,UACRmD,KAAK,WACLC,gBAAed,EACfpC,UAAU,2CAETuC,EAAmBA,EAAiBG,IAAI,CAAG,qBAC5C,GAAArD,EAAAG,GAAA,EAAC2D,EAAAA,CAAcA,CAAAA,CAACnD,UAAU,0CAG9B,GAAAX,EAAAG,GAAA,EAAC4D,EAAAA,EAAcA,CAAAA,CAACpD,UAAU,sBACxB,GAAAX,EAAAC,IAAA,EAAC+D,EAAAA,EAAOA,CAAAA,WACN,GAAAhE,EAAAG,GAAA,EAAC8D,EAAAA,EAAYA,CAAAA,CAACC,YAAY,wBAC1B,GAAAlE,EAAAC,IAAA,EAACkE,EAAAA,EAAWA,CAAAA,WACV,GAAAnE,EAAAG,GAAA,EAACiE,EAAAA,EAAYA,CAAAA,UAAC,wBACd,GAAApE,EAAAG,GAAA,EAACkE,EAAAA,EAAYA,CAAAA,UACV3C,EAAU4C,GAAG,CAAC,GACb,GAAAtE,EAAAC,IAAA,EAACsE,EAAAA,EAAWA,CAAAA,CAEVC,SAAU,KACR1B,EAAiB2B,EAASpB,IAAI,EAC9BqB,QAAQC,GAAG,CAAC,WAAYF,GACxBzB,EAAe,GACjB,YAEA,GAAAhD,EAAAG,GAAA,EAACyE,EAAAA,CAAKA,CAAAA,CACJjE,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EACT,eACAhC,IAAiB4B,EAASpB,IAAI,CAAG,cAAgB,eAGrD,GAAArD,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,0BACb,GAAAX,EAAAG,GAAA,EAAC2E,OAAAA,UAAML,EAASpB,IAAI,GACnBoB,EAASM,SAAS,EACjB,GAAA/E,EAAAG,GAAA,EAAC2E,OAAAA,CAAKnE,UAAU,yCAAgC,gCAhB/C8D,EAASjE,EAAE,aA0B1BoC,EAAWoC,OAAO,EAChB,GAAAhF,EAAAC,IAAA,EAACgF,EAAAA,EAAIA,CAAAA,WACH,GAAAjF,EAAAG,GAAA,EAAC+E,EAAAA,EAAUA,CAAAA,UACT,GAAAlF,EAAAG,GAAA,EAACgF,EAAAA,EAASA,CAAAA,CAACxE,UAAU,mBAAU,oBAEjC,GAAAX,EAAAG,GAAA,EAACiF,EAAAA,EAAWA,CAAAA,UACV,GAAApF,EAAAG,GAAA,EAACkF,EAAAA,CAAWA,CAAAA,CAACC,KAAM1C,EAAWoC,OAAO,CAAEO,YAAa,gBAQpE,EAEMC,GAAkBC,EAAAA,EAAQ,CAAC,CAC/BpC,KAAMoC,EAAAA,EACG,GACNC,GAAG,CAAC,EAAG,CACNC,QAAS,2CACX,GACCC,GAAG,CAAC,IAAK,CACRD,QAAS,oDACX,GACFE,SAAUJ,EAAAA,EAAQ,GAAGK,QAAQ,GAC7BxC,YAAamC,EAAAA,EACJ,GACNG,GAAG,CAAC,IAAO,CACVD,QACE,8DACJ,GACCI,QAAQ,GACRD,QAAQ,GACXE,aAAcP,EAAAA,EACL,GACNG,GAAG,CAAC,IAAO,CACVD,QACE,+DACJ,GACCI,QAAQ,GACRD,QAAQ,GACXtF,GAAIiF,EAAAA,EAAQ,GAAGQ,EAAE,CAACR,EAAAA,EAAQ,IAAIM,QAAQ,GAAGD,QAAQ,GACjDI,OAAQT,EAAAA,EAAK,GACbU,eAAgBV,EAAAA,EAAQ,GAAGM,QAAQ,GAAGD,QAAQ,GAC9CM,SAAUX,EAAAA,EAAQ,CAAC,CACjBY,QAASZ,EAAAA,EAAS,GAAGK,QAAQ,GAC7BQ,SAAUb,EAAAA,EAAQ,CAAC,CACjBc,YAAad,EAAAA,EAAS,GAAGK,QAAQ,GACjCU,WAAYf,EAAAA,EAAS,GAAGK,QAAQ,GAChCW,eAAgBhB,EAAAA,EAAS,GAAGK,QAAQ,GACpCY,YAAajB,EAAAA,EAAS,GAAGK,QAAQ,GACjCa,aAAclB,EAAAA,EAAS,GAAGK,QAAQ,EACpC,GAAGA,QAAQ,EACb,GAAGA,QAAQ,EACb,GAEe,SAASc,GAAUpH,CAMjC,MAyBiEG,EAKvDA,EACAA,EAIMA,EAAAA,EACDA,EAAAA,EACIA,GAAAA,GACHA,GAAAA,GACCA,GAAAA,GAoCEkH,GAaGC,GAKjBC,GAqOoEpH,GAMIA,GAAAA,GAKtBA,GAAAA,GAMsBA,GAAAA,GAKvBA,GAAAA,GAMuBA,GAAAA,GAKvBA,GAAAA,GAMuBA,GAAAA,GAKvBA,GAAAA,GA2GZ+B,GAsCRsF,GAqLiBrH,GACAA,GA4RboH,GAAoCA,MAv9BzC,CAChCpH,MAAAA,EAAK,CACLsH,QAAAA,EAAO,CAIR,CANiCzH,EAQ1B0H,GAASC,CAAAA,EAAAA,EAAAA,SAAAA,IACT,CAAEC,KAAAA,EAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,UAAAA,EAAWC,EAAAA,CAAWA,EACjCN,GAAgBK,CAAAA,EAAAA,EAAAA,UAAAA,EAAWE,EAAAA,CAAaA,EACxC,CAACC,GAAcC,GAAgB,CAAG1H,CAAAA,EAAAA,EAAAA,QAAAA,EAEtCJ,GAAM+H,KAAK,CAAG/H,GAAM+H,KAAK,CAAG,EAAE,EAE1B,CAACC,GAAWC,GAAa,CAAG7H,CAAAA,EAAAA,EAAAA,QAAAA,EAA2B,IACvD,CAAC8H,GAAYC,GAAc,CAAG/H,CAAAA,EAAAA,EAAAA,QAAAA,EAAiB,IAC/C,CAACgI,GAAkBC,GAAoB,CAAGjI,CAAAA,EAAAA,EAAAA,QAAAA,EAAiB,OAC3D,CAACkI,GAAiBC,GAAmB,CAAGnI,CAAAA,EAAAA,EAAAA,QAAAA,EAAiB,IACzD,CAACoI,GAAqBC,GAAuB,CAAGrI,CAAAA,EAAAA,EAAAA,QAAAA,EAAsB,IAAIsI,KAC1E,CAACC,GAAmBC,GAAqB,CAAGxI,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAG3DyI,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,IAAMC,EAAQC,WAAW,KACvBR,GAAmBL,GACrB,EAAG,KAEH,MAAO,IAAMc,aAAaF,EAC5B,EAAG,CAACZ,GAAW,EACf,GAAM,CAAC1B,GAAgByC,GAAkB,CAAG7I,CAAAA,EAAAA,EAAAA,QAAAA,EAAiBJ,GAAMwG,cAAc,EAAI,IAC/E,CAAC0C,GAAiBC,GAAmB,CAAG/I,CAAAA,EAAAA,EAAAA,QAAAA,EAAkBJ,CAAAA,OAAAA,CAAAA,EAAAA,GAAMyG,QAAQ,GAAdzG,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgB0G,OAAO,GAAI,IACrF,CAAC0C,GAAgBC,GAAkB,CAAGjJ,CAAAA,EAAAA,EAAAA,QAAAA,EAAiBJ,GAAMoJ,cAAc,EAAI,IAC/E,CAACE,GAAsBC,GAAwB,CAAGnJ,CAAAA,EAAAA,EAAAA,QAAAA,EAAiBJ,GAAMsJ,oBAAoB,EAAI,IACjG,CAACE,GAAMC,GAAQ,CAAGrJ,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,CAC/BsJ,YAAa1J,GAAM0J,WAAW,CAC9BC,MAAK,OAAE3J,CAAAA,EAAAA,GAAM4J,IAAI,GAAV5J,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAY2J,KAAK,CACxBE,MAAK,OAAE7J,CAAAA,EAAAA,GAAM4J,IAAI,GAAV5J,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAY6J,KAAK,GAGpB,CAACC,GAAkBC,GAAoB,CAAG3J,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,CACvDwG,YAAa5G,CAAAA,OAAAA,CAAAA,EAAAA,GAAMyG,QAAQ,GAAdzG,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAgB2G,QAAQ,GAAxB3G,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0B4G,WAAW,GAAI,GACtDC,WAAY7G,CAAAA,OAAAA,CAAAA,EAAAA,GAAMyG,QAAQ,GAAdzG,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAgB2G,QAAQ,GAAxB3G,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0B6G,UAAU,GAAI,GACpDC,eAAgB9G,CAAAA,OAAAA,CAAAA,GAAAA,GAAMyG,QAAQ,GAAdzG,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAgB2G,QAAQ,GAAxB3G,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA0B8G,cAAc,GAAI,GAC5DC,YAAa/G,CAAAA,OAAAA,CAAAA,GAAAA,GAAMyG,QAAQ,GAAdzG,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAgB2G,QAAQ,GAAxB3G,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA0B+G,WAAW,GAAI,GACtDC,aAAchH,CAAAA,OAAAA,CAAAA,GAAAA,GAAMyG,QAAQ,GAAdzG,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAgB2G,QAAQ,GAAxB3G,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA0BgH,YAAY,GAAI,EAC1D,GAEM,CAAEgD,MAAAA,EAAK,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,IAGZC,GAAsBC,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,IAAO,EACzCC,OAAQ9B,IAAmB+B,KAAAA,EAC3BnE,SAAUkC,QAAAA,GAA6BiC,KAAAA,EAAYjC,GACnDkC,MAAO,IACPC,KAAM,CACR,GAAI,CAACjC,GAAiBF,GAAiB,EAEjC,CAAEoC,KAAMpD,EAAS,CAAEvF,QAAS4I,EAAY,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAOhDC,EAAAA,EAASA,CAAE,CACZ5I,UAAWmI,EACb,GAEM,CAAEM,KAAMtD,EAAa,CAAE,CAAGwD,CAAAA,EAAAA,EAAAA,EAAAA,EAI7BE,EAAAA,EAAaA,CAAE,CAChB7I,UAAW,CAAEwI,KAAM,EAAGD,MAAO,GAAI,CACnC,GAEM,CAAEE,KAAMK,EAAc,CAAE,CAAGH,CAAAA,EAAAA,EAAAA,EAAAA,EAE9BI,EAAAA,EAAmBA,EAEhB/I,GAAYmF,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAe6D,mBAAmB,GAAlC7D,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAoC8D,KAAK,GAAI,EAAE,CAG3D,CAAER,KAAMrD,EAAW,CAAEtF,QAASoJ,EAAc,CAAE3D,QAAS4D,EAAc,CAAE,CAAGC,CAAAA,EAAAA,GAAAA,EAAAA,EAAW,CACzFZ,KAAM,EACND,MAAO,IACPc,QAAS,CAAC,CACRC,gBAAiB,CACfC,SAAUtL,GAAMa,EAAE,CAEtB,EAAE,GAGE0K,GAAepE,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAaqE,wBAAwB,GAArCrE,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAuC6D,KAAK,GAAI,EAAE,CAGjES,GAAgBtB,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,SACrB/C,EAAAA,EAAP,MAAOA,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,GAAWW,KAAK,GAAhBX,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAkB4D,KAAK,GAAvB5D,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyBsE,MAAM,CAAC,GAAgBC,EAAK9K,EAAE,GAAKb,GAAMa,EAAE,IAAK,EAAE,EACjF,CAACuG,MAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAWW,KAAK,GAAhBX,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAkB4D,KAAK,CAAEhL,GAAMa,EAAE,CAAC,EAGhC+K,GAAkBzB,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,IACvBsB,GAAcI,MAAM,CAAC,CAACC,EAAKH,KAC3BG,CAAG,CAACH,EAAKzF,QAAQ,CAAC,EACrB4F,CAAAA,CAAG,CAACH,EAAKzF,QAAQ,CAAC,CAAG,EAAE,EAEzB4F,CAAG,CAACH,EAAKzF,QAAQ,CAAC,CAAC6F,IAAI,CAACJ,GACjBG,GACN,CAAC,GACH,CAACL,GAAc,EAGZO,GAAsBnB,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,GAAgBoB,cAAc,GAAI,EAAE,CAGhEpD,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACJmD,GAAoBE,MAAM,CAAG,GAE/BzD,GADsB,IAAIC,IAAIyD,OAAOC,IAAI,CAACR,KAG9C,EAAG,CAACA,GAAgB,EAGpB,IAAMS,GAAc,KAClBlE,GAAc,IACdE,GAAoB,MACtB,EAGMiE,GAAyB,IAC7B7D,GAAuB8D,IACrB,IAAMC,EAAS,IAAI9D,IAAI6D,GAMvB,OALIC,EAAOC,GAAG,CAACC,GACbF,EAAOG,MAAM,CAACD,GAEdF,EAAOI,GAAG,CAACF,GAENF,CACT,EACF,EAEMK,GAAc,UAClB,GAAI,CACF,MAAMC,UAAUC,SAAS,CAACC,SAAS,CAAChN,GAAMa,EAAE,EAC5CmJ,GAAM,CAAEiD,MAAO,8BAA+B,EAChD,CAAE,MAAOC,EAAO,CACdlD,GAAM,CAAEiD,MAAO,0BAA2BnM,QAAS,aAAc,EACnE,CACF,EAIM,CAAChB,GAAaC,GAAkB,CAAGoN,CAAAA,EAAAA,EAAAA,CAAAA,EACvCC,EAAAA,EAAkBA,CAClB,CACEC,YAAa,KACX9F,GAAOwE,IAAI,CAAE,UAAU,CAAEuB,OAAQ,EAAM,EACzC,CACF,GAGI,CAACC,GAAaC,GAAkB,CAAGL,CAAAA,EAAAA,EAAAA,CAAAA,EACvCM,EAAAA,EAAkBA,CAClB,CACEC,eAAgB,CACdC,EAAAA,EAAeA,CACf,eACD,GAMCC,GAAYC,CAAAA,EAAAA,EAAAA,EAAAA,EAAyB,CACzCC,SAAUC,CAAAA,EAAAA,EAAAA,CAAAA,EAAYlI,IACtBmI,cAAehO,MAAAA,GAAAA,GAAS,CACtB0D,KAAM,YACN2C,aAAc,GACd4H,MAAO,EAAE,CACTxH,SAAU,CACRC,QAAS,GACTC,SAAU,CACRC,YAAa,GACbC,WAAY,GACZC,eAAgB,GAChBC,YAAa,GACbC,aAAc,EAChB,CACF,CACF,EACAkH,KAAM,UACR,GAEM,CAACC,GAAmB,CAAGhB,CAAAA,EAAAA,EAAAA,CAAAA,EAC3BiB,EAAAA,EAAoBA,EAGtB,MACE,GAAA/N,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,+HACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,yDACZhB,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,GAAOa,EAAE,GACR,GAAAR,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CACLmB,QAAS8L,GAAUS,YAAY,CAC7B,MAAO7D,IACLzF,QAAQC,GAAG,CAAC,OAAQwF,GACpB+C,GAAY,CACVxL,UAAW,CACTlB,GAAI2J,EAAK3J,EAAE,CACX6C,KAAM8G,EAAK9G,IAAI,CACfC,YAAa6G,EAAK7G,WAAW,CAC7B0C,aAAcmE,EAAKnE,YAAY,CAC/BH,SAAUsE,EAAKtE,QAAQ,CACvBK,OAAQiE,EAAKjE,MAAM,CACnBC,eAAgBA,GAChB4C,eAAgBA,GAChBE,qBAAsBA,GACtBI,YAAaF,GAAKE,WAAW,CAC7BE,KAAM,CACJD,MAAOH,GAAKG,KAAK,EAAI,EAAE,CACvBE,MAAOL,GAAKK,KAAK,EAAI,EAAE,EAGzBpD,SAAU6H,KAAKC,SAAS,CAAC,CACvB7H,QAASwC,GACTvC,SAAUmD,EACZ,GACA/B,MAAOuG,KAAKC,SAAS,CAAC1G,GACxB,CACF,GACAP,IACF,EACA,IACEvC,QAAQmI,KAAK,CAAC,oBAAqB1C,EACrC,GAEF5J,SAAU4M,GAAkB3L,OAAO,CACnCf,QAAS,YACTkB,KAAK,mBAAS,QACRwL,GAAkB3L,OAAO,EAAI,GAAAxB,EAAAG,GAAA,EAACyB,EAAAA,CAAOA,CAAAA,CAACjB,UAAU,YAG1D,GAAAX,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CACLmB,QAAS,KACPyF,GAAOwE,IAAI,CAAC,UAAW,CAAEuB,OAAQ,EAAM,EACzC,EACAxM,QAAS,YACTkB,KAAK,kBAAS,SAGhB,GAAA3B,EAAAG,GAAA,EAACZ,EAAWA,CACVI,MAAOA,GACPF,YAAaA,GACbC,kBAAmBA,UAIzB,GAAAM,EAAAG,GAAA,EAACgO,EAAAA,CAASA,CAAAA,CAAAA,GACV,GAAAnO,EAAAG,GAAA,EAACiO,EAAAA,EAAIA,CAAAA,CAACC,aAAa,WAAW1N,UAAU,kBACtC,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,0BACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,oCACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,sBACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,mCACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,kBACb,GAAAX,EAAAG,GAAA,EAACmO,EAAAA,EAAIA,CAAAA,CAAE,GAAGf,EAAS,UACjB,GAAAvN,EAAAG,GAAA,EAACoO,OAAAA,CAAK5N,UAAU,qBACd,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,gEACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,eACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,mCACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,mCACb,GAAAX,EAAAC,IAAA,EAACgF,EAAAA,EAAIA,CAAAA,WACH,GAAAjF,EAAAG,GAAA,EAAC+E,EAAAA,EAAUA,CAAAA,UACT,GAAAlF,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,8CACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCACZhB,GAAM6O,KAAK,EACV,GAAAxO,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,gEACb,GAAAX,EAAAG,GAAA,EAACsO,MAAAA,CACCC,IAAK/O,GAAM6O,KAAK,CAChBG,IAAK,GAAcC,MAAA,CAAXjP,GAAM0D,IAAI,CAAC,YACnB1C,UAAU,iCAIhB,GAAAX,EAAAG,GAAA,EAACgF,EAAAA,EAASA,CAAAA,UAAC,aAEb,GAAAnF,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,kEACb,GAAAX,EAAAC,IAAA,EAAC6E,OAAAA,WAAK,OAAKnF,GAAMa,EAAE,IACnB,GAAAR,EAAAG,GAAA,EAAC0O,SAAAA,CACClN,KAAK,SACLF,QAAS+K,GACT7L,UAAU,qEACViM,MAAM,yBAEN,GAAA5M,EAAAG,GAAA,EAAC0B,EAAQA,CAAAA,aAKjB,GAAA7B,EAAAC,IAAA,EAACmF,EAAAA,EAAWA,CAAAA,CAACzE,UAAU,uBAGrB,GAAAX,EAAAG,GAAA,EAAC2O,EAAAA,EAASA,CAAAA,CACRC,QAASxB,GAAUwB,OAAO,CAC1B1L,KAAO,OACP2L,OAAQ,OAAC,CAAEC,MAAAA,CAAK,CAAE,CAAAzP,QAChB,GAAAQ,EAAAC,IAAA,EAACiP,EAAAA,EAAQA,CAAAA,WACP,GAAAlP,EAAAG,GAAA,EAACgP,EAAAA,EAASA,CAAAA,UAAC,SACX,GAAAnP,EAAAG,GAAA,EAACiP,EAAAA,EAAWA,CAAAA,UACV,GAAApP,EAAAG,GAAA,EAACe,EAAAA,CAAKA,CAAAA,CACJS,KAAK,OACLhB,UAAU,cACT,GAAGsO,CAAK,KAGb,GAAAjP,EAAAG,GAAA,EAACkP,EAAAA,EAAWA,CAAAA,CAAAA,SAMlB,GAAArP,EAAAC,IAAA,EAACc,MAAAA,WACC,GAAAf,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,oCAA2B,eAC1C,GAAAX,EAAAC,IAAA,EAACqP,IAAAA,CAAE3O,UAAU,+CAAqC,mBAChC,GAAAX,EAAAG,GAAA,EAACoP,IAAAA,UAAG5P,GAAM6P,SAAS,GAAK,SAAM,GAAAxP,EAAAG,GAAA,EAACoP,IAAAA,UAAG5P,GAAM8P,YAAY,GAAK,8CAE3E,GAAAzP,EAAAG,GAAA,EAACuP,EAAAA,EAAeA,CAAAA,UACd,GAAA1P,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,yCACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAW,kBAA6GiO,MAAA,CAA3FjP,CAAAA,OAAAA,CAAAA,GAAAA,GAAMgQ,YAAY,GAAlBhQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAoB2F,IAAI,EAAG,qCAAuC,mCAClG,GAAAtF,EAAAG,GAAA,EAACyP,EAAAA,CAAIA,CAAAA,CAACjP,UAAU,cAGlB,GAAAX,EAAAC,IAAA,EAAC4P,EAAAA,CAAOA,CAAAA,WACN,GAAA7P,EAAAG,GAAA,EAAC2P,EAAAA,EAAcA,CAAAA,CAACzP,QAAO,YACrB,GAAAL,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAW,kBAAuHiO,MAAA,CAArGjP,CAAAA,OAAAA,CAAAA,GAAAA,GAAMgQ,YAAY,GAAlBhQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAoBoQ,MAAM,GAA1BpQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA4BkM,MAAM,EAAG,qCAAuC,mCAC5G,GAAA7L,EAAAG,GAAA,EAAC6P,EAAAA,CAAKA,CAAAA,CAACrP,UAAU,gBAGrB,GAAAX,EAAAG,GAAA,EAAC8P,EAAAA,EAAcA,CAAAA,UACb,GAAAjQ,EAAAC,IAAA,EAACqP,IAAAA,WAAE,WAAS3P,CAAAA,OAAAA,CAAAA,GAAAA,GAAMgQ,YAAY,GAAlBhQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAoBoQ,MAAM,GAA1BpQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA4BkM,MAAM,EAAGlM,GAAMgQ,YAAY,CAACI,MAAM,CAACG,IAAI,CAAC,MAAQ,eAI5F,GAAAlQ,EAAAC,IAAA,EAAC4P,EAAAA,CAAOA,CAAAA,WACN,GAAA7P,EAAAG,GAAA,EAAC2P,EAAAA,EAAcA,CAAAA,CAACzP,QAAO,YACrB,GAAAL,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAW,kBAAsHiO,MAAA,CAApGjP,CAAAA,OAAAA,CAAAA,GAAAA,GAAMgQ,YAAY,GAAlBhQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAoBwQ,KAAK,GAAzBxQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA2BkM,MAAM,EAAG,qCAAuC,mCAC3G,GAAA7L,EAAAG,GAAA,EAACiQ,EAAAA,CAAQA,CAAAA,CAACzP,UAAU,gBAGxB,GAAAX,EAAAG,GAAA,EAAC8P,EAAAA,EAAcA,CAAAA,UACb,GAAAjQ,EAAAC,IAAA,EAACqP,IAAAA,WAAE,UAAQ3P,CAAAA,OAAAA,CAAAA,GAAAA,GAAMgQ,YAAY,GAAlBhQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAoBwQ,KAAK,GAAzBxQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA2BkM,MAAM,EAAGlM,GAAMgQ,YAAY,CAACQ,KAAK,CAACD,IAAI,CAAC,MAAQ,eAIzF,GAAAlQ,EAAAC,IAAA,EAAC4P,EAAAA,CAAOA,CAAAA,WACN,GAAA7P,EAAAG,GAAA,EAAC2P,EAAAA,EAAcA,CAAAA,CAACzP,QAAO,YACrB,GAAAL,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAW,kBAAsHiO,MAAA,CAApGjP,CAAAA,OAAAA,CAAAA,GAAAA,GAAMgQ,YAAY,GAAlBhQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAoB0Q,KAAK,GAAzB1Q,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA2BkM,MAAM,EAAG,qCAAuC,mCAC3G,GAAA7L,EAAAG,GAAA,EAACmQ,EAAAA,CAAOA,CAAAA,CAAC3P,UAAU,gBAGvB,GAAAX,EAAAG,GAAA,EAAC8P,EAAAA,EAAcA,CAAAA,UACb,GAAAjQ,EAAAC,IAAA,EAACqP,IAAAA,WAAE,UAAQ3P,CAAAA,OAAAA,CAAAA,GAAAA,GAAMgQ,YAAY,GAAlBhQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAoB0Q,KAAK,GAAzB1Q,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA2BkM,MAAM,EAAGlM,GAAMgQ,YAAY,CAACU,KAAK,CAACH,IAAI,CAAC,MAAQ,eAIzF,GAAAlQ,EAAAC,IAAA,EAAC4P,EAAAA,CAAOA,CAAAA,WACN,GAAA7P,EAAAG,GAAA,EAAC2P,EAAAA,EAAcA,CAAAA,CAACzP,QAAO,YACrB,GAAAL,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAW,kBAAsHiO,MAAA,CAApGjP,CAAAA,OAAAA,CAAAA,GAAAA,GAAMgQ,YAAY,GAAlBhQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAoB4Q,KAAK,GAAzB5Q,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA2BkM,MAAM,EAAG,qCAAuC,mCAC3G,GAAA7L,EAAAG,GAAA,EAACqQ,EAAAA,CAAKA,CAAAA,CAAC7P,UAAU,gBAGrB,GAAAX,EAAAG,GAAA,EAAC8P,EAAAA,EAAcA,CAAAA,UACb,GAAAjQ,EAAAC,IAAA,EAACqP,IAAAA,WAAE,UAAQ3P,CAAAA,OAAAA,CAAAA,GAAAA,GAAMgQ,YAAY,GAAlBhQ,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAoB4Q,KAAK,GAAzB5Q,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA2BkM,MAAM,EAAGlM,GAAMgQ,YAAY,CAACY,KAAK,CAACL,IAAI,CAAC,MAAQ,uBAQ/F,GAAAlQ,EAAAG,GAAA,EAAC2O,EAAAA,EAASA,CAAAA,CACRC,QAASxB,GAAUwB,OAAO,CAC1B1L,KAAO,WACP2L,OAAQ,OAAC,CAAEC,MAAAA,CAAK,CAAO,CAAAzP,EAIrB,OAHKyP,EAAMpP,KAAK,EACdoP,CAAAA,EAAMpP,KAAK,CAAG,IAGd,GAAAG,EAAAC,IAAA,EAACiP,EAAAA,EAAQA,CAAAA,WACP,GAAAlP,EAAAG,GAAA,EAACgP,EAAAA,EAASA,CAAAA,UAAC,aACX,GAAAnP,EAAAG,GAAA,EAACiP,EAAAA,EAAWA,CAAAA,UACV,GAAApP,EAAAC,IAAA,EAACwQ,EAAAA,EAAMA,CAAAA,CAACC,cAAe,IACrBzB,EAAM9N,QAAQ,CAACtB,EACjB,YACE,GAAAG,EAAAG,GAAA,EAACwQ,EAAAA,EAAaA,CAAAA,UACZ,GAAA3Q,EAAAG,GAAA,EAACyQ,EAAAA,EAAWA,CAAAA,CAACjQ,UAAU,aAAauD,YAAa+K,EAAMpP,KAAK,EAAK,wBAEnE,GAAAG,EAAAG,GAAA,EAAC0Q,EAAAA,EAAaA,CAAAA,UAEVnO,GAAW4B,GAAG,CAAC,GACb,GAAAtE,EAAAG,GAAA,EAAC2Q,EAAAA,EAAUA,CAAAA,CAACnQ,UAAU,aAA4Bd,MAAOgG,WACtDA,GADqCA,WAQlD,GAAA7F,EAAAG,GAAA,EAACkP,EAAAA,EAAWA,CAAAA,CAAAA,KAGlB,IAGF,GAAArP,EAAAG,GAAA,EAAC2O,EAAAA,EAASA,CAAAA,CACRC,QAASxB,GAAUwB,OAAO,CAC1B1L,KAAO,cACP2L,OAAQ,QAYSC,KAZR,CAAEA,MAAAA,CAAK,CAAO,CAAAzP,EAIrB,OAHKyP,EAAMpP,KAAK,EACdoP,CAAAA,EAAMpP,KAAK,CAAG,IAGd,GAAAG,EAAAC,IAAA,EAACiP,EAAAA,EAAQA,CAAAA,WACP,GAAAlP,EAAAG,GAAA,EAACgP,EAAAA,EAASA,CAAAA,UAAC,gBACX,GAAAnP,EAAAG,GAAA,EAACiP,EAAAA,EAAWA,CAAAA,UACV,GAAApP,EAAAG,GAAA,EAAC4Q,EAAAA,CAAQA,CAAAA,CACPC,KAAM,EACNrQ,UAAU,cACT,GAAGsO,CAAK,CACTpP,MAAOoP,OAAAA,CAAAA,EAAAA,EAAMpP,KAAK,GAAXoP,KAAAA,IAAAA,EAAAA,EAAe,OAG1B,GAAAjP,EAAAG,GAAA,EAACkP,EAAAA,EAAWA,CAAAA,CAAAA,KAGlB,IAEF,GAAArP,EAAAG,GAAA,EAAC2O,EAAAA,EAASA,CAAAA,CACRC,QAASxB,GAAUwB,OAAO,CAC1B1L,KAAO,eACP2L,OAAQ,QAYSC,KAZR,CAAEA,MAAAA,CAAK,CAAO,CAAAzP,EAIrB,OAHKyP,EAAMpP,KAAK,EACdoP,CAAAA,EAAMpP,KAAK,CAAG,IAGd,GAAAG,EAAAC,IAAA,EAACiP,EAAAA,EAAQA,CAAAA,WACP,GAAAlP,EAAAG,GAAA,EAACgP,EAAAA,EAASA,CAAAA,UAAC,iBACX,GAAAnP,EAAAG,GAAA,EAACiP,EAAAA,EAAWA,CAAAA,UACV,GAAApP,EAAAG,GAAA,EAAC4Q,EAAAA,CAAQA,CAAAA,CACPC,KAAM,EACNrQ,UAAU,cACT,GAAGsO,CAAK,CACTpP,MAAOoP,OAAAA,CAAAA,EAAAA,EAAMpP,KAAK,GAAXoP,KAAAA,IAAAA,EAAAA,EAAe,OAG1B,GAAAjP,EAAAG,GAAA,EAACkP,EAAAA,EAAWA,CAAAA,CAAAA,KAGlB,IAEF,GAAArP,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,+CACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oBACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,uBAAc,qBAC7B,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,yCAAgC,8DAE7ChB,GAAMsR,yBAAyB,EAC7B,GAAAjR,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,yCACb,GAAAX,EAAAG,GAAA,EAAC+Q,GAAAA,CAAQA,CAAAA,UAAEvR,GAAMsR,yBAAyB,QAKlD,GAAAjR,EAAAC,IAAA,EAACsD,EAAAA,EAAOA,CAAAA,WACN,GAAAvD,EAAAG,GAAA,EAACwD,EAAAA,EAAcA,CAAAA,CAACtD,QAAO,YACrB,GAAAL,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CACLG,QAAQ,UACRmD,KAAK,WACLjD,UAAU,2CAETe,CAAAA,OAAAA,CAAAA,GAAAA,GAAUyB,IAAI,CAAC,GAAYC,EAAEC,IAAI,GAAK8C,GAAAA,GAAtCzE,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAuD2B,IAAI,GAAI,qBAChE,GAAArD,EAAAG,GAAA,EAAC2D,EAAAA,CAAcA,CAAAA,CAACnD,UAAU,0CAG9B,GAAAX,EAAAG,GAAA,EAAC4D,EAAAA,EAAcA,CAAAA,CAACpD,UAAU,+BACxB,GAAAX,EAAAC,IAAA,EAAC+D,EAAAA,EAAOA,CAAAA,WACN,GAAAhE,EAAAG,GAAA,EAAC8D,EAAAA,EAAYA,CAAAA,CAACC,YAAY,wBAC1B,GAAAlE,EAAAC,IAAA,EAACkE,EAAAA,EAAWA,CAAAA,WACV,GAAAnE,EAAAG,GAAA,EAACiE,EAAAA,EAAYA,CAAAA,UAAC,wBACd,GAAApE,EAAAG,GAAA,EAACkE,EAAAA,EAAYA,CAAAA,UACV3C,GAAU4C,GAAG,CAAC,GACb,GAAAtE,EAAAC,IAAA,EAACsE,EAAAA,EAAWA,CAAAA,CAEVC,SAAU,KACRoE,GAAkBnE,EAASpB,IAAI,CACjC,YAEA,GAAArD,EAAAG,GAAA,EAACyE,EAAAA,CAAKA,CAAAA,CACJjE,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EACT,eACAsB,KAAmB1B,EAASpB,IAAI,CAAG,cAAgB,eAGvD,GAAArD,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,0BACb,GAAAX,EAAAG,GAAA,EAAC2E,OAAAA,UAAML,EAASpB,IAAI,GACnBoB,EAASM,SAAS,EACjB,GAAA/E,EAAAG,GAAA,EAAC2E,OAAAA,CAAKnE,UAAU,yCAAgC,gCAd/C8D,EAASjE,EAAE,mBA0B/BwG,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAemK,WAAW,GAA1BnK,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA4BoK,UAAU,GACrC,GAAApR,EAAAG,GAAA,EAAC8E,EAAAA,EAAIA,CAAAA,CAACtE,UAAU,0BACd,GAAAX,EAAAC,IAAA,EAACoR,EAAAA,EAAWA,CAAAA,WACV,GAAArR,EAAAG,GAAA,EAAC+E,EAAAA,EAAUA,CAAAA,CAACvE,UAAU,eACpB,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,8CACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,0BACb,GAAAX,EAAAG,GAAA,EAACmP,IAAAA,CAAE3O,UAAU,qBAAY,0BAGzB,GAAAX,EAAAG,GAAA,EAACmP,IAAAA,CAAE3O,UAAU,8CAAqC,uEAIpD,GAAAX,EAAAG,GAAA,EAACmR,EAAAA,EAAkBA,CAAAA,CAACjR,QAAO,YACzB,GAAAL,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CAACG,QAAQ,QAAQ8Q,KAAK,OAAO5Q,UAAU,mBAC5C,GAAAX,EAAAG,GAAA,EAAC2D,EAAAA,CAAcA,CAAAA,CAACnD,UAAU,WAC1B,GAAAX,EAAAG,GAAA,EAAC2E,OAAAA,CAAKnE,UAAU,mBAAU,qBAMlC,GAAAX,EAAAG,GAAA,EAACqR,EAAAA,EAAkBA,CAAAA,CAAC7Q,UAAU,gBAC5B,GAAAX,EAAAG,GAAA,EAACiF,EAAAA,EAAWA,CAAAA,CAACzE,UAAU,qBACrB,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,kDAEb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,sBACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,WACC,GAAAf,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,+BAAsB,mBACrC,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,yCAAgC,uCAGjD,GAAAX,EAAAC,IAAA,EAACwR,EAAAA,EAAYA,CAAAA,CAACC,MAAO3I,aACnB,GAAA/I,EAAAG,GAAA,EAACwR,EAAAA,EAAaA,CAAAA,CACZnR,GAAG,uBACHoR,iBAAkB,CAAC,QAAQ,CAC3BC,eAAgB,EAChBC,WAAW,GACXC,aAAc,CAACpS,GAAMa,EAAE,CAAC,CACxBwR,UAAW,IACLjG,EAAKF,MAAM,CAAG,GAChB7C,GAAkB+C,CAAI,CAAC,EAAE,CAE7B,IAEDhD,IACC,GAAA/I,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,gDACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,8CAAqC,aACpD,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,6BACb,GAAAX,EAAAG,GAAA,EAAC8R,EAAAA,CAAWA,CAAAA,CACVtS,MAAO,CAAE,GAAGA,EAAK,CAAEoJ,eAAAA,EAAe,EAClCmJ,OAAO,qBASnB,GAAAlS,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,sBACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,WACC,GAAAf,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,+BAAsB,yBACrC,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,yCAAgC,0CAGjD,GAAAX,EAAAC,IAAA,EAACwR,EAAAA,EAAYA,CAAAA,CAACC,MAAOzI,aACnB,GAAAjJ,EAAAG,GAAA,EAACwR,EAAAA,EAAaA,CAAAA,CACZnR,GAAG,6BACHoR,iBAAkB,CAAC,QAAQ,CAC3BC,eAAgB,EAChBC,WAAW,GACXC,aAAc,CAACpS,GAAMa,EAAE,CAAC,CACxBwR,UAAW,IACLjG,EAAKF,MAAM,CAAG,GAChB3C,GAAwB6C,CAAI,CAAC,EAAE,CAEnC,IAED9C,IACC,GAAAjJ,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,gDACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,8CAAqC,aACpD,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,6BACb,GAAAX,EAAAG,GAAA,EAAC8R,EAAAA,CAAWA,CAAAA,CACVtS,MAAO,CAAE,GAAGA,EAAK,CAAEsJ,qBAAAA,EAAqB,EACxCiJ,OAAO,qCAc/B,GAAAlS,EAAAC,IAAA,EAAAD,EAAAmS,QAAA,YACE,GAAAnS,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,oCAA2B,0GAG1C,GAAAX,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CACLK,UAAU,OACVc,QAAS,cAUW2Q,EAAAA,EAAAA,EATlB1N,QAAQC,GAAG,CAAC,QAAShF,IACrB,IAAMyS,EAAS,MAAMtE,GAAmB,CACtCpM,UAAW,CACTkL,MAAO,cACPxF,KAAMA,GAAK5G,EAAE,CACbb,MAAOA,GAAMa,EAAE,CAEnB,GACAkE,QAAQC,GAAG,CAAC,SAAUyN,GACtB,IAAMC,EAAYD,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAQjI,IAAI,GAAZiI,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAcE,uBAAuB,GAArCF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAuCG,IAAI,GAA3CH,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA6C5R,EAAE,CACjE0G,GAAOwE,IAAI,CACT,SAAqB2G,MAAAA,CAAZ1S,GAAMa,EAAE,CAAC,KAAaoO,MAAA,CAAVyD,GAEzB,EACA1Q,KAAM,SACNlB,QAAS,mBAAW,8BASlC,GAAAT,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,eACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCACb,GAAAX,EAAAG,GAAA,EAAC2O,EAAAA,EAASA,CAAAA,CACRC,QAASxB,GAAUwB,OAAO,CAC1B1L,KAAK,SACL2L,OAAQ,OAAC,CAAEC,MAAAA,CAAK,CAAE,CAAAzP,QAChB,GAAAQ,EAAAC,IAAA,EAACiP,EAAAA,EAAQA,CAAAA,CAACvO,UAAU,6EAClB,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,wBACb,GAAAX,EAAAG,GAAA,EAACgP,EAAAA,EAASA,CAAAA,CAACxO,UAAU,qBAAY,0BAGjC,GAAAX,EAAAG,GAAA,EAACqS,EAAAA,EAAeA,CAAAA,UAAC,mFAKnB,GAAAxS,EAAAG,GAAA,EAACiP,EAAAA,EAAWA,CAAAA,UACV,GAAApP,EAAAG,GAAA,EAACsS,EAAAA,CAAMA,CAAAA,CACLC,QAASzD,EAAMpP,KAAK,CACpB8S,gBAAiB1D,EAAM9N,QAAQ,WAOzC,GAAAnB,EAAAG,GAAA,EAAC8E,EAAAA,EAAIA,CAAAA,CAACtE,UAAU,0BACd,GAAAX,EAAAC,IAAA,EAACoR,EAAAA,EAAWA,CAAAA,WACV,GAAArR,EAAAG,GAAA,EAAC+E,EAAAA,EAAUA,CAAAA,CAACvE,UAAU,eACpB,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,8CACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,0BACb,GAAAX,EAAAG,GAAA,EAACmP,IAAAA,CAAE3O,UAAU,qBAAY,mBAGzB,GAAAX,EAAAG,GAAA,EAACmP,IAAAA,CAAE3O,UAAU,8CAAqC,qCAIpD,GAAAX,EAAAG,GAAA,EAACmR,EAAAA,EAAkBA,CAAAA,CAACjR,QAAO,YACzB,GAAAL,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CAACG,QAAQ,QAAQ8Q,KAAK,OAAO5Q,UAAU,mBAC5C,GAAAX,EAAAG,GAAA,EAAC2D,EAAAA,CAAcA,CAAAA,CAACnD,UAAU,WAC1B,GAAAX,EAAAG,GAAA,EAAC2E,OAAAA,CAAKnE,UAAU,mBAAU,qBAMlC,GAAAX,EAAAG,GAAA,EAACqR,EAAAA,EAAkBA,CAAAA,CAAC7Q,UAAU,gBAC5B,GAAAX,EAAAG,GAAA,EAACiF,EAAAA,EAAWA,CAAAA,CAACzE,UAAU,qBACrB,GAAAX,EAAAG,GAAA,EAACyS,EAAAA,CAAWA,CAAAA,CACVC,kBAAmBlT,GAAM0J,WAAW,CACpCyJ,aAAY,OAAEnT,CAAAA,GAAAA,GAAM4J,IAAI,GAAV5J,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAY2J,KAAK,CAC/ByJ,aAAY,OAAEpT,CAAAA,GAAAA,GAAM4J,IAAI,GAAV5J,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAY6J,KAAK,CAE/BrI,SAAU,CAACkI,EAAaC,EAAOE,KAC7BJ,GAAQ,CACNC,YAAAA,EACAC,MAAAA,EACAE,MAAAA,CAEF,EACF,aAOV,GAAAxJ,EAAAG,GAAA,EAAC8E,EAAAA,EAAIA,CAAAA,CAACtE,UAAU,0BACd,GAAAX,EAAAC,IAAA,EAACoR,EAAAA,EAAWA,CAAAA,WACV,GAAArR,EAAAG,GAAA,EAAC+E,EAAAA,EAAUA,CAAAA,CAACvE,UAAU,eACpB,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,8CACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,0BACb,GAAAX,EAAAG,GAAA,EAACmP,IAAAA,CAAE3O,UAAU,qBAAY,qBAGzB,GAAAX,EAAAC,IAAA,EAACqP,IAAAA,CAAE3O,UAAU,+CAAqC,mDACCuK,GAAaW,MAAM,CAAC,UAGzE,GAAA7L,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCACb,GAAAX,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CACLqB,KAAK,SACLlB,QAAQ,UACR8Q,KAAK,KACL9P,QAAS,IAAM8G,GAAqB,cAEpC,GAAAvI,EAAAG,GAAA,EAAC6S,EAAAA,CAAIA,CAAAA,CAACrS,UAAU,iBAAiB,gBAGnC,GAAAX,EAAAG,GAAA,EAACmR,EAAAA,EAAkBA,CAAAA,CAACjR,QAAO,YACzB,GAAAL,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CAACG,QAAQ,QAAQ8Q,KAAK,OAAO5Q,UAAU,mBAC5C,GAAAX,EAAAG,GAAA,EAAC2D,EAAAA,CAAcA,CAAAA,CAACnD,UAAU,WAC1B,GAAAX,EAAAG,GAAA,EAAC2E,OAAAA,CAAKnE,UAAU,mBAAU,wBAOpC,GAAAX,EAAAG,GAAA,EAACqR,EAAAA,EAAkBA,CAAAA,CAAC7Q,UAAU,gBAC5B,GAAAX,EAAAG,GAAA,EAACiF,EAAAA,EAAWA,CAAAA,CAACzE,UAAU,qBACpBiK,GACC,GAAA5K,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,yCAAgC,uBAG7CuK,IAAAA,GAAaW,MAAM,CACrB,GAAA7L,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,+DACb,GAAAX,EAAAG,GAAA,EAACmP,IAAAA,CAAE3O,UAAU,8CAAqC,0CAGlD,GAAAX,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CACLqB,KAAK,SACLlB,QAAQ,UACR8Q,KAAK,KACL9P,QAAS,IAAM8G,GAAqB,cAEpC,GAAAvI,EAAAG,GAAA,EAAC6S,EAAAA,CAAIA,CAAAA,CAACrS,UAAU,iBAAiB,4BAKrC,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,sBACZuK,GAAa5G,GAAG,CAAC,GAChB,GAAAtE,EAAAG,GAAA,EAAC8S,GAAAA,CAAUA,CAAAA,CAETC,OAAQA,EACR9L,KAAMA,GACN+L,SAAUtI,IAHLqI,EAAO1S,EAAE,cAuI9B,GAAAR,EAAAC,IAAA,EAACgF,EAAAA,EAAIA,CAAAA,WACH,GAAAjF,EAAAC,IAAA,EAACiF,EAAAA,EAAUA,CAAAA,WACT,GAAAlF,EAAAC,IAAA,EAACkF,EAAAA,EAASA,CAAAA,CAACxE,UAAU,oCAA0B,QAE5CyJ,IAAgB,GAAApK,EAAAG,GAAA,EAACyB,EAAAA,CAAOA,CAAAA,CAACjB,UAAU,eAEtC,GAAAX,EAAAG,GAAA,EAACiT,EAAAA,EAAeA,CAAAA,UACb5L,GAAaqE,MAAM,CAAG,EACrB,GAA8BrE,MAAAA,CAA3BA,GAAaqE,MAAM,CAAC,SAA4C+C,MAAA,CAArCpH,IAAAA,GAAaqE,MAAM,CAAS,GAAK,IAAI,2BAEnE,uCAIN,GAAA7L,EAAAG,GAAA,EAACiF,EAAAA,EAAWA,CAAAA,UACV,GAAApF,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCAEb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,sBACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,mCACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,4BACb,GAAAX,EAAAG,GAAA,EAACkT,EAAAA,CAAMA,CAAAA,CAAC1S,UAAU,qFAClB,GAAAX,EAAAG,GAAA,EAACe,EAAAA,CAAKA,CAAAA,CACJgD,YAAY,yCACZrE,MAAOgI,GACP1G,SAAU,GAAO2G,GAAc1G,EAAEC,MAAM,CAACxB,KAAK,EAC7Cc,UAAU,gBAEXkH,IACC,GAAA7H,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CACLG,QAAQ,QACR8Q,KAAK,KACL5Q,UAAU,kEACVc,QAAS,IAAMqG,GAAc,aAE7B,GAAA9H,EAAAG,GAAA,EAACmT,EAAAA,CAACA,CAAAA,CAAC3S,UAAU,mBAMrB,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCACb,GAAAX,EAAAC,IAAA,EAACwQ,EAAAA,EAAMA,CAAAA,CAAC5Q,MAAOkI,GAAkB2I,cAAe1I,aAC9C,GAAAhI,EAAAG,GAAA,EAACwQ,EAAAA,EAAaA,CAAAA,CAAChQ,UAAU,qBACvB,GAAAX,EAAAG,GAAA,EAACyQ,EAAAA,EAAWA,CAAAA,CAAC1M,YAAY,yBAE3B,GAAAlE,EAAAC,IAAA,EAAC4Q,EAAAA,EAAaA,CAAAA,WACZ,GAAA7Q,EAAAG,GAAA,EAAC2Q,EAAAA,EAAUA,CAAAA,CAACjR,MAAM,eAAM,mBACvB8L,GAAoBrH,GAAG,CAAC,GACvB,GAAAtE,EAAAG,GAAA,EAAC2Q,EAAAA,EAAUA,CAAAA,CAAgBjR,MAAOgG,EAAUlF,UAAU,sBACnDkF,GADcA,UAOrBgC,CAAAA,IAAcE,QAAAA,EAAqB,GACnC,GAAA/H,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CAACG,QAAQ,UAAUgB,QAASuK,aACjC,GAAAhM,EAAAG,GAAA,EAACmT,EAAAA,CAACA,CAAAA,CAAC3S,UAAU,YACb,GAAAX,EAAAG,GAAA,EAAC2E,OAAAA,CAAKnE,UAAU,mBAAU,qBAM9B,GAAAX,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACqB,KAAM,SAAUlB,QAAQ,UAAUgB,QAAS,KACjD2G,GAAuB,IAAIC,IAC7B,WAAG,eAGH,GAAArI,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACqB,KAAM,SAAUlB,QAAQ,UAAUgB,QAAS,KACjD2G,GAAuB,IAAIC,IAAIyD,OAAOC,IAAI,CAACR,KAC7C,WAAG,oBAIL,GAAAvL,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,kDACZoG,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAWW,KAAK,GAAhBX,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAkBwM,KAAK,GAAI,EAAE,QAAOxM,IAAAA,CAAAA,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,OAAAA,CAAAA,GAAAA,GAAWW,KAAK,GAAhBX,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAkBwM,KAAK,GAAI,GAAW,IAAM,GAChFtL,IAAmBF,QAAAA,GAA6B,SAAW,aAAa,UAI7E,GAAA/H,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,sBAEZoH,QAAAA,GAEC+D,OAAO0H,OAAO,CAACjI,IAAiBjH,GAAG,CAAC,OAAC,CAAC+H,EAAcoH,EAAc,CAAAjU,EAC1DkU,EAAoBD,EAAcpI,MAAM,CAACC,GAC7C9D,GAAamM,IAAI,CAACC,GAAMA,EAAGpT,EAAE,GAAK8K,EAAK9K,EAAE,GACzCqL,MAAM,CAEFgI,EAAc1L,GAAoBiE,GAAG,CAACC,GAE5C,MACE,GAAArM,EAAAC,IAAA,EAACoR,EAAAA,EAAWA,CAAAA,CAAoB7N,KAAM,CAACqQ,EAAapQ,aAAc,IAAMwI,GAAuBI,aAC7F,GAAArM,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,gFACb,GAAAX,EAAAG,GAAA,EAACmR,EAAAA,EAAkBA,CAAAA,CAACjR,QAAO,YACzB,GAAAL,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CAACG,QAAQ,QAAQE,UAAU,2DAChC,GAAAX,EAAAG,GAAA,EAAC2D,EAAAA,CAAcA,CAAAA,CAACnD,UAAU,YAC1B,GAAAX,EAAAG,GAAA,EAAC2E,OAAAA,CAAKnE,UAAU,sBAAc0L,IAC9B,GAAArM,EAAAC,IAAA,EAAC6T,EAAAA,CAAKA,CAAAA,CAACrT,QAAQ,YAAYE,UAAU,oBAClC+S,EAAkB,IAAED,EAAc5H,MAAM,SAK/C,GAAA7L,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCACb,GAAAX,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CACLG,QAAQ,UACR8Q,KAAK,KACL9P,QAAS,KAEP,IAAMsS,EAAeN,EAClBpI,MAAM,CAACC,GAAQ,CAAC9D,GAAamM,IAAI,CAACC,GAAMA,EAAGpT,EAAE,GAAK8K,EAAK9K,EAAE,GACzD8D,GAAG,CAACgH,QAGKA,QAHI,CACZ9K,GAAI8K,EAAK9K,EAAE,CACXmB,KAAM2J,EAAK3J,IAAI,CACfqS,OAAQ1I,CAAAA,OAAAA,CAAAA,EAAAA,EAAK0I,MAAM,GAAX1I,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAahH,GAAG,CAAC1B,GAAe,EACtCS,KAAMT,EAAWS,IAAI,CACrBoB,SAAU,EACZ,MAAO,EAAE,IAEbgD,GAAgB,IAAID,MAAiBuM,EAAa,CACpD,EACAxT,SAAUmT,IAAsBD,EAAc5H,MAAM,UACrD,eAID,GAAA7L,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CACLG,QAAQ,UACR8Q,KAAK,KACL9P,QAAS,KAEP,IAAMwS,EAAkBR,EAAcnP,GAAG,CAAC4P,GAAKA,EAAE1T,EAAE,EAEnDiH,GADiBD,GAAa6D,MAAM,CAACuI,GAAM,CAACK,EAAgBE,QAAQ,CAACP,EAAGpT,EAAE,GAE5E,EACAD,SAAUmT,IAAAA,WACX,sBAML,GAAA1T,EAAAG,GAAA,EAACqR,EAAAA,EAAkBA,CAAAA,CAAC7Q,UAAU,gBAC5B,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,0BACZ8S,EAAcnP,GAAG,CAAC,QAGWgH,EACF8I,EAH1B,IAAMC,EAAY7M,GAAamM,IAAI,CAACC,GAAMA,EAAGpT,EAAE,GAAK8K,EAAK9K,EAAE,EACrD4T,EAAa5M,GAAarE,IAAI,CAACyQ,GAAMA,EAAGpT,EAAE,GAAK8K,EAAK9K,EAAE,EACtD8T,EAAsBhJ,CAAAA,OAAAA,CAAAA,EAAAA,EAAK0I,MAAM,GAAX1I,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAaO,MAAM,GAAI,EAC7C0I,EAAoBH,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAYJ,MAAM,GAAlBI,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoB/I,MAAM,CAACmJ,GAAKA,EAAE/P,QAAQ,EAAI+P,KAAAA,EAAE/P,QAAQ,CAACgQ,IAAI,IAAW5I,MAAM,GAAI,EACtG6I,EAAkBL,GAAaC,EAAsB,GAAKC,EAAoBD,EAEpF,MACE,GAAAtU,EAAAG,GAAA,EAACY,MAAAA,CAAmBJ,UAAU,iCAC5B,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,8CACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,qCACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,mBACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,uBAAe2K,MAAAA,EAAAA,KAAAA,EAAAA,EAAMjI,IAAI,GACxC,GAAArD,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCAEX2T,EAAsB,GAAKD,GAAa,GAAArU,EAAAC,IAAA,EAAAD,EAAAmS,QAAA,YACtC,GAAAnS,EAAAC,IAAA,EAAC6T,EAAAA,CAAKA,CAAAA,CAACrT,QAAQ,YAAYE,UAAU,oBAClC4T,EAAkB,IAAED,KAEtBI,GACC,GAAA1U,EAAAG,GAAA,EAACwU,EAAAA,CAAWA,CAAAA,CAAChU,UAAU,gCAI7B,GAAAX,EAAAG,GAAA,EAAC2T,EAAAA,CAAKA,CAAAA,CAACrT,QAAS,mBAAY6K,MAAAA,EAAAA,KAAAA,EAAAA,EAAMzF,QAAQ,SAG9C,GAAA7F,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,2DACZ2K,MAAAA,EAAAA,KAAAA,EAAAA,EAAMhI,WAAW,MAGtB,GAAAtD,EAAAC,IAAA,EAAC2U,EAAAA,EAAKA,CAAAA,CAACpR,KAAMmE,KAAc2D,EAAK9K,EAAE,CAAEiD,aAAc,KAC5CkE,KAAc2D,EAAK9K,EAAE,CACvBoH,GAAa,IAEbA,GAAa0D,EAAK9K,EAAE,CAExB,YAEK8T,EAAsB,GAAK,CAACD,EAAa,GAAArU,EAAAG,GAAA,EAAC0U,EAAAA,EAAYA,CAAAA,CAACxU,QAAO,YAC7D,GAAAL,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACG,QAAQ,QAAQ8Q,KAAK,cAC3B,GAAAvR,EAAAG,GAAA,EAAC2U,EAAAA,CAAQA,CAAAA,CAACnU,UAAU,gBAEN,GAAAX,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACqB,KAAK,SAASpB,SAAU,GAAME,QAAQ,QAAQ8Q,KAAK,cAC3E,GAAAvR,EAAAG,GAAA,EAAC2U,EAAAA,CAAQA,CAAAA,CAACnU,UAAU,cAIxB,GAAAX,EAAAG,GAAA,EAAC0U,EAAAA,EAAYA,CAAAA,CAACxU,QAAO,YACnB,GAAAL,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACK,UAAU,OAAOF,QAAQ,QAAQ8Q,KAAK,cAC5C,GAAAvR,EAAAG,GAAA,EAAC4U,EAAAA,CAAIA,CAAAA,CAACpU,UAAU,gBAGpB,GAAAX,EAAAC,IAAA,EAAC+U,EAAAA,EAAYA,CAAAA,CAACrU,UAAU,mCACtB,GAAAX,EAAAC,IAAA,EAACgV,EAAAA,EAAWA,CAAAA,WACV,GAAAjV,EAAAG,GAAA,EAAC+U,EAAAA,EAAUA,CAAAA,UAAE5J,MAAAA,EAAAA,KAAAA,EAAAA,EAAMjI,IAAI,GACvB,GAAArD,EAAAG,GAAA,EAACgV,EAAAA,EAAgBA,CAAAA,UACd7J,MAAAA,EAAAA,KAAAA,EAAAA,EAAMhI,WAAW,MAGtB,GAAAtD,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,gBACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,qBAEZ2K,EAAK0I,MAAM,EAAI1I,EAAK0I,MAAM,CAACnI,MAAM,CAAG,GACnC,GAAA7L,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,sBACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,+BAAsB,6BACpC2K,EAAK0I,MAAM,CAAC1P,GAAG,CAAC,CAAC1B,EAAYwS,SACPhB,EAArB,IAAMvR,EAAeuR,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAYJ,MAAM,CAAC7Q,IAAI,CAACqR,GAAKA,EAAEnR,IAAI,GAAKT,EAAWS,IAAI,IAAvD+Q,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0D3P,QAAQ,GAAI,GAC3F,MACE,GAAAzE,EAAAG,GAAA,EAACY,MAAAA,CAAsBJ,UAAU,qBAC9B0T,EACC,GAAArU,EAAAG,GAAA,EAACwC,GAAAA,CACCC,WAAYA,EACZC,aAAcA,EACdnB,UAAWA,GACXoB,iBAAkB,IAChB,IAAMuS,EAAU7N,GAAalD,GAAG,CAACsP,GAC/B,EAAOpT,EAAE,GAAK8K,EAAK9K,EAAE,CACZ,CACL,GAAGoT,CAAE,CACLI,OAAQJ,EAAGI,MAAM,CAAC1P,GAAG,CAACkQ,GACpBA,EAAEnR,IAAI,GAAKT,EAAWS,IAAI,CACtB,CAAE,GAAGmR,CAAC,CAAE/P,SAAU6Q,CAAa,EAC/Bd,EAER,EAEKZ,GAETlP,QAAQC,GAAG,CAAC,UAAW0Q,GACvB5N,GAAgB4N,EAClB,IAGF,GAAArV,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,8DAAqD,mCAzB9DyU,EA+Bd,mBAQd,GAAApV,EAAAG,GAAA,EAACsS,EAAAA,CAAMA,CAAAA,CACLC,QAAS2B,EACT1B,gBAAiB,IACf,IAAI0C,EAAU,IAAI7N,GAAa,CAC/B,GAAI3H,EAAO,KAKCyL,EAMNA,EADJ+J,EAAU,IAAI7N,GARQ,CACpBhH,GAAI8K,EAAK9K,EAAE,CACXmB,KAAM2J,EAAK3J,IAAI,CACfqS,OAAQ1I,CAAAA,OAAAA,CAAAA,EAAAA,EAAK0I,MAAM,GAAX1I,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAahH,GAAG,CAAC1B,GAAe,EACtCS,KAAMT,EAAWS,IAAI,CACrBoB,SAAU,EACZ,MAAO,EAAE,EAE+B,CACtC6G,CAAAA,OAAAA,CAAAA,EAAAA,EAAK0I,MAAM,GAAX1I,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAaO,MAAM,EAAG,GACxBjE,GAAa0D,EAAK9K,EAAE,CAExB,MACE6U,EAAU7N,GAAa6D,MAAM,CAAC6I,GAAKA,EAAE1T,EAAE,GAAK8K,EAAK9K,EAAE,EAErDiH,GAAgB4N,EAClB,QA3HI/J,MAAAA,EAAAA,KAAAA,EAAAA,EAAM9K,EAAE,CAgItB,SA7LY6L,EAkMtB,GAGA,GAAArM,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,qBACZyK,GAAc9G,GAAG,CAAC,QAGWgH,EACF8I,EAH1B,IAAMC,EAAY7M,GAAamM,IAAI,CAACC,GAAMA,EAAGpT,EAAE,GAAK8K,EAAK9K,EAAE,EACrD4T,EAAa5M,GAAarE,IAAI,CAACyQ,GAAMA,EAAGpT,EAAE,GAAK8K,EAAK9K,EAAE,EACtD8T,EAAsBhJ,CAAAA,OAAAA,CAAAA,EAAAA,EAAK0I,MAAM,GAAX1I,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAaO,MAAM,GAAI,EAC7C0I,EAAoBH,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAYJ,MAAM,GAAlBI,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoB/I,MAAM,CAACmJ,GAAKA,EAAE/P,QAAQ,EAAI+P,KAAAA,EAAE/P,QAAQ,CAACgQ,IAAI,IAAW5I,MAAM,GAAI,EACtG6I,EAAkBL,GAAaC,EAAsB,GAAKC,EAAoBD,EAEpF,MACE,GAAAtU,EAAAG,GAAA,EAACY,MAAAA,CAAmBJ,UAAU,iCAC5B,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,8CACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,qCACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,mBACb,GAAAX,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,uBAAe2K,MAAAA,EAAAA,KAAAA,EAAAA,EAAMjI,IAAI,GACxC,GAAArD,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,oCAEX2T,EAAsB,GAAKD,GAAa,GAAArU,EAAAC,IAAA,EAAAD,EAAAmS,QAAA,YACtC,GAAAnS,EAAAC,IAAA,EAAC6T,EAAAA,CAAKA,CAAAA,CAACrT,QAAQ,YAAYE,UAAU,oBAClC4T,EAAkB,IAAED,KAEtBI,GACC,GAAA1U,EAAAG,GAAA,EAACwU,EAAAA,CAAWA,CAAAA,CAAChU,UAAU,gCAI7B,GAAAX,EAAAG,GAAA,EAAC2T,EAAAA,CAAKA,CAAAA,CAACrT,QAAS,mBAAY6K,MAAAA,EAAAA,KAAAA,EAAAA,EAAMzF,QAAQ,SAG9C,GAAA7F,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,2DACZ2K,MAAAA,EAAAA,KAAAA,EAAAA,EAAMhI,WAAW,MAGtB,GAAAtD,EAAAC,IAAA,EAAC2U,EAAAA,EAAKA,CAAAA,CAACpR,KAAMmE,KAAc2D,EAAK9K,EAAE,CAAEiD,aAAc,KAC5CkE,KAAc2D,EAAK9K,EAAE,CACvBoH,GAAa,IAEbA,GAAa0D,EAAK9K,EAAE,CAExB,YAEK8T,EAAsB,GAAK,CAACD,EAAa,GAAArU,EAAAG,GAAA,EAAC0U,EAAAA,EAAYA,CAAAA,CAACxU,QAAO,YAC7D,GAAAL,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACG,QAAQ,QAAQ8Q,KAAK,cAC3B,GAAAvR,EAAAG,GAAA,EAAC2U,EAAAA,CAAQA,CAAAA,CAACnU,UAAU,gBAEN,GAAAX,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACqB,KAAK,SAASpB,SAAU,GAAME,QAAQ,QAAQ8Q,KAAK,cAC3E,GAAAvR,EAAAG,GAAA,EAAC2U,EAAAA,CAAQA,CAAAA,CAACnU,UAAU,cAIxB,GAAAX,EAAAG,GAAA,EAAC0U,EAAAA,EAAYA,CAAAA,CAACxU,QAAO,YACnB,GAAAL,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACK,UAAU,OAAOF,QAAQ,QAAQ8Q,KAAK,cAC5C,GAAAvR,EAAAG,GAAA,EAAC4U,EAAAA,CAAIA,CAAAA,CAACpU,UAAU,gBAGpB,GAAAX,EAAAC,IAAA,EAAC+U,EAAAA,EAAYA,CAAAA,CAACrU,UAAU,mCACtB,GAAAX,EAAAC,IAAA,EAACgV,EAAAA,EAAWA,CAAAA,WACV,GAAAjV,EAAAG,GAAA,EAAC+U,EAAAA,EAAUA,CAAAA,UAAE5J,MAAAA,EAAAA,KAAAA,EAAAA,EAAMjI,IAAI,GACvB,GAAArD,EAAAG,GAAA,EAACgV,EAAAA,EAAgBA,CAAAA,UACd7J,MAAAA,EAAAA,KAAAA,EAAAA,EAAMhI,WAAW,MAGtB,GAAAtD,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,gBACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,qBAEZ2K,EAAK0I,MAAM,EAAI1I,EAAK0I,MAAM,CAACnI,MAAM,CAAG,GACnC,GAAA7L,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,sBACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,+BAAsB,6BACpC2K,EAAK0I,MAAM,CAAC1P,GAAG,CAAC,CAAC1B,EAAYwS,SACPhB,EAArB,IAAMvR,EAAeuR,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAYJ,MAAM,CAAC7Q,IAAI,CAACqR,GAAKA,EAAEnR,IAAI,GAAKT,EAAWS,IAAI,IAAvD+Q,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0D3P,QAAQ,GAAI,GAC3F,MACE,GAAAzE,EAAAG,GAAA,EAACY,MAAAA,CAAsBJ,UAAU,qBAC9B0T,EACC,GAAArU,EAAAG,GAAA,EAACwC,GAAAA,CACCC,WAAYA,EACZC,aAAcA,EACdnB,UAAWA,GACXoB,iBAAkB,IAChB,IAAMuS,EAAU7N,GAAalD,GAAG,CAACsP,GAC/B,EAAOpT,EAAE,GAAK8K,EAAK9K,EAAE,CACZ,CACL,GAAGoT,CAAE,CACLI,OAAQJ,EAAGI,MAAM,CAAC1P,GAAG,CAACkQ,GACpBA,EAAEnR,IAAI,GAAKT,EAAWS,IAAI,CACtB,CAAE,GAAGmR,CAAC,CAAE/P,SAAU6Q,CAAa,EAC/Bd,EAER,EAEKZ,GAETlP,QAAQC,GAAG,CAAC,UAAW0Q,GACvB5N,GAAgB4N,EAClB,IAGF,GAAArV,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,8DAAqD,mCAzB9DyU,EA+Bd,mBAQd,GAAApV,EAAAG,GAAA,EAACsS,EAAAA,CAAMA,CAAAA,CACLC,QAAS2B,EACT1B,gBAAiB,IACf,IAAI0C,EAAU,IAAI7N,GAAa,CAC/B,GAAI3H,EAAO,KAKCyL,EAMNA,EADJ+J,EAAU,IAAI7N,GARQ,CACpBhH,GAAI8K,EAAK9K,EAAE,CACXmB,KAAM2J,EAAK3J,IAAI,CACfqS,OAAQ1I,CAAAA,OAAAA,CAAAA,EAAAA,EAAK0I,MAAM,GAAX1I,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAahH,GAAG,CAAC1B,GAAe,EACtCS,KAAMT,EAAWS,IAAI,CACrBoB,SAAU,EACZ,MAAO,EAAE,EAE+B,CACtC6G,CAAAA,OAAAA,CAAAA,EAAAA,EAAK0I,MAAM,GAAX1I,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAaO,MAAM,EAAG,GACxBjE,GAAa0D,EAAK9K,EAAE,CAExB,MACE6U,EAAU7N,GAAa6D,MAAM,CAAC6I,GAAKA,EAAE1T,EAAE,GAAK8K,EAAK9K,EAAE,EAErDiH,GAAgB4N,EAClB,QA3HI/J,MAAAA,EAAAA,KAAAA,EAAAA,EAAM9K,EAAE,CAgItB,KAKH4K,IAAAA,GAAcS,MAAM,EAAWhE,CAAAA,IAAcE,QAAAA,EAAqB,GACjE,GAAA/H,EAAAC,IAAA,EAACc,MAAAA,CAAIJ,UAAU,6BACb,GAAAX,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAU,iCAAwB,2CAGvC,GAAAX,EAAAG,GAAA,EAACG,EAAAA,CAAMA,CAAAA,CAACG,QAAQ,UAAU8Q,KAAK,KAAK5Q,UAAU,OAAOc,QAASuK,YAAa,wDAsB7G,GAAAhM,EAAAG,GAAA,EAACoV,GAAAA,CAAiBA,CAAAA,CAChB/R,KAAM8E,GACN7E,aAAc8E,GACdiN,UAAW3K,GACXzD,KAAMA,GACNqO,sBAAuB,CAAC9V,GAAMa,EAAE,CAAC,KAIzC,sJCjjDO,IAAMkV,EAAW,OAAC,CAAE/U,UAAAA,CAAS,CAAE,GAAGgV,EAAsB,CAAAnW,QAC7D,GAAAQ,EAAAG,GAAA,EAACY,MAAAA,CACCJ,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EACT,0EACAlE,GAED,GAAGgV,CAAK,IAMAC,EAAiB,OAAC,CAC7BjV,UAAAA,CAAS,CACT,GAAGgV,EACiB,CAAAnW,QACpB,GAAAQ,EAAAG,GAAA,EAACY,MAAAA,CACCJ,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EACT,mEACAlE,GAED,GAAGgV,CAAK,IAgDAE,EAAkB,OAAC,CAC9BlV,UAAAA,CAAS,CACT,GAAGgV,EACkB,CAAAnW,QACrB,GAAAQ,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,0BAA2BlE,GAAa,GAAGgV,CAAK,IASxDG,EAAiB,OAAC,CAC7BC,QAAAA,CAAO,CACPC,MAAAA,CAAK,CACLC,KAAMC,CAAI,CACVC,SAAAA,CAAQ,CACRxV,UAAAA,CAAS,CACT4Q,KAAAA,EAAO,IAAI,CACX9Q,QAAAA,EAAU,OAAO,CACjB,GAAGkV,EACiB,CAAAnW,EACdqP,EACJ,GAAA7O,EAAAC,IAAA,EAACK,EAAAA,CAAMA,CAAAA,CACLK,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EACT,yDACAlE,GAEF4Q,KAAMA,EACN5P,KAAK,SACLlB,QAASA,EACR,GAAGkV,CAAK,WAERO,EAAO,GAAAlW,EAAAG,GAAA,EAAC+V,EAAAA,CAAKvV,UAAU,WAAcwV,EACtC,GAAAnW,EAAAG,GAAA,EAAC2E,OAAAA,CAAKnE,UAAU,mBAAWqV,GAASD,cAIxC,EAEI,GAAA/V,EAAAG,GAAA,EAACuP,EAAAA,EAAeA,CAAAA,UACd,GAAA1P,EAAAC,IAAA,EAAC4P,EAAAA,CAAOA,CAAAA,WACN,GAAA7P,EAAAG,GAAA,EAAC2P,EAAAA,EAAcA,CAAAA,CAACzP,QAAO,YAAEwO,IACzB,GAAA7O,EAAAG,GAAA,EAAC8P,EAAAA,EAAcA,CAAAA,UACb,GAAAjQ,EAAAG,GAAA,EAACmP,IAAAA,UAAGyG,WAOPlH,CACT,EAIauH,EAAkB,OAAC,CAC9BzV,UAAAA,CAAS,CACT,GAAGgV,EACkB,CAAAnW,QACrB,GAAAQ,EAAAG,GAAA,EAACY,MAAAA,CAAIJ,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,2BAA4BlE,GAAa,GAAGgV,CAAK,8BC/H/D,SAAStQ,EAAY7F,CAM3B,KAN2B,CACxB8F,KAAAA,CAAI,CACJC,YAAAA,CAAW,CAId,CAN2B/F,EAOlB,CAAEmK,MAAAA,CAAK,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,IAElB,MACI,GAAA5J,EAAAC,IAAA,EAACC,EAAAA,EAAMA,CAAAA,WACH,GAAAF,EAAAG,GAAA,EAACC,EAAAA,EAAaA,CAAAA,CAACC,QAAO,YAClB,GAAAL,EAAAC,IAAA,EAAC4O,SAAAA,CAAOlO,UAAU,8GACd,GAAAX,EAAAC,IAAA,EAAC6E,OAAAA,CAAKnE,UAAU,kBACX2E,MAAAA,EAAAA,KAAAA,EAAAA,EAAM+Q,KAAK,CAAC,EAAG9Q,MAAAA,EAAAA,EAAe,KAC7BA,GAAeD,EAAKuG,MAAM,CAAGtG,EAAe,MAAQ,MAE1D,GAAAvF,EAAAC,IAAA,EAAC6E,OAAAA,CAAKnE,UAAU,qHACZ,GAAAX,EAAAG,GAAA,EAACmW,EAAAA,CAAQA,CAAAA,CAAC3V,UAAU,YAAY,kCAK5C,GAAAX,EAAAG,GAAA,EAACS,EAAAA,EAAaA,CAAAA,CAACD,UAAU,4DACrB,GAAAX,EAAAC,IAAA,EAACyV,EAAQA,WACL,GAAA1V,EAAAG,GAAA,EAACyV,EAAcA,UACX,GAAA5V,EAAAG,GAAA,EAAC0V,EAAeA,UACZ,GAAA7V,EAAAG,GAAA,EAAC2V,EAAcA,CAACG,KAAMpU,EAAAA,CAAQA,CAAEmU,MAAM,OAAOD,QAAQ,oBAAoBtU,QAAS,UAC9E,MAAMgL,UAAUC,SAAS,CAACC,SAAS,CAACrH,GACpCqE,EAAM,CAAEiD,MAAO,qBAAsB,EACzC,QAGR,GAAA5M,EAAAG,GAAA,EAACiW,EAAeA,UACZ,GAAApW,EAAAG,GAAA,EAAC+Q,EAAAA,CAAQA,CAAAA,UAAE5L,aAMnC,wEC/CA,IAAMiR,EAAe,OAAC,CAAE5W,MAAAA,CAAK,CAAEuS,OAAAA,CAAM,CAAEvR,UAAAA,CAAS,CAA+F,CAAAnB,EAEvI,CAAE2K,KAAMqM,CAAe,CAAE,CAAGnM,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,CACzCoM,SAAU,CAAC,mBAAoB,OAAO,CACtCC,QAAS,SAEAC,CADU,MAAMC,MAAM,qBACbC,IAAI,GAEtBC,UAAW,KACXzQ,QAAS,CAAC1G,EAAMoJ,cAAc,GAG1B,CAAEoB,KAAM4M,CAAqB,CAAE,CAAG1M,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,CAC/CoM,SAAU,CAAC,mBAAoB,aAAa,CAC5CC,QAAS,SAEAC,CADU,MAAMC,MAAM,2BACbC,IAAI,GAEtBC,UAAW,KACXzQ,QAAS,CAAC1G,EAAMsJ,oBAAoB,GAIhC,CAAEkB,KAAM6M,CAAc,CAAE,CAAG3M,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,CACxCoM,SAAU,CAAC,kBAAmB9W,EAAMoJ,cAAc,CAAC,CACnD2N,QAAS,UACP,GAAI,CAAC/W,EAAMoJ,cAAc,CAAE,OAAO,KAClC,IAAMkO,EAAM,MAAMC,CAAAA,EAAAA,EAAAA,EAAAA,EAAgBvX,EAAMoJ,cAAc,EAEtD,MAAO4N,CADU,MAAMC,MAAMK,EAAAA,EACbJ,IAAI,EACtB,EACAxQ,QAAS,CAAC,CAAC1G,EAAMoJ,cAAc,CAC/B+N,UAAW,GACb,GAEM,CAAE3M,KAAMgN,CAAoB,CAAE,CAAG9M,CAAAA,EAAAA,EAAAA,CAAAA,EAAS,CAC9CoM,SAAU,CAAC,kBAAmB9W,EAAMsJ,oBAAoB,CAAC,CACzDyN,QAAS,UACP,GAAI,CAAC/W,EAAMsJ,oBAAoB,CAAE,OAAO,KACxC,IAAMgO,EAAM,MAAMC,CAAAA,EAAAA,EAAAA,EAAAA,EAAgBvX,EAAMsJ,oBAAoB,EAE5D,MAAO0N,CADU,MAAMC,MAAMK,EAAAA,EACbJ,IAAI,EACtB,EACAxQ,QAAS,CAAC,CAAC1G,EAAMsJ,oBAAoB,CACrC6N,UAAW,GACb,GAsCM,CAAEM,KAAAA,CAAI,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,SAAAA,EAAUC,CAnCC,KAC1B,OAAQpF,GACN,IAAK,YAYL,IAAK,QAML,IAAK,QAML,QAvBE,MAAO,CACLqF,cAAeP,GAAkBR,EACjCgB,KAAM,GACNC,SAAU,EACZ,CACF,KAAK,YACH,MAAO,CACLF,cAAeJ,GAAwBJ,EACvCS,KAAM,GACNC,SAAU,EACZ,CAmBJ,CACF,MAIA,MACE,GAAAC,EAAAvX,GAAA,EAAAuX,EAAAvF,QAAA,WACE,GAAAuF,EAAAvX,GAAA,EAACY,MAAAA,CAAIJ,UAAU,YACb,GAAA+W,EAAAvX,GAAA,EAACY,MAAAA,CAAIJ,UAAWA,WAAYyW,OAIpC,CAEAO,CAAAA,EAAAC,CAAA,CAlGoB,OAAC,CAAEjY,MAAAA,CAAK,CAAEuS,OAAAA,CAAM,CAAEvR,UAAAA,CAAS,CAA+F,CAAAnB,EAC5I,MAAO,GAAAkY,EAAAvX,GAAA,EAACoW,EAAAA,CAAa5V,UAAWA,EAAWhB,MAAOA,EAAOuS,OAAQA,GACnE,+QCMA,IAAM5D,EAAOuJ,EAAAA,EAAYA,CASnBC,EAAmB7U,EAAAA,aAAmB,CAC1C,CAAC,GAGG6L,EAAY,OAGhB,CACA,GAAG6G,EACkC,CAAAnW,EACrC,MACE,GAAAkY,EAAAvX,GAAA,EAAC2X,EAAiBC,QAAQ,EAAClY,MAAO,CAAEwD,KAAMsS,EAAMtS,IAAI,WAClD,GAAAqU,EAAAvX,GAAA,EAAC6X,EAAAA,EAAUA,CAAAA,CAAE,GAAGrC,CAAK,IAG3B,EAEMsC,EAAe,KACnB,IAAMC,EAAejV,EAAAA,UAAgB,CAAC6U,GAChCK,EAAclV,EAAAA,UAAgB,CAACmV,GAC/B,CAAEC,cAAAA,CAAa,CAAEC,UAAAA,CAAS,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,IAE/BC,EAAaH,EAAcH,EAAa7U,IAAI,CAAEiV,GAEpD,GAAI,CAACJ,EACH,MAAM,MAAU,kDAGlB,GAAM,CAAE1X,GAAAA,CAAE,CAAE,CAAG2X,EAEf,MAAO,CACL3X,GAAAA,EACA6C,KAAM6U,EAAa7U,IAAI,CACvBoV,WAAY,GAAM7J,MAAA,CAAHpO,EAAG,cAClBkY,kBAAmB,GAAM9J,MAAA,CAAHpO,EAAG,0BACzBmY,cAAe,GAAM/J,MAAA,CAAHpO,EAAG,sBACrB,GAAGgY,CAAU,CAEjB,EAMMJ,EAAkBnV,EAAAA,aAAmB,CACzC,CAAC,GAGGiM,EAAWjM,EAAAA,UAAgB,CAG/B,CAAAzD,EAA0BoZ,QAAzB,CAAEjY,UAAAA,CAAS,CAAE,GAAGgV,EAAO,CAAAnW,EAClBgB,EAAKyC,EAAAA,KAAW,GAEtB,MACE,GAAAyU,EAAAvX,GAAA,EAACiY,EAAgBL,QAAQ,EAAClY,MAAO,CAAEW,GAAAA,CAAG,WACpC,GAAAkX,EAAAvX,GAAA,EAACY,MAAAA,CAAI6X,IAAKA,EAAKjY,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,YAAalE,GAAa,GAAGgV,CAAK,IAGrE,EACAzG,CAAAA,EAAS2J,WAAW,CAAG,WAEvB,IAAM1J,EAAYlM,EAAAA,UAAgB,CAGhC,CAAAzD,EAA0BoZ,QAAzB,CAAEjY,UAAAA,CAAS,CAAE,GAAGgV,EAAO,CAAAnW,EAClB,CAAEqN,MAAAA,CAAK,CAAE4L,WAAAA,CAAU,CAAE,CAAGR,IAE9B,MACE,GAAAP,EAAAvX,GAAA,EAACa,EAAAA,CAAKA,CAAAA,CACJ4X,IAAKA,EACLjY,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EAAGgI,GAAS,mBAAoBlM,GAC3CM,QAASwX,EACR,GAAG9C,CAAK,EAGf,EACAxG,CAAAA,EAAU0J,WAAW,CAAG,YAExB,IAAMzJ,EAAcnM,EAAAA,UAAgB,CAGlC,CAAAzD,EAAeoZ,QAAd,CAAE,GAAGjD,EAAO,CAAAnW,EACP,CAAEqN,MAAAA,CAAK,CAAE4L,WAAAA,CAAU,CAAEC,kBAAAA,CAAiB,CAAEC,cAAAA,CAAa,CAAE,CAC3DV,IAEF,MACE,GAAAP,EAAAvX,GAAA,EAAC2Y,EAAAA,EAAIA,CAAAA,CACHF,IAAKA,EACLpY,GAAIiY,EACJM,mBACE,EAEI,GAAwBJ,MAAAA,CAArBD,EAAkB,KAAiB9J,MAAA,CAAd+J,GADxB,GAAqB/J,MAAA,CAAlB8J,GAGTM,eAAc,CAAC,CAACnM,EACf,GAAG8I,CAAK,EAGf,EACAvG,CAAAA,EAAYyJ,WAAW,CAAG,cAE1B,IAAMrG,EAAkBvP,EAAAA,UAAgB,CAGtC,CAAAzD,EAA0BoZ,QAAzB,CAAEjY,UAAAA,CAAS,CAAE,GAAGgV,EAAO,CAAAnW,EAClB,CAAEkZ,kBAAAA,CAAiB,CAAE,CAAGT,IAE9B,MACE,GAAAP,EAAAvX,GAAA,EAACmP,IAAAA,CACCsJ,IAAKA,EACLpY,GAAIkY,EACJ/X,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,gCAAiClE,GAC9C,GAAGgV,CAAK,EAGf,EACAnD,CAAAA,EAAgBqG,WAAW,CAAG,kBAE9B,IAAMxJ,EAAcpM,EAAAA,UAAgB,CAGlC,CAAAzD,EAAoCoZ,QAAnC,CAAEjY,UAAAA,CAAS,CAAEwV,SAAAA,CAAQ,CAAE,GAAGR,EAAO,CAAAnW,EAC5B,CAAEqN,MAAAA,CAAK,CAAE8L,cAAAA,CAAa,CAAE,CAAGV,IAC3BgB,EAAOpM,EAAQqM,OAAOrM,MAAAA,EAAAA,KAAAA,EAAAA,EAAOlH,OAAO,EAAIwQ,SAE9C,EAKE,GAAAuB,EAAAvX,GAAA,EAACmP,IAAAA,CACCsJ,IAAKA,EACLpY,GAAImY,EACJhY,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,uCAAwClE,GACrD,GAAGgV,CAAK,UAERsD,IAVI,IAaX,EACA5J,CAAAA,EAAYwJ,WAAW,CAAG,+FCnKnB,IAAMjX,EAAU,OAAC,CAAEjB,UAAAA,CAAS,CAAiC,CAAAnB,EAClE,MACE,GAAAkY,EAAAzX,IAAA,EAAC6B,MAAAA,CACCqX,cAAY,OACZvV,KAAK,SACLjD,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,sDAAuDlE,GACrEsB,QAAQ,cACRC,KAAK,OACLC,MAAM,uCAEN,GAAAuV,EAAAvX,GAAA,EAACiC,OAAAA,CACCC,EAAE,+WACF1B,UAAU,4BAEZ,GAAA+W,EAAAvX,GAAA,EAACiC,OAAAA,CACCC,EAAE,glBACF1B,UAAU,mBAIlB,uGCfA,IAAM8R,EAASxP,EAAAA,UAAgB,CAG7B,CAAAzD,EAA0BoZ,QAAzB,CAAEjY,UAAAA,CAAS,CAAE,GAAGgV,EAAO,CAAAnW,QACxB,GAAAkY,EAAAvX,GAAA,EAACiZ,EAAAA,EAAqB,EACpBzY,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EACT,qXACAlE,GAED,GAAGgV,CAAK,CACTiD,IAAKA,WAEL,GAAAlB,EAAAvX,GAAA,EAACiZ,EAAAA,EAAsB,EACrBzY,UAAWkE,CAAAA,EAAAA,EAAAA,EAAAA,EACT,mLAKR4N,CAAAA,EAAOoG,WAAW,CAAGO,EAAAA,EAAqB,CAACP,WAAW","sources":["webpack://_N_E/./app/(application)/agents/components/agent-delete.tsx","webpack://_N_E/./icons/index.tsx","webpack://_N_E/./app/(application)/agents/edit/[id]/form.tsx","webpack://_N_E/./components/ai-elements/artifact.tsx","webpack://_N_E/./components/custom/text-preview.tsx","webpack://_N_E/./components/lottie.tsx","webpack://_N_E/./components/ui/form.tsx","webpack://_N_E/./components/ui/loading.tsx","webpack://_N_E/./components/ui/switch.tsx"],"sourcesContent":["import { Trash2 } from \"lucide-react\";\nimport { useState } from \"react\";\nimport * as React from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Loading } from \"@/components/ui/loading\";\n\nexport function AgentDelete({\n deleteAgent,\n deleteAgentResult,\n agent,\n}) {\n\n const confirmation = \"delete this agent\";\n const [value, setValue] = useState(\"\");\n\n return (\n <Dialog>\n <DialogTrigger asChild>\n <Button disabled={!agent?.id} variant=\"destructive\">\n <Trash2 className=\"size-4\" />\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-[475px]\">\n <DialogHeader>\n <DialogTitle>Delete this agent</DialogTitle>\n </DialogHeader>\n <div className=\"grid gap-4 py-4\">\n <div className=\"grid gap-2\">\n <Label htmlFor=\"name\">Type \"{confirmation}\" to confirm</Label>\n <Input\n onChange={(e) => {\n setValue(e.target.value);\n }}\n id=\"name\"\n autoFocus\n />\n </div>\n </div>\n <DialogFooter>\n <Button\n disabled={value !== confirmation || deleteAgentResult.loading}\n onClick={() => {\n deleteAgent({\n variables: {\n id: agent.id,\n },\n });\n }}\n variant={\"destructive\"}\n type=\"submit\"\n >\n Delete {deleteAgentResult.loading && <Loading />}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","export function RightArrow() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.16669 7.00033H12.8334M12.8334 7.00033L7.00002 1.16699M12.8334 7.00033L7.00002 12.8337\"\n stroke=\"white\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport function DownArrow() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.66666 10.0003L9.99999 13.3337M9.99999 13.3337L13.3333 10.0003M9.99999 13.3337V6.66699M18.3333 10.0003C18.3333 14.6027 14.6024 18.3337 9.99999 18.3337C5.39762 18.3337 1.66666 14.6027 1.66666 10.0003C1.66666 5.39795 5.39762 1.66699 9.99999 1.66699C14.6024 1.66699 18.3333 5.39795 18.3333 10.0003Z\"\n stroke=\"#475467\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport function CopyIcon() {\n return (\n <svg\n width=\"19\"\n height=\"20\"\n viewBox=\"0 0 19 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.5 12.5003C2.72343 12.5003 2.33515 12.5003 2.02886 12.3735C1.62048 12.2043 1.29602 11.8798 1.12687 11.4715C1 11.1652 1 10.7769 1 10.0003V4.33366C1 3.40024 1 2.93353 1.18166 2.57701C1.34144 2.2634 1.59641 2.00844 1.91002 1.84865C2.26654 1.66699 2.73325 1.66699 3.66667 1.66699H9.33333C10.1099 1.66699 10.4982 1.66699 10.8045 1.79386C11.2129 1.96302 11.5373 2.28747 11.7065 2.69585C11.8333 3.00214 11.8333 3.39042 11.8333 4.16699M9.5 18.3337H15C15.9334 18.3337 16.4001 18.3337 16.7567 18.152C17.0703 17.9922 17.3252 17.7372 17.485 17.4236C17.6667 17.0671 17.6667 16.6004 17.6667 15.667V10.167C17.6667 9.23357 17.6667 8.76686 17.485 8.41034C17.3252 8.09674 17.0703 7.84177 16.7567 7.68198C16.4001 7.50033 15.9334 7.50033 15 7.50033H9.5C8.56658 7.50033 8.09987 7.50033 7.74335 7.68198C7.42975 7.84177 7.17478 8.09674 7.01499 8.41034C6.83333 8.76686 6.83333 9.23357 6.83333 10.167V15.667C6.83333 16.6004 6.83333 17.0671 7.01499 17.4236C7.17478 17.7372 7.42975 17.9922 7.74335 18.152C8.09987 18.3337 8.56658 18.3337 9.5 18.3337Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport function Times() {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11 1L1 11M1 1L11 11\"\n stroke=\"black\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport function Dot() {\n return (\n <svg\n width=\"7\"\n height=\"6\"\n viewBox=\"0 0 7 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"3.3335\" cy=\"3\" r=\"3\" fill=\"#12B76A\" />\n </svg>\n );\n}\n\nexport function Docs() {\n return (\n <svg\n width=\"20\"\n height=\"18\"\n viewBox=\"0 0 20 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.99999 16.5L9.91661 16.3749C9.33774 15.5066 9.04831 15.0725 8.66591 14.7582C8.32737 14.4799 7.93729 14.2712 7.51799 14.1438C7.04437 14 6.52258 14 5.47901 14H4.33332C3.3999 14 2.93319 14 2.57667 13.8183C2.26307 13.6586 2.0081 13.4036 1.84831 13.09C1.66666 12.7335 1.66666 12.2668 1.66666 11.3333V4.16667C1.66666 3.23325 1.66666 2.76654 1.84831 2.41002C2.0081 2.09641 2.26307 1.84144 2.57667 1.68166C2.93319 1.5 3.3999 1.5 4.33332 1.5H4.66666C6.5335 1.5 7.46692 1.5 8.17996 1.86331C8.80717 2.18289 9.3171 2.69282 9.63668 3.32003C9.99999 4.03307 9.99999 4.96649 9.99999 6.83333M9.99999 16.5V6.83333M9.99999 16.5L10.0834 16.3749C10.6622 15.5066 10.9517 15.0725 11.3341 14.7582C11.6726 14.4799 12.0627 14.2712 12.482 14.1438C12.9556 14 13.4774 14 14.521 14H15.6667C16.6001 14 17.0668 14 17.4233 13.8183C17.7369 13.6586 17.9919 13.4036 18.1517 13.09C18.3333 12.7335 18.3333 12.2668 18.3333 11.3333V4.16667C18.3333 3.23325 18.3333 2.76654 18.1517 2.41002C17.9919 2.09641 17.7369 1.84144 17.4233 1.68166C17.0668 1.5 16.6001 1.5 15.6667 1.5H15.3333C13.4665 1.5 12.5331 1.5 11.82 1.86331C11.1928 2.18289 10.6829 2.69282 10.3633 3.32003C9.99999 4.03307 9.99999 4.96649 9.99999 6.83333\"\n stroke=\"#344054\"\n strokeWidth=\"1.66667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport function Github() {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 0.25C4.16562 0.25 0.25 4.16562 0.25 9C0.25 12.8719 2.75469 16.1422 6.23281 17.3016C6.67031 17.3781 6.83437 17.1156 6.83437 16.8859C6.83437 16.6781 6.82344 15.9891 6.82344 15.2563C4.625 15.6609 4.05625 14.7203 3.88125 14.2281C3.78281 13.9766 3.35625 13.2 2.98438 12.9922C2.67812 12.8281 2.24063 12.4234 2.97344 12.4125C3.6625 12.4016 4.15469 13.0469 4.31875 13.3094C5.10625 14.6328 6.36406 14.2609 6.86719 14.0312C6.94375 13.4625 7.17344 13.0797 7.425 12.8609C5.47813 12.6422 3.44375 11.8875 3.44375 8.54062C3.44375 7.58906 3.78281 6.80156 4.34062 6.18906C4.25313 5.97031 3.94687 5.07344 4.42812 3.87031C4.42812 3.87031 5.16094 3.64063 6.83437 4.76719C7.53438 4.57031 8.27813 4.47187 9.02188 4.47187C9.76563 4.47187 10.5094 4.57031 11.2094 4.76719C12.8828 3.62969 13.6156 3.87031 13.6156 3.87031C14.0969 5.07344 13.7906 5.97031 13.7031 6.18906C14.2609 6.80156 14.6 7.57812 14.6 8.54062C14.6 11.8984 12.5547 12.6422 10.6078 12.8609C10.925 13.1344 11.1984 13.6594 11.1984 14.4797C11.1984 15.65 11.1875 16.5906 11.1875 16.8859C11.1875 17.1156 11.3516 17.3891 11.7891 17.3016C13.5261 16.7152 15.0355 15.5988 16.1048 14.1096C17.1741 12.6204 17.7495 10.8333 17.75 9C17.75 4.16562 13.8344 0.25 9 0.25Z\"\n fill=\"black\"\n />\n </svg>\n );\n}\n\nexport function Twitter() {\n return (\n <svg\n width=\"19\"\n height=\"15\"\n viewBox=\"0 0 19 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.36796 14.5C4.34609 14.5 2.46136 13.9119 0.875 12.8973C2.22187 12.9844 4.59879 12.7757 6.07724 11.3655C3.85317 11.2634 2.85016 9.55768 2.71934 8.82873C2.90831 8.90162 3.80956 8.9891 4.31834 8.78499C1.75994 8.14351 1.36745 5.89833 1.45467 5.21311C1.93437 5.54843 2.74841 5.66506 3.06821 5.6359C0.684246 3.93015 1.54189 1.36422 1.96345 0.810218C3.67426 3.18042 6.23825 4.51161 9.41024 4.58565C9.35043 4.32335 9.31885 4.05026 9.31885 3.76978C9.31885 1.75682 10.9459 0.125 12.9529 0.125C14.0016 0.125 14.9465 0.570471 15.6098 1.28302C16.3106 1.11882 17.3652 0.734417 17.8808 0.402003C17.6209 1.33507 16.8118 2.11343 16.3224 2.40192C16.3185 2.39207 16.3265 2.41174 16.3224 2.40192C16.7523 2.3369 17.9155 2.11336 18.375 1.8016C18.1478 2.32578 17.29 3.19733 16.5861 3.68526C16.717 9.46129 12.2978 14.5 6.36796 14.5Z\"\n fill=\"#47ACDF\"\n />\n </svg>\n );\n}\n\nexport function Discord() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.25 7.25C1.25 5.1498 1.25 4.0997 1.65873 3.29754C2.01825 2.59193 2.59193 2.01825 3.29754 1.65873C4.0997 1.25 5.1498 1.25 7.25 1.25H12.75C14.8502 1.25 15.9003 1.25 16.7025 1.65873C17.4081 2.01825 17.9817 2.59193 18.3413 3.29754C18.75 4.0997 18.75 5.1498 18.75 7.25V12.75C18.75 14.8502 18.75 15.9003 18.3413 16.7025C17.9817 17.4081 17.4081 17.9817 16.7025 18.3413C15.9003 18.75 14.8502 18.75 12.75 18.75H7.25C5.1498 18.75 4.0997 18.75 3.29754 18.3413C2.59193 17.9817 2.01825 17.4081 1.65873 16.7025C1.25 15.9003 1.25 14.8502 1.25 12.75V7.25Z\"\n fill=\"url(#paint0_linear_158_4828)\"\n />\n <path\n d=\"M15.172 6.26667C14.2259 5.46667 13.0906 5.06667 11.8922 5L11.703 5.2C12.7752 5.46667 13.7213 6 14.6044 6.73333C13.5321 6.13333 12.3337 5.73333 11.0722 5.6C10.6938 5.53333 10.3784 5.53333 10 5.53333C9.62156 5.53333 9.30619 5.53333 8.92775 5.6C7.66628 5.73333 6.46789 6.13333 5.39564 6.73333C6.27867 6 7.22477 5.46667 8.29702 5.2L8.1078 5C6.9094 5.06667 5.77408 5.46667 4.82798 6.26667C3.75573 8.4 3.18807 10.8 3.125 13.2667C4.0711 14.3333 5.39564 15 6.78326 15C6.78326 15 7.22477 14.4667 7.54014 14C6.72018 13.8 5.9633 13.3333 5.45872 12.6C5.90023 12.8667 6.34174 13.1333 6.78326 13.3333C7.35092 13.6 7.91858 13.7333 8.48624 13.8667C8.99083 13.9333 9.49541 14 10 14C10.5046 14 11.0092 13.9333 11.5138 13.8667C12.0814 13.7333 12.6491 13.6 13.2167 13.3333C13.6583 13.1333 14.0998 12.8667 14.5413 12.6C14.0367 13.3333 13.2798 13.8 12.4599 14C12.7752 14.4667 13.2167 15 13.2167 15C14.6044 15 15.9289 14.3333 16.875 13.2667C16.8119 10.8 16.2443 8.4 15.172 6.26667ZM7.91858 12.0667C7.28784 12.0667 6.72018 11.4667 6.72018 10.7333C6.72018 10 7.28784 9.4 7.91858 9.4C8.54931 9.4 9.11697 10 9.11697 10.7333C9.11697 11.4667 8.54931 12.0667 7.91858 12.0667ZM12.0814 12.0667C11.4507 12.0667 10.883 11.4667 10.883 10.7333C10.883 10 11.4507 9.4 12.0814 9.4C12.7122 9.4 13.2798 10 13.2798 10.7333C13.2798 11.4667 12.7122 12.0667 12.0814 12.0667Z\"\n fill=\"white\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_158_4828\"\n x1=\"10\"\n y1=\"1.25\"\n x2=\"10\"\n y2=\"18.75\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#687EC9\" />\n <stop offset=\"1\" stopColor=\"#5971C3\" />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n","\"use client\";\n\nimport { useMutation, useQuery } from \"@apollo/client\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useRouter } from \"next/navigation\";\nimport { useContext, useState, useEffect, useMemo } from \"react\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as z from \"zod\";\nimport { AgentDelete } from \"@/app/(application)/agents/components/agent-delete\";\nimport {\n REMOVE_AGENT_BY_ID, UPDATE_AGENT_BY_ID, GET_AGENT_BY_ID, CREATE_AGENT_SESSION, GET_VARIABLES,\n GET_TOOLS, GET_TOOL_CATEGORIES,\n} from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\";\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\";\nimport { Input } from \"@/components/ui/input\";\nimport { Loading } from \"@/components/ui/loading\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { Tabs } from \"@/components/ui/tabs\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Agent } from \"@EXULU_SHARED//models/agent\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport { Tool } from \"@EXULU_SHARED/models/tool\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { CopyIcon } from \"@/icons\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\";\nimport { Check, ChevronsUpDown, Wrench, Image, FileText, Volume2, Video, Info, AlertCircle, Settings, Text, Search, X, Plus } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { RBACControl } from \"@/components/rbac\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"@/components/ui/sheet\";\nimport { Variable } from \"@/types/models/variable\";\nimport UppyDashboard, { FileDataCard } from \"@/components/uppy-dashboard\";\nimport AgentVisual from \"@/components/lottie\";\nimport { ConfigContext } from \"@/components/config-context\";\nimport { TextPreview } from \"@/components/custom/text-preview\";\nimport { PromptCard } from \"@/app/(application)/prompts/components/prompt-card\";\nimport { PromptEditorModal } from \"@/app/(application)/prompts/components/prompt-editor-modal\";\nimport { usePrompts } from \"@/hooks/use-prompts\";\nimport { Response } from '@/components/ai-elements/response';\n\nconst categories = [\n \"marketing\",\n \"sales\",\n \"finance\",\n \"hr\",\n \"coding\",\n \"support\",\n \"research\",\n \"knowledge\",\n \"product\"\n]\n\n// Component for handling individual tool configuration items\nexport const VariableSelectionElement = ({\n configItem,\n currentValue,\n variables,\n onVariableSelect\n}: {\n configItem: { name: string; description: string; default?: string },\n currentValue: string,\n variables: any[],\n onVariableSelect: (variableName: string) => void\n}) => {\n const [popoverOpen, setPopoverOpen] = React.useState(false);\n const selectedVariable = variables.find((v: any) => v.name === currentValue);\n\n return (\n <div className=\"space-y-2\">\n <div className=\"text-sm\">\n <div className=\"font-medium capitalize\">{configItem.name}</div>\n <div className=\"text-muted-foreground text-xs capitalize\">{configItem.description}</div>\n </div>\n <Popover open={popoverOpen} onOpenChange={setPopoverOpen} modal={true}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={popoverOpen}\n className=\"w-full justify-between text-sm\"\n >\n {selectedVariable ? selectedVariable.name : \"Select variable...\"}\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0\">\n <Command>\n <CommandInput placeholder=\"Search variables...\" />\n <CommandList>\n <CommandEmpty>No variables found.</CommandEmpty>\n <CommandGroup>\n {variables.map((variable: any) => (\n <CommandItem\n key={variable.id}\n onSelect={() => {\n onVariableSelect(variable.name);\n console.log(\"variable\", variable)\n setPopoverOpen(false);\n }}\n >\n <Check\n className={cn(\n \"mr-2 h-4 w-4\",\n currentValue === variable.name ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n <div className=\"flex flex-col\">\n <span>{variable.name}</span>\n {variable.encrypted && (\n <span className=\"text-xs text-muted-foreground\">🔒 Encrypted</span>\n )}\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n {\n configItem.default && (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-md\">Default value</CardTitle>\n </CardHeader>\n <CardContent>\n <TextPreview text={configItem.default} sliceLength={200} />\n </CardContent>\n </Card>\n )\n }\n </Popover>\n </div>\n );\n};\n\nconst agentFormSchema = z.object({\n name: z\n .string()\n .min(2, {\n message: \"Agent name must be at least 2 characters.\",\n })\n .max(300, {\n message: \"Agent name must not be longer than 300 characters.\",\n }),\n category: z.string().optional(),\n description: z\n .string()\n .max(10000, {\n message:\n \"Agent description must not be longer than 10.000 characters.\",\n })\n .nullable()\n .optional(),\n instructions: z\n .string()\n .max(40000, {\n message:\n \"Agent instructions must not be longer than 40.000 characters.\",\n })\n .nullable()\n .optional(),\n id: z.string().or(z.number()).nullable().optional(),\n active: z.any(),\n providerapikey: z.string().nullable().optional(),\n firewall: z.object({\n enabled: z.boolean().optional(),\n scanners: z.object({\n promptGuard: z.boolean().optional(),\n codeShield: z.boolean().optional(),\n agentAlignment: z.boolean().optional(),\n hiddenAscii: z.boolean().optional(),\n piiDetection: z.boolean().optional(),\n }).optional(),\n }).optional(),\n});\n\nexport default function AgentForm({\n agent,\n refetch,\n}: {\n agent: Agent;\n refetch: any;\n}) {\n\n const router = useRouter();\n const { user } = useContext(UserContext);\n const configContext = useContext(ConfigContext);\n const [enabledTools, setEnabledTools] = useState<{ id: string, config: { name: string, variable: string }[] }[]>(\n // Convert legacy string[] format to new object format\n agent.tools ? agent.tools : []\n )\n const [sheetOpen, setSheetOpen] = useState<boolean | string>(false);\n const [searchTerm, setSearchTerm] = useState<string>(\"\");\n const [selectedCategory, setSelectedCategory] = useState<string>(\"all\");\n const [debouncedSearch, setDebouncedSearch] = useState<string>(\"\");\n const [collapsedCategories, setCollapsedCategories] = useState<Set<string>>(new Set());\n const [isPromptModalOpen, setIsPromptModalOpen] = useState(false);\n\n // Debounce search term\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedSearch(searchTerm);\n }, 300);\n\n return () => clearTimeout(timer);\n }, [searchTerm]);\n const [providerapikey, setProviderapikey] = useState<string>(agent.providerapikey || '')\n const [firewallEnabled, setFirewallEnabled] = useState<boolean>(agent.firewall?.enabled || false)\n const [animation_idle, setAnimation_idle] = useState<string>(agent.animation_idle || '')\n const [animation_responding, setAnimation_responding] = useState<string>(agent.animation_responding || '')\n const [rbac, setRbac] = useState({\n rights_mode: agent.rights_mode,\n users: agent.RBAC?.users,\n roles: agent.RBAC?.roles,\n // projects: agent.RBAC?.projects\n })\n const [firewallScanners, setFirewallScanners] = useState({\n promptGuard: agent.firewall?.scanners?.promptGuard || false,\n codeShield: agent.firewall?.scanners?.codeShield || false,\n agentAlignment: agent.firewall?.scanners?.agentAlignment || false,\n hiddenAscii: agent.firewall?.scanners?.hiddenAscii || false,\n piiDetection: agent.firewall?.scanners?.piiDetection || false,\n })\n\n const { toast } = useToast();\n\n // Prepare query variables\n const toolsQueryVariables = useMemo(() => ({\n search: debouncedSearch || undefined,\n category: selectedCategory === \"all\" ? undefined : selectedCategory,\n limit: 100,\n page: 0\n }), [debouncedSearch, selectedCategory]);\n\n const { data: toolsData, loading: toolsLoading } = useQuery<{\n tools: {\n items: Tool[]\n total: number\n page: number\n limit: number\n }\n }>(GET_TOOLS, {\n variables: toolsQueryVariables\n });\n\n const { data: variablesData } = useQuery<{\n variablesPagination: {\n items: Variable[]\n }\n }>(GET_VARIABLES, {\n variables: { page: 1, limit: 100 },\n });\n\n const { data: categoriesData } = useQuery<{\n toolCategories: string[]\n }>(GET_TOOL_CATEGORIES);\n\n const variables = variablesData?.variablesPagination?.items || [];\n\n // Fetch prompts assigned to this agent using server-side filtering\n const { data: promptsData, loading: promptsLoading, refetch: refetchPrompts } = usePrompts({\n page: 1,\n limit: 100,\n filters: [{\n assigned_agents: {\n contains: agent.id\n }\n }],\n });\n\n const agentPrompts = promptsData?.prompt_libraryPagination?.items || [];\n\n // Filter out agent's own tool and group by category\n const filteredTools = useMemo(() => {\n return toolsData?.tools?.items?.filter((tool: Tool) => tool.id !== agent.id) || [];\n }, [toolsData?.tools?.items, agent.id]);\n\n // Group tools by category for organized display\n const toolsByCategory = useMemo(() => {\n return filteredTools.reduce((acc, tool) => {\n if (!acc[tool.category]) {\n acc[tool.category] = [];\n }\n acc[tool.category].push(tool);\n return acc;\n }, {} as Record<string, Tool[]>);\n }, [filteredTools]);\n\n // Get categories from backend\n const availableCategories = categoriesData?.toolCategories || [];\n\n // Initialize all categories as collapsed when data loads\n useEffect(() => {\n if (availableCategories.length > 0) {\n const allCategories = new Set(Object.keys(toolsByCategory));\n setCollapsedCategories(allCategories);\n }\n }, [toolsByCategory]);\n\n // Clear search function\n const clearSearch = () => {\n setSearchTerm(\"\");\n setSelectedCategory(\"all\");\n };\n\n // Toggle category collapse state\n const toggleCategoryCollapse = (categoryName: string) => {\n setCollapsedCategories(prev => {\n const newSet = new Set(prev);\n if (newSet.has(categoryName)) {\n newSet.delete(categoryName);\n } else {\n newSet.add(categoryName);\n }\n return newSet;\n });\n };\n\n const copyAgentId = async () => {\n try {\n await navigator.clipboard.writeText(agent.id);\n toast({ title: \"Agent ID copied to clipboard\" });\n } catch (error) {\n toast({ title: \"Failed to copy Agent ID\", variant: \"destructive\" });\n }\n };\n\n // Reset selected users and roles when visibility changes\n\n const [deleteAgent, deleteAgentResult] = useMutation(\n REMOVE_AGENT_BY_ID,\n {\n onCompleted: () => {\n router.push(`/agents`, { scroll: false });\n },\n },\n );\n\n const [updateAgent, updateAgentResult] = useMutation(\n UPDATE_AGENT_BY_ID,\n {\n refetchQueries: [\n GET_AGENT_BY_ID,\n \"GetAgentById\"\n ],\n },\n );\n\n type AgentFormValues = z.infer<typeof agentFormSchema>;\n\n const agentForm = useForm<AgentFormValues>({\n resolver: zodResolver(agentFormSchema),\n defaultValues: agent ?? {\n name: \"New agent\",\n instructions: \"\",\n steps: [],\n firewall: {\n enabled: false,\n scanners: {\n promptGuard: false,\n codeShield: false,\n agentAlignment: false,\n hiddenAscii: false,\n piiDetection: false,\n }\n },\n },\n mode: \"onChange\",\n });\n\n const [createAgentSession] = useMutation(\n CREATE_AGENT_SESSION,\n );\n\n return (\n <div className=\"h-full flex-col md:flex\">\n <div className=\"container flex flex-col items-start justify-between space-y-2 py-4 sm:flex-row sm:items-center sm:space-y-0 md:h-16\">\n <div className=\"ml-auto flex w-full space-x-2 sm:justify-end\">\n {agent?.id && (\n <Button\n onClick={agentForm.handleSubmit(\n async (data) => {\n console.log(\"data\", data)\n updateAgent({\n variables: {\n id: data.id,\n name: data.name,\n description: data.description,\n instructions: data.instructions,\n category: data.category,\n active: data.active,\n providerapikey: providerapikey,\n animation_idle: animation_idle,\n animation_responding: animation_responding,\n rights_mode: rbac.rights_mode,\n RBAC: {\n users: rbac.users || [],\n roles: rbac.roles || [],\n // projects: rbac.projects || []\n },\n firewall: JSON.stringify({\n enabled: firewallEnabled,\n scanners: firewallScanners\n }),\n tools: JSON.stringify(enabledTools)\n },\n });\n refetch();\n },\n (data) => {\n console.error(\"form data invalid\", data);\n },\n )}\n disabled={updateAgentResult.loading}\n variant={\"secondary\"}\n type=\"submit\">\n Save {updateAgentResult.loading && <Loading className=\"ml-2\" />}\n </Button>\n )}\n <Button\n onClick={() => {\n router.push(\"/agents\", { scroll: false });\n }}\n variant={\"secondary\"}\n type=\"button\">\n Back\n </Button>\n <AgentDelete\n agent={agent}\n deleteAgent={deleteAgent}\n deleteAgentResult={deleteAgentResult}\n />\n </div>\n </div>\n <Separator />\n <Tabs defaultValue=\"complete\" className=\"flex-1\">\n <div className=\"container py-6\">\n <div className=\"grid items-stretch gap-6\">\n <div className=\"md:order-1\">\n <div className=\"flex flex-col space-y-4\">\n <div className=\"h-full\">\n <Form {...agentForm}>\n <form className=\"space-y-8\">\n <div className=\"grid grid-rows-1 grid-flow-col gap-6 lg:grid-cols-2\">\n <div className=\"col\">\n <div className=\"flex flex-col space-y-4\">\n <div className=\"flex flex-col space-y-2\">\n <Card>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n {agent.image && (\n <div className=\"w-10 h-10 rounded-full overflow-hidden flex-shrink-0\">\n <img\n src={agent.image}\n alt={`${agent.name} profile`}\n className=\"w-full h-full object-cover\"\n />\n </div>\n )}\n <CardTitle>Agent</CardTitle>\n </div>\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <span>ID: {agent.id}</span>\n <button\n type=\"button\"\n onClick={copyAgentId}\n className=\"p-1 hover:bg-muted rounded transition-colors text-muted-foreground\"\n title=\"Copy Agent ID\"\n >\n <CopyIcon />\n </button>\n </div>\n </div>\n </CardHeader>\n <CardContent className=\"grid gap-4\">\n\n\n <FormField\n control={agentForm.control}\n name={`name`}\n render={({ field }) => (\n <FormItem>\n <FormLabel>Name</FormLabel>\n <FormControl>\n <Input\n type=\"text\"\n className=\"resize-none\"\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n\n\n <div>\n <div className=\"text-sm font-medium mb-2\">Modalities</div>\n <p className=\"text-sm text-muted-foreground mb-2\">\n This agent uses <b>{agent.modelName}</b> from <b>{agent.providerName}</b> and can use the following capabilities:\n </p>\n <TooltipProvider>\n <div className=\"flex items-center gap-3 mt-2\">\n <div className={`p-2 rounded-md ${agent.capabilities?.text ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Text className=\"h-4 w-4\" />\n </div>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-2 rounded-md ${agent.capabilities?.images?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Image className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Images: {agent.capabilities?.images?.length ? agent.capabilities.images.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-2 rounded-md ${agent.capabilities?.files?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <FileText className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Files: {agent.capabilities?.files?.length ? agent.capabilities.files.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-2 rounded-md ${agent.capabilities?.audio?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Volume2 className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Audio: {agent.capabilities?.audio?.length ? agent.capabilities.audio.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-2 rounded-md ${agent.capabilities?.video?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Video className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Video: {agent.capabilities?.video?.length ? agent.capabilities.video.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n </div>\n </TooltipProvider>\n </div>\n\n\n <FormField\n control={agentForm.control}\n name={`category`}\n render={({ field }: any) => {\n if (!field.value) {\n field.value = \"\";\n }\n return (\n <FormItem>\n <FormLabel>Category</FormLabel>\n <FormControl>\n <Select onValueChange={(value) => {\n field.onChange(value);\n }}>\n <SelectTrigger>\n <SelectValue className=\"capitalize\" placeholder={field.value || `Select a category`} />\n </SelectTrigger>\n <SelectContent>\n {\n categories.map((category) => (\n <SelectItem className=\"capitalize\" key={category} value={category}>\n {category}\n </SelectItem>\n ))\n }\n </SelectContent>\n </Select>\n </FormControl>\n <FormMessage />\n </FormItem>\n );\n }}\n />\n\n <FormField\n control={agentForm.control}\n name={`description`}\n render={({ field }: any) => {\n if (!field.value) {\n field.value = \"\";\n }\n return (\n <FormItem>\n <FormLabel>Description</FormLabel>\n <FormControl>\n <Textarea\n rows={2}\n className=\"resize-none\"\n {...field}\n value={field.value ?? \"\"}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n );\n }}\n />\n <FormField\n control={agentForm.control}\n name={`instructions`}\n render={({ field }: any) => {\n if (!field.value) {\n field.value = \"\";\n }\n return (\n <FormItem>\n <FormLabel>Instructions</FormLabel>\n <FormControl>\n <Textarea\n rows={5}\n className=\"resize-none\"\n {...field}\n value={field.value ?? \"\"}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n );\n }}\n />\n <div className=\"space-y-2 w-full overflow-x-hidden\">\n <div className=\"text-sm\">\n <div className=\"font-medium\">Provider API Key</div>\n <div className=\"text-muted-foreground text-xs\">Select a variable containing the API key for the provider</div>\n {\n agent.authenticationInformation && (\n <div className=\"text-muted-foreground text-xs\">\n <Response>{agent.authenticationInformation}</Response>\n </div>\n )\n }\n </div>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n className=\"w-full justify-between text-sm\"\n >\n {variables.find((v: any) => v.name === providerapikey)?.name || \"Select variable...\"}\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0 z-[9999]\">\n <Command>\n <CommandInput placeholder=\"Search variables...\" />\n <CommandList>\n <CommandEmpty>No variables found.</CommandEmpty>\n <CommandGroup>\n {variables.map((variable: any) => (\n <CommandItem\n key={variable.id}\n onSelect={() => {\n setProviderapikey(variable.name);\n }}\n >\n <Check\n className={cn(\n \"mr-2 h-4 w-4\",\n providerapikey === variable.name ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n <div className=\"flex flex-col\">\n <span>{variable.name}</span>\n {variable.encrypted && (\n <span className=\"text-xs text-muted-foreground\">🔒 Encrypted</span>\n )}\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n\n {configContext?.fileUploads?.s3endpoint && (\n <Card className=\"bg-transparent\">\n <Collapsible>\n <CardHeader className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col\">\n <p className=\"text-base\">\n Custom visualizations\n </p>\n <p className=\"text-sm text-muted-foreground mb-0\">\n Upload custom Lottie animations for idle and responding states.\n </p>\n </div>\n <CollapsibleTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"size-8\">\n <ChevronsUpDown className=\"size-4\" />\n <span className=\"sr-only\">Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n </CardHeader>\n\n <CollapsibleContent className=\"mt-5\">\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {/* Idle Animation */}\n <div className=\"space-y-2\">\n <div>\n <div className=\"text-sm font-medium\">Idle Animation</div>\n <div className=\"text-xs text-muted-foreground\">Animation when agent is waiting</div>\n </div>\n\n <FileDataCard s3key={animation_idle}>\n <UppyDashboard\n id=\"agent-idle-animation\"\n allowedFileTypes={['.json']}\n selectionLimit={1}\n buttonText=\"\"\n dependencies={[agent.id]}\n onConfirm={(keys) => {\n if (keys.length > 0) {\n setAnimation_idle(keys[0]);\n }\n }}\n />\n {animation_idle && (\n <div className=\"mt-2 p-2 border rounded bg-muted/30\">\n <div className=\"text-xs text-muted-foreground mb-1\">Preview:</div>\n <div className=\"w-12 h-12 mx-auto\">\n <AgentVisual\n agent={{ ...agent, animation_idle }}\n status=\"ready\"\n />\n </div>\n </div>\n )}\n </FileDataCard>\n </div>\n\n {/* Responding Animation */}\n <div className=\"space-y-2\">\n <div>\n <div className=\"text-sm font-medium\">Responding Animation</div>\n <div className=\"text-xs text-muted-foreground\">Animation when agent is responding</div>\n </div>\n\n <FileDataCard s3key={animation_responding}>\n <UppyDashboard\n id=\"agent-responding-animation\"\n allowedFileTypes={['.json']}\n selectionLimit={1}\n buttonText=\"\"\n dependencies={[agent.id]}\n onConfirm={(keys) => {\n if (keys.length > 0) {\n setAnimation_responding(keys[0]);\n }\n }}\n />\n {animation_responding && (\n <div className=\"mt-2 p-2 border rounded bg-muted/30\">\n <div className=\"text-xs text-muted-foreground mb-1\">Preview:</div>\n <div className=\"w-12 h-12 mx-auto\">\n <AgentVisual\n agent={{ ...agent, animation_responding }}\n status=\"streaming\"\n />\n </div>\n </div>\n )}\n </FileDataCard>\n </div>\n </div>\n </CardContent>\n </CollapsibleContent>\n </Collapsible>\n </Card>\n )}\n\n <>\n <div className=\"text-sm font-medium mb-0\"> You can test this agent using the Exulu\n UI without activating the agent if you\n are a super admin:</div>\n <Button\n className=\"mt-0\"\n onClick={async () => {\n console.log(\"agent\", agent)\n const result = await createAgentSession({\n variables: {\n title: \"New session\",\n user: user.id,\n agent: agent.id,\n }\n })\n console.log(\"result\", result)\n const sessionId = result?.data?.agent_sessionsCreateOne?.item?.id\n router.push(\n `/chat/${agent.id}/${sessionId}`,\n );\n }}\n type={\"button\"}\n variant={\"default\"}>\n Go to chat\n </Button>\n </>\n </CardContent>\n </Card>\n </div>\n </div>\n </div>\n <div className=\"col\">\n <div className=\"flex flex-col space-y-4\">\n <FormField\n control={agentForm.control}\n name=\"active\"\n render={({ field }) => (\n <FormItem className=\"flex flex-row items-center justify-between rounded-lg border p-4\">\n <div className=\"space-y-0.5\">\n <FormLabel className=\"text-base\">\n Is this agent active?\n </FormLabel>\n <FormDescription>\n When active this agent will be available via the Exulu UI\n and API endpoint.\n </FormDescription>\n </div>\n <FormControl>\n <Switch\n checked={field.value}\n onCheckedChange={field.onChange}\n />\n </FormControl>\n </FormItem>\n )}\n />\n\n <Card className=\"bg-transparent\">\n <Collapsible>\n <CardHeader className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col\">\n <p className=\"text-base\">\n Access Control\n </p>\n <p className=\"text-sm text-muted-foreground mb-0\">\n Control access to this agent.\n </p>\n </div>\n <CollapsibleTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"size-8\">\n <ChevronsUpDown className=\"size-4\" />\n <span className=\"sr-only\">Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n </CardHeader>\n\n <CollapsibleContent className=\"mt-5\">\n <CardContent className=\"space-y-4\">\n <RBACControl\n initialRightsMode={agent.rights_mode}\n initialUsers={agent.RBAC?.users}\n initialRoles={agent.RBAC?.roles}\n // initialProjects={agent.RBAC?.projects}\n onChange={(rights_mode, users, roles) => {\n setRbac({\n rights_mode,\n users,\n roles,\n // projects\n })\n }}\n />\n </CardContent>\n </CollapsibleContent>\n </Collapsible>\n </Card>\n\n <Card className=\"bg-transparent\">\n <Collapsible>\n <CardHeader className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col\">\n <p className=\"text-base\">\n Prompt Templates\n </p>\n <p className=\"text-sm text-muted-foreground mb-0\">\n Manage prompt templates assigned to this agent ({agentPrompts.length})\n </p>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setIsPromptModalOpen(true)}\n >\n <Plus className=\"h-4 w-4 mr-2\" />\n New Prompt\n </Button>\n <CollapsibleTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"size-8\">\n <ChevronsUpDown className=\"size-4\" />\n <span className=\"sr-only\">Toggle</span>\n </Button>\n </CollapsibleTrigger>\n </div>\n </div>\n </CardHeader>\n\n <CollapsibleContent className=\"mt-5\">\n <CardContent className=\"space-y-4\">\n {promptsLoading ? (\n <div className=\"text-sm text-muted-foreground\">\n Loading prompts...\n </div>\n ) : agentPrompts.length === 0 ? (\n <div className=\"text-center py-6 border-2 border-dashed rounded-lg\">\n <p className=\"text-sm text-muted-foreground mb-2\">\n No prompts assigned to this agent yet\n </p>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setIsPromptModalOpen(true)}\n >\n <Plus className=\"h-4 w-4 mr-2\" />\n Create First Prompt\n </Button>\n </div>\n ) : (\n <div className=\"grid gap-4\">\n {agentPrompts.map((prompt: any) => (\n <PromptCard\n key={prompt.id}\n prompt={prompt}\n user={user}\n onUpdate={refetchPrompts}\n />\n ))}\n </div>\n )}\n </CardContent>\n </CollapsibleContent>\n </Collapsible>\n </Card>\n\n {/* <FormField\n control={agentForm.control}\n name=\"firewall.enabled\"\n render={({ field }) => (\n <FormItem className=\"flex flex-row items-center justify-between rounded-lg border p-4\">\n <div className=\"space-y-0.5\">\n <FormLabel className=\"text-base\">\n LLM Firewall Protection\n </FormLabel>\n <FormDescription>\n Enable firewall to protect against malicious inputs and outputs.\n </FormDescription>\n </div>\n <FormControl>\n <Switch\n checked={firewallEnabled}\n onCheckedChange={(value) => {\n setFirewallEnabled(value)\n field.onChange(value)\n }}\n />\n </FormControl>\n </FormItem>\n )}\n />\n\n {firewallEnabled && (\n <Card>\n <CardHeader>\n <CardTitle>Firewall Scanner Configuration</CardTitle>\n <CardDescription>\n Configure which security scanners to enable for different types of threats.\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"flex flex-row items-center justify-between rounded-lg border p-4\">\n <div className=\"space-y-0.5\">\n <FormLabel className=\"text-base\">\n Prompt Guard\n </FormLabel>\n <FormDescription>\n Detects and blocks prompt injection attacks.\n </FormDescription>\n </div>\n <Switch\n checked={firewallScanners.promptGuard}\n onCheckedChange={(value) => {\n setFirewallScanners(prev => ({ ...prev, promptGuard: value }))\n }}\n />\n </div>\n\n <div className=\"flex flex-row items-center justify-between rounded-lg border p-4\">\n <div className=\"space-y-0.5\">\n <FormLabel className=\"text-base\">\n Code Shield\n </FormLabel>\n <FormDescription>\n Prevents generation of malicious code or exploits.\n </FormDescription>\n </div>\n <Switch\n checked={firewallScanners.codeShield}\n onCheckedChange={(value) => {\n setFirewallScanners(prev => ({ ...prev, codeShield: value }))\n }}\n />\n </div>\n\n <div className=\"flex flex-row items-center justify-between rounded-lg border p-4\">\n <div className=\"space-y-0.5\">\n <FormLabel className=\"text-base\">\n Agent Alignment\n </FormLabel>\n <FormDescription>\n Ensures responses align with safety guidelines and policies.\n </FormDescription>\n </div>\n <Switch\n checked={firewallScanners.agentAlignment}\n onCheckedChange={(value) => {\n setFirewallScanners(prev => ({ ...prev, agentAlignment: value }))\n }}\n />\n </div>\n\n <div className=\"flex flex-row items-center justify-between rounded-lg border p-4\">\n <div className=\"space-y-0.5\">\n <FormLabel className=\"text-base\">\n Hidden ASCII Detection\n </FormLabel>\n <FormDescription>\n Detects hidden or malformed characters that could bypass other filters.\n </FormDescription>\n </div>\n <Switch\n checked={firewallScanners.hiddenAscii}\n onCheckedChange={(value) => {\n setFirewallScanners(prev => ({ ...prev, hiddenAscii: value }))\n }}\n />\n </div>\n\n <div className=\"flex flex-row items-center justify-between rounded-lg border p-4\">\n <div className=\"space-y-0.5\">\n <FormLabel className=\"text-base\">\n PII Detection\n </FormLabel>\n <FormDescription>\n Identifies and protects personally identifiable information.\n </FormDescription>\n </div>\n <Switch\n checked={firewallScanners.piiDetection}\n onCheckedChange={(value) => {\n setFirewallScanners(prev => ({ ...prev, piiDetection: value }))\n }}\n />\n </div>\n </CardContent>\n </Card>\n )} */}\n <Card >\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n Tools\n {toolsLoading && <Loading className=\"h-4 w-4\" />}\n </CardTitle>\n <CardDescription>\n {enabledTools.length > 0 ? (\n `${enabledTools.length} tool${enabledTools.length === 1 ? '' : 's'} enabled for this agent`\n ) : (\n 'No tools enabled for this agent'\n )}\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-col space-y-4\">\n {/* Search and Filter Controls */}\n <div className=\"space-y-3\">\n <div className=\"flex items-center gap-2\">\n <div className=\"relative flex-1\">\n <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search tools by name or description...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n className=\"pl-10 pr-10\"\n />\n {searchTerm && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0\"\n onClick={() => setSearchTerm(\"\")}\n >\n <X className=\"h-3 w-3\" />\n </Button>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <Select value={selectedCategory} onValueChange={setSelectedCategory}>\n <SelectTrigger className=\"w-[200px]\">\n <SelectValue placeholder=\"Filter by category\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">All categories</SelectItem>\n {availableCategories.map((category) => (\n <SelectItem key={category} value={category} className=\"capitalize\">\n {category}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n {(searchTerm || selectedCategory !== \"all\") && (\n <Button variant=\"outline\" onClick={clearSearch}>\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Clear filters</span>\n </Button>\n )}\n\n {/* Collapse / expand all */}\n\n <Button type={\"button\"} variant=\"outline\" onClick={() => {\n setCollapsedCategories(new Set());\n }}>\n Expand all\n </Button>\n <Button type={\"button\"} variant=\"outline\" onClick={() => {\n setCollapsedCategories(new Set(Object.keys(toolsByCategory)));\n }}>\n Collapse all\n </Button>\n </div>\n <div className=\"ml-auto text-sm text-muted-foreground\">\n {toolsData?.tools?.total || 0} tool{(toolsData?.tools?.total || 0) !== 1 ? 's' : ''}\n {debouncedSearch || selectedCategory !== \"all\" ? ' found' : ' available'}.\n </div>\n </div>\n\n <div className=\"space-y-6\">\n {/* Show tools grouped by category */}\n {selectedCategory === \"all\" ? (\n // Group view: show each category as a collapsible section\n Object.entries(toolsByCategory).map(([categoryName, categoryTools]) => {\n const enabledInCategory = categoryTools.filter(tool =>\n enabledTools.some(et => et.id === tool.id)\n ).length;\n\n const isCollapsed = collapsedCategories.has(categoryName);\n\n return (\n <Collapsible key={categoryName} open={!isCollapsed} onOpenChange={() => toggleCategoryCollapse(categoryName)}>\n <div className=\"flex items-center justify-between p-3 border rounded-lg bg-muted/30\">\n <CollapsibleTrigger asChild>\n <Button variant=\"ghost\" className=\"flex items-center gap-2 p-0 h-auto font-medium\">\n <ChevronsUpDown className=\"h-4 w-4\" />\n <span className=\"capitalize\">{categoryName}</span>\n <Badge variant=\"secondary\" className=\"text-xs\">\n {enabledInCategory}/{categoryTools.length}\n </Badge>\n </Button>\n </CollapsibleTrigger>\n\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => {\n // Bulk enable all tools in this category\n const newlyEnabled = categoryTools\n .filter(tool => !enabledTools.some(et => et.id === tool.id))\n .map(tool => ({\n id: tool.id,\n type: tool.type,\n config: tool.config?.map(configItem => ({\n name: configItem.name,\n variable: ''\n })) || []\n }));\n setEnabledTools([...enabledTools, ...newlyEnabled]);\n }}\n disabled={enabledInCategory === categoryTools.length}\n >\n Enable All\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => {\n // Bulk disable all tools in this category\n const categoryToolIds = categoryTools.map(t => t.id);\n const filtered = enabledTools.filter(et => !categoryToolIds.includes(et.id));\n setEnabledTools(filtered);\n }}\n disabled={enabledInCategory === 0}\n >\n Disable All\n </Button>\n </div>\n </div>\n\n <CollapsibleContent className=\"mt-2\">\n <div className=\"space-y-2 pl-4\">\n {categoryTools.map((tool: Tool) => {\n const isEnabled = enabledTools.some(et => et.id === tool.id);\n const toolConfig = enabledTools.find(et => et.id === tool.id);\n const requiredConfigCount = tool.config?.length || 0;\n const filledConfigCount = toolConfig?.config?.filter(c => c.variable && c.variable.trim() !== '').length || 0;\n const hasEmptyConfigs = isEnabled && requiredConfigCount > 0 && filledConfigCount < requiredConfigCount;\n\n return (\n <div key={tool?.id} className=\"rounded-lg border p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center flex-1\">\n <div className=\"flex-1\">\n <div className=\"flex items-center gap-2\">\n <div className=\"font-medium\">{tool?.name}</div>\n <div className=\"flex items-center gap-1\">\n {\n requiredConfigCount > 0 && isEnabled && <>\n <Badge variant=\"secondary\" className=\"text-xs\">\n {filledConfigCount}/{requiredConfigCount}\n </Badge>\n {hasEmptyConfigs && (\n <AlertCircle className=\"h-4 w-4 text-destructive\" />\n )}\n </>\n }\n <Badge variant={\"outline\"}>{tool?.category}</Badge>\n </div>\n </div>\n <div className=\"text-sm text-muted-foreground mt-1 line-clamp-2\">\n {tool?.description}\n </div>\n </div>\n <Sheet open={sheetOpen === tool.id} onOpenChange={() => {\n if (sheetOpen === tool.id) {\n setSheetOpen(false);\n } else {\n setSheetOpen(tool.id);\n }\n }}>\n {\n (requiredConfigCount > 0 && !isEnabled) ? <SheetTrigger asChild>\n <Button variant=\"ghost\" size=\"sm\">\n <Settings className=\"h-4 w-4\" />\n </Button>\n </SheetTrigger> : <Button type=\"button\" disabled={true} variant=\"ghost\" size=\"sm\">\n <Settings className=\"h-4 w-4\" />\n </Button>\n }\n\n <SheetTrigger asChild>\n <Button className=\"mr-2\" variant=\"ghost\" size=\"sm\">\n <Info className=\"h-4 w-4\" />\n </Button>\n </SheetTrigger>\n <SheetContent className=\"w-[400px] sm:w-[540px]\">\n <SheetHeader>\n <SheetTitle>{tool?.name}</SheetTitle>\n <SheetDescription>\n {tool?.description}\n </SheetDescription>\n </SheetHeader>\n <div className=\"py-6\">\n <div className=\"space-y-4\">\n {/* Tool Configuration in Sheet */}\n {tool.config && tool.config.length > 0 && (\n <div className=\"space-y-4\">\n <div className=\"text-md font-medium\">Configuration variables:</div>\n {tool.config.map((configItem, configIndex) => {\n const currentValue = toolConfig?.config.find(c => c.name === configItem.name)?.variable || '';\n return (\n <div key={configIndex} className=\"space-y-2\">\n {isEnabled ? (\n <VariableSelectionElement\n configItem={configItem}\n currentValue={currentValue}\n variables={variables}\n onVariableSelect={(variableName) => {\n const updated = enabledTools.map(et => {\n if (et.id === tool.id) {\n return {\n ...et,\n config: et.config.map(c =>\n c.name === configItem.name\n ? { ...c, variable: variableName }\n : c\n )\n };\n }\n return et;\n });\n console.log(\"updated\", updated)\n setEnabledTools(updated);\n }}\n />\n ) : (\n <div className=\"text-xs text-muted-foreground p-2 bg-muted rounded\">\n Enable this tool to configure\n </div>\n )}\n </div>\n );\n })}\n </div>\n )}\n </div>\n </div>\n </SheetContent>\n </Sheet>\n </div>\n <Switch\n checked={isEnabled}\n onCheckedChange={(value) => {\n let updated = [...enabledTools];\n if (value) {\n // Add tool with empty config initially\n const newToolConfig = {\n id: tool.id,\n type: tool.type,\n config: tool.config?.map(configItem => ({\n name: configItem.name,\n variable: ''\n })) || []\n };\n updated = [...enabledTools, newToolConfig];\n if (tool.config?.length > 0) {\n setSheetOpen(tool.id);\n }\n } else {\n updated = enabledTools.filter(t => t.id !== tool.id);\n }\n setEnabledTools(updated);\n }}\n />\n </div>\n </div>\n );\n })}\n </div>\n </CollapsibleContent>\n </Collapsible>\n );\n })\n ) : (\n // Filtered view: show tools in selected category only\n <div className=\"space-y-2\">\n {filteredTools.map((tool: Tool) => {\n const isEnabled = enabledTools.some(et => et.id === tool.id);\n const toolConfig = enabledTools.find(et => et.id === tool.id);\n const requiredConfigCount = tool.config?.length || 0;\n const filledConfigCount = toolConfig?.config?.filter(c => c.variable && c.variable.trim() !== '').length || 0;\n const hasEmptyConfigs = isEnabled && requiredConfigCount > 0 && filledConfigCount < requiredConfigCount;\n\n return (\n <div key={tool?.id} className=\"rounded-lg border p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center flex-1\">\n <div className=\"flex-1\">\n <div className=\"flex items-center gap-2\">\n <div className=\"font-medium\">{tool?.name}</div>\n <div className=\"flex items-center gap-1\">\n {\n requiredConfigCount > 0 && isEnabled && <>\n <Badge variant=\"secondary\" className=\"text-xs\">\n {filledConfigCount}/{requiredConfigCount}\n </Badge>\n {hasEmptyConfigs && (\n <AlertCircle className=\"h-4 w-4 text-destructive\" />\n )}\n </>\n }\n <Badge variant={\"outline\"}>{tool?.category}</Badge>\n </div>\n </div>\n <div className=\"text-sm text-muted-foreground mt-1 line-clamp-2\">\n {tool?.description}\n </div>\n </div>\n <Sheet open={sheetOpen === tool.id} onOpenChange={() => {\n if (sheetOpen === tool.id) {\n setSheetOpen(false);\n } else {\n setSheetOpen(tool.id);\n }\n }}>\n {\n (requiredConfigCount > 0 && !isEnabled) ? <SheetTrigger asChild>\n <Button variant=\"ghost\" size=\"sm\">\n <Settings className=\"h-4 w-4\" />\n </Button>\n </SheetTrigger> : <Button type=\"button\" disabled={true} variant=\"ghost\" size=\"sm\">\n <Settings className=\"h-4 w-4\" />\n </Button>\n }\n\n <SheetTrigger asChild>\n <Button className=\"mr-2\" variant=\"ghost\" size=\"sm\">\n <Info className=\"h-4 w-4\" />\n </Button>\n </SheetTrigger>\n <SheetContent className=\"w-[400px] sm:w-[540px]\">\n <SheetHeader>\n <SheetTitle>{tool?.name}</SheetTitle>\n <SheetDescription>\n {tool?.description}\n </SheetDescription>\n </SheetHeader>\n <div className=\"py-6\">\n <div className=\"space-y-4\">\n {/* Tool Configuration in Sheet */}\n {tool.config && tool.config.length > 0 && (\n <div className=\"space-y-4\">\n <div className=\"text-md font-medium\">Configuration variables:</div>\n {tool.config.map((configItem, configIndex) => {\n const currentValue = toolConfig?.config.find(c => c.name === configItem.name)?.variable || '';\n return (\n <div key={configIndex} className=\"space-y-2\">\n {isEnabled ? (\n <VariableSelectionElement\n configItem={configItem}\n currentValue={currentValue}\n variables={variables}\n onVariableSelect={(variableName) => {\n const updated = enabledTools.map(et => {\n if (et.id === tool.id) {\n return {\n ...et,\n config: et.config.map(c =>\n c.name === configItem.name\n ? { ...c, variable: variableName }\n : c\n )\n };\n }\n return et;\n });\n console.log(\"updated\", updated)\n setEnabledTools(updated);\n }}\n />\n ) : (\n <div className=\"text-xs text-muted-foreground p-2 bg-muted rounded\">\n Enable this tool to configure\n </div>\n )}\n </div>\n );\n })}\n </div>\n )}\n </div>\n </div>\n </SheetContent>\n </Sheet>\n </div>\n <Switch\n checked={isEnabled}\n onCheckedChange={(value) => {\n let updated = [...enabledTools];\n if (value) {\n // Add tool with empty config initially\n const newToolConfig = {\n id: tool.id,\n type: tool.type,\n config: tool.config?.map(configItem => ({\n name: configItem.name,\n variable: ''\n })) || []\n };\n updated = [...enabledTools, newToolConfig];\n if (tool.config?.length > 0) {\n setSheetOpen(tool.id);\n }\n } else {\n updated = enabledTools.filter(t => t.id !== tool.id);\n }\n setEnabledTools(updated);\n }}\n />\n </div>\n </div>\n );\n })}\n </div>\n )}\n\n {/* Empty state when no tools match filters */}\n {filteredTools.length === 0 && (searchTerm || selectedCategory !== \"all\") && (\n <div className=\"text-center py-8\">\n <div className=\"text-muted-foreground\">\n No tools found matching your criteria.\n </div>\n <Button variant=\"outline\" size=\"sm\" className=\"mt-2\" onClick={clearSearch}>\n Clear filters\n </Button>\n </div>\n )}\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n </div>\n </form>\n </Form>\n </div>\n </div>\n </div>\n </div>\n </div>\n </Tabs>\n\n {/* Prompt Editor Modal */}\n <PromptEditorModal\n open={isPromptModalOpen}\n onOpenChange={setIsPromptModalOpen}\n onSuccess={refetchPrompts}\n user={user}\n defaultAssignedAgents={[agent.id]}\n />\n </div>\n );\n}\n","\"use client\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { cn } from \"@/lib/utils\";\nimport { type LucideIcon, XIcon } from \"lucide-react\";\nimport type { ComponentProps, HTMLAttributes } from \"react\";\n\nexport type ArtifactProps = HTMLAttributes<HTMLDivElement>;\n\nexport const Artifact = ({ className, ...props }: ArtifactProps) => (\n <div\n className={cn(\n \"flex flex-col overflow-hidden rounded-lg border bg-background shadow-sm\",\n className\n )}\n {...props}\n />\n);\n\nexport type ArtifactHeaderProps = HTMLAttributes<HTMLDivElement>;\n\nexport const ArtifactHeader = ({\n className,\n ...props\n}: ArtifactHeaderProps) => (\n <div\n className={cn(\n \"flex items-center justify-between border-b bg-muted/50 px-4 py-3\",\n className\n )}\n {...props}\n />\n);\n\nexport type ArtifactCloseProps = ComponentProps<typeof Button>;\n\nexport const ArtifactClose = ({\n className,\n children,\n size = \"sm\",\n variant = \"ghost\",\n ...props\n}: ArtifactCloseProps) => (\n <Button\n className={cn(\n \"size-8 p-0 text-muted-foreground hover:text-foreground\",\n className\n )}\n size={size}\n type=\"button\"\n variant={variant}\n {...props}\n >\n {children ?? <XIcon className=\"size-4\" />}\n <span className=\"sr-only\">Close</span>\n </Button>\n);\n\nexport type ArtifactTitleProps = HTMLAttributes<HTMLParagraphElement>;\n\nexport const ArtifactTitle = ({ className, ...props }: ArtifactTitleProps) => (\n <p\n className={cn(\"font-medium text-foreground text-sm\", className)}\n {...props}\n />\n);\n\nexport type ArtifactDescriptionProps = HTMLAttributes<HTMLParagraphElement>;\n\nexport const ArtifactDescription = ({\n className,\n ...props\n}: ArtifactDescriptionProps) => (\n <p className={cn(\"text-muted-foreground text-sm\", className)} {...props} />\n);\n\nexport type ArtifactActionsProps = HTMLAttributes<HTMLDivElement>;\n\nexport const ArtifactActions = ({\n className,\n ...props\n}: ArtifactActionsProps) => (\n <div className={cn(\"flex items-center gap-1\", className)} {...props} />\n);\n\nexport type ArtifactActionProps = ComponentProps<typeof Button> & {\n tooltip?: string;\n label?: string;\n icon?: LucideIcon;\n};\n\nexport const ArtifactAction = ({\n tooltip,\n label,\n icon: Icon,\n children,\n className,\n size = \"sm\",\n variant = \"ghost\",\n ...props\n}: ArtifactActionProps) => {\n const button = (\n <Button\n className={cn(\n \"size-8 p-0 text-muted-foreground hover:text-foreground\",\n className\n )}\n size={size}\n type=\"button\"\n variant={variant}\n {...props}\n >\n {Icon ? <Icon className=\"size-4\" /> : children}\n <span className=\"sr-only\">{label || tooltip}</span>\n </Button>\n );\n\n if (tooltip) {\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent>\n <p>{tooltip}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return button;\n};\n\nexport type ArtifactContentProps = HTMLAttributes<HTMLDivElement>;\n\nexport const ArtifactContent = ({\n className,\n ...props\n}: ArtifactContentProps) => (\n <div className={cn(\"flex-1 overflow-auto p-4\", className)} {...props} />\n);\n","import * as React from \"react\";\nimport {\n Dialog,\n DialogContent,\n DialogTrigger,\n} from \"@/components/ui/dialog\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { Response } from '@/components/ai-elements/response';\n\nimport {\n Artifact,\n ArtifactAction,\n ArtifactActions,\n ArtifactContent,\n ArtifactHeader,\n} from '@/components/ai-elements/artifact';\nimport { CopyIcon, InfoIcon } from \"lucide-react\";\n\nexport function TextPreview({\n text,\n sliceLength\n}: {\n text: string;\n sliceLength?: number;\n}) {\n const { toast } = useToast();\n\n return (\n <Dialog>\n <DialogTrigger asChild>\n <button className=\"cursor-pointer text-sm text-left w-full hover:bg-accent/50 transition-colors rounded-md p-2 group\">\n <span className=\"block\">\n {text?.slice(0, sliceLength ?? 200)}\n {(sliceLength && text.length > sliceLength) ? \"...\" : \"\"}\n </span>\n <span className=\"flex items-center gap-1 text-xs text-muted-foreground mt-1 group-hover:text-foreground transition-colors\">\n <InfoIcon className=\"w-3 h-3\" />\n Click to view full text\n </span>\n </button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-[800px] max-h-[500px] overflow-y-scroll\">\n <Artifact>\n <ArtifactHeader>\n <ArtifactActions>\n <ArtifactAction icon={CopyIcon} label=\"Copy\" tooltip=\"Copy to clipboard\" onClick={async () => {\n await navigator.clipboard.writeText(text);\n toast({ title: \"Copied to clipboard\" });\n }} />\n </ArtifactActions>\n </ArtifactHeader>\n <ArtifactContent>\n <Response>{text}</Response>\n </ArtifactContent>\n </Artifact>\n </DialogContent>\n </Dialog>\n );\n}\n","\"use client\";\n\nimport { Agent } from \"@/types/models/agent\";\nimport { useLottie } from \"lottie-react\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { getPresignedUrl } from \"./uppy-dashboard\";\n\nconst AgentVisual = ({ agent, status, className }: { agent: Agent, status: 'submitted' | 'streaming' | 'ready' | 'error', className?: string }) => {\n return <LottieVisual className={className} agent={agent} status={status} />\n};\n\nconst LottieVisual = ({ agent, status, className }: { agent: Agent, status: 'submitted' | 'streaming' | 'ready' | 'error', className?: string }) => {\n\n const { data: defaultIdleData } = useQuery({\n queryKey: ['defaultAnimation', 'idle'],\n queryFn: async () => {\n const response = await fetch(\"/agent-idle.json\");\n return response.json();\n },\n staleTime: 60 * 60 * 1000, // 1 hour\n enabled: !agent.animation_idle,\n });\n\n const { data: defaultRespondingData } = useQuery({\n queryKey: ['defaultAnimation', 'responding'],\n queryFn: async () => {\n const response = await fetch(\"/agent-responding.json\");\n return response.json();\n },\n staleTime: 60 * 60 * 1000, // 1 hour\n enabled: !agent.animation_responding,\n });\n\n // Fetch custom animation data if available\n const { data: customIdleData } = useQuery({\n queryKey: ['customAnimation', agent.animation_idle],\n queryFn: async () => {\n if (!agent.animation_idle) return null;\n const url = await getPresignedUrl(agent.animation_idle);\n const response = await fetch(url);\n return response.json();\n },\n enabled: !!agent.animation_idle,\n staleTime: 5 * 60 * 1000, // 5 minutes\n });\n\n const { data: customRespondingData } = useQuery({\n queryKey: ['customAnimation', agent.animation_responding],\n queryFn: async () => {\n if (!agent.animation_responding) return null;\n const url = await getPresignedUrl(agent.animation_responding);\n const response = await fetch(url);\n return response.json();\n },\n enabled: !!agent.animation_responding,\n staleTime: 5 * 60 * 1000, // 5 minutes\n });\n\n // Map status to animation configuration\n const getAnimationOptions = () => {\n switch (status) {\n case 'submitted':\n return {\n animationData: customIdleData || defaultIdleData,\n loop: true,\n autoplay: true,\n };\n case 'streaming':\n return {\n animationData: customRespondingData || defaultRespondingData,\n loop: true,\n autoplay: true,\n };\n case 'ready':\n return {\n animationData: customIdleData || defaultIdleData,\n loop: true,\n autoplay: true,\n };\n case 'error':\n return {\n animationData: customIdleData || defaultIdleData,\n loop: true,\n autoplay: true,\n };\n default:\n return {\n animationData: customIdleData || defaultIdleData,\n loop: true,\n autoplay: true,\n };\n }\n };\n\n const { View } = useLottie(getAnimationOptions());\n\n return (\n <>\n <div className=\"\">\n <div className={className}>{View}</div>\n </div>\n </>\n );\n}\n\nexport default AgentVisual;","import * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport * as React from \"react\";\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n} from \"react-hook-form\";\n\nimport { Label } from \"@/components/ui/label\";\nimport { cn } from \"@/lib/utils\";\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = \"FormItem\";\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = \"FormLabel\";\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = \"FormControl\";\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message) : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-sm font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = \"FormMessage\";\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","import { cn } from \"@/lib/utils\";\n\nexport const Loading = ({ className }: { className?: null | string }) => {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\"inline w-4 h-4 text-white animate-spin fill-inherit\", className)}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n className=\"fill-inherit opacity-20\"\n ></path>\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n className=\"fill-inherit\"\n ></path>\n </svg>\n );\n};\n","\"use client\";\n\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className,\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\",\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n"],"names":["AgentDelete","param","deleteAgent","deleteAgentResult","agent","confirmation","value","setValue","useState","jsx_runtime","jsxs","Dialog","jsx","DialogTrigger","asChild","Button","disabled","id","variant","Trash2","className","DialogContent","DialogHeader","DialogTitle","div","Label","htmlFor","Input","onChange","e","target","autoFocus","DialogFooter","loading","onClick","variables","type","Loading","CopyIcon","svg","width","height","viewBox","fill","xmlns","path","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","categories","VariableSelectionElement","configItem","currentValue","onVariableSelect","popoverOpen","setPopoverOpen","React","selectedVariable","find","v","name","description","Popover","open","onOpenChange","modal","PopoverTrigger","role","aria-expanded","ChevronsUpDown","PopoverContent","Command","CommandInput","placeholder","CommandList","CommandEmpty","CommandGroup","map","CommandItem","onSelect","variable","console","log","Check","cn","span","encrypted","default","Card","CardHeader","CardTitle","CardContent","TextPreview","text","sliceLength","agentFormSchema","z","min","message","max","category","optional","nullable","instructions","or","active","providerapikey","firewall","enabled","scanners","promptGuard","codeShield","agentAlignment","hiddenAscii","piiDetection","AgentForm","variablesData","promptsData","toolsData","configContext","refetch","router","useRouter","user","useContext","UserContext","ConfigContext","enabledTools","setEnabledTools","tools","sheetOpen","setSheetOpen","searchTerm","setSearchTerm","selectedCategory","setSelectedCategory","debouncedSearch","setDebouncedSearch","collapsedCategories","setCollapsedCategories","Set","isPromptModalOpen","setIsPromptModalOpen","useEffect","timer","setTimeout","clearTimeout","setProviderapikey","firewallEnabled","setFirewallEnabled","animation_idle","setAnimation_idle","animation_responding","setAnimation_responding","rbac","setRbac","rights_mode","users","RBAC","roles","firewallScanners","setFirewallScanners","toast","useToast","toolsQueryVariables","useMemo","search","undefined","limit","page","data","toolsLoading","useQuery","GET_TOOLS","GET_VARIABLES","categoriesData","GET_TOOL_CATEGORIES","variablesPagination","items","promptsLoading","refetchPrompts","usePrompts","filters","assigned_agents","contains","agentPrompts","prompt_libraryPagination","filteredTools","filter","tool","toolsByCategory","reduce","acc","push","availableCategories","toolCategories","length","Object","keys","clearSearch","toggleCategoryCollapse","prev","newSet","has","categoryName","delete","add","copyAgentId","navigator","clipboard","writeText","title","error","useMutation","REMOVE_AGENT_BY_ID","onCompleted","scroll","updateAgent","updateAgentResult","UPDATE_AGENT_BY_ID","refetchQueries","GET_AGENT_BY_ID","agentForm","useForm","resolver","zodResolver","defaultValues","steps","mode","createAgentSession","CREATE_AGENT_SESSION","handleSubmit","JSON","stringify","Separator","Tabs","defaultValue","Form","form","image","img","src","alt","concat","button","FormField","control","render","field","FormItem","FormLabel","FormControl","FormMessage","p","b","modelName","providerName","TooltipProvider","capabilities","Text","Tooltip","TooltipTrigger","images","Image","TooltipContent","join","files","FileText","audio","Volume2","video","Video","Select","onValueChange","SelectTrigger","SelectValue","SelectContent","SelectItem","Textarea","rows","authenticationInformation","Response","fileUploads","s3endpoint","Collapsible","CollapsibleTrigger","size","CollapsibleContent","FileDataCard","s3key","UppyDashboard","allowedFileTypes","selectionLimit","buttonText","dependencies","onConfirm","AgentVisual","status","Fragment","result","sessionId","agent_sessionsCreateOne","item","FormDescription","Switch","checked","onCheckedChange","RBACControl","initialRightsMode","initialUsers","initialRoles","Plus","PromptCard","prompt","onUpdate","CardDescription","Search","X","total","entries","categoryTools","enabledInCategory","some","et","isCollapsed","Badge","newlyEnabled","config","categoryToolIds","t","includes","toolConfig","isEnabled","requiredConfigCount","filledConfigCount","c","trim","hasEmptyConfigs","AlertCircle","Sheet","SheetTrigger","Settings","Info","SheetContent","SheetHeader","SheetTitle","SheetDescription","configIndex","updated","variableName","PromptEditorModal","onSuccess","defaultAssignedAgents","Artifact","props","ArtifactHeader","ArtifactActions","ArtifactAction","tooltip","label","icon","Icon","children","ArtifactContent","slice","InfoIcon","LottieVisual","defaultIdleData","queryKey","queryFn","response","fetch","json","staleTime","defaultRespondingData","customIdleData","url","getPresignedUrl","customRespondingData","View","useLottie","getAnimationOptions","animationData","loop","autoplay","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","__webpack_exports__","Z","FormProvider","FormFieldContext","Provider","Controller","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","formState","useFormContext","fieldState","formItemId","formDescriptionId","formMessageId","ref","displayName","Slot","aria-describedby","aria-invalid","body","String","aria-hidden","SwitchPrimitives"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8568],{64042:function(e,n,t){Promise.resolve().then(t.bind(t,99335))},99335:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return d},dynamic:function(){return o}});var r=t(57437);t(2265);var i=t(69953),c=t(7211),u=t(93022),l=t(65613),s=t(20653),a=t(27689);let o="force-dynamic";function d(e){let{params:n}=e,{data:t,loading:o,error:d,refetch:f}=(0,c.aM)(a.as,{variables:{id:n.id}});return o?(0,r.jsx)("div",{children:(0,r.jsx)(u.O,{className:"w-full h-full"})}):d?(0,r.jsxs)(l.bZ,{variant:"destructive",children:[(0,r.jsx)(s.LPM,{className:"size-4"}),(0,r.jsx)(l.Cd,{children:"Error"}),(0,r.jsx)(l.X,{children:"Error loading agent."})]}):(null==t?void 0:t.agentById)?(0,r.jsx)(i.Z,{agent:t.agentById,refetch:f}):(0,r.jsxs)(l.bZ,{variant:"destructive",children:[(0,r.jsx)(s.LPM,{className:"size-4"}),(0,r.jsx)(l.Cd,{children:"Error"}),(0,r.jsx)(l.X,{children:"Agent not found."})]})}},22252:function(e,n,t){"use strict";t.d(n,{Z:function(){return r}});let r=(0,t(39763).Z)("AlertCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},33245:function(e,n,t){"use strict";t.d(n,{Z:function(){return r}});let r=(0,t(39763).Z)("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},81363:function(e,n,t){"use strict";t.d(n,{T:function(){return i}});var r=t(99649);function i(e,n){let t=(0,r.Q)(e),i=(0,r.Q)(n);return 12*(t.getFullYear()-i.getFullYear())+(t.getMonth()-i.getMonth())}},27742:function(e,n,t){"use strict";t.d(n,{V:function(){return i}});var r=t(99649);function i(e){let n=(0,r.Q)(e),t=n.getMonth();return n.setFullYear(n.getFullYear(),t+1,0),n.setHours(23,59,59,999),n}}},function(e){e.O(0,[6840,329,8310,3954,4705,9851,7629,7093,6148,847,1942,7648,7823,8068,5799,605,4567,1206,5338,3825,1785,5110,3171,1425,1713,192,7086,342,7301,6373,3832,8030,3750,6367,9953,2971,2117,1744],function(){return e(e.s=64042)}),_N_E=e.O()}]);
|
|
2
|
+
//# sourceMappingURL=page-e4a4693953329671.js.map
|