@wacht/jsx 0.0.1-alpha.43 → 0.0.1-alpha.44
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/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*
|
|
16
16
|
* This source code is licensed under the MIT license found in the
|
|
17
17
|
* LICENSE file in the root directory of this source tree.
|
|
18
|
-
*/var Ws;function jd(){return Ws||(Ws=1,process.env.NODE_ENV!=="production"&&function(){function t(v,x){return v===x&&(v!==0||1/v===1/x)||v!==v&&x!==x}function r(v,x){l||s.startTransition===void 0||(l=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var y=x();if(!u){var $=x();a(y,$)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),u=!0)}$=p({inst:{value:y,getSnapshot:x}});var S=$[0].inst,k=$[1];return c(function(){S.value=y,S.getSnapshot=x,o(S)&&k({inst:S})},[v,y,x]),g(function(){return o(S)&&k({inst:S}),v(function(){o(S)&&k({inst:S})})},[v]),h(y),y}function o(v){var x=v.getSnapshot;v=v.value;try{var y=x();return!a(v,y)}catch{return!0}}function n(v,x){return x()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var s=i,a=typeof Object.is=="function"?Object.is:t,p=s.useState,g=s.useEffect,c=s.useLayoutEffect,h=s.useDebugValue,l=!1,u=!1,m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?n:r;dn.useSyncExternalStore=s.useSyncExternalStore!==void 0?s.useSyncExternalStore:m,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),dn}var Vs;function _d(){return Vs||(Vs=1,process.env.NODE_ENV==="production"?Kr.exports=wd():Kr.exports=jd()),Kr.exports}var kd=_d();const sc=0,ac=1,ic=2,Gs=3;var Hs=Object.prototype.hasOwnProperty;function Kn(t,r){var o,n;if(t===r)return!0;if(t&&r&&(o=t.constructor)===r.constructor){if(o===Date)return t.getTime()===r.getTime();if(o===RegExp)return t.toString()===r.toString();if(o===Array){if((n=t.length)===r.length)for(;n--&&Kn(t[n],r[n]););return n===-1}if(!o||typeof t=="object"){n=0;for(o in t)if(Hs.call(t,o)&&++n&&!Hs.call(r,o)||!(o in r)||!Kn(t[o],r[o]))return!1;return Object.keys(r).length===n}}return t!==t&&r!==r}const jt=new WeakMap,$t=()=>{},qe=$t(),Qn=Object,Se=t=>t===qe,lt=t=>typeof t=="function",It=(t,r)=>({...t,...r}),cc=t=>lt(t.then),un={},Qr={},ys="undefined",Vr=typeof window!=ys,Xn=typeof document!=ys,Cd=Vr&&"Deno"in window,Sd=()=>Vr&&typeof window.requestAnimationFrame!=ys,lc=(t,r)=>{const o=jt.get(t);return[()=>!Se(r)&&t.get(r)||un,n=>{if(!Se(r)){const s=t.get(r);r in Qr||(Qr[r]=s),o[5](r,It(s,n),s||un)}},o[6],()=>!Se(r)&&r in Qr?Qr[r]:!Se(r)&&t.get(r)||un]};let Jn=!0;const zd=()=>Jn,[es,ts]=Vr&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[$t,$t],$d=()=>{const t=Xn&&document.visibilityState;return Se(t)||t!=="hidden"},Ed=t=>(Xn&&document.addEventListener("visibilitychange",t),es("focus",t),()=>{Xn&&document.removeEventListener("visibilitychange",t),ts("focus",t)}),Id=t=>{const r=()=>{Jn=!0,t()},o=()=>{Jn=!1};return es("online",r),es("offline",o),()=>{ts("online",r),ts("offline",o)}},Pd={isOnline:zd,isVisible:$d},Rd={initFocus:Ed,initReconnect:Id},qs=!i.useId,Fr=!Vr||Cd,Td=t=>Sd()?window.requestAnimationFrame(t):setTimeout(t,1),pn=Fr?i.useEffect:i.useLayoutEffect,hn=typeof navigator<"u"&&navigator.connection,Ys=!Fr&&hn&&(["slow-2g","2g"].includes(hn.effectiveType)||hn.saveData),Xr=new WeakMap,Md=t=>Qn.prototype.toString.call(t),fn=(t,r)=>t===`[object ${r}]`;let Od=0;const rs=t=>{const r=typeof t,o=Md(t),n=fn(o,"Date"),s=fn(o,"RegExp"),a=fn(o,"Object");let p,g;if(Qn(t)===t&&!n&&!s){if(p=Xr.get(t),p)return p;if(p=++Od+"~",Xr.set(t,p),Array.isArray(t)){for(p="@",g=0;g<t.length;g++)p+=rs(t[g])+",";Xr.set(t,p)}if(a){p="#";const c=Qn.keys(t).sort();for(;!Se(g=c.pop());)Se(t[g])||(p+=g+":"+rs(t[g])+",");Xr.set(t,p)}}else p=n?t.toJSON():r=="symbol"?t.toString():r=="string"?JSON.stringify(t):""+t;return p},ws=t=>{if(lt(t))try{t=t()}catch{t=""}const r=t;return t=typeof t=="string"?t:(Array.isArray(t)?t.length:t)?rs(t):"",[t,r]};let Ad=0;const os=()=>++Ad;async function dc(...t){const[r,o,n,s]=t,a=It({populateCache:!0,throwOnError:!0},typeof s=="boolean"?{revalidate:s}:s||{});let p=a.populateCache;const g=a.rollbackOnError;let c=a.optimisticData;const h=m=>typeof g=="function"?g(m):g!==!1,l=a.throwOnError;if(lt(o)){const m=o,v=[],x=r.keys();for(const y of x)!/^\$(inf|sub)\$/.test(y)&&m(r.get(y)._k)&&v.push(y);return Promise.all(v.map(u))}return u(o);async function u(m){const[v]=ws(m);if(!v)return;const[x,y]=lc(r,v),[$,S,k,I]=jt.get(r),E=()=>{const P=$[v];return(lt(a.revalidate)?a.revalidate(x().data,m):a.revalidate!==!1)&&(delete k[v],delete I[v],P&&P[0])?P[0](ic).then(()=>x().data):x().data};if(t.length<3)return E();let w=n,b,f=!1;const z=os();S[v]=[z,0];const _=!Se(c),j=x(),M=j.data,R=j._c,C=Se(R)?M:R;if(_&&(c=lt(c)?c(C,M):c,y({data:c,_c:C})),lt(w))try{w=w(C)}catch(P){b=P,f=!0}if(w&&cc(w))if(w=await w.catch(P=>{b=P,f=!0}),z!==S[v][0]){if(f)throw b;return w}else f&&_&&h(b)&&(p=!0,y({data:C,_c:qe}));if(p&&!f)if(lt(p)){const P=p(w,C);y({data:P,error:qe,_c:qe})}else y({data:w,error:qe,_c:qe});if(S[v][1]=os(),Promise.resolve(E()).then(()=>{y({_c:qe})}),f){if(l)throw b;return}return w}}const Zs=(t,r)=>{for(const o in t)t[o][0]&&t[o][0](r)},Ld=(t,r)=>{if(!jt.has(t)){const o=It(Rd,r),n=Object.create(null),s=dc.bind(qe,t);let a=$t;const p=Object.create(null),g=(l,u)=>{const m=p[l]||[];return p[l]=m,m.push(u),()=>m.splice(m.indexOf(u),1)},c=(l,u,m)=>{t.set(l,u);const v=p[l];if(v)for(const x of v)x(u,m)},h=()=>{if(!jt.has(t)&&(jt.set(t,[n,Object.create(null),Object.create(null),Object.create(null),s,c,g]),!Fr)){const l=o.initFocus(setTimeout.bind(qe,Zs.bind(qe,n,sc))),u=o.initReconnect(setTimeout.bind(qe,Zs.bind(qe,n,ac)));a=()=>{l&&l(),u&&u(),jt.delete(t)}}};return h(),[t,s,h,a]}return[t,jt.get(t)[4]]},Dd=(t,r,o,n,s)=>{const a=o.errorRetryCount,p=s.retryCount,g=~~((Math.random()+.5)*(1<<(p<8?p:8)))*o.errorRetryInterval;!Se(a)&&p>a||setTimeout(n,g,s)},Nd=Kn,[uc,Or]=Ld(new Map),Fd=It({onLoadingSlow:$t,onSuccess:$t,onError:$t,onErrorRetry:Dd,onDiscarded:$t,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Ys?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Ys?5e3:3e3,compare:Nd,isPaused:()=>!1,cache:uc,mutate:Or,fallback:{}},Pd),Bd=(t,r)=>{const o=It(t,r);if(r){const{use:n,fallback:s}=t,{use:a,fallback:p}=r;n&&a&&(o.use=n.concat(a)),s&&p&&(o.fallback=It(s,p))}return o},Ud=i.createContext({}),Wd="$inf$",pc=Vr&&window.__SWR_DEVTOOLS_USE__,Vd=pc?window.__SWR_DEVTOOLS_USE__:[],Gd=()=>{pc&&(window.__SWR_DEVTOOLS_REACT__=i)},Hd=t=>lt(t[1])?[t[0],t[1],t[2]||{}]:[t[0],null,(t[1]===null?t[2]:t[1])||{}],hc=()=>It(Fd,i.useContext(Ud)),qd=t=>(r,o,n)=>t(r,o&&((...a)=>{const[p]=ws(r),[,,,g]=jt.get(uc);if(p.startsWith(Wd))return o(...a);const c=g[p];return Se(c)?o(...a):(delete g[p],c)}),n),Yd=Vd.concat(qd),Zd=t=>function(...o){const n=hc(),[s,a,p]=Hd(o),g=Bd(n,p);let c=t;const{use:h}=g,l=(h||[]).concat(Yd);for(let u=l.length;u--;)c=l[u](c);return c(s,a||g.fetcher||null,g)},Kd=(t,r,o)=>{const n=r[t]||(r[t]=[]);return n.push(o),()=>{const s=n.indexOf(o);s>=0&&(n[s]=n[n.length-1],n.pop())}};Gd();const gn=i.use||(t=>{switch(t.status){case"pending":throw t;case"fulfilled":return t.value;case"rejected":throw t.reason;default:throw t.status="pending",t.then(r=>{t.status="fulfilled",t.value=r},r=>{t.status="rejected",t.reason=r}),t}}),mn={dedupe:!0},Qd=(t,r,o)=>{const{cache:n,compare:s,suspense:a,fallbackData:p,revalidateOnMount:g,revalidateIfStale:c,refreshInterval:h,refreshWhenHidden:l,refreshWhenOffline:u,keepPreviousData:m}=o,[v,x,y,$]=jt.get(n),[S,k]=ws(t),I=i.useRef(!1),E=i.useRef(!1),w=i.useRef(S),b=i.useRef(r),f=i.useRef(o),z=()=>f.current,_=()=>z().isVisible()&&z().isOnline(),[j,M,R,C]=lc(n,S),P=i.useRef({}).current,T=Se(p)?Se(o.fallback)?qe:o.fallback[S]:p,B=(ue,U)=>{for(const pe in P){const Q=pe;if(Q==="data"){if(!s(ue[Q],U[Q])&&(!Se(ue[Q])||!s(H,U[Q])))return!1}else if(U[Q]!==ue[Q])return!1}return!0},L=i.useMemo(()=>{const ue=!S||!r?!1:Se(g)?z().isPaused()||a?!1:c!==!1:g,U=fe=>{const W=It(fe);return delete W._k,ue?{isValidating:!0,isLoading:!0,...W}:W},pe=j(),Q=C(),Y=U(pe),ne=pe===Q?Y:U(Q);let me=Y;return[()=>{const fe=U(j());return B(fe,me)?(me.data=fe.data,me.isLoading=fe.isLoading,me.isValidating=fe.isValidating,me.error=fe.error,me):(me=fe,fe)},()=>ne]},[n,S]),F=kd.useSyncExternalStore(i.useCallback(ue=>R(S,(U,pe)=>{B(pe,U)||ue()}),[n,S]),L[0],L[1]),O=!I.current,A=v[S]&&v[S].length>0,J=F.data,re=Se(J)?T&&cc(T)?gn(T):T:J,V=F.error,q=i.useRef(re),H=m?Se(J)?Se(q.current)?re:q.current:J:re,ee=A&&!Se(V)?!1:O&&!Se(g)?g:z().isPaused()?!1:a?Se(re)?!1:c:Se(re)||c,le=!!(S&&r&&O&&ee),oe=Se(F.isValidating)?le:F.isValidating,de=Se(F.isLoading)?le:F.isLoading,K=i.useCallback(async ue=>{const U=b.current;if(!S||!U||E.current||z().isPaused())return!1;let pe,Q,Y=!0;const ne=ue||{},me=!y[S]||!ne.dedupe,fe=()=>qs?!E.current&&S===w.current&&I.current:S===w.current,W={isValidating:!1,isLoading:!1},N=()=>{M(W)},D=()=>{const ae=y[S];ae&&ae[1]===Q&&delete y[S]},Z={isValidating:!0};Se(j().data)&&(Z.isLoading=!0);try{if(me&&(M(Z),o.loadingTimeout&&Se(j().data)&&setTimeout(()=>{Y&&fe()&&z().onLoadingSlow(S,o)},o.loadingTimeout),y[S]=[U(k),os()]),[pe,Q]=y[S],pe=await pe,me&&setTimeout(D,o.dedupingInterval),!y[S]||y[S][1]!==Q)return me&&fe()&&z().onDiscarded(S),!1;W.error=qe;const ae=x[S];if(!Se(ae)&&(Q<=ae[0]||Q<=ae[1]||ae[1]===0))return N(),me&&fe()&&z().onDiscarded(S),!1;const te=j().data;W.data=s(te,pe)?te:pe,me&&fe()&&z().onSuccess(pe,S,o)}catch(ae){D();const te=z(),{shouldRetryOnError:_e}=te;te.isPaused()||(W.error=ae,me&&fe()&&(te.onError(ae,S,te),(_e===!0||lt(_e)&&_e(ae))&&(!z().revalidateOnFocus||!z().revalidateOnReconnect||_())&&te.onErrorRetry(ae,S,te,be=>{const ze=v[S];ze&&ze[0]&&ze[0](Gs,be)},{retryCount:(ne.retryCount||0)+1,dedupe:!0})))}return Y=!1,N(),!0},[S,n]),se=i.useCallback((...ue)=>dc(n,w.current,...ue),[]);if(pn(()=>{b.current=r,f.current=o,Se(J)||(q.current=J)}),pn(()=>{if(!S)return;const ue=K.bind(qe,mn);let U=0;z().revalidateOnFocus&&(U=Date.now()+z().focusThrottleInterval);const Q=Kd(S,v,(Y,ne={})=>{if(Y==sc){const me=Date.now();z().revalidateOnFocus&&me>U&&_()&&(U=me+z().focusThrottleInterval,ue())}else if(Y==ac)z().revalidateOnReconnect&&_()&&ue();else{if(Y==ic)return K();if(Y==Gs)return K(ne)}});return E.current=!1,w.current=S,I.current=!0,M({_k:k}),ee&&(y[S]||(Se(re)||Fr?ue():Td(ue))),()=>{E.current=!0,Q()}},[S]),pn(()=>{let ue;function U(){const Q=lt(h)?h(j().data):h;Q&&ue!==-1&&(ue=setTimeout(pe,Q))}function pe(){!j().error&&(l||z().isVisible())&&(u||z().isOnline())?K(mn).then(U):U()}return U(),()=>{ue&&(clearTimeout(ue),ue=-1)}},[h,l,u,S]),i.useDebugValue(H),a&&Se(re)&&S){if(!qs&&Fr)throw new Error("Fallback data is required when using Suspense in SSR.");b.current=r,f.current=o,E.current=!1;const ue=$[S];if(!Se(ue)){const U=se(ue);gn(U)}if(Se(V)){const U=K(mn);Se(H)||(U.status="fulfilled",U.value=!0),gn(U)}else throw V}return{mutate:se,get data(){return P.data=!0,H},get error(){return P.error=!0,V},get isValidating(){return P.isValidating=!0,oe},get isLoading(){return P.isLoading=!0,de}}},Fe=Zd(Qd);async function G(t){if(!t.ok){let o=`HTTP ${t.status}: ${t.statusText}`;try{const n=await t.json();n.message?o=n.message:n.errors&&n.errors.length>0&&(o=n.errors[0].message||o)}catch{}throw new Error(o)}return{data:(await t.json()).data}}function fc(t){const{client:r}=Be(),o=i.useCallback(async()=>{const c=await r(`/api/agent/contexts?token=${encodeURIComponent(t)}`,{method:"GET"});return(await G(c)).data},[r,t]),{data:n,error:s,mutate:a}=Fe(t?`wacht-agent-sessions:${t}`:null,o,{revalidateOnFocus:!1}),p=i.useCallback(async c=>{const h=new FormData;h.append("title",c.title),c.system_instructions&&h.append("system_instructions",c.system_instructions);const l=await r(`/api/agent/contexts?token=${encodeURIComponent(t)}`,{method:"POST",body:h}),u=await G(l);return await a(m=>m&&{...m,data:[u.data,...m.data]}),u.data},[r,t,a]),g=i.useCallback(async c=>{await r(`/api/agent/contexts/${c}/delete?token=${encodeURIComponent(t)}`,{method:"POST"}),await a(h=>h&&{...h,data:h.data.filter(l=>l.id!==c)})},[r,t,a]);return{sessions:(n==null?void 0:n.data)||[],loading:!n&&!s,error:s,createSession:p,deleteSession:g,refetch:async()=>{await a()}}}const gc=i.createContext(void 0);function qo(){const t=i.useContext(gc);if(!t)throw new Error("useAgentConversationContext must be used within AgentConversationProvider");return t}function Xd({children:t,agentName:r,token:o,platformAdapter:n,defaultSessionId:s,onSessionCreated:a,onSessionDeleted:p,onError:g}){const[c,h]=i.useState(s?{id:s,title:"Conversation",status:"idle",last_activity_at:new Date().toISOString(),created_at:new Date().toISOString()}:null),[l,u]=i.useState(!1),{sessions:m,loading:v,error:x,createSession:y,deleteSession:$,refetch:S}=fc(o);i.useEffect(()=>{if(s&&m.length>0){const b=m.find(f=>f.id===s);b&&h(b)}},[s,m]);const k=i.useCallback(b=>{h(b),u(!1)},[]),I=i.useCallback(async b=>{try{const f=b||`Chat ${new Date().toLocaleDateString()} ${new Date().toLocaleTimeString()}`,z=await y({title:f});return h(z),a==null||a(z),z}catch(f){const z=f instanceof Error?f.message:"Failed to create session";throw g==null||g(z),f}},[y,a,g]),E=i.useCallback(async b=>{try{await $(b),(c==null?void 0:c.id)===b&&h(null),p==null||p(b)}catch(f){const z=f instanceof Error?f.message:"Failed to delete session";throw g==null||g(z),f}},[$,c,p,g]),w={agentName:r,token:o,platformAdapter:n,sessions:m,selectedSession:c,loadingSessions:v,sessionError:x,selectSession:k,createSession:I,deleteSession:E,refreshSessions:S,showHistory:l,setShowHistory:u,onSessionCreated:a,onSessionDeleted:p,onError:g};return e.jsx(gc.Provider,{value:w,children:t})}var mc=(t=>(t.XOauth="x_oauth",t.GithubOauth="github_oauth",t.GitlabOauth="gitlab_oauth",t.GoogleOauth="google_oauth",t.FacebookOauth="facebook_oauth",t.MicrosoftOauth="microsoft_oauth",t.LinkedinOauth="linkedin_oauth",t.DiscordOauth="discord_oauth",t.AppleOauth="apple_oauth",t))(mc||{});function Jd(t,r){const o={username:eu(t,r),email:tu(t,r),phone:ru(t,r),email_otp:ou(t,r),magic_link:nu(t,r),oauth:su(t),generic:au(t,r)};return function(s){return o[s]}}function eu(t,r){return async({username:o,password:n})=>{var g,c;const s=new FormData;s.append("strategy","plain_username"),s.append("username",o),s.append("password",n);const a=await t("/auth/signin",{method:"POST",body:s}),p=await G(a);return"data"in p&&((c=(g=p.data)==null?void 0:g.signin_attempts)!=null&&c.length)&&r(p.data.signin_attempts.at(-1)||null),p}}function tu(t,r){return async({email:o,password:n})=>{var g,c;const s=new FormData;s.append("strategy","plain_email"),s.append("email",o),s.append("password",n);const a=await t("/auth/signin",{method:"POST",body:s}),p=await G(a);return"data"in p&&((c=(g=p.data)==null?void 0:g.signin_attempts)!=null&&c.length)&&r(p.data.signin_attempts.at(-1)||null),p}}function ru(t,r){return async({phone:o})=>{var p,g;const n=new FormData;n.append("strategy","phone_otp"),n.append("phone",o);const s=await t("/auth/signin",{method:"POST",body:n}),a=await G(s);return"data"in a&&((g=(p=a.data)==null?void 0:p.signin_attempts)!=null&&g.length)&&r(a.data.signin_attempts.at(-1)||null),a}}function ou(t,r){return async({email:o})=>{var p,g;const n=new FormData;n.append("strategy","email_otp"),n.append("email",o);const s=await t("/auth/signin",{method:"POST",body:n}),a=await G(s);return"data"in a&&((g=(p=a.data)==null?void 0:p.signin_attempts)!=null&&g.length)&&r(a.data.signin_attempts.at(-1)||null),a}}function nu(t,r){return async({email:o})=>{var p,g;const n=new FormData;n.append("strategy","magic_link"),n.append("email",o);const s=await t("/auth/signin",{method:"POST",body:n}),a=await G(s);return"data"in a&&((g=(p=a.data)==null?void 0:p.signin_attempts)!=null&&g.length)&&r(a.data.signin_attempts.at(-1)||null),a}}function su(t){return async({provider:r,redirectUri:o})=>{const n=new URLSearchParams({provider:r});o&&n.append("redirect_uri",o);const s=await t(`/auth/oauth2/init?${n.toString()}`,{method:"POST"}),a=await G(s);return"data"in a&&a.data.oauth_url&&(window.location.href=a.data.oauth_url),a}}function au(t,r){return async({email:o,username:n,password:s,phone:a,strategy:p,token:g})=>{var u,m;const c=new FormData;p&&c.append("strategy",p),o&&c.append("email",o),n&&c.append("username",n),s&&c.append("password",s),a&&c.append("phone",a),g&&c.append("token",g);const h=await t("/auth/signin",{method:"POST",body:c}),l=await G(h);return"data"in l&&((m=(u=l.data)==null?void 0:u.signin_attempts)!=null&&m.length)&&r(l.data.signin_attempts.at(-1)||null),l}}function xc(){const{client:t,loading:r}=Be(),[o,n]=i.useState(null);return r?{loading:!0,signIn:null,signinAttempt:null,discardSignInAttempt:()=>{n(null)},setSignInAttempt:n}:{loading:!1,signinAttempt:o,signIn:{createStrategy:Jd(t,n),completeVerification:async s=>{var c,h;const a=new FormData;a.append("verification_code",s);const p=await t(`/auth/attempt-verification?attempt_identifier=${o==null?void 0:o.id}&identifier_type=signin`,{method:"POST",body:a}),g=await G(p);if("data"in g&&((h=(c=g.data)==null?void 0:c.signin_attempts)!=null&&h.length)){const l=g.data.signin_attempts.at(-1);return n(l||null),g.data}else throw new Error("Verification failed")},prepareVerification:async s=>{var g;const a=new URL("/auth/prepare-verification",window.location.origin);a.searchParams.set("attempt_identifier",((g=o==null?void 0:o.id)==null?void 0:g.toString())||""),a.searchParams.set("strategy",s.strategy),a.searchParams.set("identifier_type","signin"),s.strategy==="phone_otp"&&s.lastDigits?a.searchParams.set("last_digits",s.lastDigits):(s.strategy==="email_otp"&&s.redirectUri||s.strategy==="magic_link"&&s.redirectUri)&&a.searchParams.set("redirect_uri",s.redirectUri);const p=await t(a.pathname+a.search,{method:"POST"});return G(p)},completeProfile:async s=>{var c;if(!o)throw new Error("No signin attempt found");const a=new FormData;for(const[h,l]of Object.entries(s))l&&a.append(h,l);const p=await t(`/auth/complete-profile?attempt_id=${o.id}`,{method:"POST",body:a}),g=await G(p);if("data"in g&&g.data){const h=(c=g.data.signin_attempts)==null?void 0:c.find(l=>l.id===o.id);return h&&n(h),g.data}else throw new Error("Profile completion failed")},identify:async s=>{const a=new FormData;a.append("identifier",s);const p=await t("/auth/identify",{method:"POST",body:a});return(await G(p)).data},initEnterpriseSso:async(s,a)=>{const p=new URLSearchParams({connection_id:s});a&&p.append("redirect_uri",a);const g=await t(`/auth/sso/login?${p.toString()}`,{method:"POST"});return(await G(g)).data}},discardSignInAttempt:()=>{n(null)},setSignInAttempt:n}}function Br(t){const{loading:r,signIn:o,signinAttempt:n,discardSignInAttempt:s,setSignInAttempt:a}=xc();if(r)return{loading:!0,signIn:null,signinAttempt:null,discardSignInAttempt:s,setSignInAttempt:a};const p=(()=>{switch(t){case"username":return o.createStrategy("username");case"email":return o.createStrategy("email");case"phone":return o.createStrategy("phone");case"email_otp":return o.createStrategy("email_otp");case"magic_link":return o.createStrategy("magic_link");case"oauth":return o.createStrategy("oauth");case"generic":return o.createStrategy("generic");default:throw new Error("Invalid sign-in strategy")}})();return{loading:!1,signinAttempt:n,signIn:{create:p,completeVerification:o.completeVerification,prepareVerification:o.prepareVerification,completeProfile:o.completeProfile,identify:o.identify,initEnterpriseSso:o.initEnterpriseSso},discardSignInAttempt:s,setSignInAttempt:a}}function iu(t,r,o){return{create:async n=>{var g,c,h;const s=new FormData;for(const[l,u]of Object.entries(n))s.append(l,u);const a=await t("/auth/signup",{method:"POST",body:s}),p=await G(a);return"data"in p&&((c=(g=p.data)==null?void 0:g.signup_attempts)!=null&&c.length)&&o(((h=p.data.signup_attempts)==null?void 0:h.at(-1))||null),p},prepareVerification:async n=>{var p;const s=new URL("/auth/prepare-verification",window.location.origin);s.searchParams.set("attempt_identifier",((p=r==null?void 0:r.id)==null?void 0:p.toString())||""),s.searchParams.set("strategy",n.strategy),s.searchParams.set("identifier_type","signup"),n.strategy==="phone_otp"&&n.lastDigits?s.searchParams.set("last_digits",n.lastDigits):n.strategy==="email_otp"&&n.redirectUri&&s.searchParams.set("redirect_uri",n.redirectUri);const a=await t(s.pathname+s.search,{method:"POST"});return G(a)},completeVerification:async n=>{var g,c;const s=new FormData;s.append("verification_code",n);const a=await t(`/auth/attempt-verification?attempt_identifier=${r==null?void 0:r.id}&identifier_type=signup`,{method:"POST",body:s}),p=await G(a);return"data"in p&&((c=(g=p.data)==null?void 0:g.signup_attempts)!=null&&c.length)&&o(p.data.signup_attempts.at(-1)||null),p},validateDeploymentInvitation:async n=>{try{const s=await t(`/deployment/invitations/validate?token=${encodeURIComponent(n)}`,{method:"GET"}),a=await G(s);return"data"in a&&a.data?a.data:{valid:!1,message:"Failed to validate invitation",error_code:"VALIDATION_ERROR"}}catch(s){return{valid:!1,message:s.message||"Failed to validate invitation",error_code:"NETWORK_ERROR"}}}}}function vc(){const{client:t,loading:r}=Be(),[o,n]=i.useState(null);return r?{loading:!0,signUp:null,signupAttempt:null,discardSignupAttempt:()=>{n(null)}}:{loading:!1,signupAttempt:o,discardSignupAttempt:()=>{n(null)},signUp:iu(t,o,n)}}const Ge=()=>{const{adapter:t,deployment:r}=ve(),o=t.useNavigate(),n=(c,h)=>{o?o(c,h):window.location.href=c},s=c=>{if(c)return c;const l=new URLSearchParams(window.location.search).get("redirect_uri");return l||window.location.href};return{navigate:n,navigateToSignIn:c=>{if(!r)return;const h=s(c),l=new URLSearchParams;l.set("redirect_uri",h),(r==null?void 0:r.mode)==="staging"&&l.set("__dev_session__",localStorage.getItem("__dev_session__")??""),n(`${r.ui_settings.sign_in_page_url}?${l.toString()}`,{replace:!0})},navigateToAccountSelection:c=>{if(!r)return;const h=s(c),l=new URLSearchParams;l.set("redirect_uri",h),(r==null?void 0:r.mode)==="staging"&&l.set("__dev_session__",localStorage.getItem("__dev_session__")??""),n(`https://${r.frontend_host}?${l.toString()}`,{replace:!0})},navigateToSignUp:c=>{if(!r)return;const h=s(c),l=new URLSearchParams;l.set("redirect_uri",h),(r==null?void 0:r.mode)==="staging"&&l.set("__dev_session__",localStorage.getItem("__dev_session__")??""),n(`${r.ui_settings.sign_up_page_url}?${l.toString()}`,{replace:!0})}}};async function cu(t){const r=await t("/session",{method:"GET"});return(await G(r)).data}async function lu(t,r){const o=await t(`/session/switch-sign-in?sign_in_id=${r}`,{method:"POST"});return G(o)}async function du(t,r){const o=r?`/session/sign-out?sign_in_id=${r}`:"/session/sign-out",n=await t(o,{method:"POST"});return G(n)}async function uu(t,r){const o=await t(`/session/switch-organization${r?`?organization_id=${r}`:""}`,{method:"POST"});return G(o)}async function pu(t,r){const o=await t(`/session/switch-workspace?workspace_id=${r}`,{method:"POST"});return G(o)}const ns=new Map,Ar=new Map;function _t(){ns.clear(),Ar.clear()}async function hu(t,r){const o=await t(`/session/token${r?`?template=${r}`:""}`);return G(o)}function Ue(){const{client:t,loading:r}=Be(),{deployment:o}=ve(),{navigate:n}=Ge(),{cache:s}=hc(),{data:a,error:p,mutate:g,isLoading:c}=Fe(r?null:"/session",()=>cu(t),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),h=i.useCallback(async()=>{await g(void 0,{revalidate:!0})},[g]),l=i.useCallback(async(u="default")=>{if(!a)throw new Error("no session");const m=ns.get(u);if(m&&m.expires>Date.now())return(m==null?void 0:m.token)||"";Ar.get(u)||Ar.set(u,hu(t,u));const v=await Ar.get(u);return Ar.delete(u),ns.set(u,v.data),v.data.token},[t,a==null?void 0:a.active_signin]);return r||!a||c?{loading:!0,error:p,session:null,switchSignIn:null,switchOrganization:null,switchWorkspace:null,signOut:null,getToken:null,refetch:h}:{loading:c,error:p,session:a,switchSignIn:async u=>{await lu(t,u),_t(),await Or("/me/organization-memberships",void 0,{revalidate:!1}),await Or("/me/workspace-memberships",void 0,{revalidate:!1}),await g(void 0,{revalidate:!0}),await Or("/me/organization-memberships"),await Or("/me/workspace-memberships")},signOut:async u=>{await du(t,u);const m=["/session","/user","/me/signins","/me/organization-memberships","/me/workspace-memberships","wacht-notifications:channel-counts"],v=["wacht-notifications:","wacht-agent-sessions:","wacht-agent-contexts:","wacht-org-domains:","wacht-api-workspaces:","wacht-api-organizations:"];if(s instanceof Map){const x=Array.from(s.keys());for(const y of x){let $=!1;(m.includes(y)||typeof y=="string"&&v.some(S=>y.startsWith(S)))&&($=!0),$&&s.delete(y)}}_t(),await g(void 0,{revalidate:!0}),o!=null&&o.ui_settings&&(u&&o.ui_settings.after_sign_out_one_page_url?n(o.ui_settings.after_sign_out_one_page_url):!u&&o.ui_settings.after_sign_out_all_page_url&&n(o.ui_settings.after_sign_out_all_page_url))},switchOrganization:async u=>{await uu(t,u),_t(),await g(void 0,{revalidate:!0})},switchWorkspace:async u=>{await pu(t,u),_t(),await g(void 0,{revalidate:!0})},getToken:l,refetch:h}}const Yo=()=>{const{organizationMemberships:t,refetch:r,loading:o}=Ct(),{client:n}=Be(),{refetch:s}=Ue(),a=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/roles`,{method:"GET"}))).data,[n]),p=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/members`,{method:"GET"}))).data,[n]),g=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/invitations`,{method:"GET"}))).data,[n]),c=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/domains`,{method:"GET"}))).data,[n]),h=i.useCallback(async(F,O)=>{await n(`/organizations/${F.id}/members/${O.id}/remove`,{method:"POST"})},[n]),l=i.useCallback(async F=>{const O=new FormData;O.append("name",F.name),F.image&&O.append("image",F.image),F.description&&O.append("description",F.description);const A=await G(await n("/organizations",{method:"POST",body:O}));return _t(),await r(),await s(),A},[s,r,n]),u=i.useCallback(async(F,O)=>{const A=Object.entries(O).reduce((re,[V,q])=>(q&&re.append(V,q),re),new FormData),J=await G(await n(`/organizations/${F.id}/update`,{method:"POST",body:A}));return await r(),J},[r,n]),m=i.useCallback(async(F,O)=>{await n(`/organizations/${F.id}/roles/${O.id}/remove`,{method:"POST"})},[n]),v=i.useCallback(async(F,O)=>{const A=new FormData;return A.append("domain",O.fqdn),await G(await n(`/organizations/${F.id}/domains`,{method:"POST",body:A}))},[n]),x=i.useCallback(async(F,O)=>await G(await n(`/organizations/${F.id}/domains/${O.id}/verify`,{method:"POST"})),[n]),y=i.useCallback(async(F,O)=>await G(await n(`/organizations/${F.id}/domains/${O.id}/delete`,{method:"POST"})),[n]),$=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/enterprise-connections`,{method:"GET"}))).data,[n]),S=i.useCallback(async(F,O)=>{const A=new FormData;return A.append("protocol",O.protocol),O.domain_id&&A.append("domain_id",O.domain_id),O.idp_entity_id&&A.append("idp_entity_id",O.idp_entity_id),O.idp_sso_url&&A.append("idp_sso_url",O.idp_sso_url),O.idp_certificate&&A.append("idp_certificate",O.idp_certificate),O.oidc_client_id&&A.append("oidc_client_id",O.oidc_client_id),O.oidc_client_secret&&A.append("oidc_client_secret",O.oidc_client_secret),O.oidc_issuer_url&&A.append("oidc_issuer_url",O.oidc_issuer_url),O.oidc_scopes&&A.append("oidc_scopes",O.oidc_scopes),O.jit_enabled!==void 0&&A.append("jit_enabled",String(O.jit_enabled)),O.attribute_mapping&&A.append("attribute_mapping",JSON.stringify(O.attribute_mapping)),(await G(await n(`/organizations/${F.id}/enterprise-connections`,{method:"POST",body:A}))).data},[n]),k=i.useCallback(async(F,O,A)=>{const J=new FormData;return A.domain_id&&J.append("domain_id",A.domain_id),A.idp_entity_id&&J.append("idp_entity_id",A.idp_entity_id),A.idp_sso_url&&J.append("idp_sso_url",A.idp_sso_url),A.idp_certificate&&J.append("idp_certificate",A.idp_certificate),A.oidc_client_id&&J.append("oidc_client_id",A.oidc_client_id),A.oidc_client_secret&&J.append("oidc_client_secret",A.oidc_client_secret),A.oidc_issuer_url&&J.append("oidc_issuer_url",A.oidc_issuer_url),A.oidc_scopes&&J.append("oidc_scopes",A.oidc_scopes),A.attribute_mapping&&J.append("attribute_mapping",JSON.stringify(A.attribute_mapping)),(await G(await n(`/organizations/${F.id}/enterprise-connections/${O}/update`,{method:"POST",body:J}))).data},[n]),I=i.useCallback(async(F,O)=>{await n(`/organizations/${F.id}/enterprise-connections/${O}/delete`,{method:"POST"})},[n]),E=i.useCallback(async(F,O)=>{const A=new FormData;return A.append("protocol",O.protocol),O.idp_entity_id&&A.append("idp_entity_id",O.idp_entity_id),O.idp_sso_url&&A.append("idp_sso_url",O.idp_sso_url),O.idp_certificate&&A.append("idp_certificate",O.idp_certificate),O.oidc_issuer_url&&A.append("oidc_issuer_url",O.oidc_issuer_url),O.oidc_client_id&&A.append("oidc_client_id",O.oidc_client_id),O.oidc_client_secret&&A.append("oidc_client_secret",O.oidc_client_secret),(await G(await n(`/organizations/${F.id}/enterprise-connections/test`,{method:"POST",body:A}))).data},[n]),w=i.useCallback(async(F,O)=>(await G(await n(`/organizations/${F.id}/enterprise-connections/${O}/test`,{method:"POST"}))).data,[n]),b=i.useCallback(async(F,O)=>(await G(await n(`/organizations/${F.id}/enterprise-connections/${O}/scim/token`,{method:"POST"}))).data,[n]),f=i.useCallback(async(F,O)=>(await G(await n(`/organizations/${F.id}/enterprise-connections/${O}/scim/token`,{method:"GET"}))).data,[n]),z=i.useCallback(async(F,O)=>{await n(`/organizations/${F.id}/enterprise-connections/${O}/scim/token/revoke`,{method:"POST"})},[n]),_=i.useCallback(async(F,O)=>{const A=new FormData;return A.append("name",O.name),O.permissions&&O.permissions.forEach((re,V)=>{A.append(`permissions[${V}]`,re)}),await G(await n(`/organizations/${F.id}/roles`,{method:"POST",body:A}))},[n]),j=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/leave`,{method:"POST"}))).data,[n]),M=i.useCallback(async F=>{const O=await G(await n(`/organizations/${F.id}/delete`,{method:"POST"}));return _t(),await r(),await s(),O.data},[n,r,s]),R=i.useCallback(async(F,O,A)=>(await G(await n(`/organizations/${F.id}/members/${O.id}/roles/${A.id}/add`,{method:"POST"}))).data,[n]),C=i.useCallback(async(F,O,A)=>(await G(await n(`/organizations/${F.id}/members/${O.id}/roles/${A.id}/remove`,{method:"POST"}))).data,[n]),P=i.useCallback(async(F,O)=>{var re,V;const A=new FormData;return A.append("email",O.email),A.append("role_id",O.organizationRole.id),(re=O.workspace)!=null&&re.id&&A.append("workspace_id",O.workspace.id),(V=O.workspaceRole)!=null&&V.id&&A.append("workspace_role_id",O.workspaceRole.id),(await G(await n(`/organizations/${F.id}/invitations`,{method:"POST",body:A}))).data},[n]),T=i.useCallback(async(F,O)=>(await G(await n(`/organizations/${F.id}/invitations/${O.id}/discard`,{method:"POST"}))).data,[n]),B=i.useCallback(async(F,O)=>(await G(await n(`/organizations/${F.id}/invitations/${O.id}/resend`,{method:"POST"}))).data,[n]);return{organizations:i.useMemo(()=>t==null?void 0:t.map(F=>F.organization),[t]),loading:o,error:null,refetch:r,leaveOrganization:j,getOrganizationRoles:a,getOrganizationMembers:p,removeOrganizationMember:h,createOrganization:l,getOrganizationInvitations:g,getOrganizationDomains:c,addOrganizationDomain:v,verifyOrganizationDomain:x,removeOrganizationDomain:y,addRoleToOrganizationMember:R,removeRoleFromOrganizationMember:C,inviteOrganizationMember:P,discardOrganizationInvitation:T,resendOrganizationInvitation:B,updateOrganization:u,addRole:_,removeOrganizationRoles:m,deleteOrganization:M,getEnterpriseConnections:$,createEnterpriseConnection:S,updateEnterpriseConnection:k,deleteEnterpriseConnection:I,testEnterpriseConnectionConfig:E,testEnterpriseConnection:w,generateSCIMToken:b,getSCIMToken:f,revokeSCIMToken:z}},Ze=()=>{const{loading:t,error:r,refetch:o,getOrganizationMembers:n,getOrganizationRoles:s,leaveOrganization:a,removeOrganizationMember:p,getOrganizationInvitations:g,getOrganizationDomains:c,removeOrganizationDomain:h,addOrganizationDomain:l,verifyOrganizationDomain:u,addRoleToOrganizationMember:m,removeRoleFromOrganizationMember:v,inviteOrganizationMember:x,discardOrganizationInvitation:y,resendOrganizationInvitation:$,updateOrganization:S,removeOrganizationRoles:k,getEnterpriseConnections:I,createEnterpriseConnection:E,updateEnterpriseConnection:w,deleteEnterpriseConnection:b,testEnterpriseConnectionConfig:f,testEnterpriseConnection:z,generateSCIMToken:_,getSCIMToken:j,revokeSCIMToken:M}=Yo(),{session:R,error:C,loading:P}=Ue(),{organizationMemberships:T}=Ct(),B=i.useMemo(()=>(T==null?void 0:T.find(D=>{var Z;return D.id===((Z=R==null?void 0:R.active_signin)==null?void 0:Z.active_organization_membership_id)}))||null,[T,R]),L=i.useMemo(()=>(B==null?void 0:B.organization)||null,[B]),F=i.useCallback(async D=>L?await S(L,D):[],[L,S]),O=i.useCallback(async()=>L?await n(L):[],[L,n]),A=i.useCallback(async()=>L?await s(L):[],[L,s]),J=i.useCallback(async D=>L?await p(L,D):[],[L,p]),re=i.useCallback(async D=>L?await k(L,D):void 0,[L,k]),V=i.useCallback(async()=>L?await c(L):[],[L,c]),q=i.useCallback(async D=>L?await l(L,D):void 0,[L,l]),H=i.useCallback(async D=>L?await u(L,D):void 0,[L,u]),ee=i.useCallback(async D=>L?await h(L,D):void 0,[L,h]),le=i.useCallback(async(D,Z)=>L?await m(L,D,Z):void 0,[L,m]),oe=i.useCallback(async(D,Z)=>L?await v(L,D,Z):void 0,[L,v]),de=i.useCallback(async D=>L?await x(L,D):void 0,[L,x]),K=i.useCallback(async D=>L?await y(L,D):void 0,[L,y]),se=i.useCallback(async D=>L?await $(L,D):void 0,[L,$]),xe=i.useCallback(async()=>{L&&await a(L)},[L,a]),ue=i.useCallback(async()=>L?await g(L):[],[L,g]),U=i.useCallback(async()=>L?await I(L):[],[L,I]),pe=i.useCallback(async D=>{if(L)return await E(L,D)},[L,E]),Q=i.useCallback(async(D,Z)=>{if(L)return await w(L,D,Z)},[L,w]),Y=i.useCallback(async D=>{L&&await b(L,D)},[L,b]),ne=i.useCallback(async D=>L?await f(L,D):null,[L,f]),me=i.useCallback(async D=>L?await z(L,D):null,[L,z]),fe=i.useCallback(async D=>{if(L)return await _(L,D)},[L,_]),W=i.useCallback(async D=>{if(L)return await j(L,D)},[L,j]),N=i.useCallback(async D=>{L&&await M(L,D)},[L,M]);return P||t?{activeOrganization:null,activeMembership:null,loading:!0,error:C||r,updateOrganization:null,getRoles:null,getMembers:null,getDomains:null,addDomain:null,verifyDomain:null,removeDomain:null,removeRole:null,getInvitations:null,removeMember:null,addMemberRole:null,removeMemberRole:null,inviteMember:null,discardInvitation:null,resendInvitation:null,leave:null,getEnterpriseConnections:null,createEnterpriseConnection:null,updateEnterpriseConnection:null,deleteEnterpriseConnection:null,generateSCIMToken:null,getSCIMToken:null,revokeSCIMToken:null}:{activeOrganization:L,activeMembership:B,loading:!1,refetch:o,getRoles:A,updateOrganization:F,getMembers:O,getDomains:V,addDomain:q,verifyDomain:H,removeDomain:ee,getInvitations:ue,removeMember:J,leave:xe,removeRole:re,addMemberRole:le,removeMemberRole:oe,inviteMember:de,discardInvitation:K,resendInvitation:se,getEnterpriseConnections:U,createEnterpriseConnection:pe,updateEnterpriseConnection:Q,deleteEnterpriseConnection:Y,testEnterpriseConnectionConfig:ne,testEnterpriseConnection:me,generateSCIMToken:fe,getSCIMToken:W,revokeSCIMToken:N,error:null}};async function fu(t){return(await G(await t("/me/organization-memberships"))).data}const Ct=()=>{const{client:t,loading:r}=Be(),{data:o,isLoading:n,error:s,mutate:a}=Fe(r?null:"/me/organization-memberships",()=>fu(t),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),p=i.useCallback(async()=>{await a(void 0,{revalidate:!0})},[a]);return{organizationMemberships:o,loading:r||n,error:s,refetch:p}};async function gu(t){return(await G(await t("/me/workspace-memberships"))).data}async function mu(t,r,o){return(await G(await t(`/workspaces/${r}/members/${o}/remove`,{method:"POST"}))).data}const Zo=()=>{const{client:t,loading:r}=Be(),{deployment:o}=ve(),{data:n,isLoading:s,error:a,mutate:p}=Fe(!r&&(o!=null&&o.b2b_settings.workspaces_enabled)?"/me/workspace-memberships":null,()=>gu(t),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),g=i.useCallback(async()=>{await p(void 0,{revalidate:!0})},[p]);return{workspaceMemberships:n,loading:r||s,error:a,refetch:g}},Pt=()=>{const{workspaceMemberships:t,refetch:r,loading:o,error:n}=Zo(),{client:s}=Be(),a=i.useMemo(()=>t==null?void 0:t.map(w=>({...w.workspace,organization:w.organization,eligibility_restriction:w.eligibility_restriction})),[t]),p=i.useCallback(async(w,b,f,z)=>{const _=new FormData;_.append("name",b),f&&_.append("image",f),z&&_.append("description",z),_.append("organization_id",w);const j=await G(await s("/workspaces",{method:"POST",body:_}));return _t(),await r(),j.data},[s,r]),g=i.useCallback(async(w,b)=>{const f=await mu(s,w,b);return await r(),f},[s,r]),c=i.useCallback(async(w,b)=>{const f=new FormData;b.name&&f.append("name",b.name),b.description&&f.append("description",b.description),b.image&&f.append("image",b.image),b.enforce_2fa!==void 0&&f.append("enforce_2fa",String(b.enforce_2fa)),b.enable_ip_restriction!==void 0&&f.append("enable_ip_restriction",String(b.enable_ip_restriction)),b.whitelisted_ips&&b.whitelisted_ips.forEach(_=>f.append("whitelisted_ips",_));const z=await G(await s(`/workspaces/${w.id}/update`,{method:"POST",body:f}));return await r(),z.data},[s,r]),h=i.useCallback(async w=>{const b=await G(await s(`/workspaces/${w.id}/delete`,{method:"POST"}));return _t(),await r(),b.data},[s,r]),l=i.useCallback(async w=>(await G(await s(`/workspaces/${w.id}/members`,{method:"GET"}))).data,[s]),u=i.useCallback(async w=>(await G(await s(`/workspaces/${w.id}/roles`,{method:"GET"}))).data,[s]),m=i.useCallback(async(w,b,f)=>{const z=new FormData;return z.append("name",b),f.forEach(j=>z.append("permissions",j)),(await G(await s(`/workspaces/${w.id}/roles`,{method:"POST",body:z}))).data},[s]),v=i.useCallback(async(w,b)=>(await G(await s(`/workspaces/${w.id}/roles/${b.id}/delete`,{method:"POST"}))).data,[s]),x=i.useCallback(async(w,b)=>{const f=await G(await s(`/workspaces/${w.id}/members/${b}/remove`,{method:"POST"}));return await r(),f.data},[s,r]),y=i.useCallback(async(w,b,f)=>(await G(await s(`/workspaces/${w.id}/members/${b}/roles/${f}/add`,{method:"POST"}))).data,[s]),$=i.useCallback(async(w,b,f)=>(await G(await s(`/workspaces/${w.id}/members/${b}/roles/${f}/remove`,{method:"POST"}))).data,[s]),S=i.useCallback(async w=>(await G(await s(`/organizations/${w.organization.id}/invitations`,{method:"GET"}))).data.filter(f=>String(f.workspace_id)===String(w.id)),[s]),k=i.useCallback(async(w,b,f)=>{const z=new FormData;return z.append("email",b),z.append("workspace_id",w.id),z.append("workspace_role_id",f),(await G(await s(`/organizations/${w.organization.id}/invitations`,{method:"POST",body:z}))).data},[s]),I=i.useCallback(async(w,b)=>(await G(await s(`/organizations/${w.organization.id}/invitations/${b}/discard`,{method:"POST"}))).data,[s]),E=i.useCallback(async(w,b)=>(await G(await s(`/organizations/${w.organization.id}/invitations/${b}/resend`,{method:"POST"}))).data,[s]);return{workspaces:a||[],loading:o,error:n,refetch:r,leaveWorkspace:g,createWorkspace:p,updateWorkspace:c,deleteWorkspace:h,getWorkspaceMembers:l,getWorkspaceRoles:u,createWorkspaceRole:m,deleteWorkspaceRole:v,removeWorkspaceMember:x,addWorkspaceMemberRole:y,removeWorkspaceMemberRole:$,getWorkspaceInvitations:S,createWorkspaceInvitation:k,discardWorkspaceInvitation:I,resendWorkspaceInvitation:E}},Rt=()=>{const{refetch:t,loading:r,error:o,workspaces:n,leaveWorkspace:s,updateWorkspace:a,deleteWorkspace:p,getWorkspaceMembers:g,getWorkspaceRoles:c,createWorkspaceRole:h,deleteWorkspaceRole:l,removeWorkspaceMember:u,addWorkspaceMemberRole:m,removeWorkspaceMemberRole:v,getWorkspaceInvitations:x,createWorkspaceInvitation:y,discardWorkspaceInvitation:$,resendWorkspaceInvitation:S}=Pt(),{workspaceMemberships:k}=Zo(),{session:I,loading:E,error:w}=Ue(),b=i.useMemo(()=>(k==null?void 0:k.find(H=>{var ee;return H.id===((ee=I==null?void 0:I.active_signin)==null?void 0:ee.active_workspace_membership_id)}))||null,[k,I]),f=i.useMemo(()=>(b==null?void 0:b.workspace)||null,[b]),z=i.useCallback(async()=>{var H;if(!(!f||!((H=I==null?void 0:I.active_signin)!=null&&H.user_id)))return await s(f.id,I.active_signin.user_id)},[f,s,I]),_=i.useCallback(async H=>{if(f)return await a(f,H)},[f,a]),j=i.useCallback(async()=>{if(f)return await p(f)},[f,p]),M=i.useCallback(async()=>f?await g(f):[],[f,g]),R=i.useCallback(async()=>f?await c(f):[],[f,c]),C=i.useCallback(async(H,ee)=>{if(f)return await h(f,H,ee)},[f,h]),P=i.useCallback(async H=>{if(f)return await l(f,H)},[f,l]),T=i.useCallback(async H=>{if(f)return await u(f,H)},[f,u]),B=i.useCallback(async(H,ee)=>{if(f)return await m(f,H,ee)},[f,m]),L=i.useCallback(async(H,ee)=>{if(f)return await v(f,H,ee)},[f,v]),F=i.useMemo(()=>(n==null?void 0:n.find(H=>H.id===(f==null?void 0:f.id)))||null,[n,f]),O=i.useCallback(async()=>F?await x(F):[],[F,x]),A=i.useCallback(async(H,ee)=>{if(F)return await y(F,H,ee)},[F,y]),J=i.useCallback(async H=>{if(F)return await $(F,H)},[F,$]),re=i.useCallback(async H=>{if(F)return await S(F,H)},[F,S]),V=r||E,q=o||w;return V?{activeWorkspace:null,activeMembership:null,loading:!0,error:q,refetch:t,leave:null,updateWorkspace:null,deleteWorkspace:null,getMembers:null,getRoles:null,createRole:null,deleteRole:null,inviteMember:null,removeMember:null,addMemberRole:null,removeMemberRole:null,getInvitations:null,discardInvitation:null,resendInvitation:null}:{activeWorkspace:f,activeMembership:b,loading:!1,error:q,refetch:t,leave:z,updateWorkspace:_,deleteWorkspace:j,getMembers:M,getRoles:R,createRole:C,deleteRole:P,inviteMember:A,removeMember:T,addMemberRole:B,removeMemberRole:L,getInvitations:O,discardInvitation:J,resendInvitation:re}},xu=async t=>(await G(await t("/me"))).data,vu=async t=>(await G(await t("/me/signins"))).data;function sr(){const{client:t,loading:r}=Be(),{data:o,error:n,isLoading:s,mutate:a}=Fe(r?null:"/user",()=>xu(t)),p=async P=>{const T=new FormData;for(const[L,F]of Object.entries(P))F!=null&&F!==""&&T.append(L,String(F));const B=await G(await t("/me",{method:"POST",body:T}));return a(),B},g=async()=>await G(await t("/me/email-addresses",{method:"GET"})),c=async P=>await G(await t(`/me/email-addresses/${P}`,{method:"GET"})),h=async P=>{const T=new FormData;return T.append("email",P),await G(await t("/me/email-addresses",{method:"POST",body:T}))},l=async P=>await G(await t(`/me/email-addresses/${P}/delete`,{method:"POST"})),u=async P=>await G(await t(`/me/email-addresses/${P}/prepare-verification`,{method:"POST"})),m=async(P,T)=>await G(await t(`/me/email-addresses/${P}/attempt-verification?code=${T}`,{method:"POST"})),v=async(P,T)=>{const B=new FormData;return B.append("phone_number",P),B.append("country_code",T),await G(await t("/me/phone-numbers",{method:"POST",body:B}))},x=async P=>await G(await t(`/me/phone-numbers/${P}/delete`,{method:"POST"})),y=async P=>await G(await t(`/me/phone-numbers/${P}/prepare-verification`,{method:"POST"})),$=async(P,T)=>{const B=new FormData;return B.append("code",T),await G(await t(`/me/phone-numbers/${P}/attempt-verification`,{method:"POST",body:B}))},S=async P=>{const T=await G(await t(`/me/phone-numbers/${P}/make-primary`,{method:"POST"}));return a(),T},k=async P=>await G(await t(`/me/email-addresses/${P}/make-primary`,{method:"POST"})),I=async()=>(await G(await t("/me/authenticator",{method:"POST"}))).data,E=async(P,T)=>{const B=new FormData;return B.append("authenticator_id",P),T.forEach(F=>{B.append("codes",F)}),await G(await t("/me/authenticator/attempt-verification",{method:"POST",body:B}))},w=async P=>await G(await t(`/me/authenticator/${P}/delete`,{method:"POST"})),b=async()=>(await G(await t("/me/backup-codes",{method:"POST"}))).data,f=async P=>{const T=new FormData;return T.append("file",P),await G(await t("/me/profile-picture",{method:"POST",body:T}))},z=async()=>(await G(await t("/me/backup-codes/regenerate",{method:"POST"}))).data,_=async(P,T)=>{const B=new FormData;return B.append("current_password",P),B.append("new_password",T),await G(await t("/me/update-password",{method:"POST",body:B}))},j=async P=>{const T=new FormData;T.append("current_password",P);const B=await G(await t("/me/remove-password",{method:"POST",body:T}));return a(),B},M=async P=>{const T=new FormData;return T.append("password",P),await G(await t("/me/account/delete",{method:"POST",body:T}))},R=async P=>await G(await t(`/me/social-connections/${P}/disconnect`,{method:"POST"})),C=async({provider:P,redirectUri:T})=>{var F;const B=new URLSearchParams({provider:P});T&&B.append("redirect_uri",T);const L=await G(await t(`/me/init-sso-connection?${B.toString()}`,{method:"POST"}));return"data"in L&&((F=L.data)!=null&&F.oauth_url)&&window.open(L.data.oauth_url,"_blank"),L};return{user:{...o,refetch:a},loading:r||s,error:n||null,updateProfile:p,getEmailAddresses:g,getEmailAddress:c,createEmailAddress:h,deleteEmailAddress:l,prepareEmailVerification:u,attemptEmailVerification:m,makeEmailPrimary:k,createPhoneNumber:v,deletePhoneNumber:x,preparePhoneVerification:y,attemptPhoneVerification:$,makePhonePrimary:S,setupAuthenticator:I,verifyAuthenticator:E,deleteAuthenticator:w,generateBackupCodes:b,regenerateBackupCodes:z,updateProfilePicture:f,disconnectSocialConnection:R,connectSocialAccount:C,updatePassword:_,removePassword:j,deleteAccount:M}}function bc(){const{client:t,loading:r}=Be(),{data:o,error:n,isLoading:s,mutate:a}=Fe(r?null:"/me/signins",()=>vu(t));return{signins:o,error:n||null,removeSignin:async g=>await G(await t(`/me/signins/${g}/signout`,{method:"POST"})),refetch:a,loading:s||r}}function bu(){const{session:t,loading:r}=Ue(),{loading:o,organizationMemberships:n}=Ct(),{loading:s,workspaceMemberships:a}=Zo();if(r||o||s)return{loading:!0,orgMembership:null,workspaceMembership:null};const p=i.useMemo(()=>!t||!t.signins||t.signins.length===0?null:n==null?void 0:n.find(c=>{var h;return c.id===((h=t.active_signin)==null?void 0:h.active_organization_membership_id)}),[t]),g=i.useMemo(()=>!t||!t.signins||t.signins.length===0?null:a==null?void 0:a.find(c=>{var h;return c.id===((h=t.active_signin)==null?void 0:h.active_workspace_membership_id)}),[t]);return{loading:!1,orgMembership:p,workspaceMembership:g}}function yc(){const{client:t,loading:r}=Be(),[o,n]=i.useState(!1),s=async a=>{n(!0);try{const p=new FormData;for(const[h,l]of Object.entries(a))l&&p.append(h,l);const g=await t("/waitlist/join",{method:"POST",body:p});return await G(g)}finally{n(!1)}};return r?{loading:!0,joinWaitlist:null}:{loading:o,joinWaitlist:s}}function wc(){const{client:t,loading:r}=Be(),[o,n]=i.useState(!1),[s,a]=i.useState(null),[p,g]=i.useState(null),[c,h]=i.useState(null),[l,u]=i.useState(!1),[m,v]=i.useState(null);i.useEffect(()=>{if(l||r)return;const y=new URLSearchParams(window.location.search),$=y.get("code"),S=y.get("state"),k=y.get("error"),I=y.get("error_description");if(!$&&!k){u(!0);const E=new Error("No OAuth callback data found.");a(E);return}if(u(!0),n(!0),k){const E=I||k,w=new Error(`OAuth Error: ${E}`);a(w),n(!1);return}if($&&S)x($,S);else{const E=new Error("Missing required OAuth parameters");a(E),n(!1)}},[l,r]);const x=async(y,$)=>{try{let S,k;try{const w=$.split(".");if(w.length!==2)throw new Error("Invalid OAuth state format - missing signature");const b=w[0].replace(/-/g,"+").replace(/_/g,"/"),f=b.length%4?"=".repeat(4-b.length%4):"",_=atob(b+f).split("|")[0];if(_==="sign_in")S="/auth/oauth2/callback",k="GET";else if(_==="connect_social")S="/me/sso-connection-callback",k="POST";else throw new Error(`Unknown OAuth action: ${_}`)}catch(w){const b=w instanceof Error?w:new Error("Failed to parse OAuth state");a(new Error(`Invalid OAuth callback: ${b.message}. The authorization link may be expired or malformed. Please try signing in again.`)),n(!1);return}const I=await t(`${S}?code=${encodeURIComponent(y)}&state=${encodeURIComponent($)}`,{method:k}),E=await G(I);if("data"in E){const w=E.data.session,b=E.data.redirect_uri||null;if(g(w),h(b),w.signin_attempts&&w.signin_attempts.length>0){const f=w.signin_attempts.at(-1);f&&v(f)}}else{const w=new Error("SSO callback failed");a(w)}}catch(S){const k=S instanceof Error?S:new Error("Unknown error occurred");a(k)}finally{n(!1)}};return{loading:o,error:s,session:p,redirectUri:c,processed:l,signinAttempt:m}}function jc(){const{client:t,loading:r}=Be(),[o,n]=i.useState(!1),[s,a]=i.useState(null);return{loading:r||o,verifyMagicLink:async g=>{if(!g.token||!g.attempt)throw new Error("Invalid magic link parameters");n(!0),a(null);try{const c=new URL("/auth/verify-magic-link",window.location.origin);c.searchParams.set("token",g.token),c.searchParams.set("attempt",g.attempt),g.redirectUri&&c.searchParams.set("redirect_uri",g.redirectUri);const h=await t(c.pathname+c.search,{method:"GET"}),l=await G(h);return n(!1),a(!0),l}catch(c){throw n(!1),a(!1),c}},success:s}}function _c(){const[t,r]=i.useState({});return i.useEffect(()=>{const o=new URLSearchParams(window.location.search);r({token:o.get("token")||void 0,attempt:o.get("attempt")||void 0,redirectUri:o.get("redirect_uri")||void 0})},[]),t}function kc(){const{client:t,loading:r}=Be();return{loading:r,forgotPassword:async a=>{const p=new FormData;p.append("email",a);const g=await t("/auth/forgot-password",{method:"POST",body:p});return await G(g)},verifyOtp:async(a,p)=>{const g=new FormData;g.append("email",a),g.append("otp",p);const c=await t("/auth/forgot-password",{method:"POST",body:g});return await G(c)},resetPassword:async(a,p)=>{const g=new FormData;g.append("token",a),g.append("password",p);const c=await t("/auth/reset-password",{method:"POST",body:g});return await G(c)}}}function Cc({enabled:t=!0,channels:r,organizationIds:o,workspaceIds:n,onNotification:s,onError:a,reconnectDelay:p=1e3,maxReconnectAttempts:g=5}={}){const{session:c,loading:h}=Ue(),{deployment:l,loading:u}=ve(),[m,v]=i.useState(!1),[x,y]=i.useState(null),$=i.useRef(null),S=i.useRef(null),k=i.useRef(0),I=i.useRef(null),E=i.useRef(s),w=i.useRef(a),b=i.useRef(r),f=i.useRef(o),z=i.useRef(n),_=i.useRef(p),j=i.useRef(g);E.current=s,w.current=a,b.current=r,f.current=o,z.current=n,_.current=p,j.current=g;const M=i.useCallback(()=>{S.current&&(clearTimeout(S.current),S.current=null),I.current&&(clearInterval(I.current),I.current=null),$.current&&($.current.close(),$.current=null)},[]),R=i.useCallback(async()=>{var F;if(!t||h||u||!c||!l)return;M();const T=new URL(l.backend_host),B=T.protocol==="https:"?"wss:":"ws:",L=new URL("/realtime/notifications",`${B}//${T.host}`);if(l.mode==="staging"){const O=localStorage.getItem("__dev_session__");O&&L.searchParams.set("__dev_session__",O)}b.current&&b.current.length>0&&b.current.forEach(O=>L.searchParams.append("channels",O)),f.current&&f.current.length>0&&f.current.forEach(O=>L.searchParams.append("organization_ids",O.toString())),z.current&&z.current.length>0&&z.current.forEach(O=>L.searchParams.append("workspace_ids",O.toString()));try{const O=new WebSocket(L.toString());$.current=O,O.onopen=()=>{v(!0),y(null),k.current=0,I.current=setInterval(()=>{O.readyState===WebSocket.OPEN&&O.send("ping")},3e4)},O.onmessage=A=>{var J,re;try{const V=JSON.parse(A.data);if(V.type==="notification"&&V.data)(J=E.current)==null||J.call(E,V.data);else if(V.type==="error"){const q=V.error||"Unknown error occurred";y(q),(re=w.current)==null||re.call(w,q)}else V.type}catch{}},O.onerror=()=>{var A;y("Connection error occurred"),(A=w.current)==null||A.call(w,"Connection error occurred")},O.onclose=A=>{var J;if(v(!1),I.current&&(clearInterval(I.current),I.current=null),t&&A.code!==1e3&&k.current<j.current){k.current++;const re=_.current*Math.pow(2,k.current-1);S.current=setTimeout(()=>{R()},re)}else k.current>=j.current&&(y("Max reconnection attempts reached"),(J=w.current)==null||J.call(w,"Max reconnection attempts reached"))}}catch{y("Failed to connect"),(F=w.current)==null||F.call(w,"Failed to connect")}},[t,h,u,c,l,M]);i.useEffect(()=>(R(),()=>{M()}),[R,M]),i.useEffect(()=>{$.current&&$.current.readyState===WebSocket.OPEN&&R()},[r,o,n,R]);const C=i.useCallback(()=>{M(),v(!1)},[M]),P=i.useCallback(()=>{k.current=0,R()},[R]);return{isConnected:m,connectionError:x,disconnect:C,reconnect:P}}async function yu(t,r){const o=new URLSearchParams;r&&(r.limit&&o.append("limit",r.limit.toString()),r.offset&&o.append("offset",r.offset.toString()),r.channels&&r.channels.forEach(p=>o.append("channels",p)),r.organization_ids&&r.organization_ids.forEach(p=>o.append("organization_ids",p.toString())),r.workspace_ids&&r.workspace_ids.forEach(p=>o.append("workspace_ids",p.toString())),r.is_read!==void 0&&o.append("is_read",r.is_read.toString()),r.is_archived!==void 0&&o.append("is_archived",r.is_archived.toString()),r.severity&&o.append("severity",r.severity));const n=`/notifications${o.toString()?"?"+o.toString():""}`,s=await t(n,{method:"GET"});return(await G(s)).data}async function wu(t){const r=await t("/notifications/channel-counts",{method:"GET"});return(await G(r)).data}async function ju(t,r){const o=await t(`/notifications/${r}/read`,{method:"POST"});return G(o)}async function _u(t){const r=await t("/notifications/mark-all-read",{method:"POST"});return G(r)}async function ku(t,r){const o=await t(`/notifications/${r}/delete`,{method:"POST"});return G(o)}function Sc(t){const{client:r,loading:o}=Be(),{data:n,error:s,mutate:a,isLoading:p}=Fe(o?null:`wacht-notifications:${JSON.stringify(t)}`,()=>yu(r,t),{refreshInterval:6e4,revalidateOnFocus:!0});Cc({enabled:!o&&!!n,onNotification:i.useCallback(u=>{a(async m=>!m||m.notifications.some(x=>x.id===u.id.toString())?m:{...m,notifications:[{id:u.id.toString(),user_id:u.user_id.toString(),deployment_id:u.deployment_id.toString(),title:u.title,body:u.body,severity:u.severity,action_url:u.action_url,action_label:u.action_label,is_read:!1,is_archived:!1,created_at:u.created_at,updated_at:u.created_at},...m.notifications],unread_count:m.unread_count+1,total:m.total+1},!1)},[a]),onError:i.useCallback(()=>{},[])});const g=i.useCallback(async u=>{o||(await a(async m=>m&&{...m,notifications:m.notifications.map(v=>v.id===u?{...v,is_read:!0}:v),unread_count:Math.max(0,m.unread_count-1)},!1),await ju(r,u),await a())},[r,o,a]),c=i.useCallback(async()=>{o||(await a(async u=>u&&{...u,notifications:u.notifications.map(m=>({...m,is_read:!0})),unread_count:0},!1),await _u(r),await a())},[r,a]),h=i.useCallback(async u=>{o||(await a(async m=>{if(!m)return m;const v=m.notifications.find(x=>x.id===u);return{...m,notifications:m.notifications.filter(x=>x.id!==u),unread_count:v&&!v.is_read?Math.max(0,m.unread_count-1):m.unread_count,total:Math.max(0,m.total-1)}},!1),await ku(r,u),await a())},[r,o,a]),l=i.useCallback(async()=>{await a()},[a]);return!n||o||p?{loading:!0,notifications:void 0,unreadCount:void 0,unreadCounts:void 0,channels:void 0,hasMore:void 0,markAsRead:void 0,markAllAsRead:void 0,deleteNotification:void 0,error:s,refetch:l}:{loading:!1,error:s,notifications:n.notifications,unreadCount:n.unread_count,unreadCounts:n.unread_counts,channels:n.channels,hasMore:n.has_more,markAsRead:g,markAllAsRead:c,deleteNotification:h,refetch:l}}async function Cu(t){const r=await t("/notifications/channel-counts",{method:"GET"});return(await G(r)).data}function Su(){const{client:t,loading:r}=Be(),{data:o,error:n,mutate:s}=Fe(r?null:"wacht-notifications:channel-counts",()=>Cu(t),{refreshInterval:3e4,revalidateOnFocus:!0}),a=async()=>{await s()};return!o||r?{loading:!0,counts:void 0,error:n,refetch:a}:{loading:!1,counts:o,error:n,refetch:a}}const Yt=class Yt{constructor(){tt(this,"ws",null);tt(this,"messageHandlers",new Set);tt(this,"connectionStateHandlers",new Set);tt(this,"reconnectTimer",null);tt(this,"reconnectAttempts",0);tt(this,"url",null);tt(this,"isIntentionalDisconnect",!1);tt(this,"sessionMessages",{});tt(this,"currentSessionKey",null)}static getInstance(){return Yt.instance||(Yt.instance=new Yt),Yt.instance}connect(r){var o,n;if(this.url=r,this.isIntentionalDisconnect=!1,((o=this.ws)==null?void 0:o.readyState)===WebSocket.OPEN&&this.url===r){this.notifyConnectionState({isConnected:!0});return}((n=this.ws)==null?void 0:n.readyState)!==WebSocket.CONNECTING&&this.createConnection()}createConnection(){if(this.url)try{this.ws=new WebSocket(this.url),this.ws.onopen=()=>{this.reconnectAttempts=0,this.notifyConnectionState({isConnected:!0})},this.ws.onmessage=r=>{try{const o=JSON.parse(r.data);this.notifyMessageHandlers(o)}catch{}},this.ws.onerror=()=>{this.notifyConnectionState({isConnected:!1,error:"Connection error"})},this.ws.onclose=()=>{this.ws=null,this.notifyConnectionState({isConnected:!1}),this.isIntentionalDisconnect||this.scheduleReconnect()}}catch(r){this.notifyConnectionState({isConnected:!1,error:r instanceof Error?r.message:"Failed to connect"})}}scheduleReconnect(){this.reconnectAttempts++;const r=Math.min(1e3*Math.pow(2,this.reconnectAttempts-1),3e4),o=Math.random()*.3*r,n=Math.floor(r+o);this.reconnectTimer=setTimeout(()=>{this.createConnection()},n)}disconnect(){this.isIntentionalDisconnect=!0,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws&&(this.ws.close(),this.ws=null)}send(r){var o;if(((o=this.ws)==null?void 0:o.readyState)===WebSocket.OPEN){const n=JSON.stringify(r);this.ws.send(n)}}onMessage(r){return this.messageHandlers.add(r),()=>{this.messageHandlers.delete(r)}}onConnectionStateChange(r){var o;return this.connectionStateHandlers.add(r),r({isConnected:((o=this.ws)==null?void 0:o.readyState)===WebSocket.OPEN}),()=>{this.connectionStateHandlers.delete(r)}}notifyMessageHandlers(r){this.messageHandlers.forEach(o=>{try{o(r)}catch{}})}notifyConnectionState(r){this.connectionStateHandlers.forEach(o=>{try{o(r)}catch{}})}isConnected(){var r;return((r=this.ws)==null?void 0:r.readyState)===WebSocket.OPEN}setCurrentSession(r){this.currentSessionKey=r,this.sessionMessages[r]||(this.sessionMessages[r]=[])}addMessage(r){this.currentSessionKey&&(this.sessionMessages[this.currentSessionKey]||(this.sessionMessages[this.currentSessionKey]=[]),this.sessionMessages[this.currentSessionKey].push(r))}getSessionMessages(r){return this.sessionMessages[r]||[]}clearSessionMessages(r){this.sessionMessages[r]&&(this.sessionMessages[r]=[])}};tt(Yt,"instance");let ss=Yt;const Xe=ss.getInstance(),wt={DISCONNECTED:"disconnected",CONNECTING:"connecting",CONNECTED:"connected",ERROR:"error"},Le={IDLE:"idle",STARTING:"starting",RUNNING:"running",WAITING_FOR_INPUT:"waiting_for_input",COMPLETED:"completed",FAILED:"failed"},Ot={IDLE:"Idle",STARTING:"Starting",RUNNING:"Running",WAITING_FOR_INPUT:"WaitingForInput",COMPLETED:"Completed",FAILED:"Failed",CANCELLED:"Cancelled"};function Ks(t){switch(t){case Ot.IDLE:return Le.IDLE;case Ot.STARTING:return Le.STARTING;case Ot.RUNNING:return Le.RUNNING;case Ot.WAITING_FOR_INPUT:return Le.WAITING_FOR_INPUT;case Ot.COMPLETED:return Le.COMPLETED;case Ot.FAILED:case Ot.CANCELLED:return Le.FAILED;default:return Le.IDLE}}function Qs(t){return t===Le.STARTING||t===Le.RUNNING||t===Le.WAITING_FOR_INPUT}function zc({contextId:t,agentName:r,token:o,platformAdapter:n,autoConnect:s=!0}){const{deployment:a}=ve(),{client:p}=Be(),[g,c]=i.useState([]),[h,l]=i.useState(null),[u,m]=i.useState(null),[v,x]=i.useState(!1),[y,$]=i.useState(!1),[S,k]=i.useState(Le.IDLE),[I,E]=i.useState({status:wt.DISCONNECTED}),[w,b]=i.useState(!0),[f,z]=i.useState(!1),_=i.useRef(null),j=i.useRef(null),M=i.useCallback(V=>{var q,H;switch(V.message_type){case"session_connected":if(x(!0),E({status:wt.CONNECTED}),(q=V.data)!=null&&q.execution_status){const le=V.data.execution_status,oe=Ks(le);k(oe),$(Qs(oe))}break;case"conversation_message":R(V.data);break;case"user_input_request":C(V.data);break;case"platform_event":P(V.data);break;case"platform_function":T(V.data);break;case"execution_complete":$(!1),k(Le.IDLE),j.current=null;break;case"execution_error":$(!1),k(Le.FAILED),j.current=null;break;case"execution_cancelled":$(!1),k(Le.IDLE),j.current=null;break;case"execution_status":const ee=(H=V.data)==null?void 0:H.status;if(ee){const le=Ks(ee);k(le),$(Qs(le))}break}},[h]),R=i.useCallback(V=>{var oe,de,K,se,xe,ue,U,pe;const{id:q,message_type:H,content:ee}=V,le=Q=>g.some(Y=>Y.id===Q);if(H==="system_decision"||H==="action_execution_result"||H==="assistant_task_breakdown"||H==="assistant_validation"||H==="assistant_action_planning"||H==="context_results"){l(null),m(null);let Q="";if(H==="system_decision"){const Y=ee==null?void 0:ee.step,ne=ee==null?void 0:ee.reasoning;if(Y==="gathercontext")ne&&ne.length>0?Q=ne.length>60?`${ne.substring(0,60)}...`:ne:Q="Gathering context...";else if(Y==="executeaction")Q="Executing action";else if(Y==="deliverresponse")Q="Preparing response";else if(Y==="taskplanning")Q="Planning approach";else if(Y==="validateprogress")Q="Validating progress";else if(Y==="acknowledge")Q="Processing request";else if(Y==="finishplanning")Q="Finalizing plan";else if(Y==="executetasks")Q="Executing tasks";else if(Y==="requestuserinput")Q="Waiting for input";else if(Y==="complete")Q="Completed";else if(Y==="examinetool")Q="Examining tool";else if(Y==="examineworkflow")Q="Examining workflow";else{const me=(ee==null?void 0:ee.confidence)||.5;me>.8?Q="Analyzing":me>.6?Q="Thinking":Q="Reasoning"}}else if(H==="action_execution_result")((oe=ee.task_execution)==null?void 0:oe.status)==="completed"?Q="Task execution completed":(de=ee.task_execution)!=null&&de.approach?Q=ee.task_execution.approach:Q="Executing task";else if(H==="assistant_task_breakdown")(K=ee.task_breakdown)!=null&&K.total_tasks?Q=`Identified ${ee.task_breakdown.total_tasks} tasks`:Q="Planning tasks";else if(H==="assistant_validation")Q="Validated results";else if(H==="assistant_action_planning")(se=ee.task_execution)!=null&&se.total_tasks?Q=`Planned ${ee.task_execution.total_tasks} tasks`:(ue=(xe=ee.task_execution)==null?void 0:xe.tasks)!=null&&ue.length?Q=`Planned ${ee.task_execution.tasks.length} tasks`:Q="Planning actions";else if(H==="context_results"){const Y=ee.query,ne=ee.result_count||0;Y&&Y!=="General context gathering"?Q=`${Y}: Found ${ne} results`:Q=`Found ${ne} results`}Q&&!le(q)&&c(Y=>[...Y,{id:q,role:"system",content:Q,timestamp:new Date,metadata:{type:"log",messageType:H}}]);return}if(H==="user_message")le(q)||(l(null),m(null),c(Q=>[...Q,{id:q,role:"user",content:ee.message,images:ee.images,timestamp:new Date}]));else if(H==="agent_response")le(q)||(l(null),m(null),$(!1),k(Le.IDLE),j.current=null,c(Q=>[...Q,{id:q,role:"assistant",content:ee.response,timestamp:new Date,isStreaming:!1}]));else if(H==="assistant_acknowledgment")le(q)||(l(null),m(null),c(Q=>[...Q,{id:q,role:"assistant",content:ee.acknowledgment_message,timestamp:new Date}]));else if(H==="assistant_ideation"||H==="assistant_action_planning"||H==="action_execution_result"||H==="assistant_validation"||H==="assistant_context_gathering"||H==="assistant_task_breakdown"){let Q="";if(ee.reasoning_summary)Q=ee.reasoning_summary;else if((U=ee.task_execution)!=null&&U.approach)Q=ee.task_execution.approach;else if(ee.strategic_synthesis)Q=ee.strategic_synthesis;else if((pe=ee.task_breakdown)!=null&&pe.total_tasks)Q=`Breaking down into ${ee.task_breakdown.total_tasks} tasks...`;else if(ee.acknowledgment_message)Q=ee.acknowledgment_message;else return;c(Y=>[...Y,{id:q,role:"assistant",content:Q,timestamp:new Date}])}else if(H==="user_input_request"){const Q={question:ee.question,context:ee.context,input_type:ee.input_type,options:ee.options||ee.suggestions,default_value:ee.default_value,placeholder:ee.placeholder};k("waiting_for_input"),c(Y=>[...Y,{id:q,role:"system",content:Q.question,timestamp:new Date,metadata:{type:"user_input_request",userInputRequest:Q}}])}},[]),C=i.useCallback(async V=>{k("waiting_for_input");const q=`input-request-${Date.now()}`;c(H=>[...H,{id:q,role:"system",content:V.question,timestamp:new Date,metadata:{type:"user_input_request",userInputRequest:V}}])},[]),P=i.useCallback(V=>{const{event_label:q,event_data:H}=V;n!=null&&n.onPlatformEvent&&n.onPlatformEvent(q,H)},[n]),T=i.useCallback(async V=>{const{function_name:q,function_data:H}=V,{parameters:ee,execution_id:le}=H;if(!(n!=null&&n.onPlatformFunction)){Xe.send({message_type:{platform_function_result:[le,{error:"No platform function handler registered"}]},data:{}});return}try{const oe=await n.onPlatformFunction(q,ee,le),de={message_type:{platform_function_result:[le,oe]},data:{}};Xe.send(de)}catch(oe){Xe.send({message_type:{platform_function_result:[le,{error:oe instanceof Error?oe.message:"Function execution failed",stack:oe instanceof Error?oe.stack:void 0}]},data:{}})}},[n]);i.useEffect(()=>{if(!a)return;const q=`wss://${a==null?void 0:a.backend_host.replace(/https?:\/\//,"")}/realtime/agent?token=${encodeURIComponent(o)}`;E({status:wt.CONNECTING}),Xe.connect(q)},[a,o]),i.useEffect(()=>Xe.onConnectionStateChange(q=>{E({status:q.isConnected?wt.CONNECTED:q.error?wt.ERROR:wt.DISCONNECTED}),x(q.isConnected)}),[]),i.useEffect(()=>Xe.onMessage(M),[M]),i.useEffect(()=>{v&&t&&r&&s&&Xe.send({message_type:{session_connect:[t,r]},data:{}})},[v,t,r,s]);const B=i.useCallback(async()=>(v&&t&&r&&Xe.send({message_type:{session_connect:[t,r]},data:{}}),()=>{}),[v,t,r]),L=i.useCallback((V,q)=>{v&&(l(V),m(q||null),$(!0),k(Le.STARTING),Xe.send({message_type:{message_input:V},data:q?{images:q}:{}}))},[v]),F=i.useCallback(()=>{c([]),j.current=null},[]),O=i.useCallback(V=>{!v||S!==Le.WAITING_FOR_INPUT||(Xe.send({message_type:{user_input_response:V},data:{}}),k(Le.RUNNING))},[v,S]),A=i.useCallback(async V=>{var q;if(!(!o||!t))try{const H=new URLSearchParams({token:o,limit:"50"});V&&(H.append("before_id",V),z(!0));const le=await(await p(`/api/agent/contexts/${t}/messages?${H}`,{method:"GET"})).json();if(le.status===200&&le.data){const oe=le.data;if(Array.isArray(oe.data)){const de=oe.data.filter(K=>{var ue;let se=K.content;if(typeof K.content=="string")try{se=JSON.parse(K.content)}catch{se={message:K.content}}const xe=((ue=K.metadata)==null?void 0:ue.message_type)||(se==null?void 0:se.message_type);return xe==="user_message"||xe==="agent_response"||xe==="assistant_acknowledgment"||xe==="user_input_request"||xe==="system_decision"||xe==="action_execution_result"||xe==="assistant_task_breakdown"||xe==="assistant_validation"||xe==="assistant_action_planning"||xe==="context_results"}).map(K=>{var Q,Y,ne,me,fe,W,N;let se="",xe,ue,U=K.content;if(typeof K.content=="string")try{U=JSON.parse(K.content)}catch{U=K.content}const pe=((Q=K.metadata)==null?void 0:Q.message_type)||(U==null?void 0:U.message_type);if(pe==="user_message"?(se=(U==null?void 0:U.message)||"",xe=(U==null?void 0:U.images)||void 0):pe==="agent_response"?se=(U==null?void 0:U.response)||"":pe==="assistant_acknowledgment"?se=(U==null?void 0:U.acknowledgment_message)||"":pe==="user_input_request"&&(se=(U==null?void 0:U.question)||"",ue={type:"user_input_request",userInputRequest:{question:(U==null?void 0:U.question)||"",context:(U==null?void 0:U.context)||"",input_type:(U==null?void 0:U.input_type)||"text",options:(U==null?void 0:U.options)||(U==null?void 0:U.suggestions)||[],default_value:(U==null?void 0:U.default_value)||"",placeholder:(U==null?void 0:U.placeholder)||""}}),pe==="system_decision"||pe==="action_execution_result"||pe==="assistant_task_breakdown"||pe==="assistant_validation"||pe==="assistant_action_planning"||pe==="context_results"){let D="";if(pe==="system_decision"){const Z=U==null?void 0:U.step,ae=U==null?void 0:U.reasoning;if(Z==="gathercontext")ae&&ae.length>0?D=ae.length>60?`${ae.substring(0,60)}...`:ae:D="Gathering context...";else if(Z==="executeaction")D="Executing action";else if(Z==="deliverresponse")D="Preparing response";else if(Z==="taskplanning")D="Planning approach";else if(Z==="validateprogress")D="Validating progress";else if(Z==="acknowledge")D="Processing request";else if(Z==="finishplanning")D="Finalizing plan";else if(Z==="executetasks")D="Executing tasks";else if(Z==="requestuserinput")D="Waiting for input";else if(Z==="complete")D="Completed";else if(Z==="examinetool")D="Examining tool";else if(Z==="examineworkflow")D="Examining workflow";else{const te=(U==null?void 0:U.confidence)||.5;te>.8?D="Analyzing":te>.6?D="Thinking":D="Reasoning"}}else if(pe==="action_execution_result")((Y=U==null?void 0:U.task_execution)==null?void 0:Y.status)==="completed"?D="Task execution completed":(ne=U==null?void 0:U.task_execution)!=null&&ne.approach?D=U.task_execution.approach:D="Executing task";else if(pe==="assistant_task_breakdown")(me=U==null?void 0:U.task_breakdown)!=null&&me.total_tasks?D=`Identified ${U.task_breakdown.total_tasks} tasks`:D="Planning tasks";else if(pe==="assistant_validation")D="Validated results";else if(pe==="assistant_action_planning")(fe=U==null?void 0:U.task_execution)!=null&&fe.total_tasks?D=`Planned ${U.task_execution.total_tasks} tasks`:(N=(W=U==null?void 0:U.task_execution)==null?void 0:W.tasks)!=null&&N.length?D=`Planned ${U.task_execution.tasks.length} tasks`:D="Planning actions";else if(pe==="context_results"){const Z=U==null?void 0:U.query,ae=(U==null?void 0:U.result_count)||0;Z&&Z!=="General context gathering"?D=`${Z}: Found ${ae} results`:D=`Found ${ae} results`}se=D,ue={type:"log",messageType:pe}}return{id:K.id,role:pe==="user_message"?"user":pe==="user_input_request"?"system":"assistant",content:se,images:xe,timestamp:new Date(K.timestamp||K.created_at||Date.now()),metadata:ue}}).filter(K=>K.content||K.metadata||K.images).sort((K,se)=>{const xe=BigInt(K.id),ue=BigInt(se.id);return xe<ue?-1:xe>ue?1:0});de.length>0&&(_.current=de[0].id),V?(c(K=>[...de,...K]),b(de.length>=50)):(c(de),de.length>0&&((q=de[de.length-1].metadata)==null?void 0:q.type)==="user_input_request"&&k(Le.WAITING_FOR_INPUT)),z(!1)}}}catch(H){console.error("Failed to fetch messages:",H),z(!1)}},[o,t,p]);i.useEffect(()=>{t&&o&&A()},[t,o]);const J=i.useCallback(async()=>{if(!(f||!w||!_.current)){z(!0);try{await A(_.current)}finally{z(!1)}}},[f,w,A]),re=i.useCallback(()=>{!v||!y||(Xe.send({message_type:{cancel_execution:null},data:{}}),$(!1),k("idle"))},[v,y]);return{messages:g,pendingMessage:h,pendingImages:u,connectionState:I,isConnected:v,isExecuting:y,executionStatus:S,isWaitingForInput:S==="waiting_for_input",hasMoreMessages:w,isLoadingMore:f,sendMessage:L,submitUserInput:O,clearMessages:F,loadMoreMessages:J,cancelExecution:re,connect:B,disconnect:()=>Xe.disconnect()}}const $c=()=>{const{client:t}=Be(),[r,o]=i.useState(!1),[n,s]=i.useState(null),[a,p]=i.useState(null),g=i.useCallback(async h=>{o(!0),s(null),p(null);try{const l=new FormData;l.append("token",h);const u=await t("/organizations/invitations/accept",{method:"POST",body:l}),v=(await G(u)).data;return p(v),v.error_code&&s(v.message||"Failed to accept invitation"),v}catch(l){const u=l.message||"Failed to accept invitation";s(u);const m={error_code:"NETWORK_ERROR",message:u};return p(m),m}finally{o(!1)}},[t]),c=i.useCallback(()=>{s(null),p(null)},[]);return{acceptInvitation:g,invitationData:a,loading:r,error:n,reset:c}},zu=({children:t})=>{const{loading:r}=ve();return r?null:e.jsx(e.Fragment,{children:t})},$u=({children:t})=>{const{loading:r}=ve();return r?e.jsx(e.Fragment,{children:t}):null};var Ye=function(){return Ye=Object.assign||function(r){for(var o,n=1,s=arguments.length;n<s;n++){o=arguments[n];for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(r[a]=o[a])}return r},Ye.apply(this,arguments)};function tr(t,r,o){if(o||arguments.length===2)for(var n=0,s=r.length,a;n<s;n++)(a||!(n in r))&&(a||(a=Array.prototype.slice.call(r,0,n)),a[n]=r[n]);return t.concat(a||Array.prototype.slice.call(r))}function Eu(t){var r=Object.create(null);return function(o){return r[o]===void 0&&(r[o]=t(o)),r[o]}}var Iu=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,Pu=Eu(function(t){return Iu.test(t)||t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)<91}),Ie="-ms-",Nr="-moz-",$e="-webkit-",Ec="comm",Ko="rule",js="decl",Ru="@import",Ic="@keyframes",Tu="@layer",Pc=Math.abs,_s=String.fromCharCode,as=Object.assign;function Mu(t,r){return We(t,0)^45?(((r<<2^We(t,0))<<2^We(t,1))<<2^We(t,2))<<2^We(t,3):0}function Rc(t){return t.trim()}function yt(t,r){return(t=r.exec(t))?t[0]:t}function ye(t,r,o){return t.replace(r,o)}function Io(t,r,o){return t.indexOf(r,o)}function We(t,r){return t.charCodeAt(r)|0}function yr(t,r,o){return t.slice(r,o)}function ct(t){return t.length}function Tc(t){return t.length}function Lr(t,r){return r.push(t),t}function Ou(t,r){return t.map(r).join("")}function Xs(t,r){return t.filter(function(o){return!yt(o,r)})}var Qo=1,wr=1,Mc=0,Je=0,De=0,Sr="";function Xo(t,r,o,n,s,a,p,g){return{value:t,root:r,parent:o,type:n,props:s,children:a,line:Qo,column:wr,length:p,return:"",siblings:g}}function zt(t,r){return as(Xo("",null,null,"",null,null,0,t.siblings),t,{length:-t.length},r)}function lr(t){for(;t.root;)t=zt(t.root,{children:[t]});Lr(t,t.siblings)}function Au(){return De}function Lu(){return De=Je>0?We(Sr,--Je):0,wr--,De===10&&(wr=1,Qo--),De}function rt(){return De=Je<Mc?We(Sr,Je++):0,wr++,De===10&&(wr=1,Qo++),De}function Kt(){return We(Sr,Je)}function Po(){return Je}function Jo(t,r){return yr(Sr,t,r)}function is(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Du(t){return Qo=wr=1,Mc=ct(Sr=t),Je=0,[]}function Nu(t){return Sr="",t}function xn(t){return Rc(Jo(Je-1,cs(t===91?t+2:t===40?t+1:t)))}function Fu(t){for(;(De=Kt())&&De<33;)rt();return is(t)>2||is(De)>3?"":" "}function Bu(t,r){for(;--r&&rt()&&!(De<48||De>102||De>57&&De<65||De>70&&De<97););return Jo(t,Po()+(r<6&&Kt()==32&&rt()==32))}function cs(t){for(;rt();)switch(De){case t:return Je;case 34:case 39:t!==34&&t!==39&&cs(De);break;case 40:t===41&&cs(t);break;case 92:rt();break}return Je}function Uu(t,r){for(;rt()&&t+De!==57;)if(t+De===84&&Kt()===47)break;return"/*"+Jo(r,Je-1)+"*"+_s(t===47?t:rt())}function Wu(t){for(;!is(Kt());)rt();return Jo(t,Je)}function Vu(t){return Nu(Ro("",null,null,null,[""],t=Du(t),0,[0],t))}function Ro(t,r,o,n,s,a,p,g,c){for(var h=0,l=0,u=p,m=0,v=0,x=0,y=1,$=1,S=1,k=0,I="",E=s,w=a,b=n,f=I;$;)switch(x=k,k=rt()){case 40:if(x!=108&&We(f,u-1)==58){Io(f+=ye(xn(k),"&","&\f"),"&\f",Pc(h?g[h-1]:0))!=-1&&(S=-1);break}case 34:case 39:case 91:f+=xn(k);break;case 9:case 10:case 13:case 32:f+=Fu(x);break;case 92:f+=Bu(Po()-1,7);continue;case 47:switch(Kt()){case 42:case 47:Lr(Gu(Uu(rt(),Po()),r,o,c),c);break;default:f+="/"}break;case 123*y:g[h++]=ct(f)*S;case 125*y:case 59:case 0:switch(k){case 0:case 125:$=0;case 59+l:S==-1&&(f=ye(f,/\f/g,"")),v>0&&ct(f)-u&&Lr(v>32?ea(f+";",n,o,u-1,c):ea(ye(f," ","")+";",n,o,u-2,c),c);break;case 59:f+=";";default:if(Lr(b=Js(f,r,o,h,l,s,g,I,E=[],w=[],u,a),a),k===123)if(l===0)Ro(f,r,b,b,E,a,u,g,w);else switch(m===99&&We(f,3)===110?100:m){case 100:case 108:case 109:case 115:Ro(t,b,b,n&&Lr(Js(t,b,b,0,0,s,g,I,s,E=[],u,w),w),s,w,u,g,n?E:w);break;default:Ro(f,b,b,b,[""],w,0,g,w)}}h=l=v=0,y=S=1,I=f="",u=p;break;case 58:u=1+ct(f),v=x;default:if(y<1){if(k==123)--y;else if(k==125&&y++==0&&Lu()==125)continue}switch(f+=_s(k),k*y){case 38:S=l>0?1:(f+="\f",-1);break;case 44:g[h++]=(ct(f)-1)*S,S=1;break;case 64:Kt()===45&&(f+=xn(rt())),m=Kt(),l=u=ct(I=f+=Wu(Po())),k++;break;case 45:x===45&&ct(f)==2&&(y=0)}}return a}function Js(t,r,o,n,s,a,p,g,c,h,l,u){for(var m=s-1,v=s===0?a:[""],x=Tc(v),y=0,$=0,S=0;y<n;++y)for(var k=0,I=yr(t,m+1,m=Pc($=p[y])),E=t;k<x;++k)(E=Rc($>0?v[k]+" "+I:ye(I,/&\f/g,v[k])))&&(c[S++]=E);return Xo(t,r,o,s===0?Ko:g,c,h,l,u)}function Gu(t,r,o,n){return Xo(t,r,o,Ec,_s(Au()),yr(t,2,-2),0,n)}function ea(t,r,o,n,s){return Xo(t,r,o,js,yr(t,0,n),yr(t,n+1,-1),n,s)}function Oc(t,r,o){switch(Mu(t,r)){case 5103:return $e+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return $e+t+t;case 4789:return Nr+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return $e+t+Nr+t+Ie+t+t;case 5936:switch(We(t,r+11)){case 114:return $e+t+Ie+ye(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return $e+t+Ie+ye(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return $e+t+Ie+ye(t,/[svh]\w+-[tblr]{2}/,"lr")+t}case 6828:case 4268:case 2903:return $e+t+Ie+t+t;case 6165:return $e+t+Ie+"flex-"+t+t;case 5187:return $e+t+ye(t,/(\w+).+(:[^]+)/,$e+"box-$1$2"+Ie+"flex-$1$2")+t;case 5443:return $e+t+Ie+"flex-item-"+ye(t,/flex-|-self/g,"")+(yt(t,/flex-|baseline/)?"":Ie+"grid-row-"+ye(t,/flex-|-self/g,""))+t;case 4675:return $e+t+Ie+"flex-line-pack"+ye(t,/align-content|flex-|-self/g,"")+t;case 5548:return $e+t+Ie+ye(t,"shrink","negative")+t;case 5292:return $e+t+Ie+ye(t,"basis","preferred-size")+t;case 6060:return $e+"box-"+ye(t,"-grow","")+$e+t+Ie+ye(t,"grow","positive")+t;case 4554:return $e+ye(t,/([^-])(transform)/g,"$1"+$e+"$2")+t;case 6187:return ye(ye(ye(t,/(zoom-|grab)/,$e+"$1"),/(image-set)/,$e+"$1"),t,"")+t;case 5495:case 3959:return ye(t,/(image-set\([^]*)/,$e+"$1$`$1");case 4968:return ye(ye(t,/(.+:)(flex-)?(.*)/,$e+"box-pack:$3"+Ie+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+$e+t+t;case 4200:if(!yt(t,/flex-|baseline/))return Ie+"grid-column-align"+yr(t,r)+t;break;case 2592:case 3360:return Ie+ye(t,"template-","")+t;case 4384:case 3616:return o&&o.some(function(n,s){return r=s,yt(n.props,/grid-\w+-end/)})?~Io(t+(o=o[r].value),"span",0)?t:Ie+ye(t,"-start","")+t+Ie+"grid-row-span:"+(~Io(o,"span",0)?yt(o,/\d+/):+yt(o,/\d+/)-+yt(t,/\d+/))+";":Ie+ye(t,"-start","")+t;case 4896:case 4128:return o&&o.some(function(n){return yt(n.props,/grid-\w+-start/)})?t:Ie+ye(ye(t,"-end","-span"),"span ","")+t;case 4095:case 3583:case 4068:case 2532:return ye(t,/(.+)-inline(.+)/,$e+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(ct(t)-1-r>6)switch(We(t,r+1)){case 109:if(We(t,r+4)!==45)break;case 102:return ye(t,/(.+:)(.+)-([^]+)/,"$1"+$e+"$2-$3$1"+Nr+(We(t,r+3)==108?"$3":"$2-$3"))+t;case 115:return~Io(t,"stretch",0)?Oc(ye(t,"stretch","fill-available"),r,o)+t:t}break;case 5152:case 5920:return ye(t,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(n,s,a,p,g,c,h){return Ie+s+":"+a+h+(p?Ie+s+"-span:"+(g?c:+c-+a)+h:"")+t});case 4949:if(We(t,r+6)===121)return ye(t,":",":"+$e)+t;break;case 6444:switch(We(t,We(t,14)===45?18:11)){case 120:return ye(t,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+$e+(We(t,14)===45?"inline-":"")+"box$3$1"+$e+"$2$3$1"+Ie+"$2box$3")+t;case 100:return ye(t,":",":"+Ie)+t}break;case 5719:case 2647:case 2135:case 3927:case 2391:return ye(t,"scroll-","scroll-snap-")+t}return t}function Do(t,r){for(var o="",n=0;n<t.length;n++)o+=r(t[n],n,t,r)||"";return o}function Hu(t,r,o,n){switch(t.type){case Tu:if(t.children.length)break;case Ru:case js:return t.return=t.return||t.value;case Ec:return"";case Ic:return t.return=t.value+"{"+Do(t.children,n)+"}";case Ko:if(!ct(t.value=t.props.join(",")))return""}return ct(o=Do(t.children,n))?t.return=t.value+"{"+o+"}":""}function qu(t){var r=Tc(t);return function(o,n,s,a){for(var p="",g=0;g<r;g++)p+=t[g](o,n,s,a)||"";return p}}function Yu(t){return function(r){r.root||(r=r.return)&&t(r)}}function Zu(t,r,o,n){if(t.length>-1&&!t.return)switch(t.type){case js:t.return=Oc(t.value,t.length,o);return;case Ic:return Do([zt(t,{value:ye(t.value,"@","@"+$e)})],n);case Ko:if(t.length)return Ou(o=t.props,function(s){switch(yt(s,n=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":lr(zt(t,{props:[ye(s,/:(read-\w+)/,":"+Nr+"$1")]})),lr(zt(t,{props:[s]})),as(t,{props:Xs(o,n)});break;case"::placeholder":lr(zt(t,{props:[ye(s,/:(plac\w+)/,":"+$e+"input-$1")]})),lr(zt(t,{props:[ye(s,/:(plac\w+)/,":"+Nr+"$1")]})),lr(zt(t,{props:[ye(s,/:(plac\w+)/,Ie+"input-$1")]})),lr(zt(t,{props:[s]})),as(t,{props:Xs(o,n)});break}return""})}}var Ku={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},rr=typeof process<"u"&&process.env!==void 0&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",Ac="active",Lc="data-styled-version",en="6.1.19",ks=`/*!sc*/
|
|
18
|
+
*/var Ws;function jd(){return Ws||(Ws=1,process.env.NODE_ENV!=="production"&&function(){function t(v,x){return v===x&&(v!==0||1/v===1/x)||v!==v&&x!==x}function r(v,x){l||s.startTransition===void 0||(l=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var y=x();if(!u){var $=x();a(y,$)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),u=!0)}$=p({inst:{value:y,getSnapshot:x}});var S=$[0].inst,k=$[1];return c(function(){S.value=y,S.getSnapshot=x,o(S)&&k({inst:S})},[v,y,x]),g(function(){return o(S)&&k({inst:S}),v(function(){o(S)&&k({inst:S})})},[v]),h(y),y}function o(v){var x=v.getSnapshot;v=v.value;try{var y=x();return!a(v,y)}catch{return!0}}function n(v,x){return x()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var s=i,a=typeof Object.is=="function"?Object.is:t,p=s.useState,g=s.useEffect,c=s.useLayoutEffect,h=s.useDebugValue,l=!1,u=!1,m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?n:r;dn.useSyncExternalStore=s.useSyncExternalStore!==void 0?s.useSyncExternalStore:m,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),dn}var Vs;function _d(){return Vs||(Vs=1,process.env.NODE_ENV==="production"?Kr.exports=wd():Kr.exports=jd()),Kr.exports}var kd=_d();const sc=0,ac=1,ic=2,Gs=3;var Hs=Object.prototype.hasOwnProperty;function Kn(t,r){var o,n;if(t===r)return!0;if(t&&r&&(o=t.constructor)===r.constructor){if(o===Date)return t.getTime()===r.getTime();if(o===RegExp)return t.toString()===r.toString();if(o===Array){if((n=t.length)===r.length)for(;n--&&Kn(t[n],r[n]););return n===-1}if(!o||typeof t=="object"){n=0;for(o in t)if(Hs.call(t,o)&&++n&&!Hs.call(r,o)||!(o in r)||!Kn(t[o],r[o]))return!1;return Object.keys(r).length===n}}return t!==t&&r!==r}const jt=new WeakMap,$t=()=>{},qe=$t(),Qn=Object,Se=t=>t===qe,lt=t=>typeof t=="function",It=(t,r)=>({...t,...r}),cc=t=>lt(t.then),un={},Qr={},ys="undefined",Vr=typeof window!=ys,Xn=typeof document!=ys,Cd=Vr&&"Deno"in window,Sd=()=>Vr&&typeof window.requestAnimationFrame!=ys,lc=(t,r)=>{const o=jt.get(t);return[()=>!Se(r)&&t.get(r)||un,n=>{if(!Se(r)){const s=t.get(r);r in Qr||(Qr[r]=s),o[5](r,It(s,n),s||un)}},o[6],()=>!Se(r)&&r in Qr?Qr[r]:!Se(r)&&t.get(r)||un]};let Jn=!0;const zd=()=>Jn,[es,ts]=Vr&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[$t,$t],$d=()=>{const t=Xn&&document.visibilityState;return Se(t)||t!=="hidden"},Ed=t=>(Xn&&document.addEventListener("visibilitychange",t),es("focus",t),()=>{Xn&&document.removeEventListener("visibilitychange",t),ts("focus",t)}),Id=t=>{const r=()=>{Jn=!0,t()},o=()=>{Jn=!1};return es("online",r),es("offline",o),()=>{ts("online",r),ts("offline",o)}},Pd={isOnline:zd,isVisible:$d},Rd={initFocus:Ed,initReconnect:Id},qs=!i.useId,Fr=!Vr||Cd,Td=t=>Sd()?window.requestAnimationFrame(t):setTimeout(t,1),pn=Fr?i.useEffect:i.useLayoutEffect,hn=typeof navigator<"u"&&navigator.connection,Ys=!Fr&&hn&&(["slow-2g","2g"].includes(hn.effectiveType)||hn.saveData),Xr=new WeakMap,Md=t=>Qn.prototype.toString.call(t),fn=(t,r)=>t===`[object ${r}]`;let Od=0;const rs=t=>{const r=typeof t,o=Md(t),n=fn(o,"Date"),s=fn(o,"RegExp"),a=fn(o,"Object");let p,g;if(Qn(t)===t&&!n&&!s){if(p=Xr.get(t),p)return p;if(p=++Od+"~",Xr.set(t,p),Array.isArray(t)){for(p="@",g=0;g<t.length;g++)p+=rs(t[g])+",";Xr.set(t,p)}if(a){p="#";const c=Qn.keys(t).sort();for(;!Se(g=c.pop());)Se(t[g])||(p+=g+":"+rs(t[g])+",");Xr.set(t,p)}}else p=n?t.toJSON():r=="symbol"?t.toString():r=="string"?JSON.stringify(t):""+t;return p},ws=t=>{if(lt(t))try{t=t()}catch{t=""}const r=t;return t=typeof t=="string"?t:(Array.isArray(t)?t.length:t)?rs(t):"",[t,r]};let Ad=0;const os=()=>++Ad;async function dc(...t){const[r,o,n,s]=t,a=It({populateCache:!0,throwOnError:!0},typeof s=="boolean"?{revalidate:s}:s||{});let p=a.populateCache;const g=a.rollbackOnError;let c=a.optimisticData;const h=m=>typeof g=="function"?g(m):g!==!1,l=a.throwOnError;if(lt(o)){const m=o,v=[],x=r.keys();for(const y of x)!/^\$(inf|sub)\$/.test(y)&&m(r.get(y)._k)&&v.push(y);return Promise.all(v.map(u))}return u(o);async function u(m){const[v]=ws(m);if(!v)return;const[x,y]=lc(r,v),[$,S,k,I]=jt.get(r),E=()=>{const P=$[v];return(lt(a.revalidate)?a.revalidate(x().data,m):a.revalidate!==!1)&&(delete k[v],delete I[v],P&&P[0])?P[0](ic).then(()=>x().data):x().data};if(t.length<3)return E();let w=n,b,f=!1;const z=os();S[v]=[z,0];const _=!Se(c),j=x(),M=j.data,R=j._c,C=Se(R)?M:R;if(_&&(c=lt(c)?c(C,M):c,y({data:c,_c:C})),lt(w))try{w=w(C)}catch(P){b=P,f=!0}if(w&&cc(w))if(w=await w.catch(P=>{b=P,f=!0}),z!==S[v][0]){if(f)throw b;return w}else f&&_&&h(b)&&(p=!0,y({data:C,_c:qe}));if(p&&!f)if(lt(p)){const P=p(w,C);y({data:P,error:qe,_c:qe})}else y({data:w,error:qe,_c:qe});if(S[v][1]=os(),Promise.resolve(E()).then(()=>{y({_c:qe})}),f){if(l)throw b;return}return w}}const Zs=(t,r)=>{for(const o in t)t[o][0]&&t[o][0](r)},Ld=(t,r)=>{if(!jt.has(t)){const o=It(Rd,r),n=Object.create(null),s=dc.bind(qe,t);let a=$t;const p=Object.create(null),g=(l,u)=>{const m=p[l]||[];return p[l]=m,m.push(u),()=>m.splice(m.indexOf(u),1)},c=(l,u,m)=>{t.set(l,u);const v=p[l];if(v)for(const x of v)x(u,m)},h=()=>{if(!jt.has(t)&&(jt.set(t,[n,Object.create(null),Object.create(null),Object.create(null),s,c,g]),!Fr)){const l=o.initFocus(setTimeout.bind(qe,Zs.bind(qe,n,sc))),u=o.initReconnect(setTimeout.bind(qe,Zs.bind(qe,n,ac)));a=()=>{l&&l(),u&&u(),jt.delete(t)}}};return h(),[t,s,h,a]}return[t,jt.get(t)[4]]},Dd=(t,r,o,n,s)=>{const a=o.errorRetryCount,p=s.retryCount,g=~~((Math.random()+.5)*(1<<(p<8?p:8)))*o.errorRetryInterval;!Se(a)&&p>a||setTimeout(n,g,s)},Nd=Kn,[uc,Or]=Ld(new Map),Fd=It({onLoadingSlow:$t,onSuccess:$t,onError:$t,onErrorRetry:Dd,onDiscarded:$t,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Ys?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Ys?5e3:3e3,compare:Nd,isPaused:()=>!1,cache:uc,mutate:Or,fallback:{}},Pd),Bd=(t,r)=>{const o=It(t,r);if(r){const{use:n,fallback:s}=t,{use:a,fallback:p}=r;n&&a&&(o.use=n.concat(a)),s&&p&&(o.fallback=It(s,p))}return o},Ud=i.createContext({}),Wd="$inf$",pc=Vr&&window.__SWR_DEVTOOLS_USE__,Vd=pc?window.__SWR_DEVTOOLS_USE__:[],Gd=()=>{pc&&(window.__SWR_DEVTOOLS_REACT__=i)},Hd=t=>lt(t[1])?[t[0],t[1],t[2]||{}]:[t[0],null,(t[1]===null?t[2]:t[1])||{}],hc=()=>It(Fd,i.useContext(Ud)),qd=t=>(r,o,n)=>t(r,o&&((...a)=>{const[p]=ws(r),[,,,g]=jt.get(uc);if(p.startsWith(Wd))return o(...a);const c=g[p];return Se(c)?o(...a):(delete g[p],c)}),n),Yd=Vd.concat(qd),Zd=t=>function(...o){const n=hc(),[s,a,p]=Hd(o),g=Bd(n,p);let c=t;const{use:h}=g,l=(h||[]).concat(Yd);for(let u=l.length;u--;)c=l[u](c);return c(s,a||g.fetcher||null,g)},Kd=(t,r,o)=>{const n=r[t]||(r[t]=[]);return n.push(o),()=>{const s=n.indexOf(o);s>=0&&(n[s]=n[n.length-1],n.pop())}};Gd();const gn=i.use||(t=>{switch(t.status){case"pending":throw t;case"fulfilled":return t.value;case"rejected":throw t.reason;default:throw t.status="pending",t.then(r=>{t.status="fulfilled",t.value=r},r=>{t.status="rejected",t.reason=r}),t}}),mn={dedupe:!0},Qd=(t,r,o)=>{const{cache:n,compare:s,suspense:a,fallbackData:p,revalidateOnMount:g,revalidateIfStale:c,refreshInterval:h,refreshWhenHidden:l,refreshWhenOffline:u,keepPreviousData:m}=o,[v,x,y,$]=jt.get(n),[S,k]=ws(t),I=i.useRef(!1),E=i.useRef(!1),w=i.useRef(S),b=i.useRef(r),f=i.useRef(o),z=()=>f.current,_=()=>z().isVisible()&&z().isOnline(),[j,M,R,C]=lc(n,S),P=i.useRef({}).current,T=Se(p)?Se(o.fallback)?qe:o.fallback[S]:p,B=(ue,U)=>{for(const pe in P){const Q=pe;if(Q==="data"){if(!s(ue[Q],U[Q])&&(!Se(ue[Q])||!s(H,U[Q])))return!1}else if(U[Q]!==ue[Q])return!1}return!0},L=i.useMemo(()=>{const ue=!S||!r?!1:Se(g)?z().isPaused()||a?!1:c!==!1:g,U=fe=>{const W=It(fe);return delete W._k,ue?{isValidating:!0,isLoading:!0,...W}:W},pe=j(),Q=C(),Y=U(pe),ne=pe===Q?Y:U(Q);let me=Y;return[()=>{const fe=U(j());return B(fe,me)?(me.data=fe.data,me.isLoading=fe.isLoading,me.isValidating=fe.isValidating,me.error=fe.error,me):(me=fe,fe)},()=>ne]},[n,S]),F=kd.useSyncExternalStore(i.useCallback(ue=>R(S,(U,pe)=>{B(pe,U)||ue()}),[n,S]),L[0],L[1]),O=!I.current,A=v[S]&&v[S].length>0,J=F.data,re=Se(J)?T&&cc(T)?gn(T):T:J,V=F.error,q=i.useRef(re),H=m?Se(J)?Se(q.current)?re:q.current:J:re,ee=A&&!Se(V)?!1:O&&!Se(g)?g:z().isPaused()?!1:a?Se(re)?!1:c:Se(re)||c,le=!!(S&&r&&O&&ee),oe=Se(F.isValidating)?le:F.isValidating,de=Se(F.isLoading)?le:F.isLoading,K=i.useCallback(async ue=>{const U=b.current;if(!S||!U||E.current||z().isPaused())return!1;let pe,Q,Y=!0;const ne=ue||{},me=!y[S]||!ne.dedupe,fe=()=>qs?!E.current&&S===w.current&&I.current:S===w.current,W={isValidating:!1,isLoading:!1},N=()=>{M(W)},D=()=>{const ae=y[S];ae&&ae[1]===Q&&delete y[S]},Z={isValidating:!0};Se(j().data)&&(Z.isLoading=!0);try{if(me&&(M(Z),o.loadingTimeout&&Se(j().data)&&setTimeout(()=>{Y&&fe()&&z().onLoadingSlow(S,o)},o.loadingTimeout),y[S]=[U(k),os()]),[pe,Q]=y[S],pe=await pe,me&&setTimeout(D,o.dedupingInterval),!y[S]||y[S][1]!==Q)return me&&fe()&&z().onDiscarded(S),!1;W.error=qe;const ae=x[S];if(!Se(ae)&&(Q<=ae[0]||Q<=ae[1]||ae[1]===0))return N(),me&&fe()&&z().onDiscarded(S),!1;const te=j().data;W.data=s(te,pe)?te:pe,me&&fe()&&z().onSuccess(pe,S,o)}catch(ae){D();const te=z(),{shouldRetryOnError:_e}=te;te.isPaused()||(W.error=ae,me&&fe()&&(te.onError(ae,S,te),(_e===!0||lt(_e)&&_e(ae))&&(!z().revalidateOnFocus||!z().revalidateOnReconnect||_())&&te.onErrorRetry(ae,S,te,be=>{const ze=v[S];ze&&ze[0]&&ze[0](Gs,be)},{retryCount:(ne.retryCount||0)+1,dedupe:!0})))}return Y=!1,N(),!0},[S,n]),se=i.useCallback((...ue)=>dc(n,w.current,...ue),[]);if(pn(()=>{b.current=r,f.current=o,Se(J)||(q.current=J)}),pn(()=>{if(!S)return;const ue=K.bind(qe,mn);let U=0;z().revalidateOnFocus&&(U=Date.now()+z().focusThrottleInterval);const Q=Kd(S,v,(Y,ne={})=>{if(Y==sc){const me=Date.now();z().revalidateOnFocus&&me>U&&_()&&(U=me+z().focusThrottleInterval,ue())}else if(Y==ac)z().revalidateOnReconnect&&_()&&ue();else{if(Y==ic)return K();if(Y==Gs)return K(ne)}});return E.current=!1,w.current=S,I.current=!0,M({_k:k}),ee&&(y[S]||(Se(re)||Fr?ue():Td(ue))),()=>{E.current=!0,Q()}},[S]),pn(()=>{let ue;function U(){const Q=lt(h)?h(j().data):h;Q&&ue!==-1&&(ue=setTimeout(pe,Q))}function pe(){!j().error&&(l||z().isVisible())&&(u||z().isOnline())?K(mn).then(U):U()}return U(),()=>{ue&&(clearTimeout(ue),ue=-1)}},[h,l,u,S]),i.useDebugValue(H),a&&Se(re)&&S){if(!qs&&Fr)throw new Error("Fallback data is required when using Suspense in SSR.");b.current=r,f.current=o,E.current=!1;const ue=$[S];if(!Se(ue)){const U=se(ue);gn(U)}if(Se(V)){const U=K(mn);Se(H)||(U.status="fulfilled",U.value=!0),gn(U)}else throw V}return{mutate:se,get data(){return P.data=!0,H},get error(){return P.error=!0,V},get isValidating(){return P.isValidating=!0,oe},get isLoading(){return P.isLoading=!0,de}}},Fe=Zd(Qd);async function G(t){if(!t.ok){let o=`HTTP ${t.status}: ${t.statusText}`;try{const n=await t.json();n.message?o=n.message:n.errors&&n.errors.length>0&&(o=n.errors[0].message||o)}catch{}throw new Error(o)}return{data:(await t.json()).data}}function fc(t){const{client:r}=Be(),o=i.useCallback(async()=>{const c=await r(`/api/agent/contexts?token=${encodeURIComponent(t)}`,{method:"GET"});return(await G(c)).data},[r,t]),{data:n,error:s,mutate:a}=Fe(t?`wacht-agent-sessions:${t}`:null,o,{revalidateOnFocus:!1}),p=i.useCallback(async c=>{const h=new FormData;h.append("title",c.title),c.system_instructions&&h.append("system_instructions",c.system_instructions);const l=await r(`/api/agent/contexts?token=${encodeURIComponent(t)}`,{method:"POST",body:h}),u=await G(l);return await a(m=>m&&{...m,data:[u.data,...m.data]}),u.data},[r,t,a]),g=i.useCallback(async c=>{await r(`/api/agent/contexts/${c}/delete?token=${encodeURIComponent(t)}`,{method:"POST"}),await a(h=>h&&{...h,data:h.data.filter(l=>l.id!==c)})},[r,t,a]);return{sessions:(n==null?void 0:n.data)||[],loading:!n&&!s,error:s,createSession:p,deleteSession:g,refetch:async()=>{await a()}}}const gc=i.createContext(void 0);function qo(){const t=i.useContext(gc);if(!t)throw new Error("useAgentConversationContext must be used within AgentConversationProvider");return t}function Xd({children:t,agentName:r,token:o,platformAdapter:n,defaultSessionId:s,onSessionCreated:a,onSessionDeleted:p,onError:g}){const[c,h]=i.useState(s?{id:s,title:"Conversation",status:"idle",last_activity_at:new Date().toISOString(),created_at:new Date().toISOString()}:null),[l,u]=i.useState(!1),{sessions:m,loading:v,error:x,createSession:y,deleteSession:$,refetch:S}=fc(o);i.useEffect(()=>{if(s&&m.length>0){const b=m.find(f=>f.id===s);b&&h(b)}},[s,m]);const k=i.useCallback(b=>{h(b),u(!1)},[]),I=i.useCallback(async b=>{try{const f=b||`Chat ${new Date().toLocaleDateString()} ${new Date().toLocaleTimeString()}`,z=await y({title:f});return h(z),a==null||a(z),z}catch(f){const z=f instanceof Error?f.message:"Failed to create session";throw g==null||g(z),f}},[y,a,g]),E=i.useCallback(async b=>{try{await $(b),(c==null?void 0:c.id)===b&&h(null),p==null||p(b)}catch(f){const z=f instanceof Error?f.message:"Failed to delete session";throw g==null||g(z),f}},[$,c,p,g]),w={agentName:r,token:o,platformAdapter:n,sessions:m,selectedSession:c,loadingSessions:v,sessionError:x,selectSession:k,createSession:I,deleteSession:E,refreshSessions:S,showHistory:l,setShowHistory:u,onSessionCreated:a,onSessionDeleted:p,onError:g};return e.jsx(gc.Provider,{value:w,children:t})}var mc=(t=>(t.XOauth="x_oauth",t.GithubOauth="github_oauth",t.GitlabOauth="gitlab_oauth",t.GoogleOauth="google_oauth",t.FacebookOauth="facebook_oauth",t.MicrosoftOauth="microsoft_oauth",t.LinkedinOauth="linkedin_oauth",t.DiscordOauth="discord_oauth",t.AppleOauth="apple_oauth",t))(mc||{});function Jd(t,r){const o={username:eu(t,r),email:tu(t,r),phone:ru(t,r),email_otp:ou(t,r),magic_link:nu(t,r),oauth:su(t),generic:au(t,r)};return function(s){return o[s]}}function eu(t,r){return async({username:o,password:n})=>{var g,c;const s=new FormData;s.append("strategy","plain_username"),s.append("username",o),s.append("password",n);const a=await t("/auth/signin",{method:"POST",body:s}),p=await G(a);return"data"in p&&((c=(g=p.data)==null?void 0:g.signin_attempts)!=null&&c.length)&&r(p.data.signin_attempts.at(-1)||null),p}}function tu(t,r){return async({email:o,password:n})=>{var g,c;const s=new FormData;s.append("strategy","plain_email"),s.append("email",o),s.append("password",n);const a=await t("/auth/signin",{method:"POST",body:s}),p=await G(a);return"data"in p&&((c=(g=p.data)==null?void 0:g.signin_attempts)!=null&&c.length)&&r(p.data.signin_attempts.at(-1)||null),p}}function ru(t,r){return async({phone:o})=>{var p,g;const n=new FormData;n.append("strategy","phone_otp"),n.append("phone",o);const s=await t("/auth/signin",{method:"POST",body:n}),a=await G(s);return"data"in a&&((g=(p=a.data)==null?void 0:p.signin_attempts)!=null&&g.length)&&r(a.data.signin_attempts.at(-1)||null),a}}function ou(t,r){return async({email:o})=>{var p,g;const n=new FormData;n.append("strategy","email_otp"),n.append("email",o);const s=await t("/auth/signin",{method:"POST",body:n}),a=await G(s);return"data"in a&&((g=(p=a.data)==null?void 0:p.signin_attempts)!=null&&g.length)&&r(a.data.signin_attempts.at(-1)||null),a}}function nu(t,r){return async({email:o})=>{var p,g;const n=new FormData;n.append("strategy","magic_link"),n.append("email",o);const s=await t("/auth/signin",{method:"POST",body:n}),a=await G(s);return"data"in a&&((g=(p=a.data)==null?void 0:p.signin_attempts)!=null&&g.length)&&r(a.data.signin_attempts.at(-1)||null),a}}function su(t){return async({provider:r,redirectUri:o})=>{const n=new URLSearchParams({provider:r});o&&n.append("redirect_uri",o);const s=await t(`/auth/oauth2/init?${n.toString()}`,{method:"POST"}),a=await G(s);return"data"in a&&a.data.oauth_url&&(window.location.href=a.data.oauth_url),a}}function au(t,r){return async({email:o,username:n,password:s,phone:a,strategy:p,token:g})=>{var u,m;const c=new FormData;p&&c.append("strategy",p),o&&c.append("email",o),n&&c.append("username",n),s&&c.append("password",s),a&&c.append("phone",a),g&&c.append("token",g);const h=await t("/auth/signin",{method:"POST",body:c}),l=await G(h);return"data"in l&&((m=(u=l.data)==null?void 0:u.signin_attempts)!=null&&m.length)&&r(l.data.signin_attempts.at(-1)||null),l}}function xc(){const{client:t,loading:r}=Be(),[o,n]=i.useState(null);return r?{loading:!0,signIn:null,signinAttempt:null,discardSignInAttempt:()=>{n(null)},setSignInAttempt:n}:{loading:!1,signinAttempt:o,signIn:{createStrategy:Jd(t,n),completeVerification:async s=>{var c,h;const a=new FormData;a.append("verification_code",s);const p=await t(`/auth/attempt-verification?attempt_identifier=${o==null?void 0:o.id}&identifier_type=signin`,{method:"POST",body:a}),g=await G(p);if("data"in g&&((h=(c=g.data)==null?void 0:c.signin_attempts)!=null&&h.length)){const l=g.data.signin_attempts.at(-1);return n(l||null),g.data}else throw new Error("Verification failed")},prepareVerification:async s=>{var g;const a=new URL("/auth/prepare-verification",window.location.origin);a.searchParams.set("attempt_identifier",((g=o==null?void 0:o.id)==null?void 0:g.toString())||""),a.searchParams.set("strategy",s.strategy),a.searchParams.set("identifier_type","signin"),s.strategy==="phone_otp"&&s.lastDigits?a.searchParams.set("last_digits",s.lastDigits):(s.strategy==="email_otp"&&s.redirectUri||s.strategy==="magic_link"&&s.redirectUri)&&a.searchParams.set("redirect_uri",s.redirectUri);const p=await t(a.pathname+a.search,{method:"POST"});return G(p)},completeProfile:async s=>{var c;if(!o)throw new Error("No signin attempt found");const a=new FormData;for(const[h,l]of Object.entries(s))l&&a.append(h,l);const p=await t(`/auth/complete-profile?attempt_id=${o.id}`,{method:"POST",body:a}),g=await G(p);if("data"in g&&g.data){const h=(c=g.data.signin_attempts)==null?void 0:c.find(l=>l.id===o.id);return h&&n(h),g.data}else throw new Error("Profile completion failed")},identify:async s=>{const a=new FormData;a.append("identifier",s);const p=await t("/auth/identify",{method:"POST",body:a});return(await G(p)).data},initEnterpriseSso:async(s,a)=>{const p=new URLSearchParams({connection_id:s});a&&p.append("redirect_uri",a);const g=await t(`/auth/sso/login?${p.toString()}`,{method:"POST"});return(await G(g)).data}},discardSignInAttempt:()=>{n(null)},setSignInAttempt:n}}function Br(t){const{loading:r,signIn:o,signinAttempt:n,discardSignInAttempt:s,setSignInAttempt:a}=xc();if(r)return{loading:!0,signIn:null,signinAttempt:null,discardSignInAttempt:s,setSignInAttempt:a};const p=(()=>{switch(t){case"username":return o.createStrategy("username");case"email":return o.createStrategy("email");case"phone":return o.createStrategy("phone");case"email_otp":return o.createStrategy("email_otp");case"magic_link":return o.createStrategy("magic_link");case"oauth":return o.createStrategy("oauth");case"generic":return o.createStrategy("generic");default:throw new Error("Invalid sign-in strategy")}})();return{loading:!1,signinAttempt:n,signIn:{create:p,completeVerification:o.completeVerification,prepareVerification:o.prepareVerification,completeProfile:o.completeProfile,identify:o.identify,initEnterpriseSso:o.initEnterpriseSso},discardSignInAttempt:s,setSignInAttempt:a}}function iu(t,r,o){return{create:async n=>{var g,c,h;const s=new FormData;for(const[l,u]of Object.entries(n))s.append(l,u);const a=await t("/auth/signup",{method:"POST",body:s}),p=await G(a);return"data"in p&&((c=(g=p.data)==null?void 0:g.signup_attempts)!=null&&c.length)&&o(((h=p.data.signup_attempts)==null?void 0:h.at(-1))||null),p},prepareVerification:async n=>{var p;const s=new URL("/auth/prepare-verification",window.location.origin);s.searchParams.set("attempt_identifier",((p=r==null?void 0:r.id)==null?void 0:p.toString())||""),s.searchParams.set("strategy",n.strategy),s.searchParams.set("identifier_type","signup"),n.strategy==="phone_otp"&&n.lastDigits?s.searchParams.set("last_digits",n.lastDigits):n.strategy==="email_otp"&&n.redirectUri&&s.searchParams.set("redirect_uri",n.redirectUri);const a=await t(s.pathname+s.search,{method:"POST"});return G(a)},completeVerification:async n=>{var g,c;const s=new FormData;s.append("verification_code",n);const a=await t(`/auth/attempt-verification?attempt_identifier=${r==null?void 0:r.id}&identifier_type=signup`,{method:"POST",body:s}),p=await G(a);return"data"in p&&((c=(g=p.data)==null?void 0:g.signup_attempts)!=null&&c.length)&&o(p.data.signup_attempts.at(-1)||null),p},validateDeploymentInvitation:async n=>{try{const s=await t(`/deployment/invitations/validate?token=${encodeURIComponent(n)}`,{method:"GET"}),a=await G(s);return"data"in a&&a.data?a.data:{valid:!1,message:"Failed to validate invitation",error_code:"VALIDATION_ERROR"}}catch(s){return{valid:!1,message:s.message||"Failed to validate invitation",error_code:"NETWORK_ERROR"}}}}}function vc(){const{client:t,loading:r}=Be(),[o,n]=i.useState(null);return r?{loading:!0,signUp:null,signupAttempt:null,discardSignupAttempt:()=>{n(null)}}:{loading:!1,signupAttempt:o,discardSignupAttempt:()=>{n(null)},signUp:iu(t,o,n)}}const Ge=()=>{const{adapter:t,deployment:r}=ve(),o=t.useNavigate(),n=(c,h)=>{o?o(c,h):window.location.href=c},s=c=>{if(c)return c;const l=new URLSearchParams(window.location.search).get("redirect_uri");return l||window.location.href};return{navigate:n,navigateToSignIn:c=>{if(!r)return;const h=s(c),l=new URLSearchParams;l.set("redirect_uri",h),(r==null?void 0:r.mode)==="staging"&&l.set("__dev_session__",localStorage.getItem("__dev_session__")??""),n(`${r.ui_settings.sign_in_page_url}?${l.toString()}`,{replace:!0})},navigateToAccountSelection:c=>{if(!r)return;const h=s(c),l=new URLSearchParams;l.set("redirect_uri",h),(r==null?void 0:r.mode)==="staging"&&l.set("__dev_session__",localStorage.getItem("__dev_session__")??""),n(`https://${r.frontend_host}?${l.toString()}`,{replace:!0})},navigateToSignUp:c=>{if(!r)return;const h=s(c),l=new URLSearchParams;l.set("redirect_uri",h),(r==null?void 0:r.mode)==="staging"&&l.set("__dev_session__",localStorage.getItem("__dev_session__")??""),n(`${r.ui_settings.sign_up_page_url}?${l.toString()}`,{replace:!0})}}};async function cu(t){const r=await t("/session",{method:"GET"});return(await G(r)).data}async function lu(t,r){const o=await t(`/session/switch-sign-in?sign_in_id=${r}`,{method:"POST"});return G(o)}async function du(t,r){const o=r?`/session/sign-out?sign_in_id=${r}`:"/session/sign-out",n=await t(o,{method:"POST"});return G(n)}async function uu(t,r){const o=await t(`/session/switch-organization${r?`?organization_id=${r}`:""}`,{method:"POST"});return G(o)}async function pu(t,r){const o=await t(`/session/switch-workspace?workspace_id=${r}`,{method:"POST"});return G(o)}const ns=new Map,Ar=new Map;function _t(){ns.clear(),Ar.clear()}async function hu(t,r){const o=await t(`/session/token${r?`?template=${r}`:""}`);return G(o)}function Ue(){const{client:t,loading:r}=Be(),{deployment:o}=ve(),{navigate:n}=Ge(),{cache:s}=hc(),{data:a,error:p,mutate:g,isLoading:c}=Fe(r?null:"/session",()=>cu(t),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),h=i.useCallback(async()=>{await g(void 0,{revalidate:!0})},[g]),l=i.useCallback(async(u="default")=>{if(!a)throw new Error("no session");const m=ns.get(u);if(m&&m.expires>Date.now())return(m==null?void 0:m.token)||"";Ar.get(u)||Ar.set(u,hu(t,u));const v=await Ar.get(u);return Ar.delete(u),ns.set(u,v.data),v.data.token},[t,a==null?void 0:a.active_signin]);return r||!a||c?{loading:!0,error:p,session:null,switchSignIn:null,switchOrganization:null,switchWorkspace:null,signOut:null,getToken:null,refetch:h}:{loading:c,error:p,session:a,switchSignIn:async u=>{await lu(t,u),_t(),await Or("/me/organization-memberships",void 0,{revalidate:!1}),await Or("/me/workspace-memberships",void 0,{revalidate:!1}),await g(void 0,{revalidate:!0}),await Or("/me/organization-memberships"),await Or("/me/workspace-memberships")},signOut:async u=>{await du(t,u);const m=["/session","/user","/me/signins","/me/organization-memberships","/me/workspace-memberships","wacht-notifications:channel-counts"],v=["wacht-notifications:","wacht-agent-sessions:","wacht-agent-contexts:","wacht-org-domains:","wacht-api-workspaces:","wacht-api-organizations:"];if(s instanceof Map){const x=Array.from(s.keys());for(const y of x){let $=!1;(m.includes(y)||typeof y=="string"&&v.some(S=>y.startsWith(S)))&&($=!0),$&&s.delete(y)}}_t(),await g(void 0,{revalidate:!0}),o!=null&&o.ui_settings&&(u&&o.ui_settings.after_sign_out_one_page_url?n(o.ui_settings.after_sign_out_one_page_url):!u&&o.ui_settings.after_sign_out_all_page_url&&n(o.ui_settings.after_sign_out_all_page_url))},switchOrganization:async u=>{await uu(t,u),_t(),await g(void 0,{revalidate:!0})},switchWorkspace:async u=>{await pu(t,u),_t(),await g(void 0,{revalidate:!0})},getToken:l,refetch:h}}const Yo=()=>{const{organizationMemberships:t,refetch:r,loading:o}=Ct(),{client:n}=Be(),{refetch:s}=Ue(),a=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/roles`,{method:"GET"}))).data,[n]),p=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/members`,{method:"GET"}))).data,[n]),g=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/invitations`,{method:"GET"}))).data,[n]),c=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/domains`,{method:"GET"}))).data,[n]),h=i.useCallback(async(F,O)=>{await n(`/organizations/${F.id}/members/${O.id}/remove`,{method:"POST"})},[n]),l=i.useCallback(async F=>{const O=new FormData;O.append("name",F.name),F.image&&O.append("image",F.image),F.description&&O.append("description",F.description);const A=await G(await n("/organizations",{method:"POST",body:O}));return _t(),await r(),await s(),A},[s,r,n]),u=i.useCallback(async(F,O)=>{const A=Object.entries(O).reduce((re,[V,q])=>(q&&re.append(V,q),re),new FormData),J=await G(await n(`/organizations/${F.id}/update`,{method:"POST",body:A}));return await r(),J},[r,n]),m=i.useCallback(async(F,O)=>{await n(`/organizations/${F.id}/roles/${O.id}/remove`,{method:"POST"})},[n]),v=i.useCallback(async(F,O)=>{const A=new FormData;return A.append("domain",O.fqdn),await G(await n(`/organizations/${F.id}/domains`,{method:"POST",body:A}))},[n]),x=i.useCallback(async(F,O)=>await G(await n(`/organizations/${F.id}/domains/${O.id}/verify`,{method:"POST"})),[n]),y=i.useCallback(async(F,O)=>await G(await n(`/organizations/${F.id}/domains/${O.id}/delete`,{method:"POST"})),[n]),$=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/enterprise-connections`,{method:"GET"}))).data,[n]),S=i.useCallback(async(F,O)=>{const A=new FormData;return A.append("protocol",O.protocol),O.domain_id&&A.append("domain_id",O.domain_id),O.idp_entity_id&&A.append("idp_entity_id",O.idp_entity_id),O.idp_sso_url&&A.append("idp_sso_url",O.idp_sso_url),O.idp_certificate&&A.append("idp_certificate",O.idp_certificate),O.oidc_client_id&&A.append("oidc_client_id",O.oidc_client_id),O.oidc_client_secret&&A.append("oidc_client_secret",O.oidc_client_secret),O.oidc_issuer_url&&A.append("oidc_issuer_url",O.oidc_issuer_url),O.oidc_scopes&&A.append("oidc_scopes",O.oidc_scopes),O.jit_enabled!==void 0&&A.append("jit_enabled",String(O.jit_enabled)),O.attribute_mapping&&A.append("attribute_mapping",JSON.stringify(O.attribute_mapping)),(await G(await n(`/organizations/${F.id}/enterprise-connections`,{method:"POST",body:A}))).data},[n]),k=i.useCallback(async(F,O,A)=>{const J=new FormData;return A.domain_id&&J.append("domain_id",A.domain_id),A.idp_entity_id&&J.append("idp_entity_id",A.idp_entity_id),A.idp_sso_url&&J.append("idp_sso_url",A.idp_sso_url),A.idp_certificate&&J.append("idp_certificate",A.idp_certificate),A.oidc_client_id&&J.append("oidc_client_id",A.oidc_client_id),A.oidc_client_secret&&J.append("oidc_client_secret",A.oidc_client_secret),A.oidc_issuer_url&&J.append("oidc_issuer_url",A.oidc_issuer_url),A.oidc_scopes&&J.append("oidc_scopes",A.oidc_scopes),A.attribute_mapping&&J.append("attribute_mapping",JSON.stringify(A.attribute_mapping)),(await G(await n(`/organizations/${F.id}/enterprise-connections/${O}/update`,{method:"POST",body:J}))).data},[n]),I=i.useCallback(async(F,O)=>{await n(`/organizations/${F.id}/enterprise-connections/${O}/delete`,{method:"POST"})},[n]),E=i.useCallback(async(F,O)=>{const A=new FormData;return A.append("protocol",O.protocol),O.idp_entity_id&&A.append("idp_entity_id",O.idp_entity_id),O.idp_sso_url&&A.append("idp_sso_url",O.idp_sso_url),O.idp_certificate&&A.append("idp_certificate",O.idp_certificate),O.oidc_issuer_url&&A.append("oidc_issuer_url",O.oidc_issuer_url),O.oidc_client_id&&A.append("oidc_client_id",O.oidc_client_id),O.oidc_client_secret&&A.append("oidc_client_secret",O.oidc_client_secret),(await G(await n(`/organizations/${F.id}/enterprise-connections/test`,{method:"POST",body:A}))).data},[n]),w=i.useCallback(async(F,O)=>(await G(await n(`/organizations/${F.id}/enterprise-connections/${O}/test`,{method:"POST"}))).data,[n]),b=i.useCallback(async(F,O)=>(await G(await n(`/organizations/${F.id}/enterprise-connections/${O}/scim/token`,{method:"POST"}))).data,[n]),f=i.useCallback(async(F,O)=>(await G(await n(`/organizations/${F.id}/enterprise-connections/${O}/scim/token`,{method:"GET"}))).data,[n]),z=i.useCallback(async(F,O)=>{await n(`/organizations/${F.id}/enterprise-connections/${O}/scim/token/revoke`,{method:"POST"})},[n]),_=i.useCallback(async(F,O)=>{const A=new FormData;return A.append("name",O.name),O.permissions&&O.permissions.forEach((re,V)=>{A.append(`permissions[${V}]`,re)}),await G(await n(`/organizations/${F.id}/roles`,{method:"POST",body:A}))},[n]),j=i.useCallback(async F=>(await G(await n(`/organizations/${F.id}/leave`,{method:"POST"}))).data,[n]),M=i.useCallback(async F=>{const O=await G(await n(`/organizations/${F.id}/delete`,{method:"POST"}));return _t(),await r(),await s(),O.data},[n,r,s]),R=i.useCallback(async(F,O,A)=>(await G(await n(`/organizations/${F.id}/members/${O.id}/roles/${A.id}/add`,{method:"POST"}))).data,[n]),C=i.useCallback(async(F,O,A)=>(await G(await n(`/organizations/${F.id}/members/${O.id}/roles/${A.id}/remove`,{method:"POST"}))).data,[n]),P=i.useCallback(async(F,O)=>{var re,V;const A=new FormData;return A.append("email",O.email),A.append("role_id",O.organizationRole.id),(re=O.workspace)!=null&&re.id&&A.append("workspace_id",O.workspace.id),(V=O.workspaceRole)!=null&&V.id&&A.append("workspace_role_id",O.workspaceRole.id),(await G(await n(`/organizations/${F.id}/invitations`,{method:"POST",body:A}))).data},[n]),T=i.useCallback(async(F,O)=>(await G(await n(`/organizations/${F.id}/invitations/${O.id}/discard`,{method:"POST"}))).data,[n]),B=i.useCallback(async(F,O)=>(await G(await n(`/organizations/${F.id}/invitations/${O.id}/resend`,{method:"POST"}))).data,[n]);return{organizations:i.useMemo(()=>t==null?void 0:t.map(F=>F.organization),[t]),loading:o,error:null,refetch:r,leaveOrganization:j,getOrganizationRoles:a,getOrganizationMembers:p,removeOrganizationMember:h,createOrganization:l,getOrganizationInvitations:g,getOrganizationDomains:c,addOrganizationDomain:v,verifyOrganizationDomain:x,removeOrganizationDomain:y,addRoleToOrganizationMember:R,removeRoleFromOrganizationMember:C,inviteOrganizationMember:P,discardOrganizationInvitation:T,resendOrganizationInvitation:B,updateOrganization:u,addRole:_,removeOrganizationRoles:m,deleteOrganization:M,getEnterpriseConnections:$,createEnterpriseConnection:S,updateEnterpriseConnection:k,deleteEnterpriseConnection:I,testEnterpriseConnectionConfig:E,testEnterpriseConnection:w,generateSCIMToken:b,getSCIMToken:f,revokeSCIMToken:z}},Ze=()=>{const{loading:t,error:r,refetch:o,getOrganizationMembers:n,getOrganizationRoles:s,leaveOrganization:a,removeOrganizationMember:p,getOrganizationInvitations:g,getOrganizationDomains:c,removeOrganizationDomain:h,addOrganizationDomain:l,verifyOrganizationDomain:u,addRoleToOrganizationMember:m,removeRoleFromOrganizationMember:v,inviteOrganizationMember:x,discardOrganizationInvitation:y,resendOrganizationInvitation:$,updateOrganization:S,removeOrganizationRoles:k,getEnterpriseConnections:I,createEnterpriseConnection:E,updateEnterpriseConnection:w,deleteEnterpriseConnection:b,testEnterpriseConnectionConfig:f,testEnterpriseConnection:z,generateSCIMToken:_,getSCIMToken:j,revokeSCIMToken:M}=Yo(),{session:R,error:C,loading:P}=Ue(),{organizationMemberships:T}=Ct(),B=i.useMemo(()=>(T==null?void 0:T.find(D=>{var Z;return D.id===((Z=R==null?void 0:R.active_signin)==null?void 0:Z.active_organization_membership_id)}))||null,[T,R]),L=i.useMemo(()=>(B==null?void 0:B.organization)||null,[B]),F=i.useCallback(async D=>L?await S(L,D):[],[L,S]),O=i.useCallback(async()=>L?await n(L):[],[L,n]),A=i.useCallback(async()=>L?await s(L):[],[L,s]),J=i.useCallback(async D=>L?await p(L,D):[],[L,p]),re=i.useCallback(async D=>L?await k(L,D):void 0,[L,k]),V=i.useCallback(async()=>L?await c(L):[],[L,c]),q=i.useCallback(async D=>L?await l(L,D):void 0,[L,l]),H=i.useCallback(async D=>L?await u(L,D):void 0,[L,u]),ee=i.useCallback(async D=>L?await h(L,D):void 0,[L,h]),le=i.useCallback(async(D,Z)=>L?await m(L,D,Z):void 0,[L,m]),oe=i.useCallback(async(D,Z)=>L?await v(L,D,Z):void 0,[L,v]),de=i.useCallback(async D=>L?await x(L,D):void 0,[L,x]),K=i.useCallback(async D=>L?await y(L,D):void 0,[L,y]),se=i.useCallback(async D=>L?await $(L,D):void 0,[L,$]),xe=i.useCallback(async()=>{L&&await a(L)},[L,a]),ue=i.useCallback(async()=>L?await g(L):[],[L,g]),U=i.useCallback(async()=>L?await I(L):[],[L,I]),pe=i.useCallback(async D=>{if(L)return await E(L,D)},[L,E]),Q=i.useCallback(async(D,Z)=>{if(L)return await w(L,D,Z)},[L,w]),Y=i.useCallback(async D=>{L&&await b(L,D)},[L,b]),ne=i.useCallback(async D=>L?await f(L,D):null,[L,f]),me=i.useCallback(async D=>L?await z(L,D):null,[L,z]),fe=i.useCallback(async D=>{if(L)return await _(L,D)},[L,_]),W=i.useCallback(async D=>{if(L)return await j(L,D)},[L,j]),N=i.useCallback(async D=>{L&&await M(L,D)},[L,M]);return P||t?{activeOrganization:null,activeMembership:null,loading:!0,error:C||r,updateOrganization:null,getRoles:null,getMembers:null,getDomains:null,addDomain:null,verifyDomain:null,removeDomain:null,removeRole:null,getInvitations:null,removeMember:null,addMemberRole:null,removeMemberRole:null,inviteMember:null,discardInvitation:null,resendInvitation:null,leave:null,getEnterpriseConnections:null,createEnterpriseConnection:null,updateEnterpriseConnection:null,deleteEnterpriseConnection:null,generateSCIMToken:null,getSCIMToken:null,revokeSCIMToken:null}:{activeOrganization:L,activeMembership:B,loading:!1,refetch:o,getRoles:A,updateOrganization:F,getMembers:O,getDomains:V,addDomain:q,verifyDomain:H,removeDomain:ee,getInvitations:ue,removeMember:J,leave:xe,removeRole:re,addMemberRole:le,removeMemberRole:oe,inviteMember:de,discardInvitation:K,resendInvitation:se,getEnterpriseConnections:U,createEnterpriseConnection:pe,updateEnterpriseConnection:Q,deleteEnterpriseConnection:Y,testEnterpriseConnectionConfig:ne,testEnterpriseConnection:me,generateSCIMToken:fe,getSCIMToken:W,revokeSCIMToken:N,error:null}};async function fu(t){return(await G(await t("/me/organization-memberships"))).data}const Ct=()=>{const{client:t,loading:r}=Be(),{data:o,isLoading:n,error:s,mutate:a}=Fe(r?null:"/me/organization-memberships",()=>fu(t),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),p=i.useCallback(async()=>{await a(void 0,{revalidate:!0})},[a]);return{organizationMemberships:o,loading:r||n,error:s,refetch:p}};async function gu(t){return(await G(await t("/me/workspace-memberships"))).data}async function mu(t,r,o){return(await G(await t(`/workspaces/${r}/members/${o}/remove`,{method:"POST"}))).data}const Zo=()=>{const{client:t,loading:r}=Be(),{deployment:o}=ve(),{data:n,isLoading:s,error:a,mutate:p}=Fe(!r&&(o!=null&&o.b2b_settings.workspaces_enabled)?"/me/workspace-memberships":null,()=>gu(t),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),g=i.useCallback(async()=>{await p(void 0,{revalidate:!0})},[p]);return{workspaceMemberships:n,loading:r||s,error:a,refetch:g}},Pt=()=>{const{workspaceMemberships:t,refetch:r,loading:o,error:n}=Zo(),{client:s}=Be(),a=i.useMemo(()=>t==null?void 0:t.map(w=>({...w.workspace,organization:w.organization,eligibility_restriction:w.eligibility_restriction})),[t]),p=i.useCallback(async(w,b,f,z)=>{const _=new FormData;_.append("name",b),f&&_.append("image",f),z&&_.append("description",z),_.append("organization_id",w);const j=await G(await s("/workspaces",{method:"POST",body:_}));return _t(),await r(),j.data},[s,r]),g=i.useCallback(async(w,b)=>{const f=await mu(s,w,b);return await r(),f},[s,r]),c=i.useCallback(async(w,b)=>{const f=new FormData;b.name&&f.append("name",b.name),b.description&&f.append("description",b.description),b.image&&f.append("image",b.image),b.enforce_2fa!==void 0&&f.append("enforce_2fa",String(b.enforce_2fa)),b.enable_ip_restriction!==void 0&&f.append("enable_ip_restriction",String(b.enable_ip_restriction)),b.whitelisted_ips&&b.whitelisted_ips.forEach(_=>f.append("whitelisted_ips",_));const z=await G(await s(`/workspaces/${w.id}/update`,{method:"POST",body:f}));return await r(),z.data},[s,r]),h=i.useCallback(async w=>{const b=await G(await s(`/workspaces/${w.id}/delete`,{method:"POST"}));return _t(),await r(),b.data},[s,r]),l=i.useCallback(async w=>(await G(await s(`/workspaces/${w.id}/members`,{method:"GET"}))).data,[s]),u=i.useCallback(async w=>(await G(await s(`/workspaces/${w.id}/roles`,{method:"GET"}))).data,[s]),m=i.useCallback(async(w,b,f)=>{const z=new FormData;return z.append("name",b),f.forEach(j=>z.append("permissions",j)),(await G(await s(`/workspaces/${w.id}/roles`,{method:"POST",body:z}))).data},[s]),v=i.useCallback(async(w,b)=>(await G(await s(`/workspaces/${w.id}/roles/${b.id}/delete`,{method:"POST"}))).data,[s]),x=i.useCallback(async(w,b)=>{const f=await G(await s(`/workspaces/${w.id}/members/${b}/remove`,{method:"POST"}));return await r(),f.data},[s,r]),y=i.useCallback(async(w,b,f)=>(await G(await s(`/workspaces/${w.id}/members/${b}/roles/${f}/add`,{method:"POST"}))).data,[s]),$=i.useCallback(async(w,b,f)=>(await G(await s(`/workspaces/${w.id}/members/${b}/roles/${f}/remove`,{method:"POST"}))).data,[s]),S=i.useCallback(async w=>(await G(await s(`/organizations/${w.organization.id}/invitations`,{method:"GET"}))).data.filter(f=>String(f.workspace_id)===String(w.id)),[s]),k=i.useCallback(async(w,b,f)=>{const z=new FormData;return z.append("email",b),z.append("workspace_id",w.id),f&&z.append("workspace_role_id",f),(await G(await s(`/organizations/${w.organization.id}/invitations`,{method:"POST",body:z}))).data},[s]),I=i.useCallback(async(w,b)=>(await G(await s(`/organizations/${w.organization.id}/invitations/${b}/discard`,{method:"POST"}))).data,[s]),E=i.useCallback(async(w,b)=>(await G(await s(`/organizations/${w.organization.id}/invitations/${b}/resend`,{method:"POST"}))).data,[s]);return{workspaces:a||[],loading:o,error:n,refetch:r,leaveWorkspace:g,createWorkspace:p,updateWorkspace:c,deleteWorkspace:h,getWorkspaceMembers:l,getWorkspaceRoles:u,createWorkspaceRole:m,deleteWorkspaceRole:v,removeWorkspaceMember:x,addWorkspaceMemberRole:y,removeWorkspaceMemberRole:$,getWorkspaceInvitations:S,createWorkspaceInvitation:k,discardWorkspaceInvitation:I,resendWorkspaceInvitation:E}},Rt=()=>{const{refetch:t,loading:r,error:o,workspaces:n,leaveWorkspace:s,updateWorkspace:a,deleteWorkspace:p,getWorkspaceMembers:g,getWorkspaceRoles:c,createWorkspaceRole:h,deleteWorkspaceRole:l,removeWorkspaceMember:u,addWorkspaceMemberRole:m,removeWorkspaceMemberRole:v,getWorkspaceInvitations:x,createWorkspaceInvitation:y,discardWorkspaceInvitation:$,resendWorkspaceInvitation:S}=Pt(),{workspaceMemberships:k}=Zo(),{session:I,loading:E,error:w}=Ue(),b=i.useMemo(()=>(k==null?void 0:k.find(H=>{var ee;return H.id===((ee=I==null?void 0:I.active_signin)==null?void 0:ee.active_workspace_membership_id)}))||null,[k,I]),f=i.useMemo(()=>(b==null?void 0:b.workspace)||null,[b]),z=i.useCallback(async()=>{var H;if(!(!f||!((H=I==null?void 0:I.active_signin)!=null&&H.user_id)))return await s(f.id,I.active_signin.user_id)},[f,s,I]),_=i.useCallback(async H=>{if(f)return await a(f,H)},[f,a]),j=i.useCallback(async()=>{if(f)return await p(f)},[f,p]),M=i.useCallback(async()=>f?await g(f):[],[f,g]),R=i.useCallback(async()=>f?await c(f):[],[f,c]),C=i.useCallback(async(H,ee)=>{if(f)return await h(f,H,ee)},[f,h]),P=i.useCallback(async H=>{if(f)return await l(f,H)},[f,l]),T=i.useCallback(async H=>{if(f)return await u(f,H)},[f,u]),B=i.useCallback(async(H,ee)=>{if(f)return await m(f,H,ee)},[f,m]),L=i.useCallback(async(H,ee)=>{if(f)return await v(f,H,ee)},[f,v]),F=i.useMemo(()=>(n==null?void 0:n.find(H=>H.id===(f==null?void 0:f.id)))||null,[n,f]),O=i.useCallback(async()=>F?await x(F):[],[F,x]),A=i.useCallback(async(H,ee)=>{if(F)return await y(F,H,ee)},[F,y]),J=i.useCallback(async H=>{if(F)return await $(F,H)},[F,$]),re=i.useCallback(async H=>{if(F)return await S(F,H)},[F,S]),V=r||E,q=o||w;return V?{activeWorkspace:null,activeMembership:null,loading:!0,error:q,refetch:t,leave:null,updateWorkspace:null,deleteWorkspace:null,getMembers:null,getRoles:null,createRole:null,deleteRole:null,inviteMember:null,removeMember:null,addMemberRole:null,removeMemberRole:null,getInvitations:null,discardInvitation:null,resendInvitation:null}:{activeWorkspace:f,activeMembership:b,loading:!1,error:q,refetch:t,leave:z,updateWorkspace:_,deleteWorkspace:j,getMembers:M,getRoles:R,createRole:C,deleteRole:P,inviteMember:A,removeMember:T,addMemberRole:B,removeMemberRole:L,getInvitations:O,discardInvitation:J,resendInvitation:re}},xu=async t=>(await G(await t("/me"))).data,vu=async t=>(await G(await t("/me/signins"))).data;function sr(){const{client:t,loading:r}=Be(),{data:o,error:n,isLoading:s,mutate:a}=Fe(r?null:"/user",()=>xu(t)),p=async P=>{const T=new FormData;for(const[L,F]of Object.entries(P))F!=null&&F!==""&&T.append(L,String(F));const B=await G(await t("/me",{method:"POST",body:T}));return a(),B},g=async()=>await G(await t("/me/email-addresses",{method:"GET"})),c=async P=>await G(await t(`/me/email-addresses/${P}`,{method:"GET"})),h=async P=>{const T=new FormData;return T.append("email",P),await G(await t("/me/email-addresses",{method:"POST",body:T}))},l=async P=>await G(await t(`/me/email-addresses/${P}/delete`,{method:"POST"})),u=async P=>await G(await t(`/me/email-addresses/${P}/prepare-verification`,{method:"POST"})),m=async(P,T)=>await G(await t(`/me/email-addresses/${P}/attempt-verification?code=${T}`,{method:"POST"})),v=async(P,T)=>{const B=new FormData;return B.append("phone_number",P),B.append("country_code",T),await G(await t("/me/phone-numbers",{method:"POST",body:B}))},x=async P=>await G(await t(`/me/phone-numbers/${P}/delete`,{method:"POST"})),y=async P=>await G(await t(`/me/phone-numbers/${P}/prepare-verification`,{method:"POST"})),$=async(P,T)=>{const B=new FormData;return B.append("code",T),await G(await t(`/me/phone-numbers/${P}/attempt-verification`,{method:"POST",body:B}))},S=async P=>{const T=await G(await t(`/me/phone-numbers/${P}/make-primary`,{method:"POST"}));return a(),T},k=async P=>await G(await t(`/me/email-addresses/${P}/make-primary`,{method:"POST"})),I=async()=>(await G(await t("/me/authenticator",{method:"POST"}))).data,E=async(P,T)=>{const B=new FormData;return B.append("authenticator_id",P),T.forEach(F=>{B.append("codes",F)}),await G(await t("/me/authenticator/attempt-verification",{method:"POST",body:B}))},w=async P=>await G(await t(`/me/authenticator/${P}/delete`,{method:"POST"})),b=async()=>(await G(await t("/me/backup-codes",{method:"POST"}))).data,f=async P=>{const T=new FormData;return T.append("file",P),await G(await t("/me/profile-picture",{method:"POST",body:T}))},z=async()=>(await G(await t("/me/backup-codes/regenerate",{method:"POST"}))).data,_=async(P,T)=>{const B=new FormData;return B.append("current_password",P),B.append("new_password",T),await G(await t("/me/update-password",{method:"POST",body:B}))},j=async P=>{const T=new FormData;T.append("current_password",P);const B=await G(await t("/me/remove-password",{method:"POST",body:T}));return a(),B},M=async P=>{const T=new FormData;return T.append("password",P),await G(await t("/me/account/delete",{method:"POST",body:T}))},R=async P=>await G(await t(`/me/social-connections/${P}/disconnect`,{method:"POST"})),C=async({provider:P,redirectUri:T})=>{var F;const B=new URLSearchParams({provider:P});T&&B.append("redirect_uri",T);const L=await G(await t(`/me/init-sso-connection?${B.toString()}`,{method:"POST"}));return"data"in L&&((F=L.data)!=null&&F.oauth_url)&&window.open(L.data.oauth_url,"_blank"),L};return{user:{...o,refetch:a},loading:r||s,error:n||null,updateProfile:p,getEmailAddresses:g,getEmailAddress:c,createEmailAddress:h,deleteEmailAddress:l,prepareEmailVerification:u,attemptEmailVerification:m,makeEmailPrimary:k,createPhoneNumber:v,deletePhoneNumber:x,preparePhoneVerification:y,attemptPhoneVerification:$,makePhonePrimary:S,setupAuthenticator:I,verifyAuthenticator:E,deleteAuthenticator:w,generateBackupCodes:b,regenerateBackupCodes:z,updateProfilePicture:f,disconnectSocialConnection:R,connectSocialAccount:C,updatePassword:_,removePassword:j,deleteAccount:M}}function bc(){const{client:t,loading:r}=Be(),{data:o,error:n,isLoading:s,mutate:a}=Fe(r?null:"/me/signins",()=>vu(t));return{signins:o,error:n||null,removeSignin:async g=>await G(await t(`/me/signins/${g}/signout`,{method:"POST"})),refetch:a,loading:s||r}}function bu(){const{session:t,loading:r}=Ue(),{loading:o,organizationMemberships:n}=Ct(),{loading:s,workspaceMemberships:a}=Zo();if(r||o||s)return{loading:!0,orgMembership:null,workspaceMembership:null};const p=i.useMemo(()=>!t||!t.signins||t.signins.length===0?null:n==null?void 0:n.find(c=>{var h;return c.id===((h=t.active_signin)==null?void 0:h.active_organization_membership_id)}),[t]),g=i.useMemo(()=>!t||!t.signins||t.signins.length===0?null:a==null?void 0:a.find(c=>{var h;return c.id===((h=t.active_signin)==null?void 0:h.active_workspace_membership_id)}),[t]);return{loading:!1,orgMembership:p,workspaceMembership:g}}function yc(){const{client:t,loading:r}=Be(),[o,n]=i.useState(!1),s=async a=>{n(!0);try{const p=new FormData;for(const[h,l]of Object.entries(a))l&&p.append(h,l);const g=await t("/waitlist/join",{method:"POST",body:p});return await G(g)}finally{n(!1)}};return r?{loading:!0,joinWaitlist:null}:{loading:o,joinWaitlist:s}}function wc(){const{client:t,loading:r}=Be(),[o,n]=i.useState(!1),[s,a]=i.useState(null),[p,g]=i.useState(null),[c,h]=i.useState(null),[l,u]=i.useState(!1),[m,v]=i.useState(null);i.useEffect(()=>{if(l||r)return;const y=new URLSearchParams(window.location.search),$=y.get("code"),S=y.get("state"),k=y.get("error"),I=y.get("error_description");if(!$&&!k){u(!0);const E=new Error("No OAuth callback data found.");a(E);return}if(u(!0),n(!0),k){const E=I||k,w=new Error(`OAuth Error: ${E}`);a(w),n(!1);return}if($&&S)x($,S);else{const E=new Error("Missing required OAuth parameters");a(E),n(!1)}},[l,r]);const x=async(y,$)=>{try{let S,k;try{const w=$.split(".");if(w.length!==2)throw new Error("Invalid OAuth state format - missing signature");const b=w[0].replace(/-/g,"+").replace(/_/g,"/"),f=b.length%4?"=".repeat(4-b.length%4):"",_=atob(b+f).split("|")[0];if(_==="sign_in")S="/auth/oauth2/callback",k="GET";else if(_==="connect_social")S="/me/sso-connection-callback",k="POST";else throw new Error(`Unknown OAuth action: ${_}`)}catch(w){const b=w instanceof Error?w:new Error("Failed to parse OAuth state");a(new Error(`Invalid OAuth callback: ${b.message}. The authorization link may be expired or malformed. Please try signing in again.`)),n(!1);return}const I=await t(`${S}?code=${encodeURIComponent(y)}&state=${encodeURIComponent($)}`,{method:k}),E=await G(I);if("data"in E){const w=E.data.session,b=E.data.redirect_uri||null;if(g(w),h(b),w.signin_attempts&&w.signin_attempts.length>0){const f=w.signin_attempts.at(-1);f&&v(f)}}else{const w=new Error("SSO callback failed");a(w)}}catch(S){const k=S instanceof Error?S:new Error("Unknown error occurred");a(k)}finally{n(!1)}};return{loading:o,error:s,session:p,redirectUri:c,processed:l,signinAttempt:m}}function jc(){const{client:t,loading:r}=Be(),[o,n]=i.useState(!1),[s,a]=i.useState(null);return{loading:r||o,verifyMagicLink:async g=>{if(!g.token||!g.attempt)throw new Error("Invalid magic link parameters");n(!0),a(null);try{const c=new URL("/auth/verify-magic-link",window.location.origin);c.searchParams.set("token",g.token),c.searchParams.set("attempt",g.attempt),g.redirectUri&&c.searchParams.set("redirect_uri",g.redirectUri);const h=await t(c.pathname+c.search,{method:"GET"}),l=await G(h);return n(!1),a(!0),l}catch(c){throw n(!1),a(!1),c}},success:s}}function _c(){const[t,r]=i.useState({});return i.useEffect(()=>{const o=new URLSearchParams(window.location.search);r({token:o.get("token")||void 0,attempt:o.get("attempt")||void 0,redirectUri:o.get("redirect_uri")||void 0})},[]),t}function kc(){const{client:t,loading:r}=Be();return{loading:r,forgotPassword:async a=>{const p=new FormData;p.append("email",a);const g=await t("/auth/forgot-password",{method:"POST",body:p});return await G(g)},verifyOtp:async(a,p)=>{const g=new FormData;g.append("email",a),g.append("otp",p);const c=await t("/auth/forgot-password",{method:"POST",body:g});return await G(c)},resetPassword:async(a,p)=>{const g=new FormData;g.append("token",a),g.append("password",p);const c=await t("/auth/reset-password",{method:"POST",body:g});return await G(c)}}}function Cc({enabled:t=!0,channels:r,organizationIds:o,workspaceIds:n,onNotification:s,onError:a,reconnectDelay:p=1e3,maxReconnectAttempts:g=5}={}){const{session:c,loading:h}=Ue(),{deployment:l,loading:u}=ve(),[m,v]=i.useState(!1),[x,y]=i.useState(null),$=i.useRef(null),S=i.useRef(null),k=i.useRef(0),I=i.useRef(null),E=i.useRef(s),w=i.useRef(a),b=i.useRef(r),f=i.useRef(o),z=i.useRef(n),_=i.useRef(p),j=i.useRef(g);E.current=s,w.current=a,b.current=r,f.current=o,z.current=n,_.current=p,j.current=g;const M=i.useCallback(()=>{S.current&&(clearTimeout(S.current),S.current=null),I.current&&(clearInterval(I.current),I.current=null),$.current&&($.current.close(),$.current=null)},[]),R=i.useCallback(async()=>{var F;if(!t||h||u||!c||!l)return;M();const T=new URL(l.backend_host),B=T.protocol==="https:"?"wss:":"ws:",L=new URL("/realtime/notifications",`${B}//${T.host}`);if(l.mode==="staging"){const O=localStorage.getItem("__dev_session__");O&&L.searchParams.set("__dev_session__",O)}b.current&&b.current.length>0&&b.current.forEach(O=>L.searchParams.append("channels",O)),f.current&&f.current.length>0&&f.current.forEach(O=>L.searchParams.append("organization_ids",O.toString())),z.current&&z.current.length>0&&z.current.forEach(O=>L.searchParams.append("workspace_ids",O.toString()));try{const O=new WebSocket(L.toString());$.current=O,O.onopen=()=>{v(!0),y(null),k.current=0,I.current=setInterval(()=>{O.readyState===WebSocket.OPEN&&O.send("ping")},3e4)},O.onmessage=A=>{var J,re;try{const V=JSON.parse(A.data);if(V.type==="notification"&&V.data)(J=E.current)==null||J.call(E,V.data);else if(V.type==="error"){const q=V.error||"Unknown error occurred";y(q),(re=w.current)==null||re.call(w,q)}else V.type}catch{}},O.onerror=()=>{var A;y("Connection error occurred"),(A=w.current)==null||A.call(w,"Connection error occurred")},O.onclose=A=>{var J;if(v(!1),I.current&&(clearInterval(I.current),I.current=null),t&&A.code!==1e3&&k.current<j.current){k.current++;const re=_.current*Math.pow(2,k.current-1);S.current=setTimeout(()=>{R()},re)}else k.current>=j.current&&(y("Max reconnection attempts reached"),(J=w.current)==null||J.call(w,"Max reconnection attempts reached"))}}catch{y("Failed to connect"),(F=w.current)==null||F.call(w,"Failed to connect")}},[t,h,u,c,l,M]);i.useEffect(()=>(R(),()=>{M()}),[R,M]),i.useEffect(()=>{$.current&&$.current.readyState===WebSocket.OPEN&&R()},[r,o,n,R]);const C=i.useCallback(()=>{M(),v(!1)},[M]),P=i.useCallback(()=>{k.current=0,R()},[R]);return{isConnected:m,connectionError:x,disconnect:C,reconnect:P}}async function yu(t,r){const o=new URLSearchParams;r&&(r.limit&&o.append("limit",r.limit.toString()),r.offset&&o.append("offset",r.offset.toString()),r.channels&&r.channels.forEach(p=>o.append("channels",p)),r.organization_ids&&r.organization_ids.forEach(p=>o.append("organization_ids",p.toString())),r.workspace_ids&&r.workspace_ids.forEach(p=>o.append("workspace_ids",p.toString())),r.is_read!==void 0&&o.append("is_read",r.is_read.toString()),r.is_archived!==void 0&&o.append("is_archived",r.is_archived.toString()),r.severity&&o.append("severity",r.severity));const n=`/notifications${o.toString()?"?"+o.toString():""}`,s=await t(n,{method:"GET"});return(await G(s)).data}async function wu(t){const r=await t("/notifications/channel-counts",{method:"GET"});return(await G(r)).data}async function ju(t,r){const o=await t(`/notifications/${r}/read`,{method:"POST"});return G(o)}async function _u(t){const r=await t("/notifications/mark-all-read",{method:"POST"});return G(r)}async function ku(t,r){const o=await t(`/notifications/${r}/delete`,{method:"POST"});return G(o)}function Sc(t){const{client:r,loading:o}=Be(),{data:n,error:s,mutate:a,isLoading:p}=Fe(o?null:`wacht-notifications:${JSON.stringify(t)}`,()=>yu(r,t),{refreshInterval:6e4,revalidateOnFocus:!0});Cc({enabled:!o&&!!n,onNotification:i.useCallback(u=>{a(async m=>!m||m.notifications.some(x=>x.id===u.id.toString())?m:{...m,notifications:[{id:u.id.toString(),user_id:u.user_id.toString(),deployment_id:u.deployment_id.toString(),title:u.title,body:u.body,severity:u.severity,action_url:u.action_url,action_label:u.action_label,is_read:!1,is_archived:!1,created_at:u.created_at,updated_at:u.created_at},...m.notifications],unread_count:m.unread_count+1,total:m.total+1},!1)},[a]),onError:i.useCallback(()=>{},[])});const g=i.useCallback(async u=>{o||(await a(async m=>m&&{...m,notifications:m.notifications.map(v=>v.id===u?{...v,is_read:!0}:v),unread_count:Math.max(0,m.unread_count-1)},!1),await ju(r,u),await a())},[r,o,a]),c=i.useCallback(async()=>{o||(await a(async u=>u&&{...u,notifications:u.notifications.map(m=>({...m,is_read:!0})),unread_count:0},!1),await _u(r),await a())},[r,a]),h=i.useCallback(async u=>{o||(await a(async m=>{if(!m)return m;const v=m.notifications.find(x=>x.id===u);return{...m,notifications:m.notifications.filter(x=>x.id!==u),unread_count:v&&!v.is_read?Math.max(0,m.unread_count-1):m.unread_count,total:Math.max(0,m.total-1)}},!1),await ku(r,u),await a())},[r,o,a]),l=i.useCallback(async()=>{await a()},[a]);return!n||o||p?{loading:!0,notifications:void 0,unreadCount:void 0,unreadCounts:void 0,channels:void 0,hasMore:void 0,markAsRead:void 0,markAllAsRead:void 0,deleteNotification:void 0,error:s,refetch:l}:{loading:!1,error:s,notifications:n.notifications,unreadCount:n.unread_count,unreadCounts:n.unread_counts,channels:n.channels,hasMore:n.has_more,markAsRead:g,markAllAsRead:c,deleteNotification:h,refetch:l}}async function Cu(t){const r=await t("/notifications/channel-counts",{method:"GET"});return(await G(r)).data}function Su(){const{client:t,loading:r}=Be(),{data:o,error:n,mutate:s}=Fe(r?null:"wacht-notifications:channel-counts",()=>Cu(t),{refreshInterval:3e4,revalidateOnFocus:!0}),a=async()=>{await s()};return!o||r?{loading:!0,counts:void 0,error:n,refetch:a}:{loading:!1,counts:o,error:n,refetch:a}}const Yt=class Yt{constructor(){tt(this,"ws",null);tt(this,"messageHandlers",new Set);tt(this,"connectionStateHandlers",new Set);tt(this,"reconnectTimer",null);tt(this,"reconnectAttempts",0);tt(this,"url",null);tt(this,"isIntentionalDisconnect",!1);tt(this,"sessionMessages",{});tt(this,"currentSessionKey",null)}static getInstance(){return Yt.instance||(Yt.instance=new Yt),Yt.instance}connect(r){var o,n;if(this.url=r,this.isIntentionalDisconnect=!1,((o=this.ws)==null?void 0:o.readyState)===WebSocket.OPEN&&this.url===r){this.notifyConnectionState({isConnected:!0});return}((n=this.ws)==null?void 0:n.readyState)!==WebSocket.CONNECTING&&this.createConnection()}createConnection(){if(this.url)try{this.ws=new WebSocket(this.url),this.ws.onopen=()=>{this.reconnectAttempts=0,this.notifyConnectionState({isConnected:!0})},this.ws.onmessage=r=>{try{const o=JSON.parse(r.data);this.notifyMessageHandlers(o)}catch{}},this.ws.onerror=()=>{this.notifyConnectionState({isConnected:!1,error:"Connection error"})},this.ws.onclose=()=>{this.ws=null,this.notifyConnectionState({isConnected:!1}),this.isIntentionalDisconnect||this.scheduleReconnect()}}catch(r){this.notifyConnectionState({isConnected:!1,error:r instanceof Error?r.message:"Failed to connect"})}}scheduleReconnect(){this.reconnectAttempts++;const r=Math.min(1e3*Math.pow(2,this.reconnectAttempts-1),3e4),o=Math.random()*.3*r,n=Math.floor(r+o);this.reconnectTimer=setTimeout(()=>{this.createConnection()},n)}disconnect(){this.isIntentionalDisconnect=!0,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws&&(this.ws.close(),this.ws=null)}send(r){var o;if(((o=this.ws)==null?void 0:o.readyState)===WebSocket.OPEN){const n=JSON.stringify(r);this.ws.send(n)}}onMessage(r){return this.messageHandlers.add(r),()=>{this.messageHandlers.delete(r)}}onConnectionStateChange(r){var o;return this.connectionStateHandlers.add(r),r({isConnected:((o=this.ws)==null?void 0:o.readyState)===WebSocket.OPEN}),()=>{this.connectionStateHandlers.delete(r)}}notifyMessageHandlers(r){this.messageHandlers.forEach(o=>{try{o(r)}catch{}})}notifyConnectionState(r){this.connectionStateHandlers.forEach(o=>{try{o(r)}catch{}})}isConnected(){var r;return((r=this.ws)==null?void 0:r.readyState)===WebSocket.OPEN}setCurrentSession(r){this.currentSessionKey=r,this.sessionMessages[r]||(this.sessionMessages[r]=[])}addMessage(r){this.currentSessionKey&&(this.sessionMessages[this.currentSessionKey]||(this.sessionMessages[this.currentSessionKey]=[]),this.sessionMessages[this.currentSessionKey].push(r))}getSessionMessages(r){return this.sessionMessages[r]||[]}clearSessionMessages(r){this.sessionMessages[r]&&(this.sessionMessages[r]=[])}};tt(Yt,"instance");let ss=Yt;const Xe=ss.getInstance(),wt={DISCONNECTED:"disconnected",CONNECTING:"connecting",CONNECTED:"connected",ERROR:"error"},Le={IDLE:"idle",STARTING:"starting",RUNNING:"running",WAITING_FOR_INPUT:"waiting_for_input",COMPLETED:"completed",FAILED:"failed"},Ot={IDLE:"Idle",STARTING:"Starting",RUNNING:"Running",WAITING_FOR_INPUT:"WaitingForInput",COMPLETED:"Completed",FAILED:"Failed",CANCELLED:"Cancelled"};function Ks(t){switch(t){case Ot.IDLE:return Le.IDLE;case Ot.STARTING:return Le.STARTING;case Ot.RUNNING:return Le.RUNNING;case Ot.WAITING_FOR_INPUT:return Le.WAITING_FOR_INPUT;case Ot.COMPLETED:return Le.COMPLETED;case Ot.FAILED:case Ot.CANCELLED:return Le.FAILED;default:return Le.IDLE}}function Qs(t){return t===Le.STARTING||t===Le.RUNNING||t===Le.WAITING_FOR_INPUT}function zc({contextId:t,agentName:r,token:o,platformAdapter:n,autoConnect:s=!0}){const{deployment:a}=ve(),{client:p}=Be(),[g,c]=i.useState([]),[h,l]=i.useState(null),[u,m]=i.useState(null),[v,x]=i.useState(!1),[y,$]=i.useState(!1),[S,k]=i.useState(Le.IDLE),[I,E]=i.useState({status:wt.DISCONNECTED}),[w,b]=i.useState(!0),[f,z]=i.useState(!1),_=i.useRef(null),j=i.useRef(null),M=i.useCallback(V=>{var q,H;switch(V.message_type){case"session_connected":if(x(!0),E({status:wt.CONNECTED}),(q=V.data)!=null&&q.execution_status){const le=V.data.execution_status,oe=Ks(le);k(oe),$(Qs(oe))}break;case"conversation_message":R(V.data);break;case"user_input_request":C(V.data);break;case"platform_event":P(V.data);break;case"platform_function":T(V.data);break;case"execution_complete":$(!1),k(Le.IDLE),j.current=null;break;case"execution_error":$(!1),k(Le.FAILED),j.current=null;break;case"execution_cancelled":$(!1),k(Le.IDLE),j.current=null;break;case"execution_status":const ee=(H=V.data)==null?void 0:H.status;if(ee){const le=Ks(ee);k(le),$(Qs(le))}break}},[h]),R=i.useCallback(V=>{var oe,de,K,se,xe,ue,U,pe;const{id:q,message_type:H,content:ee}=V,le=Q=>g.some(Y=>Y.id===Q);if(H==="system_decision"||H==="action_execution_result"||H==="assistant_task_breakdown"||H==="assistant_validation"||H==="assistant_action_planning"||H==="context_results"){l(null),m(null);let Q="";if(H==="system_decision"){const Y=ee==null?void 0:ee.step,ne=ee==null?void 0:ee.reasoning;if(Y==="gathercontext")ne&&ne.length>0?Q=ne.length>60?`${ne.substring(0,60)}...`:ne:Q="Gathering context...";else if(Y==="executeaction")Q="Executing action";else if(Y==="deliverresponse")Q="Preparing response";else if(Y==="taskplanning")Q="Planning approach";else if(Y==="validateprogress")Q="Validating progress";else if(Y==="acknowledge")Q="Processing request";else if(Y==="finishplanning")Q="Finalizing plan";else if(Y==="executetasks")Q="Executing tasks";else if(Y==="requestuserinput")Q="Waiting for input";else if(Y==="complete")Q="Completed";else if(Y==="examinetool")Q="Examining tool";else if(Y==="examineworkflow")Q="Examining workflow";else{const me=(ee==null?void 0:ee.confidence)||.5;me>.8?Q="Analyzing":me>.6?Q="Thinking":Q="Reasoning"}}else if(H==="action_execution_result")((oe=ee.task_execution)==null?void 0:oe.status)==="completed"?Q="Task execution completed":(de=ee.task_execution)!=null&&de.approach?Q=ee.task_execution.approach:Q="Executing task";else if(H==="assistant_task_breakdown")(K=ee.task_breakdown)!=null&&K.total_tasks?Q=`Identified ${ee.task_breakdown.total_tasks} tasks`:Q="Planning tasks";else if(H==="assistant_validation")Q="Validated results";else if(H==="assistant_action_planning")(se=ee.task_execution)!=null&&se.total_tasks?Q=`Planned ${ee.task_execution.total_tasks} tasks`:(ue=(xe=ee.task_execution)==null?void 0:xe.tasks)!=null&&ue.length?Q=`Planned ${ee.task_execution.tasks.length} tasks`:Q="Planning actions";else if(H==="context_results"){const Y=ee.query,ne=ee.result_count||0;Y&&Y!=="General context gathering"?Q=`${Y}: Found ${ne} results`:Q=`Found ${ne} results`}Q&&!le(q)&&c(Y=>[...Y,{id:q,role:"system",content:Q,timestamp:new Date,metadata:{type:"log",messageType:H}}]);return}if(H==="user_message")le(q)||(l(null),m(null),c(Q=>[...Q,{id:q,role:"user",content:ee.message,images:ee.images,timestamp:new Date}]));else if(H==="agent_response")le(q)||(l(null),m(null),$(!1),k(Le.IDLE),j.current=null,c(Q=>[...Q,{id:q,role:"assistant",content:ee.response,timestamp:new Date,isStreaming:!1}]));else if(H==="assistant_acknowledgment")le(q)||(l(null),m(null),c(Q=>[...Q,{id:q,role:"assistant",content:ee.acknowledgment_message,timestamp:new Date}]));else if(H==="assistant_ideation"||H==="assistant_action_planning"||H==="action_execution_result"||H==="assistant_validation"||H==="assistant_context_gathering"||H==="assistant_task_breakdown"){let Q="";if(ee.reasoning_summary)Q=ee.reasoning_summary;else if((U=ee.task_execution)!=null&&U.approach)Q=ee.task_execution.approach;else if(ee.strategic_synthesis)Q=ee.strategic_synthesis;else if((pe=ee.task_breakdown)!=null&&pe.total_tasks)Q=`Breaking down into ${ee.task_breakdown.total_tasks} tasks...`;else if(ee.acknowledgment_message)Q=ee.acknowledgment_message;else return;c(Y=>[...Y,{id:q,role:"assistant",content:Q,timestamp:new Date}])}else if(H==="user_input_request"){const Q={question:ee.question,context:ee.context,input_type:ee.input_type,options:ee.options||ee.suggestions,default_value:ee.default_value,placeholder:ee.placeholder};k("waiting_for_input"),c(Y=>[...Y,{id:q,role:"system",content:Q.question,timestamp:new Date,metadata:{type:"user_input_request",userInputRequest:Q}}])}},[]),C=i.useCallback(async V=>{k("waiting_for_input");const q=`input-request-${Date.now()}`;c(H=>[...H,{id:q,role:"system",content:V.question,timestamp:new Date,metadata:{type:"user_input_request",userInputRequest:V}}])},[]),P=i.useCallback(V=>{const{event_label:q,event_data:H}=V;n!=null&&n.onPlatformEvent&&n.onPlatformEvent(q,H)},[n]),T=i.useCallback(async V=>{const{function_name:q,function_data:H}=V,{parameters:ee,execution_id:le}=H;if(!(n!=null&&n.onPlatformFunction)){Xe.send({message_type:{platform_function_result:[le,{error:"No platform function handler registered"}]},data:{}});return}try{const oe=await n.onPlatformFunction(q,ee,le),de={message_type:{platform_function_result:[le,oe]},data:{}};Xe.send(de)}catch(oe){Xe.send({message_type:{platform_function_result:[le,{error:oe instanceof Error?oe.message:"Function execution failed",stack:oe instanceof Error?oe.stack:void 0}]},data:{}})}},[n]);i.useEffect(()=>{if(!a)return;const q=`wss://${a==null?void 0:a.backend_host.replace(/https?:\/\//,"")}/realtime/agent?token=${encodeURIComponent(o)}`;E({status:wt.CONNECTING}),Xe.connect(q)},[a,o]),i.useEffect(()=>Xe.onConnectionStateChange(q=>{E({status:q.isConnected?wt.CONNECTED:q.error?wt.ERROR:wt.DISCONNECTED}),x(q.isConnected)}),[]),i.useEffect(()=>Xe.onMessage(M),[M]),i.useEffect(()=>{v&&t&&r&&s&&Xe.send({message_type:{session_connect:[t,r]},data:{}})},[v,t,r,s]);const B=i.useCallback(async()=>(v&&t&&r&&Xe.send({message_type:{session_connect:[t,r]},data:{}}),()=>{}),[v,t,r]),L=i.useCallback((V,q)=>{v&&(l(V),m(q||null),$(!0),k(Le.STARTING),Xe.send({message_type:{message_input:V},data:q?{images:q}:{}}))},[v]),F=i.useCallback(()=>{c([]),j.current=null},[]),O=i.useCallback(V=>{!v||S!==Le.WAITING_FOR_INPUT||(Xe.send({message_type:{user_input_response:V},data:{}}),k(Le.RUNNING))},[v,S]),A=i.useCallback(async V=>{var q;if(!(!o||!t))try{const H=new URLSearchParams({token:o,limit:"50"});V&&(H.append("before_id",V),z(!0));const le=await(await p(`/api/agent/contexts/${t}/messages?${H}`,{method:"GET"})).json();if(le.status===200&&le.data){const oe=le.data;if(Array.isArray(oe.data)){const de=oe.data.filter(K=>{var ue;let se=K.content;if(typeof K.content=="string")try{se=JSON.parse(K.content)}catch{se={message:K.content}}const xe=((ue=K.metadata)==null?void 0:ue.message_type)||(se==null?void 0:se.message_type);return xe==="user_message"||xe==="agent_response"||xe==="assistant_acknowledgment"||xe==="user_input_request"||xe==="system_decision"||xe==="action_execution_result"||xe==="assistant_task_breakdown"||xe==="assistant_validation"||xe==="assistant_action_planning"||xe==="context_results"}).map(K=>{var Q,Y,ne,me,fe,W,N;let se="",xe,ue,U=K.content;if(typeof K.content=="string")try{U=JSON.parse(K.content)}catch{U=K.content}const pe=((Q=K.metadata)==null?void 0:Q.message_type)||(U==null?void 0:U.message_type);if(pe==="user_message"?(se=(U==null?void 0:U.message)||"",xe=(U==null?void 0:U.images)||void 0):pe==="agent_response"?se=(U==null?void 0:U.response)||"":pe==="assistant_acknowledgment"?se=(U==null?void 0:U.acknowledgment_message)||"":pe==="user_input_request"&&(se=(U==null?void 0:U.question)||"",ue={type:"user_input_request",userInputRequest:{question:(U==null?void 0:U.question)||"",context:(U==null?void 0:U.context)||"",input_type:(U==null?void 0:U.input_type)||"text",options:(U==null?void 0:U.options)||(U==null?void 0:U.suggestions)||[],default_value:(U==null?void 0:U.default_value)||"",placeholder:(U==null?void 0:U.placeholder)||""}}),pe==="system_decision"||pe==="action_execution_result"||pe==="assistant_task_breakdown"||pe==="assistant_validation"||pe==="assistant_action_planning"||pe==="context_results"){let D="";if(pe==="system_decision"){const Z=U==null?void 0:U.step,ae=U==null?void 0:U.reasoning;if(Z==="gathercontext")ae&&ae.length>0?D=ae.length>60?`${ae.substring(0,60)}...`:ae:D="Gathering context...";else if(Z==="executeaction")D="Executing action";else if(Z==="deliverresponse")D="Preparing response";else if(Z==="taskplanning")D="Planning approach";else if(Z==="validateprogress")D="Validating progress";else if(Z==="acknowledge")D="Processing request";else if(Z==="finishplanning")D="Finalizing plan";else if(Z==="executetasks")D="Executing tasks";else if(Z==="requestuserinput")D="Waiting for input";else if(Z==="complete")D="Completed";else if(Z==="examinetool")D="Examining tool";else if(Z==="examineworkflow")D="Examining workflow";else{const te=(U==null?void 0:U.confidence)||.5;te>.8?D="Analyzing":te>.6?D="Thinking":D="Reasoning"}}else if(pe==="action_execution_result")((Y=U==null?void 0:U.task_execution)==null?void 0:Y.status)==="completed"?D="Task execution completed":(ne=U==null?void 0:U.task_execution)!=null&&ne.approach?D=U.task_execution.approach:D="Executing task";else if(pe==="assistant_task_breakdown")(me=U==null?void 0:U.task_breakdown)!=null&&me.total_tasks?D=`Identified ${U.task_breakdown.total_tasks} tasks`:D="Planning tasks";else if(pe==="assistant_validation")D="Validated results";else if(pe==="assistant_action_planning")(fe=U==null?void 0:U.task_execution)!=null&&fe.total_tasks?D=`Planned ${U.task_execution.total_tasks} tasks`:(N=(W=U==null?void 0:U.task_execution)==null?void 0:W.tasks)!=null&&N.length?D=`Planned ${U.task_execution.tasks.length} tasks`:D="Planning actions";else if(pe==="context_results"){const Z=U==null?void 0:U.query,ae=(U==null?void 0:U.result_count)||0;Z&&Z!=="General context gathering"?D=`${Z}: Found ${ae} results`:D=`Found ${ae} results`}se=D,ue={type:"log",messageType:pe}}return{id:K.id,role:pe==="user_message"?"user":pe==="user_input_request"?"system":"assistant",content:se,images:xe,timestamp:new Date(K.timestamp||K.created_at||Date.now()),metadata:ue}}).filter(K=>K.content||K.metadata||K.images).sort((K,se)=>{const xe=BigInt(K.id),ue=BigInt(se.id);return xe<ue?-1:xe>ue?1:0});de.length>0&&(_.current=de[0].id),V?(c(K=>[...de,...K]),b(de.length>=50)):(c(de),de.length>0&&((q=de[de.length-1].metadata)==null?void 0:q.type)==="user_input_request"&&k(Le.WAITING_FOR_INPUT)),z(!1)}}}catch(H){console.error("Failed to fetch messages:",H),z(!1)}},[o,t,p]);i.useEffect(()=>{t&&o&&A()},[t,o]);const J=i.useCallback(async()=>{if(!(f||!w||!_.current)){z(!0);try{await A(_.current)}finally{z(!1)}}},[f,w,A]),re=i.useCallback(()=>{!v||!y||(Xe.send({message_type:{cancel_execution:null},data:{}}),$(!1),k("idle"))},[v,y]);return{messages:g,pendingMessage:h,pendingImages:u,connectionState:I,isConnected:v,isExecuting:y,executionStatus:S,isWaitingForInput:S==="waiting_for_input",hasMoreMessages:w,isLoadingMore:f,sendMessage:L,submitUserInput:O,clearMessages:F,loadMoreMessages:J,cancelExecution:re,connect:B,disconnect:()=>Xe.disconnect()}}const $c=()=>{const{client:t}=Be(),[r,o]=i.useState(!1),[n,s]=i.useState(null),[a,p]=i.useState(null),g=i.useCallback(async h=>{o(!0),s(null),p(null);try{const l=new FormData;l.append("token",h);const u=await t("/organizations/invitations/accept",{method:"POST",body:l}),v=(await G(u)).data;return p(v),v.error_code&&s(v.message||"Failed to accept invitation"),v}catch(l){const u=l.message||"Failed to accept invitation";s(u);const m={error_code:"NETWORK_ERROR",message:u};return p(m),m}finally{o(!1)}},[t]),c=i.useCallback(()=>{s(null),p(null)},[]);return{acceptInvitation:g,invitationData:a,loading:r,error:n,reset:c}},zu=({children:t})=>{const{loading:r}=ve();return r?null:e.jsx(e.Fragment,{children:t})},$u=({children:t})=>{const{loading:r}=ve();return r?e.jsx(e.Fragment,{children:t}):null};var Ye=function(){return Ye=Object.assign||function(r){for(var o,n=1,s=arguments.length;n<s;n++){o=arguments[n];for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(r[a]=o[a])}return r},Ye.apply(this,arguments)};function tr(t,r,o){if(o||arguments.length===2)for(var n=0,s=r.length,a;n<s;n++)(a||!(n in r))&&(a||(a=Array.prototype.slice.call(r,0,n)),a[n]=r[n]);return t.concat(a||Array.prototype.slice.call(r))}function Eu(t){var r=Object.create(null);return function(o){return r[o]===void 0&&(r[o]=t(o)),r[o]}}var Iu=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,Pu=Eu(function(t){return Iu.test(t)||t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)<91}),Ie="-ms-",Nr="-moz-",$e="-webkit-",Ec="comm",Ko="rule",js="decl",Ru="@import",Ic="@keyframes",Tu="@layer",Pc=Math.abs,_s=String.fromCharCode,as=Object.assign;function Mu(t,r){return We(t,0)^45?(((r<<2^We(t,0))<<2^We(t,1))<<2^We(t,2))<<2^We(t,3):0}function Rc(t){return t.trim()}function yt(t,r){return(t=r.exec(t))?t[0]:t}function ye(t,r,o){return t.replace(r,o)}function Io(t,r,o){return t.indexOf(r,o)}function We(t,r){return t.charCodeAt(r)|0}function yr(t,r,o){return t.slice(r,o)}function ct(t){return t.length}function Tc(t){return t.length}function Lr(t,r){return r.push(t),t}function Ou(t,r){return t.map(r).join("")}function Xs(t,r){return t.filter(function(o){return!yt(o,r)})}var Qo=1,wr=1,Mc=0,Je=0,De=0,Sr="";function Xo(t,r,o,n,s,a,p,g){return{value:t,root:r,parent:o,type:n,props:s,children:a,line:Qo,column:wr,length:p,return:"",siblings:g}}function zt(t,r){return as(Xo("",null,null,"",null,null,0,t.siblings),t,{length:-t.length},r)}function lr(t){for(;t.root;)t=zt(t.root,{children:[t]});Lr(t,t.siblings)}function Au(){return De}function Lu(){return De=Je>0?We(Sr,--Je):0,wr--,De===10&&(wr=1,Qo--),De}function rt(){return De=Je<Mc?We(Sr,Je++):0,wr++,De===10&&(wr=1,Qo++),De}function Kt(){return We(Sr,Je)}function Po(){return Je}function Jo(t,r){return yr(Sr,t,r)}function is(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Du(t){return Qo=wr=1,Mc=ct(Sr=t),Je=0,[]}function Nu(t){return Sr="",t}function xn(t){return Rc(Jo(Je-1,cs(t===91?t+2:t===40?t+1:t)))}function Fu(t){for(;(De=Kt())&&De<33;)rt();return is(t)>2||is(De)>3?"":" "}function Bu(t,r){for(;--r&&rt()&&!(De<48||De>102||De>57&&De<65||De>70&&De<97););return Jo(t,Po()+(r<6&&Kt()==32&&rt()==32))}function cs(t){for(;rt();)switch(De){case t:return Je;case 34:case 39:t!==34&&t!==39&&cs(De);break;case 40:t===41&&cs(t);break;case 92:rt();break}return Je}function Uu(t,r){for(;rt()&&t+De!==57;)if(t+De===84&&Kt()===47)break;return"/*"+Jo(r,Je-1)+"*"+_s(t===47?t:rt())}function Wu(t){for(;!is(Kt());)rt();return Jo(t,Je)}function Vu(t){return Nu(Ro("",null,null,null,[""],t=Du(t),0,[0],t))}function Ro(t,r,o,n,s,a,p,g,c){for(var h=0,l=0,u=p,m=0,v=0,x=0,y=1,$=1,S=1,k=0,I="",E=s,w=a,b=n,f=I;$;)switch(x=k,k=rt()){case 40:if(x!=108&&We(f,u-1)==58){Io(f+=ye(xn(k),"&","&\f"),"&\f",Pc(h?g[h-1]:0))!=-1&&(S=-1);break}case 34:case 39:case 91:f+=xn(k);break;case 9:case 10:case 13:case 32:f+=Fu(x);break;case 92:f+=Bu(Po()-1,7);continue;case 47:switch(Kt()){case 42:case 47:Lr(Gu(Uu(rt(),Po()),r,o,c),c);break;default:f+="/"}break;case 123*y:g[h++]=ct(f)*S;case 125*y:case 59:case 0:switch(k){case 0:case 125:$=0;case 59+l:S==-1&&(f=ye(f,/\f/g,"")),v>0&&ct(f)-u&&Lr(v>32?ea(f+";",n,o,u-1,c):ea(ye(f," ","")+";",n,o,u-2,c),c);break;case 59:f+=";";default:if(Lr(b=Js(f,r,o,h,l,s,g,I,E=[],w=[],u,a),a),k===123)if(l===0)Ro(f,r,b,b,E,a,u,g,w);else switch(m===99&&We(f,3)===110?100:m){case 100:case 108:case 109:case 115:Ro(t,b,b,n&&Lr(Js(t,b,b,0,0,s,g,I,s,E=[],u,w),w),s,w,u,g,n?E:w);break;default:Ro(f,b,b,b,[""],w,0,g,w)}}h=l=v=0,y=S=1,I=f="",u=p;break;case 58:u=1+ct(f),v=x;default:if(y<1){if(k==123)--y;else if(k==125&&y++==0&&Lu()==125)continue}switch(f+=_s(k),k*y){case 38:S=l>0?1:(f+="\f",-1);break;case 44:g[h++]=(ct(f)-1)*S,S=1;break;case 64:Kt()===45&&(f+=xn(rt())),m=Kt(),l=u=ct(I=f+=Wu(Po())),k++;break;case 45:x===45&&ct(f)==2&&(y=0)}}return a}function Js(t,r,o,n,s,a,p,g,c,h,l,u){for(var m=s-1,v=s===0?a:[""],x=Tc(v),y=0,$=0,S=0;y<n;++y)for(var k=0,I=yr(t,m+1,m=Pc($=p[y])),E=t;k<x;++k)(E=Rc($>0?v[k]+" "+I:ye(I,/&\f/g,v[k])))&&(c[S++]=E);return Xo(t,r,o,s===0?Ko:g,c,h,l,u)}function Gu(t,r,o,n){return Xo(t,r,o,Ec,_s(Au()),yr(t,2,-2),0,n)}function ea(t,r,o,n,s){return Xo(t,r,o,js,yr(t,0,n),yr(t,n+1,-1),n,s)}function Oc(t,r,o){switch(Mu(t,r)){case 5103:return $e+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return $e+t+t;case 4789:return Nr+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return $e+t+Nr+t+Ie+t+t;case 5936:switch(We(t,r+11)){case 114:return $e+t+Ie+ye(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return $e+t+Ie+ye(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return $e+t+Ie+ye(t,/[svh]\w+-[tblr]{2}/,"lr")+t}case 6828:case 4268:case 2903:return $e+t+Ie+t+t;case 6165:return $e+t+Ie+"flex-"+t+t;case 5187:return $e+t+ye(t,/(\w+).+(:[^]+)/,$e+"box-$1$2"+Ie+"flex-$1$2")+t;case 5443:return $e+t+Ie+"flex-item-"+ye(t,/flex-|-self/g,"")+(yt(t,/flex-|baseline/)?"":Ie+"grid-row-"+ye(t,/flex-|-self/g,""))+t;case 4675:return $e+t+Ie+"flex-line-pack"+ye(t,/align-content|flex-|-self/g,"")+t;case 5548:return $e+t+Ie+ye(t,"shrink","negative")+t;case 5292:return $e+t+Ie+ye(t,"basis","preferred-size")+t;case 6060:return $e+"box-"+ye(t,"-grow","")+$e+t+Ie+ye(t,"grow","positive")+t;case 4554:return $e+ye(t,/([^-])(transform)/g,"$1"+$e+"$2")+t;case 6187:return ye(ye(ye(t,/(zoom-|grab)/,$e+"$1"),/(image-set)/,$e+"$1"),t,"")+t;case 5495:case 3959:return ye(t,/(image-set\([^]*)/,$e+"$1$`$1");case 4968:return ye(ye(t,/(.+:)(flex-)?(.*)/,$e+"box-pack:$3"+Ie+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+$e+t+t;case 4200:if(!yt(t,/flex-|baseline/))return Ie+"grid-column-align"+yr(t,r)+t;break;case 2592:case 3360:return Ie+ye(t,"template-","")+t;case 4384:case 3616:return o&&o.some(function(n,s){return r=s,yt(n.props,/grid-\w+-end/)})?~Io(t+(o=o[r].value),"span",0)?t:Ie+ye(t,"-start","")+t+Ie+"grid-row-span:"+(~Io(o,"span",0)?yt(o,/\d+/):+yt(o,/\d+/)-+yt(t,/\d+/))+";":Ie+ye(t,"-start","")+t;case 4896:case 4128:return o&&o.some(function(n){return yt(n.props,/grid-\w+-start/)})?t:Ie+ye(ye(t,"-end","-span"),"span ","")+t;case 4095:case 3583:case 4068:case 2532:return ye(t,/(.+)-inline(.+)/,$e+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(ct(t)-1-r>6)switch(We(t,r+1)){case 109:if(We(t,r+4)!==45)break;case 102:return ye(t,/(.+:)(.+)-([^]+)/,"$1"+$e+"$2-$3$1"+Nr+(We(t,r+3)==108?"$3":"$2-$3"))+t;case 115:return~Io(t,"stretch",0)?Oc(ye(t,"stretch","fill-available"),r,o)+t:t}break;case 5152:case 5920:return ye(t,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(n,s,a,p,g,c,h){return Ie+s+":"+a+h+(p?Ie+s+"-span:"+(g?c:+c-+a)+h:"")+t});case 4949:if(We(t,r+6)===121)return ye(t,":",":"+$e)+t;break;case 6444:switch(We(t,We(t,14)===45?18:11)){case 120:return ye(t,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+$e+(We(t,14)===45?"inline-":"")+"box$3$1"+$e+"$2$3$1"+Ie+"$2box$3")+t;case 100:return ye(t,":",":"+Ie)+t}break;case 5719:case 2647:case 2135:case 3927:case 2391:return ye(t,"scroll-","scroll-snap-")+t}return t}function Do(t,r){for(var o="",n=0;n<t.length;n++)o+=r(t[n],n,t,r)||"";return o}function Hu(t,r,o,n){switch(t.type){case Tu:if(t.children.length)break;case Ru:case js:return t.return=t.return||t.value;case Ec:return"";case Ic:return t.return=t.value+"{"+Do(t.children,n)+"}";case Ko:if(!ct(t.value=t.props.join(",")))return""}return ct(o=Do(t.children,n))?t.return=t.value+"{"+o+"}":""}function qu(t){var r=Tc(t);return function(o,n,s,a){for(var p="",g=0;g<r;g++)p+=t[g](o,n,s,a)||"";return p}}function Yu(t){return function(r){r.root||(r=r.return)&&t(r)}}function Zu(t,r,o,n){if(t.length>-1&&!t.return)switch(t.type){case js:t.return=Oc(t.value,t.length,o);return;case Ic:return Do([zt(t,{value:ye(t.value,"@","@"+$e)})],n);case Ko:if(t.length)return Ou(o=t.props,function(s){switch(yt(s,n=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":lr(zt(t,{props:[ye(s,/:(read-\w+)/,":"+Nr+"$1")]})),lr(zt(t,{props:[s]})),as(t,{props:Xs(o,n)});break;case"::placeholder":lr(zt(t,{props:[ye(s,/:(plac\w+)/,":"+$e+"input-$1")]})),lr(zt(t,{props:[ye(s,/:(plac\w+)/,":"+Nr+"$1")]})),lr(zt(t,{props:[ye(s,/:(plac\w+)/,Ie+"input-$1")]})),lr(zt(t,{props:[s]})),as(t,{props:Xs(o,n)});break}return""})}}var Ku={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},rr=typeof process<"u"&&process.env!==void 0&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",Ac="active",Lc="data-styled-version",en="6.1.19",ks=`/*!sc*/
|
|
19
19
|
`,No=typeof window<"u"&&typeof document<"u",Qu=!!(typeof SC_DISABLE_SPEEDY=="boolean"?SC_DISABLE_SPEEDY:typeof process<"u"&&process.env!==void 0&&process.env.REACT_APP_SC_DISABLE_SPEEDY!==void 0&&process.env.REACT_APP_SC_DISABLE_SPEEDY!==""?process.env.REACT_APP_SC_DISABLE_SPEEDY!=="false"&&process.env.REACT_APP_SC_DISABLE_SPEEDY:typeof process<"u"&&process.env!==void 0&&process.env.SC_DISABLE_SPEEDY!==void 0&&process.env.SC_DISABLE_SPEEDY!==""?process.env.SC_DISABLE_SPEEDY!=="false"&&process.env.SC_DISABLE_SPEEDY:process.env.NODE_ENV!=="production"),ta=/invalid hook call/i,Jr=new Set,Xu=function(t,r){if(process.env.NODE_ENV!=="production"){var o=r?' with the id of "'.concat(r,'"'):"",n="The component ".concat(t).concat(o,` has been created dynamically.
|
|
20
20
|
`)+`You may see this warning because you've called styled inside another component.
|
|
21
21
|
To resolve this only create new StyledComponents outside of any render method and function component.
|