@wacht/jsx 1.0.0-beta.37 → 1.0.0-beta.39

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 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 Xs;function Du(){return Xs||(Xs=1,process.env.NODE_ENV!=="production"&&(function(){function e(v,w){return v===w&&(v!==0||1/v===1/w)||v!==v&&w!==w}function r(v,w){p||s.startTransition===void 0||(p=!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 x=w();if(!m){var b=w();i(x,b)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),m=!0)}b=h({inst:{value:x,getSnapshot:w}});var E=b[0].inst,j=b[1];return u(function(){E.value=x,E.getSnapshot=w,a(E)&&j({inst:E})},[v,x,w]),d(function(){return a(E)&&j({inst:E}),v(function(){a(E)&&j({inst:E})})},[v]),f(x),x}function a(v){var w=v.getSnapshot;v=v.value;try{var x=w();return!i(v,x)}catch{return!0}}function n(v,w){return w()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var s=c,i=typeof Object.is=="function"?Object.is:e,h=s.useState,d=s.useEffect,u=s.useLayoutEffect,f=s.useDebugValue,p=!1,m=!1,g=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?n:r;Nn.useSyncExternalStore=s.useSyncExternalStore!==void 0?s.useSyncExternalStore:g,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()),Nn}var ei;function Nu(){return ei||(ei=1,process.env.NODE_ENV==="production"?Ta.exports=Vu():Ta.exports=Du()),Ta.exports}var Ho=Nu();const s0=0,i0=1,c0=2,ti=3;var ri=Object.prototype.hasOwnProperty;function Vo(e,r){var a,n;if(e===r)return!0;if(e&&r&&(a=e.constructor)===r.constructor){if(a===Date)return e.getTime()===r.getTime();if(a===RegExp)return e.toString()===r.toString();if(a===Array){if((n=e.length)===r.length)for(;n--&&Vo(e[n],r[n]););return n===-1}if(!a||typeof e=="object"){n=0;for(a in e)if(ri.call(e,a)&&++n&&!ri.call(r,a)||!(a in r)||!Vo(e[a],r[a]))return!1;return Object.keys(r).length===n}}return e!==e&&r!==r}const Zt=new WeakMap,qt=()=>{},ht=qt(),Do=Object,Ce=e=>e===ht,Lt=e=>typeof e=="function",or=(e,r)=>({...e,...r}),l0=e=>Lt(e.then),Un={},Fa={},xs="undefined",Aa=typeof window!=xs,No=typeof document!=xs,Uu=Aa&&"Deno"in window,Bu=()=>Aa&&typeof window.requestAnimationFrame!=xs,rr=(e,r)=>{const a=Zt.get(e);return[()=>!Ce(r)&&e.get(r)||Un,n=>{if(!Ce(r)){const s=e.get(r);r in Fa||(Fa[r]=s),a[5](r,or(s,n),s||Un)}},a[6],()=>!Ce(r)&&r in Fa?Fa[r]:!Ce(r)&&e.get(r)||Un]};let Uo=!0;const Wu=()=>Uo,[Bo,Wo]=Aa&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[qt,qt],Gu=()=>{const e=No&&document.visibilityState;return Ce(e)||e!=="hidden"},qu=e=>(No&&document.addEventListener("visibilitychange",e),Bo("focus",e),()=>{No&&document.removeEventListener("visibilitychange",e),Wo("focus",e)}),Ku=e=>{const r=()=>{Uo=!0,e()},a=()=>{Uo=!1};return Bo("online",r),Bo("offline",a),()=>{Wo("online",r),Wo("offline",a)}},Yu={isOnline:Wu,isVisible:Gu},Qu={initFocus:qu,initReconnect:Ku},ai=!c.useId,Kr=!Aa||Uu,Ju=e=>Bu()?window.requestAnimationFrame(e):setTimeout(e,1),pn=Kr?c.useEffect:c.useLayoutEffect,Bn=typeof navigator<"u"&&navigator.connection,ni=!Kr&&Bn&&(["slow-2g","2g"].includes(Bn.effectiveType)||Bn.saveData),Za=new WeakMap,Xu=e=>Do.prototype.toString.call(e),Wn=(e,r)=>e===`[object ${r}]`;let e2=0;const Go=e=>{const r=typeof e,a=Xu(e),n=Wn(a,"Date"),s=Wn(a,"RegExp"),i=Wn(a,"Object");let h,d;if(Do(e)===e&&!n&&!s){if(h=Za.get(e),h)return h;if(h=++e2+"~",Za.set(e,h),Array.isArray(e)){for(h="@",d=0;d<e.length;d++)h+=Go(e[d])+",";Za.set(e,h)}if(i){h="#";const u=Do.keys(e).sort();for(;!Ce(d=u.pop());)Ce(e[d])||(h+=d+":"+Go(e[d])+",");Za.set(e,h)}}else h=n?e.toJSON():r=="symbol"?e.toString():r=="string"?JSON.stringify(e):""+e;return h},ka=e=>{if(Lt(e))try{e=e()}catch{e=""}const r=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?Go(e):"",[e,r]};let t2=0;const qo=()=>++t2;async function d0(...e){const[r,a,n,s]=e,i=or({populateCache:!0,throwOnError:!0},typeof s=="boolean"?{revalidate:s}:s||{});let h=i.populateCache;const d=i.rollbackOnError;let u=i.optimisticData;const f=g=>typeof d=="function"?d(g):d!==!1,p=i.throwOnError;if(Lt(a)){const g=a,v=[],w=r.keys();for(const x of w)!/^\$(inf|sub)\$/.test(x)&&g(r.get(x)._k)&&v.push(x);return Promise.all(v.map(m))}return m(a);async function m(g){const[v]=ka(g);if(!v)return;const[w,x]=rr(r,v),[b,E,j,S]=Zt.get(r),C=()=>{const $=b[v];return(Lt(i.revalidate)?i.revalidate(w().data,g):i.revalidate!==!1)&&(delete j[v],delete S[v],$&&$[0])?$[0](c0).then(()=>w().data):w().data};if(e.length<3)return C();let _=n,k,y=!1;const M=qo();E[v]=[M,0];const A=!Ce(u),Z=w(),P=Z.data,L=Z._c,F=Ce(L)?P:L;if(A&&(u=Lt(u)?u(F,P):u,x({data:u,_c:F})),Lt(_))try{_=_(F)}catch($){k=$,y=!0}if(_&&l0(_))if(_=await _.catch($=>{k=$,y=!0}),M!==E[v][0]){if(y)throw k;return _}else y&&A&&f(k)&&(h=!0,x({data:F,_c:ht}));if(h&&!y)if(Lt(h)){const $=h(_,F);x({data:$,error:ht,_c:ht})}else x({data:_,error:ht,_c:ht});if(E[v][1]=qo(),Promise.resolve(C()).then(()=>{x({_c:ht})}),y){if(p)throw k;return}return _}}const oi=(e,r)=>{for(const a in e)e[a][0]&&e[a][0](r)},r2=(e,r)=>{if(!Zt.has(e)){const a=or(Qu,r),n=Object.create(null),s=d0.bind(ht,e);let i=qt;const h=Object.create(null),d=(p,m)=>{const g=h[p]||[];return h[p]=g,g.push(m),()=>g.splice(g.indexOf(m),1)},u=(p,m,g)=>{e.set(p,m);const v=h[p];if(v)for(const w of v)w(m,g)},f=()=>{if(!Zt.has(e)&&(Zt.set(e,[n,Object.create(null),Object.create(null),Object.create(null),s,u,d]),!Kr)){const p=a.initFocus(setTimeout.bind(ht,oi.bind(ht,n,s0))),m=a.initReconnect(setTimeout.bind(ht,oi.bind(ht,n,i0)));i=()=>{p&&p(),m&&m(),Zt.delete(e)}}};return f(),[e,s,f,i]}return[e,Zt.get(e)[4]]},a2=(e,r,a,n,s)=>{const i=a.errorRetryCount,h=s.retryCount,d=~~((Math.random()+.5)*(1<<(h<8?h:8)))*a.errorRetryInterval;!Ce(i)&&h>i||setTimeout(n,d,s)},n2=Vo,[bs,Gr]=r2(new Map),o2=or({onLoadingSlow:qt,onSuccess:qt,onError:qt,onErrorRetry:a2,onDiscarded:qt,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:ni?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:ni?5e3:3e3,compare:n2,isPaused:()=>!1,cache:bs,mutate:Gr,fallback:{}},Yu),s2=(e,r)=>{const a=or(e,r);if(r){const{use:n,fallback:s}=e,{use:i,fallback:h}=r;n&&i&&(a.use=n.concat(i)),s&&h&&(a.fallback=or(s,h))}return a},i2=c.createContext({}),u0="$inf$",p0=Aa&&window.__SWR_DEVTOOLS_USE__,c2=p0?window.__SWR_DEVTOOLS_USE__:[],l2=()=>{p0&&(window.__SWR_DEVTOOLS_REACT__=c)},h0=e=>Lt(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],f0=()=>{const e=c.useContext(i2);return c.useMemo(()=>or(o2,e),[e])},d2=e=>(r,a,n)=>e(r,a&&((...i)=>{const[h]=ka(r),[,,,d]=Zt.get(bs);if(h.startsWith(u0))return a(...i);const u=d[h];return Ce(u)?a(...i):(delete d[h],u)}),n),u2=c2.concat(d2),p2=e=>function(...a){const n=f0(),[s,i,h]=h0(a),d=s2(n,h);let u=e;const{use:f}=d,p=(f||[]).concat(u2);for(let m=p.length;m--;)u=p[m](u);return u(s,i||d.fetcher||null,d)},h2=(e,r,a)=>{const n=r[e]||(r[e]=[]);return n.push(a),()=>{const s=n.indexOf(a);s>=0&&(n[s]=n[n.length-1],n.pop())}},f2=(e,r)=>(...a)=>{const[n,s,i]=h0(a),h=(i.use||[]).concat(r);return e(n,s,{...i,use:h})};l2();const Gn=c.use||(e=>{switch(e.status){case"pending":throw e;case"fulfilled":return e.value;case"rejected":throw e.reason;default:throw e.status="pending",e.then(r=>{e.status="fulfilled",e.value=r},r=>{e.status="rejected",e.reason=r}),e}}),qn={dedupe:!0},si=Promise.resolve(ht),m2=()=>qt,g2=(e,r,a)=>{const{cache:n,compare:s,suspense:i,fallbackData:h,revalidateOnMount:d,revalidateIfStale:u,refreshInterval:f,refreshWhenHidden:p,refreshWhenOffline:m,keepPreviousData:g,strictServerPrefetchWarning:v}=a,[w,x,b,E]=Zt.get(n),[j,S]=ka(e),C=c.useRef(!1),_=c.useRef(!1),k=c.useRef(j),y=c.useRef(r),M=c.useRef(a),A=()=>M.current,Z=()=>A().isVisible()&&A().isOnline(),[P,L,F,$]=rr(n,j),z=c.useRef({}).current,O=Ce(h)?Ce(a.fallback)?ht:a.fallback[j]:h,T=(Q,le)=>{for(const se in z){const G=se;if(G==="data"){if(!s(Q[G],le[G])&&(!Ce(Q[G])||!s(ce,le[G])))return!1}else if(le[G]!==Q[G])return!1}return!0},H=!C.current,I=c.useMemo(()=>{const Q=P(),le=$(),se=Y=>{const de=or(Y);return delete de._k,(()=>{if(!j||!r||A().isPaused())return!1;if(H&&!Ce(d))return d;const Ke=Ce(O)?de.data:O;return Ce(Ke)||u})()?{isValidating:!0,isLoading:!0,...de}:de},G=se(Q),he=Q===le?G:se(le);let pe=G;return[()=>{const Y=se(P());return T(Y,pe)?(pe.data=Y.data,pe.isLoading=Y.isLoading,pe.isValidating=Y.isValidating,pe.error=Y.error,pe):(pe=Y,Y)},()=>he]},[n,j]),R=Ho.useSyncExternalStore(c.useCallback(Q=>F(j,(le,se)=>{T(se,le)||Q()}),[n,j]),I[0],I[1]),W=w[j]&&w[j].length>0,D=R.data,B=Ce(D)?O&&l0(O)?Gn(O):O:D,K=R.error,X=c.useRef(B),ce=g?Ce(D)?Ce(X.current)?B:X.current:D:B,fe=j&&Ce(B),te=c.useRef(null);!Kr&&Ho.useSyncExternalStore(m2,()=>(te.current=!1,te),()=>(te.current=!0,te));const xe=te.current;v&&xe&&!i&&fe&&console.warn(`Missing pre-initiated data for serialized key "${j}" during server-side rendering. Data fetching should be initiated on the server and provided to SWR via fallback data. You can set "strictServerPrefetchWarning: false" to disable this warning.`);const re=!j||!r||A().isPaused()||W&&!Ce(K)?!1:H&&!Ce(d)?d:i?Ce(B)?!1:u:Ce(B)||u,U=H&&re,Je=Ce(R.isValidating)?U:R.isValidating,Pe=Ce(R.isLoading)?U:R.isLoading,De=c.useCallback(async Q=>{const le=y.current;if(!j||!le||_.current||A().isPaused())return!1;let se,G,he=!0;const pe=Q||{},Y=!b[j]||!pe.dedupe,de=()=>ai?!_.current&&j===k.current&&C.current:j===k.current,We={isValidating:!1,isLoading:!1},Ke=()=>{L(We)},Ge=()=>{const J=b[j];J&&J[1]===G&&delete b[j]},it={isValidating:!0};Ce(P().data)&&(it.isLoading=!0);try{if(Y&&(L(it),a.loadingTimeout&&Ce(P().data)&&setTimeout(()=>{he&&de()&&A().onLoadingSlow(j,a)},a.loadingTimeout),b[j]=[le(S),qo()]),[se,G]=b[j],se=await se,Y&&setTimeout(Ge,a.dedupingInterval),!b[j]||b[j][1]!==G)return Y&&de()&&A().onDiscarded(j),!1;We.error=ht;const J=x[j];if(!Ce(J)&&(G<=J[0]||G<=J[1]||J[1]===0))return Ke(),Y&&de()&&A().onDiscarded(j),!1;const ae=P().data;We.data=s(ae,se)?ae:se,Y&&de()&&A().onSuccess(se,j,a)}catch(J){Ge();const ae=A(),{shouldRetryOnError:me}=ae;ae.isPaused()||(We.error=J,Y&&de()&&(ae.onError(J,j,ae),(me===!0||Lt(me)&&me(J))&&(!A().revalidateOnFocus||!A().revalidateOnReconnect||Z())&&ae.onErrorRetry(J,j,ae,He=>{const ze=w[j];ze&&ze[0]&&ze[0](ti,He)},{retryCount:(pe.retryCount||0)+1,dedupe:!0})))}return he=!1,Ke(),!0},[j,n]),Be=c.useCallback((...Q)=>d0(n,k.current,...Q),[]);if(pn(()=>{y.current=r,M.current=a,Ce(D)||(X.current=D)}),pn(()=>{if(!j)return;const Q=De.bind(ht,qn);let le=0;A().revalidateOnFocus&&(le=Date.now()+A().focusThrottleInterval);const G=h2(j,w,(he,pe={})=>{if(he==s0){const Y=Date.now();A().revalidateOnFocus&&Y>le&&Z()&&(le=Y+A().focusThrottleInterval,Q())}else if(he==i0)A().revalidateOnReconnect&&Z()&&Q();else{if(he==c0)return De();if(he==ti)return De(pe)}});return _.current=!1,k.current=j,C.current=!0,L({_k:S}),re&&(b[j]||(Ce(B)||Kr?Q():Ju(Q))),()=>{_.current=!0,G()}},[j]),pn(()=>{let Q;function le(){const G=Lt(f)?f(P().data):f;G&&Q!==-1&&(Q=setTimeout(se,G))}function se(){!P().error&&(p||A().isVisible())&&(m||A().isOnline())?De(qn).then(le):le()}return le(),()=>{Q&&(clearTimeout(Q),Q=-1)}},[f,p,m,j]),c.useDebugValue(ce),i){if(!ai&&Kr&&fe)throw new Error("Fallback data is required when using Suspense in SSR.");fe&&(y.current=r,M.current=a,_.current=!1);const Q=E[j],le=!Ce(Q)&&fe?Be(Q):si;if(Gn(le),!Ce(K)&&fe)throw K;const se=fe?De(qn):si;!Ce(ce)&&fe&&(se.status="fulfilled",se.value=!0),Gn(se)}return{mutate:Be,get data(){return z.data=!0,ce},get error(){return z.error=!0,K},get isValidating(){return z.isValidating=!0,Je},get isLoading(){return z.isLoading=!0,Pe}}},Ae=p2(g2),jt=()=>{const{adapter:e,deployment:r}=Se(),a=e.useNavigate(),n=(u,f)=>{a?a(u,f):window.location.href=u},s=u=>{if(u)return u;const p=new URLSearchParams(window.location.search).get("redirect_uri");return p||window.location.href};return{navigate:n,navigateToSignIn:u=>{if(!r)return;const f=s(u),p=new URLSearchParams;p.set("redirect_uri",f),(r==null?void 0:r.mode)==="staging"&&p.set("__dev_session__",ft(r.backend_host)??""),n(`${r.ui_settings.sign_in_page_url}?${p.toString()}`,{replace:!0})},navigateToAccountSelection:u=>{if(!r)return;const f=s(u),p=new URLSearchParams;p.set("redirect_uri",f),(r==null?void 0:r.mode)==="staging"&&p.set("__dev_session__",ft(r.backend_host)??""),n(`https://${r.frontend_host}?${p.toString()}`,{replace:!0})},navigateToSignUp:u=>{if(!r)return;const f=s(u),p=new URLSearchParams;p.set("redirect_uri",f),(r==null?void 0:r.mode)==="staging"&&p.set("__dev_session__",ft(r.backend_host)??""),n(`${r.ui_settings.sign_up_page_url}?${p.toString()}`,{replace:!0})}}};async function v2(e){const r=await e("/session",{method:"GET"});return(await V(r)).data}async function x2(e,r){const a=await e(`/session/switch-sign-in?sign_in_id=${r}`,{method:"POST"});return V(a)}async function b2(e,r){const a=r?`/session/sign-out?sign_in_id=${r}`:"/session/sign-out",n=await e(a,{method:"POST"});return V(n)}async function w2(e,r){const a=await e(`/session/switch-organization${r?`?organization_id=${r}`:""}`,{method:"POST"});return V(a)}async function y2(e,r){const a=await e(`/session/switch-workspace?workspace_id=${r}`,{method:"POST"});return V(a)}async function j2(e,r){const a=await e(`/session/ticket/exchange?ticket=${encodeURIComponent(r)}`,{method:"GET"});return V(a)}const Ko=new Map,ga=new Map;function Rt(){Ko.clear(),ga.clear()}async function _2(e,r){const a=await e(`/session/token${r?`?template=${r}`:""}`);return V(a)}function st(){const{client:e,loading:r}=je(),{deployment:a}=Se(),{navigate:n}=jt(),{cache:s}=f0(),{data:i,error:h,mutate:d,isLoading:u}=Ae(r?null:"/session",()=>v2(e),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),f=c.useCallback(async()=>{await d(void 0,{revalidate:!0})},[d]),p=c.useCallback(async(m="default")=>{if(!i)throw new Error("no session");const g=Ko.get(m);if(g&&g.expires>Date.now())return(g==null?void 0:g.token)||"";ga.get(m)||ga.set(m,_2(e,m));const v=await ga.get(m);return ga.delete(m),Ko.set(m,v.data),v.data.token},[e,i==null?void 0:i.active_signin]);return r||!i||u?{loading:!0,error:h,session:null,switchSignIn:null,switchOrganization:null,switchWorkspace:null,exchangeTicket:null,signOut:null,getToken:null,refetch:f}:{loading:u,error:h,session:i,switchSignIn:async m=>{await x2(e,m),Rt(),await Gr("/me/organization-memberships",void 0,{revalidate:!1}),await Gr("/me/workspace-memberships",void 0,{revalidate:!1}),await d(void 0,{revalidate:!0}),await Gr("/me/organization-memberships"),await Gr("/me/workspace-memberships")},signOut:async m=>{await b2(e,m);const g=["/session","/user","/me/signins","/me/organization-memberships","/me/workspace-memberships","wacht-notifications:scope-unread"],v=["wacht-notifications:","wacht-agent-sessions:","wacht-agent-contexts:","wacht-org-domains:","wacht-api-workspaces:","wacht-api-organizations:"];if(s instanceof Map){const w=Array.from(s.keys());for(const x of w){let b=!1;(g.includes(x)||typeof x=="string"&&v.some(E=>x.startsWith(E)))&&(b=!0),b&&s.delete(x)}}Rt(),await d(void 0,{revalidate:!0}),a!=null&&a.ui_settings&&(m&&a.ui_settings.after_sign_out_one_page_url?n(a.ui_settings.after_sign_out_one_page_url):!m&&a.ui_settings.after_sign_out_all_page_url&&n(a.ui_settings.after_sign_out_all_page_url))},switchOrganization:async m=>{await w2(e,m),Rt(),await d(void 0,{revalidate:!0})},switchWorkspace:async m=>{await y2(e,m),Rt(),await d(void 0,{revalidate:!0})},exchangeTicket:async m=>{await j2(e,m),Rt(),await d(void 0,{revalidate:!0})},getToken:p,refetch:f}}const Ot=()=>{const{organizationMemberships:e,refetch:r,loading:a}=Qt(),{client:n}=je(),{refetch:s}=st(),i=c.useCallback(async H=>(await V(await n(`/organizations/${H.id}/roles`,{method:"GET"}))).data,[n]),h=c.useCallback(async(H,I)=>{const R=new URLSearchParams;return I&&(R.set("page",I.page.toString()),R.set("limit",I.limit.toString()),I.search&&R.set("search",I.search)),(await V(await n(`/organizations/${H.id}/members?${R.toString()}`,{method:"GET"}))).data},[n]),d=c.useCallback(async H=>(await V(await n(`/organizations/${H.id}/invitations`,{method:"GET"}))).data,[n]),u=c.useCallback(async H=>(await V(await n(`/organizations/${H.id}/domains`,{method:"GET"}))).data,[n]),f=c.useCallback(async(H,I)=>{await n(`/organizations/${H.id}/members/${I.id}/remove`,{method:"POST"})},[n]),p=c.useCallback(async H=>{const I=new FormData;I.append("name",H.name),H.image&&I.append("image",H.image),H.description&&I.append("description",H.description);const R=await V(await n("/organizations",{method:"POST",body:I}));return Rt(),await r(),await s(),R},[s,r,n]),m=c.useCallback(async(H,I)=>{const R=Object.entries(I).reduce((D,[B,K])=>(K!=null&&(Array.isArray(K)?K.forEach(X=>D.append(B,X)):D.append(B,K)),D),new FormData),W=await V(await n(`/organizations/${H.id}/update`,{method:"POST",body:R}));return await r(),W},[r,n]),g=c.useCallback(async(H,I)=>{await n(`/organizations/${H.id}/roles/${I.id}/remove`,{method:"POST"})},[n]),v=c.useCallback(async(H,I)=>{const R=new FormData;return R.append("domain",I.fqdn),await V(await n(`/organizations/${H.id}/domains`,{method:"POST",body:R}))},[n]),w=c.useCallback(async(H,I)=>await V(await n(`/organizations/${H.id}/domains/${I.id}/verify`,{method:"POST"})),[n]),x=c.useCallback(async(H,I)=>await V(await n(`/organizations/${H.id}/domains/${I.id}/delete`,{method:"POST"})),[n]),b=c.useCallback(async H=>(await V(await n(`/organizations/${H.id}/enterprise-connections`,{method:"GET"}))).data,[n]),E=c.useCallback(async(H,I)=>{const R=new FormData;return R.append("protocol",I.protocol),I.domain_id&&R.append("domain_id",I.domain_id),I.idp_entity_id&&R.append("idp_entity_id",I.idp_entity_id),I.idp_sso_url&&R.append("idp_sso_url",I.idp_sso_url),I.idp_certificate&&R.append("idp_certificate",I.idp_certificate),I.oidc_client_id&&R.append("oidc_client_id",I.oidc_client_id),I.oidc_client_secret&&R.append("oidc_client_secret",I.oidc_client_secret),I.oidc_issuer_url&&R.append("oidc_issuer_url",I.oidc_issuer_url),I.oidc_scopes&&R.append("oidc_scopes",I.oidc_scopes),I.jit_enabled!==void 0&&R.append("jit_enabled",String(I.jit_enabled)),I.attribute_mapping&&R.append("attribute_mapping",JSON.stringify(I.attribute_mapping)),(await V(await n(`/organizations/${H.id}/enterprise-connections`,{method:"POST",body:R}))).data},[n]),j=c.useCallback(async(H,I,R)=>{const W=new FormData;return R.domain_id&&W.append("domain_id",R.domain_id),R.idp_entity_id&&W.append("idp_entity_id",R.idp_entity_id),R.idp_sso_url&&W.append("idp_sso_url",R.idp_sso_url),R.idp_certificate&&W.append("idp_certificate",R.idp_certificate),R.oidc_client_id&&W.append("oidc_client_id",R.oidc_client_id),R.oidc_client_secret&&W.append("oidc_client_secret",R.oidc_client_secret),R.oidc_issuer_url&&W.append("oidc_issuer_url",R.oidc_issuer_url),R.oidc_scopes&&W.append("oidc_scopes",R.oidc_scopes),R.attribute_mapping&&W.append("attribute_mapping",JSON.stringify(R.attribute_mapping)),(await V(await n(`/organizations/${H.id}/enterprise-connections/${I}/update`,{method:"POST",body:W}))).data},[n]),S=c.useCallback(async(H,I)=>{await n(`/organizations/${H.id}/enterprise-connections/${I}/delete`,{method:"POST"})},[n]),C=c.useCallback(async(H,I)=>{const R=new FormData;return R.append("protocol",I.protocol),I.idp_entity_id&&R.append("idp_entity_id",I.idp_entity_id),I.idp_sso_url&&R.append("idp_sso_url",I.idp_sso_url),I.idp_certificate&&R.append("idp_certificate",I.idp_certificate),I.oidc_issuer_url&&R.append("oidc_issuer_url",I.oidc_issuer_url),I.oidc_client_id&&R.append("oidc_client_id",I.oidc_client_id),I.oidc_client_secret&&R.append("oidc_client_secret",I.oidc_client_secret),(await V(await n(`/organizations/${H.id}/enterprise-connections/test`,{method:"POST",body:R}))).data},[n]),_=c.useCallback(async(H,I)=>(await V(await n(`/organizations/${H.id}/enterprise-connections/${I}/test`,{method:"POST"}))).data,[n]),k=c.useCallback(async(H,I)=>(await V(await n(`/organizations/${H.id}/enterprise-connections/${I}/scim/token`,{method:"POST"}))).data,[n]),y=c.useCallback(async(H,I)=>(await V(await n(`/organizations/${H.id}/enterprise-connections/${I}/scim/token`,{method:"GET"}))).data,[n]),M=c.useCallback(async(H,I)=>{await n(`/organizations/${H.id}/enterprise-connections/${I}/scim/token/revoke`,{method:"POST"})},[n]),A=c.useCallback(async(H,I)=>{const R=new FormData;return R.append("name",I.name),I.permissions&&I.permissions.forEach((D,B)=>{R.append(`permissions[${B}]`,D)}),await V(await n(`/organizations/${H.id}/roles`,{method:"POST",body:R}))},[n]),Z=c.useCallback(async H=>(await V(await n(`/organizations/${H.id}/leave`,{method:"POST"}))).data,[n]),P=c.useCallback(async H=>{const I=await V(await n(`/organizations/${H.id}/delete`,{method:"POST"}));return Rt(),await r(),await s(),I.data},[n,r,s]),L=c.useCallback(async(H,I,R)=>(await V(await n(`/organizations/${H.id}/members/${I.id}/roles/${R.id}/add`,{method:"POST"}))).data,[n]),F=c.useCallback(async(H,I,R)=>(await V(await n(`/organizations/${H.id}/members/${I.id}/roles/${R.id}/remove`,{method:"POST"}))).data,[n]),$=c.useCallback(async(H,I)=>{var D,B;const R=new FormData;return R.append("email",I.email),R.append("role_id",I.organizationRole.id),(D=I.workspace)!=null&&D.id&&R.append("workspace_id",I.workspace.id),(B=I.workspaceRole)!=null&&B.id&&R.append("workspace_role_id",I.workspaceRole.id),(await V(await n(`/organizations/${H.id}/invitations`,{method:"POST",body:R}))).data},[n]),z=c.useCallback(async(H,I)=>(await V(await n(`/organizations/${H.id}/invitations/${I.id}/discard`,{method:"POST"}))).data,[n]),O=c.useCallback(async(H,I)=>(await V(await n(`/organizations/${H.id}/invitations/${I.id}/resend`,{method:"POST"}))).data,[n]);return{organizations:c.useMemo(()=>e==null?void 0:e.map(H=>H.organization),[e]),loading:a,error:null,refetch:r,leaveOrganization:Z,getOrganizationRoles:i,getOrganizationMembers:h,removeOrganizationMember:f,createOrganization:p,getOrganizationInvitations:d,getOrganizationDomains:u,addOrganizationDomain:v,verifyOrganizationDomain:w,removeOrganizationDomain:x,addRoleToOrganizationMember:L,removeRoleFromOrganizationMember:F,inviteOrganizationMember:$,discardOrganizationInvitation:z,resendOrganizationInvitation:O,updateOrganization:m,addRole:A,removeOrganizationRoles:g,deleteOrganization:P,getEnterpriseConnections:b,createEnterpriseConnection:E,updateEnterpriseConnection:j,deleteEnterpriseConnection:S,testEnterpriseConnectionConfig:C,testEnterpriseConnection:_,generateSCIMToken:k,getSCIMToken:y,revokeSCIMToken:M}},ir=()=>{const{loading:e,error:r,refetch:a,getOrganizationMembers:n,getOrganizationRoles:s,leaveOrganization:i,removeOrganizationMember:h,getOrganizationInvitations:d,getOrganizationDomains:u,removeOrganizationDomain:f,addOrganizationDomain:p,verifyOrganizationDomain:m,addRoleToOrganizationMember:g,removeRoleFromOrganizationMember:v,inviteOrganizationMember:w,discardOrganizationInvitation:x,resendOrganizationInvitation:b,updateOrganization:E,removeOrganizationRoles:j,getEnterpriseConnections:S,createEnterpriseConnection:C,updateEnterpriseConnection:_,deleteEnterpriseConnection:k,testEnterpriseConnectionConfig:y,testEnterpriseConnection:M,generateSCIMToken:A,getSCIMToken:Z,revokeSCIMToken:P}=Ot(),{session:L,error:F,loading:$}=st(),{organizationMemberships:z}=Qt(),O=c.useMemo(()=>(z==null?void 0:z.find(Y=>{var de;return Y.id===((de=L==null?void 0:L.active_signin)==null?void 0:de.active_organization_membership_id)}))||null,[z,L]),T=c.useMemo(()=>(O==null?void 0:O.organization)||null,[O]),H=c.useCallback(async Y=>T?await E(T,Y):[],[T,E]),I=c.useCallback(async()=>T?await n(T):[],[T,n]),R=c.useCallback(async()=>T?await s(T):[],[T,s]),W=c.useCallback(async Y=>T?await h(T,Y):[],[T,h]),D=c.useCallback(async Y=>T?await j(T,Y):void 0,[T,j]),B=c.useCallback(async()=>T?await u(T):[],[T,u]),K=c.useCallback(async Y=>T?await p(T,Y):void 0,[T,p]),X=c.useCallback(async Y=>T?await m(T,Y):void 0,[T,m]),ce=c.useCallback(async Y=>T?await f(T,Y):void 0,[T,f]),fe=c.useCallback(async(Y,de)=>T?await g(T,Y,de):void 0,[T,g]),te=c.useCallback(async(Y,de)=>T?await v(T,Y,de):void 0,[T,v]),xe=c.useCallback(async Y=>T?await w(T,Y):void 0,[T,w]),re=c.useCallback(async Y=>T?await x(T,Y):void 0,[T,x]),U=c.useCallback(async Y=>T?await b(T,Y):void 0,[T,b]),Je=c.useCallback(async()=>{T&&await i(T)},[T,i]),Pe=c.useCallback(async()=>T?await d(T):[],[T,d]),De=c.useCallback(async()=>T?await S(T):[],[T,S]),Be=c.useCallback(async Y=>{if(T)return await C(T,Y)},[T,C]),ve=c.useCallback(async(Y,de)=>{if(T)return await _(T,Y,de)},[T,_]),Q=c.useCallback(async Y=>{T&&await k(T,Y)},[T,k]),le=c.useCallback(async Y=>T?await y(T,Y):null,[T,y]),se=c.useCallback(async Y=>T?await M(T,Y):null,[T,M]),G=c.useCallback(async Y=>{if(T)return await A(T,Y)},[T,A]),he=c.useCallback(async Y=>{if(T)return await Z(T,Y)},[T,Z]),pe=c.useCallback(async Y=>{T&&await P(T,Y)},[T,P]);return $||e?{activeOrganization:null,activeMembership:null,loading:!0,error:F||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:T,activeMembership:O,loading:!1,refetch:a,getRoles:R,updateOrganization:H,getMembers:I,getDomains:B,addDomain:K,verifyDomain:X,removeDomain:ce,getInvitations:Pe,removeMember:W,leave:Je,removeRole:D,addMemberRole:fe,removeMemberRole:te,inviteMember:xe,discardInvitation:re,resendInvitation:U,getEnterpriseConnections:De,createEnterpriseConnection:Be,updateEnterpriseConnection:ve,deleteEnterpriseConnection:Q,testEnterpriseConnectionConfig:le,testEnterpriseConnection:se,generateSCIMToken:G,getSCIMToken:he,revokeSCIMToken:pe,error:null}};async function k2(e){return(await V(await e("/me/organization-memberships"))).data}const Qt=()=>{const{client:e,loading:r}=je(),{data:a,isLoading:n,error:s,mutate:i}=Ae(r?null:"/me/organization-memberships",()=>k2(e),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),h=c.useCallback(async()=>{await i()},[i]);return{organizationMemberships:a,loading:r||n,error:s,refetch:h}};async function C2(e){return(await V(await e("/me/workspace-memberships"))).data}async function S2(e,r){return(await V(await e(`/workspaces/${r}/leave`,{method:"POST"}))).data}const An=()=>{const{client:e,loading:r}=je(),{deployment:a}=Se(),{data:n,isLoading:s,error:i,mutate:h}=Ae(!r&&(a!=null&&a.b2b_settings.workspaces_enabled)?"/me/workspace-memberships":null,()=>C2(e),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),d=c.useCallback(async()=>{await h(void 0,{revalidate:!0})},[h]);return{workspaceMemberships:n,loading:r||s,error:i,refetch:d}},cr=()=>{const{workspaceMemberships:e,refetch:r,loading:a,error:n}=An(),{client:s}=je(),{refetch:i}=st(),h=c.useMemo(()=>e==null?void 0:e.map(k=>({...k.workspace,organization:k.organization,eligibility_restriction:k.eligibility_restriction})),[e]),d=c.useCallback(async(k,y,M,A)=>{const Z=new FormData;Z.append("name",y),M&&Z.append("image",M),A&&Z.append("description",A),Z.append("organization_id",k);const P=await V(await s("/workspaces",{method:"POST",body:Z}));return Rt(),await r(),P.data},[s,r]),u=c.useCallback(async k=>{const y=await S2(s,k);return Rt(),await r(),await i(),y},[s,r,i]),f=c.useCallback(async(k,y)=>{const M=new FormData;y.name&&M.append("name",y.name),y.description&&M.append("description",y.description),y.image&&M.append("image",y.image),y.enforce_2fa!==void 0&&M.append("enforce_2fa",String(y.enforce_2fa)),y.enable_ip_restriction!==void 0&&M.append("enable_ip_restriction",String(y.enable_ip_restriction)),y.whitelisted_ips&&y.whitelisted_ips.forEach(Z=>M.append("whitelisted_ips",Z));const A=await V(await s(`/workspaces/${k.id}/update`,{method:"POST",body:M}));return await r(),A.data},[s,r]),p=c.useCallback(async k=>{const y=await V(await s(`/workspaces/${k.id}/delete`,{method:"POST"}));return Rt(),await r(),y.data},[s,r]),m=c.useCallback(async(k,y)=>{const M=new URLSearchParams;return y&&(M.set("page",y.page.toString()),M.set("limit",y.limit.toString()),y.search&&M.set("search",y.search)),(await V(await s(`/workspaces/${k.id}/members?${M.toString()}`,{method:"GET"}))).data},[s]),g=c.useCallback(async k=>(await V(await s(`/workspaces/${k.id}/roles`,{method:"GET"}))).data,[s]),v=c.useCallback(async(k,y,M)=>{const A=new FormData;return A.append("name",y),M.forEach(P=>A.append("permissions",P)),(await V(await s(`/workspaces/${k.id}/roles`,{method:"POST",body:A}))).data},[s]),w=c.useCallback(async(k,y)=>(await V(await s(`/workspaces/${k.id}/roles/${y.id}/delete`,{method:"POST"}))).data,[s]),x=c.useCallback(async(k,y)=>{const M=await V(await s(`/workspaces/${k.id}/members/${y}/remove`,{method:"POST"}));return await r(),M.data},[s,r]),b=c.useCallback(async(k,y,M)=>(await V(await s(`/workspaces/${k.id}/members/${y}/roles/${M}/add`,{method:"POST"}))).data,[s]),E=c.useCallback(async(k,y,M)=>(await V(await s(`/workspaces/${k.id}/members/${y}/roles/${M}/remove`,{method:"POST"}))).data,[s]),j=c.useCallback(async k=>(await V(await s(`/organizations/${k.organization.id}/invitations?workspace_id=${k.id}`,{method:"GET"}))).data,[s]),S=c.useCallback(async(k,y,M)=>{const A=new FormData;return A.append("email",y),A.append("workspace_id",k.id),M&&A.append("workspace_role_id",M),(await V(await s(`/organizations/${k.organization.id}/invitations`,{method:"POST",body:A}))).data},[s]),C=c.useCallback(async(k,y)=>(await V(await s(`/organizations/${k.organization.id}/invitations/${y}/discard`,{method:"POST"}))).data,[s]),_=c.useCallback(async(k,y)=>(await V(await s(`/organizations/${k.organization.id}/invitations/${y}/resend`,{method:"POST"}))).data,[s]);return{workspaces:h||[],loading:a,error:n,refetch:r,leaveWorkspace:u,createWorkspace:d,updateWorkspace:f,deleteWorkspace:p,getWorkspaceMembers:m,getWorkspaceRoles:g,createWorkspaceRole:v,deleteWorkspaceRole:w,removeWorkspaceMember:x,addWorkspaceMemberRole:b,removeWorkspaceMemberRole:E,getWorkspaceInvitations:j,createWorkspaceInvitation:S,discardWorkspaceInvitation:C,resendWorkspaceInvitation:_}},Ht=()=>{const{refetch:e,loading:r,error:a,workspaces:n,leaveWorkspace:s,updateWorkspace:i,deleteWorkspace:h,getWorkspaceMembers:d,getWorkspaceRoles:u,createWorkspaceRole:f,deleteWorkspaceRole:p,removeWorkspaceMember:m,addWorkspaceMemberRole:g,removeWorkspaceMemberRole:v,getWorkspaceInvitations:w,createWorkspaceInvitation:x,discardWorkspaceInvitation:b,resendWorkspaceInvitation:E}=cr(),{workspaceMemberships:j}=An(),{session:S,loading:C,error:_}=st(),k=c.useMemo(()=>(j==null?void 0:j.find(X=>{var ce;return X.id===((ce=S==null?void 0:S.active_signin)==null?void 0:ce.active_workspace_membership_id)}))||null,[j,S]),y=c.useMemo(()=>(k==null?void 0:k.workspace)||null,[k]),M=c.useCallback(async()=>{if(y)return await s(y.id)},[y,s]),A=c.useCallback(async X=>{if(y)return await i(y,X)},[y,i]),Z=c.useCallback(async()=>{if(y)return await h(y)},[y,h]),P=c.useCallback(async X=>y?await d(y,X):{data:[],meta:{total:0,page:1,limit:10}},[y,d]),L=c.useCallback(async()=>y?await u(y):[],[y,u]),F=c.useCallback(async(X,ce)=>{if(y)return await f(y,X,ce)},[y,f]),$=c.useCallback(async X=>{if(y)return await p(y,X)},[y,p]),z=c.useCallback(async X=>{if(y)return await m(y,X)},[y,m]),O=c.useCallback(async(X,ce)=>{if(y)return await g(y,X,ce)},[y,g]),T=c.useCallback(async(X,ce)=>{if(y)return await v(y,X,ce)},[y,v]),H=c.useMemo(()=>(n==null?void 0:n.find(X=>X.id===(y==null?void 0:y.id)))||null,[n,y]),I=c.useCallback(async()=>H?await w(H):[],[H,w]),R=c.useCallback(async X=>{if(H)return await x(H,X.email,X.workspaceRoleId)},[H,x]),W=c.useCallback(async X=>{if(H)return await b(H,X)},[H,b]),D=c.useCallback(async X=>{if(H)return await E(H,X)},[H,E]),B=r||C,K=a||_;return B?{activeWorkspace:null,activeMembership:null,loading:!0,error:K,refetch:e,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:y,activeMembership:k,loading:!1,error:K,refetch:e,leave:M,updateWorkspace:A,deleteWorkspace:Z,getMembers:P,getRoles:L,createRole:F,deleteRole:$,inviteMember:R,removeMember:z,addMemberRole:O,removeMemberRole:T,getInvitations:I,discardInvitation:W,resendInvitation:D}};function Kn(e){const r=new Uint8Array(e);let a="";for(let n=0;n<r.length;n++)a+=String.fromCharCode(r[n]);return btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Yn(e){const r=e.replace(/-/g,"+").replace(/_/g,"/"),a=r.padEnd(r.length+(4-r.length%4)%4,"="),n=atob(a),s=new Uint8Array(n.length);for(let i=0;i<n.length;i++)s[i]=n.charCodeAt(i);return s.buffer}const E2=async e=>(await V(await e("/me"))).data,A2=async e=>(await V(await e("/me/signins"))).data;function lr(){const{client:e,loading:r}=je(),{data:a,error:n,isLoading:s,mutate:i}=Ae(r?null:"/user",()=>E2(e)),h=async H=>{const I=new FormData;for(const[W,D]of Object.entries(H))D!=null&&D!==""&&I.append(W,String(D));const R=await V(await e("/me",{method:"POST",body:I}));return i(),R},d=async()=>await V(await e("/me/email-addresses",{method:"GET"})),u=async H=>await V(await e(`/me/email-addresses/${H}`,{method:"GET"})),f=async H=>{const I=new FormData;return I.append("email",H),await V(await e("/me/email-addresses",{method:"POST",body:I}))},p=async H=>await V(await e(`/me/email-addresses/${H}/delete`,{method:"POST"})),m=async H=>await V(await e(`/me/email-addresses/${H}/prepare-verification`,{method:"POST"})),g=async(H,I)=>await V(await e(`/me/email-addresses/${H}/attempt-verification?code=${I}`,{method:"POST"})),v=async(H,I)=>{const R=new FormData;return R.append("phone_number",H),R.append("country_code",I),await V(await e("/me/phone-numbers",{method:"POST",body:R}))},w=async H=>await V(await e(`/me/phone-numbers/${H}/delete`,{method:"POST"})),x=async H=>await V(await e(`/me/phone-numbers/${H}/prepare-verification`,{method:"POST"})),b=async(H,I)=>{const R=new FormData;return R.append("code",I),await V(await e(`/me/phone-numbers/${H}/attempt-verification`,{method:"POST",body:R}))},E=async H=>{const I=await V(await e(`/me/phone-numbers/${H}/make-primary`,{method:"POST"}));return i(),I},j=async H=>await V(await e(`/me/email-addresses/${H}/make-primary`,{method:"POST"})),S=async()=>(await V(await e("/me/authenticator",{method:"POST"}))).data,C=async(H,I)=>{const R=new FormData;return R.append("authenticator_id",H),I.forEach(D=>{R.append("codes",D)}),await V(await e("/me/authenticator/attempt-verification",{method:"POST",body:R}))},_=async H=>await V(await e(`/me/authenticator/${H}/delete`,{method:"POST"})),k=async()=>(await V(await e("/me/backup-codes",{method:"POST"}))).data,y=async H=>{const I=new FormData;return I.append("file",H),await V(await e("/me/profile-picture",{method:"POST",body:I}))},M=async()=>(await V(await e("/me/backup-codes/regenerate",{method:"POST"}))).data,A=async(H,I)=>{const R=new FormData;return R.append("current_password",H),R.append("new_password",I),await V(await e("/me/update-password",{method:"POST",body:R}))},Z=async H=>{const I=new FormData;I.append("current_password",H);const R=await V(await e("/me/remove-password",{method:"POST",body:I}));return i(),R},P=async H=>{const I=new FormData;return I.append("password",H),await V(await e("/me/account/delete",{method:"POST",body:I}))},L=async H=>await V(await e(`/me/social-connections/${H}/disconnect`,{method:"POST"})),F=async({provider:H,redirectUri:I})=>{var D;const R=new URLSearchParams({provider:H});I&&R.append("redirect_uri",I);const W=await V(await e(`/me/init-sso-connection?${R.toString()}`,{method:"POST"}));return"data"in W&&((D=W.data)!=null&&D.oauth_url)&&window.open(W.data.oauth_url,"_blank"),W},$=async()=>await V(await e("/me/passkeys",{method:"GET"})),z=async H=>{var ce,fe;const I=await V(await e("/me/passkeys/register/begin",{method:"POST"}));if(!("data"in I))return I;const R=I.data.options.publicKey,W={challenge:Yn(R.challenge),rp:R.rp,user:{id:Yn(R.user.id),name:R.user.name,displayName:R.user.displayName},pubKeyCredParams:R.pubKeyCredParams,timeout:R.timeout,attestation:R.attestation,authenticatorSelection:R.authenticatorSelection,excludeCredentials:(ce=R.excludeCredentials)==null?void 0:ce.map(te=>({type:te.type,id:Yn(te.id),transports:te.transports}))},D=await navigator.credentials.create({publicKey:W});if(!D)throw new Error("Failed to create credential");const B=D.response,K={id:D.id,rawId:Kn(D.rawId),type:D.type,response:{clientDataJSON:Kn(B.clientDataJSON),attestationObject:Kn(B.attestationObject),transports:((fe=B.getTransports)==null?void 0:fe.call(B))||[]}};return await V(await e(`/me/passkeys/register/finish?name=${encodeURIComponent(H||"")}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(K)}))},O=async H=>await V(await e(`/me/passkeys/${H}/delete`,{method:"POST"})),T=async(H,I)=>await V(await e(`/me/passkeys/${H}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:I})}));return{user:{...a,refetch:i},loading:r||s,error:n||null,updateProfile:h,getEmailAddresses:d,getEmailAddress:u,createEmailAddress:f,deleteEmailAddress:p,prepareEmailVerification:m,attemptEmailVerification:g,makeEmailPrimary:j,createPhoneNumber:v,deletePhoneNumber:w,preparePhoneVerification:x,attemptPhoneVerification:b,makePhonePrimary:E,setupAuthenticator:S,verifyAuthenticator:C,deleteAuthenticator:_,generateBackupCodes:k,regenerateBackupCodes:M,updateProfilePicture:y,disconnectSocialConnection:L,connectSocialAccount:F,updatePassword:A,removePassword:Z,deleteAccount:P,getPasskeys:$,registerPasskey:z,deletePasskey:O,renamePasskey:T}}function m0(){const{client:e,loading:r}=je(),{data:a,error:n,isLoading:s,mutate:i}=Ae(r?null:"/me/signins",()=>A2(e));return{signins:a,error:n||null,removeSignin:async d=>await V(await e(`/me/signins/${d}/signout`,{method:"POST"})),refetch:i,loading:s||r}}function g0(){const{session:e,loading:r}=st(),{loading:a,organizationMemberships:n}=Qt(),{loading:s,workspaceMemberships:i}=An(),h=c.useMemo(()=>!e||!e.signins||e.signins.length===0?null:(n==null?void 0:n.find(u=>{var f;return u.id===((f=e.active_signin)==null?void 0:f.active_organization_membership_id)}))||null,[n,e]),d=c.useMemo(()=>!e||!e.signins||e.signins.length===0?null:(i==null?void 0:i.find(u=>{var f;return u.id===((f=e.active_signin)==null?void 0:f.active_workspace_membership_id)}))||null,[i,e]);return{loading:r||a||s,orgMembership:h,workspaceMembership:d}}function v0(){const{client:e,loading:r}=je(),[a,n]=c.useState(!1),s=async i=>{n(!0);try{const h=new FormData;for(const[f,p]of Object.entries(i))p&&h.append(f,p);const d=await e("/waitlist/join",{method:"POST",body:h});return await V(d)}finally{n(!1)}};return r?{loading:!0,joinWaitlist:null}:{loading:a,joinWaitlist:s}}function x0(){const{client:e,loading:r}=je(),[a,n]=c.useState(!1),[s,i]=c.useState(null),[h,d]=c.useState(null),[u,f]=c.useState(null),[p,m]=c.useState(!1),[g,v]=c.useState(null);c.useEffect(()=>{if(p||r)return;const x=new URLSearchParams(window.location.search),b=x.get("code"),E=x.get("state"),j=x.get("error"),S=x.get("error_description");if(!b&&!j){m(!0);const C=new Error("No OAuth callback data found.");i(C);return}if(m(!0),n(!0),j){const C=S||j,_=new Error(`OAuth Error: ${C}`);i(_),n(!1);return}if(b&&E)w(b,E);else{const C=new Error("Missing required OAuth parameters");i(C),n(!1)}},[p,r]);const w=async(x,b)=>{try{let E,j;try{const _=b.split(".");if(_.length!==3)throw new Error("Invalid OAuth state format - missing signature");const k=_[0].replace(/-/g,"+").replace(/_/g,"/"),y=k.length%4?"=".repeat(4-k.length%4):"",A=atob(k+y).split("|")[0];if(A==="sign_in")E="/auth/oauth2/callback",j="GET";else if(A==="connect_social")E="/me/sso-connection-callback",j="POST";else throw new Error(`Unknown OAuth action: ${A}`)}catch(_){const k=_ instanceof Error?_:new Error("Failed to parse OAuth state");i(new Error(`Invalid OAuth callback: ${k.message}. The authorization link may be expired or malformed. Please try signing in again.`)),n(!1);return}const S=await e(`${E}?code=${encodeURIComponent(x)}&state=${encodeURIComponent(b)}`,{method:j}),C=await V(S);if("data"in C){const _=C.data.session,k=C.data.redirect_uri||null;if(d(_),f(k),_.signin_attempts&&_.signin_attempts.length>0){const y=_.signin_attempts.at(-1);y&&v(y)}}else{const _=new Error("SSO callback failed");i(_)}}catch(E){const j=E instanceof Error?E:new Error("Unknown error occurred");i(j)}finally{n(!1)}};return{loading:a,error:s,session:h,redirectUri:u,processed:p,signinAttempt:g}}function b0(){const{client:e,loading:r}=je(),[a,n]=c.useState(!1),[s,i]=c.useState(null);return{loading:r||a,verifyMagicLink:async d=>{if(!d.token||!d.attempt)throw new Error("Invalid magic link parameters");n(!0),i(null);try{const u=new URL("/auth/verify-magic-link",window.location.origin);u.searchParams.set("token",d.token),u.searchParams.set("attempt",d.attempt),d.redirectUri&&u.searchParams.set("redirect_uri",d.redirectUri);const f=await e(u.pathname+u.search,{method:"GET"}),p=await V(f);return n(!1),i(!0),p}catch(u){throw n(!1),i(!1),u}},success:s}}function z2(){const[e,r]=c.useState({});return c.useEffect(()=>{const a=new URLSearchParams(window.location.search);r({token:a.get("token")||void 0,attempt:a.get("attempt")||void 0,redirectUri:a.get("redirect_uri")||void 0})},[]),e}function w0(){const{client:e,loading:r}=je();return{loading:r,forgotPassword:async i=>{const h=new FormData;h.append("email",i);const d=await e("/auth/forgot-password",{method:"POST",body:h});return await V(d)},verifyOtp:async(i,h)=>{const d=new FormData;d.append("email",i),d.append("otp",h);const u=await e("/auth/forgot-password",{method:"POST",body:d});return await V(u)},resetPassword:async(i,h)=>{const d=new FormData;d.append("token",i),d.append("password",h);const u=await e("/auth/reset-password",{method:"POST",body:d});return await V(u)}}}const $2=()=>{},M2=$2(),Yo=Object,ii=e=>e===M2,L2=e=>typeof e=="function",Ia=new WeakMap,R2=e=>Yo.prototype.toString.call(e),Qn=(e,r)=>e===`[object ${r}]`;let P2=0;const Qo=e=>{const r=typeof e,a=R2(e),n=Qn(a,"Date"),s=Qn(a,"RegExp"),i=Qn(a,"Object");let h,d;if(Yo(e)===e&&!n&&!s){if(h=Ia.get(e),h)return h;if(h=++P2+"~",Ia.set(e,h),Array.isArray(e)){for(h="@",d=0;d<e.length;d++)h+=Qo(e[d])+",";Ia.set(e,h)}if(i){h="#";const u=Yo.keys(e).sort();for(;!ii(d=u.pop());)ii(e[d])||(h+=d+":"+Qo(e[d])+",");Ia.set(e,h)}}else h=n?e.toJSON():r=="symbol"?e.toString():r=="string"?JSON.stringify(e):""+e;return h},T2=e=>{if(L2(e))try{e=e()}catch{e=""}const r=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?Qo(e):"",[e,r]},F2=e=>T2(e?e(0,null):null)[0],Jn=Promise.resolve(),Z2=e=>(r,a,n)=>{const s=c.useRef(!1),{cache:i,initialSize:h=1,revalidateAll:d=!1,persistSize:u=!1,revalidateFirstPage:f=!0,revalidateOnMount:p=!1,parallel:m=!1}=n,[,,,g]=Zt.get(bs);let v;try{v=F2(r),v&&(v=u0+v)}catch{}const[w,x,b]=rr(i,v),E=c.useCallback(()=>Ce(w()._l)?h:w()._l,[i,v,h]);Ho.useSyncExternalStore(c.useCallback(M=>v?b(v,()=>{M()}):()=>{},[i,v]),E,E);const j=c.useCallback(()=>{const M=w()._l;return Ce(M)?h:M},[v,h]),S=c.useRef(j());pn(()=>{if(!s.current){s.current=!0;return}v&&x({_l:u?S.current:j()})},[v,i]);const C=p&&!s.current,_=e(v,async M=>{const A=w()._i,Z=w()._r;x({_r:ht});const P=[],L=j(),[F]=rr(i,M),$=F().data,z=[];let O=null;for(let T=0;T<L;++T){const[H,I]=ka(r(T,m?null:O));if(!H)break;const[R,W]=rr(i,H);let D=R().data;const B=d||A||Ce(D)||f&&!T&&!Ce($)||C||$&&!Ce($[T])&&!n.compare($[T],D);if(a&&(typeof Z=="function"?Z(D,I):B)){const K=async()=>{if(!(H in g))D=await a(I);else{const ce=g[H];delete g[H],D=await ce}W({data:D,_k:I}),P[T]=D};m?z.push(K):await K()}else P[T]=D;m||(O=D)}return m&&await Promise.all(z.map(T=>T())),x({_i:ht}),P},n),k=c.useCallback(function(M,A){const Z=typeof A=="boolean"?{revalidate:A}:A||{},P=Z.revalidate!==!1;return v?(P&&(Ce(M)?x({_i:!0,_r:Z.revalidate}):x({_i:!1,_r:Z.revalidate})),arguments.length?_.mutate(M,{...Z,revalidate:P}):_.mutate()):Jn},[v,i]),y=c.useCallback(M=>{if(!v)return Jn;const[,A]=rr(i,v);let Z;if(Lt(M)?Z=M(j()):typeof M=="number"&&(Z=M),typeof Z!="number")return Jn;A({_l:Z}),S.current=Z;const P=[],[L]=rr(i,v);let F=null;for(let $=0;$<Z;++$){const[z]=ka(r($,F)),[O]=rr(i,z),T=z?O().data:ht;if(Ce(T))return k(L().data);P.push(T),F=T}return k(P)},[v,i,k,j]);return{size:j(),setSize:y,mutate:k,get data(){return _.data},get error(){return _.error},get isValidating(){return _.isValidating},get isLoading(){return _.isLoading}}},ta=f2(Ae,Z2);function y0({enabled:e=!0,channels:r,organizationIds:a,workspaceIds:n,onNotification:s,onError:i,reconnectDelay:h=1e3,maxReconnectAttempts:d=5}={}){const{session:u,loading:f}=st(),{deployment:p,loading:m}=Se(),[g,v]=c.useState(!1),[w,x]=c.useState(null),b=c.useRef(null),E=c.useRef(null),j=c.useRef(0),S=c.useRef(null),C=c.useRef(s),_=c.useRef(i),k=c.useRef(r),y=c.useRef(a),M=c.useRef(n),A=c.useRef(h),Z=c.useRef(d);C.current=s,_.current=i,k.current=r,y.current=a,M.current=n,A.current=h,Z.current=d;const P=c.useCallback(()=>{E.current&&(clearTimeout(E.current),E.current=null),S.current&&(clearInterval(S.current),S.current=null),b.current&&(b.current.close(),b.current=null)},[]),L=c.useCallback(async()=>{var H;if(!e||f||m||!u||!p)return;P();const z=new URL(p.backend_host),O=z.protocol==="https:"?"wss:":"ws:",T=new URL("/notifications/stream",`${O}//${z.host}`);if(p.mode==="staging"){const I=ft(p.backend_host);I&&T.searchParams.set("__dev_session__",I)}k.current&&k.current.length>0&&T.searchParams.set("channels",k.current.join(",")),y.current&&y.current.length>0&&T.searchParams.set("organization_ids",y.current.join(",")),M.current&&M.current.length>0&&T.searchParams.set("workspace_ids",M.current.join(","));try{const I=new WebSocket(T.toString());b.current=I,I.onopen=()=>{v(!0),x(null),j.current=0,S.current=setInterval(()=>{I.readyState===WebSocket.OPEN&&I.send("ping")},3e4)},I.onmessage=R=>{var W,D;try{const B=JSON.parse(R.data);if(B.type==="notification"&&B.data)(W=C.current)==null||W.call(C,B.data);else if(B.type==="error"){const K=B.error||"Unknown error occurred";x(K),(D=_.current)==null||D.call(_,K)}else B.type}catch{}},I.onerror=()=>{var R;x("Connection error occurred"),(R=_.current)==null||R.call(_,"Connection error occurred")},I.onclose=R=>{var W;if(v(!1),S.current&&(clearInterval(S.current),S.current=null),e&&R.code!==1e3&&j.current<Z.current){j.current++;const D=A.current*Math.pow(2,j.current-1);E.current=setTimeout(()=>{L()},D)}else j.current>=Z.current&&(x("Max reconnection attempts reached"),(W=_.current)==null||W.call(_,"Max reconnection attempts reached"))}}catch{x("Failed to connect"),(H=_.current)==null||H.call(_,"Failed to connect")}},[e,f,m,u,p,P]);c.useEffect(()=>(L(),()=>{P()}),[L,P]),c.useEffect(()=>{b.current&&b.current.readyState===WebSocket.OPEN&&L()},[r,a,n,L]);const F=c.useCallback(()=>{P(),v(!1)},[P]),$=c.useCallback(()=>{j.current=0,L()},[L]);return{isConnected:g,connectionError:w,disconnect:F,reconnect:$}}function zn(e){if(!e)return"";const r=new URLSearchParams;e.limit&&r.append("limit",e.limit.toString()),e.cursor&&r.append("cursor",e.cursor),e.scope&&r.append("scope",e.scope),e.channels&&e.channels.length>0&&e.channels.forEach(n=>r.append("channels",n)),e.organization_ids&&e.organization_ids.length>0&&e.organization_ids.forEach(n=>r.append("organization_ids",n)),e.workspace_ids&&e.workspace_ids.length>0&&e.workspace_ids.forEach(n=>r.append("workspace_ids",n)),e.is_read!==void 0&&r.append("is_read",e.is_read.toString()),e.is_archived!==void 0&&r.append("is_archived",e.is_archived.toString()),e.is_starred!==void 0&&r.append("is_starred",e.is_starred.toString()),e.severity&&r.append("severity",e.severity);const a=r.toString();return a?"?"+a:""}async function I2(e,r){const a=`/notifications${zn(r)}`,n=await e(a,{method:"GET"});return(await V(n)).data}async function O2(e,r){const a=await e(`/notifications/${r}/read`,{method:"POST"});return V(a)}async function H2(e,r){const a=await e(`/notifications/${r}/unread`,{method:"POST"});return V(a)}async function V2(e,r){const a=await e(`/notifications/mark-all-read${zn(r)}`,{method:"POST"});return V(a)}async function D2(e,r){const a=await e(`/notifications/archive-all-read${zn(r)}`,{method:"POST"});return V(a)}async function N2(e,r){const a=await e(`/notifications/${r}/archive`,{method:"POST"});return V(a)}async function U2(e,r){const a=await e(`/notifications/${r}/star`,{method:"POST"});return V(a)}function j0(e){var M;const{client:r,loading:a}=je(),{data:n,error:s,mutate:i,isLoading:h,size:d,setSize:u,isValidating:f}=ta((A,Z)=>{var $;if(a||A>0&&(!Z||!Z.has_more))return null;const P=A===0||($=Z==null?void 0:Z.notifications[Z.notifications.length-1])==null?void 0:$.id,{onNotification:L,...F}=e||{};return["wacht-notifications",{...F,cursor:P}]},([,A])=>I2(r,A),{refreshInterval:6e4,revalidateOnFocus:!0,revalidateFirstPage:!0}),p=c.useMemo(()=>n?n.flatMap(A=>A.notifications):[],[n]),m=n?(M=n[n.length-1])==null?void 0:M.has_more:!1,g=c.useMemo(()=>{if(e!=null&&e.channels&&e.channels.length>0)return e.channels;switch(e==null?void 0:e.scope){case"organization":return["organization"];case"workspace":return["workspace"];case"current":return["current"];case"all":return["user","organization","workspace"];case"user":return["user"];default:return}},[e==null?void 0:e.channels,e==null?void 0:e.scope]),v=c.useMemo(()=>{var A;return(A=e==null?void 0:e.organization_ids)==null?void 0:A.map(Z=>Number(Z)).filter(Z=>Number.isFinite(Z))},[e==null?void 0:e.organization_ids]),w=c.useMemo(()=>{var A;return(A=e==null?void 0:e.workspace_ids)==null?void 0:A.map(Z=>Number(Z)).filter(Z=>Number.isFinite(Z))},[e==null?void 0:e.workspace_ids]);y0({enabled:!a&&!!n,channels:g,organizationIds:v,workspaceIds:w,onNotification:c.useCallback(A=>{i(async Z=>{var $;if(!Z||Z.length===0||Z.some(z=>z.notifications.some(O=>O.id===A.id.toString())))return Z;($=e==null?void 0:e.onNotification)==null||$.call(e,A);const L=Z[0];return[{...L,notifications:[{id:A.id.toString(),user_id:A.user_id.toString(),deployment_id:A.deployment_id.toString(),title:A.title,body:A.body,severity:A.severity,ctas:A.ctas,is_read:!1,is_archived:!1,created_at:A.created_at,updated_at:A.created_at},...L.notifications]},...Z.slice(1)]},!1)},[i,e]),onError:c.useCallback(()=>{},[])});const x=c.useCallback(async A=>{a||(await i(async Z=>Z&&Z.map(P=>({...P,notifications:P.notifications.map(L=>L.id===A?{...L,is_read:!0}:L)})),!1),await O2(r,A),await i())},[r,a,i]),b=c.useCallback(async A=>{a||(await i(async Z=>Z&&Z.map(P=>({...P,notifications:P.notifications.map(L=>L.id===A?{...L,is_read:!1}:L)})),!1),await H2(r,A),await i())},[r,a,i]),E=c.useCallback(async()=>{a||(await i(async A=>A&&A.map(Z=>({...Z,notifications:Z.notifications.map(P=>({...P,is_read:!0}))})),!1),await V2(r,e),await i())},[r,e,i,a]),j=c.useCallback(async()=>{a||(await i(async A=>A&&A.map(Z=>({...Z,notifications:Z.notifications.filter(P=>!P.is_read)})),!1),await D2(r,e),await i())},[r,e,a,i]),S=c.useCallback(async A=>{a||(await i(async Z=>Z&&Z.map(P=>({...P,notifications:(e==null?void 0:e.is_archived)!==void 0?P.notifications.filter(L=>L.id!==A):P.notifications.map(L=>L.id===A?{...L,is_archived:!L.is_archived}:L)})),!1),await N2(r,A),await i())},[r,a,i,e==null?void 0:e.is_archived]),C=c.useCallback(async A=>{a||(await i(async Z=>Z&&Z.map(P=>({...P,notifications:P.notifications.map(L=>L.id===A?{...L,is_starred:!L.is_starred}:L)})),!1),await U2(r,A),await i())},[r,a,i]),_=c.useCallback(async()=>{f||!m||await u(d+1)},[f,m,u,d]),k=c.useCallback(async()=>{await i()},[i]),y=a||h||d>0&&n&&typeof n[d-1]>"u";return!n||y?{loading:!0,notifications:p,hasMore:m,markAsRead:void 0,markAllAsRead:void 0,archiveAllRead:void 0,archiveNotification:void 0,starNotification:void 0,markAsUnread:void 0,error:s,refetch:k,loadMore:_}:{loading:!1,error:s,notifications:p,hasMore:m,markAsRead:x,markAllAsRead:E,archiveAllRead:j,archiveNotification:S,starNotification:C,markAsUnread:b,refetch:k,loadMore:_}}async function B2(e,r){const a=`/notifications/scope-unread${zn(r)}`,n=await e(a,{method:"GET"});return(await V(n)).data}function _0(e){const{client:r,loading:a}=je(),{data:n,error:s,mutate:i}=Ae(a?null:["wacht-notifications-unread",e],([,d])=>B2(r,d),{refreshInterval:3e4,revalidateOnFocus:!0}),h=async()=>{await i()};return!n||a?{loading:!0,count:0,error:s,refetch:h}:{loading:!1,count:n.count,error:s,refetch:h}}const Zr={DISCONNECTED:"disconnected",CONNECTED:"connected",ERROR:"error"},Ve={IDLE:"idle",STARTING:"starting",RUNNING:"running",WAITING_FOR_INPUT:"waiting_for_input",COMPLETED:"completed",FAILED:"failed"},fr={IDLE:"Idle",STARTING:"Starting",RUNNING:"Running",WAITING_FOR_INPUT:"WaitingForInput",COMPLETED:"Completed",FAILED:"Failed",CANCELLED:"Cancelled"};function W2(e){switch(e.trim()){case fr.IDLE:return Ve.IDLE;case fr.STARTING:case"starting":return Ve.STARTING;case fr.RUNNING:case"running":return Ve.RUNNING;case fr.WAITING_FOR_INPUT:case"waiting_for_input":return Ve.WAITING_FOR_INPUT;case fr.COMPLETED:case"completed":return Ve.COMPLETED;case fr.FAILED:case fr.CANCELLED:case"failed":case"cancelled":return Ve.FAILED;default:return Ve.IDLE}}function Ir(e){return e===Ve.STARTING||e===Ve.RUNNING||e===Ve.WAITING_FOR_INPUT}function Kt(e){return e&&typeof e=="object"?e:null}function Cr(e){return typeof e=="string"?e:null}function G2(e){const r=Kt(e);return(r==null?void 0:r.ConversationMessage)??e}function q2(e){const r=Kt(e);if(!r)return null;const a=Kt(r.content),n=Kt(r.metadata),s=Cr(r.message_type)||Cr(n==null?void 0:n.message_type)||Cr(a==null?void 0:a.type);return{...r,metadata:{...n||{},message_type:s}}}function K2(e){const r=Kt(e.metadata),a=Kt(e.content);return Cr(r==null?void 0:r.message_type)||Cr(a==null?void 0:a.type)}function Y2(e){const r=Kt(e.content);return Cr(r==null?void 0:r.status)}function Q2(e){const r=Kt(e.content),a=Cr(r==null?void 0:r.step);return a==="execution_cancelled"||a==="abort"}function J2(e){const r=Kt(e.content);return(r==null?void 0:r.further_actions_required)===!1}function ci(e){return[...e].sort((r,a)=>new Date(r.timestamp).getTime()-new Date(a.timestamp).getTime())}function X2(e,r){return{id:e,timestamp:new Date().toISOString(),content:{type:"user_message",message:r},metadata:{message_type:"user_message"}}}function ep(e,r){const a=new FormData;a.append("message",e);for(const n of r??[])a.append("files",n);return a}function tp(e,r){const a=new FormData;a.append("request_message_id",e);for(const n of r)a.append("approval_tool_name",n.tool_name),a.append("approval_mode",n.mode);return a}function rp(){const e=new FormData;return e.append("cancel","true"),e}function ap({deployment:e,threadId:r,file:a}){const n=a.url||a.filename;if(!n)return null;if(/^https?:\/\//i.test(n))return n;const s=e.backend_host.replace(/\/$/,"");let i;if(n.startsWith("/ai/threads/"))i=new URL(n,`${s}/`);else{const h=n.includes("/")?n.split("/").pop()??"":n;if(!h)return null;i=new URL(`/ai/threads/${encodeURIComponent(r)}/filesystem/file`,`${s}/`),i.searchParams.set("path",`uploads/${h}`)}if(e.mode==="staging"){const h=ft(e.backend_host);h&&i.searchParams.set("__dev_session__",h)}return i.toString()}const np=5e3,op=5e3;function sp({threadId:e,initialThread:r=null,platformAdapter:a}){var Ge,it;const{deployment:n}=Se(),{client:s}=je(),[i,h]=c.useState([]),[d,u]=c.useState(null),[f,p]=c.useState(null),[m,g]=c.useState(r),[v,w]=c.useState(Ve.IDLE),[x,b]=c.useState({status:Zr.DISCONNECTED}),[E,j]=c.useState(!0),[S,C]=c.useState(!1),[_,k]=c.useState(!1),[y,M]=c.useState(null),A=c.useRef(null),Z=c.useRef(e),P=c.useRef(0),L=c.useRef(Ve.IDLE),F=c.useRef(null),$=c.useCallback(J=>{h(ae=>{const me=[...ae],He=me.findIndex(ze=>String(ze.id)===String(J.id));return He>=0?me[He]=J:me.push(J),ci(me)})},[]),z=c.useCallback(({messages:J,prepend:ae,hasMore:me})=>{const He=ci(J);He.length>0&&(A.current=He[0].id),h(ze=>ae?[...He,...ze]:He),me!==void 0&&j(me)},[]),O=c.useCallback(J=>{L.current=J,w(J)},[]),T=c.useCallback(J=>{P.current=Date.now()+np,O(J)},[O]),H=c.useCallback(()=>{var J;P.current>Date.now()&&Ir(L.current)||(O(Ve.IDLE),(J=F.current)==null||J.call(F))},[O]),I=c.useCallback(J=>{const ae=W2(J),me=Ir(ae);!me&&P.current>Date.now()&&Ir(L.current)||(me&&(P.current=0),O(ae))},[O]),R=c.useCallback(()=>{u(null),p(null)},[]),W=c.useCallback(J=>{g(ae=>ae&&{...ae,...J?{status:J}:{},last_activity_at:new Date().toISOString()})},[]),D=c.useCallback((J,ae)=>{$(X2(J,ae)),R()},[R,$]),B=c.useCallback(J=>{const ae=q2(J);if(!ae)return;switch(K2(ae)){case"system_decision":$(ae),Q2(ae)&&H();return;case"execution_summary":case"tool_result":case"user_message":$(ae);return;case"steer":$(ae),J2(ae)&&H();return;case"approval_request":P.current=0,O(Ve.WAITING_FOR_INPUT),$(ae);return;case"approval_response":$(ae),T(Ve.RUNNING);return;case"execution_status":{const He=Y2(ae);if(!He)return;I(He),g(ze=>ze&&{...ze,status:He});return}default:$(ae)}},[I,H,O,T,$]),K=c.useCallback((J,ae)=>{var me;(me=a==null?void 0:a.onPlatformEvent)==null||me.call(a,J,ae)},[a]),X=c.useRef(B),ce=c.useRef(K),fe=c.useRef(s),te=c.useRef(n);c.useEffect(()=>{X.current=B,ce.current=K,fe.current=s,te.current=n}),c.useEffect(()=>{Z.current=e},[e]);const xe=c.useRef(null),re=c.useRef(null),U=c.useRef(0),Je=10,Pe=c.useCallback(async J=>{if(!e)return;const ae=e;J?C(!0):k(!0),M(null);try{const me=new URLSearchParams({limit:"100"});J&&me.append("before_id",J);const He=await s(`/ai/threads/${e}/messages?${me}`,{method:"GET"}),ze=await V(He);ze.data&&Z.current===ae&&z({messages:ze.data.data,prepend:!!J,hasMore:ze.data.has_more||!1})}catch(me){Z.current===ae&&M(me instanceof Error?me:new Error("Failed to fetch messages"))}finally{Z.current===ae&&(J?C(!1):k(!1))}},[e,s,z]);c.useEffect(()=>{const J=te.current;if(!J||!e)return;const ae=()=>{xe.current&&(xe.current.close(),xe.current=null);const me=new URL(`${J.backend_host}/ai/threads/${encodeURIComponent(e)}/stream`);if(J.mode==="staging"){const ze=ft(J.backend_host);ze&&me.searchParams.append("__dev_session__",ze)}const He=new EventSource(me.toString(),{withCredentials:J.mode!=="staging"});xe.current=He,He.onopen=()=>{if(b({status:Zr.CONNECTED}),U.current>0){const ze=e;setTimeout(()=>{s(`/ai/threads/${ze}/messages?limit=100`,{method:"GET"}).then(async Qe=>{const _t=await V(Qe);_t.data&&Z.current===ze&&z({messages:_t.data.data,hasMore:_t.data.has_more||!1})}).catch(()=>{})},100)}U.current=0},He.onerror=()=>{if(b({status:Zr.ERROR}),He.close(),xe.current=null,U.current<Je){const ze=Math.min(1e3*Math.pow(2,U.current),3e4);re.current=setTimeout(()=>{U.current++,ae()},ze)}else b({status:Zr.DISCONNECTED})},He.addEventListener("conversation_message",ze=>{try{const Qe=G2(JSON.parse(ze.data));Qe&&X.current(Qe)}catch{}}),He.addEventListener("platform_event",ze=>{try{const Qe=JSON.parse(ze.data);Qe!=null&&Qe.PlatformEvent?ce.current(Qe.PlatformEvent[0],Qe.PlatformEvent[1]):Qe!=null&&Qe.event_label&&ce.current(Qe.event_label,Qe.event_data)}catch{}})};return ae(),()=>{re.current&&(clearTimeout(re.current),re.current=null),xe.current&&(xe.current.close(),xe.current=null)}},[e,s,z]);const De=c.useCallback(async()=>{if(!e)return;const J=e;try{const ae=await s(`/ai/threads/${J}`,{method:"GET"});if(!ae.ok)return;const me=await V(ae);me.data&&Z.current===J&&(g(me.data),I(me.data.status),Gr(`wacht-ai-thread:${J}`,me.data,{revalidate:!1}))}catch{}},[e,s,I]);c.useEffect(()=>{F.current=De},[De]),c.useEffect(()=>{if(!e)return;De();const J=window.setInterval(()=>{!Ir(L.current)&&P.current<=Date.now()||De()},op);return()=>{window.clearInterval(J)}},[e,De]),c.useEffect(()=>{h([]),g(null),j(!0),C(!1),M(null),k(!!e),b({status:Zr.DISCONNECTED}),A.current=null,P.current=0,L.current=Ve.IDLE,w(Ve.IDLE),R()},[e,R]),c.useEffect(()=>{!r||r.id!==e||g(r)},[r,e]);const Be=c.useCallback(async(J,ae)=>{var me,He;if(!(!e||!n)){u(J),ae&&ae.length>0&&p(ae),T(Ve.STARTING);try{const ze=await s(`/ai/threads/${e}/run`,{method:"POST",body:ep(J,ae)});if(ze.ok){const Qe=await V(ze),_t=((me=Qe.data)==null?void 0:me.conversation_id)??null;W(typeof((He=Qe.data)==null?void 0:He.status)=="string"?Qe.data.status:void 0),_t?D(_t,J):R(),T(Ve.RUNNING)}else P.current=0,O(Ve.IDLE),R()}catch{P.current=0,O(Ve.IDLE),R()}}},[e,n,s,T,O,W,R,D]);c.useEffect(()=>{e&&Pe()},[e,Pe]);const ve=c.useCallback(async()=>{await Pe()},[Pe]),Q=c.useCallback(async()=>{if(!(S||!E||!A.current)){C(!0);try{await Pe(A.current)}finally{C(!1)}}},[S,E,Pe]),le=c.useCallback(()=>{h([]),R()},[R]),se=c.useCallback(async(J,ae)=>{if(!e)return!1;T(Ve.STARTING);try{return(await s(`/ai/threads/${e}/run`,{method:"POST",body:tp(J,ae)})).ok?(W(),T(Ve.RUNNING),!0):(P.current=0,O(Ve.IDLE),!1)}catch{return P.current=0,O(Ve.IDLE),!1}},[e,s,T,O,W]),G=c.useCallback(async J=>{if(!e)return!1;T(Ve.STARTING);try{return(await s(`/ai/threads/${e}/messages/answer`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(J)})).ok?(W(),T(Ve.RUNNING),!0):(P.current=0,O(Ve.IDLE),!1)}catch{return P.current=0,O(Ve.IDLE),!1}},[e,s,T,O,W]),he=c.useCallback(async()=>{if(!(!e||!Ir(v)))try{await s(`/ai/threads/${e}/run`,{method:"POST",body:rp()}),P.current=0,W(),O(Ve.IDLE)}catch{}},[e,v,s,O,W]),pe=c.useCallback(J=>!n||!e||!J?null:ap({deployment:n,threadId:e,file:J}),[e,n]),Y=c.useCallback(J=>{const ae=pe(J);if(!ae)return;const me=document.createElement("a");me.href=ae,me.download=(J==null?void 0:J.filename)||"attachment",me.rel="noreferrer",document.body.appendChild(me),me.click(),document.body.removeChild(me)},[pe]),de=((Ge=m==null?void 0:m.execution_state)==null?void 0:Ge.pending_approval_request)??null,We=((it=m==null?void 0:m.execution_state)==null?void 0:it.pending_question)??null,Ke=m==null?void 0:m.status;return{thread:m,threadState:m,threadStatus:Ke,messages:i,pendingMessage:d,pendingFiles:f,connectionState:x,isConnected:x.status===Zr.CONNECTED,hasActiveRun:Ir(v),isRunning:v===Ve.STARTING||v===Ve.RUNNING,executionStatus:v,isWaitingForInput:v===Ve.WAITING_FOR_INPUT,pendingApprovalRequest:de,pendingClarificationRequest:We,hasMoreMessages:E,isLoadingMore:S,messagesLoading:_,messagesError:y,refreshThread:De,refreshMessages:ve,sendMessage:Be,submitApprovalResponse:se,submitAnswer:G,clearMessages:le,loadMoreMessages:Q,cancelExecution:he,resolveMessageFileUrl:pe,downloadMessageFile:Y}}function ip(e){const{client:r}=je(),[a,n]=c.useState(!e),[s,i]=c.useState(!!e),[h,d]=c.useState(null),u=c.useRef(!1),f=c.useRef(!1),p=c.useRef(null),m=a,g=c.useCallback(async()=>{const C=await r("/ai/session",{method:"GET"});if(!C.ok)throw C.status===401||C.status===403?new Error("NO_SESSION"):new Error("Failed to fetch session");return(await V(C)).data},[r]),{data:v,error:w,isLoading:x,mutate:b}=Ae(m?"wacht-agent-session":null,g,{revalidateOnFocus:!1});c.useEffect(()=>{if(!e||u.current||f.current||p.current===e)return;p.current=e,(async()=>{f.current=!0,i(!0);try{(await r(`/session/ticket/exchange?ticket=${encodeURIComponent(e)}`,{method:"GET"})).ok?(u.current=!0,n(!0)):d(new Error("Failed to exchange ticket"))}catch(_){d(_ instanceof Error?_:new Error("Failed to exchange ticket"))}finally{i(!1),f.current=!1}})()},[e,r]);const E=!h&&(e?a:!0)&&(!w||w.message!=="NO_SESSION"),j=h||(w&&w.message!=="NO_SESSION"?w:null);return{hasSession:E,sessionLoading:s||m&&x,sessionError:j,sessionId:(v==null?void 0:v.session_id)||null,actor:(v==null?void 0:v.actor)||null,agents:(v==null?void 0:v.agents)||[],ticketExchanged:a,ticketLoading:s,refetch:async()=>{await b()}}}const li={exists:!1,files:[]};function Oa(e,r,a){const s=(e||[]).filter(i=>i.id!==r.id);return!a&&r.archived_at?s:[r,...s]}function cp(e,r){return r===void 0?"":`?${new URLSearchParams({[e]:String(r)}).toString()}`}function k0(e,r){const a=new URLSearchParams({path:e});return r&&a.set("include_archived","true"),`?${a.toString()}`}function C0(e,r){const a=new URLSearchParams;e&&a.set("path",e),r&&a.set("include_archived","true");const n=a.toString();return n?`?${n}`:""}function lp(e){const r=e.split("/").pop()||e,a=r.lastIndexOf(".");return a<0||a===r.length-1?"":r.slice(a+1).toLowerCase()}function dp(e,r){const a=lp(r),n=new Set(["doc","docx","ppt","pptx","xls","xlsx","pdf","zip","gz","tar","7z","rar","jar","war","bin"]),s=new Set(["txt","md","mdx","markdown","json","jsonc","js","jsx","ts","tsx","mts","cts","mjs","cjs","py","rb","php","java","kt","kts","go","rs","c","cc","cpp","cxx","h","hpp","swift","sh","bash","zsh","fish","ps1","sql","html","htm","css","scss","less","xml","svg","yaml","yml","toml","ini","cfg","conf","env","log"]);return n.has(a)?!1:s.has(a)?!0:e.startsWith("text/")||e.includes("json")||e.includes("javascript")||e.includes("typescript")||e.includes("python")||e.includes("xml")||e.includes("yaml")}function ct(e,r,a){if(a!=null){if(typeof a=="string"){e.set(r,a);return}if(typeof a=="boolean"||typeof a=="number"){e.set(r,String(a));return}}}function up(e,r,a){a&&e.set(r,JSON.stringify(a))}function di(e){const r=new FormData;return ct(r,"name",e.name),ct(r,"agent_id","agent_id"in e?e.agent_id:void 0),ct(r,"description",e.description),ct(r,"status",e.status),r}function pp(e){const r=new FormData;if(ct(r,"title",e.title),ct(r,"agent_id",e.agent_id),ct(r,"system_instructions",e.system_instructions),ct(r,"thread_purpose",e.thread_purpose),ct(r,"responsibility",e.responsibility),ct(r,"reusable",e.reusable),ct(r,"accepts_assignments",e.accepts_assignments),up(r,"metadata",e.metadata),Array.isArray(e.capability_tags))for(const a of e.capability_tags)r.append("capability_tags",a);return r}function S0(e){const r=new FormData;return ct(r,"title",e.title),ct(r,"agent_id",e.agent_id),ct(r,"system_instructions",e.system_instructions),r}function E0(e,r=[]){const a=new FormData;ct(a,"title",e.title),ct(a,"description",e.description),ct(a,"status",e.status),ct(a,"schedule_kind",e.schedule_kind),ct(a,"next_run_at",e.next_run_at),ct(a,"interval_seconds",e.interval_seconds),"clear_schedule"in e&&ct(a,"clear_schedule",e.clear_schedule);for(const n of r)a.append("files",n);return a}function hp(e={}){const{client:r}=je(),{includeArchived:a=!1,enabled:n=!0}=e,s=n?`wacht-ai-actor-projects:${a}`:null,i=c.useCallback(async()=>{const v=await r(`/ai/projects${cp("include_archived",a)}`);return(await V(v)).data},[r,a]),{data:h,error:d,mutate:u}=Ae(s,i,{revalidateOnFocus:!1}),f=c.useCallback(async v=>{const w=await r("/ai/projects",{method:"POST",body:di(v)}),x=await V(w);return await u(b=>Oa(b,x.data,a),{revalidate:!0}),x},[r,a,u]),p=c.useCallback(async(v,w)=>{const x=await r(`/ai/projects/${v}/update`,{method:"POST",body:di(w)}),b=await V(x);return await u(E=>Oa(E,b.data,a),{revalidate:!0}),b},[r,a,u]),m=c.useCallback(async v=>{const w=await r(`/ai/projects/${v}/archive`,{method:"POST",body:new URLSearchParams}),x=await V(w);return await u(b=>Oa(b,x.data,a),{revalidate:!0}),x},[r,a,u]),g=c.useCallback(async v=>{const w=await r(`/ai/projects/${v}/unarchive`,{method:"POST",body:new URLSearchParams}),x=await V(w);return await u(b=>Oa(b,x.data,a),{revalidate:!0}),x},[r,a,u]);return{projects:h||[],loading:!h&&!d,error:d,createProject:f,updateProject:p,archiveProject:m,unarchiveProject:g,refetch:async()=>{await u()}}}function fp(e={}){const{client:r}=je(),{enabled:a=!0,query:n="",limit:s=12}=e,i=n.trim(),h=a?`wacht-ai-actor-project-search:${i}:${s}`:null,d=c.useCallback(async()=>{const m=new URLSearchParams({limit:String(s)});i&&m.set("q",i);const g=await r(`/ai/projects/search?${m.toString()}`);return(await V(g)).data},[r,s,i]),{data:u,error:f,mutate:p}=Ae(h,d,{revalidateOnFocus:!1});return{projects:(u==null?void 0:u.data)||[],loading:!u&&!f,error:f,hasMore:(u==null?void 0:u.has_more)||!1,nextCursor:u==null?void 0:u.next_cursor,refetch:async()=>{await p()}}}function mp(e,r={}){const{client:a}=je(),{includeArchived:n=!1,enabled:s=!0}=r,i=s&&e?`wacht-ai-threads:${e}:${n}`:null,h=c.useCallback(async()=>{if(!e)return{data:[],has_more:!1,next_cursor:""};const x=new URLSearchParams({limit:"100"});n&&x.set("include_archived","true");const b=await a(`/ai/projects/${e}/threads?${x.toString()}`);return(await V(b)).data},[e,a,n]),{data:d,error:u,mutate:f}=Ae(i,h,{revalidateOnFocus:!1}),p=c.useCallback(async(x,b)=>{const E=await a(`/ai/projects/${x}/threads`,{method:"POST",body:pp(b)}),j=await V(E);return x===e&&await f(),j},[e,a,f]),m=c.useCallback(async x=>{if(!e)throw new Error("projectId is required");return p(e,x)},[e,p]),g=c.useCallback(async(x,b)=>{const E=await a(`/ai/threads/${x}/update`,{method:"POST",body:S0(b)}),j=await V(E);return await f(),j},[a,f]),v=c.useCallback(async x=>{const b=await a(`/ai/threads/${x}/archive`,{method:"POST",body:new URLSearchParams}),E=await V(b);return await f(),E},[a,f]),w=c.useCallback(async x=>{const b=await a(`/ai/threads/${x}/unarchive`,{method:"POST",body:new URLSearchParams}),E=await V(b);return await f(),E},[a,f]);return{threads:(d==null?void 0:d.data)||[],loading:!d&&!u,error:u,hasMore:(d==null?void 0:d.has_more)||!1,nextCursor:(d==null?void 0:d.next_cursor)||"",createThread:m,createThreadForProject:p,updateThread:g,archiveThread:v,unarchiveThread:w,refetch:async()=>{await f()}}}function gp(e,r={}){var v,w;const{client:a}=je(),{includeArchived:n=!1,archivedOnly:s=!1,enabled:i=!0,query:h="",limit:d=10}=r,u=h.trim(),f=ta((x,b)=>{if(!i||!e||x>0&&b&&!b.has_more)return null;const E=x===0||b==null?void 0:b.next_cursor;return["wacht-ai-project-thread-feed",e,s?"archived-only":n?"with-archived":"active-only",u,d,E||""]},async([,x,b,E,j,S])=>{const C=new URLSearchParams({limit:String(j)});b==="with-archived"?C.set("include_archived","true"):b==="archived-only"&&(C.set("include_archived","true"),C.set("archived_only","true")),E&&C.set("q",String(E)),S&&C.set("cursor",String(S));const _=await a(`/ai/projects/${x}/threads?${C.toString()}`);return(await V(_)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0}),p=c.useMemo(()=>{var x;return((x=f.data)==null?void 0:x.flatMap(b=>b.data||[]))||[]},[f.data]),m=f.data&&((v=f.data[f.data.length-1])==null?void 0:v.has_more)||!1,g=f.isValidating&&!!f.data&&f.size>(((w=f.data)==null?void 0:w.length)||0);return{threads:p,loading:!f.data&&!f.error,error:f.error||null,hasMore:m,loadingMore:g,loadMore:async()=>{!m||g||await f.setSize(x=>x+1)},refetch:async()=>{await f.mutate()}}}function vp(e={}){const{client:r}=je(),{enabled:a=!0,query:n="",limit:s=16}=e,i=n.trim(),h=a?`wacht-ai-actor-thread-search:${i}:${s}`:null,d=c.useCallback(async()=>{const m=new URLSearchParams({limit:String(s)});i&&m.set("q",i);const g=await r(`/ai/threads/search?${m.toString()}`);return(await V(g)).data},[r,s,i]),{data:u,error:f,mutate:p}=Ae(h,d,{revalidateOnFocus:!1});return{threads:(u==null?void 0:u.data)||[],loading:!u&&!f,error:f,hasMore:(u==null?void 0:u.has_more)||!1,nextCursor:u==null?void 0:u.next_cursor,refetch:async()=>{await p()}}}function xp(e,r=!0){const{client:a}=je(),n=r&&e?`wacht-ai-thread:${e}`:null,s=c.useCallback(async()=>{if(!e)return null;const p=await a(`/ai/threads/${e}`);return(await V(p)).data},[e,a]),i=Ae(n,s,{revalidateOnFocus:!1}),h=c.useCallback(async p=>{if(!e)throw new Error("threadId is required");const m=await a(`/ai/threads/${e}/update`,{method:"POST",body:S0(p)}),g=await V(m);return await i.mutate(),g},[e,a,i]),d=c.useCallback(async()=>{if(!e)throw new Error("threadId is required");const p=await a(`/ai/threads/${e}/archive`,{method:"POST",body:new URLSearchParams}),m=await V(p);return await i.mutate(),m},[e,a,i]),u=c.useCallback(async()=>{if(!e)throw new Error("threadId is required");const p=await a(`/ai/threads/${e}/unarchive`,{method:"POST",body:new URLSearchParams}),m=await V(p);return await i.mutate(),m},[e,a,i]),f=c.useCallback(async p=>{if(!e)throw new Error("threadId is required");await a(`/ai/threads/${e}/messages/answer`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p)})},[e,a]);return{thread:i.data||null,loading:!i.data&&!i.error,error:i.error||null,updateThread:h,archiveThread:d,unarchiveThread:u,submitAnswer:f,refetch:async()=>{await i.mutate()}}}function bp(e,r=!0){const{client:a}=je(),n=r&&e?`wacht-ai-thread-filesystem:${e}`:null,s=c.useCallback(async d=>{if(!e)throw new Error("threadId is required");const u=await a(`/ai/threads/${e}/filesystem/file${k0(d)}`);if(!u.ok)throw new Error("Failed to load file");const f=await u.blob(),p=(u.headers.get("content-type")||"application/octet-stream").split(";")[0].trim().toLowerCase(),m=dp(p,d);let g;return m&&(g=await f.text()),{path:d,name:d.split("/").pop()||"file",mime_type:p,is_text:m,size_bytes:f.size,truncated:!1,content:g,blob:f}},[e,a]),i=c.useCallback(async d=>{if(!e)return li;const u=await a(`/ai/threads/${e}/filesystem${C0(d)}`);return(await V(u)).data},[e,a]),h=Ae(n,()=>i(),{revalidateOnFocus:!1});return{filesystem:h.data||li,filesystemLoading:!h.data&&!h.error,filesystemError:h.error||null,getFile:s,listDirectory:i,refetch:async()=>{await h.mutate()}}}function wp(e,r={}){var f,p;const{client:a}=je(),{enabled:n=!0,limit:s=40}=r,i=ta((m,g)=>{if(!n||!e||m>0&&g&&!g.has_more)return null;const v=m===0||g==null?void 0:g.next_cursor;return["wacht-ai-thread-assignments",e,s,v||""]},async([,m,g,v])=>{const w=new URLSearchParams({limit:String(g)});v&&w.set("cursor",String(v));const x=await a(`/ai/threads/${m}/assignments?${w.toString()}`);return(await V(x)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0,refreshInterval:5e3}),h=c.useMemo(()=>{var m;return((m=i.data)==null?void 0:m.flatMap(g=>g.data||[]))||[]},[i.data]),d=i.data&&((f=i.data[i.data.length-1])==null?void 0:f.has_more)||!1,u=i.isValidating&&!!i.data&&i.size>(((p=i.data)==null?void 0:p.length)||0);return{assignments:h,loading:!i.data&&!i.error,error:i.error||null,hasMore:d,loadingMore:u,loadMore:async()=>{!d||u||await i.setSize(m=>m+1)},refetch:async()=>{await i.mutate()}}}function yp(e={},r){const a=new URLSearchParams;e.statuses&&e.statuses.length>0&&a.set("status",e.statuses.join(",")),e.includeArchived&&a.set("include_archived","true"),e.archivedOnly&&a.set("archived_only","true"),e.limit&&a.set("limit",String(e.limit)),r&&a.set("cursor",r);const n=a.toString();return n?`?${n}`:""}function jp(e,r=!0,a={}){var w,x,b;const{client:n}=je(),s=((w=a.statuses)==null?void 0:w.join(","))||"all",i=a.archivedOnly?"archived-only":a.includeArchived?"with-archived":"active-only",h=a.limit||60,d=ta((E,j)=>{if(!r||!e||E>0&&j&&!j.has_more)return null;const S=E===0||j==null?void 0:j.next_cursor;return["wacht-ai-project-tasks",e,s,i,h,S||""]},async([,E,,,,j])=>{const S=await n(`/ai/projects/${E}/board/items${yp(a,j||void 0)}`);return(await V(S)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0,refreshInterval:5e3}),u=c.useMemo(()=>{var E;return((E=d.data)==null?void 0:E.flatMap(j=>j.data||[]))||[]},[d.data]),f=d.data&&((x=d.data[d.data.length-1])==null?void 0:x.has_more)||!1,p=d.isValidating&&!!d.data&&d.size>(((b=d.data)==null?void 0:b.length)||0),m=c.useCallback(async(E,j=[])=>{if(!e)throw new Error("projectId is required");const S=await n(`/ai/projects/${e}/board/items`,{method:"POST",body:E0(E,j)}),C=await V(S);return await d.mutate(),C},[e,n,d]),g=c.useCallback(async E=>{if(!e)throw new Error("projectId is required");const j=await n(`/ai/projects/${e}/board/items/${E}/archive`,{method:"POST",body:new URLSearchParams}),S=await V(j);return await d.mutate(),S},[e,n,d]),v=c.useCallback(async E=>{if(!e)throw new Error("projectId is required");const j=await n(`/ai/projects/${e}/board/items/${E}/unarchive`,{method:"POST",body:new URLSearchParams}),S=await V(j);return await d.mutate(),S},[e,n,d]);return{tasks:u,loading:!d.data&&!d.error,error:d.error||null,hasMore:f,loadingMore:p,loadMore:async()=>{!f||p||await d.setSize(E=>E+1)},createTask:m,archiveTask:g,unarchiveTask:v,refetch:async()=>{await d.mutate()}}}function _p(e,r,a=!0,n={}){var M,A;const{client:s}=je(),i=n.includeArchived?"with-archived":"active-only",h=n.includeArchived?"?include_archived=true":"",d=a&&e&&r?`wacht-ai-board-item:${e}:${r}:${i}`:null,u=a&&e&&r?`wacht-ai-board-item-workspace:${e}:${r}:${i}`:null,f=c.useCallback(async()=>{if(!e||!r)return null;const Z=await s(`/ai/projects/${e}/board/items/${r}${h}`);return(await V(Z)).data},[e,r,s,h]),p=Ae(d,f,{revalidateOnFocus:!1,refreshInterval:5e3}),m=ta((Z,P)=>{if(!a||!e||!r||Z>0&&P&&!P.has_more)return null;const L=Z===0||P==null?void 0:P.next_cursor;return["wacht-ai-board-item-assignments",e,r,i,L||""]},async([,Z,P,,L])=>{const F=new URLSearchParams({limit:"40"});n.includeArchived&&F.set("include_archived","true"),L&&F.set("cursor",String(L));const $=await s(`/ai/projects/${Z}/board/items/${P}/assignments?${F.toString()}`);return(await V($)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0,refreshInterval:5e3}),g=c.useCallback(async()=>{if(!e||!r)return{exists:!1,files:[]};const Z=await s(`/ai/projects/${e}/board/items/${r}/filesystem${h}`);return(await V(Z)).data},[e,r,s,h]),v=Ae(u,g,{revalidateOnFocus:!1,refreshInterval:5e3}),w=c.useCallback(async(Z,P=[])=>{if(!e||!r)throw new Error("projectId and itemId are required");const L=await s(`/ai/projects/${e}/board/items/${r}/update`,{method:"POST",body:E0(Z,P)}),F=await V(L);return await p.mutate(),await v.mutate(),F},[e,r,s,p,v]),x=c.useCallback(async()=>{if(!e||!r)throw new Error("projectId and itemId are required");const Z=await s(`/ai/projects/${e}/board/items/${r}/archive`,{method:"POST",body:new URLSearchParams}),P=await V(Z);return await p.mutate(),P},[e,r,s,p]),b=c.useCallback(async()=>{if(!e||!r)throw new Error("projectId and itemId are required");const Z=await s(`/ai/projects/${e}/board/items/${r}/unarchive`,{method:"POST",body:new URLSearchParams}),P=await V(Z);return await p.mutate(),P},[e,r,s,p]),E=c.useCallback(async()=>{if(!e||!r)throw new Error("projectId and itemId are required");const Z=await s(`/ai/projects/${e}/board/items/${r}/cancel`,{method:"POST",body:new URLSearchParams}),P=await V(Z);return await p.mutate(),await m.mutate(),P},[e,r,s,p,m]),j=c.useCallback(async Z=>{if(!e||!r)throw new Error("projectId and itemId are required");const P=await s(`/ai/projects/${e}/board/items/${r}/answer`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Z)}),L=await V(P);return await p.mutate(),L},[e,r,s,p]),S=c.useCallback(async Z=>{if(!e||!r)throw new Error("projectId and itemId are required");const P=await s(`/ai/projects/${e}/board/items/${r}/filesystem/file${k0(Z,n.includeArchived)}`);return await V(P)},[e,r,s,n.includeArchived]),C=c.useCallback(async Z=>{if(!e||!r)throw new Error("projectId and itemId are required");const P=await s(`/ai/projects/${e}/board/items/${r}/filesystem${C0(Z,n.includeArchived)}`);return await V(P)},[e,r,s,n.includeArchived]),_=c.useMemo(()=>{var Z;return((Z=m.data)==null?void 0:Z.flatMap(P=>P.data||[]))||[]},[m.data]),k=m.data&&((M=m.data[m.data.length-1])==null?void 0:M.has_more)||!1,y=m.isValidating&&!!m.data&&m.size>(((A=m.data)==null?void 0:A.length)||0);return{item:p.data||null,assignments:_,assignmentsHasMore:k,assignmentsLoadingMore:y,loadMoreAssignments:async()=>{!k||y||await m.setSize(Z=>Z+1)},taskWorkspace:v.data||{exists:!1,files:[]},taskWorkspaceLoading:!v.data&&!v.error,taskWorkspaceError:v.error||null,loading:!p.data&&!p.error||!m.data&&!m.error,error:p.error||m.error||null,updateItem:w,archiveItem:x,unarchiveItem:b,cancelItem:E,submitAnswer:j,getTaskWorkspaceFile:S,listTaskWorkspaceDirectory:C,refetch:async()=>{await p.mutate(),await m.mutate(),await v.mutate()},refetchAssignments:async()=>{await m.mutate()},refetchTaskWorkspace:async()=>{await v.mutate()}}}function kp(e,r=!0){var v;const{client:a}=je(),{data:n,error:s,mutate:i,isLoading:h,size:d,setSize:u,isValidating:f}=ta((w,x)=>{if(!r||!e||w>0&&(!x||!x.has_more))return null;const b=w===0||x==null?void 0:x.next_cursor;return["wacht-ai-thread-graphs",e,b]},async([,w,x])=>{const b=new URLSearchParams;b.set("limit","10"),x&&b.set("cursor",String(x));const E=await a(`/ai/threads/${w}/task-graphs?${b.toString()}`),S=(await V(E)).data||{data:[],limit:10,has_more:!1};return{...S,data:(S.data||[]).map(C=>({...C,nodes:Array.isArray(C.nodes)?C.nodes:[],edges:Array.isArray(C.edges)?C.edges:[],summary:C.summary||null}))}},{revalidateOnFocus:!1,refreshInterval:5e3,revalidateFirstPage:!0,revalidateAll:!1,persistSize:!0}),p=c.useMemo(()=>n?n.flatMap(w=>w.data||[]):[],[n]),m=n&&((v=n[n.length-1])==null?void 0:v.has_more)||!1,g=f&&!!n&&d>((n==null?void 0:n.length)||0);return{graphs:p,latestGraph:p[0]||null,has_more:m,loadingMore:g,loading:h,error:s,loadMore:async()=>{!m||g||await u(d+1)},refetch:async()=>{await i()}}}function Cp(e,r,a=!0){const{client:n}=je(),s=a&&e&&r?`wacht-ai-board-item-comments:${e}:${r}`:null,i=c.useCallback(async()=>{if(!e||!r)return[];const u=await n(`/ai/projects/${e}/board/items/${r}/comments`);return(await V(u)).data},[e,r,n]),h=Ae(s,i,{revalidateOnFocus:!1,refreshInterval:5e3}),d=c.useCallback(async u=>{if(!e||!r)throw new Error("projectId and itemId are required");const f=new URLSearchParams;f.set("body",u);const p=await n(`/ai/projects/${e}/board/items/${r}/comments`,{method:"POST",body:f}),m=await V(p);return await h.mutate(),m},[e,r,n,h]);return{comments:h.data||[],loading:!h.data&&!h.error,error:h.error||null,createComment:d,refetch:async()=>{await h.mutate()}}}function Sp(e=!0){const{client:r}=je(),a=e?"wacht-ai-actor-mcp-servers":null,n=c.useCallback(async()=>{const p=await r("/ai/mcp-servers");return(await V(p)).data},[r]),{data:s,error:i,mutate:h,isLoading:d}=Ae(a,n,{revalidateOnFocus:!1}),u=c.useCallback(async p=>{const m=await r(`/ai/mcp-servers/${p}/connect`,{method:"POST",body:new URLSearchParams});return V(m)},[r]),f=c.useCallback(async p=>{const m=await r(`/ai/mcp-servers/${p}/disconnect`,{method:"POST",body:new URLSearchParams}),g=await V(m);return await h(),g},[r,h]);return{servers:s??[],loading:d,error:i,connect:u,disconnect:f,refetch:async()=>{await h()}}}function Ep(e=!0){const{client:r}=je(),a=e?"wacht-ai-external-agent-connections":null,n=c.useCallback(async()=>{const p=await r("/ai/external-connections");return(await V(p)).data},[r]),{data:s,error:i,mutate:h,isLoading:d}=Ae(a,n,{revalidateOnFocus:!1}),u=c.useCallback(async(p,m,g)=>{const v=await r(`/ai/external-connections/${encodeURIComponent(p)}/${encodeURIComponent(m)}/connect`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({return_url:(g==null?void 0:g.returnUrl)??""})}),w=await V(v);return await h(),w.data},[r,h]),f=c.useCallback(async(p,m)=>{const g=await r(`/ai/external-connections/${encodeURIComponent(p)}/${encodeURIComponent(m)}`,{method:"DELETE"}),v=await V(g);return await h(),v.data},[r,h]);return{connections:s??[],loading:d,error:i,connect:u,disconnect:f,refetch:async()=>{await h()}}}function A0(e){const r=new URLSearchParams;return r.append("url",e.url),e.description&&r.append("description",e.description),e.subscribed_events&&e.subscribed_events.forEach(a=>r.append("subscribed_events",a)),e.subscriptions&&e.subscriptions.length>0&&r.append("subscriptions",JSON.stringify(e.subscriptions)),e.headers&&Object.entries(e.headers).forEach(([a,n])=>{r.append(`headers[${a}]`,n)}),e.rate_limit_config&&(r.append("rate_limit[duration_ms]",e.rate_limit_config.duration_ms.toString()),r.append("rate_limit[max_requests]",e.rate_limit_config.max_requests.toString())),r}function Ap(e){const r=new URLSearchParams;return e.url&&r.append("url",e.url),e.description!==void 0&&r.append("description",e.description||""),e.subscribed_events&&e.subscribed_events.forEach(a=>r.append("subscribed_events",a)),e.subscriptions&&e.subscriptions.length>0&&r.append("subscriptions",JSON.stringify(e.subscriptions)),e.headers&&Object.entries(e.headers).forEach(([a,n])=>{r.append(`headers[${a}]`,n)}),e.is_active!==void 0&&r.append("is_active",e.is_active.toString()),e.rate_limit_config&&(r.append("rate_limit[duration_ms]",e.rate_limit_config.duration_ms.toString()),r.append("rate_limit[max_requests]",e.rate_limit_config.max_requests.toString())),r}function zp(e){const r=new URLSearchParams;return r.append("event_name",e.event_name),r.append("payload",JSON.stringify(e.payload||{})),r}function $p(e){const r=new URLSearchParams;return(e.delivery_ids||[]).forEach(n=>r.append("delivery_ids",n)),e.start_date&&r.append("start_date",e.start_date),e.end_date&&r.append("end_date",e.end_date),e.status&&r.append("status",e.status),e.event_name&&r.append("event_name",e.event_name),e.endpoint_id&&r.append("endpoint_id",e.endpoint_id),e.idempotency_key&&r.append("idempotency_key",e.idempotency_key),r}const za={"Content-Type":"application/x-www-form-urlencoded"};async function At(e,r){const a=await V(e);if(!a||!("data"in a))throw new Error(r);return a}async function Mp(e){const r=await e("/webhook/session",{method:"GET"});if(!r.ok)throw r.status===401||r.status===403?new Error("NO_SESSION"):new Error("Failed to fetch webhook app session");return(await At(r,"Failed to fetch webhook app session")).data}async function Lp(e,r){if(!(await e(`/session/ticket/exchange?ticket=${encodeURIComponent(r)}`,{method:"GET"})).ok)throw new Error("Failed to exchange ticket")}async function Rp(e,r){const a=A0(r),n=await e("/webhook/endpoints",{method:"POST",headers:za,body:a.toString()});return At(n,"Failed to create webhook endpoint")}async function Pp(e,r,a){const n=Ap(a),s=await e(`/webhook/endpoints/${r}`,{method:"PUT",headers:za,body:n.toString()});return At(s,"Failed to update webhook endpoint")}async function Tp(e,r){const a=await e(`/webhook/endpoints/${r}`,{method:"DELETE"});return At(a,"Failed to delete webhook endpoint")}async function Fp(e,r,a){const n=zp(a),s=await e(`/webhook/endpoints/${r}/test`,{method:"POST",headers:za,body:n.toString()});return At(s,"Failed to test webhook endpoint")}async function Zp(e){const r=await e("/webhook/rotate-secret",{method:"POST"});return At(r,"Failed to rotate signing secret")}async function Ip(e,r){const a=new URLSearchParams;for(const s of r.failure_notification_emails)a.append("failure_notification_emails",s);const n=await e("/webhook/settings",{method:"PUT",headers:za,body:a.toString()});return At(n,"Failed to update webhook settings")}async function Op(e,r){const a=$p(r),n=await e("/webhook/deliveries/replay",{method:"POST",headers:za,body:a.toString()});return At(n,"Failed to replay webhook delivery")}async function Hp(e,r){const a=await e(`/webhook/deliveries/${r}`,{method:"GET"});return At(a,"Failed to fetch delivery details")}async function Vp(e,{taskId:r}){const a=await e(`/webhook/deliveries/replay/${r}`,{method:"GET"});return At(a,"Failed to fetch replay task status")}async function Dp(e,r){const a=(r==null?void 0:r.limit)??50,n=(r==null?void 0:r.offset)??0,s=await e(`/webhook/deliveries/replay?limit=${a}&offset=${n}`,{method:"GET"});return At(s,"Failed to fetch replay tasks")}async function Np(e,{taskId:r}){const a=await e(`/webhook/deliveries/replay/${r}/cancel`,{method:"POST"});return At(a,"Failed to cancel replay task")}function Up(e){const{client:r}=je(),[a,n]=c.useState(!e),[s,i]=c.useState(!!e),[h,d]=c.useState(null),u=c.useRef(!1),f=c.useRef(!1),p=c.useRef(null),m=a,g=c.useCallback(async()=>Mp(r),[r]),{data:v,error:w,isLoading:x,mutate:b}=Ae(m?"wacht-webhook-app-session":null,g,{revalidateOnFocus:!1,shouldRetryOnError:!1});c.useEffect(()=>{if(!e||u.current||f.current||p.current===e)return;p.current=e,(async()=>{f.current=!0,i(!0);try{await Lp(r,e),u.current=!0,n(!0)}catch(O){d(O instanceof Error?O:new Error("Failed to exchange ticket"))}finally{i(!1),f.current=!1}})()},[e,r]);const E=c.useCallback(async z=>Rp(r,z),[r]),j=c.useCallback(async(z,O)=>Pp(r,z,O),[r]),S=c.useCallback(async z=>Tp(r,z),[r]),C=c.useCallback(async(z,O)=>Fp(r,z,O),[r]),_=c.useCallback(async()=>Zp(r),[r]),k=c.useCallback(async z=>Op(r,z),[r]),y=c.useCallback(async z=>Ip(r,z),[r]),M=c.useCallback(async z=>Hp(r,z),[r]),A=c.useCallback(async z=>Vp(r,z),[r]),Z=c.useCallback(async z=>Dp(r,z),[r]),P=c.useCallback(async z=>Np(r,z),[r]),L=!w||w.message!=="NO_SESSION",F=h||(w&&w.message!=="NO_SESSION"?w:null);return{hasSession:L,sessionLoading:s||m&&x,sessionError:F,sessionId:(v==null?void 0:v.session_id)||null,webhookApp:(v==null?void 0:v.webhook_app)||null,ticketExchanged:a,ticketLoading:s,refetch:async()=>{await b()},createEndpoint:E,updateEndpoint:j,deleteEndpoint:S,testEndpoint:C,rotateSecret:_,updateSettings:y,replayDelivery:k,fetchReplayTaskStatus:A,fetchReplayTasks:Z,cancelReplayTask:P,fetchDeliveryDetail:M}}function Bp(){const{client:e}=je(),r=c.useCallback(async()=>{const h=await e("/webhook/stats",{method:"GET"});return(await V(h)).data},[e]),{data:a,error:n,isLoading:s,mutate:i}=Ae("wacht-webhook-stats",r,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{stats:a||null,loading:s,error:n,refetch:()=>i()}}function Wp(){const{client:e}=je(),r=c.useCallback(async()=>{const h=await e("/webhook/endpoints",{method:"GET"});return(await V(h)).data},[e]),{data:a,error:n,isLoading:s,mutate:i}=Ae("wacht-webhook-endpoints",r,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{endpoints:a||[],loading:s,error:n,refetch:()=>i()}}function Gp(){const{client:e}=je();return{createEndpoint:c.useCallback(async a=>{const n=A0(a),s=await e("/webhook/endpoints",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n.toString()});return await V(s)},[e]),loading:!1,error:null}}function qp(){const{client:e}=je(),r=c.useCallback(async()=>{const h=await e("/webhook/events",{method:"GET"});return(await V(h)).data},[e]),{data:a,error:n,isLoading:s,mutate:i}=Ae("wacht-webhook-events",r,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{events:a||[],loading:s,error:n,refetch:()=>i()}}function Kp(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.endpoint_id&&d.set("endpoint_id",e.endpoint_id),e.status&&d.set("status",e.status),e.event_name&&d.set("event_name",e.event_name),e.limit&&d.set("limit",e.limit.toString()),e.cursor&&d.set("cursor",e.cursor);const u=await r(`/webhook/deliveries?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.endpoint_id,e.status,e.event_name,e.limit,e.cursor]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.endpoint_id&&d.set("endpoint_id",e.endpoint_id),e.status&&d.set("status",e.status),e.event_name&&d.set("event_name",e.event_name),e.limit&&d.set("limit",e.limit.toString()),e.cursor&&d.set("cursor",e.cursor),`wacht-webhook-deliveries?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{deliveries:(n==null?void 0:n.data)||[],has_more:(n==null?void 0:n.has_more)||!1,next_cursor:n==null?void 0:n.next_cursor,loading:i,error:s,refetch:()=>h()}}function Yp(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.endpoint_id&&d.set("endpoint_id",e.endpoint_id),e.fields&&e.fields.length>0&&d.set("fields",e.fields.join(","));const u=await r(`/webhook/analytics?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.start_date,e.end_date,e.endpoint_id,e.fields]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.endpoint_id&&d.set("endpoint_id",e.endpoint_id),e.fields&&e.fields.length>0&&d.set("fields",e.fields.join(",")),`wacht-webhook-analytics?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{analytics:n||null,loading:i,error:s,refetch:()=>h()}}function Qp(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.interval&&d.set("interval",e.interval),e.endpoint_id&&d.set("endpoint_id",e.endpoint_id);const u=await r(`/webhook/analytics/timeseries?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.start_date,e.end_date,e.interval,e.endpoint_id]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.interval&&d.set("interval",e.interval),e.endpoint_id&&d.set("endpoint_id",e.endpoint_id),`wacht-webhook-timeseries?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{timeseries:(n==null?void 0:n.data)||[],interval:(n==null?void 0:n.interval)||"hour",loading:i,error:s,refetch:()=>h()}}function Jp(e){const{client:r}=je(),[a,n]=c.useState(!e),[s,i]=c.useState(!!e),[h,d]=c.useState(null),u=c.useRef(!1),f=c.useRef(!1),p=c.useRef(null),m=a,g=c.useCallback(async()=>{const C=await r("/api-auth/session",{method:"GET"});if(!C.ok)throw C.status===401||C.status===403?new Error("NO_SESSION"):new Error("Failed to fetch API auth app session");return(await V(C)).data},[r]),{data:v,error:w,isLoading:x,mutate:b}=Ae(m?"wacht-api-auth-app-session":null,g,{revalidateOnFocus:!1,shouldRetryOnError:!1});c.useEffect(()=>{if(!e||u.current||f.current||p.current===e)return;p.current=e,(async()=>{f.current=!0,i(!0);try{(await r(`/session/ticket/exchange?ticket=${encodeURIComponent(e)}`,{method:"GET"})).ok?(u.current=!0,n(!0)):d(new Error("Failed to exchange ticket"))}catch(_){d(_ instanceof Error?_:new Error("Failed to exchange ticket"))}finally{i(!1),f.current=!1}})()},[e,r]);const E=!w||w.message!=="NO_SESSION",j=h||(w&&w.message!=="NO_SESSION"?w:null);return{hasSession:E,sessionLoading:s||m&&x,sessionError:j,sessionId:(v==null?void 0:v.session_id)||null,apiAuthApp:(v==null?void 0:v.api_auth_app)||null,ticketExchanged:a,ticketLoading:s,refetch:async()=>{await b()}}}function Xp(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const p=new URLSearchParams;e.status&&p.set("status",e.status);const m=await r(`/api-auth/keys${p.toString()?`?${p.toString()}`:""}`,{method:"GET"});return(await V(m)).data},[r,e.status]),{data:n,error:s,isLoading:i,mutate:h}=Ae(`wacht-api-auth-keys:${e.status||"all"}`,a,{revalidateOnFocus:!1,shouldRetryOnError:!1}),d=c.useCallback(async p=>{const m=new URLSearchParams;m.set("name",p.name),p.expires_at&&m.set("expires_at",p.expires_at);const g=await r("/api-auth/keys",{method:"POST",body:m}),v=await V(g);return await h(),v},[r,h]),u=c.useCallback(async p=>{const m=await r(`/api-auth/keys/${p.key_id}/rotate`,{method:"POST"}),g=await V(m);return await h(),g},[r,h]),f=c.useCallback(async p=>{const m=new URLSearchParams;p.reason&&m.set("reason",p.reason);const g=await r(`/api-auth/keys/${p.key_id}/revoke`,{method:"POST",body:m}),v=await V(g);return await h(),v},[r,h]);return{keys:n||[],createKey:d,rotateKey:u,revokeKey:f,loading:i,error:s,refetch:()=>h()}}function eh(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.limit&&d.set("limit",e.limit.toString()),e.cursor&&d.set("cursor",e.cursor),e.outcome&&d.set("outcome",e.outcome),e.key_id&&d.set("key_id",e.key_id),e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date);const u=await r(`/api-auth/audit/logs?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.limit,e.cursor,e.outcome,e.key_id,e.start_date,e.end_date]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.limit&&d.set("limit",e.limit.toString()),e.cursor&&d.set("cursor",e.cursor),e.outcome&&d.set("outcome",e.outcome),e.key_id&&d.set("key_id",e.key_id),e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),`wacht-api-auth-audit-logs?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{logs:(n==null?void 0:n.data)||[],limit:(n==null?void 0:n.limit)||e.limit||0,has_more:(n==null?void 0:n.has_more)||!1,next_cursor:n==null?void 0:n.next_cursor,loading:i,error:s,refetch:()=>h()}}function th(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.key_id&&d.set("key_id",e.key_id),e.include_top_keys&&d.set("include_top_keys","true"),e.include_top_paths&&d.set("include_top_paths","true"),e.include_blocked_reasons&&d.set("include_blocked_reasons","true"),e.include_rate_limits&&d.set("include_rate_limits","true"),e.top_limit&&d.set("top_limit",e.top_limit.toString());const u=await r(`/api-auth/audit/analytics?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.start_date,e.end_date,e.key_id,e.include_top_keys,e.include_top_paths,e.include_blocked_reasons,e.include_rate_limits,e.top_limit]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.key_id&&d.set("key_id",e.key_id),e.include_top_keys&&d.set("include_top_keys","true"),e.include_top_paths&&d.set("include_top_paths","true"),e.include_blocked_reasons&&d.set("include_blocked_reasons","true"),e.include_rate_limits&&d.set("include_rate_limits","true"),e.top_limit&&d.set("top_limit",e.top_limit.toString()),`wacht-api-auth-audit-analytics?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{analytics:n||null,loading:i,error:s,refetch:()=>h()}}function rh(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.interval&&d.set("interval",e.interval),e.key_id&&d.set("key_id",e.key_id);const u=await r(`/api-auth/audit/timeseries?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.start_date,e.end_date,e.interval,e.key_id]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.interval&&d.set("interval",e.interval),e.key_id&&d.set("key_id",e.key_id),`wacht-api-auth-audit-timeseries?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{timeseries:(n==null?void 0:n.data)||[],interval:(n==null?void 0:n.interval)||e.interval||"hour",loading:i,error:s,refetch:()=>h()}}const z0=()=>{const{client:e}=je(),[r,a]=c.useState(!1),[n,s]=c.useState(null),[i,h]=c.useState(null),d=c.useCallback(async f=>{a(!0),s(null),h(null);try{const p=new FormData;p.append("token",f);const m=await e("/organizations/invitations/accept",{method:"POST",body:p}),v=(await V(m)).data;return h(v),v.error_code&&s(v.message||"Failed to accept invitation"),v}catch(p){const m=p.message||"Failed to accept invitation";s(m);const g={error_code:"NETWORK_ERROR",message:m};return h(g),g}finally{a(!1)}},[e]),u=c.useCallback(()=>{s(null),h(null)},[]);return{acceptInvitation:d,invitationData:i,loading:r,error:n,reset:u}},ah=({children:e})=>{const{loading:r}=Se();return r?null:t.jsx(t.Fragment,{children:e})},nh=({children:e})=>{const{loading:r}=Se();return r?t.jsx(t.Fragment,{children:e}):null};function oh(e){var r=Object.create(null);return function(a){return r[a]===void 0&&(r[a]=e(a)),r[a]}}var sh=/^((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|fetchpriority|fetchPriority|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|popover|popoverTarget|popoverTargetAction|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)-.*))$/,ih=oh(function(e){return sh.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91}),et="-ms-",ya="-moz-",Ue="-webkit-",$0="comm",$n="rule",ws="decl",ch="@import",lh="@namespace",M0="@keyframes",dh="@layer",L0=Math.abs,ys=String.fromCharCode,Jo=Object.assign;function uh(e,r){return pt(e,0)^45?(((r<<2^pt(e,0))<<2^pt(e,1))<<2^pt(e,2))<<2^pt(e,3):0}function R0(e){return e.trim()}function Wt(e,r){return(e=r.exec(e))?e[0]:e}function Me(e,r,a){return e.replace(r,a)}function hn(e,r,a){return e.indexOf(r,a)}function pt(e,r){return e.charCodeAt(r)|0}function Lr(e,r,a){return e.slice(r,a)}function Mt(e){return e.length}function P0(e){return e.length}function va(e,r){return r.push(e),e}function ph(e,r){return e.map(r).join("")}function ui(e,r){return e.filter(function(a){return!Wt(a,r)})}var Mn=1,Qr=1,T0=0,Et=0,lt=0,ra="";function Ln(e,r,a,n,s,i,h,d){return{value:e,root:r,parent:a,type:n,props:s,children:i,line:Mn,column:Qr,length:h,return:"",siblings:d}}function tr(e,r){return Jo(Ln("",null,null,"",null,null,0,e.siblings),e,{length:-e.length},r)}function Or(e){for(;e.root;)e=tr(e.root,{children:[e]});va(e,e.siblings)}function hh(){return lt}function fh(){return lt=Et>0?pt(ra,--Et):0,Qr--,lt===10&&(Qr=1,Mn--),lt}function Pt(){return lt=Et<T0?pt(ra,Et++):0,Qr++,lt===10&&(Qr=1,Mn++),lt}function ar(){return pt(ra,Et)}function fn(){return Et}function Rn(e,r){return Lr(ra,e,r)}function Ca(e){switch(e){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 mh(e){return Mn=Qr=1,T0=Mt(ra=e),Et=0,[]}function gh(e){return ra="",e}function Xn(e){return R0(Rn(Et-1,Xo(e===91?e+2:e===40?e+1:e)))}function vh(e){for(;(lt=ar())&&lt<33;)Pt();return Ca(e)>2||Ca(lt)>3?"":" "}function xh(e,r){for(;--r&&Pt()&&!(lt<48||lt>102||lt>57&&lt<65||lt>70&&lt<97););return Rn(e,fn()+(r<6&&ar()==32&&Pt()==32))}function Xo(e){for(;Pt();)switch(lt){case e:return Et;case 34:case 39:e!==34&&e!==39&&Xo(lt);break;case 40:e===41&&Xo(e);break;case 92:Pt();break}return Et}function bh(e,r){for(;Pt()&&e+lt!==57;)if(e+lt===84&&ar()===47)break;return"/*"+Rn(r,Et-1)+"*"+ys(e===47?e:Pt())}function wh(e){for(;!Ca(ar());)Pt();return Rn(e,Et)}function yh(e){return gh(mn("",null,null,null,[""],e=mh(e),0,[0],e))}function mn(e,r,a,n,s,i,h,d,u){for(var f=0,p=0,m=h,g=0,v=0,w=0,x=1,b=1,E=1,j=0,S="",C=s,_=i,k=n,y=S;b;)switch(w=j,j=Pt()){case 40:if(w!=108&&pt(y,m-1)==58){hn(y+=Me(Xn(j),"&","&\f"),"&\f",L0(f?d[f-1]:0))!=-1&&(E=-1);break}case 34:case 39:case 91:y+=Xn(j);break;case 9:case 10:case 13:case 32:y+=vh(w);break;case 92:y+=xh(fn()-1,7);continue;case 47:switch(ar()){case 42:case 47:va(jh(bh(Pt(),fn()),r,a,u),u),(Ca(w||1)==5||Ca(ar()||1)==5)&&Mt(y)&&Lr(y,-1,void 0)!==" "&&(y+=" ");break;default:y+="/"}break;case 123*x:d[f++]=Mt(y)*E;case 125*x:case 59:case 0:switch(j){case 0:case 125:b=0;case 59+p:E==-1&&(y=Me(y,/\f/g,"")),v>0&&(Mt(y)-m||x===0&&w===47)&&va(v>32?hi(y+";",n,a,m-1,u):hi(Me(y," ","")+";",n,a,m-2,u),u);break;case 59:y+=";";default:if(va(k=pi(y,r,a,f,p,s,d,S,C=[],_=[],m,i),i),j===123)if(p===0)mn(y,r,k,k,C,i,m,d,_);else{switch(g){case 99:if(pt(y,3)===110)break;case 108:if(pt(y,2)===97)break;default:p=0;case 100:case 109:case 115:}p?mn(e,k,k,n&&va(pi(e,k,k,0,0,s,d,S,s,C=[],m,_),_),s,_,m,d,n?C:_):mn(y,k,k,k,[""],_,0,d,_)}}f=p=v=0,x=E=1,S=y="",m=h;break;case 58:m=1+Mt(y),v=w;default:if(x<1){if(j==123)--x;else if(j==125&&x++==0&&fh()==125)continue}switch(y+=ys(j),j*x){case 38:E=p>0?1:(y+="\f",-1);break;case 44:d[f++]=(Mt(y)-1)*E,E=1;break;case 64:ar()===45&&(y+=Xn(Pt())),g=ar(),p=m=Mt(S=y+=wh(fn())),j++;break;case 45:w===45&&Mt(y)==2&&(x=0)}}return i}function pi(e,r,a,n,s,i,h,d,u,f,p,m){for(var g=s-1,v=s===0?i:[""],w=P0(v),x=0,b=0,E=0;x<n;++x)for(var j=0,S=Lr(e,g+1,g=L0(b=h[x])),C=e;j<w;++j)(C=R0(b>0?v[j]+" "+S:Me(S,/&\f/g,v[j])))&&(u[E++]=C);return Ln(e,r,a,s===0?$n:d,u,f,p,m)}function jh(e,r,a,n){return Ln(e,r,a,$0,ys(hh()),Lr(e,2,-2),0,n)}function hi(e,r,a,n,s){return Ln(e,r,a,ws,Lr(e,0,n),Lr(e,n+1,-1),n,s)}function F0(e,r,a){switch(uh(e,r)){case 5103:return Ue+"print-"+e+e;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 4215:case 6389:case 5109:case 5365:case 5621:case 3829:case 6391:case 5879:case 5623:case 6135:case 4599:return Ue+e+e;case 4855:return Ue+e.replace("add","source-over").replace("substract","source-out").replace("intersect","source-in").replace("exclude","xor")+e;case 4789:return ya+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Ue+e+ya+e+et+e+e;case 5936:switch(pt(e,r+11)){case 114:return Ue+e+et+Me(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Ue+e+et+Me(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Ue+e+et+Me(e,/[svh]\w+-[tblr]{2}/,"lr")+e}case 6828:case 4268:case 2903:return Ue+e+et+e+e;case 6165:return Ue+e+et+"flex-"+e+e;case 5187:return Ue+e+Me(e,/(\w+).+(:[^]+)/,Ue+"box-$1$2"+et+"flex-$1$2")+e;case 5443:return Ue+e+et+"flex-item-"+Me(e,/flex-|-self/g,"")+(Wt(e,/flex-|baseline/)?"":et+"grid-row-"+Me(e,/flex-|-self/g,""))+e;case 4675:return Ue+e+et+"flex-line-pack"+Me(e,/align-content|flex-|-self/g,"")+e;case 5548:return Ue+e+et+Me(e,"shrink","negative")+e;case 5292:return Ue+e+et+Me(e,"basis","preferred-size")+e;case 6060:return Ue+"box-"+Me(e,"-grow","")+Ue+e+et+Me(e,"grow","positive")+e;case 4554:return Ue+Me(e,/([^-])(transform)/g,"$1"+Ue+"$2")+e;case 6187:return Me(Me(Me(e,/(zoom-|grab)/,Ue+"$1"),/(image-set)/,Ue+"$1"),e,"")+e;case 5495:case 3959:return Me(e,/(image-set\([^]*)/,Ue+"$1$`$1");case 4968:return Me(Me(e,/(.+:)(flex-)?(.*)/,Ue+"box-pack:$3"+et+"flex-pack:$3"),/space-between/,"justify")+Ue+e+e;case 4200:if(!Wt(e,/flex-|baseline/))return et+"grid-column-align"+Lr(e,r)+e;break;case 2592:case 3360:return et+Me(e,"template-","")+e;case 4384:case 3616:return a&&a.some(function(n,s){return r=s,Wt(n.props,/grid-\w+-end/)})?~hn(e+(a=a[r].value),"span",0)?e:et+Me(e,"-start","")+e+et+"grid-row-span:"+(~hn(a,"span",0)?Wt(a,/\d+/):+Wt(a,/\d+/)-+Wt(e,/\d+/))+";":et+Me(e,"-start","")+e;case 4896:case 4128:return a&&a.some(function(n){return Wt(n.props,/grid-\w+-start/)})?e:et+Me(Me(e,"-end","-span"),"span ","")+e;case 4095:case 3583:case 4068:case 2532:return Me(e,/(.+)-inline(.+)/,Ue+"$1$2")+e;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(Mt(e)-1-r>6)switch(pt(e,r+1)){case 109:if(pt(e,r+4)!==45)break;case 102:return Me(e,/(.+:)(.+)-([^]+)/,"$1"+Ue+"$2-$3$1"+ya+(pt(e,r+3)==108?"$3":"$2-$3"))+e;case 115:return~hn(e,"stretch",0)?F0(Me(e,"stretch","fill-available"),r,a)+e:e}break;case 5152:case 5920:return Me(e,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(n,s,i,h,d,u,f){return et+s+":"+i+f+(h?et+s+"-span:"+(d?u:+u-+i)+f:"")+e});case 4949:if(pt(e,r+6)===121)return Me(e,":",":"+Ue)+e;break;case 6444:switch(pt(e,pt(e,14)===45?18:11)){case 120:return Me(e,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+Ue+(pt(e,14)===45?"inline-":"")+"box$3$1"+Ue+"$2$3$1"+et+"$2box$3")+e;case 100:return Me(e,":",":"+et)+e}break;case 5719:case 2647:case 2135:case 3927:case 2391:return Me(e,"scroll-","scroll-snap-")+e}return e}function yn(e,r){for(var a="",n=0;n<e.length;n++)a+=r(e[n],n,e,r)||"";return a}function _h(e,r,a,n){switch(e.type){case dh:if(e.children.length)break;case ch:case lh:case ws:return e.return=e.return||e.value;case $0:return"";case M0:return e.return=e.value+"{"+yn(e.children,n)+"}";case $n:if(!Mt(e.value=e.props.join(",")))return""}return Mt(a=yn(e.children,n))?e.return=e.value+"{"+a+"}":""}function kh(e){var r=P0(e);return function(a,n,s,i){for(var h="",d=0;d<r;d++)h+=e[d](a,n,s,i)||"";return h}}function Ch(e){return function(r){r.root||(r=r.return)&&e(r)}}function Sh(e,r,a,n){if(e.length>-1&&!e.return)switch(e.type){case ws:e.return=F0(e.value,e.length,a);return;case M0:return yn([tr(e,{value:Me(e.value,"@","@"+Ue)})],n);case $n:if(e.length)return ph(a=e.props,function(s){switch(Wt(s,n=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":Or(tr(e,{props:[Me(s,/:(read-\w+)/,":"+ya+"$1")]})),Or(tr(e,{props:[s]})),Jo(e,{props:ui(a,n)});break;case"::placeholder":Or(tr(e,{props:[Me(s,/:(plac\w+)/,":"+Ue+"input-$1")]})),Or(tr(e,{props:[Me(s,/:(plac\w+)/,":"+ya+"$1")]})),Or(tr(e,{props:[Me(s,/:(plac\w+)/,et+"input-$1")]})),Or(tr(e,{props:[s]})),Jo(e,{props:ui(a,n)});break}return""})}}var eo,to;const Rr=typeof process<"u"&&process.env!==void 0&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",Z0="active",I0="data-styled-version",Pn="6.4.1",js=`/*!sc*/
18
+ */var Xs;function Du(){return Xs||(Xs=1,process.env.NODE_ENV!=="production"&&(function(){function e(v,w){return v===w&&(v!==0||1/v===1/w)||v!==v&&w!==w}function r(v,w){p||s.startTransition===void 0||(p=!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 x=w();if(!m){var b=w();i(x,b)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),m=!0)}b=h({inst:{value:x,getSnapshot:w}});var E=b[0].inst,j=b[1];return u(function(){E.value=x,E.getSnapshot=w,a(E)&&j({inst:E})},[v,x,w]),d(function(){return a(E)&&j({inst:E}),v(function(){a(E)&&j({inst:E})})},[v]),f(x),x}function a(v){var w=v.getSnapshot;v=v.value;try{var x=w();return!i(v,x)}catch{return!0}}function n(v,w){return w()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var s=c,i=typeof Object.is=="function"?Object.is:e,h=s.useState,d=s.useEffect,u=s.useLayoutEffect,f=s.useDebugValue,p=!1,m=!1,g=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?n:r;Nn.useSyncExternalStore=s.useSyncExternalStore!==void 0?s.useSyncExternalStore:g,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()),Nn}var ei;function Nu(){return ei||(ei=1,process.env.NODE_ENV==="production"?Ta.exports=Vu():Ta.exports=Du()),Ta.exports}var Ho=Nu();const s0=0,i0=1,c0=2,ti=3;var ri=Object.prototype.hasOwnProperty;function Vo(e,r){var a,n;if(e===r)return!0;if(e&&r&&(a=e.constructor)===r.constructor){if(a===Date)return e.getTime()===r.getTime();if(a===RegExp)return e.toString()===r.toString();if(a===Array){if((n=e.length)===r.length)for(;n--&&Vo(e[n],r[n]););return n===-1}if(!a||typeof e=="object"){n=0;for(a in e)if(ri.call(e,a)&&++n&&!ri.call(r,a)||!(a in r)||!Vo(e[a],r[a]))return!1;return Object.keys(r).length===n}}return e!==e&&r!==r}const Zt=new WeakMap,qt=()=>{},ht=qt(),Do=Object,Ce=e=>e===ht,Lt=e=>typeof e=="function",or=(e,r)=>({...e,...r}),l0=e=>Lt(e.then),Un={},Fa={},xs="undefined",Aa=typeof window!=xs,No=typeof document!=xs,Uu=Aa&&"Deno"in window,Bu=()=>Aa&&typeof window.requestAnimationFrame!=xs,rr=(e,r)=>{const a=Zt.get(e);return[()=>!Ce(r)&&e.get(r)||Un,n=>{if(!Ce(r)){const s=e.get(r);r in Fa||(Fa[r]=s),a[5](r,or(s,n),s||Un)}},a[6],()=>!Ce(r)&&r in Fa?Fa[r]:!Ce(r)&&e.get(r)||Un]};let Uo=!0;const Wu=()=>Uo,[Bo,Wo]=Aa&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[qt,qt],Gu=()=>{const e=No&&document.visibilityState;return Ce(e)||e!=="hidden"},qu=e=>(No&&document.addEventListener("visibilitychange",e),Bo("focus",e),()=>{No&&document.removeEventListener("visibilitychange",e),Wo("focus",e)}),Ku=e=>{const r=()=>{Uo=!0,e()},a=()=>{Uo=!1};return Bo("online",r),Bo("offline",a),()=>{Wo("online",r),Wo("offline",a)}},Yu={isOnline:Wu,isVisible:Gu},Qu={initFocus:qu,initReconnect:Ku},ai=!c.useId,Kr=!Aa||Uu,Ju=e=>Bu()?window.requestAnimationFrame(e):setTimeout(e,1),pn=Kr?c.useEffect:c.useLayoutEffect,Bn=typeof navigator<"u"&&navigator.connection,ni=!Kr&&Bn&&(["slow-2g","2g"].includes(Bn.effectiveType)||Bn.saveData),Za=new WeakMap,Xu=e=>Do.prototype.toString.call(e),Wn=(e,r)=>e===`[object ${r}]`;let e2=0;const Go=e=>{const r=typeof e,a=Xu(e),n=Wn(a,"Date"),s=Wn(a,"RegExp"),i=Wn(a,"Object");let h,d;if(Do(e)===e&&!n&&!s){if(h=Za.get(e),h)return h;if(h=++e2+"~",Za.set(e,h),Array.isArray(e)){for(h="@",d=0;d<e.length;d++)h+=Go(e[d])+",";Za.set(e,h)}if(i){h="#";const u=Do.keys(e).sort();for(;!Ce(d=u.pop());)Ce(e[d])||(h+=d+":"+Go(e[d])+",");Za.set(e,h)}}else h=n?e.toJSON():r=="symbol"?e.toString():r=="string"?JSON.stringify(e):""+e;return h},ka=e=>{if(Lt(e))try{e=e()}catch{e=""}const r=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?Go(e):"",[e,r]};let t2=0;const qo=()=>++t2;async function d0(...e){const[r,a,n,s]=e,i=or({populateCache:!0,throwOnError:!0},typeof s=="boolean"?{revalidate:s}:s||{});let h=i.populateCache;const d=i.rollbackOnError;let u=i.optimisticData;const f=g=>typeof d=="function"?d(g):d!==!1,p=i.throwOnError;if(Lt(a)){const g=a,v=[],w=r.keys();for(const x of w)!/^\$(inf|sub)\$/.test(x)&&g(r.get(x)._k)&&v.push(x);return Promise.all(v.map(m))}return m(a);async function m(g){const[v]=ka(g);if(!v)return;const[w,x]=rr(r,v),[b,E,j,S]=Zt.get(r),C=()=>{const $=b[v];return(Lt(i.revalidate)?i.revalidate(w().data,g):i.revalidate!==!1)&&(delete j[v],delete S[v],$&&$[0])?$[0](c0).then(()=>w().data):w().data};if(e.length<3)return C();let _=n,k,y=!1;const M=qo();E[v]=[M,0];const A=!Ce(u),Z=w(),P=Z.data,L=Z._c,F=Ce(L)?P:L;if(A&&(u=Lt(u)?u(F,P):u,x({data:u,_c:F})),Lt(_))try{_=_(F)}catch($){k=$,y=!0}if(_&&l0(_))if(_=await _.catch($=>{k=$,y=!0}),M!==E[v][0]){if(y)throw k;return _}else y&&A&&f(k)&&(h=!0,x({data:F,_c:ht}));if(h&&!y)if(Lt(h)){const $=h(_,F);x({data:$,error:ht,_c:ht})}else x({data:_,error:ht,_c:ht});if(E[v][1]=qo(),Promise.resolve(C()).then(()=>{x({_c:ht})}),y){if(p)throw k;return}return _}}const oi=(e,r)=>{for(const a in e)e[a][0]&&e[a][0](r)},r2=(e,r)=>{if(!Zt.has(e)){const a=or(Qu,r),n=Object.create(null),s=d0.bind(ht,e);let i=qt;const h=Object.create(null),d=(p,m)=>{const g=h[p]||[];return h[p]=g,g.push(m),()=>g.splice(g.indexOf(m),1)},u=(p,m,g)=>{e.set(p,m);const v=h[p];if(v)for(const w of v)w(m,g)},f=()=>{if(!Zt.has(e)&&(Zt.set(e,[n,Object.create(null),Object.create(null),Object.create(null),s,u,d]),!Kr)){const p=a.initFocus(setTimeout.bind(ht,oi.bind(ht,n,s0))),m=a.initReconnect(setTimeout.bind(ht,oi.bind(ht,n,i0)));i=()=>{p&&p(),m&&m(),Zt.delete(e)}}};return f(),[e,s,f,i]}return[e,Zt.get(e)[4]]},a2=(e,r,a,n,s)=>{const i=a.errorRetryCount,h=s.retryCount,d=~~((Math.random()+.5)*(1<<(h<8?h:8)))*a.errorRetryInterval;!Ce(i)&&h>i||setTimeout(n,d,s)},n2=Vo,[bs,Gr]=r2(new Map),o2=or({onLoadingSlow:qt,onSuccess:qt,onError:qt,onErrorRetry:a2,onDiscarded:qt,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:ni?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:ni?5e3:3e3,compare:n2,isPaused:()=>!1,cache:bs,mutate:Gr,fallback:{}},Yu),s2=(e,r)=>{const a=or(e,r);if(r){const{use:n,fallback:s}=e,{use:i,fallback:h}=r;n&&i&&(a.use=n.concat(i)),s&&h&&(a.fallback=or(s,h))}return a},i2=c.createContext({}),u0="$inf$",p0=Aa&&window.__SWR_DEVTOOLS_USE__,c2=p0?window.__SWR_DEVTOOLS_USE__:[],l2=()=>{p0&&(window.__SWR_DEVTOOLS_REACT__=c)},h0=e=>Lt(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],f0=()=>{const e=c.useContext(i2);return c.useMemo(()=>or(o2,e),[e])},d2=e=>(r,a,n)=>e(r,a&&((...i)=>{const[h]=ka(r),[,,,d]=Zt.get(bs);if(h.startsWith(u0))return a(...i);const u=d[h];return Ce(u)?a(...i):(delete d[h],u)}),n),u2=c2.concat(d2),p2=e=>function(...a){const n=f0(),[s,i,h]=h0(a),d=s2(n,h);let u=e;const{use:f}=d,p=(f||[]).concat(u2);for(let m=p.length;m--;)u=p[m](u);return u(s,i||d.fetcher||null,d)},h2=(e,r,a)=>{const n=r[e]||(r[e]=[]);return n.push(a),()=>{const s=n.indexOf(a);s>=0&&(n[s]=n[n.length-1],n.pop())}},f2=(e,r)=>(...a)=>{const[n,s,i]=h0(a),h=(i.use||[]).concat(r);return e(n,s,{...i,use:h})};l2();const Gn=c.use||(e=>{switch(e.status){case"pending":throw e;case"fulfilled":return e.value;case"rejected":throw e.reason;default:throw e.status="pending",e.then(r=>{e.status="fulfilled",e.value=r},r=>{e.status="rejected",e.reason=r}),e}}),qn={dedupe:!0},si=Promise.resolve(ht),m2=()=>qt,g2=(e,r,a)=>{const{cache:n,compare:s,suspense:i,fallbackData:h,revalidateOnMount:d,revalidateIfStale:u,refreshInterval:f,refreshWhenHidden:p,refreshWhenOffline:m,keepPreviousData:g,strictServerPrefetchWarning:v}=a,[w,x,b,E]=Zt.get(n),[j,S]=ka(e),C=c.useRef(!1),_=c.useRef(!1),k=c.useRef(j),y=c.useRef(r),M=c.useRef(a),A=()=>M.current,Z=()=>A().isVisible()&&A().isOnline(),[P,L,F,$]=rr(n,j),z=c.useRef({}).current,O=Ce(h)?Ce(a.fallback)?ht:a.fallback[j]:h,T=(Q,le)=>{for(const se in z){const G=se;if(G==="data"){if(!s(Q[G],le[G])&&(!Ce(Q[G])||!s(ce,le[G])))return!1}else if(le[G]!==Q[G])return!1}return!0},H=!C.current,I=c.useMemo(()=>{const Q=P(),le=$(),se=Y=>{const de=or(Y);return delete de._k,(()=>{if(!j||!r||A().isPaused())return!1;if(H&&!Ce(d))return d;const Ke=Ce(O)?de.data:O;return Ce(Ke)||u})()?{isValidating:!0,isLoading:!0,...de}:de},G=se(Q),he=Q===le?G:se(le);let pe=G;return[()=>{const Y=se(P());return T(Y,pe)?(pe.data=Y.data,pe.isLoading=Y.isLoading,pe.isValidating=Y.isValidating,pe.error=Y.error,pe):(pe=Y,Y)},()=>he]},[n,j]),R=Ho.useSyncExternalStore(c.useCallback(Q=>F(j,(le,se)=>{T(se,le)||Q()}),[n,j]),I[0],I[1]),W=w[j]&&w[j].length>0,D=R.data,B=Ce(D)?O&&l0(O)?Gn(O):O:D,K=R.error,X=c.useRef(B),ce=g?Ce(D)?Ce(X.current)?B:X.current:D:B,fe=j&&Ce(B),te=c.useRef(null);!Kr&&Ho.useSyncExternalStore(m2,()=>(te.current=!1,te),()=>(te.current=!0,te));const xe=te.current;v&&xe&&!i&&fe&&console.warn(`Missing pre-initiated data for serialized key "${j}" during server-side rendering. Data fetching should be initiated on the server and provided to SWR via fallback data. You can set "strictServerPrefetchWarning: false" to disable this warning.`);const re=!j||!r||A().isPaused()||W&&!Ce(K)?!1:H&&!Ce(d)?d:i?Ce(B)?!1:u:Ce(B)||u,U=H&&re,Je=Ce(R.isValidating)?U:R.isValidating,Pe=Ce(R.isLoading)?U:R.isLoading,De=c.useCallback(async Q=>{const le=y.current;if(!j||!le||_.current||A().isPaused())return!1;let se,G,he=!0;const pe=Q||{},Y=!b[j]||!pe.dedupe,de=()=>ai?!_.current&&j===k.current&&C.current:j===k.current,We={isValidating:!1,isLoading:!1},Ke=()=>{L(We)},Ge=()=>{const J=b[j];J&&J[1]===G&&delete b[j]},it={isValidating:!0};Ce(P().data)&&(it.isLoading=!0);try{if(Y&&(L(it),a.loadingTimeout&&Ce(P().data)&&setTimeout(()=>{he&&de()&&A().onLoadingSlow(j,a)},a.loadingTimeout),b[j]=[le(S),qo()]),[se,G]=b[j],se=await se,Y&&setTimeout(Ge,a.dedupingInterval),!b[j]||b[j][1]!==G)return Y&&de()&&A().onDiscarded(j),!1;We.error=ht;const J=x[j];if(!Ce(J)&&(G<=J[0]||G<=J[1]||J[1]===0))return Ke(),Y&&de()&&A().onDiscarded(j),!1;const ae=P().data;We.data=s(ae,se)?ae:se,Y&&de()&&A().onSuccess(se,j,a)}catch(J){Ge();const ae=A(),{shouldRetryOnError:me}=ae;ae.isPaused()||(We.error=J,Y&&de()&&(ae.onError(J,j,ae),(me===!0||Lt(me)&&me(J))&&(!A().revalidateOnFocus||!A().revalidateOnReconnect||Z())&&ae.onErrorRetry(J,j,ae,He=>{const ze=w[j];ze&&ze[0]&&ze[0](ti,He)},{retryCount:(pe.retryCount||0)+1,dedupe:!0})))}return he=!1,Ke(),!0},[j,n]),Be=c.useCallback((...Q)=>d0(n,k.current,...Q),[]);if(pn(()=>{y.current=r,M.current=a,Ce(D)||(X.current=D)}),pn(()=>{if(!j)return;const Q=De.bind(ht,qn);let le=0;A().revalidateOnFocus&&(le=Date.now()+A().focusThrottleInterval);const G=h2(j,w,(he,pe={})=>{if(he==s0){const Y=Date.now();A().revalidateOnFocus&&Y>le&&Z()&&(le=Y+A().focusThrottleInterval,Q())}else if(he==i0)A().revalidateOnReconnect&&Z()&&Q();else{if(he==c0)return De();if(he==ti)return De(pe)}});return _.current=!1,k.current=j,C.current=!0,L({_k:S}),re&&(b[j]||(Ce(B)||Kr?Q():Ju(Q))),()=>{_.current=!0,G()}},[j]),pn(()=>{let Q;function le(){const G=Lt(f)?f(P().data):f;G&&Q!==-1&&(Q=setTimeout(se,G))}function se(){!P().error&&(p||A().isVisible())&&(m||A().isOnline())?De(qn).then(le):le()}return le(),()=>{Q&&(clearTimeout(Q),Q=-1)}},[f,p,m,j]),c.useDebugValue(ce),i){if(!ai&&Kr&&fe)throw new Error("Fallback data is required when using Suspense in SSR.");fe&&(y.current=r,M.current=a,_.current=!1);const Q=E[j],le=!Ce(Q)&&fe?Be(Q):si;if(Gn(le),!Ce(K)&&fe)throw K;const se=fe?De(qn):si;!Ce(ce)&&fe&&(se.status="fulfilled",se.value=!0),Gn(se)}return{mutate:Be,get data(){return z.data=!0,ce},get error(){return z.error=!0,K},get isValidating(){return z.isValidating=!0,Je},get isLoading(){return z.isLoading=!0,Pe}}},Ae=p2(g2),jt=()=>{const{adapter:e,deployment:r}=Se(),a=e.useNavigate(),n=(u,f)=>{a?a(u,f):window.location.href=u},s=u=>{if(u)return u;const p=new URLSearchParams(window.location.search).get("redirect_uri");return p||window.location.href};return{navigate:n,navigateToSignIn:u=>{if(!r)return;const f=s(u),p=new URLSearchParams;p.set("redirect_uri",f),(r==null?void 0:r.mode)==="staging"&&p.set("__dev_session__",ft(r.backend_host)??""),n(`${r.ui_settings.sign_in_page_url}?${p.toString()}`,{replace:!0})},navigateToAccountSelection:u=>{if(!r)return;const f=s(u),p=new URLSearchParams;p.set("redirect_uri",f),(r==null?void 0:r.mode)==="staging"&&p.set("__dev_session__",ft(r.backend_host)??""),n(`https://${r.frontend_host}?${p.toString()}`,{replace:!0})},navigateToSignUp:u=>{if(!r)return;const f=s(u),p=new URLSearchParams;p.set("redirect_uri",f),(r==null?void 0:r.mode)==="staging"&&p.set("__dev_session__",ft(r.backend_host)??""),n(`${r.ui_settings.sign_up_page_url}?${p.toString()}`,{replace:!0})}}};async function v2(e){const r=await e("/session",{method:"GET"});return(await V(r)).data}async function x2(e,r){const a=await e(`/session/switch-sign-in?sign_in_id=${r}`,{method:"POST"});return V(a)}async function b2(e,r){const a=r?`/session/sign-out?sign_in_id=${r}`:"/session/sign-out",n=await e(a,{method:"POST"});return V(n)}async function w2(e,r){const a=await e(`/session/switch-organization${r?`?organization_id=${r}`:""}`,{method:"POST"});return V(a)}async function y2(e,r){const a=await e(`/session/switch-workspace?workspace_id=${r}`,{method:"POST"});return V(a)}async function j2(e,r){const a=await e(`/session/ticket/exchange?ticket=${encodeURIComponent(r)}`,{method:"GET"});return V(a)}const Ko=new Map,ga=new Map;function Rt(){Ko.clear(),ga.clear()}async function _2(e,r){const a=await e(`/session/token${r?`?template=${r}`:""}`);return V(a)}function st(){const{client:e,loading:r}=je(),{deployment:a}=Se(),{navigate:n}=jt(),{cache:s}=f0(),{data:i,error:h,mutate:d,isLoading:u}=Ae(r?null:"/session",()=>v2(e),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),f=c.useCallback(async()=>{await d(void 0,{revalidate:!0})},[d]),p=c.useCallback(async(m="default")=>{if(!i)throw new Error("no session");const g=Ko.get(m);if(g&&g.expires>Date.now())return(g==null?void 0:g.token)||"";ga.get(m)||ga.set(m,_2(e,m));const v=await ga.get(m);return ga.delete(m),Ko.set(m,v.data),v.data.token},[e,i==null?void 0:i.active_signin]);return r||!i||u?{loading:!0,error:h,session:null,switchSignIn:null,switchOrganization:null,switchWorkspace:null,exchangeTicket:null,signOut:null,getToken:null,refetch:f}:{loading:u,error:h,session:i,switchSignIn:async m=>{await x2(e,m),Rt(),await Gr("/me/organization-memberships",void 0,{revalidate:!1}),await Gr("/me/workspace-memberships",void 0,{revalidate:!1}),await d(void 0,{revalidate:!0}),await Gr("/me/organization-memberships"),await Gr("/me/workspace-memberships")},signOut:async m=>{await b2(e,m);const g=["/session","/user","/me/signins","/me/organization-memberships","/me/workspace-memberships","wacht-notifications:scope-unread"],v=["wacht-notifications:","wacht-agent-sessions:","wacht-agent-contexts:","wacht-org-domains:","wacht-api-workspaces:","wacht-api-organizations:"];if(s instanceof Map){const w=Array.from(s.keys());for(const x of w){let b=!1;(g.includes(x)||typeof x=="string"&&v.some(E=>x.startsWith(E)))&&(b=!0),b&&s.delete(x)}}Rt(),await d(void 0,{revalidate:!0}),a!=null&&a.ui_settings&&(m&&a.ui_settings.after_sign_out_one_page_url?n(a.ui_settings.after_sign_out_one_page_url):!m&&a.ui_settings.after_sign_out_all_page_url&&n(a.ui_settings.after_sign_out_all_page_url))},switchOrganization:async m=>{await w2(e,m),Rt(),await d(void 0,{revalidate:!0})},switchWorkspace:async m=>{await y2(e,m),Rt(),await d(void 0,{revalidate:!0})},exchangeTicket:async m=>{await j2(e,m),Rt(),await d(void 0,{revalidate:!0})},getToken:p,refetch:f}}const Ot=()=>{const{organizationMemberships:e,refetch:r,loading:a}=Qt(),{client:n}=je(),{refetch:s}=st(),i=c.useCallback(async H=>(await V(await n(`/organizations/${H.id}/roles`,{method:"GET"}))).data,[n]),h=c.useCallback(async(H,I)=>{const R=new URLSearchParams;return I&&(R.set("page",I.page.toString()),R.set("limit",I.limit.toString()),I.search&&R.set("search",I.search)),(await V(await n(`/organizations/${H.id}/members?${R.toString()}`,{method:"GET"}))).data},[n]),d=c.useCallback(async H=>(await V(await n(`/organizations/${H.id}/invitations`,{method:"GET"}))).data,[n]),u=c.useCallback(async H=>(await V(await n(`/organizations/${H.id}/domains`,{method:"GET"}))).data,[n]),f=c.useCallback(async(H,I)=>{await n(`/organizations/${H.id}/members/${I.id}/remove`,{method:"POST"})},[n]),p=c.useCallback(async H=>{const I=new FormData;I.append("name",H.name),H.image&&I.append("image",H.image),H.description&&I.append("description",H.description);const R=await V(await n("/organizations",{method:"POST",body:I}));return Rt(),await r(),await s(),R},[s,r,n]),m=c.useCallback(async(H,I)=>{const R=Object.entries(I).reduce((D,[B,K])=>(K!=null&&(Array.isArray(K)?K.forEach(X=>D.append(B,X)):D.append(B,K)),D),new FormData),W=await V(await n(`/organizations/${H.id}/update`,{method:"POST",body:R}));return await r(),W},[r,n]),g=c.useCallback(async(H,I)=>{await n(`/organizations/${H.id}/roles/${I.id}/remove`,{method:"POST"})},[n]),v=c.useCallback(async(H,I)=>{const R=new FormData;return R.append("domain",I.fqdn),await V(await n(`/organizations/${H.id}/domains`,{method:"POST",body:R}))},[n]),w=c.useCallback(async(H,I)=>await V(await n(`/organizations/${H.id}/domains/${I.id}/verify`,{method:"POST"})),[n]),x=c.useCallback(async(H,I)=>await V(await n(`/organizations/${H.id}/domains/${I.id}/delete`,{method:"POST"})),[n]),b=c.useCallback(async H=>(await V(await n(`/organizations/${H.id}/enterprise-connections`,{method:"GET"}))).data,[n]),E=c.useCallback(async(H,I)=>{const R=new FormData;return R.append("protocol",I.protocol),I.domain_id&&R.append("domain_id",I.domain_id),I.idp_entity_id&&R.append("idp_entity_id",I.idp_entity_id),I.idp_sso_url&&R.append("idp_sso_url",I.idp_sso_url),I.idp_certificate&&R.append("idp_certificate",I.idp_certificate),I.oidc_client_id&&R.append("oidc_client_id",I.oidc_client_id),I.oidc_client_secret&&R.append("oidc_client_secret",I.oidc_client_secret),I.oidc_issuer_url&&R.append("oidc_issuer_url",I.oidc_issuer_url),I.oidc_scopes&&R.append("oidc_scopes",I.oidc_scopes),I.jit_enabled!==void 0&&R.append("jit_enabled",String(I.jit_enabled)),I.attribute_mapping&&R.append("attribute_mapping",JSON.stringify(I.attribute_mapping)),(await V(await n(`/organizations/${H.id}/enterprise-connections`,{method:"POST",body:R}))).data},[n]),j=c.useCallback(async(H,I,R)=>{const W=new FormData;return R.domain_id&&W.append("domain_id",R.domain_id),R.idp_entity_id&&W.append("idp_entity_id",R.idp_entity_id),R.idp_sso_url&&W.append("idp_sso_url",R.idp_sso_url),R.idp_certificate&&W.append("idp_certificate",R.idp_certificate),R.oidc_client_id&&W.append("oidc_client_id",R.oidc_client_id),R.oidc_client_secret&&W.append("oidc_client_secret",R.oidc_client_secret),R.oidc_issuer_url&&W.append("oidc_issuer_url",R.oidc_issuer_url),R.oidc_scopes&&W.append("oidc_scopes",R.oidc_scopes),R.attribute_mapping&&W.append("attribute_mapping",JSON.stringify(R.attribute_mapping)),(await V(await n(`/organizations/${H.id}/enterprise-connections/${I}/update`,{method:"POST",body:W}))).data},[n]),S=c.useCallback(async(H,I)=>{await n(`/organizations/${H.id}/enterprise-connections/${I}/delete`,{method:"POST"})},[n]),C=c.useCallback(async(H,I)=>{const R=new FormData;return R.append("protocol",I.protocol),I.idp_entity_id&&R.append("idp_entity_id",I.idp_entity_id),I.idp_sso_url&&R.append("idp_sso_url",I.idp_sso_url),I.idp_certificate&&R.append("idp_certificate",I.idp_certificate),I.oidc_issuer_url&&R.append("oidc_issuer_url",I.oidc_issuer_url),I.oidc_client_id&&R.append("oidc_client_id",I.oidc_client_id),I.oidc_client_secret&&R.append("oidc_client_secret",I.oidc_client_secret),(await V(await n(`/organizations/${H.id}/enterprise-connections/test`,{method:"POST",body:R}))).data},[n]),_=c.useCallback(async(H,I)=>(await V(await n(`/organizations/${H.id}/enterprise-connections/${I}/test`,{method:"POST"}))).data,[n]),k=c.useCallback(async(H,I)=>(await V(await n(`/organizations/${H.id}/enterprise-connections/${I}/scim/token`,{method:"POST"}))).data,[n]),y=c.useCallback(async(H,I)=>(await V(await n(`/organizations/${H.id}/enterprise-connections/${I}/scim/token`,{method:"GET"}))).data,[n]),M=c.useCallback(async(H,I)=>{await n(`/organizations/${H.id}/enterprise-connections/${I}/scim/token/revoke`,{method:"POST"})},[n]),A=c.useCallback(async(H,I)=>{const R=new FormData;return R.append("name",I.name),I.permissions&&I.permissions.forEach((D,B)=>{R.append(`permissions[${B}]`,D)}),await V(await n(`/organizations/${H.id}/roles`,{method:"POST",body:R}))},[n]),Z=c.useCallback(async H=>(await V(await n(`/organizations/${H.id}/leave`,{method:"POST"}))).data,[n]),P=c.useCallback(async H=>{const I=await V(await n(`/organizations/${H.id}/delete`,{method:"POST"}));return Rt(),await r(),await s(),I.data},[n,r,s]),L=c.useCallback(async(H,I,R)=>(await V(await n(`/organizations/${H.id}/members/${I.id}/roles/${R.id}/add`,{method:"POST"}))).data,[n]),F=c.useCallback(async(H,I,R)=>(await V(await n(`/organizations/${H.id}/members/${I.id}/roles/${R.id}/remove`,{method:"POST"}))).data,[n]),$=c.useCallback(async(H,I)=>{var D,B;const R=new FormData;return R.append("email",I.email),R.append("role_id",I.organizationRole.id),(D=I.workspace)!=null&&D.id&&R.append("workspace_id",I.workspace.id),(B=I.workspaceRole)!=null&&B.id&&R.append("workspace_role_id",I.workspaceRole.id),(await V(await n(`/organizations/${H.id}/invitations`,{method:"POST",body:R}))).data},[n]),z=c.useCallback(async(H,I)=>(await V(await n(`/organizations/${H.id}/invitations/${I.id}/discard`,{method:"POST"}))).data,[n]),O=c.useCallback(async(H,I)=>(await V(await n(`/organizations/${H.id}/invitations/${I.id}/resend`,{method:"POST"}))).data,[n]);return{organizations:c.useMemo(()=>e==null?void 0:e.map(H=>H.organization),[e]),loading:a,error:null,refetch:r,leaveOrganization:Z,getOrganizationRoles:i,getOrganizationMembers:h,removeOrganizationMember:f,createOrganization:p,getOrganizationInvitations:d,getOrganizationDomains:u,addOrganizationDomain:v,verifyOrganizationDomain:w,removeOrganizationDomain:x,addRoleToOrganizationMember:L,removeRoleFromOrganizationMember:F,inviteOrganizationMember:$,discardOrganizationInvitation:z,resendOrganizationInvitation:O,updateOrganization:m,addRole:A,removeOrganizationRoles:g,deleteOrganization:P,getEnterpriseConnections:b,createEnterpriseConnection:E,updateEnterpriseConnection:j,deleteEnterpriseConnection:S,testEnterpriseConnectionConfig:C,testEnterpriseConnection:_,generateSCIMToken:k,getSCIMToken:y,revokeSCIMToken:M}},ir=()=>{const{loading:e,error:r,refetch:a,getOrganizationMembers:n,getOrganizationRoles:s,leaveOrganization:i,removeOrganizationMember:h,getOrganizationInvitations:d,getOrganizationDomains:u,removeOrganizationDomain:f,addOrganizationDomain:p,verifyOrganizationDomain:m,addRoleToOrganizationMember:g,removeRoleFromOrganizationMember:v,inviteOrganizationMember:w,discardOrganizationInvitation:x,resendOrganizationInvitation:b,updateOrganization:E,removeOrganizationRoles:j,getEnterpriseConnections:S,createEnterpriseConnection:C,updateEnterpriseConnection:_,deleteEnterpriseConnection:k,testEnterpriseConnectionConfig:y,testEnterpriseConnection:M,generateSCIMToken:A,getSCIMToken:Z,revokeSCIMToken:P}=Ot(),{session:L,error:F,loading:$}=st(),{organizationMemberships:z}=Qt(),O=c.useMemo(()=>(z==null?void 0:z.find(Y=>{var de;return Y.id===((de=L==null?void 0:L.active_signin)==null?void 0:de.active_organization_membership_id)}))||null,[z,L]),T=c.useMemo(()=>(O==null?void 0:O.organization)||null,[O]),H=c.useCallback(async Y=>T?await E(T,Y):[],[T,E]),I=c.useCallback(async()=>T?await n(T):[],[T,n]),R=c.useCallback(async()=>T?await s(T):[],[T,s]),W=c.useCallback(async Y=>T?await h(T,Y):[],[T,h]),D=c.useCallback(async Y=>T?await j(T,Y):void 0,[T,j]),B=c.useCallback(async()=>T?await u(T):[],[T,u]),K=c.useCallback(async Y=>T?await p(T,Y):void 0,[T,p]),X=c.useCallback(async Y=>T?await m(T,Y):void 0,[T,m]),ce=c.useCallback(async Y=>T?await f(T,Y):void 0,[T,f]),fe=c.useCallback(async(Y,de)=>T?await g(T,Y,de):void 0,[T,g]),te=c.useCallback(async(Y,de)=>T?await v(T,Y,de):void 0,[T,v]),xe=c.useCallback(async Y=>T?await w(T,Y):void 0,[T,w]),re=c.useCallback(async Y=>T?await x(T,Y):void 0,[T,x]),U=c.useCallback(async Y=>T?await b(T,Y):void 0,[T,b]),Je=c.useCallback(async()=>{T&&await i(T)},[T,i]),Pe=c.useCallback(async()=>T?await d(T):[],[T,d]),De=c.useCallback(async()=>T?await S(T):[],[T,S]),Be=c.useCallback(async Y=>{if(T)return await C(T,Y)},[T,C]),ve=c.useCallback(async(Y,de)=>{if(T)return await _(T,Y,de)},[T,_]),Q=c.useCallback(async Y=>{T&&await k(T,Y)},[T,k]),le=c.useCallback(async Y=>T?await y(T,Y):null,[T,y]),se=c.useCallback(async Y=>T?await M(T,Y):null,[T,M]),G=c.useCallback(async Y=>{if(T)return await A(T,Y)},[T,A]),he=c.useCallback(async Y=>{if(T)return await Z(T,Y)},[T,Z]),pe=c.useCallback(async Y=>{T&&await P(T,Y)},[T,P]);return $||e?{activeOrganization:null,activeMembership:null,loading:!0,error:F||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:T,activeMembership:O,loading:!1,refetch:a,getRoles:R,updateOrganization:H,getMembers:I,getDomains:B,addDomain:K,verifyDomain:X,removeDomain:ce,getInvitations:Pe,removeMember:W,leave:Je,removeRole:D,addMemberRole:fe,removeMemberRole:te,inviteMember:xe,discardInvitation:re,resendInvitation:U,getEnterpriseConnections:De,createEnterpriseConnection:Be,updateEnterpriseConnection:ve,deleteEnterpriseConnection:Q,testEnterpriseConnectionConfig:le,testEnterpriseConnection:se,generateSCIMToken:G,getSCIMToken:he,revokeSCIMToken:pe,error:null}};async function k2(e){return(await V(await e("/me/organization-memberships"))).data}const Qt=()=>{const{client:e,loading:r}=je(),{data:a,isLoading:n,error:s,mutate:i}=Ae(r?null:"/me/organization-memberships",()=>k2(e),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),h=c.useCallback(async()=>{await i()},[i]);return{organizationMemberships:a,loading:r||n,error:s,refetch:h}};async function C2(e){return(await V(await e("/me/workspace-memberships"))).data}async function S2(e,r){return(await V(await e(`/workspaces/${r}/leave`,{method:"POST"}))).data}const An=()=>{const{client:e,loading:r}=je(),{deployment:a}=Se(),{data:n,isLoading:s,error:i,mutate:h}=Ae(!r&&(a!=null&&a.b2b_settings.workspaces_enabled)?"/me/workspace-memberships":null,()=>C2(e),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),d=c.useCallback(async()=>{await h(void 0,{revalidate:!0})},[h]);return{workspaceMemberships:n,loading:r||s,error:i,refetch:d}},cr=()=>{const{workspaceMemberships:e,refetch:r,loading:a,error:n}=An(),{client:s}=je(),{refetch:i}=st(),h=c.useMemo(()=>e==null?void 0:e.map(k=>({...k.workspace,organization:k.organization,eligibility_restriction:k.eligibility_restriction})),[e]),d=c.useCallback(async(k,y,M,A)=>{const Z=new FormData;Z.append("name",y),M&&Z.append("image",M),A&&Z.append("description",A),Z.append("organization_id",k);const P=await V(await s("/workspaces",{method:"POST",body:Z}));return Rt(),await r(),P.data},[s,r]),u=c.useCallback(async k=>{const y=await S2(s,k);return Rt(),await r(),await i(),y},[s,r,i]),f=c.useCallback(async(k,y)=>{const M=new FormData;y.name&&M.append("name",y.name),y.description&&M.append("description",y.description),y.image&&M.append("image",y.image),y.enforce_2fa!==void 0&&M.append("enforce_2fa",String(y.enforce_2fa)),y.enable_ip_restriction!==void 0&&M.append("enable_ip_restriction",String(y.enable_ip_restriction)),y.whitelisted_ips&&y.whitelisted_ips.forEach(Z=>M.append("whitelisted_ips",Z));const A=await V(await s(`/workspaces/${k.id}/update`,{method:"POST",body:M}));return await r(),A.data},[s,r]),p=c.useCallback(async k=>{const y=await V(await s(`/workspaces/${k.id}/delete`,{method:"POST"}));return Rt(),await r(),y.data},[s,r]),m=c.useCallback(async(k,y)=>{const M=new URLSearchParams;return y&&(M.set("page",y.page.toString()),M.set("limit",y.limit.toString()),y.search&&M.set("search",y.search)),(await V(await s(`/workspaces/${k.id}/members?${M.toString()}`,{method:"GET"}))).data},[s]),g=c.useCallback(async k=>(await V(await s(`/workspaces/${k.id}/roles`,{method:"GET"}))).data,[s]),v=c.useCallback(async(k,y,M)=>{const A=new FormData;return A.append("name",y),M.forEach(P=>A.append("permissions",P)),(await V(await s(`/workspaces/${k.id}/roles`,{method:"POST",body:A}))).data},[s]),w=c.useCallback(async(k,y)=>(await V(await s(`/workspaces/${k.id}/roles/${y.id}/delete`,{method:"POST"}))).data,[s]),x=c.useCallback(async(k,y)=>{const M=await V(await s(`/workspaces/${k.id}/members/${y}/remove`,{method:"POST"}));return await r(),M.data},[s,r]),b=c.useCallback(async(k,y,M)=>(await V(await s(`/workspaces/${k.id}/members/${y}/roles/${M}/add`,{method:"POST"}))).data,[s]),E=c.useCallback(async(k,y,M)=>(await V(await s(`/workspaces/${k.id}/members/${y}/roles/${M}/remove`,{method:"POST"}))).data,[s]),j=c.useCallback(async k=>(await V(await s(`/organizations/${k.organization.id}/invitations?workspace_id=${k.id}`,{method:"GET"}))).data,[s]),S=c.useCallback(async(k,y,M)=>{const A=new FormData;return A.append("email",y),A.append("workspace_id",k.id),M&&A.append("workspace_role_id",M),(await V(await s(`/organizations/${k.organization.id}/invitations`,{method:"POST",body:A}))).data},[s]),C=c.useCallback(async(k,y)=>(await V(await s(`/organizations/${k.organization.id}/invitations/${y}/discard`,{method:"POST"}))).data,[s]),_=c.useCallback(async(k,y)=>(await V(await s(`/organizations/${k.organization.id}/invitations/${y}/resend`,{method:"POST"}))).data,[s]);return{workspaces:h||[],loading:a,error:n,refetch:r,leaveWorkspace:u,createWorkspace:d,updateWorkspace:f,deleteWorkspace:p,getWorkspaceMembers:m,getWorkspaceRoles:g,createWorkspaceRole:v,deleteWorkspaceRole:w,removeWorkspaceMember:x,addWorkspaceMemberRole:b,removeWorkspaceMemberRole:E,getWorkspaceInvitations:j,createWorkspaceInvitation:S,discardWorkspaceInvitation:C,resendWorkspaceInvitation:_}},Ht=()=>{const{refetch:e,loading:r,error:a,workspaces:n,leaveWorkspace:s,updateWorkspace:i,deleteWorkspace:h,getWorkspaceMembers:d,getWorkspaceRoles:u,createWorkspaceRole:f,deleteWorkspaceRole:p,removeWorkspaceMember:m,addWorkspaceMemberRole:g,removeWorkspaceMemberRole:v,getWorkspaceInvitations:w,createWorkspaceInvitation:x,discardWorkspaceInvitation:b,resendWorkspaceInvitation:E}=cr(),{workspaceMemberships:j}=An(),{session:S,loading:C,error:_}=st(),k=c.useMemo(()=>(j==null?void 0:j.find(X=>{var ce;return X.id===((ce=S==null?void 0:S.active_signin)==null?void 0:ce.active_workspace_membership_id)}))||null,[j,S]),y=c.useMemo(()=>(k==null?void 0:k.workspace)||null,[k]),M=c.useCallback(async()=>{if(y)return await s(y.id)},[y,s]),A=c.useCallback(async X=>{if(y)return await i(y,X)},[y,i]),Z=c.useCallback(async()=>{if(y)return await h(y)},[y,h]),P=c.useCallback(async X=>y?await d(y,X):{data:[],meta:{total:0,page:1,limit:10}},[y,d]),L=c.useCallback(async()=>y?await u(y):[],[y,u]),F=c.useCallback(async(X,ce)=>{if(y)return await f(y,X,ce)},[y,f]),$=c.useCallback(async X=>{if(y)return await p(y,X)},[y,p]),z=c.useCallback(async X=>{if(y)return await m(y,X)},[y,m]),O=c.useCallback(async(X,ce)=>{if(y)return await g(y,X,ce)},[y,g]),T=c.useCallback(async(X,ce)=>{if(y)return await v(y,X,ce)},[y,v]),H=c.useMemo(()=>(n==null?void 0:n.find(X=>X.id===(y==null?void 0:y.id)))||null,[n,y]),I=c.useCallback(async()=>H?await w(H):[],[H,w]),R=c.useCallback(async X=>{if(H)return await x(H,X.email,X.workspaceRoleId)},[H,x]),W=c.useCallback(async X=>{if(H)return await b(H,X)},[H,b]),D=c.useCallback(async X=>{if(H)return await E(H,X)},[H,E]),B=r||C,K=a||_;return B?{activeWorkspace:null,activeMembership:null,loading:!0,error:K,refetch:e,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:y,activeMembership:k,loading:!1,error:K,refetch:e,leave:M,updateWorkspace:A,deleteWorkspace:Z,getMembers:P,getRoles:L,createRole:F,deleteRole:$,inviteMember:R,removeMember:z,addMemberRole:O,removeMemberRole:T,getInvitations:I,discardInvitation:W,resendInvitation:D}};function Kn(e){const r=new Uint8Array(e);let a="";for(let n=0;n<r.length;n++)a+=String.fromCharCode(r[n]);return btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Yn(e){const r=e.replace(/-/g,"+").replace(/_/g,"/"),a=r.padEnd(r.length+(4-r.length%4)%4,"="),n=atob(a),s=new Uint8Array(n.length);for(let i=0;i<n.length;i++)s[i]=n.charCodeAt(i);return s.buffer}const E2=async e=>(await V(await e("/me"))).data,A2=async e=>(await V(await e("/me/signins"))).data;function lr(){const{client:e,loading:r}=je(),{data:a,error:n,isLoading:s,mutate:i}=Ae(r?null:"/user",()=>E2(e)),h=async H=>{const I=new FormData;for(const[W,D]of Object.entries(H))D!=null&&D!==""&&I.append(W,String(D));const R=await V(await e("/me",{method:"POST",body:I}));return i(),R},d=async()=>await V(await e("/me/email-addresses",{method:"GET"})),u=async H=>await V(await e(`/me/email-addresses/${H}`,{method:"GET"})),f=async H=>{const I=new FormData;return I.append("email",H),await V(await e("/me/email-addresses",{method:"POST",body:I}))},p=async H=>await V(await e(`/me/email-addresses/${H}/delete`,{method:"POST"})),m=async H=>await V(await e(`/me/email-addresses/${H}/prepare-verification`,{method:"POST"})),g=async(H,I)=>await V(await e(`/me/email-addresses/${H}/attempt-verification?code=${I}`,{method:"POST"})),v=async(H,I)=>{const R=new FormData;return R.append("phone_number",H),R.append("country_code",I),await V(await e("/me/phone-numbers",{method:"POST",body:R}))},w=async H=>await V(await e(`/me/phone-numbers/${H}/delete`,{method:"POST"})),x=async H=>await V(await e(`/me/phone-numbers/${H}/prepare-verification`,{method:"POST"})),b=async(H,I)=>{const R=new FormData;return R.append("code",I),await V(await e(`/me/phone-numbers/${H}/attempt-verification`,{method:"POST",body:R}))},E=async H=>{const I=await V(await e(`/me/phone-numbers/${H}/make-primary`,{method:"POST"}));return i(),I},j=async H=>await V(await e(`/me/email-addresses/${H}/make-primary`,{method:"POST"})),S=async()=>(await V(await e("/me/authenticator",{method:"POST"}))).data,C=async(H,I)=>{const R=new FormData;return R.append("authenticator_id",H),I.forEach(D=>{R.append("codes",D)}),await V(await e("/me/authenticator/attempt-verification",{method:"POST",body:R}))},_=async H=>await V(await e(`/me/authenticator/${H}/delete`,{method:"POST"})),k=async()=>(await V(await e("/me/backup-codes",{method:"POST"}))).data,y=async H=>{const I=new FormData;return I.append("file",H),await V(await e("/me/profile-picture",{method:"POST",body:I}))},M=async()=>(await V(await e("/me/backup-codes/regenerate",{method:"POST"}))).data,A=async(H,I)=>{const R=new FormData;return R.append("current_password",H),R.append("new_password",I),await V(await e("/me/update-password",{method:"POST",body:R}))},Z=async H=>{const I=new FormData;I.append("current_password",H);const R=await V(await e("/me/remove-password",{method:"POST",body:I}));return i(),R},P=async H=>{const I=new FormData;return I.append("password",H),await V(await e("/me/account/delete",{method:"POST",body:I}))},L=async H=>await V(await e(`/me/social-connections/${H}/disconnect`,{method:"POST"})),F=async({provider:H,redirectUri:I})=>{var D;const R=new URLSearchParams({provider:H});I&&R.append("redirect_uri",I);const W=await V(await e(`/me/init-sso-connection?${R.toString()}`,{method:"POST"}));return"data"in W&&((D=W.data)!=null&&D.oauth_url)&&window.open(W.data.oauth_url,"_blank"),W},$=async()=>await V(await e("/me/passkeys",{method:"GET"})),z=async H=>{var ce,fe;const I=await V(await e("/me/passkeys/register/begin",{method:"POST"}));if(!("data"in I))return I;const R=I.data.options.publicKey,W={challenge:Yn(R.challenge),rp:R.rp,user:{id:Yn(R.user.id),name:R.user.name,displayName:R.user.displayName},pubKeyCredParams:R.pubKeyCredParams,timeout:R.timeout,attestation:R.attestation,authenticatorSelection:R.authenticatorSelection,excludeCredentials:(ce=R.excludeCredentials)==null?void 0:ce.map(te=>({type:te.type,id:Yn(te.id),transports:te.transports}))},D=await navigator.credentials.create({publicKey:W});if(!D)throw new Error("Failed to create credential");const B=D.response,K={id:D.id,rawId:Kn(D.rawId),type:D.type,response:{clientDataJSON:Kn(B.clientDataJSON),attestationObject:Kn(B.attestationObject),transports:((fe=B.getTransports)==null?void 0:fe.call(B))||[]}};return await V(await e(`/me/passkeys/register/finish?name=${encodeURIComponent(H||"")}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(K)}))},O=async H=>await V(await e(`/me/passkeys/${H}/delete`,{method:"POST"})),T=async(H,I)=>await V(await e(`/me/passkeys/${H}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:I})}));return{user:{...a,refetch:i},loading:r||s,error:n||null,updateProfile:h,getEmailAddresses:d,getEmailAddress:u,createEmailAddress:f,deleteEmailAddress:p,prepareEmailVerification:m,attemptEmailVerification:g,makeEmailPrimary:j,createPhoneNumber:v,deletePhoneNumber:w,preparePhoneVerification:x,attemptPhoneVerification:b,makePhonePrimary:E,setupAuthenticator:S,verifyAuthenticator:C,deleteAuthenticator:_,generateBackupCodes:k,regenerateBackupCodes:M,updateProfilePicture:y,disconnectSocialConnection:L,connectSocialAccount:F,updatePassword:A,removePassword:Z,deleteAccount:P,getPasskeys:$,registerPasskey:z,deletePasskey:O,renamePasskey:T}}function m0(){const{client:e,loading:r}=je(),{data:a,error:n,isLoading:s,mutate:i}=Ae(r?null:"/me/signins",()=>A2(e));return{signins:a,error:n||null,removeSignin:async d=>await V(await e(`/me/signins/${d}/signout`,{method:"POST"})),refetch:i,loading:s||r}}function g0(){const{session:e,loading:r}=st(),{loading:a,organizationMemberships:n}=Qt(),{loading:s,workspaceMemberships:i}=An(),h=c.useMemo(()=>!e||!e.signins||e.signins.length===0?null:(n==null?void 0:n.find(u=>{var f;return u.id===((f=e.active_signin)==null?void 0:f.active_organization_membership_id)}))||null,[n,e]),d=c.useMemo(()=>!e||!e.signins||e.signins.length===0?null:(i==null?void 0:i.find(u=>{var f;return u.id===((f=e.active_signin)==null?void 0:f.active_workspace_membership_id)}))||null,[i,e]);return{loading:r||a||s,orgMembership:h,workspaceMembership:d}}function v0(){const{client:e,loading:r}=je(),[a,n]=c.useState(!1),s=async i=>{n(!0);try{const h=new FormData;for(const[f,p]of Object.entries(i))p&&h.append(f,p);const d=await e("/waitlist/join",{method:"POST",body:h});return await V(d)}finally{n(!1)}};return r?{loading:!0,joinWaitlist:null}:{loading:a,joinWaitlist:s}}function x0(){const{client:e,loading:r}=je(),[a,n]=c.useState(!1),[s,i]=c.useState(null),[h,d]=c.useState(null),[u,f]=c.useState(null),[p,m]=c.useState(!1),[g,v]=c.useState(null);c.useEffect(()=>{if(p||r)return;const x=new URLSearchParams(window.location.search),b=x.get("code"),E=x.get("state"),j=x.get("error"),S=x.get("error_description");if(!b&&!j){m(!0);const C=new Error("No OAuth callback data found.");i(C);return}if(m(!0),n(!0),j){const C=S||j,_=new Error(`OAuth Error: ${C}`);i(_),n(!1);return}if(b&&E)w(b,E);else{const C=new Error("Missing required OAuth parameters");i(C),n(!1)}},[p,r]);const w=async(x,b)=>{try{let E,j;try{const _=b.split(".");if(_.length!==3)throw new Error("Invalid OAuth state format - missing signature");const k=_[0].replace(/-/g,"+").replace(/_/g,"/"),y=k.length%4?"=".repeat(4-k.length%4):"",A=atob(k+y).split("|")[0];if(A==="sign_in")E="/auth/oauth2/callback",j="GET";else if(A==="connect_social")E="/me/sso-connection-callback",j="POST";else throw new Error(`Unknown OAuth action: ${A}`)}catch(_){const k=_ instanceof Error?_:new Error("Failed to parse OAuth state");i(new Error(`Invalid OAuth callback: ${k.message}. The authorization link may be expired or malformed. Please try signing in again.`)),n(!1);return}const S=await e(`${E}?code=${encodeURIComponent(x)}&state=${encodeURIComponent(b)}`,{method:j}),C=await V(S);if("data"in C){const _=C.data.session,k=C.data.redirect_uri||null;if(d(_),f(k),_.signin_attempts&&_.signin_attempts.length>0){const y=_.signin_attempts.at(-1);y&&v(y)}}else{const _=new Error("SSO callback failed");i(_)}}catch(E){const j=E instanceof Error?E:new Error("Unknown error occurred");i(j)}finally{n(!1)}};return{loading:a,error:s,session:h,redirectUri:u,processed:p,signinAttempt:g}}function b0(){const{client:e,loading:r}=je(),[a,n]=c.useState(!1),[s,i]=c.useState(null);return{loading:r||a,verifyMagicLink:async d=>{if(!d.token||!d.attempt)throw new Error("Invalid magic link parameters");n(!0),i(null);try{const u=new URL("/auth/verify-magic-link",window.location.origin);u.searchParams.set("token",d.token),u.searchParams.set("attempt",d.attempt),d.redirectUri&&u.searchParams.set("redirect_uri",d.redirectUri);const f=await e(u.pathname+u.search,{method:"GET"}),p=await V(f);return n(!1),i(!0),p}catch(u){throw n(!1),i(!1),u}},success:s}}function z2(){const[e,r]=c.useState({});return c.useEffect(()=>{const a=new URLSearchParams(window.location.search);r({token:a.get("token")||void 0,attempt:a.get("attempt")||void 0,redirectUri:a.get("redirect_uri")||void 0})},[]),e}function w0(){const{client:e,loading:r}=je();return{loading:r,forgotPassword:async i=>{const h=new FormData;h.append("email",i);const d=await e("/auth/forgot-password",{method:"POST",body:h});return await V(d)},verifyOtp:async(i,h)=>{const d=new FormData;d.append("email",i),d.append("otp",h);const u=await e("/auth/forgot-password",{method:"POST",body:d});return await V(u)},resetPassword:async(i,h)=>{const d=new FormData;d.append("token",i),d.append("password",h);const u=await e("/auth/reset-password",{method:"POST",body:d});return await V(u)}}}const $2=()=>{},M2=$2(),Yo=Object,ii=e=>e===M2,L2=e=>typeof e=="function",Ia=new WeakMap,R2=e=>Yo.prototype.toString.call(e),Qn=(e,r)=>e===`[object ${r}]`;let P2=0;const Qo=e=>{const r=typeof e,a=R2(e),n=Qn(a,"Date"),s=Qn(a,"RegExp"),i=Qn(a,"Object");let h,d;if(Yo(e)===e&&!n&&!s){if(h=Ia.get(e),h)return h;if(h=++P2+"~",Ia.set(e,h),Array.isArray(e)){for(h="@",d=0;d<e.length;d++)h+=Qo(e[d])+",";Ia.set(e,h)}if(i){h="#";const u=Yo.keys(e).sort();for(;!ii(d=u.pop());)ii(e[d])||(h+=d+":"+Qo(e[d])+",");Ia.set(e,h)}}else h=n?e.toJSON():r=="symbol"?e.toString():r=="string"?JSON.stringify(e):""+e;return h},T2=e=>{if(L2(e))try{e=e()}catch{e=""}const r=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?Qo(e):"",[e,r]},F2=e=>T2(e?e(0,null):null)[0],Jn=Promise.resolve(),Z2=e=>(r,a,n)=>{const s=c.useRef(!1),{cache:i,initialSize:h=1,revalidateAll:d=!1,persistSize:u=!1,revalidateFirstPage:f=!0,revalidateOnMount:p=!1,parallel:m=!1}=n,[,,,g]=Zt.get(bs);let v;try{v=F2(r),v&&(v=u0+v)}catch{}const[w,x,b]=rr(i,v),E=c.useCallback(()=>Ce(w()._l)?h:w()._l,[i,v,h]);Ho.useSyncExternalStore(c.useCallback(M=>v?b(v,()=>{M()}):()=>{},[i,v]),E,E);const j=c.useCallback(()=>{const M=w()._l;return Ce(M)?h:M},[v,h]),S=c.useRef(j());pn(()=>{if(!s.current){s.current=!0;return}v&&x({_l:u?S.current:j()})},[v,i]);const C=p&&!s.current,_=e(v,async M=>{const A=w()._i,Z=w()._r;x({_r:ht});const P=[],L=j(),[F]=rr(i,M),$=F().data,z=[];let O=null;for(let T=0;T<L;++T){const[H,I]=ka(r(T,m?null:O));if(!H)break;const[R,W]=rr(i,H);let D=R().data;const B=d||A||Ce(D)||f&&!T&&!Ce($)||C||$&&!Ce($[T])&&!n.compare($[T],D);if(a&&(typeof Z=="function"?Z(D,I):B)){const K=async()=>{if(!(H in g))D=await a(I);else{const ce=g[H];delete g[H],D=await ce}W({data:D,_k:I}),P[T]=D};m?z.push(K):await K()}else P[T]=D;m||(O=D)}return m&&await Promise.all(z.map(T=>T())),x({_i:ht}),P},n),k=c.useCallback(function(M,A){const Z=typeof A=="boolean"?{revalidate:A}:A||{},P=Z.revalidate!==!1;return v?(P&&(Ce(M)?x({_i:!0,_r:Z.revalidate}):x({_i:!1,_r:Z.revalidate})),arguments.length?_.mutate(M,{...Z,revalidate:P}):_.mutate()):Jn},[v,i]),y=c.useCallback(M=>{if(!v)return Jn;const[,A]=rr(i,v);let Z;if(Lt(M)?Z=M(j()):typeof M=="number"&&(Z=M),typeof Z!="number")return Jn;A({_l:Z}),S.current=Z;const P=[],[L]=rr(i,v);let F=null;for(let $=0;$<Z;++$){const[z]=ka(r($,F)),[O]=rr(i,z),T=z?O().data:ht;if(Ce(T))return k(L().data);P.push(T),F=T}return k(P)},[v,i,k,j]);return{size:j(),setSize:y,mutate:k,get data(){return _.data},get error(){return _.error},get isValidating(){return _.isValidating},get isLoading(){return _.isLoading}}},ta=f2(Ae,Z2);function y0({enabled:e=!0,channels:r,organizationIds:a,workspaceIds:n,onNotification:s,onError:i,reconnectDelay:h=1e3,maxReconnectAttempts:d=5}={}){const{session:u,loading:f}=st(),{deployment:p,loading:m}=Se(),[g,v]=c.useState(!1),[w,x]=c.useState(null),b=c.useRef(null),E=c.useRef(null),j=c.useRef(0),S=c.useRef(null),C=c.useRef(s),_=c.useRef(i),k=c.useRef(r),y=c.useRef(a),M=c.useRef(n),A=c.useRef(h),Z=c.useRef(d);C.current=s,_.current=i,k.current=r,y.current=a,M.current=n,A.current=h,Z.current=d;const P=c.useCallback(()=>{E.current&&(clearTimeout(E.current),E.current=null),S.current&&(clearInterval(S.current),S.current=null),b.current&&(b.current.close(),b.current=null)},[]),L=c.useCallback(async()=>{var H;if(!e||f||m||!u||!p)return;P();const z=new URL(p.backend_host),O=z.protocol==="https:"?"wss:":"ws:",T=new URL("/notifications/stream",`${O}//${z.host}`);if(p.mode==="staging"){const I=ft(p.backend_host);I&&T.searchParams.set("__dev_session__",I)}k.current&&k.current.length>0&&T.searchParams.set("channels",k.current.join(",")),y.current&&y.current.length>0&&T.searchParams.set("organization_ids",y.current.join(",")),M.current&&M.current.length>0&&T.searchParams.set("workspace_ids",M.current.join(","));try{const I=new WebSocket(T.toString());b.current=I,I.onopen=()=>{v(!0),x(null),j.current=0,S.current=setInterval(()=>{I.readyState===WebSocket.OPEN&&I.send("ping")},3e4)},I.onmessage=R=>{var W,D;try{const B=JSON.parse(R.data);if(B.type==="notification"&&B.data)(W=C.current)==null||W.call(C,B.data);else if(B.type==="error"){const K=B.error||"Unknown error occurred";x(K),(D=_.current)==null||D.call(_,K)}else B.type}catch{}},I.onerror=()=>{var R;x("Connection error occurred"),(R=_.current)==null||R.call(_,"Connection error occurred")},I.onclose=R=>{var W;if(v(!1),S.current&&(clearInterval(S.current),S.current=null),e&&R.code!==1e3&&j.current<Z.current){j.current++;const D=A.current*Math.pow(2,j.current-1);E.current=setTimeout(()=>{L()},D)}else j.current>=Z.current&&(x("Max reconnection attempts reached"),(W=_.current)==null||W.call(_,"Max reconnection attempts reached"))}}catch{x("Failed to connect"),(H=_.current)==null||H.call(_,"Failed to connect")}},[e,f,m,u,p,P]);c.useEffect(()=>(L(),()=>{P()}),[L,P]),c.useEffect(()=>{b.current&&b.current.readyState===WebSocket.OPEN&&L()},[r,a,n,L]);const F=c.useCallback(()=>{P(),v(!1)},[P]),$=c.useCallback(()=>{j.current=0,L()},[L]);return{isConnected:g,connectionError:w,disconnect:F,reconnect:$}}function zn(e){if(!e)return"";const r=new URLSearchParams;e.limit&&r.append("limit",e.limit.toString()),e.cursor&&r.append("cursor",e.cursor),e.scope&&r.append("scope",e.scope),e.channels&&e.channels.length>0&&e.channels.forEach(n=>r.append("channels",n)),e.organization_ids&&e.organization_ids.length>0&&e.organization_ids.forEach(n=>r.append("organization_ids",n)),e.workspace_ids&&e.workspace_ids.length>0&&e.workspace_ids.forEach(n=>r.append("workspace_ids",n)),e.is_read!==void 0&&r.append("is_read",e.is_read.toString()),e.is_archived!==void 0&&r.append("is_archived",e.is_archived.toString()),e.is_starred!==void 0&&r.append("is_starred",e.is_starred.toString()),e.severity&&r.append("severity",e.severity);const a=r.toString();return a?"?"+a:""}async function I2(e,r){const a=`/notifications${zn(r)}`,n=await e(a,{method:"GET"});return(await V(n)).data}async function O2(e,r){const a=await e(`/notifications/${r}/read`,{method:"POST"});return V(a)}async function H2(e,r){const a=await e(`/notifications/${r}/unread`,{method:"POST"});return V(a)}async function V2(e,r){const a=await e(`/notifications/mark-all-read${zn(r)}`,{method:"POST"});return V(a)}async function D2(e,r){const a=await e(`/notifications/archive-all-read${zn(r)}`,{method:"POST"});return V(a)}async function N2(e,r){const a=await e(`/notifications/${r}/archive`,{method:"POST"});return V(a)}async function U2(e,r){const a=await e(`/notifications/${r}/star`,{method:"POST"});return V(a)}function j0(e){var M;const{client:r,loading:a}=je(),{data:n,error:s,mutate:i,isLoading:h,size:d,setSize:u,isValidating:f}=ta((A,Z)=>{var $;if(a||A>0&&(!Z||!Z.has_more))return null;const P=A===0||($=Z==null?void 0:Z.notifications[Z.notifications.length-1])==null?void 0:$.id,{onNotification:L,...F}=e||{};return["wacht-notifications",{...F,cursor:P}]},([,A])=>I2(r,A),{refreshInterval:6e4,revalidateOnFocus:!0,revalidateFirstPage:!0}),p=c.useMemo(()=>n?n.flatMap(A=>A.notifications):[],[n]),m=n?(M=n[n.length-1])==null?void 0:M.has_more:!1,g=c.useMemo(()=>{if(e!=null&&e.channels&&e.channels.length>0)return e.channels;switch(e==null?void 0:e.scope){case"organization":return["organization"];case"workspace":return["workspace"];case"current":return["current"];case"all":return["user","organization","workspace"];case"user":return["user"];default:return}},[e==null?void 0:e.channels,e==null?void 0:e.scope]),v=c.useMemo(()=>{var A;return(A=e==null?void 0:e.organization_ids)==null?void 0:A.map(Z=>Number(Z)).filter(Z=>Number.isFinite(Z))},[e==null?void 0:e.organization_ids]),w=c.useMemo(()=>{var A;return(A=e==null?void 0:e.workspace_ids)==null?void 0:A.map(Z=>Number(Z)).filter(Z=>Number.isFinite(Z))},[e==null?void 0:e.workspace_ids]);y0({enabled:!a&&!!n,channels:g,organizationIds:v,workspaceIds:w,onNotification:c.useCallback(A=>{i(async Z=>{var $;if(!Z||Z.length===0||Z.some(z=>z.notifications.some(O=>O.id===A.id.toString())))return Z;($=e==null?void 0:e.onNotification)==null||$.call(e,A);const L=Z[0];return[{...L,notifications:[{id:A.id.toString(),user_id:A.user_id.toString(),deployment_id:A.deployment_id.toString(),title:A.title,body:A.body,severity:A.severity,ctas:A.ctas,is_read:!1,is_archived:!1,created_at:A.created_at,updated_at:A.created_at},...L.notifications]},...Z.slice(1)]},!1)},[i,e]),onError:c.useCallback(()=>{},[])});const x=c.useCallback(async A=>{a||(await i(async Z=>Z&&Z.map(P=>({...P,notifications:P.notifications.map(L=>L.id===A?{...L,is_read:!0}:L)})),!1),await O2(r,A),await i())},[r,a,i]),b=c.useCallback(async A=>{a||(await i(async Z=>Z&&Z.map(P=>({...P,notifications:P.notifications.map(L=>L.id===A?{...L,is_read:!1}:L)})),!1),await H2(r,A),await i())},[r,a,i]),E=c.useCallback(async()=>{a||(await i(async A=>A&&A.map(Z=>({...Z,notifications:Z.notifications.map(P=>({...P,is_read:!0}))})),!1),await V2(r,e),await i())},[r,e,i,a]),j=c.useCallback(async()=>{a||(await i(async A=>A&&A.map(Z=>({...Z,notifications:Z.notifications.filter(P=>!P.is_read)})),!1),await D2(r,e),await i())},[r,e,a,i]),S=c.useCallback(async A=>{a||(await i(async Z=>Z&&Z.map(P=>({...P,notifications:(e==null?void 0:e.is_archived)!==void 0?P.notifications.filter(L=>L.id!==A):P.notifications.map(L=>L.id===A?{...L,is_archived:!L.is_archived}:L)})),!1),await N2(r,A),await i())},[r,a,i,e==null?void 0:e.is_archived]),C=c.useCallback(async A=>{a||(await i(async Z=>Z&&Z.map(P=>({...P,notifications:P.notifications.map(L=>L.id===A?{...L,is_starred:!L.is_starred}:L)})),!1),await U2(r,A),await i())},[r,a,i]),_=c.useCallback(async()=>{f||!m||await u(d+1)},[f,m,u,d]),k=c.useCallback(async()=>{await i()},[i]),y=a||h||d>0&&n&&typeof n[d-1]>"u";return!n||y?{loading:!0,notifications:p,hasMore:m,markAsRead:void 0,markAllAsRead:void 0,archiveAllRead:void 0,archiveNotification:void 0,starNotification:void 0,markAsUnread:void 0,error:s,refetch:k,loadMore:_}:{loading:!1,error:s,notifications:p,hasMore:m,markAsRead:x,markAllAsRead:E,archiveAllRead:j,archiveNotification:S,starNotification:C,markAsUnread:b,refetch:k,loadMore:_}}async function B2(e,r){const a=`/notifications/scope-unread${zn(r)}`,n=await e(a,{method:"GET"});return(await V(n)).data}function _0(e){const{client:r,loading:a}=je(),{data:n,error:s,mutate:i}=Ae(a?null:["wacht-notifications-unread",e],([,d])=>B2(r,d),{refreshInterval:3e4,revalidateOnFocus:!0}),h=async()=>{await i()};return!n||a?{loading:!0,count:0,error:s,refetch:h}:{loading:!1,count:n.count,error:s,refetch:h}}const Zr={DISCONNECTED:"disconnected",CONNECTED:"connected",ERROR:"error"},Ve={IDLE:"idle",STARTING:"starting",RUNNING:"running",WAITING_FOR_INPUT:"waiting_for_input",COMPLETED:"completed",FAILED:"failed"},fr={IDLE:"Idle",STARTING:"Starting",RUNNING:"Running",WAITING_FOR_INPUT:"WaitingForInput",COMPLETED:"Completed",FAILED:"Failed",CANCELLED:"Cancelled"};function W2(e){switch(e.trim()){case fr.IDLE:return Ve.IDLE;case fr.STARTING:case"starting":return Ve.STARTING;case fr.RUNNING:case"running":return Ve.RUNNING;case fr.WAITING_FOR_INPUT:case"waiting_for_input":return Ve.WAITING_FOR_INPUT;case fr.COMPLETED:case"completed":return Ve.COMPLETED;case fr.FAILED:case fr.CANCELLED:case"failed":case"cancelled":return Ve.FAILED;default:return Ve.IDLE}}function Ir(e){return e===Ve.STARTING||e===Ve.RUNNING||e===Ve.WAITING_FOR_INPUT}function Kt(e){return e&&typeof e=="object"?e:null}function Cr(e){return typeof e=="string"?e:null}function G2(e){const r=Kt(e);return(r==null?void 0:r.ConversationMessage)??e}function q2(e){const r=Kt(e);if(!r)return null;const a=Kt(r.content),n=Kt(r.metadata),s=Cr(r.message_type)||Cr(n==null?void 0:n.message_type)||Cr(a==null?void 0:a.type);return{...r,metadata:{...n||{},message_type:s}}}function K2(e){const r=Kt(e.metadata),a=Kt(e.content);return Cr(r==null?void 0:r.message_type)||Cr(a==null?void 0:a.type)}function Y2(e){const r=Kt(e.content);return Cr(r==null?void 0:r.status)}function Q2(e){const r=Kt(e.content),a=Cr(r==null?void 0:r.step);return a==="execution_cancelled"||a==="abort"}function J2(e){const r=Kt(e.content);return(r==null?void 0:r.further_actions_required)===!1}function ci(e){return[...e].sort((r,a)=>new Date(r.timestamp).getTime()-new Date(a.timestamp).getTime())}function X2(e,r){return{id:e,timestamp:new Date().toISOString(),content:{type:"user_message",message:r},metadata:{message_type:"user_message"}}}function ep(e,r){const a=new FormData;a.append("message",e);for(const n of r??[])a.append("files",n);return a}function tp(e,r){const a=new FormData;a.append("request_message_id",e);for(const n of r)a.append("approval_tool_name",n.tool_name),a.append("approval_mode",n.mode);return a}function rp(){const e=new FormData;return e.append("cancel","true"),e}function ap({deployment:e,threadId:r,file:a}){const n=a.url||a.filename;if(!n)return null;if(/^https?:\/\//i.test(n))return n;const s=e.backend_host.replace(/\/$/,"");let i;if(n.startsWith("/ai/threads/"))i=new URL(n,`${s}/`);else{const h=n.includes("/")?n.split("/").pop()??"":n;if(!h)return null;i=new URL(`/ai/threads/${encodeURIComponent(r)}/filesystem/file`,`${s}/`),i.searchParams.set("path",`uploads/${h}`)}if(e.mode==="staging"){const h=ft(e.backend_host);h&&i.searchParams.set("__dev_session__",h)}return i.toString()}const np=5e3,op=5e3;function sp({threadId:e,initialThread:r=null,platformAdapter:a}){var Ge,it;const{deployment:n}=Se(),{client:s}=je(),[i,h]=c.useState([]),[d,u]=c.useState(null),[f,p]=c.useState(null),[m,g]=c.useState(r),[v,w]=c.useState(Ve.IDLE),[x,b]=c.useState({status:Zr.DISCONNECTED}),[E,j]=c.useState(!0),[S,C]=c.useState(!1),[_,k]=c.useState(!1),[y,M]=c.useState(null),A=c.useRef(null),Z=c.useRef(e),P=c.useRef(0),L=c.useRef(Ve.IDLE),F=c.useRef(null),$=c.useCallback(J=>{h(ae=>{const me=[...ae],He=me.findIndex(ze=>String(ze.id)===String(J.id));return He>=0?me[He]=J:me.push(J),ci(me)})},[]),z=c.useCallback(({messages:J,prepend:ae,hasMore:me})=>{const He=ci(J);He.length>0&&(A.current=He[0].id),h(ze=>ae?[...He,...ze]:He),me!==void 0&&j(me)},[]),O=c.useCallback(J=>{L.current=J,w(J)},[]),T=c.useCallback(J=>{P.current=Date.now()+np,O(J)},[O]),H=c.useCallback(()=>{var J;P.current>Date.now()&&Ir(L.current)||(O(Ve.IDLE),(J=F.current)==null||J.call(F))},[O]),I=c.useCallback(J=>{const ae=W2(J),me=Ir(ae);!me&&P.current>Date.now()&&Ir(L.current)||(me&&(P.current=0),O(ae))},[O]),R=c.useCallback(()=>{u(null),p(null)},[]),W=c.useCallback(J=>{g(ae=>ae&&{...ae,...J?{status:J}:{},last_activity_at:new Date().toISOString()})},[]),D=c.useCallback((J,ae)=>{$(X2(J,ae)),R()},[R,$]),B=c.useCallback(J=>{const ae=q2(J);if(!ae)return;switch(K2(ae)){case"system_decision":$(ae),Q2(ae)&&H();return;case"execution_summary":case"tool_result":case"user_message":$(ae);return;case"steer":$(ae),J2(ae)&&H();return;case"approval_request":P.current=0,O(Ve.WAITING_FOR_INPUT),$(ae);return;case"approval_response":$(ae),T(Ve.RUNNING);return;case"execution_status":{const He=Y2(ae);if(!He)return;I(He),g(ze=>ze&&{...ze,status:He});return}default:$(ae)}},[I,H,O,T,$]),K=c.useCallback((J,ae)=>{var me;(me=a==null?void 0:a.onPlatformEvent)==null||me.call(a,J,ae)},[a]),X=c.useRef(B),ce=c.useRef(K),fe=c.useRef(s),te=c.useRef(n);c.useEffect(()=>{X.current=B,ce.current=K,fe.current=s,te.current=n}),c.useEffect(()=>{Z.current=e},[e]);const xe=c.useRef(null),re=c.useRef(null),U=c.useRef(0),Je=10,Pe=c.useCallback(async J=>{if(!e)return;const ae=e;J?C(!0):k(!0),M(null);try{const me=new URLSearchParams({limit:"100"});J&&me.append("before_id",J);const He=await s(`/ai/threads/${e}/messages?${me}`,{method:"GET"}),ze=await V(He);ze.data&&Z.current===ae&&z({messages:ze.data.data,prepend:!!J,hasMore:ze.data.has_more||!1})}catch(me){Z.current===ae&&M(me instanceof Error?me:new Error("Failed to fetch messages"))}finally{Z.current===ae&&(J?C(!1):k(!1))}},[e,s,z]);c.useEffect(()=>{const J=te.current;if(!J||!e)return;const ae=()=>{xe.current&&(xe.current.close(),xe.current=null);const me=new URL(`${J.backend_host}/ai/threads/${encodeURIComponent(e)}/stream`);if(J.mode==="staging"){const ze=ft(J.backend_host);ze&&me.searchParams.append("__dev_session__",ze)}const He=new EventSource(me.toString(),{withCredentials:J.mode!=="staging"});xe.current=He,He.onopen=()=>{if(b({status:Zr.CONNECTED}),U.current>0){const ze=e;setTimeout(()=>{s(`/ai/threads/${ze}/messages?limit=100`,{method:"GET"}).then(async Qe=>{const _t=await V(Qe);_t.data&&Z.current===ze&&z({messages:_t.data.data,hasMore:_t.data.has_more||!1})}).catch(()=>{})},100)}U.current=0},He.onerror=()=>{if(b({status:Zr.ERROR}),He.close(),xe.current=null,U.current<Je){const ze=Math.min(1e3*Math.pow(2,U.current),3e4);re.current=setTimeout(()=>{U.current++,ae()},ze)}else b({status:Zr.DISCONNECTED})},He.addEventListener("conversation_message",ze=>{try{const Qe=G2(JSON.parse(ze.data));Qe&&X.current(Qe)}catch{}}),He.addEventListener("platform_event",ze=>{try{const Qe=JSON.parse(ze.data);Qe!=null&&Qe.PlatformEvent?ce.current(Qe.PlatformEvent[0],Qe.PlatformEvent[1]):Qe!=null&&Qe.event_label&&ce.current(Qe.event_label,Qe.event_data)}catch{}})};return ae(),()=>{re.current&&(clearTimeout(re.current),re.current=null),xe.current&&(xe.current.close(),xe.current=null)}},[e,s,z]);const De=c.useCallback(async()=>{if(!e)return;const J=e;try{const ae=await s(`/ai/threads/${J}`,{method:"GET"});if(!ae.ok)return;const me=await V(ae);me.data&&Z.current===J&&(g(me.data),I(me.data.status),Gr(`wacht-ai-thread:${J}`,me.data,{revalidate:!1}))}catch{}},[e,s,I]);c.useEffect(()=>{F.current=De},[De]),c.useEffect(()=>{if(!e)return;De();const J=window.setInterval(()=>{!Ir(L.current)&&P.current<=Date.now()||De()},op);return()=>{window.clearInterval(J)}},[e,De]),c.useEffect(()=>{h([]),g(null),j(!0),C(!1),M(null),k(!!e),b({status:Zr.DISCONNECTED}),A.current=null,P.current=0,L.current=Ve.IDLE,w(Ve.IDLE),R()},[e,R]),c.useEffect(()=>{!r||r.id!==e||g(r)},[r,e]);const Be=c.useCallback(async(J,ae)=>{var me,He;if(!(!e||!n)){u(J),ae&&ae.length>0&&p(ae),T(Ve.STARTING);try{const ze=await s(`/ai/threads/${e}/run`,{method:"POST",body:ep(J,ae)});if(ze.ok){const Qe=await V(ze),_t=((me=Qe.data)==null?void 0:me.conversation_id)??null;W(typeof((He=Qe.data)==null?void 0:He.status)=="string"?Qe.data.status:void 0),_t?D(_t,J):R(),T(Ve.RUNNING)}else P.current=0,O(Ve.IDLE),R()}catch{P.current=0,O(Ve.IDLE),R()}}},[e,n,s,T,O,W,R,D]);c.useEffect(()=>{e&&Pe()},[e,Pe]);const ve=c.useCallback(async()=>{await Pe()},[Pe]),Q=c.useCallback(async()=>{if(!(S||!E||!A.current)){C(!0);try{await Pe(A.current)}finally{C(!1)}}},[S,E,Pe]),le=c.useCallback(()=>{h([]),R()},[R]),se=c.useCallback(async(J,ae)=>{if(!e)return!1;T(Ve.STARTING);try{return(await s(`/ai/threads/${e}/run`,{method:"POST",body:tp(J,ae)})).ok?(W(),T(Ve.RUNNING),!0):(P.current=0,O(Ve.IDLE),!1)}catch{return P.current=0,O(Ve.IDLE),!1}},[e,s,T,O,W]),G=c.useCallback(async J=>{if(!e)return!1;T(Ve.STARTING);try{return(await s(`/ai/threads/${e}/messages/answer`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(J)})).ok?(W(),T(Ve.RUNNING),!0):(P.current=0,O(Ve.IDLE),!1)}catch{return P.current=0,O(Ve.IDLE),!1}},[e,s,T,O,W]),he=c.useCallback(async()=>{if(!(!e||!Ir(v)))try{await s(`/ai/threads/${e}/run`,{method:"POST",body:rp()}),P.current=0,W(),O(Ve.IDLE)}catch{}},[e,v,s,O,W]),pe=c.useCallback(J=>!n||!e||!J?null:ap({deployment:n,threadId:e,file:J}),[e,n]),Y=c.useCallback(J=>{const ae=pe(J);if(!ae)return;const me=document.createElement("a");me.href=ae,me.download=(J==null?void 0:J.filename)||"attachment",me.rel="noreferrer",document.body.appendChild(me),me.click(),document.body.removeChild(me)},[pe]),de=((Ge=m==null?void 0:m.execution_state)==null?void 0:Ge.pending_approval_request)??null,We=((it=m==null?void 0:m.execution_state)==null?void 0:it.pending_question)??null,Ke=m==null?void 0:m.status;return{thread:m,threadState:m,threadStatus:Ke,messages:i,pendingMessage:d,pendingFiles:f,connectionState:x,isConnected:x.status===Zr.CONNECTED,hasActiveRun:Ir(v),isRunning:v===Ve.STARTING||v===Ve.RUNNING,executionStatus:v,isWaitingForInput:v===Ve.WAITING_FOR_INPUT,pendingApprovalRequest:de,pendingClarificationRequest:We,hasMoreMessages:E,isLoadingMore:S,messagesLoading:_,messagesError:y,refreshThread:De,refreshMessages:ve,sendMessage:Be,submitApprovalResponse:se,submitAnswer:G,clearMessages:le,loadMoreMessages:Q,cancelExecution:he,resolveMessageFileUrl:pe,downloadMessageFile:Y}}function ip(e){const{client:r}=je(),[a,n]=c.useState(!e),[s,i]=c.useState(!!e),[h,d]=c.useState(null),u=c.useRef(!1),f=c.useRef(!1),p=c.useRef(null),m=a,g=c.useCallback(async()=>{const C=await r("/ai/session",{method:"GET"});if(!C.ok)throw C.status===401||C.status===403?new Error("NO_SESSION"):new Error("Failed to fetch session");return(await V(C)).data},[r]),{data:v,error:w,isLoading:x,mutate:b}=Ae(m?"wacht-agent-session":null,g,{revalidateOnFocus:!1});c.useEffect(()=>{if(!e||u.current||f.current||p.current===e)return;p.current=e,(async()=>{f.current=!0,i(!0);try{(await r(`/session/ticket/exchange?ticket=${encodeURIComponent(e)}`,{method:"GET"})).ok?(u.current=!0,n(!0)):d(new Error("Failed to exchange ticket"))}catch(_){d(_ instanceof Error?_:new Error("Failed to exchange ticket"))}finally{i(!1),f.current=!1}})()},[e,r]);const E=!h&&(e?a:!0)&&(!w||w.message!=="NO_SESSION"),j=h||(w&&w.message!=="NO_SESSION"?w:null);return{hasSession:E,sessionLoading:s||m&&x,sessionError:j,sessionId:(v==null?void 0:v.session_id)||null,actor:(v==null?void 0:v.actor)||null,agents:(v==null?void 0:v.agents)||[],ticketExchanged:a,ticketLoading:s,refetch:async()=>{await b()}}}const li={exists:!1,files:[]};function Oa(e,r,a){const s=(e||[]).filter(i=>i.id!==r.id);return!a&&r.archived_at?s:[r,...s]}function cp(e,r){return r===void 0?"":`?${new URLSearchParams({[e]:String(r)}).toString()}`}function k0(e,r){const a=new URLSearchParams({path:e});return r&&a.set("include_archived","true"),`?${a.toString()}`}function C0(e,r){const a=new URLSearchParams;e&&a.set("path",e),r&&a.set("include_archived","true");const n=a.toString();return n?`?${n}`:""}function lp(e){const r=e.split("/").pop()||e,a=r.lastIndexOf(".");return a<0||a===r.length-1?"":r.slice(a+1).toLowerCase()}function dp(e,r){const a=lp(r),n=new Set(["doc","docx","ppt","pptx","xls","xlsx","pdf","zip","gz","tar","7z","rar","jar","war","bin"]),s=new Set(["txt","md","mdx","markdown","json","jsonc","js","jsx","ts","tsx","mts","cts","mjs","cjs","py","rb","php","java","kt","kts","go","rs","c","cc","cpp","cxx","h","hpp","swift","sh","bash","zsh","fish","ps1","sql","html","htm","css","scss","less","xml","svg","yaml","yml","toml","ini","cfg","conf","env","log"]);return n.has(a)?!1:s.has(a)?!0:e.startsWith("text/")||e.includes("json")||e.includes("javascript")||e.includes("typescript")||e.includes("python")||e.includes("xml")||e.includes("yaml")}function ct(e,r,a){if(a!=null){if(typeof a=="string"){e.set(r,a);return}if(typeof a=="boolean"||typeof a=="number"){e.set(r,String(a));return}}}function up(e,r,a){a&&e.set(r,JSON.stringify(a))}function di(e){const r=new FormData;return ct(r,"name",e.name),ct(r,"agent_id","agent_id"in e?e.agent_id:void 0),ct(r,"description",e.description),ct(r,"status",e.status),r}function pp(e){const r=new FormData;if(ct(r,"title",e.title),ct(r,"agent_id",e.agent_id),ct(r,"system_instructions",e.system_instructions),ct(r,"thread_purpose",e.thread_purpose),ct(r,"responsibility",e.responsibility),ct(r,"reusable",e.reusable),ct(r,"accepts_assignments",e.accepts_assignments),up(r,"metadata",e.metadata),Array.isArray(e.capability_tags))for(const a of e.capability_tags)r.append("capability_tags",a);return r}function S0(e){const r=new FormData;return ct(r,"title",e.title),ct(r,"agent_id",e.agent_id),ct(r,"system_instructions",e.system_instructions),r}function E0(e,r=[]){const a=new FormData;ct(a,"title",e.title),ct(a,"description",e.description),ct(a,"status",e.status),ct(a,"schedule_kind",e.schedule_kind),ct(a,"next_run_at",e.next_run_at),ct(a,"interval_seconds",e.interval_seconds),"clear_schedule"in e&&ct(a,"clear_schedule",e.clear_schedule);for(const n of r)a.append("files",n);return a}function hp(e={}){const{client:r}=je(),{includeArchived:a=!1,enabled:n=!0}=e,s=n?`wacht-ai-actor-projects:${a}`:null,i=c.useCallback(async()=>{const v=await r(`/ai/projects${cp("include_archived",a)}`);return(await V(v)).data},[r,a]),{data:h,error:d,mutate:u}=Ae(s,i,{revalidateOnFocus:!1}),f=c.useCallback(async v=>{const w=await r("/ai/projects",{method:"POST",body:di(v)}),x=await V(w);return await u(b=>Oa(b,x.data,a),{revalidate:!0}),x},[r,a,u]),p=c.useCallback(async(v,w)=>{const x=await r(`/ai/projects/${v}/update`,{method:"POST",body:di(w)}),b=await V(x);return await u(E=>Oa(E,b.data,a),{revalidate:!0}),b},[r,a,u]),m=c.useCallback(async v=>{const w=await r(`/ai/projects/${v}/archive`,{method:"POST",body:new URLSearchParams}),x=await V(w);return await u(b=>Oa(b,x.data,a),{revalidate:!0}),x},[r,a,u]),g=c.useCallback(async v=>{const w=await r(`/ai/projects/${v}/unarchive`,{method:"POST",body:new URLSearchParams}),x=await V(w);return await u(b=>Oa(b,x.data,a),{revalidate:!0}),x},[r,a,u]);return{projects:h||[],loading:!h&&!d,error:d,createProject:f,updateProject:p,archiveProject:m,unarchiveProject:g,refetch:async()=>{await u()}}}function fp(e={}){const{client:r}=je(),{enabled:a=!0,query:n="",limit:s=12}=e,i=n.trim(),h=a?`wacht-ai-actor-project-search:${i}:${s}`:null,d=c.useCallback(async()=>{const m=new URLSearchParams({limit:String(s)});i&&m.set("q",i);const g=await r(`/ai/projects/search?${m.toString()}`);return(await V(g)).data},[r,s,i]),{data:u,error:f,mutate:p}=Ae(h,d,{revalidateOnFocus:!1});return{projects:(u==null?void 0:u.data)||[],loading:!u&&!f,error:f,hasMore:(u==null?void 0:u.has_more)||!1,nextCursor:u==null?void 0:u.next_cursor,refetch:async()=>{await p()}}}function mp(e,r={}){const{client:a}=je(),{includeArchived:n=!1,enabled:s=!0}=r,i=s&&e?`wacht-ai-threads:${e}:${n}`:null,h=c.useCallback(async()=>{if(!e)return{data:[],has_more:!1,next_cursor:""};const x=new URLSearchParams({limit:"100"});n&&x.set("include_archived","true");const b=await a(`/ai/projects/${e}/threads?${x.toString()}`);return(await V(b)).data},[e,a,n]),{data:d,error:u,mutate:f}=Ae(i,h,{revalidateOnFocus:!1}),p=c.useCallback(async(x,b)=>{const E=await a(`/ai/projects/${x}/threads`,{method:"POST",body:pp(b)}),j=await V(E);return x===e&&await f(),j},[e,a,f]),m=c.useCallback(async x=>{if(!e)throw new Error("projectId is required");return p(e,x)},[e,p]),g=c.useCallback(async(x,b)=>{const E=await a(`/ai/threads/${x}/update`,{method:"POST",body:S0(b)}),j=await V(E);return await f(),j},[a,f]),v=c.useCallback(async x=>{const b=await a(`/ai/threads/${x}/archive`,{method:"POST",body:new URLSearchParams}),E=await V(b);return await f(),E},[a,f]),w=c.useCallback(async x=>{const b=await a(`/ai/threads/${x}/unarchive`,{method:"POST",body:new URLSearchParams}),E=await V(b);return await f(),E},[a,f]);return{threads:(d==null?void 0:d.data)||[],loading:!d&&!u,error:u,hasMore:(d==null?void 0:d.has_more)||!1,nextCursor:(d==null?void 0:d.next_cursor)||"",createThread:m,createThreadForProject:p,updateThread:g,archiveThread:v,unarchiveThread:w,refetch:async()=>{await f()}}}function gp(e,r={}){var v,w;const{client:a}=je(),{includeArchived:n=!1,archivedOnly:s=!1,enabled:i=!0,query:h="",limit:d=10}=r,u=h.trim(),f=ta((x,b)=>{if(!i||!e||x>0&&b&&!b.has_more)return null;const E=x===0||b==null?void 0:b.next_cursor;return["wacht-ai-project-thread-feed",e,s?"archived-only":n?"with-archived":"active-only",u,d,E||""]},async([,x,b,E,j,S])=>{const C=new URLSearchParams({limit:String(j)});b==="with-archived"?C.set("include_archived","true"):b==="archived-only"&&(C.set("include_archived","true"),C.set("archived_only","true")),E&&C.set("q",String(E)),S&&C.set("cursor",String(S));const _=await a(`/ai/projects/${x}/threads?${C.toString()}`);return(await V(_)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0}),p=c.useMemo(()=>{var x;return((x=f.data)==null?void 0:x.flatMap(b=>b.data||[]))||[]},[f.data]),m=f.data&&((v=f.data[f.data.length-1])==null?void 0:v.has_more)||!1,g=f.isValidating&&!!f.data&&f.size>(((w=f.data)==null?void 0:w.length)||0);return{threads:p,loading:!f.data&&!f.error,error:f.error||null,hasMore:m,loadingMore:g,loadMore:async()=>{!m||g||await f.setSize(x=>x+1)},refetch:async()=>{await f.mutate()}}}function vp(e={}){const{client:r}=je(),{enabled:a=!0,query:n="",limit:s=16}=e,i=n.trim(),h=a?`wacht-ai-actor-thread-search:${i}:${s}`:null,d=c.useCallback(async()=>{const m=new URLSearchParams({limit:String(s)});i&&m.set("q",i);const g=await r(`/ai/threads/search?${m.toString()}`);return(await V(g)).data},[r,s,i]),{data:u,error:f,mutate:p}=Ae(h,d,{revalidateOnFocus:!1});return{threads:(u==null?void 0:u.data)||[],loading:!u&&!f,error:f,hasMore:(u==null?void 0:u.has_more)||!1,nextCursor:u==null?void 0:u.next_cursor,refetch:async()=>{await p()}}}function xp(e,r=!0){const{client:a}=je(),n=r&&e?`wacht-ai-thread:${e}`:null,s=c.useCallback(async()=>{if(!e)return null;const p=await a(`/ai/threads/${e}`);return(await V(p)).data},[e,a]),i=Ae(n,s,{revalidateOnFocus:!1}),h=c.useCallback(async p=>{if(!e)throw new Error("threadId is required");const m=await a(`/ai/threads/${e}/update`,{method:"POST",body:S0(p)}),g=await V(m);return await i.mutate(),g},[e,a,i]),d=c.useCallback(async()=>{if(!e)throw new Error("threadId is required");const p=await a(`/ai/threads/${e}/archive`,{method:"POST",body:new URLSearchParams}),m=await V(p);return await i.mutate(),m},[e,a,i]),u=c.useCallback(async()=>{if(!e)throw new Error("threadId is required");const p=await a(`/ai/threads/${e}/unarchive`,{method:"POST",body:new URLSearchParams}),m=await V(p);return await i.mutate(),m},[e,a,i]),f=c.useCallback(async p=>{if(!e)throw new Error("threadId is required");await a(`/ai/threads/${e}/messages/answer`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p)})},[e,a]);return{thread:i.data||null,loading:!i.data&&!i.error,error:i.error||null,updateThread:h,archiveThread:d,unarchiveThread:u,submitAnswer:f,refetch:async()=>{await i.mutate()}}}function bp(e,r=!0){const{client:a}=je(),n=r&&e?`wacht-ai-thread-filesystem:${e}`:null,s=c.useCallback(async d=>{if(!e)throw new Error("threadId is required");const u=await a(`/ai/threads/${e}/filesystem/file${k0(d)}`);if(!u.ok)throw new Error("Failed to load file");const f=await u.blob(),p=(u.headers.get("content-type")||"application/octet-stream").split(";")[0].trim().toLowerCase(),m=dp(p,d);let g;return m&&(g=await f.text()),{path:d,name:d.split("/").pop()||"file",mime_type:p,is_text:m,size_bytes:f.size,truncated:!1,content:g,blob:f}},[e,a]),i=c.useCallback(async d=>{if(!e)return li;const u=await a(`/ai/threads/${e}/filesystem${C0(d)}`);return(await V(u)).data},[e,a]),h=Ae(n,()=>i(),{revalidateOnFocus:!1});return{filesystem:h.data||li,filesystemLoading:!h.data&&!h.error,filesystemError:h.error||null,getFile:s,listDirectory:i,refetch:async()=>{await h.mutate()}}}function wp(e,r={}){var f,p;const{client:a}=je(),{enabled:n=!0,limit:s=40}=r,i=ta((m,g)=>{if(!n||!e||m>0&&g&&!g.has_more)return null;const v=m===0||g==null?void 0:g.next_cursor;return["wacht-ai-thread-assignments",e,s,v||""]},async([,m,g,v])=>{const w=new URLSearchParams({limit:String(g)});v&&w.set("cursor",String(v));const x=await a(`/ai/threads/${m}/assignments?${w.toString()}`);return(await V(x)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0,refreshInterval:5e3}),h=c.useMemo(()=>{var m;return((m=i.data)==null?void 0:m.flatMap(g=>g.data||[]))||[]},[i.data]),d=i.data&&((f=i.data[i.data.length-1])==null?void 0:f.has_more)||!1,u=i.isValidating&&!!i.data&&i.size>(((p=i.data)==null?void 0:p.length)||0);return{assignments:h,loading:!i.data&&!i.error,error:i.error||null,hasMore:d,loadingMore:u,loadMore:async()=>{!d||u||await i.setSize(m=>m+1)},refetch:async()=>{await i.mutate()}}}function yp(e={},r){const a=new URLSearchParams;e.statuses&&e.statuses.length>0&&a.set("status",e.statuses.join(",")),e.includeArchived&&a.set("include_archived","true"),e.archivedOnly&&a.set("archived_only","true"),e.limit&&a.set("limit",String(e.limit)),r&&a.set("cursor",r);const n=a.toString();return n?`?${n}`:""}function jp(e,r=!0,a={}){var w,x,b;const{client:n}=je(),s=((w=a.statuses)==null?void 0:w.join(","))||"all",i=a.archivedOnly?"archived-only":a.includeArchived?"with-archived":"active-only",h=a.limit||60,d=ta((E,j)=>{if(!r||!e||E>0&&j&&!j.has_more)return null;const S=E===0||j==null?void 0:j.next_cursor;return["wacht-ai-project-tasks",e,s,i,h,S||""]},async([,E,,,,j])=>{const S=await n(`/ai/projects/${E}/board/items${yp(a,j||void 0)}`);return(await V(S)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0,refreshInterval:5e3}),u=c.useMemo(()=>{var E;return((E=d.data)==null?void 0:E.flatMap(j=>j.data||[]))||[]},[d.data]),f=d.data&&((x=d.data[d.data.length-1])==null?void 0:x.has_more)||!1,p=d.isValidating&&!!d.data&&d.size>(((b=d.data)==null?void 0:b.length)||0),m=c.useCallback(async(E,j=[])=>{if(!e)throw new Error("projectId is required");const S=await n(`/ai/projects/${e}/board/items`,{method:"POST",body:E0(E,j)}),C=await V(S);return await d.mutate(),C},[e,n,d]),g=c.useCallback(async E=>{if(!e)throw new Error("projectId is required");const j=await n(`/ai/projects/${e}/board/items/${E}/archive`,{method:"POST",body:new URLSearchParams}),S=await V(j);return await d.mutate(),S},[e,n,d]),v=c.useCallback(async E=>{if(!e)throw new Error("projectId is required");const j=await n(`/ai/projects/${e}/board/items/${E}/unarchive`,{method:"POST",body:new URLSearchParams}),S=await V(j);return await d.mutate(),S},[e,n,d]);return{tasks:u,loading:!d.data&&!d.error,error:d.error||null,hasMore:f,loadingMore:p,loadMore:async()=>{!f||p||await d.setSize(E=>E+1)},createTask:m,archiveTask:g,unarchiveTask:v,refetch:async()=>{await d.mutate()}}}function _p(e,r,a=!0,n={}){var M,A;const{client:s}=je(),i=n.includeArchived?"with-archived":"active-only",h=n.includeArchived?"?include_archived=true":"",d=a&&e&&r?`wacht-ai-board-item:${e}:${r}:${i}`:null,u=a&&e&&r?`wacht-ai-board-item-workspace:${e}:${r}:${i}`:null,f=c.useCallback(async()=>{if(!e||!r)return null;const Z=await s(`/ai/projects/${e}/board/items/${r}${h}`);return(await V(Z)).data},[e,r,s,h]),p=Ae(d,f,{revalidateOnFocus:!1,refreshInterval:5e3}),m=ta((Z,P)=>{if(!a||!e||!r||Z>0&&P&&!P.has_more)return null;const L=Z===0||P==null?void 0:P.next_cursor;return["wacht-ai-board-item-assignments",e,r,i,L||""]},async([,Z,P,,L])=>{const F=new URLSearchParams({limit:"40"});n.includeArchived&&F.set("include_archived","true"),L&&F.set("cursor",String(L));const $=await s(`/ai/projects/${Z}/board/items/${P}/assignments?${F.toString()}`);return(await V($)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0,refreshInterval:5e3}),g=c.useCallback(async()=>{if(!e||!r)return{exists:!1,files:[]};const Z=await s(`/ai/projects/${e}/board/items/${r}/filesystem${h}`);return(await V(Z)).data},[e,r,s,h]),v=Ae(u,g,{revalidateOnFocus:!1,refreshInterval:5e3}),w=c.useCallback(async(Z,P=[])=>{if(!e||!r)throw new Error("projectId and itemId are required");const L=await s(`/ai/projects/${e}/board/items/${r}/update`,{method:"POST",body:E0(Z,P)}),F=await V(L);return await p.mutate(),await v.mutate(),F},[e,r,s,p,v]),x=c.useCallback(async()=>{if(!e||!r)throw new Error("projectId and itemId are required");const Z=await s(`/ai/projects/${e}/board/items/${r}/archive`,{method:"POST",body:new URLSearchParams}),P=await V(Z);return await p.mutate(),P},[e,r,s,p]),b=c.useCallback(async()=>{if(!e||!r)throw new Error("projectId and itemId are required");const Z=await s(`/ai/projects/${e}/board/items/${r}/unarchive`,{method:"POST",body:new URLSearchParams}),P=await V(Z);return await p.mutate(),P},[e,r,s,p]),E=c.useCallback(async()=>{if(!e||!r)throw new Error("projectId and itemId are required");const Z=await s(`/ai/projects/${e}/board/items/${r}/cancel`,{method:"POST",body:new URLSearchParams}),P=await V(Z);return await p.mutate(),await m.mutate(),P},[e,r,s,p,m]),j=c.useCallback(async Z=>{if(!e||!r)throw new Error("projectId and itemId are required");const P=await s(`/ai/projects/${e}/board/items/${r}/answer`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Z)}),L=await V(P);return await p.mutate(),L},[e,r,s,p]),S=c.useCallback(async Z=>{if(!e||!r)throw new Error("projectId and itemId are required");const P=await s(`/ai/projects/${e}/board/items/${r}/filesystem/file${k0(Z,n.includeArchived)}`);return await V(P)},[e,r,s,n.includeArchived]),C=c.useCallback(async Z=>{if(!e||!r)throw new Error("projectId and itemId are required");const P=await s(`/ai/projects/${e}/board/items/${r}/filesystem${C0(Z,n.includeArchived)}`);return await V(P)},[e,r,s,n.includeArchived]),_=c.useMemo(()=>{var Z;return((Z=m.data)==null?void 0:Z.flatMap(P=>P.data||[]))||[]},[m.data]),k=m.data&&((M=m.data[m.data.length-1])==null?void 0:M.has_more)||!1,y=m.isValidating&&!!m.data&&m.size>(((A=m.data)==null?void 0:A.length)||0);return{item:p.data||null,assignments:_,assignmentsHasMore:k,assignmentsLoadingMore:y,loadMoreAssignments:async()=>{!k||y||await m.setSize(Z=>Z+1)},taskWorkspace:v.data||{exists:!1,files:[]},taskWorkspaceLoading:!v.data&&!v.error,taskWorkspaceError:v.error||null,loading:!p.data&&!p.error||!m.data&&!m.error,error:p.error||m.error||null,updateItem:w,archiveItem:x,unarchiveItem:b,cancelItem:E,submitAnswer:j,getTaskWorkspaceFile:S,listTaskWorkspaceDirectory:C,refetch:async()=>{await p.mutate(),await m.mutate(),await v.mutate()},refetchAssignments:async()=>{await m.mutate()},refetchTaskWorkspace:async()=>{await v.mutate()}}}function kp(e,r=!0){var v;const{client:a}=je(),{data:n,error:s,mutate:i,isLoading:h,size:d,setSize:u,isValidating:f}=ta((w,x)=>{if(!r||!e||w>0&&(!x||!x.has_more))return null;const b=w===0||x==null?void 0:x.next_cursor;return["wacht-ai-thread-graphs",e,b]},async([,w,x])=>{const b=new URLSearchParams;b.set("limit","10"),x&&b.set("cursor",String(x));const E=await a(`/ai/threads/${w}/task-graphs?${b.toString()}`),S=(await V(E)).data||{data:[],limit:10,has_more:!1};return{...S,data:(S.data||[]).map(C=>({...C,nodes:Array.isArray(C.nodes)?C.nodes:[],edges:Array.isArray(C.edges)?C.edges:[],summary:C.summary||null}))}},{revalidateOnFocus:!1,refreshInterval:5e3,revalidateFirstPage:!0,revalidateAll:!1,persistSize:!0}),p=c.useMemo(()=>n?n.flatMap(w=>w.data||[]):[],[n]),m=n&&((v=n[n.length-1])==null?void 0:v.has_more)||!1,g=f&&!!n&&d>((n==null?void 0:n.length)||0);return{graphs:p,latestGraph:p[0]||null,has_more:m,loadingMore:g,loading:h,error:s,loadMore:async()=>{!m||g||await u(d+1)},refetch:async()=>{await i()}}}function Cp(e,r,a=!0){const{client:n}=je(),s=a&&e&&r?`wacht-ai-board-item-comments:${e}:${r}`:null,i=c.useCallback(async()=>{if(!e||!r)return[];const u=await n(`/ai/projects/${e}/board/items/${r}/comments`);return(await V(u)).data},[e,r,n]),h=Ae(s,i,{revalidateOnFocus:!1,refreshInterval:5e3}),d=c.useCallback(async(u,f)=>{if(!e||!r)throw new Error("projectId and itemId are required");const p=new FormData;if(p.set("body",u),f)for(const v of f)p.append("attachments",v,v.name);const m=await n(`/ai/projects/${e}/board/items/${r}/comments`,{method:"POST",body:p}),g=await V(m);return await h.mutate(),g},[e,r,n,h]);return{comments:h.data||[],loading:!h.data&&!h.error,error:h.error||null,createComment:d,refetch:async()=>{await h.mutate()}}}function Sp(e=!0){const{client:r}=je(),a=e?"wacht-ai-actor-mcp-servers":null,n=c.useCallback(async()=>{const p=await r("/ai/mcp-servers");return(await V(p)).data},[r]),{data:s,error:i,mutate:h,isLoading:d}=Ae(a,n,{revalidateOnFocus:!1}),u=c.useCallback(async p=>{const m=await r(`/ai/mcp-servers/${p}/connect`,{method:"POST",body:new URLSearchParams});return V(m)},[r]),f=c.useCallback(async p=>{const m=await r(`/ai/mcp-servers/${p}/disconnect`,{method:"POST",body:new URLSearchParams}),g=await V(m);return await h(),g},[r,h]);return{servers:s??[],loading:d,error:i,connect:u,disconnect:f,refetch:async()=>{await h()}}}function Ep(e=!0){const{client:r}=je(),a=e?"wacht-ai-external-agent-connections":null,n=c.useCallback(async()=>{const p=await r("/ai/external-connections");return(await V(p)).data},[r]),{data:s,error:i,mutate:h,isLoading:d}=Ae(a,n,{revalidateOnFocus:!1}),u=c.useCallback(async(p,m,g)=>{const v=await r(`/ai/external-connections/${encodeURIComponent(p)}/${encodeURIComponent(m)}/connect`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({return_url:(g==null?void 0:g.returnUrl)??""})}),w=await V(v);return await h(),w.data},[r,h]),f=c.useCallback(async(p,m)=>{const g=await r(`/ai/external-connections/${encodeURIComponent(p)}/${encodeURIComponent(m)}`,{method:"DELETE"}),v=await V(g);return await h(),v.data},[r,h]);return{connections:s??[],loading:d,error:i,connect:u,disconnect:f,refetch:async()=>{await h()}}}function A0(e){const r=new URLSearchParams;return r.append("url",e.url),e.description&&r.append("description",e.description),e.subscribed_events&&e.subscribed_events.forEach(a=>r.append("subscribed_events",a)),e.subscriptions&&e.subscriptions.length>0&&r.append("subscriptions",JSON.stringify(e.subscriptions)),e.headers&&Object.entries(e.headers).forEach(([a,n])=>{r.append(`headers[${a}]`,n)}),e.rate_limit_config&&(r.append("rate_limit[duration_ms]",e.rate_limit_config.duration_ms.toString()),r.append("rate_limit[max_requests]",e.rate_limit_config.max_requests.toString())),r}function Ap(e){const r=new URLSearchParams;return e.url&&r.append("url",e.url),e.description!==void 0&&r.append("description",e.description||""),e.subscribed_events&&e.subscribed_events.forEach(a=>r.append("subscribed_events",a)),e.subscriptions&&e.subscriptions.length>0&&r.append("subscriptions",JSON.stringify(e.subscriptions)),e.headers&&Object.entries(e.headers).forEach(([a,n])=>{r.append(`headers[${a}]`,n)}),e.is_active!==void 0&&r.append("is_active",e.is_active.toString()),e.rate_limit_config&&(r.append("rate_limit[duration_ms]",e.rate_limit_config.duration_ms.toString()),r.append("rate_limit[max_requests]",e.rate_limit_config.max_requests.toString())),r}function zp(e){const r=new URLSearchParams;return r.append("event_name",e.event_name),r.append("payload",JSON.stringify(e.payload||{})),r}function $p(e){const r=new URLSearchParams;return(e.delivery_ids||[]).forEach(n=>r.append("delivery_ids",n)),e.start_date&&r.append("start_date",e.start_date),e.end_date&&r.append("end_date",e.end_date),e.status&&r.append("status",e.status),e.event_name&&r.append("event_name",e.event_name),e.endpoint_id&&r.append("endpoint_id",e.endpoint_id),e.idempotency_key&&r.append("idempotency_key",e.idempotency_key),r}const za={"Content-Type":"application/x-www-form-urlencoded"};async function At(e,r){const a=await V(e);if(!a||!("data"in a))throw new Error(r);return a}async function Mp(e){const r=await e("/webhook/session",{method:"GET"});if(!r.ok)throw r.status===401||r.status===403?new Error("NO_SESSION"):new Error("Failed to fetch webhook app session");return(await At(r,"Failed to fetch webhook app session")).data}async function Lp(e,r){if(!(await e(`/session/ticket/exchange?ticket=${encodeURIComponent(r)}`,{method:"GET"})).ok)throw new Error("Failed to exchange ticket")}async function Rp(e,r){const a=A0(r),n=await e("/webhook/endpoints",{method:"POST",headers:za,body:a.toString()});return At(n,"Failed to create webhook endpoint")}async function Pp(e,r,a){const n=Ap(a),s=await e(`/webhook/endpoints/${r}`,{method:"PUT",headers:za,body:n.toString()});return At(s,"Failed to update webhook endpoint")}async function Tp(e,r){const a=await e(`/webhook/endpoints/${r}`,{method:"DELETE"});return At(a,"Failed to delete webhook endpoint")}async function Fp(e,r,a){const n=zp(a),s=await e(`/webhook/endpoints/${r}/test`,{method:"POST",headers:za,body:n.toString()});return At(s,"Failed to test webhook endpoint")}async function Zp(e){const r=await e("/webhook/rotate-secret",{method:"POST"});return At(r,"Failed to rotate signing secret")}async function Ip(e,r){const a=new URLSearchParams;for(const s of r.failure_notification_emails)a.append("failure_notification_emails",s);const n=await e("/webhook/settings",{method:"PUT",headers:za,body:a.toString()});return At(n,"Failed to update webhook settings")}async function Op(e,r){const a=$p(r),n=await e("/webhook/deliveries/replay",{method:"POST",headers:za,body:a.toString()});return At(n,"Failed to replay webhook delivery")}async function Hp(e,r){const a=await e(`/webhook/deliveries/${r}`,{method:"GET"});return At(a,"Failed to fetch delivery details")}async function Vp(e,{taskId:r}){const a=await e(`/webhook/deliveries/replay/${r}`,{method:"GET"});return At(a,"Failed to fetch replay task status")}async function Dp(e,r){const a=(r==null?void 0:r.limit)??50,n=(r==null?void 0:r.offset)??0,s=await e(`/webhook/deliveries/replay?limit=${a}&offset=${n}`,{method:"GET"});return At(s,"Failed to fetch replay tasks")}async function Np(e,{taskId:r}){const a=await e(`/webhook/deliveries/replay/${r}/cancel`,{method:"POST"});return At(a,"Failed to cancel replay task")}function Up(e){const{client:r}=je(),[a,n]=c.useState(!e),[s,i]=c.useState(!!e),[h,d]=c.useState(null),u=c.useRef(!1),f=c.useRef(!1),p=c.useRef(null),m=a,g=c.useCallback(async()=>Mp(r),[r]),{data:v,error:w,isLoading:x,mutate:b}=Ae(m?"wacht-webhook-app-session":null,g,{revalidateOnFocus:!1,shouldRetryOnError:!1});c.useEffect(()=>{if(!e||u.current||f.current||p.current===e)return;p.current=e,(async()=>{f.current=!0,i(!0);try{await Lp(r,e),u.current=!0,n(!0)}catch(O){d(O instanceof Error?O:new Error("Failed to exchange ticket"))}finally{i(!1),f.current=!1}})()},[e,r]);const E=c.useCallback(async z=>Rp(r,z),[r]),j=c.useCallback(async(z,O)=>Pp(r,z,O),[r]),S=c.useCallback(async z=>Tp(r,z),[r]),C=c.useCallback(async(z,O)=>Fp(r,z,O),[r]),_=c.useCallback(async()=>Zp(r),[r]),k=c.useCallback(async z=>Op(r,z),[r]),y=c.useCallback(async z=>Ip(r,z),[r]),M=c.useCallback(async z=>Hp(r,z),[r]),A=c.useCallback(async z=>Vp(r,z),[r]),Z=c.useCallback(async z=>Dp(r,z),[r]),P=c.useCallback(async z=>Np(r,z),[r]),L=!w||w.message!=="NO_SESSION",F=h||(w&&w.message!=="NO_SESSION"?w:null);return{hasSession:L,sessionLoading:s||m&&x,sessionError:F,sessionId:(v==null?void 0:v.session_id)||null,webhookApp:(v==null?void 0:v.webhook_app)||null,ticketExchanged:a,ticketLoading:s,refetch:async()=>{await b()},createEndpoint:E,updateEndpoint:j,deleteEndpoint:S,testEndpoint:C,rotateSecret:_,updateSettings:y,replayDelivery:k,fetchReplayTaskStatus:A,fetchReplayTasks:Z,cancelReplayTask:P,fetchDeliveryDetail:M}}function Bp(){const{client:e}=je(),r=c.useCallback(async()=>{const h=await e("/webhook/stats",{method:"GET"});return(await V(h)).data},[e]),{data:a,error:n,isLoading:s,mutate:i}=Ae("wacht-webhook-stats",r,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{stats:a||null,loading:s,error:n,refetch:()=>i()}}function Wp(){const{client:e}=je(),r=c.useCallback(async()=>{const h=await e("/webhook/endpoints",{method:"GET"});return(await V(h)).data},[e]),{data:a,error:n,isLoading:s,mutate:i}=Ae("wacht-webhook-endpoints",r,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{endpoints:a||[],loading:s,error:n,refetch:()=>i()}}function Gp(){const{client:e}=je();return{createEndpoint:c.useCallback(async a=>{const n=A0(a),s=await e("/webhook/endpoints",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n.toString()});return await V(s)},[e]),loading:!1,error:null}}function qp(){const{client:e}=je(),r=c.useCallback(async()=>{const h=await e("/webhook/events",{method:"GET"});return(await V(h)).data},[e]),{data:a,error:n,isLoading:s,mutate:i}=Ae("wacht-webhook-events",r,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{events:a||[],loading:s,error:n,refetch:()=>i()}}function Kp(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.endpoint_id&&d.set("endpoint_id",e.endpoint_id),e.status&&d.set("status",e.status),e.event_name&&d.set("event_name",e.event_name),e.limit&&d.set("limit",e.limit.toString()),e.cursor&&d.set("cursor",e.cursor);const u=await r(`/webhook/deliveries?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.endpoint_id,e.status,e.event_name,e.limit,e.cursor]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.endpoint_id&&d.set("endpoint_id",e.endpoint_id),e.status&&d.set("status",e.status),e.event_name&&d.set("event_name",e.event_name),e.limit&&d.set("limit",e.limit.toString()),e.cursor&&d.set("cursor",e.cursor),`wacht-webhook-deliveries?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{deliveries:(n==null?void 0:n.data)||[],has_more:(n==null?void 0:n.has_more)||!1,next_cursor:n==null?void 0:n.next_cursor,loading:i,error:s,refetch:()=>h()}}function Yp(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.endpoint_id&&d.set("endpoint_id",e.endpoint_id),e.fields&&e.fields.length>0&&d.set("fields",e.fields.join(","));const u=await r(`/webhook/analytics?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.start_date,e.end_date,e.endpoint_id,e.fields]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.endpoint_id&&d.set("endpoint_id",e.endpoint_id),e.fields&&e.fields.length>0&&d.set("fields",e.fields.join(",")),`wacht-webhook-analytics?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{analytics:n||null,loading:i,error:s,refetch:()=>h()}}function Qp(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.interval&&d.set("interval",e.interval),e.endpoint_id&&d.set("endpoint_id",e.endpoint_id);const u=await r(`/webhook/analytics/timeseries?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.start_date,e.end_date,e.interval,e.endpoint_id]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.interval&&d.set("interval",e.interval),e.endpoint_id&&d.set("endpoint_id",e.endpoint_id),`wacht-webhook-timeseries?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{timeseries:(n==null?void 0:n.data)||[],interval:(n==null?void 0:n.interval)||"hour",loading:i,error:s,refetch:()=>h()}}function Jp(e){const{client:r}=je(),[a,n]=c.useState(!e),[s,i]=c.useState(!!e),[h,d]=c.useState(null),u=c.useRef(!1),f=c.useRef(!1),p=c.useRef(null),m=a,g=c.useCallback(async()=>{const C=await r("/api-auth/session",{method:"GET"});if(!C.ok)throw C.status===401||C.status===403?new Error("NO_SESSION"):new Error("Failed to fetch API auth app session");return(await V(C)).data},[r]),{data:v,error:w,isLoading:x,mutate:b}=Ae(m?"wacht-api-auth-app-session":null,g,{revalidateOnFocus:!1,shouldRetryOnError:!1});c.useEffect(()=>{if(!e||u.current||f.current||p.current===e)return;p.current=e,(async()=>{f.current=!0,i(!0);try{(await r(`/session/ticket/exchange?ticket=${encodeURIComponent(e)}`,{method:"GET"})).ok?(u.current=!0,n(!0)):d(new Error("Failed to exchange ticket"))}catch(_){d(_ instanceof Error?_:new Error("Failed to exchange ticket"))}finally{i(!1),f.current=!1}})()},[e,r]);const E=!w||w.message!=="NO_SESSION",j=h||(w&&w.message!=="NO_SESSION"?w:null);return{hasSession:E,sessionLoading:s||m&&x,sessionError:j,sessionId:(v==null?void 0:v.session_id)||null,apiAuthApp:(v==null?void 0:v.api_auth_app)||null,ticketExchanged:a,ticketLoading:s,refetch:async()=>{await b()}}}function Xp(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const p=new URLSearchParams;e.status&&p.set("status",e.status);const m=await r(`/api-auth/keys${p.toString()?`?${p.toString()}`:""}`,{method:"GET"});return(await V(m)).data},[r,e.status]),{data:n,error:s,isLoading:i,mutate:h}=Ae(`wacht-api-auth-keys:${e.status||"all"}`,a,{revalidateOnFocus:!1,shouldRetryOnError:!1}),d=c.useCallback(async p=>{const m=new URLSearchParams;m.set("name",p.name),p.expires_at&&m.set("expires_at",p.expires_at);const g=await r("/api-auth/keys",{method:"POST",body:m}),v=await V(g);return await h(),v},[r,h]),u=c.useCallback(async p=>{const m=await r(`/api-auth/keys/${p.key_id}/rotate`,{method:"POST"}),g=await V(m);return await h(),g},[r,h]),f=c.useCallback(async p=>{const m=new URLSearchParams;p.reason&&m.set("reason",p.reason);const g=await r(`/api-auth/keys/${p.key_id}/revoke`,{method:"POST",body:m}),v=await V(g);return await h(),v},[r,h]);return{keys:n||[],createKey:d,rotateKey:u,revokeKey:f,loading:i,error:s,refetch:()=>h()}}function eh(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.limit&&d.set("limit",e.limit.toString()),e.cursor&&d.set("cursor",e.cursor),e.outcome&&d.set("outcome",e.outcome),e.key_id&&d.set("key_id",e.key_id),e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date);const u=await r(`/api-auth/audit/logs?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.limit,e.cursor,e.outcome,e.key_id,e.start_date,e.end_date]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.limit&&d.set("limit",e.limit.toString()),e.cursor&&d.set("cursor",e.cursor),e.outcome&&d.set("outcome",e.outcome),e.key_id&&d.set("key_id",e.key_id),e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),`wacht-api-auth-audit-logs?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{logs:(n==null?void 0:n.data)||[],limit:(n==null?void 0:n.limit)||e.limit||0,has_more:(n==null?void 0:n.has_more)||!1,next_cursor:n==null?void 0:n.next_cursor,loading:i,error:s,refetch:()=>h()}}function th(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.key_id&&d.set("key_id",e.key_id),e.include_top_keys&&d.set("include_top_keys","true"),e.include_top_paths&&d.set("include_top_paths","true"),e.include_blocked_reasons&&d.set("include_blocked_reasons","true"),e.include_rate_limits&&d.set("include_rate_limits","true"),e.top_limit&&d.set("top_limit",e.top_limit.toString());const u=await r(`/api-auth/audit/analytics?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.start_date,e.end_date,e.key_id,e.include_top_keys,e.include_top_paths,e.include_blocked_reasons,e.include_rate_limits,e.top_limit]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.key_id&&d.set("key_id",e.key_id),e.include_top_keys&&d.set("include_top_keys","true"),e.include_top_paths&&d.set("include_top_paths","true"),e.include_blocked_reasons&&d.set("include_blocked_reasons","true"),e.include_rate_limits&&d.set("include_rate_limits","true"),e.top_limit&&d.set("top_limit",e.top_limit.toString()),`wacht-api-auth-audit-analytics?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{analytics:n||null,loading:i,error:s,refetch:()=>h()}}function rh(e={}){const{client:r}=je(),a=c.useCallback(async()=>{const d=new URLSearchParams;e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.interval&&d.set("interval",e.interval),e.key_id&&d.set("key_id",e.key_id);const u=await r(`/api-auth/audit/timeseries?${d.toString()}`,{method:"GET"});return(await V(u)).data},[r,e.start_date,e.end_date,e.interval,e.key_id]),{data:n,error:s,isLoading:i,mutate:h}=Ae(()=>{const d=new URLSearchParams;return e.start_date&&d.set("start_date",e.start_date),e.end_date&&d.set("end_date",e.end_date),e.interval&&d.set("interval",e.interval),e.key_id&&d.set("key_id",e.key_id),`wacht-api-auth-audit-timeseries?${d.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{timeseries:(n==null?void 0:n.data)||[],interval:(n==null?void 0:n.interval)||e.interval||"hour",loading:i,error:s,refetch:()=>h()}}const z0=()=>{const{client:e}=je(),[r,a]=c.useState(!1),[n,s]=c.useState(null),[i,h]=c.useState(null),d=c.useCallback(async f=>{a(!0),s(null),h(null);try{const p=new FormData;p.append("token",f);const m=await e("/organizations/invitations/accept",{method:"POST",body:p}),v=(await V(m)).data;return h(v),v.error_code&&s(v.message||"Failed to accept invitation"),v}catch(p){const m=p.message||"Failed to accept invitation";s(m);const g={error_code:"NETWORK_ERROR",message:m};return h(g),g}finally{a(!1)}},[e]),u=c.useCallback(()=>{s(null),h(null)},[]);return{acceptInvitation:d,invitationData:i,loading:r,error:n,reset:u}},ah=({children:e})=>{const{loading:r}=Se();return r?null:t.jsx(t.Fragment,{children:e})},nh=({children:e})=>{const{loading:r}=Se();return r?t.jsx(t.Fragment,{children:e}):null};function oh(e){var r=Object.create(null);return function(a){return r[a]===void 0&&(r[a]=e(a)),r[a]}}var sh=/^((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|fetchpriority|fetchPriority|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|popover|popoverTarget|popoverTargetAction|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)-.*))$/,ih=oh(function(e){return sh.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91}),et="-ms-",ya="-moz-",Ue="-webkit-",$0="comm",$n="rule",ws="decl",ch="@import",lh="@namespace",M0="@keyframes",dh="@layer",L0=Math.abs,ys=String.fromCharCode,Jo=Object.assign;function uh(e,r){return pt(e,0)^45?(((r<<2^pt(e,0))<<2^pt(e,1))<<2^pt(e,2))<<2^pt(e,3):0}function R0(e){return e.trim()}function Wt(e,r){return(e=r.exec(e))?e[0]:e}function Me(e,r,a){return e.replace(r,a)}function hn(e,r,a){return e.indexOf(r,a)}function pt(e,r){return e.charCodeAt(r)|0}function Lr(e,r,a){return e.slice(r,a)}function Mt(e){return e.length}function P0(e){return e.length}function va(e,r){return r.push(e),e}function ph(e,r){return e.map(r).join("")}function ui(e,r){return e.filter(function(a){return!Wt(a,r)})}var Mn=1,Qr=1,T0=0,Et=0,lt=0,ra="";function Ln(e,r,a,n,s,i,h,d){return{value:e,root:r,parent:a,type:n,props:s,children:i,line:Mn,column:Qr,length:h,return:"",siblings:d}}function tr(e,r){return Jo(Ln("",null,null,"",null,null,0,e.siblings),e,{length:-e.length},r)}function Or(e){for(;e.root;)e=tr(e.root,{children:[e]});va(e,e.siblings)}function hh(){return lt}function fh(){return lt=Et>0?pt(ra,--Et):0,Qr--,lt===10&&(Qr=1,Mn--),lt}function Pt(){return lt=Et<T0?pt(ra,Et++):0,Qr++,lt===10&&(Qr=1,Mn++),lt}function ar(){return pt(ra,Et)}function fn(){return Et}function Rn(e,r){return Lr(ra,e,r)}function Ca(e){switch(e){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 mh(e){return Mn=Qr=1,T0=Mt(ra=e),Et=0,[]}function gh(e){return ra="",e}function Xn(e){return R0(Rn(Et-1,Xo(e===91?e+2:e===40?e+1:e)))}function vh(e){for(;(lt=ar())&&lt<33;)Pt();return Ca(e)>2||Ca(lt)>3?"":" "}function xh(e,r){for(;--r&&Pt()&&!(lt<48||lt>102||lt>57&&lt<65||lt>70&&lt<97););return Rn(e,fn()+(r<6&&ar()==32&&Pt()==32))}function Xo(e){for(;Pt();)switch(lt){case e:return Et;case 34:case 39:e!==34&&e!==39&&Xo(lt);break;case 40:e===41&&Xo(e);break;case 92:Pt();break}return Et}function bh(e,r){for(;Pt()&&e+lt!==57;)if(e+lt===84&&ar()===47)break;return"/*"+Rn(r,Et-1)+"*"+ys(e===47?e:Pt())}function wh(e){for(;!Ca(ar());)Pt();return Rn(e,Et)}function yh(e){return gh(mn("",null,null,null,[""],e=mh(e),0,[0],e))}function mn(e,r,a,n,s,i,h,d,u){for(var f=0,p=0,m=h,g=0,v=0,w=0,x=1,b=1,E=1,j=0,S="",C=s,_=i,k=n,y=S;b;)switch(w=j,j=Pt()){case 40:if(w!=108&&pt(y,m-1)==58){hn(y+=Me(Xn(j),"&","&\f"),"&\f",L0(f?d[f-1]:0))!=-1&&(E=-1);break}case 34:case 39:case 91:y+=Xn(j);break;case 9:case 10:case 13:case 32:y+=vh(w);break;case 92:y+=xh(fn()-1,7);continue;case 47:switch(ar()){case 42:case 47:va(jh(bh(Pt(),fn()),r,a,u),u),(Ca(w||1)==5||Ca(ar()||1)==5)&&Mt(y)&&Lr(y,-1,void 0)!==" "&&(y+=" ");break;default:y+="/"}break;case 123*x:d[f++]=Mt(y)*E;case 125*x:case 59:case 0:switch(j){case 0:case 125:b=0;case 59+p:E==-1&&(y=Me(y,/\f/g,"")),v>0&&(Mt(y)-m||x===0&&w===47)&&va(v>32?hi(y+";",n,a,m-1,u):hi(Me(y," ","")+";",n,a,m-2,u),u);break;case 59:y+=";";default:if(va(k=pi(y,r,a,f,p,s,d,S,C=[],_=[],m,i),i),j===123)if(p===0)mn(y,r,k,k,C,i,m,d,_);else{switch(g){case 99:if(pt(y,3)===110)break;case 108:if(pt(y,2)===97)break;default:p=0;case 100:case 109:case 115:}p?mn(e,k,k,n&&va(pi(e,k,k,0,0,s,d,S,s,C=[],m,_),_),s,_,m,d,n?C:_):mn(y,k,k,k,[""],_,0,d,_)}}f=p=v=0,x=E=1,S=y="",m=h;break;case 58:m=1+Mt(y),v=w;default:if(x<1){if(j==123)--x;else if(j==125&&x++==0&&fh()==125)continue}switch(y+=ys(j),j*x){case 38:E=p>0?1:(y+="\f",-1);break;case 44:d[f++]=(Mt(y)-1)*E,E=1;break;case 64:ar()===45&&(y+=Xn(Pt())),g=ar(),p=m=Mt(S=y+=wh(fn())),j++;break;case 45:w===45&&Mt(y)==2&&(x=0)}}return i}function pi(e,r,a,n,s,i,h,d,u,f,p,m){for(var g=s-1,v=s===0?i:[""],w=P0(v),x=0,b=0,E=0;x<n;++x)for(var j=0,S=Lr(e,g+1,g=L0(b=h[x])),C=e;j<w;++j)(C=R0(b>0?v[j]+" "+S:Me(S,/&\f/g,v[j])))&&(u[E++]=C);return Ln(e,r,a,s===0?$n:d,u,f,p,m)}function jh(e,r,a,n){return Ln(e,r,a,$0,ys(hh()),Lr(e,2,-2),0,n)}function hi(e,r,a,n,s){return Ln(e,r,a,ws,Lr(e,0,n),Lr(e,n+1,-1),n,s)}function F0(e,r,a){switch(uh(e,r)){case 5103:return Ue+"print-"+e+e;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 4215:case 6389:case 5109:case 5365:case 5621:case 3829:case 6391:case 5879:case 5623:case 6135:case 4599:return Ue+e+e;case 4855:return Ue+e.replace("add","source-over").replace("substract","source-out").replace("intersect","source-in").replace("exclude","xor")+e;case 4789:return ya+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Ue+e+ya+e+et+e+e;case 5936:switch(pt(e,r+11)){case 114:return Ue+e+et+Me(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Ue+e+et+Me(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Ue+e+et+Me(e,/[svh]\w+-[tblr]{2}/,"lr")+e}case 6828:case 4268:case 2903:return Ue+e+et+e+e;case 6165:return Ue+e+et+"flex-"+e+e;case 5187:return Ue+e+Me(e,/(\w+).+(:[^]+)/,Ue+"box-$1$2"+et+"flex-$1$2")+e;case 5443:return Ue+e+et+"flex-item-"+Me(e,/flex-|-self/g,"")+(Wt(e,/flex-|baseline/)?"":et+"grid-row-"+Me(e,/flex-|-self/g,""))+e;case 4675:return Ue+e+et+"flex-line-pack"+Me(e,/align-content|flex-|-self/g,"")+e;case 5548:return Ue+e+et+Me(e,"shrink","negative")+e;case 5292:return Ue+e+et+Me(e,"basis","preferred-size")+e;case 6060:return Ue+"box-"+Me(e,"-grow","")+Ue+e+et+Me(e,"grow","positive")+e;case 4554:return Ue+Me(e,/([^-])(transform)/g,"$1"+Ue+"$2")+e;case 6187:return Me(Me(Me(e,/(zoom-|grab)/,Ue+"$1"),/(image-set)/,Ue+"$1"),e,"")+e;case 5495:case 3959:return Me(e,/(image-set\([^]*)/,Ue+"$1$`$1");case 4968:return Me(Me(e,/(.+:)(flex-)?(.*)/,Ue+"box-pack:$3"+et+"flex-pack:$3"),/space-between/,"justify")+Ue+e+e;case 4200:if(!Wt(e,/flex-|baseline/))return et+"grid-column-align"+Lr(e,r)+e;break;case 2592:case 3360:return et+Me(e,"template-","")+e;case 4384:case 3616:return a&&a.some(function(n,s){return r=s,Wt(n.props,/grid-\w+-end/)})?~hn(e+(a=a[r].value),"span",0)?e:et+Me(e,"-start","")+e+et+"grid-row-span:"+(~hn(a,"span",0)?Wt(a,/\d+/):+Wt(a,/\d+/)-+Wt(e,/\d+/))+";":et+Me(e,"-start","")+e;case 4896:case 4128:return a&&a.some(function(n){return Wt(n.props,/grid-\w+-start/)})?e:et+Me(Me(e,"-end","-span"),"span ","")+e;case 4095:case 3583:case 4068:case 2532:return Me(e,/(.+)-inline(.+)/,Ue+"$1$2")+e;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(Mt(e)-1-r>6)switch(pt(e,r+1)){case 109:if(pt(e,r+4)!==45)break;case 102:return Me(e,/(.+:)(.+)-([^]+)/,"$1"+Ue+"$2-$3$1"+ya+(pt(e,r+3)==108?"$3":"$2-$3"))+e;case 115:return~hn(e,"stretch",0)?F0(Me(e,"stretch","fill-available"),r,a)+e:e}break;case 5152:case 5920:return Me(e,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(n,s,i,h,d,u,f){return et+s+":"+i+f+(h?et+s+"-span:"+(d?u:+u-+i)+f:"")+e});case 4949:if(pt(e,r+6)===121)return Me(e,":",":"+Ue)+e;break;case 6444:switch(pt(e,pt(e,14)===45?18:11)){case 120:return Me(e,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+Ue+(pt(e,14)===45?"inline-":"")+"box$3$1"+Ue+"$2$3$1"+et+"$2box$3")+e;case 100:return Me(e,":",":"+et)+e}break;case 5719:case 2647:case 2135:case 3927:case 2391:return Me(e,"scroll-","scroll-snap-")+e}return e}function yn(e,r){for(var a="",n=0;n<e.length;n++)a+=r(e[n],n,e,r)||"";return a}function _h(e,r,a,n){switch(e.type){case dh:if(e.children.length)break;case ch:case lh:case ws:return e.return=e.return||e.value;case $0:return"";case M0:return e.return=e.value+"{"+yn(e.children,n)+"}";case $n:if(!Mt(e.value=e.props.join(",")))return""}return Mt(a=yn(e.children,n))?e.return=e.value+"{"+a+"}":""}function kh(e){var r=P0(e);return function(a,n,s,i){for(var h="",d=0;d<r;d++)h+=e[d](a,n,s,i)||"";return h}}function Ch(e){return function(r){r.root||(r=r.return)&&e(r)}}function Sh(e,r,a,n){if(e.length>-1&&!e.return)switch(e.type){case ws:e.return=F0(e.value,e.length,a);return;case M0:return yn([tr(e,{value:Me(e.value,"@","@"+Ue)})],n);case $n:if(e.length)return ph(a=e.props,function(s){switch(Wt(s,n=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":Or(tr(e,{props:[Me(s,/:(read-\w+)/,":"+ya+"$1")]})),Or(tr(e,{props:[s]})),Jo(e,{props:ui(a,n)});break;case"::placeholder":Or(tr(e,{props:[Me(s,/:(plac\w+)/,":"+Ue+"input-$1")]})),Or(tr(e,{props:[Me(s,/:(plac\w+)/,":"+ya+"$1")]})),Or(tr(e,{props:[Me(s,/:(plac\w+)/,et+"input-$1")]})),Or(tr(e,{props:[s]})),Jo(e,{props:ui(a,n)});break}return""})}}var eo,to;const Rr=typeof process<"u"&&process.env!==void 0&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",Z0="active",I0="data-styled-version",Pn="6.4.1",js=`/*!sc*/
19
19
  `,ja=typeof window<"u"&&typeof document<"u";function fi(e){if(typeof process<"u"&&process.env!==void 0){const r=process.env[e];if(r!==void 0&&r!=="")return r!=="false"}}const Eh=!!(typeof SC_DISABLE_SPEEDY=="boolean"?SC_DISABLE_SPEEDY:(to=(eo=fi("REACT_APP_SC_DISABLE_SPEEDY"))!==null&&eo!==void 0?eo:fi("SC_DISABLE_SPEEDY"))!==null&&to!==void 0?to:typeof process>"u"||process.env===void 0||process.env.NODE_ENV!=="production"),O0="sc-keyframes-",Ah=process.env.NODE_ENV!=="production"?{1:`Cannot create styled-component for component: %s.
20
20
 
21
21
  `,2:`Can't collect styles once you've consumed a \`ServerStyleSheet\`'s styles! \`ServerStyleSheet\` is a one off instance for each server-side render cycle.