@wacht/jsx 1.0.0-beta.7 → 1.0.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +2 -2
- package/dist/index.es.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*
|
|
16
16
|
* This source code is licensed under the MIT license found in the
|
|
17
17
|
* LICENSE file in the root directory of this source tree.
|
|
18
|
-
*/var li;function Rh(){return li||(li=1,process.env.NODE_ENV!=="production"&&(function(){function r(m,x){return m===x&&(m!==0||1/m===1/x)||m!==m&&x!==x}function t(m,x){d||o.startTransition===void 0||(d=!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 v=x();if(!f){var C=x();s(v,C)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),f=!0)}C=h({inst:{value:v,getSnapshot:x}});var j=C[0].inst,_=C[1];return l(function(){j.value=v,j.getSnapshot=x,a(j)&&_({inst:j})},[m,v,x]),c(function(){return a(j)&&_({inst:j}),m(function(){a(j)&&_({inst:j})})},[m]),u(v),v}function a(m){var x=m.getSnapshot;m=m.value;try{var v=x();return!s(m,v)}catch{return!0}}function n(m,x){return x()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var o=i,s=typeof Object.is=="function"?Object.is:r,h=o.useState,c=o.useEffect,l=o.useLayoutEffect,u=o.useDebugValue,d=!1,f=!1,g=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?n:t;ro.useSyncExternalStore=o.useSyncExternalStore!==void 0?o.useSyncExternalStore:g,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()),ro}var di;function Ph(){return di||(di=1,process.env.NODE_ENV==="production"?Ua.exports=Eh():Ua.exports=Rh()),Ua.exports}var Vo=Ph();const ed=0,rd=1,td=2,ui=3;var hi=Object.prototype.hasOwnProperty;function Go(r,t){var a,n;if(r===t)return!0;if(r&&t&&(a=r.constructor)===t.constructor){if(a===Date)return r.getTime()===t.getTime();if(a===RegExp)return r.toString()===t.toString();if(a===Array){if((n=r.length)===t.length)for(;n--&&Go(r[n],t[n]););return n===-1}if(!a||typeof r=="object"){n=0;for(a in r)if(hi.call(r,a)&&++n&&!hi.call(t,a)||!(a in t)||!Go(r[a],t[a]))return!1;return Object.keys(t).length===n}}return r!==r&&t!==t}const Lr=new WeakMap,Yr=()=>{},ar=Yr(),Ho=Object,xe=r=>r===ar,kr=r=>typeof r=="function",ct=(r,t)=>({...r,...t}),ad=r=>kr(r.then),to={},Ba={},js="undefined",Da=typeof window!=js,qo=typeof document!=js,Th=Da&&"Deno"in window,Ah=()=>Da&&typeof window.requestAnimationFrame!=js,ot=(r,t)=>{const a=Lr.get(r);return[()=>!xe(t)&&r.get(t)||to,n=>{if(!xe(t)){const o=r.get(t);t in Ba||(Ba[t]=o),a[5](t,ct(o,n),o||to)}},a[6],()=>!xe(t)&&t in Ba?Ba[t]:!xe(t)&&r.get(t)||to]};let Ko=!0;const Ih=()=>Ko,[Yo,Qo]=Da&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Yr,Yr],Lh=()=>{const r=qo&&document.visibilityState;return xe(r)||r!=="hidden"},Mh=r=>(qo&&document.addEventListener("visibilitychange",r),Yo("focus",r),()=>{qo&&document.removeEventListener("visibilitychange",r),Qo("focus",r)}),Oh=r=>{const t=()=>{Ko=!0,r()},a=()=>{Ko=!1};return Yo("online",t),Yo("offline",a),()=>{Qo("online",t),Qo("offline",a)}},Dh={isOnline:Ih,isVisible:Lh},Fh={initFocus:Mh,initReconnect:Oh},pi=!i.useId,Jt=!Da||Th,Nh=r=>Ah()?window.requestAnimationFrame(r):setTimeout(r,1),jn=Jt?i.useEffect:i.useLayoutEffect,ao=typeof navigator<"u"&&navigator.connection,fi=!Jt&&ao&&(["slow-2g","2g"].includes(ao.effectiveType)||ao.saveData),Wa=new WeakMap,Uh=r=>Ho.prototype.toString.call(r),no=(r,t)=>r===`[object ${t}]`;let Bh=0;const Zo=r=>{const t=typeof r,a=Uh(r),n=no(a,"Date"),o=no(a,"RegExp"),s=no(a,"Object");let h,c;if(Ho(r)===r&&!n&&!o){if(h=Wa.get(r),h)return h;if(h=++Bh+"~",Wa.set(r,h),Array.isArray(r)){for(h="@",c=0;c<r.length;c++)h+=Zo(r[c])+",";Wa.set(r,h)}if(s){h="#";const l=Ho.keys(r).sort();for(;!xe(c=l.pop());)xe(r[c])||(h+=c+":"+Zo(r[c])+",");Wa.set(r,h)}}else h=n?r.toJSON():t=="symbol"?r.toString():t=="string"?JSON.stringify(r):""+r;return h},Aa=r=>{if(kr(r))try{r=r()}catch{r=""}const t=r;return r=typeof r=="string"?r:(Array.isArray(r)?r.length:r)?Zo(r):"",[r,t]};let Wh=0;const Jo=()=>++Wh;async function nd(...r){const[t,a,n,o]=r,s=ct({populateCache:!0,throwOnError:!0},typeof o=="boolean"?{revalidate:o}:o||{});let h=s.populateCache;const c=s.rollbackOnError;let l=s.optimisticData;const u=g=>typeof c=="function"?c(g):c!==!1,d=s.throwOnError;if(kr(a)){const g=a,m=[],x=t.keys();for(const v of x)!/^\$(inf|sub)\$/.test(v)&&g(t.get(v)._k)&&m.push(v);return Promise.all(m.map(f))}return f(a);async function f(g){const[m]=Aa(g);if(!m)return;const[x,v]=ot(t,m),[C,j,_,z]=Lr.get(t),w=()=>{const M=C[m];return(kr(s.revalidate)?s.revalidate(x().data,g):s.revalidate!==!1)&&(delete _[m],delete z[m],M&&M[0])?M[0](td).then(()=>x().data):x().data};if(r.length<3)return w();let b=n,E,y=!1;const S=Jo();j[m]=[S,0];const k=!xe(l),$=x(),P=$.data,T=$._c,A=xe(T)?P:T;if(k&&(l=kr(l)?l(A,P):l,v({data:l,_c:A})),kr(b))try{b=b(A)}catch(M){E=M,y=!0}if(b&&ad(b))if(b=await b.catch(M=>{E=M,y=!0}),S!==j[m][0]){if(y)throw E;return b}else y&&k&&u(E)&&(h=!0,v({data:A,_c:ar}));if(h&&!y)if(kr(h)){const M=h(b,A);v({data:M,error:ar,_c:ar})}else v({data:b,error:ar,_c:ar});if(j[m][1]=Jo(),Promise.resolve(w()).then(()=>{v({_c:ar})}),y){if(d)throw E;return}return b}}const gi=(r,t)=>{for(const a in r)r[a][0]&&r[a][0](t)},Vh=(r,t)=>{if(!Lr.has(r)){const a=ct(Fh,t),n=Object.create(null),o=nd.bind(ar,r);let s=Yr;const h=Object.create(null),c=(d,f)=>{const g=h[d]||[];return h[d]=g,g.push(f),()=>g.splice(g.indexOf(f),1)},l=(d,f,g)=>{r.set(d,f);const m=h[d];if(m)for(const x of m)x(f,g)},u=()=>{if(!Lr.has(r)&&(Lr.set(r,[n,Object.create(null),Object.create(null),Object.create(null),o,l,c]),!Jt)){const d=a.initFocus(setTimeout.bind(ar,gi.bind(ar,n,ed))),f=a.initReconnect(setTimeout.bind(ar,gi.bind(ar,n,rd)));s=()=>{d&&d(),f&&f(),Lr.delete(r)}}};return u(),[r,o,u,s]}return[r,Lr.get(r)[4]]},Gh=(r,t,a,n,o)=>{const s=a.errorRetryCount,h=o.retryCount,c=~~((Math.random()+.5)*(1<<(h<8?h:8)))*a.errorRetryInterval;!xe(s)&&h>s||setTimeout(n,c,o)},Hh=Go,[_s,_a]=Vh(new Map),qh=ct({onLoadingSlow:Yr,onSuccess:Yr,onError:Yr,onErrorRetry:Gh,onDiscarded:Yr,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:fi?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:fi?5e3:3e3,compare:Hh,isPaused:()=>!1,cache:_s,mutate:_a,fallback:{}},Dh),Kh=(r,t)=>{const a=ct(r,t);if(t){const{use:n,fallback:o}=r,{use:s,fallback:h}=t;n&&s&&(a.use=n.concat(s)),o&&h&&(a.fallback=ct(o,h))}return a},Yh=i.createContext({}),od="$inf$",sd=Da&&window.__SWR_DEVTOOLS_USE__,Qh=sd?window.__SWR_DEVTOOLS_USE__:[],Zh=()=>{sd&&(window.__SWR_DEVTOOLS_REACT__=i)},id=r=>kr(r[1])?[r[0],r[1],r[2]||{}]:[r[0],null,(r[1]===null?r[2]:r[1])||{}],cd=()=>{const r=i.useContext(Yh);return i.useMemo(()=>ct(qh,r),[r])},Jh=r=>(t,a,n)=>r(t,a&&((...s)=>{const[h]=Aa(t),[,,,c]=Lr.get(_s);if(h.startsWith(od))return a(...s);const l=c[h];return xe(l)?a(...s):(delete c[h],l)}),n),Xh=Qh.concat(Jh),ep=r=>function(...a){const n=cd(),[o,s,h]=id(a),c=Kh(n,h);let l=r;const{use:u}=c,d=(u||[]).concat(Xh);for(let f=d.length;f--;)l=d[f](l);return l(o,s||c.fetcher||null,c)},rp=(r,t,a)=>{const n=t[r]||(t[r]=[]);return n.push(a),()=>{const o=n.indexOf(a);o>=0&&(n[o]=n[n.length-1],n.pop())}},tp=(r,t)=>(...a)=>{const[n,o,s]=id(a),h=(s.use||[]).concat(t);return r(n,o,{...s,use:h})};Zh();const oo=i.use||(r=>{switch(r.status){case"pending":throw r;case"fulfilled":return r.value;case"rejected":throw r.reason;default:throw r.status="pending",r.then(t=>{r.status="fulfilled",r.value=t},t=>{r.status="rejected",r.reason=t}),r}}),so={dedupe:!0},mi=Promise.resolve(ar),ap=()=>Yr,np=(r,t,a)=>{const{cache:n,compare:o,suspense:s,fallbackData:h,revalidateOnMount:c,revalidateIfStale:l,refreshInterval:u,refreshWhenHidden:d,refreshWhenOffline:f,keepPreviousData:g,strictServerPrefetchWarning:m}=a,[x,v,C,j]=Lr.get(n),[_,z]=Aa(r),w=i.useRef(!1),b=i.useRef(!1),E=i.useRef(_),y=i.useRef(t),S=i.useRef(a),k=()=>S.current,$=()=>k().isVisible()&&k().isOnline(),[P,T,A,M]=ot(n,_),F=i.useRef({}).current,D=xe(h)?xe(a.fallback)?ar:a.fallback[_]:h,O=(ge,Se)=>{for(const ke in F){const de=ke;if(de==="data"){if(!o(ge[de],Se[de])&&(!xe(ge[de])||!o(he,Se[de])))return!1}else if(Se[de]!==ge[de])return!1}return!0},L=!w.current,I=i.useMemo(()=>{const ge=P(),Se=M(),ke=U=>{const G=ct(U);return delete G._k,(()=>{if(!_||!t||k().isPaused())return!1;if(L&&!xe(c))return c;const pe=xe(D)?G.data:D;return xe(pe)||l})()?{isValidating:!0,isLoading:!0,...G}:G},de=ke(ge),Y=ge===Se?de:ke(Se);let H=de;return[()=>{const U=ke(P());return O(U,H)?(H.data=U.data,H.isLoading=U.isLoading,H.isValidating=U.isValidating,H.error=U.error,H):(H=U,U)},()=>Y]},[n,_]),R=Vo.useSyncExternalStore(i.useCallback(ge=>A(_,(Se,ke)=>{O(ke,Se)||ge()}),[n,_]),I[0],I[1]),B=x[_]&&x[_].length>0,q=R.data,K=xe(q)?D&&ad(D)?oo(D):D:q,ie=R.error,ee=i.useRef(K),he=g?xe(q)?xe(ee.current)?K:ee.current:q:K,se=_&&xe(K),Q=i.useRef(null);!Jt&&Vo.useSyncExternalStore(ap,()=>(Q.current=!1,Q),()=>(Q.current=!0,Q));const le=Q.current;m&&le&&!s&&se&&console.warn(`Missing pre-initiated data for serialized key "${_}" 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 X=!_||!t||k().isPaused()||B&&!xe(ie)?!1:L&&!xe(c)?c:s?xe(K)?!1:l:xe(K)||l,Ie=L&&X,Oe=xe(R.isValidating)?Ie:R.isValidating,Ue=xe(R.isLoading)?Ie:R.isLoading,He=i.useCallback(async ge=>{const Se=y.current;if(!_||!Se||b.current||k().isPaused())return!1;let ke,de,Y=!0;const H=ge||{},U=!C[_]||!H.dedupe,G=()=>pi?!b.current&&_===E.current&&w.current:_===E.current,fe={isValidating:!1,isLoading:!1},pe=()=>{T(fe)},V=()=>{const Re=C[_];Re&&Re[1]===de&&delete C[_]},ne={isValidating:!0};xe(P().data)&&(ne.isLoading=!0);try{if(U&&(T(ne),a.loadingTimeout&&xe(P().data)&&setTimeout(()=>{Y&&G()&&k().onLoadingSlow(_,a)},a.loadingTimeout),C[_]=[Se(z),Jo()]),[ke,de]=C[_],ke=await ke,U&&setTimeout(V,a.dedupingInterval),!C[_]||C[_][1]!==de)return U&&G()&&k().onDiscarded(_),!1;fe.error=ar;const Re=v[_];if(!xe(Re)&&(de<=Re[0]||de<=Re[1]||Re[1]===0))return pe(),U&&G()&&k().onDiscarded(_),!1;const Fe=P().data;fe.data=o(Fe,ke)?Fe:ke,U&&G()&&k().onSuccess(ke,_,a)}catch(Re){V();const Fe=k(),{shouldRetryOnError:Ze}=Fe;Fe.isPaused()||(fe.error=Re,U&&G()&&(Fe.onError(Re,_,Fe),(Ze===!0||kr(Ze)&&Ze(Re))&&(!k().revalidateOnFocus||!k().revalidateOnReconnect||$())&&Fe.onErrorRetry(Re,_,Fe,ur=>{const or=x[_];or&&or[0]&&or[0](ui,ur)},{retryCount:(H.retryCount||0)+1,dedupe:!0})))}return Y=!1,pe(),!0},[_,n]),Xe=i.useCallback((...ge)=>nd(n,E.current,...ge),[]);if(jn(()=>{y.current=t,S.current=a,xe(q)||(ee.current=q)}),jn(()=>{if(!_)return;const ge=He.bind(ar,so);let Se=0;k().revalidateOnFocus&&(Se=Date.now()+k().focusThrottleInterval);const de=rp(_,x,(Y,H={})=>{if(Y==ed){const U=Date.now();k().revalidateOnFocus&&U>Se&&$()&&(Se=U+k().focusThrottleInterval,ge())}else if(Y==rd)k().revalidateOnReconnect&&$()&&ge();else{if(Y==td)return He();if(Y==ui)return He(H)}});return b.current=!1,E.current=_,w.current=!0,T({_k:z}),X&&(C[_]||(xe(K)||Jt?ge():Nh(ge))),()=>{b.current=!0,de()}},[_]),jn(()=>{let ge;function Se(){const de=kr(u)?u(P().data):u;de&&ge!==-1&&(ge=setTimeout(ke,de))}function ke(){!P().error&&(d||k().isVisible())&&(f||k().isOnline())?He(so).then(Se):Se()}return Se(),()=>{ge&&(clearTimeout(ge),ge=-1)}},[u,d,f,_]),i.useDebugValue(he),s){if(!pi&&Jt&&se)throw new Error("Fallback data is required when using Suspense in SSR.");se&&(y.current=t,S.current=a,b.current=!1);const ge=j[_],Se=!xe(ge)&&se?Xe(ge):mi;if(oo(Se),!xe(ie)&&se)throw ie;const ke=se?He(so):mi;!xe(he)&&se&&(ke.status="fulfilled",ke.value=!0),oo(ke)}return{mutate:Xe,get data(){return F.data=!0,he},get error(){return F.error=!0,ie},get isValidating(){return F.isValidating=!0,Oe},get isLoading(){return F.isLoading=!0,Ue}}},_e=ep(np),hr=()=>{const{adapter:r,deployment:t}=ye(),a=r.useNavigate(),n=(l,u)=>{a?a(l,u):window.location.href=l},o=l=>{if(l)return l;const d=new URLSearchParams(window.location.search).get("redirect_uri");return d||window.location.href};return{navigate:n,navigateToSignIn:l=>{if(!t)return;const u=o(l),d=new URLSearchParams;d.set("redirect_uri",u),(t==null?void 0:t.mode)==="staging"&&d.set("__dev_session__",nr(t.backend_host)??""),n(`${t.ui_settings.sign_in_page_url}?${d.toString()}`,{replace:!0})},navigateToAccountSelection:l=>{if(!t)return;const u=o(l),d=new URLSearchParams;d.set("redirect_uri",u),(t==null?void 0:t.mode)==="staging"&&d.set("__dev_session__",nr(t.backend_host)??""),n(`https://${t.frontend_host}?${d.toString()}`,{replace:!0})},navigateToSignUp:l=>{if(!t)return;const u=o(l),d=new URLSearchParams;d.set("redirect_uri",u),(t==null?void 0:t.mode)==="staging"&&d.set("__dev_session__",nr(t.backend_host)??""),n(`${t.ui_settings.sign_up_page_url}?${d.toString()}`,{replace:!0})}}};async function op(r){const t=await r("/session",{method:"GET"});return(await N(t)).data}async function sp(r,t){const a=await r(`/session/switch-sign-in?sign_in_id=${t}`,{method:"POST"});return N(a)}async function ip(r,t){const a=t?`/session/sign-out?sign_in_id=${t}`:"/session/sign-out",n=await r(a,{method:"POST"});return N(n)}async function cp(r,t){const a=await r(`/session/switch-organization${t?`?organization_id=${t}`:""}`,{method:"POST"});return N(a)}async function lp(r,t){const a=await r(`/session/switch-workspace?workspace_id=${t}`,{method:"POST"});return N(a)}async function dp(r,t){const a=await r(`/session/ticket/exchange?ticket=${encodeURIComponent(t)}`,{method:"GET"});return N(a)}const Xo=new Map,ka=new Map;function Mr(){Xo.clear(),ka.clear()}async function up(r,t){const a=await r(`/session/token${t?`?template=${t}`:""}`);return N(a)}function Je(){const{client:r,loading:t}=me(),{deployment:a}=ye(),{navigate:n}=hr(),{cache:o}=cd(),{data:s,error:h,mutate:c,isLoading:l}=_e(t?null:"/session",()=>op(r),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),u=i.useCallback(async()=>{await c(void 0,{revalidate:!0})},[c]),d=i.useCallback(async(f="default")=>{if(!s)throw new Error("no session");const g=Xo.get(f);if(g&&g.expires>Date.now())return(g==null?void 0:g.token)||"";ka.get(f)||ka.set(f,up(r,f));const m=await ka.get(f);return ka.delete(f),Xo.set(f,m.data),m.data.token},[r,s==null?void 0:s.active_signin]);return t||!s||l?{loading:!0,error:h,session:null,switchSignIn:null,switchOrganization:null,switchWorkspace:null,exchangeTicket:null,signOut:null,getToken:null,refetch:u}:{loading:l,error:h,session:s,switchSignIn:async f=>{await sp(r,f),Mr(),await _a("/me/organization-memberships",void 0,{revalidate:!1}),await _a("/me/workspace-memberships",void 0,{revalidate:!1}),await c(void 0,{revalidate:!0}),await _a("/me/organization-memberships"),await _a("/me/workspace-memberships")},signOut:async f=>{await ip(r,f);const g=["/session","/user","/me/signins","/me/organization-memberships","/me/workspace-memberships","wacht-notifications:scope-unread"],m=["wacht-notifications:","wacht-agent-sessions:","wacht-agent-contexts:","wacht-org-domains:","wacht-api-workspaces:","wacht-api-organizations:"];if(o instanceof Map){const x=Array.from(o.keys());for(const v of x){let C=!1;(g.includes(v)||typeof v=="string"&&m.some(j=>v.startsWith(j)))&&(C=!0),C&&o.delete(v)}}Mr(),await c(void 0,{revalidate:!0}),a!=null&&a.ui_settings&&(f&&a.ui_settings.after_sign_out_one_page_url?n(a.ui_settings.after_sign_out_one_page_url):!f&&a.ui_settings.after_sign_out_all_page_url&&n(a.ui_settings.after_sign_out_all_page_url))},switchOrganization:async f=>{await cp(r,f),Mr(),await c(void 0,{revalidate:!0})},switchWorkspace:async f=>{await lp(r,f),Mr(),await c(void 0,{revalidate:!0})},exchangeTicket:async f=>{await dp(r,f),Mr(),await c(void 0,{revalidate:!0})},getToken:d,refetch:u}}const Dr=()=>{const{organizationMemberships:r,refetch:t,loading:a}=dt(),{client:n}=me(),{refetch:o}=Je(),s=i.useCallback(async L=>(await N(await n(`/organizations/${L.id}/roles`,{method:"GET"}))).data,[n]),h=i.useCallback(async(L,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 N(await n(`/organizations/${L.id}/members?${R.toString()}`,{method:"GET"}))).data},[n]),c=i.useCallback(async L=>(await N(await n(`/organizations/${L.id}/invitations`,{method:"GET"}))).data,[n]),l=i.useCallback(async L=>(await N(await n(`/organizations/${L.id}/domains`,{method:"GET"}))).data,[n]),u=i.useCallback(async(L,I)=>{await n(`/organizations/${L.id}/members/${I.id}/remove`,{method:"POST"})},[n]),d=i.useCallback(async L=>{const I=new FormData;I.append("name",L.name),L.image&&I.append("image",L.image),L.description&&I.append("description",L.description);const R=await N(await n("/organizations",{method:"POST",body:I}));return Mr(),await t(),await o(),R},[o,t,n]),f=i.useCallback(async(L,I)=>{const R=Object.entries(I).reduce((q,[K,ie])=>(ie!=null&&(Array.isArray(ie)?ie.forEach(ee=>q.append(K,ee)):q.append(K,ie)),q),new FormData),B=await N(await n(`/organizations/${L.id}/update`,{method:"POST",body:R}));return await t(),B},[t,n]),g=i.useCallback(async(L,I)=>{await n(`/organizations/${L.id}/roles/${I.id}/remove`,{method:"POST"})},[n]),m=i.useCallback(async(L,I)=>{const R=new FormData;return R.append("domain",I.fqdn),await N(await n(`/organizations/${L.id}/domains`,{method:"POST",body:R}))},[n]),x=i.useCallback(async(L,I)=>await N(await n(`/organizations/${L.id}/domains/${I.id}/verify`,{method:"POST"})),[n]),v=i.useCallback(async(L,I)=>await N(await n(`/organizations/${L.id}/domains/${I.id}/delete`,{method:"POST"})),[n]),C=i.useCallback(async L=>(await N(await n(`/organizations/${L.id}/enterprise-connections`,{method:"GET"}))).data,[n]),j=i.useCallback(async(L,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 N(await n(`/organizations/${L.id}/enterprise-connections`,{method:"POST",body:R}))).data},[n]),_=i.useCallback(async(L,I,R)=>{const B=new FormData;return R.domain_id&&B.append("domain_id",R.domain_id),R.idp_entity_id&&B.append("idp_entity_id",R.idp_entity_id),R.idp_sso_url&&B.append("idp_sso_url",R.idp_sso_url),R.idp_certificate&&B.append("idp_certificate",R.idp_certificate),R.oidc_client_id&&B.append("oidc_client_id",R.oidc_client_id),R.oidc_client_secret&&B.append("oidc_client_secret",R.oidc_client_secret),R.oidc_issuer_url&&B.append("oidc_issuer_url",R.oidc_issuer_url),R.oidc_scopes&&B.append("oidc_scopes",R.oidc_scopes),R.attribute_mapping&&B.append("attribute_mapping",JSON.stringify(R.attribute_mapping)),(await N(await n(`/organizations/${L.id}/enterprise-connections/${I}/update`,{method:"POST",body:B}))).data},[n]),z=i.useCallback(async(L,I)=>{await n(`/organizations/${L.id}/enterprise-connections/${I}/delete`,{method:"POST"})},[n]),w=i.useCallback(async(L,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 N(await n(`/organizations/${L.id}/enterprise-connections/test`,{method:"POST",body:R}))).data},[n]),b=i.useCallback(async(L,I)=>(await N(await n(`/organizations/${L.id}/enterprise-connections/${I}/test`,{method:"POST"}))).data,[n]),E=i.useCallback(async(L,I)=>(await N(await n(`/organizations/${L.id}/enterprise-connections/${I}/scim/token`,{method:"POST"}))).data,[n]),y=i.useCallback(async(L,I)=>(await N(await n(`/organizations/${L.id}/enterprise-connections/${I}/scim/token`,{method:"GET"}))).data,[n]),S=i.useCallback(async(L,I)=>{await n(`/organizations/${L.id}/enterprise-connections/${I}/scim/token/revoke`,{method:"POST"})},[n]),k=i.useCallback(async(L,I)=>{const R=new FormData;return R.append("name",I.name),I.permissions&&I.permissions.forEach((q,K)=>{R.append(`permissions[${K}]`,q)}),await N(await n(`/organizations/${L.id}/roles`,{method:"POST",body:R}))},[n]),$=i.useCallback(async L=>(await N(await n(`/organizations/${L.id}/leave`,{method:"POST"}))).data,[n]),P=i.useCallback(async L=>{const I=await N(await n(`/organizations/${L.id}/delete`,{method:"POST"}));return Mr(),await t(),await o(),I.data},[n,t,o]),T=i.useCallback(async(L,I,R)=>(await N(await n(`/organizations/${L.id}/members/${I.id}/roles/${R.id}/add`,{method:"POST"}))).data,[n]),A=i.useCallback(async(L,I,R)=>(await N(await n(`/organizations/${L.id}/members/${I.id}/roles/${R.id}/remove`,{method:"POST"}))).data,[n]),M=i.useCallback(async(L,I)=>{var q,K;const R=new FormData;return R.append("email",I.email),R.append("role_id",I.organizationRole.id),(q=I.workspace)!=null&&q.id&&R.append("workspace_id",I.workspace.id),(K=I.workspaceRole)!=null&&K.id&&R.append("workspace_role_id",I.workspaceRole.id),(await N(await n(`/organizations/${L.id}/invitations`,{method:"POST",body:R}))).data},[n]),F=i.useCallback(async(L,I)=>(await N(await n(`/organizations/${L.id}/invitations/${I.id}/discard`,{method:"POST"}))).data,[n]),D=i.useCallback(async(L,I)=>(await N(await n(`/organizations/${L.id}/invitations/${I.id}/resend`,{method:"POST"}))).data,[n]);return{organizations:i.useMemo(()=>r==null?void 0:r.map(L=>L.organization),[r]),loading:a,error:null,refetch:t,leaveOrganization:$,getOrganizationRoles:s,getOrganizationMembers:h,removeOrganizationMember:u,createOrganization:d,getOrganizationInvitations:c,getOrganizationDomains:l,addOrganizationDomain:m,verifyOrganizationDomain:x,removeOrganizationDomain:v,addRoleToOrganizationMember:T,removeRoleFromOrganizationMember:A,inviteOrganizationMember:M,discardOrganizationInvitation:F,resendOrganizationInvitation:D,updateOrganization:f,addRole:k,removeOrganizationRoles:g,deleteOrganization:P,getEnterpriseConnections:C,createEnterpriseConnection:j,updateEnterpriseConnection:_,deleteEnterpriseConnection:z,testEnterpriseConnectionConfig:w,testEnterpriseConnection:b,generateSCIMToken:E,getSCIMToken:y,revokeSCIMToken:S}},Ot=()=>{const{loading:r,error:t,refetch:a,getOrganizationMembers:n,getOrganizationRoles:o,leaveOrganization:s,removeOrganizationMember:h,getOrganizationInvitations:c,getOrganizationDomains:l,removeOrganizationDomain:u,addOrganizationDomain:d,verifyOrganizationDomain:f,addRoleToOrganizationMember:g,removeRoleFromOrganizationMember:m,inviteOrganizationMember:x,discardOrganizationInvitation:v,resendOrganizationInvitation:C,updateOrganization:j,removeOrganizationRoles:_,getEnterpriseConnections:z,createEnterpriseConnection:w,updateEnterpriseConnection:b,deleteEnterpriseConnection:E,testEnterpriseConnectionConfig:y,testEnterpriseConnection:S,generateSCIMToken:k,getSCIMToken:$,revokeSCIMToken:P}=Dr(),{session:T,error:A,loading:M}=Je(),{organizationMemberships:F}=dt(),D=i.useMemo(()=>(F==null?void 0:F.find(U=>{var G;return U.id===((G=T==null?void 0:T.active_signin)==null?void 0:G.active_organization_membership_id)}))||null,[F,T]),O=i.useMemo(()=>(D==null?void 0:D.organization)||null,[D]),L=i.useCallback(async U=>O?await j(O,U):[],[O,j]),I=i.useCallback(async()=>O?await n(O):[],[O,n]),R=i.useCallback(async()=>O?await o(O):[],[O,o]),B=i.useCallback(async U=>O?await h(O,U):[],[O,h]),q=i.useCallback(async U=>O?await _(O,U):void 0,[O,_]),K=i.useCallback(async()=>O?await l(O):[],[O,l]),ie=i.useCallback(async U=>O?await d(O,U):void 0,[O,d]),ee=i.useCallback(async U=>O?await f(O,U):void 0,[O,f]),he=i.useCallback(async U=>O?await u(O,U):void 0,[O,u]),se=i.useCallback(async(U,G)=>O?await g(O,U,G):void 0,[O,g]),Q=i.useCallback(async(U,G)=>O?await m(O,U,G):void 0,[O,m]),le=i.useCallback(async U=>O?await x(O,U):void 0,[O,x]),X=i.useCallback(async U=>O?await v(O,U):void 0,[O,v]),Ie=i.useCallback(async U=>O?await C(O,U):void 0,[O,C]),Oe=i.useCallback(async()=>{O&&await s(O)},[O,s]),Ue=i.useCallback(async()=>O?await c(O):[],[O,c]),He=i.useCallback(async()=>O?await z(O):[],[O,z]),Xe=i.useCallback(async U=>{if(O)return await w(O,U)},[O,w]),qe=i.useCallback(async(U,G)=>{if(O)return await b(O,U,G)},[O,b]),ge=i.useCallback(async U=>{O&&await E(O,U)},[O,E]),Se=i.useCallback(async U=>O?await y(O,U):null,[O,y]),ke=i.useCallback(async U=>O?await S(O,U):null,[O,S]),de=i.useCallback(async U=>{if(O)return await k(O,U)},[O,k]),Y=i.useCallback(async U=>{if(O)return await $(O,U)},[O,$]),H=i.useCallback(async U=>{O&&await P(O,U)},[O,P]);return M||r?{activeOrganization:null,activeMembership:null,loading:!0,error:A||t,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:O,activeMembership:D,loading:!1,refetch:a,getRoles:R,updateOrganization:L,getMembers:I,getDomains:K,addDomain:ie,verifyDomain:ee,removeDomain:he,getInvitations:Ue,removeMember:B,leave:Oe,removeRole:q,addMemberRole:se,removeMemberRole:Q,inviteMember:le,discardInvitation:X,resendInvitation:Ie,getEnterpriseConnections:He,createEnterpriseConnection:Xe,updateEnterpriseConnection:qe,deleteEnterpriseConnection:ge,testEnterpriseConnectionConfig:Se,testEnterpriseConnection:ke,generateSCIMToken:de,getSCIMToken:Y,revokeSCIMToken:H,error:null}};async function hp(r){return(await N(await r("/me/organization-memberships"))).data}const dt=()=>{const{client:r,loading:t}=me(),{data:a,isLoading:n,error:o,mutate:s}=_e(t?null:"/me/organization-memberships",()=>hp(r),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),h=i.useCallback(async()=>{await s()},[s]);return{organizationMemberships:a,loading:t||n,error:o,refetch:h}};async function pp(r){return(await N(await r("/me/workspace-memberships"))).data}async function fp(r,t,a){return(await N(await r(`/workspaces/${t}/members/${a}/remove`,{method:"POST"}))).data}const Fn=()=>{const{client:r,loading:t}=me(),{deployment:a}=ye(),{data:n,isLoading:o,error:s,mutate:h}=_e(!t&&(a!=null&&a.b2b_settings.workspaces_enabled)?"/me/workspace-memberships":null,()=>pp(r),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),c=i.useCallback(async()=>{await h(void 0,{revalidate:!0})},[h]);return{workspaceMemberships:n,loading:t||o,error:s,refetch:c}},Dt=()=>{const{workspaceMemberships:r,refetch:t,loading:a,error:n}=Fn(),{client:o}=me(),s=i.useMemo(()=>r==null?void 0:r.map(b=>({...b.workspace,organization:b.organization,eligibility_restriction:b.eligibility_restriction})),[r]),h=i.useCallback(async(b,E,y,S)=>{const k=new FormData;k.append("name",E),y&&k.append("image",y),S&&k.append("description",S),k.append("organization_id",b);const $=await N(await o("/workspaces",{method:"POST",body:k}));return Mr(),await t(),$.data},[o,t]),c=i.useCallback(async(b,E)=>{const y=await fp(o,b,E);return await t(),y},[o,t]),l=i.useCallback(async(b,E)=>{const y=new FormData;E.name&&y.append("name",E.name),E.description&&y.append("description",E.description),E.image&&y.append("image",E.image),E.enforce_2fa!==void 0&&y.append("enforce_2fa",String(E.enforce_2fa)),E.enable_ip_restriction!==void 0&&y.append("enable_ip_restriction",String(E.enable_ip_restriction)),E.whitelisted_ips&&E.whitelisted_ips.forEach(k=>y.append("whitelisted_ips",k));const S=await N(await o(`/workspaces/${b.id}/update`,{method:"POST",body:y}));return await t(),S.data},[o,t]),u=i.useCallback(async b=>{const E=await N(await o(`/workspaces/${b.id}/delete`,{method:"POST"}));return Mr(),await t(),E.data},[o,t]),d=i.useCallback(async(b,E)=>{const y=new URLSearchParams;return E&&(y.set("page",E.page.toString()),y.set("limit",E.limit.toString()),E.search&&y.set("search",E.search)),(await N(await o(`/workspaces/${b.id}/members?${y.toString()}`,{method:"GET"}))).data},[o]),f=i.useCallback(async b=>(await N(await o(`/workspaces/${b.id}/roles`,{method:"GET"}))).data,[o]),g=i.useCallback(async(b,E,y)=>{const S=new FormData;return S.append("name",E),y.forEach($=>S.append("permissions",$)),(await N(await o(`/workspaces/${b.id}/roles`,{method:"POST",body:S}))).data},[o]),m=i.useCallback(async(b,E)=>(await N(await o(`/workspaces/${b.id}/roles/${E.id}/delete`,{method:"POST"}))).data,[o]),x=i.useCallback(async(b,E)=>{const y=await N(await o(`/workspaces/${b.id}/members/${E}/remove`,{method:"POST"}));return await t(),y.data},[o,t]),v=i.useCallback(async(b,E,y)=>(await N(await o(`/workspaces/${b.id}/members/${E}/roles/${y}/add`,{method:"POST"}))).data,[o]),C=i.useCallback(async(b,E,y)=>(await N(await o(`/workspaces/${b.id}/members/${E}/roles/${y}/remove`,{method:"POST"}))).data,[o]),j=i.useCallback(async b=>(await N(await o(`/organizations/${b.organization.id}/invitations?workspace_id=${b.id}`,{method:"GET"}))).data,[o]),_=i.useCallback(async(b,E,y)=>{const S=new FormData;return S.append("email",E),S.append("workspace_id",b.id),y&&S.append("workspace_role_id",y),(await N(await o(`/organizations/${b.organization.id}/invitations`,{method:"POST",body:S}))).data},[o]),z=i.useCallback(async(b,E)=>(await N(await o(`/organizations/${b.organization.id}/invitations/${E}/discard`,{method:"POST"}))).data,[o]),w=i.useCallback(async(b,E)=>(await N(await o(`/organizations/${b.organization.id}/invitations/${E}/resend`,{method:"POST"}))).data,[o]);return{workspaces:s||[],loading:a,error:n,refetch:t,leaveWorkspace:c,createWorkspace:h,updateWorkspace:l,deleteWorkspace:u,getWorkspaceMembers:d,getWorkspaceRoles:f,createWorkspaceRole:g,deleteWorkspaceRole:m,removeWorkspaceMember:x,addWorkspaceMemberRole:v,removeWorkspaceMemberRole:C,getWorkspaceInvitations:j,createWorkspaceInvitation:_,discardWorkspaceInvitation:z,resendWorkspaceInvitation:w}},rt=()=>{const{refetch:r,loading:t,error:a,workspaces:n,leaveWorkspace:o,updateWorkspace:s,deleteWorkspace:h,getWorkspaceMembers:c,getWorkspaceRoles:l,createWorkspaceRole:u,deleteWorkspaceRole:d,removeWorkspaceMember:f,addWorkspaceMemberRole:g,removeWorkspaceMemberRole:m,getWorkspaceInvitations:x,createWorkspaceInvitation:v,discardWorkspaceInvitation:C,resendWorkspaceInvitation:j}=Dt(),{workspaceMemberships:_}=Fn(),{session:z,loading:w,error:b}=Je(),E=i.useMemo(()=>(_==null?void 0:_.find(ee=>{var he;return ee.id===((he=z==null?void 0:z.active_signin)==null?void 0:he.active_workspace_membership_id)}))||null,[_,z]),y=i.useMemo(()=>(E==null?void 0:E.workspace)||null,[E]),S=i.useCallback(async()=>{var ee;if(!(!y||!((ee=z==null?void 0:z.active_signin)!=null&&ee.user_id)))return await o(y.id,z.active_signin.user_id)},[y,o,z]),k=i.useCallback(async ee=>{if(y)return await s(y,ee)},[y,s]),$=i.useCallback(async()=>{if(y)return await h(y)},[y,h]),P=i.useCallback(async ee=>y?await c(y,ee):{data:[],meta:{total:0,page:1,limit:10}},[y,c]),T=i.useCallback(async()=>y?await l(y):[],[y,l]),A=i.useCallback(async(ee,he)=>{if(y)return await u(y,ee,he)},[y,u]),M=i.useCallback(async ee=>{if(y)return await d(y,ee)},[y,d]),F=i.useCallback(async ee=>{if(y)return await f(y,ee)},[y,f]),D=i.useCallback(async(ee,he)=>{if(y)return await g(y,ee,he)},[y,g]),O=i.useCallback(async(ee,he)=>{if(y)return await m(y,ee,he)},[y,m]),L=i.useMemo(()=>(n==null?void 0:n.find(ee=>ee.id===(y==null?void 0:y.id)))||null,[n,y]),I=i.useCallback(async()=>L?await x(L):[],[L,x]),R=i.useCallback(async ee=>{if(L)return await v(L,ee.email,ee.workspaceRoleId)},[L,v]),B=i.useCallback(async ee=>{if(L)return await C(L,ee)},[L,C]),q=i.useCallback(async ee=>{if(L)return await j(L,ee)},[L,j]),K=t||w,ie=a||b;return K?{activeWorkspace:null,activeMembership:null,loading:!0,error:ie,refetch:r,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:E,loading:!1,error:ie,refetch:r,leave:S,updateWorkspace:k,deleteWorkspace:$,getMembers:P,getRoles:T,createRole:A,deleteRole:M,inviteMember:R,removeMember:F,addMemberRole:D,removeMemberRole:O,getInvitations:I,discardInvitation:B,resendInvitation:q}};function io(r){const t=new Uint8Array(r);let a="";for(let n=0;n<t.length;n++)a+=String.fromCharCode(t[n]);return btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function co(r){const t=r.replace(/-/g,"+").replace(/_/g,"/"),a=t.padEnd(t.length+(4-t.length%4)%4,"="),n=atob(a),o=new Uint8Array(n.length);for(let s=0;s<n.length;s++)o[s]=n.charCodeAt(s);return o.buffer}const gp=async r=>(await N(await r("/me"))).data,mp=async r=>(await N(await r("/me/signins"))).data;function ut(){const{client:r,loading:t}=me(),{data:a,error:n,isLoading:o,mutate:s}=_e(t?null:"/user",()=>gp(r)),h=async L=>{const I=new FormData;for(const[B,q]of Object.entries(L))q!=null&&q!==""&&I.append(B,String(q));const R=await N(await r("/me",{method:"POST",body:I}));return s(),R},c=async()=>await N(await r("/me/email-addresses",{method:"GET"})),l=async L=>await N(await r(`/me/email-addresses/${L}`,{method:"GET"})),u=async L=>{const I=new FormData;return I.append("email",L),await N(await r("/me/email-addresses",{method:"POST",body:I}))},d=async L=>await N(await r(`/me/email-addresses/${L}/delete`,{method:"POST"})),f=async L=>await N(await r(`/me/email-addresses/${L}/prepare-verification`,{method:"POST"})),g=async(L,I)=>await N(await r(`/me/email-addresses/${L}/attempt-verification?code=${I}`,{method:"POST"})),m=async(L,I)=>{const R=new FormData;return R.append("phone_number",L),R.append("country_code",I),await N(await r("/me/phone-numbers",{method:"POST",body:R}))},x=async L=>await N(await r(`/me/phone-numbers/${L}/delete`,{method:"POST"})),v=async L=>await N(await r(`/me/phone-numbers/${L}/prepare-verification`,{method:"POST"})),C=async(L,I)=>{const R=new FormData;return R.append("code",I),await N(await r(`/me/phone-numbers/${L}/attempt-verification`,{method:"POST",body:R}))},j=async L=>{const I=await N(await r(`/me/phone-numbers/${L}/make-primary`,{method:"POST"}));return s(),I},_=async L=>await N(await r(`/me/email-addresses/${L}/make-primary`,{method:"POST"})),z=async()=>(await N(await r("/me/authenticator",{method:"POST"}))).data,w=async(L,I)=>{const R=new FormData;return R.append("authenticator_id",L),I.forEach(q=>{R.append("codes",q)}),await N(await r("/me/authenticator/attempt-verification",{method:"POST",body:R}))},b=async L=>await N(await r(`/me/authenticator/${L}/delete`,{method:"POST"})),E=async()=>(await N(await r("/me/backup-codes",{method:"POST"}))).data,y=async L=>{const I=new FormData;return I.append("file",L),await N(await r("/me/profile-picture",{method:"POST",body:I}))},S=async()=>(await N(await r("/me/backup-codes/regenerate",{method:"POST"}))).data,k=async(L,I)=>{const R=new FormData;return R.append("current_password",L),R.append("new_password",I),await N(await r("/me/update-password",{method:"POST",body:R}))},$=async L=>{const I=new FormData;I.append("current_password",L);const R=await N(await r("/me/remove-password",{method:"POST",body:I}));return s(),R},P=async L=>{const I=new FormData;return I.append("password",L),await N(await r("/me/account/delete",{method:"POST",body:I}))},T=async L=>await N(await r(`/me/social-connections/${L}/disconnect`,{method:"POST"})),A=async({provider:L,redirectUri:I})=>{var q;const R=new URLSearchParams({provider:L});I&&R.append("redirect_uri",I);const B=await N(await r(`/me/init-sso-connection?${R.toString()}`,{method:"POST"}));return"data"in B&&((q=B.data)!=null&&q.oauth_url)&&window.open(B.data.oauth_url,"_blank"),B},M=async()=>await N(await r("/me/passkeys",{method:"GET"})),F=async L=>{var he,se;const I=await N(await r("/me/passkeys/register/begin",{method:"POST"}));if(!("data"in I))return I;const R=I.data.options.publicKey,B={challenge:co(R.challenge),rp:R.rp,user:{id:co(R.user.id),name:R.user.name,displayName:R.user.displayName},pubKeyCredParams:R.pubKeyCredParams,timeout:R.timeout,attestation:R.attestation,authenticatorSelection:R.authenticatorSelection,excludeCredentials:(he=R.excludeCredentials)==null?void 0:he.map(Q=>({type:Q.type,id:co(Q.id),transports:Q.transports}))},q=await navigator.credentials.create({publicKey:B});if(!q)throw new Error("Failed to create credential");const K=q.response,ie={id:q.id,rawId:io(q.rawId),type:q.type,response:{clientDataJSON:io(K.clientDataJSON),attestationObject:io(K.attestationObject),transports:((se=K.getTransports)==null?void 0:se.call(K))||[]}};return await N(await r(`/me/passkeys/register/finish?name=${encodeURIComponent(L||"")}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ie)}))},D=async L=>await N(await r(`/me/passkeys/${L}/delete`,{method:"POST"})),O=async(L,I)=>await N(await r(`/me/passkeys/${L}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:I})}));return{user:{...a,refetch:s},loading:t||o,error:n||null,updateProfile:h,getEmailAddresses:c,getEmailAddress:l,createEmailAddress:u,deleteEmailAddress:d,prepareEmailVerification:f,attemptEmailVerification:g,makeEmailPrimary:_,createPhoneNumber:m,deletePhoneNumber:x,preparePhoneVerification:v,attemptPhoneVerification:C,makePhonePrimary:j,setupAuthenticator:z,verifyAuthenticator:w,deleteAuthenticator:b,generateBackupCodes:E,regenerateBackupCodes:S,updateProfilePicture:y,disconnectSocialConnection:T,connectSocialAccount:A,updatePassword:k,removePassword:$,deleteAccount:P,getPasskeys:M,registerPasskey:F,deletePasskey:D,renamePasskey:O}}function ld(){const{client:r,loading:t}=me(),{data:a,error:n,isLoading:o,mutate:s}=_e(t?null:"/me/signins",()=>mp(r));return{signins:a,error:n||null,removeSignin:async c=>await N(await r(`/me/signins/${c}/signout`,{method:"POST"})),refetch:s,loading:o||t}}function dd(){const{session:r,loading:t}=Je(),{loading:a,organizationMemberships:n}=dt(),{loading:o,workspaceMemberships:s}=Fn(),h=i.useMemo(()=>!r||!r.signins||r.signins.length===0?null:(n==null?void 0:n.find(l=>{var u;return l.id===((u=r.active_signin)==null?void 0:u.active_organization_membership_id)}))||null,[n,r]),c=i.useMemo(()=>!r||!r.signins||r.signins.length===0?null:(s==null?void 0:s.find(l=>{var u;return l.id===((u=r.active_signin)==null?void 0:u.active_workspace_membership_id)}))||null,[s,r]);return{loading:t||a||o,orgMembership:h,workspaceMembership:c}}function ud(){const{client:r,loading:t}=me(),[a,n]=i.useState(!1),o=async s=>{n(!0);try{const h=new FormData;for(const[u,d]of Object.entries(s))d&&h.append(u,d);const c=await r("/waitlist/join",{method:"POST",body:h});return await N(c)}finally{n(!1)}};return t?{loading:!0,joinWaitlist:null}:{loading:a,joinWaitlist:o}}function hd(){const{client:r,loading:t}=me(),[a,n]=i.useState(!1),[o,s]=i.useState(null),[h,c]=i.useState(null),[l,u]=i.useState(null),[d,f]=i.useState(!1),[g,m]=i.useState(null);i.useEffect(()=>{if(d||t)return;const v=new URLSearchParams(window.location.search),C=v.get("code"),j=v.get("state"),_=v.get("error"),z=v.get("error_description");if(!C&&!_){f(!0);const w=new Error("No OAuth callback data found.");s(w);return}if(f(!0),n(!0),_){const w=z||_,b=new Error(`OAuth Error: ${w}`);s(b),n(!1);return}if(C&&j)x(C,j);else{const w=new Error("Missing required OAuth parameters");s(w),n(!1)}},[d,t]);const x=async(v,C)=>{try{let j,_;try{const b=C.split(".");if(b.length!==3)throw new Error("Invalid OAuth state format - missing signature");const E=b[0].replace(/-/g,"+").replace(/_/g,"/"),y=E.length%4?"=".repeat(4-E.length%4):"",k=atob(E+y).split("|")[0];if(k==="sign_in")j="/auth/oauth2/callback",_="GET";else if(k==="connect_social")j="/me/sso-connection-callback",_="POST";else throw new Error(`Unknown OAuth action: ${k}`)}catch(b){const E=b instanceof Error?b:new Error("Failed to parse OAuth state");s(new Error(`Invalid OAuth callback: ${E.message}. The authorization link may be expired or malformed. Please try signing in again.`)),n(!1);return}const z=await r(`${j}?code=${encodeURIComponent(v)}&state=${encodeURIComponent(C)}`,{method:_}),w=await N(z);if("data"in w){const b=w.data.session,E=w.data.redirect_uri||null;if(c(b),u(E),b.signin_attempts&&b.signin_attempts.length>0){const y=b.signin_attempts.at(-1);y&&m(y)}}else{const b=new Error("SSO callback failed");s(b)}}catch(j){const _=j instanceof Error?j:new Error("Unknown error occurred");s(_)}finally{n(!1)}};return{loading:a,error:o,session:h,redirectUri:l,processed:d,signinAttempt:g}}function pd(){const{client:r,loading:t}=me(),[a,n]=i.useState(!1),[o,s]=i.useState(null);return{loading:t||a,verifyMagicLink:async c=>{if(!c.token||!c.attempt)throw new Error("Invalid magic link parameters");n(!0),s(null);try{const l=new URL("/auth/verify-magic-link",window.location.origin);l.searchParams.set("token",c.token),l.searchParams.set("attempt",c.attempt),c.redirectUri&&l.searchParams.set("redirect_uri",c.redirectUri);const u=await r(l.pathname+l.search,{method:"GET"}),d=await N(u);return n(!1),s(!0),d}catch(l){throw n(!1),s(!1),l}},success:o}}function fd(){const[r,t]=i.useState({});return i.useEffect(()=>{const a=new URLSearchParams(window.location.search);t({token:a.get("token")||void 0,attempt:a.get("attempt")||void 0,redirectUri:a.get("redirect_uri")||void 0})},[]),r}function gd(){const{client:r,loading:t}=me();return{loading:t,forgotPassword:async s=>{const h=new FormData;h.append("email",s);const c=await r("/auth/forgot-password",{method:"POST",body:h});return await N(c)},verifyOtp:async(s,h)=>{const c=new FormData;c.append("email",s),c.append("otp",h);const l=await r("/auth/forgot-password",{method:"POST",body:c});return await N(l)},resetPassword:async(s,h)=>{const c=new FormData;c.append("token",s),c.append("password",h);const l=await r("/auth/reset-password",{method:"POST",body:c});return await N(l)}}}const vp=()=>{},xp=vp(),es=Object,vi=r=>r===xp,bp=r=>typeof r=="function",Va=new WeakMap,yp=r=>es.prototype.toString.call(r),lo=(r,t)=>r===`[object ${t}]`;let wp=0;const rs=r=>{const t=typeof r,a=yp(r),n=lo(a,"Date"),o=lo(a,"RegExp"),s=lo(a,"Object");let h,c;if(es(r)===r&&!n&&!o){if(h=Va.get(r),h)return h;if(h=++wp+"~",Va.set(r,h),Array.isArray(r)){for(h="@",c=0;c<r.length;c++)h+=rs(r[c])+",";Va.set(r,h)}if(s){h="#";const l=es.keys(r).sort();for(;!vi(c=l.pop());)vi(r[c])||(h+=c+":"+rs(r[c])+",");Va.set(r,h)}}else h=n?r.toJSON():t=="symbol"?r.toString():t=="string"?JSON.stringify(r):""+r;return h},jp=r=>{if(bp(r))try{r=r()}catch{r=""}const t=r;return r=typeof r=="string"?r:(Array.isArray(r)?r.length:r)?rs(r):"",[r,t]},_p=r=>jp(r?r(0,null):null)[0],uo=Promise.resolve(),kp=r=>(t,a,n)=>{const o=i.useRef(!1),{cache:s,initialSize:h=1,revalidateAll:c=!1,persistSize:l=!1,revalidateFirstPage:u=!0,revalidateOnMount:d=!1,parallel:f=!1}=n,[,,,g]=Lr.get(_s);let m;try{m=_p(t),m&&(m=od+m)}catch{}const[x,v,C]=ot(s,m),j=i.useCallback(()=>xe(x()._l)?h:x()._l,[s,m,h]);Vo.useSyncExternalStore(i.useCallback(S=>m?C(m,()=>{S()}):()=>{},[s,m]),j,j);const _=i.useCallback(()=>{const S=x()._l;return xe(S)?h:S},[m,h]),z=i.useRef(_());jn(()=>{if(!o.current){o.current=!0;return}m&&v({_l:l?z.current:_()})},[m,s]);const w=d&&!o.current,b=r(m,async S=>{const k=x()._i,$=x()._r;v({_r:ar});const P=[],T=_(),[A]=ot(s,S),M=A().data,F=[];let D=null;for(let O=0;O<T;++O){const[L,I]=Aa(t(O,f?null:D));if(!L)break;const[R,B]=ot(s,L);let q=R().data;const K=c||k||xe(q)||u&&!O&&!xe(M)||w||M&&!xe(M[O])&&!n.compare(M[O],q);if(a&&(typeof $=="function"?$(q,I):K)){const ie=async()=>{if(!(L in g))q=await a(I);else{const he=g[L];delete g[L],q=await he}B({data:q,_k:I}),P[O]=q};f?F.push(ie):await ie()}else P[O]=q;f||(D=q)}return f&&await Promise.all(F.map(O=>O())),v({_i:ar}),P},n),E=i.useCallback(function(S,k){const $=typeof k=="boolean"?{revalidate:k}:k||{},P=$.revalidate!==!1;return m?(P&&(xe(S)?v({_i:!0,_r:$.revalidate}):v({_i:!1,_r:$.revalidate})),arguments.length?b.mutate(S,{...$,revalidate:P}):b.mutate()):uo},[m,s]),y=i.useCallback(S=>{if(!m)return uo;const[,k]=ot(s,m);let $;if(kr(S)?$=S(_()):typeof S=="number"&&($=S),typeof $!="number")return uo;k({_l:$}),z.current=$;const P=[],[T]=ot(s,m);let A=null;for(let M=0;M<$;++M){const[F]=Aa(t(M,A)),[D]=ot(s,F),O=F?D().data:ar;if(xe(O))return E(T().data);P.push(O),A=O}return E(P)},[m,s,E,_]);return{size:_(),setSize:y,mutate:E,get data(){return b.data},get error(){return b.error},get isValidating(){return b.isValidating},get isLoading(){return b.isLoading}}},ia=tp(_e,kp);function md({enabled:r=!0,channels:t,organizationIds:a,workspaceIds:n,onNotification:o,onError:s,reconnectDelay:h=1e3,maxReconnectAttempts:c=5}={}){const{session:l,loading:u}=Je(),{deployment:d,loading:f}=ye(),[g,m]=i.useState(!1),[x,v]=i.useState(null),C=i.useRef(null),j=i.useRef(null),_=i.useRef(0),z=i.useRef(null),w=i.useRef(o),b=i.useRef(s),E=i.useRef(t),y=i.useRef(a),S=i.useRef(n),k=i.useRef(h),$=i.useRef(c);w.current=o,b.current=s,E.current=t,y.current=a,S.current=n,k.current=h,$.current=c;const P=i.useCallback(()=>{j.current&&(clearTimeout(j.current),j.current=null),z.current&&(clearInterval(z.current),z.current=null),C.current&&(C.current.close(),C.current=null)},[]),T=i.useCallback(async()=>{var L;if(!r||u||f||!l||!d)return;P();const F=new URL(d.backend_host),D=F.protocol==="https:"?"wss:":"ws:",O=new URL("/realtime/notifications",`${D}//${F.host}`);if(d.mode==="staging"){const I=nr(d.backend_host);I&&O.searchParams.set("__dev_session__",I)}E.current&&E.current.length>0&&E.current.forEach(I=>O.searchParams.append("channels",I)),y.current&&y.current.length>0&&y.current.forEach(I=>O.searchParams.append("organization_ids",I.toString())),S.current&&S.current.length>0&&S.current.forEach(I=>O.searchParams.append("workspace_ids",I.toString()));try{const I=new WebSocket(O.toString());C.current=I,I.onopen=()=>{m(!0),v(null),_.current=0,z.current=setInterval(()=>{I.readyState===WebSocket.OPEN&&I.send("ping")},3e4)},I.onmessage=R=>{var B,q;try{const K=JSON.parse(R.data);if(K.type==="notification"&&K.data)(B=w.current)==null||B.call(w,K.data);else if(K.type==="error"){const ie=K.error||"Unknown error occurred";v(ie),(q=b.current)==null||q.call(b,ie)}else K.type}catch{}},I.onerror=()=>{var R;v("Connection error occurred"),(R=b.current)==null||R.call(b,"Connection error occurred")},I.onclose=R=>{var B;if(m(!1),z.current&&(clearInterval(z.current),z.current=null),r&&R.code!==1e3&&_.current<$.current){_.current++;const q=k.current*Math.pow(2,_.current-1);j.current=setTimeout(()=>{T()},q)}else _.current>=$.current&&(v("Max reconnection attempts reached"),(B=b.current)==null||B.call(b,"Max reconnection attempts reached"))}}catch{v("Failed to connect"),(L=b.current)==null||L.call(b,"Failed to connect")}},[r,u,f,l,d,P]);i.useEffect(()=>(T(),()=>{P()}),[T,P]),i.useEffect(()=>{C.current&&C.current.readyState===WebSocket.OPEN&&T()},[t,a,n,T]);const A=i.useCallback(()=>{P(),m(!1)},[P]),M=i.useCallback(()=>{_.current=0,T()},[T]);return{isConnected:g,connectionError:x,disconnect:A,reconnect:M}}function Nn(r){if(!r)return"";const t=new URLSearchParams;r.limit&&t.append("limit",r.limit.toString()),r.cursor&&t.append("cursor",r.cursor),r.scope&&t.append("scope",r.scope),r.channels&&r.channels.length>0&&r.channels.forEach(n=>t.append("channels",n)),r.organization_ids&&r.organization_ids.length>0&&r.organization_ids.forEach(n=>t.append("organization_ids",n)),r.workspace_ids&&r.workspace_ids.length>0&&r.workspace_ids.forEach(n=>t.append("workspace_ids",n)),r.is_read!==void 0&&t.append("is_read",r.is_read.toString()),r.is_archived!==void 0&&t.append("is_archived",r.is_archived.toString()),r.is_starred!==void 0&&t.append("is_starred",r.is_starred.toString()),r.severity&&t.append("severity",r.severity);const a=t.toString();return a?"?"+a:""}async function Cp(r,t){const a=`/notifications${Nn(t)}`,n=await r(a,{method:"GET"});return(await N(n)).data}async function Sp(r,t){const a=await r(`/notifications/${t}/read`,{method:"POST"});return N(a)}async function zp(r,t){const a=await r(`/notifications/${t}/unread`,{method:"POST"});return N(a)}async function $p(r,t){const a=await r(`/notifications/mark-all-read${Nn(t)}`,{method:"POST"});return N(a)}async function Ep(r,t){const a=await r(`/notifications/archive-all-read${Nn(t)}`,{method:"POST"});return N(a)}async function Rp(r,t){const a=await r(`/notifications/${t}/archive`,{method:"POST"});return N(a)}async function Pp(r,t){const a=await r(`/notifications/${t}/star`,{method:"POST"});return N(a)}function vd(r){var S;const{client:t,loading:a}=me(),{data:n,error:o,mutate:s,isLoading:h,size:c,setSize:l,isValidating:u}=ia((k,$)=>{var M;if(a||k>0&&(!$||!$.has_more))return null;const P=k===0||(M=$==null?void 0:$.notifications[$.notifications.length-1])==null?void 0:M.id,{onNotification:T,...A}=r||{};return["wacht-notifications",{...A,cursor:P}]},([,k])=>Cp(t,k),{refreshInterval:6e4,revalidateOnFocus:!0,revalidateFirstPage:!0}),d=i.useMemo(()=>n?n.flatMap(k=>k.notifications):[],[n]),f=n?(S=n[n.length-1])==null?void 0:S.has_more:!1,g=i.useMemo(()=>{if(r!=null&&r.channels&&r.channels.length>0)return r.channels;switch(r==null?void 0:r.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}},[r==null?void 0:r.channels,r==null?void 0:r.scope]),m=i.useMemo(()=>{var k;return(k=r==null?void 0:r.organization_ids)==null?void 0:k.map($=>Number($)).filter($=>Number.isFinite($))},[r==null?void 0:r.organization_ids]),x=i.useMemo(()=>{var k;return(k=r==null?void 0:r.workspace_ids)==null?void 0:k.map($=>Number($)).filter($=>Number.isFinite($))},[r==null?void 0:r.workspace_ids]);md({enabled:!a&&!!n,channels:g,organizationIds:m,workspaceIds:x,onNotification:i.useCallback(k=>{s(async $=>{var M;if(!$||$.length===0||$.some(F=>F.notifications.some(D=>D.id===k.id.toString())))return $;(M=r==null?void 0:r.onNotification)==null||M.call(r,k);const T=$[0];return[{...T,notifications:[{id:k.id.toString(),user_id:k.user_id.toString(),deployment_id:k.deployment_id.toString(),title:k.title,body:k.body,severity:k.severity,ctas:k.ctas,is_read:!1,is_archived:!1,created_at:k.created_at,updated_at:k.created_at},...T.notifications]},...$.slice(1)]},!1)},[s,r]),onError:i.useCallback(()=>{},[])});const v=i.useCallback(async k=>{a||(await s(async $=>$&&$.map(P=>({...P,notifications:P.notifications.map(T=>T.id===k?{...T,is_read:!0}:T)})),!1),await Sp(t,k),await s())},[t,a,s]),C=i.useCallback(async k=>{a||(await s(async $=>$&&$.map(P=>({...P,notifications:P.notifications.map(T=>T.id===k?{...T,is_read:!1}:T)})),!1),await zp(t,k),await s())},[t,a,s]),j=i.useCallback(async()=>{a||(await s(async k=>k&&k.map($=>({...$,notifications:$.notifications.map(P=>({...P,is_read:!0}))})),!1),await $p(t,r),await s())},[t,r,s,a]),_=i.useCallback(async()=>{a||(await s(async k=>k&&k.map($=>({...$,notifications:$.notifications.filter(P=>!P.is_read)})),!1),await Ep(t,r),await s())},[t,r,a,s]),z=i.useCallback(async k=>{a||(await s(async $=>$&&$.map(P=>({...P,notifications:(r==null?void 0:r.is_archived)!==void 0?P.notifications.filter(T=>T.id!==k):P.notifications.map(T=>T.id===k?{...T,is_archived:!T.is_archived}:T)})),!1),await Rp(t,k),await s())},[t,a,s,r==null?void 0:r.is_archived]),w=i.useCallback(async k=>{a||(await s(async $=>$&&$.map(P=>({...P,notifications:P.notifications.map(T=>T.id===k?{...T,is_starred:!T.is_starred}:T)})),!1),await Pp(t,k),await s())},[t,a,s]),b=i.useCallback(async()=>{u||!f||await l(c+1)},[u,f,l,c]),E=i.useCallback(async()=>{await s()},[s]),y=a||h||c>0&&n&&typeof n[c-1]>"u";return!n||y?{loading:!0,notifications:d,hasMore:f,markAsRead:void 0,markAllAsRead:void 0,archiveAllRead:void 0,archiveNotification:void 0,starNotification:void 0,markAsUnread:void 0,error:o,refetch:E,loadMore:b}:{loading:!1,error:o,notifications:d,hasMore:f,markAsRead:v,markAllAsRead:j,archiveAllRead:_,archiveNotification:z,starNotification:w,markAsUnread:C,refetch:E,loadMore:b}}async function Tp(r,t){const a=`/notifications/scope-unread${Nn(t)}`,n=await r(a,{method:"GET"});return(await N(n)).data}function xd(r){const{client:t,loading:a}=me(),{data:n,error:o,mutate:s}=_e(a?null:["wacht-notifications-unread",r],([,c])=>Tp(t,c),{refreshInterval:3e4,revalidateOnFocus:!0}),h=async()=>{await s()};return!n||a?{loading:!0,count:0,error:o,refetch:h}:{loading:!1,count:n.count,error:o,refetch:h}}const Ft={DISCONNECTED:"disconnected",CONNECTED:"connected",ERROR:"error"},Ye={IDLE:"idle",STARTING:"starting",RUNNING:"running",WAITING_FOR_INPUT:"waiting_for_input",COMPLETED:"completed",FAILED:"failed"},ft={IDLE:"Idle",STARTING:"Starting",RUNNING:"Running",WAITING_FOR_INPUT:"WaitingForInput",COMPLETED:"Completed",FAILED:"Failed",CANCELLED:"Cancelled"};function Ap(r){switch(r.trim()){case ft.IDLE:return Ye.IDLE;case ft.STARTING:case"starting":return Ye.STARTING;case ft.RUNNING:case"running":return Ye.RUNNING;case ft.WAITING_FOR_INPUT:case"waiting_for_input":return Ye.WAITING_FOR_INPUT;case ft.COMPLETED:case"completed":return Ye.COMPLETED;case ft.FAILED:case ft.CANCELLED:case"failed":case"cancelled":return Ye.FAILED;default:return Ye.IDLE}}function Nt(r){return r===Ye.STARTING||r===Ye.RUNNING||r===Ye.WAITING_FOR_INPUT}const Ip=5e3,Lp=5e3;function Mp({threadId:r,platformAdapter:t}){var Y;const{deployment:a}=ye(),{client:n}=me(),[o,s]=i.useState([]),[h,c]=i.useState(null),[l,u]=i.useState(null),[d,f]=i.useState(null),[g,m]=i.useState(Ye.IDLE),[x,v]=i.useState({status:Ft.DISCONNECTED}),[C,j]=i.useState(!0),[_,z]=i.useState(!1),[w,b]=i.useState(!1),[E,y]=i.useState(null),S=i.useRef(null),k=i.useRef(r),$=i.useRef(0),P=i.useRef(Ye.IDLE),T=i.useCallback(H=>{s(U=>{const G=[...U],fe=G.findIndex(pe=>String(pe.id)===String(H.id));return fe>=0?G[fe]=H:G.push(H),G.sort((pe,V)=>new Date(pe.timestamp).getTime()-new Date(V.timestamp).getTime()),G})},[]),A=i.useCallback(H=>{P.current=H,m(H)},[]),M=i.useCallback(H=>{$.current=Date.now()+Ip,A(H)},[A]),F=i.useCallback(()=>{$.current>Date.now()&&Nt(P.current)||A(Ye.IDLE)},[A]),D=i.useCallback(H=>{const U=Ap(H),G=Nt(U);!G&&$.current>Date.now()&&Nt(P.current)||(G&&($.current=0),A(U))},[A]),O=i.useCallback(()=>{c(null),u(null)},[]),L=i.useCallback((H,U)=>{const G={id:H,timestamp:new Date().toISOString(),content:{type:"user_message",message:U},metadata:{message_type:"user_message"}};T(G),O()},[O,T]),I=i.useCallback(H=>{var pe;const{content:U}=H,G=H.message_type||((pe=H.metadata)==null?void 0:pe.message_type)||(U==null?void 0:U.type),fe={...H,metadata:{...H.metadata||{},message_type:G}};if(G==="system_decision"||G==="execution_summary"||G==="tool_result"){T(fe);const V=U==null?void 0:U.step;G==="system_decision"&&(V==="execution_cancelled"||V==="abort")&&F();return}if(G==="user_message"){T(fe);return}if(G==="steer"){T(fe),U!=null&&U.further_actions_required||F();return}if(G==="approval_request"){$.current=0,A(Ye.WAITING_FOR_INPUT),T(fe);return}if(G==="approval_response"){T(fe),M(Ye.RUNNING);return}if(G==="execution_status"){D(U.status);return}T(fe)},[D,F,A,M,T]),R=i.useCallback((H,U)=>{var G;(G=t==null?void 0:t.onPlatformEvent)==null||G.call(t,H,U)},[t]),B=i.useRef(I),q=i.useRef(R),K=i.useRef(n),ie=i.useRef(a);i.useEffect(()=>{B.current=I,q.current=R,K.current=n,ie.current=a}),i.useEffect(()=>{k.current=r},[r]);const ee=i.useRef(null),he=i.useRef(null),se=i.useRef(0),Q=10,le=i.useCallback(async H=>{if(!r)return;const U=r;H?z(!0):b(!0),y(null);try{const G=new URLSearchParams({limit:"100"});H&&G.append("before_id",H);const fe=await n(`/ai/threads/${r}/messages?${G}`,{method:"GET"}),pe=await N(fe);if(pe.data&&k.current===U){const V=[...pe.data.data].sort((ne,Re)=>{const Fe=new Date(ne.timestamp).getTime(),Ze=new Date(Re.timestamp).getTime();return Fe-Ze});V.length>0&&(S.current=V[0].id),s(ne=>H?[...V,...ne]:V),j(pe.data.has_more||!1)}}catch(G){k.current===U&&y(G instanceof Error?G:new Error("Failed to fetch messages"))}finally{k.current===U&&(H?z(!1):b(!1))}},[r,n]);i.useEffect(()=>{const H=ie.current;if(!H||!r)return;const U=()=>{ee.current&&(ee.current.close(),ee.current=null);const G=new URL(`${H.backend_host}/ai/threads/${encodeURIComponent(r)}/stream`);if(H.mode==="staging"){const pe=nr(H.backend_host);pe&&G.searchParams.append("__dev_session__",pe)}const fe=new EventSource(G.toString(),{withCredentials:H.mode!=="staging"});ee.current=fe,fe.onopen=()=>{if(v({status:Ft.CONNECTED}),se.current>0){const pe=r;setTimeout(()=>{n(`/ai/threads/${pe}/messages?limit=100`,{method:"GET"}).then(async V=>{const ne=await N(V);if(ne.data&&k.current===pe){const Re=[...ne.data.data].sort((Fe,Ze)=>new Date(Fe.timestamp).getTime()-new Date(Ze.timestamp).getTime());s(Re)}}).catch(()=>{})},100)}se.current=0},fe.onerror=()=>{if(v({status:Ft.ERROR}),fe.close(),ee.current=null,se.current<Q){const pe=Math.min(1e3*Math.pow(2,se.current),3e4);he.current=setTimeout(()=>{se.current++,U()},pe)}else v({status:Ft.DISCONNECTED})},fe.addEventListener("conversation_message",pe=>{try{const V=JSON.parse(pe.data),ne=(V==null?void 0:V.ConversationMessage)??V??null;ne&&B.current(ne)}catch{}}),fe.addEventListener("platform_event",pe=>{try{const V=JSON.parse(pe.data);V!=null&&V.PlatformEvent?q.current(V.PlatformEvent[0],V.PlatformEvent[1]):V!=null&&V.event_label&&q.current(V.event_label,V.event_data)}catch{}})};return U(),()=>{he.current&&(clearTimeout(he.current),he.current=null),ee.current&&(ee.current.close(),ee.current=null)}},[r]);const X=i.useCallback(async()=>{if(!r)return;const H=r;try{const U=await n(`/ai/threads/${H}`,{method:"GET"});if(!U.ok)return;const G=await N(U);G.data&&k.current===H&&(f(G.data),D(G.data.status))}catch{}},[r,n,D]);i.useEffect(()=>{if(!r)return;X();const H=window.setInterval(()=>{!Nt(P.current)&&$.current<=Date.now()||X()},Lp);return()=>{window.clearInterval(H)}},[r,X]),i.useEffect(()=>{s([]),f(null),j(!0),z(!1),y(null),b(!!r),v({status:Ft.DISCONNECTED}),S.current=null,$.current=0,P.current=Ye.IDLE,O()},[r,O]);const Ie=i.useCallback(async(H,U)=>{var G;if(!(!r||!a)){c(H),U&&U.length>0&&u(U);try{const fe=new FormData;fe.append("message",H),U&&U.length>0&&U.forEach(V=>{fe.append("files",V)});const pe=await n(`/ai/threads/${r}/run`,{method:"POST",body:fe});if(pe.ok){const ne=((G=(await N(pe)).data)==null?void 0:G.conversation_id)??null;ne?L(ne,H):O(),M(Ye.RUNNING)}else O()}catch{O()}}},[r,a,n,M,O,L]);i.useEffect(()=>{r&&le()},[r,le]);const Oe=i.useCallback(async()=>{await le()},[le]),Ue=i.useCallback(async()=>{if(!(_||!C||!S.current)){z(!0);try{await le(S.current)}finally{z(!1)}}},[_,C,le]),He=i.useCallback(()=>{s([]),O()},[O]),Xe=i.useCallback(async(H,U)=>{if(!r)return!1;try{const G=new FormData;return G.append("request_message_id",H),U.forEach(pe=>{G.append("approval_tool_name",pe.tool_name),G.append("approval_mode",pe.mode)}),(await n(`/ai/threads/${r}/run`,{method:"POST",body:G})).ok?(M(Ye.RUNNING),!0):!1}catch{return!1}},[r,n,M]),qe=i.useCallback(async()=>{if(!(!r||!Nt(g)))try{const H=new FormData;H.append("cancel","true"),await n(`/ai/threads/${r}/run`,{method:"POST",body:H}),$.current=0,A(Ye.IDLE)}catch{}},[r,g,n,A]),ge=i.useCallback(H=>{if(!a||!r||!H)return null;const U=H.url||H.filename;if(!U)return null;if(/^https?:\/\//i.test(U))return U;const G=a.backend_host.replace(/\/$/,"");let fe;if(U.startsWith("/ai/threads/"))fe=new URL(U,`${G}/`);else{const pe=U.startsWith("/uploads/")||U.includes("/")?U.split("/").pop()??"":U;if(!pe)return null;fe=new URL(`/ai/threads/${encodeURIComponent(r)}/files/${encodeURIComponent(pe)}`,`${G}/`)}if(a.mode==="staging"){const pe=nr(a.backend_host);pe&&fe.searchParams.set("__dev_session__",pe)}return fe.toString()},[r,a]),Se=i.useCallback(H=>{const U=ge(H);if(!U)return;const G=document.createElement("a");G.href=U,G.download=(H==null?void 0:H.filename)||"attachment",G.rel="noreferrer",document.body.appendChild(G),G.click(),document.body.removeChild(G)},[ge]),ke=((Y=d==null?void 0:d.execution_state)==null?void 0:Y.pending_approval_request)??null,de=(ke==null?void 0:ke.request_message_id)??null;return{threadState:d,messages:o,pendingMessage:h,pendingFiles:l,connectionState:x,isConnected:x.status===Ft.CONNECTED,hasActiveRun:Nt(g),isRunning:g===Ye.STARTING||g===Ye.RUNNING,executionStatus:g,isWaitingForInput:g===Ye.WAITING_FOR_INPUT,pendingApprovalRequest:ke,activeApprovalRequestId:de,hasMoreMessages:C,isLoadingMore:_,messagesLoading:w,messagesError:E,refreshMessages:Oe,sendMessage:Ie,submitApprovalResponse:Xe,clearMessages:He,loadMoreMessages:Ue,cancelExecution:qe,resolveMessageFileUrl:ge,downloadMessageFile:Se}}function Op(r){const{client:t}=me(),[a,n]=i.useState(!r),[o,s]=i.useState(!!r),[h,c]=i.useState(null),l=i.useRef(!1),u=i.useRef(!1),d=i.useRef(null),f=a,g=i.useCallback(async()=>{const w=await t("/ai/session",{method:"GET"});if(!w.ok)throw w.status===401||w.status===403?new Error("NO_SESSION"):new Error("Failed to fetch session");return(await N(w)).data},[t]),{data:m,error:x,isLoading:v,mutate:C}=_e(f?"wacht-agent-session":null,g,{revalidateOnFocus:!1});i.useEffect(()=>{if(!r||l.current||u.current||d.current===r)return;d.current=r,(async()=>{u.current=!0,s(!0);try{(await t(`/session/ticket/exchange?ticket=${encodeURIComponent(r)}`,{method:"GET"})).ok?(l.current=!0,n(!0)):c(new Error("Failed to exchange ticket"))}catch(b){c(b instanceof Error?b:new Error("Failed to exchange ticket"))}finally{s(!1),u.current=!1}})()},[r,t]);const j=!h&&(r?a:!0)&&(!x||x.message!=="NO_SESSION"),_=h||(x&&x.message!=="NO_SESSION"?x:null);return{hasSession:j,sessionLoading:o||f&&v,sessionError:_,sessionId:(m==null?void 0:m.session_id)||null,actor:(m==null?void 0:m.actor)||null,agents:(m==null?void 0:m.agents)||[],ticketExchanged:a,ticketLoading:o,refetch:async()=>{await C()}}}const xi={exists:!1,files:[]};function ks(r,t){return t===void 0?"":`?${new URLSearchParams({[r]:String(t)}).toString()}`}function bd(r,t){const a=new URLSearchParams({path:r});return t&&a.set("include_archived","true"),`?${a.toString()}`}function yd(r,t){const a=new URLSearchParams;r&&a.set("path",r),t&&a.set("include_archived","true");const n=a.toString();return n?`?${n}`:""}function Dp(r){const t=r.split("/").pop()||r,a=t.lastIndexOf(".");return a<0||a===t.length-1?"":t.slice(a+1).toLowerCase()}function Fp(r,t){const a=Dp(t),n=new Set(["doc","docx","ppt","pptx","xls","xlsx","pdf","zip","gz","tar","7z","rar","jar","war","bin"]),o=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:o.has(a)?!0:r.startsWith("text/")||r.includes("json")||r.includes("javascript")||r.includes("typescript")||r.includes("python")||r.includes("xml")||r.includes("yaml")}function Qe(r,t,a){if(a!=null){if(typeof a=="string"){r.set(t,a);return}if(typeof a=="boolean"||typeof a=="number"){r.set(t,String(a));return}}}function Np(r,t,a){a&&r.set(t,JSON.stringify(a))}function bi(r){const t=new FormData;return Qe(t,"name",r.name),Qe(t,"agent_id","agent_id"in r?r.agent_id:void 0),Qe(t,"description",r.description),Qe(t,"status",r.status),t}function Up(r){const t=new FormData;if(Qe(t,"title",r.title),Qe(t,"agent_id",r.agent_id),Qe(t,"system_instructions",r.system_instructions),Qe(t,"thread_purpose",r.thread_purpose),Qe(t,"responsibility",r.responsibility),Qe(t,"reusable",r.reusable),Qe(t,"accepts_assignments",r.accepts_assignments),Np(t,"metadata",r.metadata),Array.isArray(r.capability_tags))for(const a of r.capability_tags)t.append("capability_tags",a);return t}function wd(r){const t=new FormData;return Qe(t,"title",r.title),Qe(t,"agent_id",r.agent_id),Qe(t,"system_instructions",r.system_instructions),t}function jd(r,t=[]){const a=new FormData;Qe(a,"title",r.title),Qe(a,"description",r.description),Qe(a,"status",r.status),Qe(a,"priority",r.priority),Qe(a,"schedule_kind",r.schedule_kind),Qe(a,"next_run_at",r.next_run_at),Qe(a,"interval_seconds",r.interval_seconds),"clear_schedule"in r&&Qe(a,"clear_schedule",r.clear_schedule);for(const n of t)a.append("files",n);return a}function Bp(r={}){const{client:t}=me(),{includeArchived:a=!1,enabled:n=!0}=r,o=n?`wacht-ai-actors:${a}`:null,s=i.useCallback(async()=>{const u=await t(`/ai/actors${ks("include_archived",a)}`);return(await N(u)).data},[t,a]),{data:h,error:c,mutate:l}=_e(o,s,{revalidateOnFocus:!1});return{actors:h||[],loading:!h&&!c,error:c,refetch:async()=>{await l()}}}function Wp(r={}){const{client:t}=me(),{includeArchived:a=!1,enabled:n=!0}=r,o=n?`wacht-ai-actor-projects:${a}`:null,s=i.useCallback(async()=>{const m=await t(`/ai/projects${ks("include_archived",a)}`);return(await N(m)).data},[t,a]),{data:h,error:c,mutate:l}=_e(o,s,{revalidateOnFocus:!1}),u=i.useCallback(async m=>{const x=await t("/ai/projects",{method:"POST",body:bi(m)}),v=await N(x);return await l(),v.data},[t,l]),d=i.useCallback(async(m,x)=>{const v=await t(`/ai/projects/${m}/update`,{method:"POST",body:bi(x)}),C=await N(v);return await l(),C.data},[t,l]),f=i.useCallback(async m=>{const x=await t(`/ai/projects/${m}/archive`,{method:"POST",body:new URLSearchParams}),v=await N(x);return await l(),v.data},[t,l]),g=i.useCallback(async m=>{const x=await t(`/ai/projects/${m}/unarchive`,{method:"POST",body:new URLSearchParams}),v=await N(x);return await l(),v.data},[t,l]);return{projects:h||[],loading:!h&&!c,error:c,createProject:u,updateProject:d,archiveProject:f,unarchiveProject:g,refetch:async()=>{await l()}}}function Vp(r={}){const{client:t}=me(),{enabled:a=!0,query:n="",limit:o=12}=r,s=n.trim(),h=a?`wacht-ai-actor-project-search:${s}:${o}`:null,c=i.useCallback(async()=>{const f=new URLSearchParams({limit:String(o)});s&&f.set("q",s);const g=await t(`/ai/projects/search?${f.toString()}`);return(await N(g)).data},[t,o,s]),{data:l,error:u,mutate:d}=_e(h,c,{revalidateOnFocus:!1});return{projects:(l==null?void 0:l.data)||[],loading:!l&&!u,error:u,hasMore:(l==null?void 0:l.has_more)||!1,nextCursor:l==null?void 0:l.next_cursor,refetch:async()=>{await d()}}}function Gp(r,t={}){const{client:a}=me(),{includeArchived:n=!1,enabled:o=!0}=t,s=o&&r?`wacht-ai-threads:${r}:${n}`:null,h=i.useCallback(async()=>{if(!r)return[];const v=await a(`/ai/projects/${r}/threads${ks("include_archived",n)}`);return(await N(v)).data},[r,a,n]),{data:c,error:l,mutate:u}=_e(s,h,{revalidateOnFocus:!1}),d=i.useCallback(async(v,C)=>{const j=await a(`/ai/projects/${v}/threads`,{method:"POST",body:Up(C)}),_=await N(j);return v===r&&await u(),_.data},[r,a,u]),f=i.useCallback(async v=>{if(!r)throw new Error("projectId is required");return d(r,v)},[r,d]),g=i.useCallback(async(v,C)=>{const j=await a(`/ai/threads/${v}/update`,{method:"POST",body:wd(C)}),_=await N(j);return await u(),_.data},[a,u]),m=i.useCallback(async v=>{const C=await a(`/ai/threads/${v}/archive`,{method:"POST",body:new URLSearchParams}),j=await N(C);return await u(),j.data},[a,u]),x=i.useCallback(async v=>{const C=await a(`/ai/threads/${v}/unarchive`,{method:"POST",body:new URLSearchParams}),j=await N(C);return await u(),j.data},[a,u]);return{threads:c||[],loading:!c&&!l,error:l,createThread:f,createThreadForProject:d,updateThread:g,archiveThread:m,unarchiveThread:x,refetch:async()=>{await u()}}}function Hp(r,t={}){var m,x;const{client:a}=me(),{includeArchived:n=!1,archivedOnly:o=!1,enabled:s=!0,query:h="",limit:c=10}=t,l=h.trim(),u=ia((v,C)=>{if(!s||!r||v>0&&C&&!C.has_more)return null;const j=v===0||C==null?void 0:C.next_cursor;return["wacht-ai-project-thread-feed",r,o?"archived-only":n?"with-archived":"active-only",l,c,j||""]},async([,v,C,j,_,z])=>{const w=new URLSearchParams({limit:String(_)});C==="with-archived"?w.set("include_archived","true"):C==="archived-only"&&(w.set("include_archived","true"),w.set("archived_only","true")),j&&w.set("q",String(j)),z&&w.set("cursor",String(z));const b=await a(`/ai/projects/${v}/threads/page?${w.toString()}`);return(await N(b)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0}),d=i.useMemo(()=>{var v;return((v=u.data)==null?void 0:v.flatMap(C=>C.data||[]))||[]},[u.data]),f=u.data&&((m=u.data[u.data.length-1])==null?void 0:m.has_more)||!1,g=u.isValidating&&!!u.data&&u.size>(((x=u.data)==null?void 0:x.length)||0);return{threads:d,loading:!u.data&&!u.error,error:u.error||null,hasMore:f,loadingMore:g,loadMore:async()=>{!f||g||await u.setSize(v=>v+1)},refetch:async()=>{await u.mutate()}}}function qp(r={}){const{client:t}=me(),{enabled:a=!0,query:n="",limit:o=16}=r,s=n.trim(),h=a?`wacht-ai-actor-thread-search:${s}:${o}`:null,c=i.useCallback(async()=>{const f=new URLSearchParams({limit:String(o)});s&&f.set("q",s);const g=await t(`/ai/threads/search?${f.toString()}`);return(await N(g)).data},[t,o,s]),{data:l,error:u,mutate:d}=_e(h,c,{revalidateOnFocus:!1});return{threads:(l==null?void 0:l.data)||[],loading:!l&&!u,error:u,hasMore:(l==null?void 0:l.has_more)||!1,nextCursor:l==null?void 0:l.next_cursor,refetch:async()=>{await d()}}}function Kp(r,t=!0){const{client:a}=me(),n=t&&r?`wacht-ai-thread:${r}`:null,o=i.useCallback(async()=>{if(!r)return null;const u=await a(`/ai/threads/${r}`);return(await N(u)).data},[r,a]),s=_e(n,o,{revalidateOnFocus:!1}),h=i.useCallback(async u=>{if(!r)throw new Error("threadId is required");const d=await a(`/ai/threads/${r}/update`,{method:"POST",body:wd(u)}),f=await N(d);return await s.mutate(),f.data},[r,a,s]),c=i.useCallback(async()=>{if(!r)throw new Error("threadId is required");const u=await a(`/ai/threads/${r}/archive`,{method:"POST",body:new URLSearchParams}),d=await N(u);return await s.mutate(),d.data},[r,a,s]),l=i.useCallback(async()=>{if(!r)throw new Error("threadId is required");const u=await a(`/ai/threads/${r}/unarchive`,{method:"POST",body:new URLSearchParams}),d=await N(u);return await s.mutate(),d.data},[r,a,s]);return{thread:s.data||null,loading:!s.data&&!s.error,error:s.error||null,updateThread:h,archiveThread:c,unarchiveThread:l,refetch:async()=>{await s.mutate()}}}function Yp(r,t=!0){const{client:a}=me(),n=t&&r?`wacht-ai-thread-filesystem:${r}`:null,o=i.useCallback(async c=>{if(!r)throw new Error("threadId is required");const l=await a(`/ai/threads/${r}/filesystem/file${bd(c)}`);if(!l.ok)throw new Error("Failed to load file");const u=await l.blob(),d=(l.headers.get("content-type")||"application/octet-stream").split(";")[0].trim().toLowerCase(),f=Fp(d,c);let g;return f&&(g=await u.text()),{path:c,name:c.split("/").pop()||"file",mime_type:d,is_text:f,size_bytes:u.size,truncated:!1,content:g,blob:u}},[r,a]),s=i.useCallback(async c=>{if(!r)return xi;const l=await a(`/ai/threads/${r}/filesystem${yd(c)}`);return(await N(l)).data},[r,a]),h=_e(n,()=>s(),{revalidateOnFocus:!1});return{filesystem:h.data||xi,filesystemLoading:!h.data&&!h.error,filesystemError:h.error||null,getFile:o,listDirectory:s,refetch:async()=>{await h.mutate()}}}function Qp(r,t={}){var u,d;const{client:a}=me(),{enabled:n=!0,limit:o=40}=t,s=ia((f,g)=>{if(!n||!r||f>0&&g&&!g.has_more)return null;const m=f===0||g==null?void 0:g.next_cursor;return["wacht-ai-thread-events",r,o,m||""]},async([,f,g,m])=>{const x=new URLSearchParams({limit:String(g)});m&&x.set("cursor",String(m));const v=await a(`/ai/threads/${f}/events?${x.toString()}`);return(await N(v)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0,refreshInterval:5e3}),h=i.useMemo(()=>{var f;return((f=s.data)==null?void 0:f.flatMap(g=>g.data||[]))||[]},[s.data]),c=s.data&&((u=s.data[s.data.length-1])==null?void 0:u.has_more)||!1,l=s.isValidating&&!!s.data&&s.size>(((d=s.data)==null?void 0:d.length)||0);return{events:h,loading:!s.data&&!s.error,error:s.error||null,hasMore:c,loadingMore:l,loadMore:async()=>{!c||l||await s.setSize(f=>f+1)},refetch:async()=>{await s.mutate()}}}function Zp(r,t={}){var u,d;const{client:a}=me(),{enabled:n=!0,limit:o=40}=t,s=ia((f,g)=>{if(!n||!r||f>0&&g&&!g.has_more)return null;const m=f===0||g==null?void 0:g.next_cursor;return["wacht-ai-thread-assignments",r,o,m||""]},async([,f,g,m])=>{const x=new URLSearchParams({limit:String(g)});m&&x.set("cursor",String(m));const v=await a(`/ai/threads/${f}/assignments?${x.toString()}`);return(await N(v)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0,refreshInterval:5e3}),h=i.useMemo(()=>{var f;return((f=s.data)==null?void 0:f.flatMap(g=>g.data||[]))||[]},[s.data]),c=s.data&&((u=s.data[s.data.length-1])==null?void 0:u.has_more)||!1,l=s.isValidating&&!!s.data&&s.size>(((d=s.data)==null?void 0:d.length)||0);return{assignments:h,loading:!s.data&&!s.error,error:s.error||null,hasMore:c,loadingMore:l,loadMore:async()=>{!c||l||await s.setSize(f=>f+1)},refetch:async()=>{await s.mutate()}}}function Jp(r={},t){const a=new URLSearchParams;r.statuses&&r.statuses.length>0&&a.set("status",r.statuses.join(",")),r.includeArchived&&a.set("include_archived","true"),r.archivedOnly&&a.set("archived_only","true"),r.limit&&a.set("limit",String(r.limit)),t&&a.set("cursor",t);const n=a.toString();return n?`?${n}`:""}function Xp(r,t=!0,a={}){var x,v,C;const{client:n}=me(),o=((x=a.statuses)==null?void 0:x.join(","))||"all",s=a.archivedOnly?"archived-only":a.includeArchived?"with-archived":"active-only",h=a.limit||60,c=ia((j,_)=>{if(!t||!r||j>0&&_&&!_.has_more)return null;const z=j===0||_==null?void 0:_.next_cursor;return["wacht-ai-project-tasks",r,o,s,h,z||""]},async([,j,,,,_])=>{const z=await n(`/ai/projects/${j}/board/items${Jp(a,_||void 0)}`);return(await N(z)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0}),l=i.useMemo(()=>{var j;return((j=c.data)==null?void 0:j.flatMap(_=>_.data||[]))||[]},[c.data]),u=c.data&&((v=c.data[c.data.length-1])==null?void 0:v.has_more)||!1,d=c.isValidating&&!!c.data&&c.size>(((C=c.data)==null?void 0:C.length)||0),f=i.useCallback(async(j,_=[])=>{if(!r)throw new Error("projectId is required");const z=await n(`/ai/projects/${r}/board/items`,{method:"POST",body:jd(j,_)}),w=await N(z);return await c.mutate(),w.data},[r,n,c]),g=i.useCallback(async j=>{const _=await n(`/ai/board-items/${j}/archive`,{method:"POST",body:new URLSearchParams}),z=await N(_);return await c.mutate(),z.data},[n,c]),m=i.useCallback(async j=>{const _=await n(`/ai/board-items/${j}/unarchive`,{method:"POST",body:new URLSearchParams}),z=await N(_);return await c.mutate(),z.data},[n,c]);return{tasks:l,loading:!c.data&&!c.error,error:c.error||null,hasMore:u,loadingMore:d,loadMore:async()=>{!u||d||await c.setSize(j=>j+1)},createTask:f,archiveTask:g,unarchiveTask:m,refetch:async()=>{await c.mutate()}}}function ef(r,t=!0,a={}){var _,z,w;const{client:n}=me(),o=a.includeArchived?"with-archived":"active-only",s=a.includeArchived?"?include_archived=true":"",h=t&&r?`wacht-ai-board-item-detail:${r}:${o}`:null,c=t&&r?`wacht-ai-board-item-workspace:${r}:${o}`:null,l=i.useCallback(async()=>{if(!r)return null;const b=await n(`/ai/board-items/${r}/detail${s}`);return(await N(b)).data},[r,n,s]),u=_e(h,l,{revalidateOnFocus:!1,refreshInterval:5e3}),d=i.useCallback(async()=>{if(!r)return{exists:!1,files:[]};const b=await n(`/ai/board-items/${r}/task-workspace${s}`);return(await N(b)).data},[r,n,s]),f=_e(c,d,{revalidateOnFocus:!1,refreshInterval:5e3}),g=i.useCallback(async(b,E=[])=>{if(!r)throw new Error("itemId is required");const y=await n(`/ai/board-items/${r}/update`,{method:"POST",body:jd(b,E)}),S=await N(y);return await u.mutate(),await f.mutate(),S.data},[r,n,u,f]),m=i.useCallback(async()=>{if(!r)throw new Error("itemId is required");const b=await n(`/ai/board-items/${r}/archive`,{method:"POST",body:new URLSearchParams}),E=await N(b);return await u.mutate(),E.data},[r,n,u]),x=i.useCallback(async()=>{if(!r)throw new Error("itemId is required");const b=await n(`/ai/board-items/${r}/unarchive`,{method:"POST",body:new URLSearchParams}),E=await N(b);return await u.mutate(),E.data},[r,n,u]),v=i.useCallback(async b=>{if(!r)throw new Error("itemId is required");const E=await n(`/ai/board-items/${r}/task-workspace/file${bd(b,a.includeArchived)}`);return(await N(E)).data},[r,n,a.includeArchived]),C=i.useCallback(async b=>{if(!r)throw new Error("itemId is required");const E=await n(`/ai/board-items/${r}/task-workspace${yd(b,a.includeArchived)}`);return(await N(E)).data},[r,n,a.includeArchived]),j=i.useCallback(async(b,E=[])=>{if(!r)throw new Error("itemId is required");const y=await n(`/ai/board-items/${r}/journal`,{method:"POST",body:(()=>{const k=new FormData;k.set("summary",b.summary),b.body_markdown&&k.set("body_markdown",b.body_markdown),b.details&&k.set("details",b.details);for(const $ of E)k.append("files",$);return k})()}),S=await N(y);return await u.mutate(),await f.mutate(),S.data},[r,n,u,f]);return{item:((_=u.data)==null?void 0:_.item)||null,events:((z=u.data)==null?void 0:z.events)||[],assignments:((w=u.data)==null?void 0:w.assignments)||[],taskWorkspace:f.data||{exists:!1,files:[]},taskWorkspaceLoading:!f.data&&!f.error,taskWorkspaceError:f.error||null,loading:!u.data&&!u.error,error:u.error||null,updateItem:g,archiveItem:m,unarchiveItem:x,getTaskWorkspaceFile:v,listTaskWorkspaceDirectory:C,appendJournal:j,refetch:async()=>{await u.mutate(),await f.mutate()},refetchTaskWorkspace:async()=>{await f.mutate()}}}function rf(r,t=!0){var m;const{client:a}=me(),{data:n,error:o,mutate:s,isLoading:h,size:c,setSize:l,isValidating:u}=ia((x,v)=>{if(!t||!r||x>0&&(!v||!v.has_more))return null;const C=x===0||v==null?void 0:v.next_cursor;return["wacht-ai-thread-graphs",r,C]},async([,x,v])=>{const C=new URLSearchParams;C.set("limit","10"),v&&C.set("cursor",String(v));const j=await a(`/ai/threads/${x}/task-graphs?${C.toString()}`),z=(await N(j)).data||{data:[],limit:10,has_more:!1};return{...z,data:(z.data||[]).map(w=>({...w,nodes:Array.isArray(w.nodes)?w.nodes:[],edges:Array.isArray(w.edges)?w.edges:[],summary:w.summary||null}))}},{revalidateOnFocus:!1,refreshInterval:5e3,revalidateFirstPage:!0,revalidateAll:!1,persistSize:!0}),d=i.useMemo(()=>n?n.flatMap(x=>x.data||[]):[],[n]),f=n&&((m=n[n.length-1])==null?void 0:m.has_more)||!1,g=u&&!!n&&c>((n==null?void 0:n.length)||0);return{graphs:d,latestGraph:d[0]||null,has_more:f,loadingMore:g,loading:h,error:o,loadMore:async()=>{!f||g||await l(c+1)},refetch:async()=>{await s()}}}async function ho(r){const t=await r.json();if(!r.ok)throw new Error(t.message||"Request failed");return t.data}function tf(r=!0){const{client:t}=me(),a=r?"wacht-ai-actor-mcp-servers":null,n=i.useCallback(async()=>{const d=await t("/ai/mcp-servers");return ho(d)},[t]),{data:o,error:s,mutate:h,isLoading:c}=_e(a,n,{revalidateOnFocus:!1}),l=i.useCallback(async d=>{const f=await t(`/ai/mcp-servers/${d}/connect`,{method:"POST",body:new URLSearchParams});return ho(f)},[t]),u=i.useCallback(async d=>{const f=await t(`/ai/mcp-servers/${d}/disconnect`,{method:"POST",body:new URLSearchParams});await ho(f),await h()},[t,h]);return{servers:o??[],loading:c,error:s,connect:l,disconnect:u,refetch:async()=>{await h()}}}function af(r){const t=new URLSearchParams;return t.append("url",r.url),r.description&&t.append("description",r.description),r.subscribed_events&&r.subscribed_events.forEach(a=>t.append("subscribed_events",a)),r.subscriptions&&r.subscriptions.length>0&&t.append("subscriptions",JSON.stringify(r.subscriptions)),r.headers&&Object.entries(r.headers).forEach(([a,n])=>{t.append(`headers[${a}]`,n)}),r.rate_limit_config&&(t.append("rate_limit[duration_ms]",r.rate_limit_config.duration_ms.toString()),t.append("rate_limit[max_requests]",r.rate_limit_config.max_requests.toString())),t}function nf(r){const t=new URLSearchParams;return r.url&&t.append("url",r.url),r.description!==void 0&&t.append("description",r.description||""),r.subscribed_events&&r.subscribed_events.forEach(a=>t.append("subscribed_events",a)),r.subscriptions&&r.subscriptions.length>0&&t.append("subscriptions",JSON.stringify(r.subscriptions)),r.headers&&Object.entries(r.headers).forEach(([a,n])=>{t.append(`headers[${a}]`,n)}),r.is_active!==void 0&&t.append("is_active",r.is_active.toString()),r.rate_limit_config&&(t.append("rate_limit[duration_ms]",r.rate_limit_config.duration_ms.toString()),t.append("rate_limit[max_requests]",r.rate_limit_config.max_requests.toString())),t}function of(r){const t=new URLSearchParams;return t.append("event_name",r.event_name),t.append("payload",JSON.stringify(r.payload||{})),t}function sf(r){const t=new URLSearchParams;return(r.delivery_ids||[]).forEach(n=>t.append("delivery_ids",n)),r.start_date&&t.append("start_date",r.start_date),r.end_date&&t.append("end_date",r.end_date),r.status&&t.append("status",r.status),r.event_name&&t.append("event_name",r.event_name),r.endpoint_id&&t.append("endpoint_id",r.endpoint_id),r.idempotency_key&&t.append("idempotency_key",r.idempotency_key),t}const Fa={"Content-Type":"application/x-www-form-urlencoded"};async function yr(r,t){const a=await N(r);if(!a||!("data"in a))throw new Error(t);return a.data}async function cf(r){const t=await r("/webhook/session",{method:"GET"});if(!t.ok)throw t.status===401||t.status===403?new Error("NO_SESSION"):new Error("Failed to fetch webhook app session");return yr(t,"Failed to fetch webhook app session")}async function lf(r,t){if(!(await r(`/session/ticket/exchange?ticket=${encodeURIComponent(t)}`,{method:"GET"})).ok)throw new Error("Failed to exchange ticket")}async function df(r,t){const a=af(t),n=await r("/webhook/endpoints",{method:"POST",headers:Fa,body:a.toString()});return yr(n,"Failed to create webhook endpoint")}async function uf(r,t,a){const n=nf(a),o=await r(`/webhook/endpoints/${t}`,{method:"PUT",headers:Fa,body:n.toString()});return yr(o,"Failed to update webhook endpoint")}async function hf(r,t){const a=await r(`/webhook/endpoints/${t}`,{method:"DELETE"});return yr(a,"Failed to delete webhook endpoint")}async function pf(r,t,a){const n=of(a),o=await r(`/webhook/endpoints/${t}/test`,{method:"POST",headers:Fa,body:n.toString()});return yr(o,"Failed to test webhook endpoint")}async function ff(r){const t=await r("/webhook/rotate-secret",{method:"POST"});return yr(t,"Failed to rotate signing secret")}async function gf(r,t){const a=new URLSearchParams;for(const o of t.failure_notification_emails)a.append("failure_notification_emails",o);const n=await r("/webhook/settings",{method:"PUT",headers:Fa,body:a.toString()});return yr(n,"Failed to update webhook settings")}async function mf(r,t){const a=sf(t),n=await r("/webhook/deliveries/replay",{method:"POST",headers:Fa,body:a.toString()});return yr(n,"Failed to replay webhook delivery")}async function vf(r,t){const a=await r(`/webhook/deliveries/${t}`,{method:"GET"});return yr(a,"Failed to fetch delivery details")}async function xf(r,{taskId:t}){const a=await r(`/webhook/deliveries/replay/${t}`,{method:"GET"});return yr(a,"Failed to fetch replay task status")}async function bf(r,t){const a=(t==null?void 0:t.limit)??50,n=(t==null?void 0:t.offset)??0,o=await r(`/webhook/deliveries/replay?limit=${a}&offset=${n}`,{method:"GET"});return yr(o,"Failed to fetch replay tasks")}async function yf(r,{taskId:t}){const a=await r(`/webhook/deliveries/replay/${t}/cancel`,{method:"POST"});return yr(a,"Failed to cancel replay task")}function wf(r){const{client:t}=me(),[a,n]=i.useState(!r),[o,s]=i.useState(!!r),[h,c]=i.useState(null),l=i.useRef(!1),u=i.useRef(!1),d=i.useRef(null),f=a,g=i.useCallback(async()=>cf(t),[t]),{data:m,error:x,isLoading:v,mutate:C}=_e(f?"wacht-webhook-app-session":null,g,{revalidateOnFocus:!1,shouldRetryOnError:!1});i.useEffect(()=>{if(!r||l.current||u.current||d.current===r)return;d.current=r,(async()=>{u.current=!0,s(!0);try{await lf(t,r),l.current=!0,n(!0)}catch(D){c(D instanceof Error?D:new Error("Failed to exchange ticket"))}finally{s(!1),u.current=!1}})()},[r,t]);const j=i.useCallback(async F=>df(t,F),[t]),_=i.useCallback(async(F,D)=>uf(t,F,D),[t]),z=i.useCallback(async F=>hf(t,F),[t]),w=i.useCallback(async(F,D)=>pf(t,F,D),[t]),b=i.useCallback(async()=>ff(t),[t]),E=i.useCallback(async F=>mf(t,F),[t]),y=i.useCallback(async F=>gf(t,F),[t]),S=i.useCallback(async F=>vf(t,F),[t]),k=i.useCallback(async F=>xf(t,F),[t]),$=i.useCallback(async F=>bf(t,F),[t]),P=i.useCallback(async F=>yf(t,F),[t]),T=!x||x.message!=="NO_SESSION",A=h||(x&&x.message!=="NO_SESSION"?x:null);return{hasSession:T,sessionLoading:o||f&&v,sessionError:A,sessionId:(m==null?void 0:m.session_id)||null,webhookApp:(m==null?void 0:m.webhook_app)||null,ticketExchanged:a,ticketLoading:o,refetch:async()=>{await C()},createEndpoint:j,updateEndpoint:_,deleteEndpoint:z,testEndpoint:w,rotateSecret:b,updateSettings:y,replayDelivery:E,fetchReplayTaskStatus:k,fetchReplayTasks:$,cancelReplayTask:P,fetchDeliveryDetail:S}}function jf(){const{client:r}=me(),t=i.useCallback(async()=>{const h=await r("/webhook/stats",{method:"GET"});return(await N(h)).data},[r]),{data:a,error:n,isLoading:o,mutate:s}=_e("wacht-webhook-stats",t,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{stats:a||null,loading:o,error:n,refetch:()=>s()}}function _f(){const{client:r}=me(),t=i.useCallback(async()=>{const h=await r("/webhook/endpoints",{method:"GET"});return(await N(h)).data},[r]),{data:a,error:n,isLoading:o,mutate:s}=_e("wacht-webhook-endpoints",t,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{endpoints:a||[],loading:o,error:n,refetch:()=>s()}}function kf(){const{client:r}=me();return{createEndpoint:i.useCallback(async a=>{const n=new URLSearchParams;n.append("url",a.url),a.description&&n.append("description",a.description),a.subscribed_events.forEach(h=>{n.append("subscribed_events",h)});const o=await r("/webhook/endpoints",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n.toString()});return(await N(o)).data},[r]),loading:!1,error:null}}function Cf(){const{client:r}=me(),t=i.useCallback(async()=>{const h=await r("/webhook/events",{method:"GET"});return(await N(h)).data},[r]),{data:a,error:n,isLoading:o,mutate:s}=_e("wacht-webhook-events",t,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{events:a||[],loading:o,error:n,refetch:()=>s()}}function Sf(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.endpoint_id&&c.set("endpoint_id",r.endpoint_id),r.status&&c.set("status",r.status),r.event_name&&c.set("event_name",r.event_name),r.limit&&c.set("limit",r.limit.toString()),r.cursor&&c.set("cursor",r.cursor);const l=await t(`/webhook/deliveries?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.endpoint_id,r.status,r.event_name,r.limit,r.cursor]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.endpoint_id&&c.set("endpoint_id",r.endpoint_id),r.status&&c.set("status",r.status),r.event_name&&c.set("event_name",r.event_name),r.limit&&c.set("limit",r.limit.toString()),r.cursor&&c.set("cursor",r.cursor),`wacht-webhook-deliveries?${c.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:s,error:o,refetch:()=>h()}}function zf(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.endpoint_id&&c.set("endpoint_id",r.endpoint_id),r.fields&&r.fields.length>0&&c.set("fields",r.fields.join(","));const l=await t(`/webhook/analytics?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.start_date,r.end_date,r.endpoint_id,r.fields]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.endpoint_id&&c.set("endpoint_id",r.endpoint_id),r.fields&&r.fields.length>0&&c.set("fields",r.fields.join(",")),`wacht-webhook-analytics?${c.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{analytics:n||null,loading:s,error:o,refetch:()=>h()}}function $f(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.interval&&c.set("interval",r.interval),r.endpoint_id&&c.set("endpoint_id",r.endpoint_id);const l=await t(`/webhook/analytics/timeseries?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.start_date,r.end_date,r.interval,r.endpoint_id]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.interval&&c.set("interval",r.interval),r.endpoint_id&&c.set("endpoint_id",r.endpoint_id),`wacht-webhook-timeseries?${c.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{timeseries:(n==null?void 0:n.data)||[],interval:(n==null?void 0:n.interval)||"hour",loading:s,error:o,refetch:()=>h()}}function Ef(r){const{client:t}=me(),[a,n]=i.useState(!r),[o,s]=i.useState(!!r),[h,c]=i.useState(null),l=i.useRef(!1),u=i.useRef(!1),d=i.useRef(null),f=a,g=i.useCallback(async()=>{const w=await t("/api-auth/session",{method:"GET"});if(!w.ok)throw w.status===401||w.status===403?new Error("NO_SESSION"):new Error("Failed to fetch API auth app session");return(await N(w)).data},[t]),{data:m,error:x,isLoading:v,mutate:C}=_e(f?"wacht-api-auth-app-session":null,g,{revalidateOnFocus:!1,shouldRetryOnError:!1});i.useEffect(()=>{if(!r||l.current||u.current||d.current===r)return;d.current=r,(async()=>{u.current=!0,s(!0);try{(await t(`/session/ticket/exchange?ticket=${encodeURIComponent(r)}`,{method:"GET"})).ok?(l.current=!0,n(!0)):c(new Error("Failed to exchange ticket"))}catch(b){c(b instanceof Error?b:new Error("Failed to exchange ticket"))}finally{s(!1),u.current=!1}})()},[r,t]);const j=!x||x.message!=="NO_SESSION",_=h||(x&&x.message!=="NO_SESSION"?x:null);return{hasSession:j,sessionLoading:o||f&&v,sessionError:_,sessionId:(m==null?void 0:m.session_id)||null,apiAuthApp:(m==null?void 0:m.api_auth_app)||null,ticketExchanged:a,ticketLoading:o,refetch:async()=>{await C()}}}function Rf(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const d=new URLSearchParams;r.status&&d.set("status",r.status);const f=await t(`/api-auth/keys${d.toString()?`?${d.toString()}`:""}`,{method:"GET"});return(await N(f)).data},[t,r.status]),{data:n,error:o,isLoading:s,mutate:h}=_e(`wacht-api-auth-keys:${r.status||"all"}`,a,{revalidateOnFocus:!1,shouldRetryOnError:!1}),c=i.useCallback(async d=>{const f=new URLSearchParams;f.set("name",d.name),d.expires_at&&f.set("expires_at",d.expires_at);const g=await t("/api-auth/keys",{method:"POST",body:f}),m=await N(g);return await h(),m.data},[t,h]),l=i.useCallback(async d=>{const f=await t(`/api-auth/keys/${d.key_id}/rotate`,{method:"POST"}),g=await N(f);return await h(),g.data},[t,h]),u=i.useCallback(async d=>{const f=new URLSearchParams;d.reason&&f.set("reason",d.reason),await t(`/api-auth/keys/${d.key_id}/revoke`,{method:"POST",body:f}),await h()},[t,h]);return{keys:n||[],createKey:c,rotateKey:l,revokeKey:u,loading:s,error:o,refetch:()=>h()}}function Pf(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.limit&&c.set("limit",r.limit.toString()),r.cursor&&c.set("cursor",r.cursor),r.outcome&&c.set("outcome",r.outcome),r.key_id&&c.set("key_id",r.key_id),r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date);const l=await t(`/api-auth/audit/logs?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.limit,r.cursor,r.outcome,r.key_id,r.start_date,r.end_date]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.limit&&c.set("limit",r.limit.toString()),r.cursor&&c.set("cursor",r.cursor),r.outcome&&c.set("outcome",r.outcome),r.key_id&&c.set("key_id",r.key_id),r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),`wacht-api-auth-audit-logs?${c.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{logs:(n==null?void 0:n.data)||[],limit:(n==null?void 0:n.limit)||r.limit||0,has_more:(n==null?void 0:n.has_more)||!1,next_cursor:n==null?void 0:n.next_cursor,loading:s,error:o,refetch:()=>h()}}function Tf(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.key_id&&c.set("key_id",r.key_id),r.include_top_keys&&c.set("include_top_keys","true"),r.include_top_paths&&c.set("include_top_paths","true"),r.include_blocked_reasons&&c.set("include_blocked_reasons","true"),r.include_rate_limits&&c.set("include_rate_limits","true"),r.top_limit&&c.set("top_limit",r.top_limit.toString());const l=await t(`/api-auth/audit/analytics?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.start_date,r.end_date,r.key_id,r.include_top_keys,r.include_top_paths,r.include_blocked_reasons,r.include_rate_limits,r.top_limit]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.key_id&&c.set("key_id",r.key_id),r.include_top_keys&&c.set("include_top_keys","true"),r.include_top_paths&&c.set("include_top_paths","true"),r.include_blocked_reasons&&c.set("include_blocked_reasons","true"),r.include_rate_limits&&c.set("include_rate_limits","true"),r.top_limit&&c.set("top_limit",r.top_limit.toString()),`wacht-api-auth-audit-analytics?${c.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{analytics:n||null,loading:s,error:o,refetch:()=>h()}}function Af(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.interval&&c.set("interval",r.interval),r.key_id&&c.set("key_id",r.key_id);const l=await t(`/api-auth/audit/timeseries?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.start_date,r.end_date,r.interval,r.key_id]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.interval&&c.set("interval",r.interval),r.key_id&&c.set("key_id",r.key_id),`wacht-api-auth-audit-timeseries?${c.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{timeseries:(n==null?void 0:n.data)||[],interval:(n==null?void 0:n.interval)||r.interval||"hour",loading:s,error:o,refetch:()=>h()}}const _d=()=>{const{client:r}=me(),[t,a]=i.useState(!1),[n,o]=i.useState(null),[s,h]=i.useState(null),c=i.useCallback(async u=>{a(!0),o(null),h(null);try{const d=new FormData;d.append("token",u);const f=await r("/organizations/invitations/accept",{method:"POST",body:d}),m=(await N(f)).data;return h(m),m.error_code&&o(m.message||"Failed to accept invitation"),m}catch(d){const f=d.message||"Failed to accept invitation";o(f);const g={error_code:"NETWORK_ERROR",message:f};return h(g),g}finally{a(!1)}},[r]),l=i.useCallback(()=>{o(null),h(null)},[]);return{acceptInvitation:c,invitationData:s,loading:t,error:n,reset:l}},If=({children:r})=>{const{loading:t}=ye();return t?null:e.jsx(e.Fragment,{children:r})},Lf=({children:r})=>{const{loading:t}=ye();return t?e.jsx(e.Fragment,{children:r}):null};var fr=function(){return fr=Object.assign||function(t){for(var a,n=1,o=arguments.length;n<o;n++){a=arguments[n];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(t[s]=a[s])}return t},fr.apply(this,arguments)};function Pt(r,t,a){if(a||arguments.length===2)for(var n=0,o=t.length,s;n<o;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return r.concat(s||Array.prototype.slice.call(t))}function Mf(r){var t=Object.create(null);return function(a){return t[a]===void 0&&(t[a]=r(a)),t[a]}}var Of=/^((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)-.*))$/,Df=Mf(function(r){return Of.test(r)||r.charCodeAt(0)===111&&r.charCodeAt(1)===110&&r.charCodeAt(2)<91}),Ve="-ms-",Ra="-moz-",Le="-webkit-",kd="comm",Un="rule",Cs="decl",Ff="@import",Nf="@namespace",Cd="@keyframes",Uf="@layer",Sd=Math.abs,Ss=String.fromCharCode,ts=Object.assign;function Bf(r,t){return tr(r,0)^45?(((t<<2^tr(r,0))<<2^tr(r,1))<<2^tr(r,2))<<2^tr(r,3):0}function zd(r){return r.trim()}function qr(r,t){return(r=t.exec(r))?r[0]:r}function Ce(r,t,a){return r.replace(t,a)}function _n(r,t,a){return r.indexOf(t,a)}function tr(r,t){return r.charCodeAt(t)|0}function Tt(r,t,a){return r.slice(t,a)}function _r(r){return r.length}function $d(r){return r.length}function Ca(r,t){return t.push(r),r}function Wf(r,t){return r.map(t).join("")}function yi(r,t){return r.filter(function(a){return!qr(a,t)})}var Bn=1,Xt=1,Ed=0,br=0,er=0,ca="";function Wn(r,t,a,n,o,s,h,c){return{value:r,root:t,parent:a,type:n,props:o,children:s,line:Bn,column:Xt,length:h,return:"",siblings:c}}function nt(r,t){return ts(Wn("",null,null,"",null,null,0,r.siblings),r,{length:-r.length},t)}function Ut(r){for(;r.root;)r=nt(r.root,{children:[r]});Ca(r,r.siblings)}function Vf(){return er}function Gf(){return er=br>0?tr(ca,--br):0,Xt--,er===10&&(Xt=1,Bn--),er}function Cr(){return er=br<Ed?tr(ca,br++):0,Xt++,er===10&&(Xt=1,Bn++),er}function it(){return tr(ca,br)}function kn(){return br}function Vn(r,t){return Tt(ca,r,t)}function Ia(r){switch(r){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 Hf(r){return Bn=Xt=1,Ed=_r(ca=r),br=0,[]}function qf(r){return ca="",r}function po(r){return zd(Vn(br-1,as(r===91?r+2:r===40?r+1:r)))}function Kf(r){for(;(er=it())&&er<33;)Cr();return Ia(r)>2||Ia(er)>3?"":" "}function Yf(r,t){for(;--t&&Cr()&&!(er<48||er>102||er>57&&er<65||er>70&&er<97););return Vn(r,kn()+(t<6&&it()==32&&Cr()==32))}function as(r){for(;Cr();)switch(er){case r:return br;case 34:case 39:r!==34&&r!==39&&as(er);break;case 40:r===41&&as(r);break;case 92:Cr();break}return br}function Qf(r,t){for(;Cr()&&r+er!==57;)if(r+er===84&&it()===47)break;return"/*"+Vn(t,br-1)+"*"+Ss(r===47?r:Cr())}function Zf(r){for(;!Ia(it());)Cr();return Vn(r,br)}function Jf(r){return qf(Cn("",null,null,null,[""],r=Hf(r),0,[0],r))}function Cn(r,t,a,n,o,s,h,c,l){for(var u=0,d=0,f=h,g=0,m=0,x=0,v=1,C=1,j=1,_=0,z="",w=o,b=s,E=n,y=z;C;)switch(x=_,_=Cr()){case 40:if(x!=108&&tr(y,f-1)==58){_n(y+=Ce(po(_),"&","&\f"),"&\f",Sd(u?c[u-1]:0))!=-1&&(j=-1);break}case 34:case 39:case 91:y+=po(_);break;case 9:case 10:case 13:case 32:y+=Kf(x);break;case 92:y+=Yf(kn()-1,7);continue;case 47:switch(it()){case 42:case 47:Ca(Xf(Qf(Cr(),kn()),t,a,l),l),(Ia(x||1)==5||Ia(it()||1)==5)&&_r(y)&&Tt(y,-1,void 0)!==" "&&(y+=" ");break;default:y+="/"}break;case 123*v:c[u++]=_r(y)*j;case 125*v:case 59:case 0:switch(_){case 0:case 125:C=0;case 59+d:j==-1&&(y=Ce(y,/\f/g,"")),m>0&&(_r(y)-f||v===0&&x===47)&&Ca(m>32?ji(y+";",n,a,f-1,l):ji(Ce(y," ","")+";",n,a,f-2,l),l);break;case 59:y+=";";default:if(Ca(E=wi(y,t,a,u,d,o,c,z,w=[],b=[],f,s),s),_===123)if(d===0)Cn(y,t,E,E,w,s,f,c,b);else{switch(g){case 99:if(tr(y,3)===110)break;case 108:if(tr(y,2)===97)break;default:d=0;case 100:case 109:case 115:}d?Cn(r,E,E,n&&Ca(wi(r,E,E,0,0,o,c,z,o,w=[],f,b),b),o,b,f,c,n?w:b):Cn(y,E,E,E,[""],b,0,c,b)}}u=d=m=0,v=j=1,z=y="",f=h;break;case 58:f=1+_r(y),m=x;default:if(v<1){if(_==123)--v;else if(_==125&&v++==0&&Gf()==125)continue}switch(y+=Ss(_),_*v){case 38:j=d>0?1:(y+="\f",-1);break;case 44:c[u++]=(_r(y)-1)*j,j=1;break;case 64:it()===45&&(y+=po(Cr())),g=it(),d=f=_r(z=y+=Zf(kn())),_++;break;case 45:x===45&&_r(y)==2&&(v=0)}}return s}function wi(r,t,a,n,o,s,h,c,l,u,d,f){for(var g=o-1,m=o===0?s:[""],x=$d(m),v=0,C=0,j=0;v<n;++v)for(var _=0,z=Tt(r,g+1,g=Sd(C=h[v])),w=r;_<x;++_)(w=zd(C>0?m[_]+" "+z:Ce(z,/&\f/g,m[_])))&&(l[j++]=w);return Wn(r,t,a,o===0?Un:c,l,u,d,f)}function Xf(r,t,a,n){return Wn(r,t,a,kd,Ss(Vf()),Tt(r,2,-2),0,n)}function ji(r,t,a,n,o){return Wn(r,t,a,Cs,Tt(r,0,n),Tt(r,n+1,-1),n,o)}function Rd(r,t,a){switch(Bf(r,t)){case 5103:return Le+"print-"+r+r;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 Le+r+r;case 4855:return Le+r.replace("add","source-over").replace("substract","source-out").replace("intersect","source-in").replace("exclude","xor")+r;case 4789:return Ra+r+r;case 5349:case 4246:case 4810:case 6968:case 2756:return Le+r+Ra+r+Ve+r+r;case 5936:switch(tr(r,t+11)){case 114:return Le+r+Ve+Ce(r,/[svh]\w+-[tblr]{2}/,"tb")+r;case 108:return Le+r+Ve+Ce(r,/[svh]\w+-[tblr]{2}/,"tb-rl")+r;case 45:return Le+r+Ve+Ce(r,/[svh]\w+-[tblr]{2}/,"lr")+r}case 6828:case 4268:case 2903:return Le+r+Ve+r+r;case 6165:return Le+r+Ve+"flex-"+r+r;case 5187:return Le+r+Ce(r,/(\w+).+(:[^]+)/,Le+"box-$1$2"+Ve+"flex-$1$2")+r;case 5443:return Le+r+Ve+"flex-item-"+Ce(r,/flex-|-self/g,"")+(qr(r,/flex-|baseline/)?"":Ve+"grid-row-"+Ce(r,/flex-|-self/g,""))+r;case 4675:return Le+r+Ve+"flex-line-pack"+Ce(r,/align-content|flex-|-self/g,"")+r;case 5548:return Le+r+Ve+Ce(r,"shrink","negative")+r;case 5292:return Le+r+Ve+Ce(r,"basis","preferred-size")+r;case 6060:return Le+"box-"+Ce(r,"-grow","")+Le+r+Ve+Ce(r,"grow","positive")+r;case 4554:return Le+Ce(r,/([^-])(transform)/g,"$1"+Le+"$2")+r;case 6187:return Ce(Ce(Ce(r,/(zoom-|grab)/,Le+"$1"),/(image-set)/,Le+"$1"),r,"")+r;case 5495:case 3959:return Ce(r,/(image-set\([^]*)/,Le+"$1$`$1");case 4968:return Ce(Ce(r,/(.+:)(flex-)?(.*)/,Le+"box-pack:$3"+Ve+"flex-pack:$3"),/space-between/,"justify")+Le+r+r;case 4200:if(!qr(r,/flex-|baseline/))return Ve+"grid-column-align"+Tt(r,t)+r;break;case 2592:case 3360:return Ve+Ce(r,"template-","")+r;case 4384:case 3616:return a&&a.some(function(n,o){return t=o,qr(n.props,/grid-\w+-end/)})?~_n(r+(a=a[t].value),"span",0)?r:Ve+Ce(r,"-start","")+r+Ve+"grid-row-span:"+(~_n(a,"span",0)?qr(a,/\d+/):+qr(a,/\d+/)-+qr(r,/\d+/))+";":Ve+Ce(r,"-start","")+r;case 4896:case 4128:return a&&a.some(function(n){return qr(n.props,/grid-\w+-start/)})?r:Ve+Ce(Ce(r,"-end","-span"),"span ","")+r;case 4095:case 3583:case 4068:case 2532:return Ce(r,/(.+)-inline(.+)/,Le+"$1$2")+r;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(_r(r)-1-t>6)switch(tr(r,t+1)){case 109:if(tr(r,t+4)!==45)break;case 102:return Ce(r,/(.+:)(.+)-([^]+)/,"$1"+Le+"$2-$3$1"+Ra+(tr(r,t+3)==108?"$3":"$2-$3"))+r;case 115:return~_n(r,"stretch",0)?Rd(Ce(r,"stretch","fill-available"),t,a)+r:r}break;case 5152:case 5920:return Ce(r,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(n,o,s,h,c,l,u){return Ve+o+":"+s+u+(h?Ve+o+"-span:"+(c?l:+l-+s)+u:"")+r});case 4949:if(tr(r,t+6)===121)return Ce(r,":",":"+Le)+r;break;case 6444:switch(tr(r,tr(r,14)===45?18:11)){case 120:return Ce(r,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+Le+(tr(r,14)===45?"inline-":"")+"box$3$1"+Le+"$2$3$1"+Ve+"$2box$3")+r;case 100:return Ce(r,":",":"+Ve)+r}break;case 5719:case 2647:case 2135:case 3927:case 2391:return Ce(r,"scroll-","scroll-snap-")+r}return r}function Tn(r,t){for(var a="",n=0;n<r.length;n++)a+=t(r[n],n,r,t)||"";return a}function eg(r,t,a,n){switch(r.type){case Uf:if(r.children.length)break;case Ff:case Nf:case Cs:return r.return=r.return||r.value;case kd:return"";case Cd:return r.return=r.value+"{"+Tn(r.children,n)+"}";case Un:if(!_r(r.value=r.props.join(",")))return""}return _r(a=Tn(r.children,n))?r.return=r.value+"{"+a+"}":""}function rg(r){var t=$d(r);return function(a,n,o,s){for(var h="",c=0;c<t;c++)h+=r[c](a,n,o,s)||"";return h}}function tg(r){return function(t){t.root||(t=t.return)&&r(t)}}function ag(r,t,a,n){if(r.length>-1&&!r.return)switch(r.type){case Cs:r.return=Rd(r.value,r.length,a);return;case Cd:return Tn([nt(r,{value:Ce(r.value,"@","@"+Le)})],n);case Un:if(r.length)return Wf(a=r.props,function(o){switch(qr(o,n=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":Ut(nt(r,{props:[Ce(o,/:(read-\w+)/,":"+Ra+"$1")]})),Ut(nt(r,{props:[o]})),ts(r,{props:yi(a,n)});break;case"::placeholder":Ut(nt(r,{props:[Ce(o,/:(plac\w+)/,":"+Le+"input-$1")]})),Ut(nt(r,{props:[Ce(o,/:(plac\w+)/,":"+Ra+"$1")]})),Ut(nt(r,{props:[Ce(o,/:(plac\w+)/,Ve+"input-$1")]})),Ut(nt(r,{props:[o]})),ts(r,{props:yi(a,n)});break}return""})}}var ng={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},At=typeof process<"u"&&process.env!==void 0&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",Pd="active",Td="data-styled-version",Gn="6.3.11",zs=`/*!sc*/
|
|
18
|
+
*/var li;function Rh(){return li||(li=1,process.env.NODE_ENV!=="production"&&(function(){function r(m,x){return m===x&&(m!==0||1/m===1/x)||m!==m&&x!==x}function t(m,x){d||o.startTransition===void 0||(d=!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 v=x();if(!f){var C=x();s(v,C)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),f=!0)}C=h({inst:{value:v,getSnapshot:x}});var j=C[0].inst,_=C[1];return l(function(){j.value=v,j.getSnapshot=x,a(j)&&_({inst:j})},[m,v,x]),c(function(){return a(j)&&_({inst:j}),m(function(){a(j)&&_({inst:j})})},[m]),u(v),v}function a(m){var x=m.getSnapshot;m=m.value;try{var v=x();return!s(m,v)}catch{return!0}}function n(m,x){return x()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var o=i,s=typeof Object.is=="function"?Object.is:r,h=o.useState,c=o.useEffect,l=o.useLayoutEffect,u=o.useDebugValue,d=!1,f=!1,g=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?n:t;ro.useSyncExternalStore=o.useSyncExternalStore!==void 0?o.useSyncExternalStore:g,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()),ro}var di;function Ph(){return di||(di=1,process.env.NODE_ENV==="production"?Ua.exports=Eh():Ua.exports=Rh()),Ua.exports}var Vo=Ph();const ed=0,rd=1,td=2,ui=3;var hi=Object.prototype.hasOwnProperty;function Go(r,t){var a,n;if(r===t)return!0;if(r&&t&&(a=r.constructor)===t.constructor){if(a===Date)return r.getTime()===t.getTime();if(a===RegExp)return r.toString()===t.toString();if(a===Array){if((n=r.length)===t.length)for(;n--&&Go(r[n],t[n]););return n===-1}if(!a||typeof r=="object"){n=0;for(a in r)if(hi.call(r,a)&&++n&&!hi.call(t,a)||!(a in t)||!Go(r[a],t[a]))return!1;return Object.keys(t).length===n}}return r!==r&&t!==t}const Lr=new WeakMap,Yr=()=>{},ar=Yr(),Ho=Object,xe=r=>r===ar,kr=r=>typeof r=="function",ct=(r,t)=>({...r,...t}),ad=r=>kr(r.then),to={},Ba={},js="undefined",Da=typeof window!=js,qo=typeof document!=js,Th=Da&&"Deno"in window,Ah=()=>Da&&typeof window.requestAnimationFrame!=js,ot=(r,t)=>{const a=Lr.get(r);return[()=>!xe(t)&&r.get(t)||to,n=>{if(!xe(t)){const o=r.get(t);t in Ba||(Ba[t]=o),a[5](t,ct(o,n),o||to)}},a[6],()=>!xe(t)&&t in Ba?Ba[t]:!xe(t)&&r.get(t)||to]};let Ko=!0;const Ih=()=>Ko,[Yo,Qo]=Da&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Yr,Yr],Lh=()=>{const r=qo&&document.visibilityState;return xe(r)||r!=="hidden"},Mh=r=>(qo&&document.addEventListener("visibilitychange",r),Yo("focus",r),()=>{qo&&document.removeEventListener("visibilitychange",r),Qo("focus",r)}),Oh=r=>{const t=()=>{Ko=!0,r()},a=()=>{Ko=!1};return Yo("online",t),Yo("offline",a),()=>{Qo("online",t),Qo("offline",a)}},Dh={isOnline:Ih,isVisible:Lh},Fh={initFocus:Mh,initReconnect:Oh},pi=!i.useId,Jt=!Da||Th,Nh=r=>Ah()?window.requestAnimationFrame(r):setTimeout(r,1),jn=Jt?i.useEffect:i.useLayoutEffect,ao=typeof navigator<"u"&&navigator.connection,fi=!Jt&&ao&&(["slow-2g","2g"].includes(ao.effectiveType)||ao.saveData),Wa=new WeakMap,Uh=r=>Ho.prototype.toString.call(r),no=(r,t)=>r===`[object ${t}]`;let Bh=0;const Zo=r=>{const t=typeof r,a=Uh(r),n=no(a,"Date"),o=no(a,"RegExp"),s=no(a,"Object");let h,c;if(Ho(r)===r&&!n&&!o){if(h=Wa.get(r),h)return h;if(h=++Bh+"~",Wa.set(r,h),Array.isArray(r)){for(h="@",c=0;c<r.length;c++)h+=Zo(r[c])+",";Wa.set(r,h)}if(s){h="#";const l=Ho.keys(r).sort();for(;!xe(c=l.pop());)xe(r[c])||(h+=c+":"+Zo(r[c])+",");Wa.set(r,h)}}else h=n?r.toJSON():t=="symbol"?r.toString():t=="string"?JSON.stringify(r):""+r;return h},Aa=r=>{if(kr(r))try{r=r()}catch{r=""}const t=r;return r=typeof r=="string"?r:(Array.isArray(r)?r.length:r)?Zo(r):"",[r,t]};let Wh=0;const Jo=()=>++Wh;async function nd(...r){const[t,a,n,o]=r,s=ct({populateCache:!0,throwOnError:!0},typeof o=="boolean"?{revalidate:o}:o||{});let h=s.populateCache;const c=s.rollbackOnError;let l=s.optimisticData;const u=g=>typeof c=="function"?c(g):c!==!1,d=s.throwOnError;if(kr(a)){const g=a,m=[],x=t.keys();for(const v of x)!/^\$(inf|sub)\$/.test(v)&&g(t.get(v)._k)&&m.push(v);return Promise.all(m.map(f))}return f(a);async function f(g){const[m]=Aa(g);if(!m)return;const[x,v]=ot(t,m),[C,j,_,z]=Lr.get(t),w=()=>{const M=C[m];return(kr(s.revalidate)?s.revalidate(x().data,g):s.revalidate!==!1)&&(delete _[m],delete z[m],M&&M[0])?M[0](td).then(()=>x().data):x().data};if(r.length<3)return w();let b=n,E,y=!1;const S=Jo();j[m]=[S,0];const k=!xe(l),$=x(),P=$.data,T=$._c,A=xe(T)?P:T;if(k&&(l=kr(l)?l(A,P):l,v({data:l,_c:A})),kr(b))try{b=b(A)}catch(M){E=M,y=!0}if(b&&ad(b))if(b=await b.catch(M=>{E=M,y=!0}),S!==j[m][0]){if(y)throw E;return b}else y&&k&&u(E)&&(h=!0,v({data:A,_c:ar}));if(h&&!y)if(kr(h)){const M=h(b,A);v({data:M,error:ar,_c:ar})}else v({data:b,error:ar,_c:ar});if(j[m][1]=Jo(),Promise.resolve(w()).then(()=>{v({_c:ar})}),y){if(d)throw E;return}return b}}const gi=(r,t)=>{for(const a in r)r[a][0]&&r[a][0](t)},Vh=(r,t)=>{if(!Lr.has(r)){const a=ct(Fh,t),n=Object.create(null),o=nd.bind(ar,r);let s=Yr;const h=Object.create(null),c=(d,f)=>{const g=h[d]||[];return h[d]=g,g.push(f),()=>g.splice(g.indexOf(f),1)},l=(d,f,g)=>{r.set(d,f);const m=h[d];if(m)for(const x of m)x(f,g)},u=()=>{if(!Lr.has(r)&&(Lr.set(r,[n,Object.create(null),Object.create(null),Object.create(null),o,l,c]),!Jt)){const d=a.initFocus(setTimeout.bind(ar,gi.bind(ar,n,ed))),f=a.initReconnect(setTimeout.bind(ar,gi.bind(ar,n,rd)));s=()=>{d&&d(),f&&f(),Lr.delete(r)}}};return u(),[r,o,u,s]}return[r,Lr.get(r)[4]]},Gh=(r,t,a,n,o)=>{const s=a.errorRetryCount,h=o.retryCount,c=~~((Math.random()+.5)*(1<<(h<8?h:8)))*a.errorRetryInterval;!xe(s)&&h>s||setTimeout(n,c,o)},Hh=Go,[_s,_a]=Vh(new Map),qh=ct({onLoadingSlow:Yr,onSuccess:Yr,onError:Yr,onErrorRetry:Gh,onDiscarded:Yr,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:fi?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:fi?5e3:3e3,compare:Hh,isPaused:()=>!1,cache:_s,mutate:_a,fallback:{}},Dh),Kh=(r,t)=>{const a=ct(r,t);if(t){const{use:n,fallback:o}=r,{use:s,fallback:h}=t;n&&s&&(a.use=n.concat(s)),o&&h&&(a.fallback=ct(o,h))}return a},Yh=i.createContext({}),od="$inf$",sd=Da&&window.__SWR_DEVTOOLS_USE__,Qh=sd?window.__SWR_DEVTOOLS_USE__:[],Zh=()=>{sd&&(window.__SWR_DEVTOOLS_REACT__=i)},id=r=>kr(r[1])?[r[0],r[1],r[2]||{}]:[r[0],null,(r[1]===null?r[2]:r[1])||{}],cd=()=>{const r=i.useContext(Yh);return i.useMemo(()=>ct(qh,r),[r])},Jh=r=>(t,a,n)=>r(t,a&&((...s)=>{const[h]=Aa(t),[,,,c]=Lr.get(_s);if(h.startsWith(od))return a(...s);const l=c[h];return xe(l)?a(...s):(delete c[h],l)}),n),Xh=Qh.concat(Jh),ep=r=>function(...a){const n=cd(),[o,s,h]=id(a),c=Kh(n,h);let l=r;const{use:u}=c,d=(u||[]).concat(Xh);for(let f=d.length;f--;)l=d[f](l);return l(o,s||c.fetcher||null,c)},rp=(r,t,a)=>{const n=t[r]||(t[r]=[]);return n.push(a),()=>{const o=n.indexOf(a);o>=0&&(n[o]=n[n.length-1],n.pop())}},tp=(r,t)=>(...a)=>{const[n,o,s]=id(a),h=(s.use||[]).concat(t);return r(n,o,{...s,use:h})};Zh();const oo=i.use||(r=>{switch(r.status){case"pending":throw r;case"fulfilled":return r.value;case"rejected":throw r.reason;default:throw r.status="pending",r.then(t=>{r.status="fulfilled",r.value=t},t=>{r.status="rejected",r.reason=t}),r}}),so={dedupe:!0},mi=Promise.resolve(ar),ap=()=>Yr,np=(r,t,a)=>{const{cache:n,compare:o,suspense:s,fallbackData:h,revalidateOnMount:c,revalidateIfStale:l,refreshInterval:u,refreshWhenHidden:d,refreshWhenOffline:f,keepPreviousData:g,strictServerPrefetchWarning:m}=a,[x,v,C,j]=Lr.get(n),[_,z]=Aa(r),w=i.useRef(!1),b=i.useRef(!1),E=i.useRef(_),y=i.useRef(t),S=i.useRef(a),k=()=>S.current,$=()=>k().isVisible()&&k().isOnline(),[P,T,A,M]=ot(n,_),F=i.useRef({}).current,D=xe(h)?xe(a.fallback)?ar:a.fallback[_]:h,O=(ge,Se)=>{for(const ke in F){const de=ke;if(de==="data"){if(!o(ge[de],Se[de])&&(!xe(ge[de])||!o(he,Se[de])))return!1}else if(Se[de]!==ge[de])return!1}return!0},L=!w.current,I=i.useMemo(()=>{const ge=P(),Se=M(),ke=U=>{const G=ct(U);return delete G._k,(()=>{if(!_||!t||k().isPaused())return!1;if(L&&!xe(c))return c;const pe=xe(D)?G.data:D;return xe(pe)||l})()?{isValidating:!0,isLoading:!0,...G}:G},de=ke(ge),Y=ge===Se?de:ke(Se);let H=de;return[()=>{const U=ke(P());return O(U,H)?(H.data=U.data,H.isLoading=U.isLoading,H.isValidating=U.isValidating,H.error=U.error,H):(H=U,U)},()=>Y]},[n,_]),R=Vo.useSyncExternalStore(i.useCallback(ge=>A(_,(Se,ke)=>{O(ke,Se)||ge()}),[n,_]),I[0],I[1]),B=x[_]&&x[_].length>0,q=R.data,K=xe(q)?D&&ad(D)?oo(D):D:q,ie=R.error,ee=i.useRef(K),he=g?xe(q)?xe(ee.current)?K:ee.current:q:K,se=_&&xe(K),Q=i.useRef(null);!Jt&&Vo.useSyncExternalStore(ap,()=>(Q.current=!1,Q),()=>(Q.current=!0,Q));const le=Q.current;m&&le&&!s&&se&&console.warn(`Missing pre-initiated data for serialized key "${_}" 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 X=!_||!t||k().isPaused()||B&&!xe(ie)?!1:L&&!xe(c)?c:s?xe(K)?!1:l:xe(K)||l,Ie=L&&X,Oe=xe(R.isValidating)?Ie:R.isValidating,Ue=xe(R.isLoading)?Ie:R.isLoading,He=i.useCallback(async ge=>{const Se=y.current;if(!_||!Se||b.current||k().isPaused())return!1;let ke,de,Y=!0;const H=ge||{},U=!C[_]||!H.dedupe,G=()=>pi?!b.current&&_===E.current&&w.current:_===E.current,fe={isValidating:!1,isLoading:!1},pe=()=>{T(fe)},V=()=>{const Re=C[_];Re&&Re[1]===de&&delete C[_]},ne={isValidating:!0};xe(P().data)&&(ne.isLoading=!0);try{if(U&&(T(ne),a.loadingTimeout&&xe(P().data)&&setTimeout(()=>{Y&&G()&&k().onLoadingSlow(_,a)},a.loadingTimeout),C[_]=[Se(z),Jo()]),[ke,de]=C[_],ke=await ke,U&&setTimeout(V,a.dedupingInterval),!C[_]||C[_][1]!==de)return U&&G()&&k().onDiscarded(_),!1;fe.error=ar;const Re=v[_];if(!xe(Re)&&(de<=Re[0]||de<=Re[1]||Re[1]===0))return pe(),U&&G()&&k().onDiscarded(_),!1;const Fe=P().data;fe.data=o(Fe,ke)?Fe:ke,U&&G()&&k().onSuccess(ke,_,a)}catch(Re){V();const Fe=k(),{shouldRetryOnError:Ze}=Fe;Fe.isPaused()||(fe.error=Re,U&&G()&&(Fe.onError(Re,_,Fe),(Ze===!0||kr(Ze)&&Ze(Re))&&(!k().revalidateOnFocus||!k().revalidateOnReconnect||$())&&Fe.onErrorRetry(Re,_,Fe,ur=>{const or=x[_];or&&or[0]&&or[0](ui,ur)},{retryCount:(H.retryCount||0)+1,dedupe:!0})))}return Y=!1,pe(),!0},[_,n]),Xe=i.useCallback((...ge)=>nd(n,E.current,...ge),[]);if(jn(()=>{y.current=t,S.current=a,xe(q)||(ee.current=q)}),jn(()=>{if(!_)return;const ge=He.bind(ar,so);let Se=0;k().revalidateOnFocus&&(Se=Date.now()+k().focusThrottleInterval);const de=rp(_,x,(Y,H={})=>{if(Y==ed){const U=Date.now();k().revalidateOnFocus&&U>Se&&$()&&(Se=U+k().focusThrottleInterval,ge())}else if(Y==rd)k().revalidateOnReconnect&&$()&&ge();else{if(Y==td)return He();if(Y==ui)return He(H)}});return b.current=!1,E.current=_,w.current=!0,T({_k:z}),X&&(C[_]||(xe(K)||Jt?ge():Nh(ge))),()=>{b.current=!0,de()}},[_]),jn(()=>{let ge;function Se(){const de=kr(u)?u(P().data):u;de&&ge!==-1&&(ge=setTimeout(ke,de))}function ke(){!P().error&&(d||k().isVisible())&&(f||k().isOnline())?He(so).then(Se):Se()}return Se(),()=>{ge&&(clearTimeout(ge),ge=-1)}},[u,d,f,_]),i.useDebugValue(he),s){if(!pi&&Jt&&se)throw new Error("Fallback data is required when using Suspense in SSR.");se&&(y.current=t,S.current=a,b.current=!1);const ge=j[_],Se=!xe(ge)&&se?Xe(ge):mi;if(oo(Se),!xe(ie)&&se)throw ie;const ke=se?He(so):mi;!xe(he)&&se&&(ke.status="fulfilled",ke.value=!0),oo(ke)}return{mutate:Xe,get data(){return F.data=!0,he},get error(){return F.error=!0,ie},get isValidating(){return F.isValidating=!0,Oe},get isLoading(){return F.isLoading=!0,Ue}}},_e=ep(np),hr=()=>{const{adapter:r,deployment:t}=ye(),a=r.useNavigate(),n=(l,u)=>{a?a(l,u):window.location.href=l},o=l=>{if(l)return l;const d=new URLSearchParams(window.location.search).get("redirect_uri");return d||window.location.href};return{navigate:n,navigateToSignIn:l=>{if(!t)return;const u=o(l),d=new URLSearchParams;d.set("redirect_uri",u),(t==null?void 0:t.mode)==="staging"&&d.set("__dev_session__",nr(t.backend_host)??""),n(`${t.ui_settings.sign_in_page_url}?${d.toString()}`,{replace:!0})},navigateToAccountSelection:l=>{if(!t)return;const u=o(l),d=new URLSearchParams;d.set("redirect_uri",u),(t==null?void 0:t.mode)==="staging"&&d.set("__dev_session__",nr(t.backend_host)??""),n(`https://${t.frontend_host}?${d.toString()}`,{replace:!0})},navigateToSignUp:l=>{if(!t)return;const u=o(l),d=new URLSearchParams;d.set("redirect_uri",u),(t==null?void 0:t.mode)==="staging"&&d.set("__dev_session__",nr(t.backend_host)??""),n(`${t.ui_settings.sign_up_page_url}?${d.toString()}`,{replace:!0})}}};async function op(r){const t=await r("/session",{method:"GET"});return(await N(t)).data}async function sp(r,t){const a=await r(`/session/switch-sign-in?sign_in_id=${t}`,{method:"POST"});return N(a)}async function ip(r,t){const a=t?`/session/sign-out?sign_in_id=${t}`:"/session/sign-out",n=await r(a,{method:"POST"});return N(n)}async function cp(r,t){const a=await r(`/session/switch-organization${t?`?organization_id=${t}`:""}`,{method:"POST"});return N(a)}async function lp(r,t){const a=await r(`/session/switch-workspace?workspace_id=${t}`,{method:"POST"});return N(a)}async function dp(r,t){const a=await r(`/session/ticket/exchange?ticket=${encodeURIComponent(t)}`,{method:"GET"});return N(a)}const Xo=new Map,ka=new Map;function Mr(){Xo.clear(),ka.clear()}async function up(r,t){const a=await r(`/session/token${t?`?template=${t}`:""}`);return N(a)}function Je(){const{client:r,loading:t}=me(),{deployment:a}=ye(),{navigate:n}=hr(),{cache:o}=cd(),{data:s,error:h,mutate:c,isLoading:l}=_e(t?null:"/session",()=>op(r),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),u=i.useCallback(async()=>{await c(void 0,{revalidate:!0})},[c]),d=i.useCallback(async(f="default")=>{if(!s)throw new Error("no session");const g=Xo.get(f);if(g&&g.expires>Date.now())return(g==null?void 0:g.token)||"";ka.get(f)||ka.set(f,up(r,f));const m=await ka.get(f);return ka.delete(f),Xo.set(f,m.data),m.data.token},[r,s==null?void 0:s.active_signin]);return t||!s||l?{loading:!0,error:h,session:null,switchSignIn:null,switchOrganization:null,switchWorkspace:null,exchangeTicket:null,signOut:null,getToken:null,refetch:u}:{loading:l,error:h,session:s,switchSignIn:async f=>{await sp(r,f),Mr(),await _a("/me/organization-memberships",void 0,{revalidate:!1}),await _a("/me/workspace-memberships",void 0,{revalidate:!1}),await c(void 0,{revalidate:!0}),await _a("/me/organization-memberships"),await _a("/me/workspace-memberships")},signOut:async f=>{await ip(r,f);const g=["/session","/user","/me/signins","/me/organization-memberships","/me/workspace-memberships","wacht-notifications:scope-unread"],m=["wacht-notifications:","wacht-agent-sessions:","wacht-agent-contexts:","wacht-org-domains:","wacht-api-workspaces:","wacht-api-organizations:"];if(o instanceof Map){const x=Array.from(o.keys());for(const v of x){let C=!1;(g.includes(v)||typeof v=="string"&&m.some(j=>v.startsWith(j)))&&(C=!0),C&&o.delete(v)}}Mr(),await c(void 0,{revalidate:!0}),a!=null&&a.ui_settings&&(f&&a.ui_settings.after_sign_out_one_page_url?n(a.ui_settings.after_sign_out_one_page_url):!f&&a.ui_settings.after_sign_out_all_page_url&&n(a.ui_settings.after_sign_out_all_page_url))},switchOrganization:async f=>{await cp(r,f),Mr(),await c(void 0,{revalidate:!0})},switchWorkspace:async f=>{await lp(r,f),Mr(),await c(void 0,{revalidate:!0})},exchangeTicket:async f=>{await dp(r,f),Mr(),await c(void 0,{revalidate:!0})},getToken:d,refetch:u}}const Dr=()=>{const{organizationMemberships:r,refetch:t,loading:a}=dt(),{client:n}=me(),{refetch:o}=Je(),s=i.useCallback(async L=>(await N(await n(`/organizations/${L.id}/roles`,{method:"GET"}))).data,[n]),h=i.useCallback(async(L,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 N(await n(`/organizations/${L.id}/members?${R.toString()}`,{method:"GET"}))).data},[n]),c=i.useCallback(async L=>(await N(await n(`/organizations/${L.id}/invitations`,{method:"GET"}))).data,[n]),l=i.useCallback(async L=>(await N(await n(`/organizations/${L.id}/domains`,{method:"GET"}))).data,[n]),u=i.useCallback(async(L,I)=>{await n(`/organizations/${L.id}/members/${I.id}/remove`,{method:"POST"})},[n]),d=i.useCallback(async L=>{const I=new FormData;I.append("name",L.name),L.image&&I.append("image",L.image),L.description&&I.append("description",L.description);const R=await N(await n("/organizations",{method:"POST",body:I}));return Mr(),await t(),await o(),R},[o,t,n]),f=i.useCallback(async(L,I)=>{const R=Object.entries(I).reduce((q,[K,ie])=>(ie!=null&&(Array.isArray(ie)?ie.forEach(ee=>q.append(K,ee)):q.append(K,ie)),q),new FormData),B=await N(await n(`/organizations/${L.id}/update`,{method:"POST",body:R}));return await t(),B},[t,n]),g=i.useCallback(async(L,I)=>{await n(`/organizations/${L.id}/roles/${I.id}/remove`,{method:"POST"})},[n]),m=i.useCallback(async(L,I)=>{const R=new FormData;return R.append("domain",I.fqdn),await N(await n(`/organizations/${L.id}/domains`,{method:"POST",body:R}))},[n]),x=i.useCallback(async(L,I)=>await N(await n(`/organizations/${L.id}/domains/${I.id}/verify`,{method:"POST"})),[n]),v=i.useCallback(async(L,I)=>await N(await n(`/organizations/${L.id}/domains/${I.id}/delete`,{method:"POST"})),[n]),C=i.useCallback(async L=>(await N(await n(`/organizations/${L.id}/enterprise-connections`,{method:"GET"}))).data,[n]),j=i.useCallback(async(L,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 N(await n(`/organizations/${L.id}/enterprise-connections`,{method:"POST",body:R}))).data},[n]),_=i.useCallback(async(L,I,R)=>{const B=new FormData;return R.domain_id&&B.append("domain_id",R.domain_id),R.idp_entity_id&&B.append("idp_entity_id",R.idp_entity_id),R.idp_sso_url&&B.append("idp_sso_url",R.idp_sso_url),R.idp_certificate&&B.append("idp_certificate",R.idp_certificate),R.oidc_client_id&&B.append("oidc_client_id",R.oidc_client_id),R.oidc_client_secret&&B.append("oidc_client_secret",R.oidc_client_secret),R.oidc_issuer_url&&B.append("oidc_issuer_url",R.oidc_issuer_url),R.oidc_scopes&&B.append("oidc_scopes",R.oidc_scopes),R.attribute_mapping&&B.append("attribute_mapping",JSON.stringify(R.attribute_mapping)),(await N(await n(`/organizations/${L.id}/enterprise-connections/${I}/update`,{method:"POST",body:B}))).data},[n]),z=i.useCallback(async(L,I)=>{await n(`/organizations/${L.id}/enterprise-connections/${I}/delete`,{method:"POST"})},[n]),w=i.useCallback(async(L,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 N(await n(`/organizations/${L.id}/enterprise-connections/test`,{method:"POST",body:R}))).data},[n]),b=i.useCallback(async(L,I)=>(await N(await n(`/organizations/${L.id}/enterprise-connections/${I}/test`,{method:"POST"}))).data,[n]),E=i.useCallback(async(L,I)=>(await N(await n(`/organizations/${L.id}/enterprise-connections/${I}/scim/token`,{method:"POST"}))).data,[n]),y=i.useCallback(async(L,I)=>(await N(await n(`/organizations/${L.id}/enterprise-connections/${I}/scim/token`,{method:"GET"}))).data,[n]),S=i.useCallback(async(L,I)=>{await n(`/organizations/${L.id}/enterprise-connections/${I}/scim/token/revoke`,{method:"POST"})},[n]),k=i.useCallback(async(L,I)=>{const R=new FormData;return R.append("name",I.name),I.permissions&&I.permissions.forEach((q,K)=>{R.append(`permissions[${K}]`,q)}),await N(await n(`/organizations/${L.id}/roles`,{method:"POST",body:R}))},[n]),$=i.useCallback(async L=>(await N(await n(`/organizations/${L.id}/leave`,{method:"POST"}))).data,[n]),P=i.useCallback(async L=>{const I=await N(await n(`/organizations/${L.id}/delete`,{method:"POST"}));return Mr(),await t(),await o(),I.data},[n,t,o]),T=i.useCallback(async(L,I,R)=>(await N(await n(`/organizations/${L.id}/members/${I.id}/roles/${R.id}/add`,{method:"POST"}))).data,[n]),A=i.useCallback(async(L,I,R)=>(await N(await n(`/organizations/${L.id}/members/${I.id}/roles/${R.id}/remove`,{method:"POST"}))).data,[n]),M=i.useCallback(async(L,I)=>{var q,K;const R=new FormData;return R.append("email",I.email),R.append("role_id",I.organizationRole.id),(q=I.workspace)!=null&&q.id&&R.append("workspace_id",I.workspace.id),(K=I.workspaceRole)!=null&&K.id&&R.append("workspace_role_id",I.workspaceRole.id),(await N(await n(`/organizations/${L.id}/invitations`,{method:"POST",body:R}))).data},[n]),F=i.useCallback(async(L,I)=>(await N(await n(`/organizations/${L.id}/invitations/${I.id}/discard`,{method:"POST"}))).data,[n]),D=i.useCallback(async(L,I)=>(await N(await n(`/organizations/${L.id}/invitations/${I.id}/resend`,{method:"POST"}))).data,[n]);return{organizations:i.useMemo(()=>r==null?void 0:r.map(L=>L.organization),[r]),loading:a,error:null,refetch:t,leaveOrganization:$,getOrganizationRoles:s,getOrganizationMembers:h,removeOrganizationMember:u,createOrganization:d,getOrganizationInvitations:c,getOrganizationDomains:l,addOrganizationDomain:m,verifyOrganizationDomain:x,removeOrganizationDomain:v,addRoleToOrganizationMember:T,removeRoleFromOrganizationMember:A,inviteOrganizationMember:M,discardOrganizationInvitation:F,resendOrganizationInvitation:D,updateOrganization:f,addRole:k,removeOrganizationRoles:g,deleteOrganization:P,getEnterpriseConnections:C,createEnterpriseConnection:j,updateEnterpriseConnection:_,deleteEnterpriseConnection:z,testEnterpriseConnectionConfig:w,testEnterpriseConnection:b,generateSCIMToken:E,getSCIMToken:y,revokeSCIMToken:S}},Ot=()=>{const{loading:r,error:t,refetch:a,getOrganizationMembers:n,getOrganizationRoles:o,leaveOrganization:s,removeOrganizationMember:h,getOrganizationInvitations:c,getOrganizationDomains:l,removeOrganizationDomain:u,addOrganizationDomain:d,verifyOrganizationDomain:f,addRoleToOrganizationMember:g,removeRoleFromOrganizationMember:m,inviteOrganizationMember:x,discardOrganizationInvitation:v,resendOrganizationInvitation:C,updateOrganization:j,removeOrganizationRoles:_,getEnterpriseConnections:z,createEnterpriseConnection:w,updateEnterpriseConnection:b,deleteEnterpriseConnection:E,testEnterpriseConnectionConfig:y,testEnterpriseConnection:S,generateSCIMToken:k,getSCIMToken:$,revokeSCIMToken:P}=Dr(),{session:T,error:A,loading:M}=Je(),{organizationMemberships:F}=dt(),D=i.useMemo(()=>(F==null?void 0:F.find(U=>{var G;return U.id===((G=T==null?void 0:T.active_signin)==null?void 0:G.active_organization_membership_id)}))||null,[F,T]),O=i.useMemo(()=>(D==null?void 0:D.organization)||null,[D]),L=i.useCallback(async U=>O?await j(O,U):[],[O,j]),I=i.useCallback(async()=>O?await n(O):[],[O,n]),R=i.useCallback(async()=>O?await o(O):[],[O,o]),B=i.useCallback(async U=>O?await h(O,U):[],[O,h]),q=i.useCallback(async U=>O?await _(O,U):void 0,[O,_]),K=i.useCallback(async()=>O?await l(O):[],[O,l]),ie=i.useCallback(async U=>O?await d(O,U):void 0,[O,d]),ee=i.useCallback(async U=>O?await f(O,U):void 0,[O,f]),he=i.useCallback(async U=>O?await u(O,U):void 0,[O,u]),se=i.useCallback(async(U,G)=>O?await g(O,U,G):void 0,[O,g]),Q=i.useCallback(async(U,G)=>O?await m(O,U,G):void 0,[O,m]),le=i.useCallback(async U=>O?await x(O,U):void 0,[O,x]),X=i.useCallback(async U=>O?await v(O,U):void 0,[O,v]),Ie=i.useCallback(async U=>O?await C(O,U):void 0,[O,C]),Oe=i.useCallback(async()=>{O&&await s(O)},[O,s]),Ue=i.useCallback(async()=>O?await c(O):[],[O,c]),He=i.useCallback(async()=>O?await z(O):[],[O,z]),Xe=i.useCallback(async U=>{if(O)return await w(O,U)},[O,w]),qe=i.useCallback(async(U,G)=>{if(O)return await b(O,U,G)},[O,b]),ge=i.useCallback(async U=>{O&&await E(O,U)},[O,E]),Se=i.useCallback(async U=>O?await y(O,U):null,[O,y]),ke=i.useCallback(async U=>O?await S(O,U):null,[O,S]),de=i.useCallback(async U=>{if(O)return await k(O,U)},[O,k]),Y=i.useCallback(async U=>{if(O)return await $(O,U)},[O,$]),H=i.useCallback(async U=>{O&&await P(O,U)},[O,P]);return M||r?{activeOrganization:null,activeMembership:null,loading:!0,error:A||t,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:O,activeMembership:D,loading:!1,refetch:a,getRoles:R,updateOrganization:L,getMembers:I,getDomains:K,addDomain:ie,verifyDomain:ee,removeDomain:he,getInvitations:Ue,removeMember:B,leave:Oe,removeRole:q,addMemberRole:se,removeMemberRole:Q,inviteMember:le,discardInvitation:X,resendInvitation:Ie,getEnterpriseConnections:He,createEnterpriseConnection:Xe,updateEnterpriseConnection:qe,deleteEnterpriseConnection:ge,testEnterpriseConnectionConfig:Se,testEnterpriseConnection:ke,generateSCIMToken:de,getSCIMToken:Y,revokeSCIMToken:H,error:null}};async function hp(r){return(await N(await r("/me/organization-memberships"))).data}const dt=()=>{const{client:r,loading:t}=me(),{data:a,isLoading:n,error:o,mutate:s}=_e(t?null:"/me/organization-memberships",()=>hp(r),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),h=i.useCallback(async()=>{await s()},[s]);return{organizationMemberships:a,loading:t||n,error:o,refetch:h}};async function pp(r){return(await N(await r("/me/workspace-memberships"))).data}async function fp(r,t,a){return(await N(await r(`/workspaces/${t}/members/${a}/remove`,{method:"POST"}))).data}const Fn=()=>{const{client:r,loading:t}=me(),{deployment:a}=ye(),{data:n,isLoading:o,error:s,mutate:h}=_e(!t&&(a!=null&&a.b2b_settings.workspaces_enabled)?"/me/workspace-memberships":null,()=>pp(r),{refreshInterval:3e4,revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,dedupingInterval:5e3}),c=i.useCallback(async()=>{await h(void 0,{revalidate:!0})},[h]);return{workspaceMemberships:n,loading:t||o,error:s,refetch:c}},Dt=()=>{const{workspaceMemberships:r,refetch:t,loading:a,error:n}=Fn(),{client:o}=me(),s=i.useMemo(()=>r==null?void 0:r.map(b=>({...b.workspace,organization:b.organization,eligibility_restriction:b.eligibility_restriction})),[r]),h=i.useCallback(async(b,E,y,S)=>{const k=new FormData;k.append("name",E),y&&k.append("image",y),S&&k.append("description",S),k.append("organization_id",b);const $=await N(await o("/workspaces",{method:"POST",body:k}));return Mr(),await t(),$.data},[o,t]),c=i.useCallback(async(b,E)=>{const y=await fp(o,b,E);return await t(),y},[o,t]),l=i.useCallback(async(b,E)=>{const y=new FormData;E.name&&y.append("name",E.name),E.description&&y.append("description",E.description),E.image&&y.append("image",E.image),E.enforce_2fa!==void 0&&y.append("enforce_2fa",String(E.enforce_2fa)),E.enable_ip_restriction!==void 0&&y.append("enable_ip_restriction",String(E.enable_ip_restriction)),E.whitelisted_ips&&E.whitelisted_ips.forEach(k=>y.append("whitelisted_ips",k));const S=await N(await o(`/workspaces/${b.id}/update`,{method:"POST",body:y}));return await t(),S.data},[o,t]),u=i.useCallback(async b=>{const E=await N(await o(`/workspaces/${b.id}/delete`,{method:"POST"}));return Mr(),await t(),E.data},[o,t]),d=i.useCallback(async(b,E)=>{const y=new URLSearchParams;return E&&(y.set("page",E.page.toString()),y.set("limit",E.limit.toString()),E.search&&y.set("search",E.search)),(await N(await o(`/workspaces/${b.id}/members?${y.toString()}`,{method:"GET"}))).data},[o]),f=i.useCallback(async b=>(await N(await o(`/workspaces/${b.id}/roles`,{method:"GET"}))).data,[o]),g=i.useCallback(async(b,E,y)=>{const S=new FormData;return S.append("name",E),y.forEach($=>S.append("permissions",$)),(await N(await o(`/workspaces/${b.id}/roles`,{method:"POST",body:S}))).data},[o]),m=i.useCallback(async(b,E)=>(await N(await o(`/workspaces/${b.id}/roles/${E.id}/delete`,{method:"POST"}))).data,[o]),x=i.useCallback(async(b,E)=>{const y=await N(await o(`/workspaces/${b.id}/members/${E}/remove`,{method:"POST"}));return await t(),y.data},[o,t]),v=i.useCallback(async(b,E,y)=>(await N(await o(`/workspaces/${b.id}/members/${E}/roles/${y}/add`,{method:"POST"}))).data,[o]),C=i.useCallback(async(b,E,y)=>(await N(await o(`/workspaces/${b.id}/members/${E}/roles/${y}/remove`,{method:"POST"}))).data,[o]),j=i.useCallback(async b=>(await N(await o(`/organizations/${b.organization.id}/invitations?workspace_id=${b.id}`,{method:"GET"}))).data,[o]),_=i.useCallback(async(b,E,y)=>{const S=new FormData;return S.append("email",E),S.append("workspace_id",b.id),y&&S.append("workspace_role_id",y),(await N(await o(`/organizations/${b.organization.id}/invitations`,{method:"POST",body:S}))).data},[o]),z=i.useCallback(async(b,E)=>(await N(await o(`/organizations/${b.organization.id}/invitations/${E}/discard`,{method:"POST"}))).data,[o]),w=i.useCallback(async(b,E)=>(await N(await o(`/organizations/${b.organization.id}/invitations/${E}/resend`,{method:"POST"}))).data,[o]);return{workspaces:s||[],loading:a,error:n,refetch:t,leaveWorkspace:c,createWorkspace:h,updateWorkspace:l,deleteWorkspace:u,getWorkspaceMembers:d,getWorkspaceRoles:f,createWorkspaceRole:g,deleteWorkspaceRole:m,removeWorkspaceMember:x,addWorkspaceMemberRole:v,removeWorkspaceMemberRole:C,getWorkspaceInvitations:j,createWorkspaceInvitation:_,discardWorkspaceInvitation:z,resendWorkspaceInvitation:w}},rt=()=>{const{refetch:r,loading:t,error:a,workspaces:n,leaveWorkspace:o,updateWorkspace:s,deleteWorkspace:h,getWorkspaceMembers:c,getWorkspaceRoles:l,createWorkspaceRole:u,deleteWorkspaceRole:d,removeWorkspaceMember:f,addWorkspaceMemberRole:g,removeWorkspaceMemberRole:m,getWorkspaceInvitations:x,createWorkspaceInvitation:v,discardWorkspaceInvitation:C,resendWorkspaceInvitation:j}=Dt(),{workspaceMemberships:_}=Fn(),{session:z,loading:w,error:b}=Je(),E=i.useMemo(()=>(_==null?void 0:_.find(ee=>{var he;return ee.id===((he=z==null?void 0:z.active_signin)==null?void 0:he.active_workspace_membership_id)}))||null,[_,z]),y=i.useMemo(()=>(E==null?void 0:E.workspace)||null,[E]),S=i.useCallback(async()=>{var ee;if(!(!y||!((ee=z==null?void 0:z.active_signin)!=null&&ee.user_id)))return await o(y.id,z.active_signin.user_id)},[y,o,z]),k=i.useCallback(async ee=>{if(y)return await s(y,ee)},[y,s]),$=i.useCallback(async()=>{if(y)return await h(y)},[y,h]),P=i.useCallback(async ee=>y?await c(y,ee):{data:[],meta:{total:0,page:1,limit:10}},[y,c]),T=i.useCallback(async()=>y?await l(y):[],[y,l]),A=i.useCallback(async(ee,he)=>{if(y)return await u(y,ee,he)},[y,u]),M=i.useCallback(async ee=>{if(y)return await d(y,ee)},[y,d]),F=i.useCallback(async ee=>{if(y)return await f(y,ee)},[y,f]),D=i.useCallback(async(ee,he)=>{if(y)return await g(y,ee,he)},[y,g]),O=i.useCallback(async(ee,he)=>{if(y)return await m(y,ee,he)},[y,m]),L=i.useMemo(()=>(n==null?void 0:n.find(ee=>ee.id===(y==null?void 0:y.id)))||null,[n,y]),I=i.useCallback(async()=>L?await x(L):[],[L,x]),R=i.useCallback(async ee=>{if(L)return await v(L,ee.email,ee.workspaceRoleId)},[L,v]),B=i.useCallback(async ee=>{if(L)return await C(L,ee)},[L,C]),q=i.useCallback(async ee=>{if(L)return await j(L,ee)},[L,j]),K=t||w,ie=a||b;return K?{activeWorkspace:null,activeMembership:null,loading:!0,error:ie,refetch:r,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:E,loading:!1,error:ie,refetch:r,leave:S,updateWorkspace:k,deleteWorkspace:$,getMembers:P,getRoles:T,createRole:A,deleteRole:M,inviteMember:R,removeMember:F,addMemberRole:D,removeMemberRole:O,getInvitations:I,discardInvitation:B,resendInvitation:q}};function io(r){const t=new Uint8Array(r);let a="";for(let n=0;n<t.length;n++)a+=String.fromCharCode(t[n]);return btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function co(r){const t=r.replace(/-/g,"+").replace(/_/g,"/"),a=t.padEnd(t.length+(4-t.length%4)%4,"="),n=atob(a),o=new Uint8Array(n.length);for(let s=0;s<n.length;s++)o[s]=n.charCodeAt(s);return o.buffer}const gp=async r=>(await N(await r("/me"))).data,mp=async r=>(await N(await r("/me/signins"))).data;function ut(){const{client:r,loading:t}=me(),{data:a,error:n,isLoading:o,mutate:s}=_e(t?null:"/user",()=>gp(r)),h=async L=>{const I=new FormData;for(const[B,q]of Object.entries(L))q!=null&&q!==""&&I.append(B,String(q));const R=await N(await r("/me",{method:"POST",body:I}));return s(),R},c=async()=>await N(await r("/me/email-addresses",{method:"GET"})),l=async L=>await N(await r(`/me/email-addresses/${L}`,{method:"GET"})),u=async L=>{const I=new FormData;return I.append("email",L),await N(await r("/me/email-addresses",{method:"POST",body:I}))},d=async L=>await N(await r(`/me/email-addresses/${L}/delete`,{method:"POST"})),f=async L=>await N(await r(`/me/email-addresses/${L}/prepare-verification`,{method:"POST"})),g=async(L,I)=>await N(await r(`/me/email-addresses/${L}/attempt-verification?code=${I}`,{method:"POST"})),m=async(L,I)=>{const R=new FormData;return R.append("phone_number",L),R.append("country_code",I),await N(await r("/me/phone-numbers",{method:"POST",body:R}))},x=async L=>await N(await r(`/me/phone-numbers/${L}/delete`,{method:"POST"})),v=async L=>await N(await r(`/me/phone-numbers/${L}/prepare-verification`,{method:"POST"})),C=async(L,I)=>{const R=new FormData;return R.append("code",I),await N(await r(`/me/phone-numbers/${L}/attempt-verification`,{method:"POST",body:R}))},j=async L=>{const I=await N(await r(`/me/phone-numbers/${L}/make-primary`,{method:"POST"}));return s(),I},_=async L=>await N(await r(`/me/email-addresses/${L}/make-primary`,{method:"POST"})),z=async()=>(await N(await r("/me/authenticator",{method:"POST"}))).data,w=async(L,I)=>{const R=new FormData;return R.append("authenticator_id",L),I.forEach(q=>{R.append("codes",q)}),await N(await r("/me/authenticator/attempt-verification",{method:"POST",body:R}))},b=async L=>await N(await r(`/me/authenticator/${L}/delete`,{method:"POST"})),E=async()=>(await N(await r("/me/backup-codes",{method:"POST"}))).data,y=async L=>{const I=new FormData;return I.append("file",L),await N(await r("/me/profile-picture",{method:"POST",body:I}))},S=async()=>(await N(await r("/me/backup-codes/regenerate",{method:"POST"}))).data,k=async(L,I)=>{const R=new FormData;return R.append("current_password",L),R.append("new_password",I),await N(await r("/me/update-password",{method:"POST",body:R}))},$=async L=>{const I=new FormData;I.append("current_password",L);const R=await N(await r("/me/remove-password",{method:"POST",body:I}));return s(),R},P=async L=>{const I=new FormData;return I.append("password",L),await N(await r("/me/account/delete",{method:"POST",body:I}))},T=async L=>await N(await r(`/me/social-connections/${L}/disconnect`,{method:"POST"})),A=async({provider:L,redirectUri:I})=>{var q;const R=new URLSearchParams({provider:L});I&&R.append("redirect_uri",I);const B=await N(await r(`/me/init-sso-connection?${R.toString()}`,{method:"POST"}));return"data"in B&&((q=B.data)!=null&&q.oauth_url)&&window.open(B.data.oauth_url,"_blank"),B},M=async()=>await N(await r("/me/passkeys",{method:"GET"})),F=async L=>{var he,se;const I=await N(await r("/me/passkeys/register/begin",{method:"POST"}));if(!("data"in I))return I;const R=I.data.options.publicKey,B={challenge:co(R.challenge),rp:R.rp,user:{id:co(R.user.id),name:R.user.name,displayName:R.user.displayName},pubKeyCredParams:R.pubKeyCredParams,timeout:R.timeout,attestation:R.attestation,authenticatorSelection:R.authenticatorSelection,excludeCredentials:(he=R.excludeCredentials)==null?void 0:he.map(Q=>({type:Q.type,id:co(Q.id),transports:Q.transports}))},q=await navigator.credentials.create({publicKey:B});if(!q)throw new Error("Failed to create credential");const K=q.response,ie={id:q.id,rawId:io(q.rawId),type:q.type,response:{clientDataJSON:io(K.clientDataJSON),attestationObject:io(K.attestationObject),transports:((se=K.getTransports)==null?void 0:se.call(K))||[]}};return await N(await r(`/me/passkeys/register/finish?name=${encodeURIComponent(L||"")}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ie)}))},D=async L=>await N(await r(`/me/passkeys/${L}/delete`,{method:"POST"})),O=async(L,I)=>await N(await r(`/me/passkeys/${L}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:I})}));return{user:{...a,refetch:s},loading:t||o,error:n||null,updateProfile:h,getEmailAddresses:c,getEmailAddress:l,createEmailAddress:u,deleteEmailAddress:d,prepareEmailVerification:f,attemptEmailVerification:g,makeEmailPrimary:_,createPhoneNumber:m,deletePhoneNumber:x,preparePhoneVerification:v,attemptPhoneVerification:C,makePhonePrimary:j,setupAuthenticator:z,verifyAuthenticator:w,deleteAuthenticator:b,generateBackupCodes:E,regenerateBackupCodes:S,updateProfilePicture:y,disconnectSocialConnection:T,connectSocialAccount:A,updatePassword:k,removePassword:$,deleteAccount:P,getPasskeys:M,registerPasskey:F,deletePasskey:D,renamePasskey:O}}function ld(){const{client:r,loading:t}=me(),{data:a,error:n,isLoading:o,mutate:s}=_e(t?null:"/me/signins",()=>mp(r));return{signins:a,error:n||null,removeSignin:async c=>await N(await r(`/me/signins/${c}/signout`,{method:"POST"})),refetch:s,loading:o||t}}function dd(){const{session:r,loading:t}=Je(),{loading:a,organizationMemberships:n}=dt(),{loading:o,workspaceMemberships:s}=Fn(),h=i.useMemo(()=>!r||!r.signins||r.signins.length===0?null:(n==null?void 0:n.find(l=>{var u;return l.id===((u=r.active_signin)==null?void 0:u.active_organization_membership_id)}))||null,[n,r]),c=i.useMemo(()=>!r||!r.signins||r.signins.length===0?null:(s==null?void 0:s.find(l=>{var u;return l.id===((u=r.active_signin)==null?void 0:u.active_workspace_membership_id)}))||null,[s,r]);return{loading:t||a||o,orgMembership:h,workspaceMembership:c}}function ud(){const{client:r,loading:t}=me(),[a,n]=i.useState(!1),o=async s=>{n(!0);try{const h=new FormData;for(const[u,d]of Object.entries(s))d&&h.append(u,d);const c=await r("/waitlist/join",{method:"POST",body:h});return await N(c)}finally{n(!1)}};return t?{loading:!0,joinWaitlist:null}:{loading:a,joinWaitlist:o}}function hd(){const{client:r,loading:t}=me(),[a,n]=i.useState(!1),[o,s]=i.useState(null),[h,c]=i.useState(null),[l,u]=i.useState(null),[d,f]=i.useState(!1),[g,m]=i.useState(null);i.useEffect(()=>{if(d||t)return;const v=new URLSearchParams(window.location.search),C=v.get("code"),j=v.get("state"),_=v.get("error"),z=v.get("error_description");if(!C&&!_){f(!0);const w=new Error("No OAuth callback data found.");s(w);return}if(f(!0),n(!0),_){const w=z||_,b=new Error(`OAuth Error: ${w}`);s(b),n(!1);return}if(C&&j)x(C,j);else{const w=new Error("Missing required OAuth parameters");s(w),n(!1)}},[d,t]);const x=async(v,C)=>{try{let j,_;try{const b=C.split(".");if(b.length!==3)throw new Error("Invalid OAuth state format - missing signature");const E=b[0].replace(/-/g,"+").replace(/_/g,"/"),y=E.length%4?"=".repeat(4-E.length%4):"",k=atob(E+y).split("|")[0];if(k==="sign_in")j="/auth/oauth2/callback",_="GET";else if(k==="connect_social")j="/me/sso-connection-callback",_="POST";else throw new Error(`Unknown OAuth action: ${k}`)}catch(b){const E=b instanceof Error?b:new Error("Failed to parse OAuth state");s(new Error(`Invalid OAuth callback: ${E.message}. The authorization link may be expired or malformed. Please try signing in again.`)),n(!1);return}const z=await r(`${j}?code=${encodeURIComponent(v)}&state=${encodeURIComponent(C)}`,{method:_}),w=await N(z);if("data"in w){const b=w.data.session,E=w.data.redirect_uri||null;if(c(b),u(E),b.signin_attempts&&b.signin_attempts.length>0){const y=b.signin_attempts.at(-1);y&&m(y)}}else{const b=new Error("SSO callback failed");s(b)}}catch(j){const _=j instanceof Error?j:new Error("Unknown error occurred");s(_)}finally{n(!1)}};return{loading:a,error:o,session:h,redirectUri:l,processed:d,signinAttempt:g}}function pd(){const{client:r,loading:t}=me(),[a,n]=i.useState(!1),[o,s]=i.useState(null);return{loading:t||a,verifyMagicLink:async c=>{if(!c.token||!c.attempt)throw new Error("Invalid magic link parameters");n(!0),s(null);try{const l=new URL("/auth/verify-magic-link",window.location.origin);l.searchParams.set("token",c.token),l.searchParams.set("attempt",c.attempt),c.redirectUri&&l.searchParams.set("redirect_uri",c.redirectUri);const u=await r(l.pathname+l.search,{method:"GET"}),d=await N(u);return n(!1),s(!0),d}catch(l){throw n(!1),s(!1),l}},success:o}}function fd(){const[r,t]=i.useState({});return i.useEffect(()=>{const a=new URLSearchParams(window.location.search);t({token:a.get("token")||void 0,attempt:a.get("attempt")||void 0,redirectUri:a.get("redirect_uri")||void 0})},[]),r}function gd(){const{client:r,loading:t}=me();return{loading:t,forgotPassword:async s=>{const h=new FormData;h.append("email",s);const c=await r("/auth/forgot-password",{method:"POST",body:h});return await N(c)},verifyOtp:async(s,h)=>{const c=new FormData;c.append("email",s),c.append("otp",h);const l=await r("/auth/forgot-password",{method:"POST",body:c});return await N(l)},resetPassword:async(s,h)=>{const c=new FormData;c.append("token",s),c.append("password",h);const l=await r("/auth/reset-password",{method:"POST",body:c});return await N(l)}}}const vp=()=>{},xp=vp(),es=Object,vi=r=>r===xp,bp=r=>typeof r=="function",Va=new WeakMap,yp=r=>es.prototype.toString.call(r),lo=(r,t)=>r===`[object ${t}]`;let wp=0;const rs=r=>{const t=typeof r,a=yp(r),n=lo(a,"Date"),o=lo(a,"RegExp"),s=lo(a,"Object");let h,c;if(es(r)===r&&!n&&!o){if(h=Va.get(r),h)return h;if(h=++wp+"~",Va.set(r,h),Array.isArray(r)){for(h="@",c=0;c<r.length;c++)h+=rs(r[c])+",";Va.set(r,h)}if(s){h="#";const l=es.keys(r).sort();for(;!vi(c=l.pop());)vi(r[c])||(h+=c+":"+rs(r[c])+",");Va.set(r,h)}}else h=n?r.toJSON():t=="symbol"?r.toString():t=="string"?JSON.stringify(r):""+r;return h},jp=r=>{if(bp(r))try{r=r()}catch{r=""}const t=r;return r=typeof r=="string"?r:(Array.isArray(r)?r.length:r)?rs(r):"",[r,t]},_p=r=>jp(r?r(0,null):null)[0],uo=Promise.resolve(),kp=r=>(t,a,n)=>{const o=i.useRef(!1),{cache:s,initialSize:h=1,revalidateAll:c=!1,persistSize:l=!1,revalidateFirstPage:u=!0,revalidateOnMount:d=!1,parallel:f=!1}=n,[,,,g]=Lr.get(_s);let m;try{m=_p(t),m&&(m=od+m)}catch{}const[x,v,C]=ot(s,m),j=i.useCallback(()=>xe(x()._l)?h:x()._l,[s,m,h]);Vo.useSyncExternalStore(i.useCallback(S=>m?C(m,()=>{S()}):()=>{},[s,m]),j,j);const _=i.useCallback(()=>{const S=x()._l;return xe(S)?h:S},[m,h]),z=i.useRef(_());jn(()=>{if(!o.current){o.current=!0;return}m&&v({_l:l?z.current:_()})},[m,s]);const w=d&&!o.current,b=r(m,async S=>{const k=x()._i,$=x()._r;v({_r:ar});const P=[],T=_(),[A]=ot(s,S),M=A().data,F=[];let D=null;for(let O=0;O<T;++O){const[L,I]=Aa(t(O,f?null:D));if(!L)break;const[R,B]=ot(s,L);let q=R().data;const K=c||k||xe(q)||u&&!O&&!xe(M)||w||M&&!xe(M[O])&&!n.compare(M[O],q);if(a&&(typeof $=="function"?$(q,I):K)){const ie=async()=>{if(!(L in g))q=await a(I);else{const he=g[L];delete g[L],q=await he}B({data:q,_k:I}),P[O]=q};f?F.push(ie):await ie()}else P[O]=q;f||(D=q)}return f&&await Promise.all(F.map(O=>O())),v({_i:ar}),P},n),E=i.useCallback(function(S,k){const $=typeof k=="boolean"?{revalidate:k}:k||{},P=$.revalidate!==!1;return m?(P&&(xe(S)?v({_i:!0,_r:$.revalidate}):v({_i:!1,_r:$.revalidate})),arguments.length?b.mutate(S,{...$,revalidate:P}):b.mutate()):uo},[m,s]),y=i.useCallback(S=>{if(!m)return uo;const[,k]=ot(s,m);let $;if(kr(S)?$=S(_()):typeof S=="number"&&($=S),typeof $!="number")return uo;k({_l:$}),z.current=$;const P=[],[T]=ot(s,m);let A=null;for(let M=0;M<$;++M){const[F]=Aa(t(M,A)),[D]=ot(s,F),O=F?D().data:ar;if(xe(O))return E(T().data);P.push(O),A=O}return E(P)},[m,s,E,_]);return{size:_(),setSize:y,mutate:E,get data(){return b.data},get error(){return b.error},get isValidating(){return b.isValidating},get isLoading(){return b.isLoading}}},ia=tp(_e,kp);function md({enabled:r=!0,channels:t,organizationIds:a,workspaceIds:n,onNotification:o,onError:s,reconnectDelay:h=1e3,maxReconnectAttempts:c=5}={}){const{session:l,loading:u}=Je(),{deployment:d,loading:f}=ye(),[g,m]=i.useState(!1),[x,v]=i.useState(null),C=i.useRef(null),j=i.useRef(null),_=i.useRef(0),z=i.useRef(null),w=i.useRef(o),b=i.useRef(s),E=i.useRef(t),y=i.useRef(a),S=i.useRef(n),k=i.useRef(h),$=i.useRef(c);w.current=o,b.current=s,E.current=t,y.current=a,S.current=n,k.current=h,$.current=c;const P=i.useCallback(()=>{j.current&&(clearTimeout(j.current),j.current=null),z.current&&(clearInterval(z.current),z.current=null),C.current&&(C.current.close(),C.current=null)},[]),T=i.useCallback(async()=>{var L;if(!r||u||f||!l||!d)return;P();const F=new URL(d.backend_host),D=F.protocol==="https:"?"wss:":"ws:",O=new URL("/notifications/stream",`${D}//${F.host}`);if(d.mode==="staging"){const I=nr(d.backend_host);I&&O.searchParams.set("__dev_session__",I)}E.current&&E.current.length>0&&O.searchParams.set("channels",E.current.join(",")),y.current&&y.current.length>0&&O.searchParams.set("organization_ids",y.current.join(",")),S.current&&S.current.length>0&&O.searchParams.set("workspace_ids",S.current.join(","));try{const I=new WebSocket(O.toString());C.current=I,I.onopen=()=>{m(!0),v(null),_.current=0,z.current=setInterval(()=>{I.readyState===WebSocket.OPEN&&I.send("ping")},3e4)},I.onmessage=R=>{var B,q;try{const K=JSON.parse(R.data);if(K.type==="notification"&&K.data)(B=w.current)==null||B.call(w,K.data);else if(K.type==="error"){const ie=K.error||"Unknown error occurred";v(ie),(q=b.current)==null||q.call(b,ie)}else K.type}catch{}},I.onerror=()=>{var R;v("Connection error occurred"),(R=b.current)==null||R.call(b,"Connection error occurred")},I.onclose=R=>{var B;if(m(!1),z.current&&(clearInterval(z.current),z.current=null),r&&R.code!==1e3&&_.current<$.current){_.current++;const q=k.current*Math.pow(2,_.current-1);j.current=setTimeout(()=>{T()},q)}else _.current>=$.current&&(v("Max reconnection attempts reached"),(B=b.current)==null||B.call(b,"Max reconnection attempts reached"))}}catch{v("Failed to connect"),(L=b.current)==null||L.call(b,"Failed to connect")}},[r,u,f,l,d,P]);i.useEffect(()=>(T(),()=>{P()}),[T,P]),i.useEffect(()=>{C.current&&C.current.readyState===WebSocket.OPEN&&T()},[t,a,n,T]);const A=i.useCallback(()=>{P(),m(!1)},[P]),M=i.useCallback(()=>{_.current=0,T()},[T]);return{isConnected:g,connectionError:x,disconnect:A,reconnect:M}}function Nn(r){if(!r)return"";const t=new URLSearchParams;r.limit&&t.append("limit",r.limit.toString()),r.cursor&&t.append("cursor",r.cursor),r.scope&&t.append("scope",r.scope),r.channels&&r.channels.length>0&&r.channels.forEach(n=>t.append("channels",n)),r.organization_ids&&r.organization_ids.length>0&&r.organization_ids.forEach(n=>t.append("organization_ids",n)),r.workspace_ids&&r.workspace_ids.length>0&&r.workspace_ids.forEach(n=>t.append("workspace_ids",n)),r.is_read!==void 0&&t.append("is_read",r.is_read.toString()),r.is_archived!==void 0&&t.append("is_archived",r.is_archived.toString()),r.is_starred!==void 0&&t.append("is_starred",r.is_starred.toString()),r.severity&&t.append("severity",r.severity);const a=t.toString();return a?"?"+a:""}async function Cp(r,t){const a=`/notifications${Nn(t)}`,n=await r(a,{method:"GET"});return(await N(n)).data}async function Sp(r,t){const a=await r(`/notifications/${t}/read`,{method:"POST"});return N(a)}async function zp(r,t){const a=await r(`/notifications/${t}/unread`,{method:"POST"});return N(a)}async function $p(r,t){const a=await r(`/notifications/mark-all-read${Nn(t)}`,{method:"POST"});return N(a)}async function Ep(r,t){const a=await r(`/notifications/archive-all-read${Nn(t)}`,{method:"POST"});return N(a)}async function Rp(r,t){const a=await r(`/notifications/${t}/archive`,{method:"POST"});return N(a)}async function Pp(r,t){const a=await r(`/notifications/${t}/star`,{method:"POST"});return N(a)}function vd(r){var S;const{client:t,loading:a}=me(),{data:n,error:o,mutate:s,isLoading:h,size:c,setSize:l,isValidating:u}=ia((k,$)=>{var M;if(a||k>0&&(!$||!$.has_more))return null;const P=k===0||(M=$==null?void 0:$.notifications[$.notifications.length-1])==null?void 0:M.id,{onNotification:T,...A}=r||{};return["wacht-notifications",{...A,cursor:P}]},([,k])=>Cp(t,k),{refreshInterval:6e4,revalidateOnFocus:!0,revalidateFirstPage:!0}),d=i.useMemo(()=>n?n.flatMap(k=>k.notifications):[],[n]),f=n?(S=n[n.length-1])==null?void 0:S.has_more:!1,g=i.useMemo(()=>{if(r!=null&&r.channels&&r.channels.length>0)return r.channels;switch(r==null?void 0:r.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}},[r==null?void 0:r.channels,r==null?void 0:r.scope]),m=i.useMemo(()=>{var k;return(k=r==null?void 0:r.organization_ids)==null?void 0:k.map($=>Number($)).filter($=>Number.isFinite($))},[r==null?void 0:r.organization_ids]),x=i.useMemo(()=>{var k;return(k=r==null?void 0:r.workspace_ids)==null?void 0:k.map($=>Number($)).filter($=>Number.isFinite($))},[r==null?void 0:r.workspace_ids]);md({enabled:!a&&!!n,channels:g,organizationIds:m,workspaceIds:x,onNotification:i.useCallback(k=>{s(async $=>{var M;if(!$||$.length===0||$.some(F=>F.notifications.some(D=>D.id===k.id.toString())))return $;(M=r==null?void 0:r.onNotification)==null||M.call(r,k);const T=$[0];return[{...T,notifications:[{id:k.id.toString(),user_id:k.user_id.toString(),deployment_id:k.deployment_id.toString(),title:k.title,body:k.body,severity:k.severity,ctas:k.ctas,is_read:!1,is_archived:!1,created_at:k.created_at,updated_at:k.created_at},...T.notifications]},...$.slice(1)]},!1)},[s,r]),onError:i.useCallback(()=>{},[])});const v=i.useCallback(async k=>{a||(await s(async $=>$&&$.map(P=>({...P,notifications:P.notifications.map(T=>T.id===k?{...T,is_read:!0}:T)})),!1),await Sp(t,k),await s())},[t,a,s]),C=i.useCallback(async k=>{a||(await s(async $=>$&&$.map(P=>({...P,notifications:P.notifications.map(T=>T.id===k?{...T,is_read:!1}:T)})),!1),await zp(t,k),await s())},[t,a,s]),j=i.useCallback(async()=>{a||(await s(async k=>k&&k.map($=>({...$,notifications:$.notifications.map(P=>({...P,is_read:!0}))})),!1),await $p(t,r),await s())},[t,r,s,a]),_=i.useCallback(async()=>{a||(await s(async k=>k&&k.map($=>({...$,notifications:$.notifications.filter(P=>!P.is_read)})),!1),await Ep(t,r),await s())},[t,r,a,s]),z=i.useCallback(async k=>{a||(await s(async $=>$&&$.map(P=>({...P,notifications:(r==null?void 0:r.is_archived)!==void 0?P.notifications.filter(T=>T.id!==k):P.notifications.map(T=>T.id===k?{...T,is_archived:!T.is_archived}:T)})),!1),await Rp(t,k),await s())},[t,a,s,r==null?void 0:r.is_archived]),w=i.useCallback(async k=>{a||(await s(async $=>$&&$.map(P=>({...P,notifications:P.notifications.map(T=>T.id===k?{...T,is_starred:!T.is_starred}:T)})),!1),await Pp(t,k),await s())},[t,a,s]),b=i.useCallback(async()=>{u||!f||await l(c+1)},[u,f,l,c]),E=i.useCallback(async()=>{await s()},[s]),y=a||h||c>0&&n&&typeof n[c-1]>"u";return!n||y?{loading:!0,notifications:d,hasMore:f,markAsRead:void 0,markAllAsRead:void 0,archiveAllRead:void 0,archiveNotification:void 0,starNotification:void 0,markAsUnread:void 0,error:o,refetch:E,loadMore:b}:{loading:!1,error:o,notifications:d,hasMore:f,markAsRead:v,markAllAsRead:j,archiveAllRead:_,archiveNotification:z,starNotification:w,markAsUnread:C,refetch:E,loadMore:b}}async function Tp(r,t){const a=`/notifications/scope-unread${Nn(t)}`,n=await r(a,{method:"GET"});return(await N(n)).data}function xd(r){const{client:t,loading:a}=me(),{data:n,error:o,mutate:s}=_e(a?null:["wacht-notifications-unread",r],([,c])=>Tp(t,c),{refreshInterval:3e4,revalidateOnFocus:!0}),h=async()=>{await s()};return!n||a?{loading:!0,count:0,error:o,refetch:h}:{loading:!1,count:n.count,error:o,refetch:h}}const Ft={DISCONNECTED:"disconnected",CONNECTED:"connected",ERROR:"error"},Ye={IDLE:"idle",STARTING:"starting",RUNNING:"running",WAITING_FOR_INPUT:"waiting_for_input",COMPLETED:"completed",FAILED:"failed"},ft={IDLE:"Idle",STARTING:"Starting",RUNNING:"Running",WAITING_FOR_INPUT:"WaitingForInput",COMPLETED:"Completed",FAILED:"Failed",CANCELLED:"Cancelled"};function Ap(r){switch(r.trim()){case ft.IDLE:return Ye.IDLE;case ft.STARTING:case"starting":return Ye.STARTING;case ft.RUNNING:case"running":return Ye.RUNNING;case ft.WAITING_FOR_INPUT:case"waiting_for_input":return Ye.WAITING_FOR_INPUT;case ft.COMPLETED:case"completed":return Ye.COMPLETED;case ft.FAILED:case ft.CANCELLED:case"failed":case"cancelled":return Ye.FAILED;default:return Ye.IDLE}}function Nt(r){return r===Ye.STARTING||r===Ye.RUNNING||r===Ye.WAITING_FOR_INPUT}const Ip=5e3,Lp=5e3;function Mp({threadId:r,platformAdapter:t}){var Y;const{deployment:a}=ye(),{client:n}=me(),[o,s]=i.useState([]),[h,c]=i.useState(null),[l,u]=i.useState(null),[d,f]=i.useState(null),[g,m]=i.useState(Ye.IDLE),[x,v]=i.useState({status:Ft.DISCONNECTED}),[C,j]=i.useState(!0),[_,z]=i.useState(!1),[w,b]=i.useState(!1),[E,y]=i.useState(null),S=i.useRef(null),k=i.useRef(r),$=i.useRef(0),P=i.useRef(Ye.IDLE),T=i.useCallback(H=>{s(U=>{const G=[...U],fe=G.findIndex(pe=>String(pe.id)===String(H.id));return fe>=0?G[fe]=H:G.push(H),G.sort((pe,V)=>new Date(pe.timestamp).getTime()-new Date(V.timestamp).getTime()),G})},[]),A=i.useCallback(H=>{P.current=H,m(H)},[]),M=i.useCallback(H=>{$.current=Date.now()+Ip,A(H)},[A]),F=i.useCallback(()=>{$.current>Date.now()&&Nt(P.current)||A(Ye.IDLE)},[A]),D=i.useCallback(H=>{const U=Ap(H),G=Nt(U);!G&&$.current>Date.now()&&Nt(P.current)||(G&&($.current=0),A(U))},[A]),O=i.useCallback(()=>{c(null),u(null)},[]),L=i.useCallback((H,U)=>{const G={id:H,timestamp:new Date().toISOString(),content:{type:"user_message",message:U},metadata:{message_type:"user_message"}};T(G),O()},[O,T]),I=i.useCallback(H=>{var pe;const{content:U}=H,G=H.message_type||((pe=H.metadata)==null?void 0:pe.message_type)||(U==null?void 0:U.type),fe={...H,metadata:{...H.metadata||{},message_type:G}};if(G==="system_decision"||G==="execution_summary"||G==="tool_result"){T(fe);const V=U==null?void 0:U.step;G==="system_decision"&&(V==="execution_cancelled"||V==="abort")&&F();return}if(G==="user_message"){T(fe);return}if(G==="steer"){T(fe),U!=null&&U.further_actions_required||F();return}if(G==="approval_request"){$.current=0,A(Ye.WAITING_FOR_INPUT),T(fe);return}if(G==="approval_response"){T(fe),M(Ye.RUNNING);return}if(G==="execution_status"){D(U.status);return}T(fe)},[D,F,A,M,T]),R=i.useCallback((H,U)=>{var G;(G=t==null?void 0:t.onPlatformEvent)==null||G.call(t,H,U)},[t]),B=i.useRef(I),q=i.useRef(R),K=i.useRef(n),ie=i.useRef(a);i.useEffect(()=>{B.current=I,q.current=R,K.current=n,ie.current=a}),i.useEffect(()=>{k.current=r},[r]);const ee=i.useRef(null),he=i.useRef(null),se=i.useRef(0),Q=10,le=i.useCallback(async H=>{if(!r)return;const U=r;H?z(!0):b(!0),y(null);try{const G=new URLSearchParams({limit:"100"});H&&G.append("before_id",H);const fe=await n(`/ai/threads/${r}/messages?${G}`,{method:"GET"}),pe=await N(fe);if(pe.data&&k.current===U){const V=[...pe.data.data].sort((ne,Re)=>{const Fe=new Date(ne.timestamp).getTime(),Ze=new Date(Re.timestamp).getTime();return Fe-Ze});V.length>0&&(S.current=V[0].id),s(ne=>H?[...V,...ne]:V),j(pe.data.has_more||!1)}}catch(G){k.current===U&&y(G instanceof Error?G:new Error("Failed to fetch messages"))}finally{k.current===U&&(H?z(!1):b(!1))}},[r,n]);i.useEffect(()=>{const H=ie.current;if(!H||!r)return;const U=()=>{ee.current&&(ee.current.close(),ee.current=null);const G=new URL(`${H.backend_host}/ai/threads/${encodeURIComponent(r)}/stream`);if(H.mode==="staging"){const pe=nr(H.backend_host);pe&&G.searchParams.append("__dev_session__",pe)}const fe=new EventSource(G.toString(),{withCredentials:H.mode!=="staging"});ee.current=fe,fe.onopen=()=>{if(v({status:Ft.CONNECTED}),se.current>0){const pe=r;setTimeout(()=>{n(`/ai/threads/${pe}/messages?limit=100`,{method:"GET"}).then(async V=>{const ne=await N(V);if(ne.data&&k.current===pe){const Re=[...ne.data.data].sort((Fe,Ze)=>new Date(Fe.timestamp).getTime()-new Date(Ze.timestamp).getTime());s(Re)}}).catch(()=>{})},100)}se.current=0},fe.onerror=()=>{if(v({status:Ft.ERROR}),fe.close(),ee.current=null,se.current<Q){const pe=Math.min(1e3*Math.pow(2,se.current),3e4);he.current=setTimeout(()=>{se.current++,U()},pe)}else v({status:Ft.DISCONNECTED})},fe.addEventListener("conversation_message",pe=>{try{const V=JSON.parse(pe.data),ne=(V==null?void 0:V.ConversationMessage)??V??null;ne&&B.current(ne)}catch{}}),fe.addEventListener("platform_event",pe=>{try{const V=JSON.parse(pe.data);V!=null&&V.PlatformEvent?q.current(V.PlatformEvent[0],V.PlatformEvent[1]):V!=null&&V.event_label&&q.current(V.event_label,V.event_data)}catch{}})};return U(),()=>{he.current&&(clearTimeout(he.current),he.current=null),ee.current&&(ee.current.close(),ee.current=null)}},[r]);const X=i.useCallback(async()=>{if(!r)return;const H=r;try{const U=await n(`/ai/threads/${H}`,{method:"GET"});if(!U.ok)return;const G=await N(U);G.data&&k.current===H&&(f(G.data),D(G.data.status))}catch{}},[r,n,D]);i.useEffect(()=>{if(!r)return;X();const H=window.setInterval(()=>{!Nt(P.current)&&$.current<=Date.now()||X()},Lp);return()=>{window.clearInterval(H)}},[r,X]),i.useEffect(()=>{s([]),f(null),j(!0),z(!1),y(null),b(!!r),v({status:Ft.DISCONNECTED}),S.current=null,$.current=0,P.current=Ye.IDLE,O()},[r,O]);const Ie=i.useCallback(async(H,U)=>{var G;if(!(!r||!a)){c(H),U&&U.length>0&&u(U);try{const fe=new FormData;fe.append("message",H),U&&U.length>0&&U.forEach(V=>{fe.append("files",V)});const pe=await n(`/ai/threads/${r}/run`,{method:"POST",body:fe});if(pe.ok){const ne=((G=(await N(pe)).data)==null?void 0:G.conversation_id)??null;ne?L(ne,H):O(),M(Ye.RUNNING)}else O()}catch{O()}}},[r,a,n,M,O,L]);i.useEffect(()=>{r&&le()},[r,le]);const Oe=i.useCallback(async()=>{await le()},[le]),Ue=i.useCallback(async()=>{if(!(_||!C||!S.current)){z(!0);try{await le(S.current)}finally{z(!1)}}},[_,C,le]),He=i.useCallback(()=>{s([]),O()},[O]),Xe=i.useCallback(async(H,U)=>{if(!r)return!1;try{const G=new FormData;return G.append("request_message_id",H),U.forEach(pe=>{G.append("approval_tool_name",pe.tool_name),G.append("approval_mode",pe.mode)}),(await n(`/ai/threads/${r}/run`,{method:"POST",body:G})).ok?(M(Ye.RUNNING),!0):!1}catch{return!1}},[r,n,M]),qe=i.useCallback(async()=>{if(!(!r||!Nt(g)))try{const H=new FormData;H.append("cancel","true"),await n(`/ai/threads/${r}/run`,{method:"POST",body:H}),$.current=0,A(Ye.IDLE)}catch{}},[r,g,n,A]),ge=i.useCallback(H=>{if(!a||!r||!H)return null;const U=H.url||H.filename;if(!U)return null;if(/^https?:\/\//i.test(U))return U;const G=a.backend_host.replace(/\/$/,"");let fe;if(U.startsWith("/ai/threads/"))fe=new URL(U,`${G}/`);else{const pe=U.startsWith("/uploads/")||U.includes("/")?U.split("/").pop()??"":U;if(!pe)return null;fe=new URL(`/ai/threads/${encodeURIComponent(r)}/files/${encodeURIComponent(pe)}`,`${G}/`)}if(a.mode==="staging"){const pe=nr(a.backend_host);pe&&fe.searchParams.set("__dev_session__",pe)}return fe.toString()},[r,a]),Se=i.useCallback(H=>{const U=ge(H);if(!U)return;const G=document.createElement("a");G.href=U,G.download=(H==null?void 0:H.filename)||"attachment",G.rel="noreferrer",document.body.appendChild(G),G.click(),document.body.removeChild(G)},[ge]),ke=((Y=d==null?void 0:d.execution_state)==null?void 0:Y.pending_approval_request)??null,de=(ke==null?void 0:ke.request_message_id)??null;return{threadState:d,messages:o,pendingMessage:h,pendingFiles:l,connectionState:x,isConnected:x.status===Ft.CONNECTED,hasActiveRun:Nt(g),isRunning:g===Ye.STARTING||g===Ye.RUNNING,executionStatus:g,isWaitingForInput:g===Ye.WAITING_FOR_INPUT,pendingApprovalRequest:ke,activeApprovalRequestId:de,hasMoreMessages:C,isLoadingMore:_,messagesLoading:w,messagesError:E,refreshMessages:Oe,sendMessage:Ie,submitApprovalResponse:Xe,clearMessages:He,loadMoreMessages:Ue,cancelExecution:qe,resolveMessageFileUrl:ge,downloadMessageFile:Se}}function Op(r){const{client:t}=me(),[a,n]=i.useState(!r),[o,s]=i.useState(!!r),[h,c]=i.useState(null),l=i.useRef(!1),u=i.useRef(!1),d=i.useRef(null),f=a,g=i.useCallback(async()=>{const w=await t("/ai/session",{method:"GET"});if(!w.ok)throw w.status===401||w.status===403?new Error("NO_SESSION"):new Error("Failed to fetch session");return(await N(w)).data},[t]),{data:m,error:x,isLoading:v,mutate:C}=_e(f?"wacht-agent-session":null,g,{revalidateOnFocus:!1});i.useEffect(()=>{if(!r||l.current||u.current||d.current===r)return;d.current=r,(async()=>{u.current=!0,s(!0);try{(await t(`/session/ticket/exchange?ticket=${encodeURIComponent(r)}`,{method:"GET"})).ok?(l.current=!0,n(!0)):c(new Error("Failed to exchange ticket"))}catch(b){c(b instanceof Error?b:new Error("Failed to exchange ticket"))}finally{s(!1),u.current=!1}})()},[r,t]);const j=!h&&(r?a:!0)&&(!x||x.message!=="NO_SESSION"),_=h||(x&&x.message!=="NO_SESSION"?x:null);return{hasSession:j,sessionLoading:o||f&&v,sessionError:_,sessionId:(m==null?void 0:m.session_id)||null,actor:(m==null?void 0:m.actor)||null,agents:(m==null?void 0:m.agents)||[],ticketExchanged:a,ticketLoading:o,refetch:async()=>{await C()}}}const xi={exists:!1,files:[]};function ks(r,t){return t===void 0?"":`?${new URLSearchParams({[r]:String(t)}).toString()}`}function bd(r,t){const a=new URLSearchParams({path:r});return t&&a.set("include_archived","true"),`?${a.toString()}`}function yd(r,t){const a=new URLSearchParams;r&&a.set("path",r),t&&a.set("include_archived","true");const n=a.toString();return n?`?${n}`:""}function Dp(r){const t=r.split("/").pop()||r,a=t.lastIndexOf(".");return a<0||a===t.length-1?"":t.slice(a+1).toLowerCase()}function Fp(r,t){const a=Dp(t),n=new Set(["doc","docx","ppt","pptx","xls","xlsx","pdf","zip","gz","tar","7z","rar","jar","war","bin"]),o=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:o.has(a)?!0:r.startsWith("text/")||r.includes("json")||r.includes("javascript")||r.includes("typescript")||r.includes("python")||r.includes("xml")||r.includes("yaml")}function Qe(r,t,a){if(a!=null){if(typeof a=="string"){r.set(t,a);return}if(typeof a=="boolean"||typeof a=="number"){r.set(t,String(a));return}}}function Np(r,t,a){a&&r.set(t,JSON.stringify(a))}function bi(r){const t=new FormData;return Qe(t,"name",r.name),Qe(t,"agent_id","agent_id"in r?r.agent_id:void 0),Qe(t,"description",r.description),Qe(t,"status",r.status),t}function Up(r){const t=new FormData;if(Qe(t,"title",r.title),Qe(t,"agent_id",r.agent_id),Qe(t,"system_instructions",r.system_instructions),Qe(t,"thread_purpose",r.thread_purpose),Qe(t,"responsibility",r.responsibility),Qe(t,"reusable",r.reusable),Qe(t,"accepts_assignments",r.accepts_assignments),Np(t,"metadata",r.metadata),Array.isArray(r.capability_tags))for(const a of r.capability_tags)t.append("capability_tags",a);return t}function wd(r){const t=new FormData;return Qe(t,"title",r.title),Qe(t,"agent_id",r.agent_id),Qe(t,"system_instructions",r.system_instructions),t}function jd(r,t=[]){const a=new FormData;Qe(a,"title",r.title),Qe(a,"description",r.description),Qe(a,"status",r.status),Qe(a,"priority",r.priority),Qe(a,"schedule_kind",r.schedule_kind),Qe(a,"next_run_at",r.next_run_at),Qe(a,"interval_seconds",r.interval_seconds),"clear_schedule"in r&&Qe(a,"clear_schedule",r.clear_schedule);for(const n of t)a.append("files",n);return a}function Bp(r={}){const{client:t}=me(),{includeArchived:a=!1,enabled:n=!0}=r,o=n?`wacht-ai-actors:${a}`:null,s=i.useCallback(async()=>{const u=await t(`/ai/actors${ks("include_archived",a)}`);return(await N(u)).data},[t,a]),{data:h,error:c,mutate:l}=_e(o,s,{revalidateOnFocus:!1});return{actors:h||[],loading:!h&&!c,error:c,refetch:async()=>{await l()}}}function Wp(r={}){const{client:t}=me(),{includeArchived:a=!1,enabled:n=!0}=r,o=n?`wacht-ai-actor-projects:${a}`:null,s=i.useCallback(async()=>{const m=await t(`/ai/projects${ks("include_archived",a)}`);return(await N(m)).data},[t,a]),{data:h,error:c,mutate:l}=_e(o,s,{revalidateOnFocus:!1}),u=i.useCallback(async m=>{const x=await t("/ai/projects",{method:"POST",body:bi(m)}),v=await N(x);return await l(),v.data},[t,l]),d=i.useCallback(async(m,x)=>{const v=await t(`/ai/projects/${m}/update`,{method:"POST",body:bi(x)}),C=await N(v);return await l(),C.data},[t,l]),f=i.useCallback(async m=>{const x=await t(`/ai/projects/${m}/archive`,{method:"POST",body:new URLSearchParams}),v=await N(x);return await l(),v.data},[t,l]),g=i.useCallback(async m=>{const x=await t(`/ai/projects/${m}/unarchive`,{method:"POST",body:new URLSearchParams}),v=await N(x);return await l(),v.data},[t,l]);return{projects:h||[],loading:!h&&!c,error:c,createProject:u,updateProject:d,archiveProject:f,unarchiveProject:g,refetch:async()=>{await l()}}}function Vp(r={}){const{client:t}=me(),{enabled:a=!0,query:n="",limit:o=12}=r,s=n.trim(),h=a?`wacht-ai-actor-project-search:${s}:${o}`:null,c=i.useCallback(async()=>{const f=new URLSearchParams({limit:String(o)});s&&f.set("q",s);const g=await t(`/ai/projects/search?${f.toString()}`);return(await N(g)).data},[t,o,s]),{data:l,error:u,mutate:d}=_e(h,c,{revalidateOnFocus:!1});return{projects:(l==null?void 0:l.data)||[],loading:!l&&!u,error:u,hasMore:(l==null?void 0:l.has_more)||!1,nextCursor:l==null?void 0:l.next_cursor,refetch:async()=>{await d()}}}function Gp(r,t={}){const{client:a}=me(),{includeArchived:n=!1,enabled:o=!0}=t,s=o&&r?`wacht-ai-threads:${r}:${n}`:null,h=i.useCallback(async()=>{if(!r)return[];const v=await a(`/ai/projects/${r}/threads${ks("include_archived",n)}`);return(await N(v)).data},[r,a,n]),{data:c,error:l,mutate:u}=_e(s,h,{revalidateOnFocus:!1}),d=i.useCallback(async(v,C)=>{const j=await a(`/ai/projects/${v}/threads`,{method:"POST",body:Up(C)}),_=await N(j);return v===r&&await u(),_.data},[r,a,u]),f=i.useCallback(async v=>{if(!r)throw new Error("projectId is required");return d(r,v)},[r,d]),g=i.useCallback(async(v,C)=>{const j=await a(`/ai/threads/${v}/update`,{method:"POST",body:wd(C)}),_=await N(j);return await u(),_.data},[a,u]),m=i.useCallback(async v=>{const C=await a(`/ai/threads/${v}/archive`,{method:"POST",body:new URLSearchParams}),j=await N(C);return await u(),j.data},[a,u]),x=i.useCallback(async v=>{const C=await a(`/ai/threads/${v}/unarchive`,{method:"POST",body:new URLSearchParams}),j=await N(C);return await u(),j.data},[a,u]);return{threads:c||[],loading:!c&&!l,error:l,createThread:f,createThreadForProject:d,updateThread:g,archiveThread:m,unarchiveThread:x,refetch:async()=>{await u()}}}function Hp(r,t={}){var m,x;const{client:a}=me(),{includeArchived:n=!1,archivedOnly:o=!1,enabled:s=!0,query:h="",limit:c=10}=t,l=h.trim(),u=ia((v,C)=>{if(!s||!r||v>0&&C&&!C.has_more)return null;const j=v===0||C==null?void 0:C.next_cursor;return["wacht-ai-project-thread-feed",r,o?"archived-only":n?"with-archived":"active-only",l,c,j||""]},async([,v,C,j,_,z])=>{const w=new URLSearchParams({limit:String(_)});C==="with-archived"?w.set("include_archived","true"):C==="archived-only"&&(w.set("include_archived","true"),w.set("archived_only","true")),j&&w.set("q",String(j)),z&&w.set("cursor",String(z));const b=await a(`/ai/projects/${v}/threads/page?${w.toString()}`);return(await N(b)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0}),d=i.useMemo(()=>{var v;return((v=u.data)==null?void 0:v.flatMap(C=>C.data||[]))||[]},[u.data]),f=u.data&&((m=u.data[u.data.length-1])==null?void 0:m.has_more)||!1,g=u.isValidating&&!!u.data&&u.size>(((x=u.data)==null?void 0:x.length)||0);return{threads:d,loading:!u.data&&!u.error,error:u.error||null,hasMore:f,loadingMore:g,loadMore:async()=>{!f||g||await u.setSize(v=>v+1)},refetch:async()=>{await u.mutate()}}}function qp(r={}){const{client:t}=me(),{enabled:a=!0,query:n="",limit:o=16}=r,s=n.trim(),h=a?`wacht-ai-actor-thread-search:${s}:${o}`:null,c=i.useCallback(async()=>{const f=new URLSearchParams({limit:String(o)});s&&f.set("q",s);const g=await t(`/ai/threads/search?${f.toString()}`);return(await N(g)).data},[t,o,s]),{data:l,error:u,mutate:d}=_e(h,c,{revalidateOnFocus:!1});return{threads:(l==null?void 0:l.data)||[],loading:!l&&!u,error:u,hasMore:(l==null?void 0:l.has_more)||!1,nextCursor:l==null?void 0:l.next_cursor,refetch:async()=>{await d()}}}function Kp(r,t=!0){const{client:a}=me(),n=t&&r?`wacht-ai-thread:${r}`:null,o=i.useCallback(async()=>{if(!r)return null;const u=await a(`/ai/threads/${r}`);return(await N(u)).data},[r,a]),s=_e(n,o,{revalidateOnFocus:!1}),h=i.useCallback(async u=>{if(!r)throw new Error("threadId is required");const d=await a(`/ai/threads/${r}/update`,{method:"POST",body:wd(u)}),f=await N(d);return await s.mutate(),f.data},[r,a,s]),c=i.useCallback(async()=>{if(!r)throw new Error("threadId is required");const u=await a(`/ai/threads/${r}/archive`,{method:"POST",body:new URLSearchParams}),d=await N(u);return await s.mutate(),d.data},[r,a,s]),l=i.useCallback(async()=>{if(!r)throw new Error("threadId is required");const u=await a(`/ai/threads/${r}/unarchive`,{method:"POST",body:new URLSearchParams}),d=await N(u);return await s.mutate(),d.data},[r,a,s]);return{thread:s.data||null,loading:!s.data&&!s.error,error:s.error||null,updateThread:h,archiveThread:c,unarchiveThread:l,refetch:async()=>{await s.mutate()}}}function Yp(r,t=!0){const{client:a}=me(),n=t&&r?`wacht-ai-thread-filesystem:${r}`:null,o=i.useCallback(async c=>{if(!r)throw new Error("threadId is required");const l=await a(`/ai/threads/${r}/filesystem/file${bd(c)}`);if(!l.ok)throw new Error("Failed to load file");const u=await l.blob(),d=(l.headers.get("content-type")||"application/octet-stream").split(";")[0].trim().toLowerCase(),f=Fp(d,c);let g;return f&&(g=await u.text()),{path:c,name:c.split("/").pop()||"file",mime_type:d,is_text:f,size_bytes:u.size,truncated:!1,content:g,blob:u}},[r,a]),s=i.useCallback(async c=>{if(!r)return xi;const l=await a(`/ai/threads/${r}/filesystem${yd(c)}`);return(await N(l)).data},[r,a]),h=_e(n,()=>s(),{revalidateOnFocus:!1});return{filesystem:h.data||xi,filesystemLoading:!h.data&&!h.error,filesystemError:h.error||null,getFile:o,listDirectory:s,refetch:async()=>{await h.mutate()}}}function Qp(r,t={}){var u,d;const{client:a}=me(),{enabled:n=!0,limit:o=40}=t,s=ia((f,g)=>{if(!n||!r||f>0&&g&&!g.has_more)return null;const m=f===0||g==null?void 0:g.next_cursor;return["wacht-ai-thread-events",r,o,m||""]},async([,f,g,m])=>{const x=new URLSearchParams({limit:String(g)});m&&x.set("cursor",String(m));const v=await a(`/ai/threads/${f}/events?${x.toString()}`);return(await N(v)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0,refreshInterval:5e3}),h=i.useMemo(()=>{var f;return((f=s.data)==null?void 0:f.flatMap(g=>g.data||[]))||[]},[s.data]),c=s.data&&((u=s.data[s.data.length-1])==null?void 0:u.has_more)||!1,l=s.isValidating&&!!s.data&&s.size>(((d=s.data)==null?void 0:d.length)||0);return{events:h,loading:!s.data&&!s.error,error:s.error||null,hasMore:c,loadingMore:l,loadMore:async()=>{!c||l||await s.setSize(f=>f+1)},refetch:async()=>{await s.mutate()}}}function Zp(r,t={}){var u,d;const{client:a}=me(),{enabled:n=!0,limit:o=40}=t,s=ia((f,g)=>{if(!n||!r||f>0&&g&&!g.has_more)return null;const m=f===0||g==null?void 0:g.next_cursor;return["wacht-ai-thread-assignments",r,o,m||""]},async([,f,g,m])=>{const x=new URLSearchParams({limit:String(g)});m&&x.set("cursor",String(m));const v=await a(`/ai/threads/${f}/assignments?${x.toString()}`);return(await N(v)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0,refreshInterval:5e3}),h=i.useMemo(()=>{var f;return((f=s.data)==null?void 0:f.flatMap(g=>g.data||[]))||[]},[s.data]),c=s.data&&((u=s.data[s.data.length-1])==null?void 0:u.has_more)||!1,l=s.isValidating&&!!s.data&&s.size>(((d=s.data)==null?void 0:d.length)||0);return{assignments:h,loading:!s.data&&!s.error,error:s.error||null,hasMore:c,loadingMore:l,loadMore:async()=>{!c||l||await s.setSize(f=>f+1)},refetch:async()=>{await s.mutate()}}}function Jp(r={},t){const a=new URLSearchParams;r.statuses&&r.statuses.length>0&&a.set("status",r.statuses.join(",")),r.includeArchived&&a.set("include_archived","true"),r.archivedOnly&&a.set("archived_only","true"),r.limit&&a.set("limit",String(r.limit)),t&&a.set("cursor",t);const n=a.toString();return n?`?${n}`:""}function Xp(r,t=!0,a={}){var x,v,C;const{client:n}=me(),o=((x=a.statuses)==null?void 0:x.join(","))||"all",s=a.archivedOnly?"archived-only":a.includeArchived?"with-archived":"active-only",h=a.limit||60,c=ia((j,_)=>{if(!t||!r||j>0&&_&&!_.has_more)return null;const z=j===0||_==null?void 0:_.next_cursor;return["wacht-ai-project-tasks",r,o,s,h,z||""]},async([,j,,,,_])=>{const z=await n(`/ai/projects/${j}/board/items${Jp(a,_||void 0)}`);return(await N(z)).data},{revalidateOnFocus:!1,revalidateFirstPage:!0,persistSize:!0}),l=i.useMemo(()=>{var j;return((j=c.data)==null?void 0:j.flatMap(_=>_.data||[]))||[]},[c.data]),u=c.data&&((v=c.data[c.data.length-1])==null?void 0:v.has_more)||!1,d=c.isValidating&&!!c.data&&c.size>(((C=c.data)==null?void 0:C.length)||0),f=i.useCallback(async(j,_=[])=>{if(!r)throw new Error("projectId is required");const z=await n(`/ai/projects/${r}/board/items`,{method:"POST",body:jd(j,_)}),w=await N(z);return await c.mutate(),w.data},[r,n,c]),g=i.useCallback(async j=>{const _=await n(`/ai/board-items/${j}/archive`,{method:"POST",body:new URLSearchParams}),z=await N(_);return await c.mutate(),z.data},[n,c]),m=i.useCallback(async j=>{const _=await n(`/ai/board-items/${j}/unarchive`,{method:"POST",body:new URLSearchParams}),z=await N(_);return await c.mutate(),z.data},[n,c]);return{tasks:l,loading:!c.data&&!c.error,error:c.error||null,hasMore:u,loadingMore:d,loadMore:async()=>{!u||d||await c.setSize(j=>j+1)},createTask:f,archiveTask:g,unarchiveTask:m,refetch:async()=>{await c.mutate()}}}function ef(r,t=!0,a={}){var _,z,w;const{client:n}=me(),o=a.includeArchived?"with-archived":"active-only",s=a.includeArchived?"?include_archived=true":"",h=t&&r?`wacht-ai-board-item-detail:${r}:${o}`:null,c=t&&r?`wacht-ai-board-item-workspace:${r}:${o}`:null,l=i.useCallback(async()=>{if(!r)return null;const b=await n(`/ai/board-items/${r}/detail${s}`);return(await N(b)).data},[r,n,s]),u=_e(h,l,{revalidateOnFocus:!1,refreshInterval:5e3}),d=i.useCallback(async()=>{if(!r)return{exists:!1,files:[]};const b=await n(`/ai/board-items/${r}/task-workspace${s}`);return(await N(b)).data},[r,n,s]),f=_e(c,d,{revalidateOnFocus:!1,refreshInterval:5e3}),g=i.useCallback(async(b,E=[])=>{if(!r)throw new Error("itemId is required");const y=await n(`/ai/board-items/${r}/update`,{method:"POST",body:jd(b,E)}),S=await N(y);return await u.mutate(),await f.mutate(),S.data},[r,n,u,f]),m=i.useCallback(async()=>{if(!r)throw new Error("itemId is required");const b=await n(`/ai/board-items/${r}/archive`,{method:"POST",body:new URLSearchParams}),E=await N(b);return await u.mutate(),E.data},[r,n,u]),x=i.useCallback(async()=>{if(!r)throw new Error("itemId is required");const b=await n(`/ai/board-items/${r}/unarchive`,{method:"POST",body:new URLSearchParams}),E=await N(b);return await u.mutate(),E.data},[r,n,u]),v=i.useCallback(async b=>{if(!r)throw new Error("itemId is required");const E=await n(`/ai/board-items/${r}/task-workspace/file${bd(b,a.includeArchived)}`);return(await N(E)).data},[r,n,a.includeArchived]),C=i.useCallback(async b=>{if(!r)throw new Error("itemId is required");const E=await n(`/ai/board-items/${r}/task-workspace${yd(b,a.includeArchived)}`);return(await N(E)).data},[r,n,a.includeArchived]),j=i.useCallback(async(b,E=[])=>{if(!r)throw new Error("itemId is required");const y=await n(`/ai/board-items/${r}/journal`,{method:"POST",body:(()=>{const k=new FormData;k.set("summary",b.summary),b.body_markdown&&k.set("body_markdown",b.body_markdown),b.details&&k.set("details",b.details);for(const $ of E)k.append("files",$);return k})()}),S=await N(y);return await u.mutate(),await f.mutate(),S.data},[r,n,u,f]);return{item:((_=u.data)==null?void 0:_.item)||null,events:((z=u.data)==null?void 0:z.events)||[],assignments:((w=u.data)==null?void 0:w.assignments)||[],taskWorkspace:f.data||{exists:!1,files:[]},taskWorkspaceLoading:!f.data&&!f.error,taskWorkspaceError:f.error||null,loading:!u.data&&!u.error,error:u.error||null,updateItem:g,archiveItem:m,unarchiveItem:x,getTaskWorkspaceFile:v,listTaskWorkspaceDirectory:C,appendJournal:j,refetch:async()=>{await u.mutate(),await f.mutate()},refetchTaskWorkspace:async()=>{await f.mutate()}}}function rf(r,t=!0){var m;const{client:a}=me(),{data:n,error:o,mutate:s,isLoading:h,size:c,setSize:l,isValidating:u}=ia((x,v)=>{if(!t||!r||x>0&&(!v||!v.has_more))return null;const C=x===0||v==null?void 0:v.next_cursor;return["wacht-ai-thread-graphs",r,C]},async([,x,v])=>{const C=new URLSearchParams;C.set("limit","10"),v&&C.set("cursor",String(v));const j=await a(`/ai/threads/${x}/task-graphs?${C.toString()}`),z=(await N(j)).data||{data:[],limit:10,has_more:!1};return{...z,data:(z.data||[]).map(w=>({...w,nodes:Array.isArray(w.nodes)?w.nodes:[],edges:Array.isArray(w.edges)?w.edges:[],summary:w.summary||null}))}},{revalidateOnFocus:!1,refreshInterval:5e3,revalidateFirstPage:!0,revalidateAll:!1,persistSize:!0}),d=i.useMemo(()=>n?n.flatMap(x=>x.data||[]):[],[n]),f=n&&((m=n[n.length-1])==null?void 0:m.has_more)||!1,g=u&&!!n&&c>((n==null?void 0:n.length)||0);return{graphs:d,latestGraph:d[0]||null,has_more:f,loadingMore:g,loading:h,error:o,loadMore:async()=>{!f||g||await l(c+1)},refetch:async()=>{await s()}}}async function ho(r){const t=await r.json();if(!r.ok)throw new Error(t.message||"Request failed");return t.data}function tf(r=!0){const{client:t}=me(),a=r?"wacht-ai-actor-mcp-servers":null,n=i.useCallback(async()=>{const d=await t("/ai/mcp-servers");return ho(d)},[t]),{data:o,error:s,mutate:h,isLoading:c}=_e(a,n,{revalidateOnFocus:!1}),l=i.useCallback(async d=>{const f=await t(`/ai/mcp-servers/${d}/connect`,{method:"POST",body:new URLSearchParams});return ho(f)},[t]),u=i.useCallback(async d=>{const f=await t(`/ai/mcp-servers/${d}/disconnect`,{method:"POST",body:new URLSearchParams});await ho(f),await h()},[t,h]);return{servers:o??[],loading:c,error:s,connect:l,disconnect:u,refetch:async()=>{await h()}}}function af(r){const t=new URLSearchParams;return t.append("url",r.url),r.description&&t.append("description",r.description),r.subscribed_events&&r.subscribed_events.forEach(a=>t.append("subscribed_events",a)),r.subscriptions&&r.subscriptions.length>0&&t.append("subscriptions",JSON.stringify(r.subscriptions)),r.headers&&Object.entries(r.headers).forEach(([a,n])=>{t.append(`headers[${a}]`,n)}),r.rate_limit_config&&(t.append("rate_limit[duration_ms]",r.rate_limit_config.duration_ms.toString()),t.append("rate_limit[max_requests]",r.rate_limit_config.max_requests.toString())),t}function nf(r){const t=new URLSearchParams;return r.url&&t.append("url",r.url),r.description!==void 0&&t.append("description",r.description||""),r.subscribed_events&&r.subscribed_events.forEach(a=>t.append("subscribed_events",a)),r.subscriptions&&r.subscriptions.length>0&&t.append("subscriptions",JSON.stringify(r.subscriptions)),r.headers&&Object.entries(r.headers).forEach(([a,n])=>{t.append(`headers[${a}]`,n)}),r.is_active!==void 0&&t.append("is_active",r.is_active.toString()),r.rate_limit_config&&(t.append("rate_limit[duration_ms]",r.rate_limit_config.duration_ms.toString()),t.append("rate_limit[max_requests]",r.rate_limit_config.max_requests.toString())),t}function of(r){const t=new URLSearchParams;return t.append("event_name",r.event_name),t.append("payload",JSON.stringify(r.payload||{})),t}function sf(r){const t=new URLSearchParams;return(r.delivery_ids||[]).forEach(n=>t.append("delivery_ids",n)),r.start_date&&t.append("start_date",r.start_date),r.end_date&&t.append("end_date",r.end_date),r.status&&t.append("status",r.status),r.event_name&&t.append("event_name",r.event_name),r.endpoint_id&&t.append("endpoint_id",r.endpoint_id),r.idempotency_key&&t.append("idempotency_key",r.idempotency_key),t}const Fa={"Content-Type":"application/x-www-form-urlencoded"};async function yr(r,t){const a=await N(r);if(!a||!("data"in a))throw new Error(t);return a.data}async function cf(r){const t=await r("/webhook/session",{method:"GET"});if(!t.ok)throw t.status===401||t.status===403?new Error("NO_SESSION"):new Error("Failed to fetch webhook app session");return yr(t,"Failed to fetch webhook app session")}async function lf(r,t){if(!(await r(`/session/ticket/exchange?ticket=${encodeURIComponent(t)}`,{method:"GET"})).ok)throw new Error("Failed to exchange ticket")}async function df(r,t){const a=af(t),n=await r("/webhook/endpoints",{method:"POST",headers:Fa,body:a.toString()});return yr(n,"Failed to create webhook endpoint")}async function uf(r,t,a){const n=nf(a),o=await r(`/webhook/endpoints/${t}`,{method:"PUT",headers:Fa,body:n.toString()});return yr(o,"Failed to update webhook endpoint")}async function hf(r,t){const a=await r(`/webhook/endpoints/${t}`,{method:"DELETE"});return yr(a,"Failed to delete webhook endpoint")}async function pf(r,t,a){const n=of(a),o=await r(`/webhook/endpoints/${t}/test`,{method:"POST",headers:Fa,body:n.toString()});return yr(o,"Failed to test webhook endpoint")}async function ff(r){const t=await r("/webhook/rotate-secret",{method:"POST"});return yr(t,"Failed to rotate signing secret")}async function gf(r,t){const a=new URLSearchParams;for(const o of t.failure_notification_emails)a.append("failure_notification_emails",o);const n=await r("/webhook/settings",{method:"PUT",headers:Fa,body:a.toString()});return yr(n,"Failed to update webhook settings")}async function mf(r,t){const a=sf(t),n=await r("/webhook/deliveries/replay",{method:"POST",headers:Fa,body:a.toString()});return yr(n,"Failed to replay webhook delivery")}async function vf(r,t){const a=await r(`/webhook/deliveries/${t}`,{method:"GET"});return yr(a,"Failed to fetch delivery details")}async function xf(r,{taskId:t}){const a=await r(`/webhook/deliveries/replay/${t}`,{method:"GET"});return yr(a,"Failed to fetch replay task status")}async function bf(r,t){const a=(t==null?void 0:t.limit)??50,n=(t==null?void 0:t.offset)??0,o=await r(`/webhook/deliveries/replay?limit=${a}&offset=${n}`,{method:"GET"});return yr(o,"Failed to fetch replay tasks")}async function yf(r,{taskId:t}){const a=await r(`/webhook/deliveries/replay/${t}/cancel`,{method:"POST"});return yr(a,"Failed to cancel replay task")}function wf(r){const{client:t}=me(),[a,n]=i.useState(!r),[o,s]=i.useState(!!r),[h,c]=i.useState(null),l=i.useRef(!1),u=i.useRef(!1),d=i.useRef(null),f=a,g=i.useCallback(async()=>cf(t),[t]),{data:m,error:x,isLoading:v,mutate:C}=_e(f?"wacht-webhook-app-session":null,g,{revalidateOnFocus:!1,shouldRetryOnError:!1});i.useEffect(()=>{if(!r||l.current||u.current||d.current===r)return;d.current=r,(async()=>{u.current=!0,s(!0);try{await lf(t,r),l.current=!0,n(!0)}catch(D){c(D instanceof Error?D:new Error("Failed to exchange ticket"))}finally{s(!1),u.current=!1}})()},[r,t]);const j=i.useCallback(async F=>df(t,F),[t]),_=i.useCallback(async(F,D)=>uf(t,F,D),[t]),z=i.useCallback(async F=>hf(t,F),[t]),w=i.useCallback(async(F,D)=>pf(t,F,D),[t]),b=i.useCallback(async()=>ff(t),[t]),E=i.useCallback(async F=>mf(t,F),[t]),y=i.useCallback(async F=>gf(t,F),[t]),S=i.useCallback(async F=>vf(t,F),[t]),k=i.useCallback(async F=>xf(t,F),[t]),$=i.useCallback(async F=>bf(t,F),[t]),P=i.useCallback(async F=>yf(t,F),[t]),T=!x||x.message!=="NO_SESSION",A=h||(x&&x.message!=="NO_SESSION"?x:null);return{hasSession:T,sessionLoading:o||f&&v,sessionError:A,sessionId:(m==null?void 0:m.session_id)||null,webhookApp:(m==null?void 0:m.webhook_app)||null,ticketExchanged:a,ticketLoading:o,refetch:async()=>{await C()},createEndpoint:j,updateEndpoint:_,deleteEndpoint:z,testEndpoint:w,rotateSecret:b,updateSettings:y,replayDelivery:E,fetchReplayTaskStatus:k,fetchReplayTasks:$,cancelReplayTask:P,fetchDeliveryDetail:S}}function jf(){const{client:r}=me(),t=i.useCallback(async()=>{const h=await r("/webhook/stats",{method:"GET"});return(await N(h)).data},[r]),{data:a,error:n,isLoading:o,mutate:s}=_e("wacht-webhook-stats",t,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{stats:a||null,loading:o,error:n,refetch:()=>s()}}function _f(){const{client:r}=me(),t=i.useCallback(async()=>{const h=await r("/webhook/endpoints",{method:"GET"});return(await N(h)).data},[r]),{data:a,error:n,isLoading:o,mutate:s}=_e("wacht-webhook-endpoints",t,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{endpoints:a||[],loading:o,error:n,refetch:()=>s()}}function kf(){const{client:r}=me();return{createEndpoint:i.useCallback(async a=>{const n=new URLSearchParams;n.append("url",a.url),a.description&&n.append("description",a.description),a.subscribed_events.forEach(h=>{n.append("subscribed_events",h)});const o=await r("/webhook/endpoints",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n.toString()});return(await N(o)).data},[r]),loading:!1,error:null}}function Cf(){const{client:r}=me(),t=i.useCallback(async()=>{const h=await r("/webhook/events",{method:"GET"});return(await N(h)).data},[r]),{data:a,error:n,isLoading:o,mutate:s}=_e("wacht-webhook-events",t,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{events:a||[],loading:o,error:n,refetch:()=>s()}}function Sf(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.endpoint_id&&c.set("endpoint_id",r.endpoint_id),r.status&&c.set("status",r.status),r.event_name&&c.set("event_name",r.event_name),r.limit&&c.set("limit",r.limit.toString()),r.cursor&&c.set("cursor",r.cursor);const l=await t(`/webhook/deliveries?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.endpoint_id,r.status,r.event_name,r.limit,r.cursor]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.endpoint_id&&c.set("endpoint_id",r.endpoint_id),r.status&&c.set("status",r.status),r.event_name&&c.set("event_name",r.event_name),r.limit&&c.set("limit",r.limit.toString()),r.cursor&&c.set("cursor",r.cursor),`wacht-webhook-deliveries?${c.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:s,error:o,refetch:()=>h()}}function zf(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.endpoint_id&&c.set("endpoint_id",r.endpoint_id),r.fields&&r.fields.length>0&&c.set("fields",r.fields.join(","));const l=await t(`/webhook/analytics?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.start_date,r.end_date,r.endpoint_id,r.fields]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.endpoint_id&&c.set("endpoint_id",r.endpoint_id),r.fields&&r.fields.length>0&&c.set("fields",r.fields.join(",")),`wacht-webhook-analytics?${c.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{analytics:n||null,loading:s,error:o,refetch:()=>h()}}function $f(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.interval&&c.set("interval",r.interval),r.endpoint_id&&c.set("endpoint_id",r.endpoint_id);const l=await t(`/webhook/analytics/timeseries?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.start_date,r.end_date,r.interval,r.endpoint_id]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.interval&&c.set("interval",r.interval),r.endpoint_id&&c.set("endpoint_id",r.endpoint_id),`wacht-webhook-timeseries?${c.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{timeseries:(n==null?void 0:n.data)||[],interval:(n==null?void 0:n.interval)||"hour",loading:s,error:o,refetch:()=>h()}}function Ef(r){const{client:t}=me(),[a,n]=i.useState(!r),[o,s]=i.useState(!!r),[h,c]=i.useState(null),l=i.useRef(!1),u=i.useRef(!1),d=i.useRef(null),f=a,g=i.useCallback(async()=>{const w=await t("/api-auth/session",{method:"GET"});if(!w.ok)throw w.status===401||w.status===403?new Error("NO_SESSION"):new Error("Failed to fetch API auth app session");return(await N(w)).data},[t]),{data:m,error:x,isLoading:v,mutate:C}=_e(f?"wacht-api-auth-app-session":null,g,{revalidateOnFocus:!1,shouldRetryOnError:!1});i.useEffect(()=>{if(!r||l.current||u.current||d.current===r)return;d.current=r,(async()=>{u.current=!0,s(!0);try{(await t(`/session/ticket/exchange?ticket=${encodeURIComponent(r)}`,{method:"GET"})).ok?(l.current=!0,n(!0)):c(new Error("Failed to exchange ticket"))}catch(b){c(b instanceof Error?b:new Error("Failed to exchange ticket"))}finally{s(!1),u.current=!1}})()},[r,t]);const j=!x||x.message!=="NO_SESSION",_=h||(x&&x.message!=="NO_SESSION"?x:null);return{hasSession:j,sessionLoading:o||f&&v,sessionError:_,sessionId:(m==null?void 0:m.session_id)||null,apiAuthApp:(m==null?void 0:m.api_auth_app)||null,ticketExchanged:a,ticketLoading:o,refetch:async()=>{await C()}}}function Rf(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const d=new URLSearchParams;r.status&&d.set("status",r.status);const f=await t(`/api-auth/keys${d.toString()?`?${d.toString()}`:""}`,{method:"GET"});return(await N(f)).data},[t,r.status]),{data:n,error:o,isLoading:s,mutate:h}=_e(`wacht-api-auth-keys:${r.status||"all"}`,a,{revalidateOnFocus:!1,shouldRetryOnError:!1}),c=i.useCallback(async d=>{const f=new URLSearchParams;f.set("name",d.name),d.expires_at&&f.set("expires_at",d.expires_at);const g=await t("/api-auth/keys",{method:"POST",body:f}),m=await N(g);return await h(),m.data},[t,h]),l=i.useCallback(async d=>{const f=await t(`/api-auth/keys/${d.key_id}/rotate`,{method:"POST"}),g=await N(f);return await h(),g.data},[t,h]),u=i.useCallback(async d=>{const f=new URLSearchParams;d.reason&&f.set("reason",d.reason),await t(`/api-auth/keys/${d.key_id}/revoke`,{method:"POST",body:f}),await h()},[t,h]);return{keys:n||[],createKey:c,rotateKey:l,revokeKey:u,loading:s,error:o,refetch:()=>h()}}function Pf(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.limit&&c.set("limit",r.limit.toString()),r.cursor&&c.set("cursor",r.cursor),r.outcome&&c.set("outcome",r.outcome),r.key_id&&c.set("key_id",r.key_id),r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date);const l=await t(`/api-auth/audit/logs?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.limit,r.cursor,r.outcome,r.key_id,r.start_date,r.end_date]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.limit&&c.set("limit",r.limit.toString()),r.cursor&&c.set("cursor",r.cursor),r.outcome&&c.set("outcome",r.outcome),r.key_id&&c.set("key_id",r.key_id),r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),`wacht-api-auth-audit-logs?${c.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{logs:(n==null?void 0:n.data)||[],limit:(n==null?void 0:n.limit)||r.limit||0,has_more:(n==null?void 0:n.has_more)||!1,next_cursor:n==null?void 0:n.next_cursor,loading:s,error:o,refetch:()=>h()}}function Tf(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.key_id&&c.set("key_id",r.key_id),r.include_top_keys&&c.set("include_top_keys","true"),r.include_top_paths&&c.set("include_top_paths","true"),r.include_blocked_reasons&&c.set("include_blocked_reasons","true"),r.include_rate_limits&&c.set("include_rate_limits","true"),r.top_limit&&c.set("top_limit",r.top_limit.toString());const l=await t(`/api-auth/audit/analytics?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.start_date,r.end_date,r.key_id,r.include_top_keys,r.include_top_paths,r.include_blocked_reasons,r.include_rate_limits,r.top_limit]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.key_id&&c.set("key_id",r.key_id),r.include_top_keys&&c.set("include_top_keys","true"),r.include_top_paths&&c.set("include_top_paths","true"),r.include_blocked_reasons&&c.set("include_blocked_reasons","true"),r.include_rate_limits&&c.set("include_rate_limits","true"),r.top_limit&&c.set("top_limit",r.top_limit.toString()),`wacht-api-auth-audit-analytics?${c.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{analytics:n||null,loading:s,error:o,refetch:()=>h()}}function Af(r={}){const{client:t}=me(),a=i.useCallback(async()=>{const c=new URLSearchParams;r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.interval&&c.set("interval",r.interval),r.key_id&&c.set("key_id",r.key_id);const l=await t(`/api-auth/audit/timeseries?${c.toString()}`,{method:"GET"});return(await N(l)).data},[t,r.start_date,r.end_date,r.interval,r.key_id]),{data:n,error:o,isLoading:s,mutate:h}=_e(()=>{const c=new URLSearchParams;return r.start_date&&c.set("start_date",r.start_date),r.end_date&&c.set("end_date",r.end_date),r.interval&&c.set("interval",r.interval),r.key_id&&c.set("key_id",r.key_id),`wacht-api-auth-audit-timeseries?${c.toString()}`},a,{revalidateOnFocus:!1,shouldRetryOnError:!1});return{timeseries:(n==null?void 0:n.data)||[],interval:(n==null?void 0:n.interval)||r.interval||"hour",loading:s,error:o,refetch:()=>h()}}const _d=()=>{const{client:r}=me(),[t,a]=i.useState(!1),[n,o]=i.useState(null),[s,h]=i.useState(null),c=i.useCallback(async u=>{a(!0),o(null),h(null);try{const d=new FormData;d.append("token",u);const f=await r("/organizations/invitations/accept",{method:"POST",body:d}),m=(await N(f)).data;return h(m),m.error_code&&o(m.message||"Failed to accept invitation"),m}catch(d){const f=d.message||"Failed to accept invitation";o(f);const g={error_code:"NETWORK_ERROR",message:f};return h(g),g}finally{a(!1)}},[r]),l=i.useCallback(()=>{o(null),h(null)},[]);return{acceptInvitation:c,invitationData:s,loading:t,error:n,reset:l}},If=({children:r})=>{const{loading:t}=ye();return t?null:e.jsx(e.Fragment,{children:r})},Lf=({children:r})=>{const{loading:t}=ye();return t?e.jsx(e.Fragment,{children:r}):null};var fr=function(){return fr=Object.assign||function(t){for(var a,n=1,o=arguments.length;n<o;n++){a=arguments[n];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(t[s]=a[s])}return t},fr.apply(this,arguments)};function Pt(r,t,a){if(a||arguments.length===2)for(var n=0,o=t.length,s;n<o;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return r.concat(s||Array.prototype.slice.call(t))}function Mf(r){var t=Object.create(null);return function(a){return t[a]===void 0&&(t[a]=r(a)),t[a]}}var Of=/^((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)-.*))$/,Df=Mf(function(r){return Of.test(r)||r.charCodeAt(0)===111&&r.charCodeAt(1)===110&&r.charCodeAt(2)<91}),Ve="-ms-",Ra="-moz-",Le="-webkit-",kd="comm",Un="rule",Cs="decl",Ff="@import",Nf="@namespace",Cd="@keyframes",Uf="@layer",Sd=Math.abs,Ss=String.fromCharCode,ts=Object.assign;function Bf(r,t){return tr(r,0)^45?(((t<<2^tr(r,0))<<2^tr(r,1))<<2^tr(r,2))<<2^tr(r,3):0}function zd(r){return r.trim()}function qr(r,t){return(r=t.exec(r))?r[0]:r}function Ce(r,t,a){return r.replace(t,a)}function _n(r,t,a){return r.indexOf(t,a)}function tr(r,t){return r.charCodeAt(t)|0}function Tt(r,t,a){return r.slice(t,a)}function _r(r){return r.length}function $d(r){return r.length}function Ca(r,t){return t.push(r),r}function Wf(r,t){return r.map(t).join("")}function yi(r,t){return r.filter(function(a){return!qr(a,t)})}var Bn=1,Xt=1,Ed=0,br=0,er=0,ca="";function Wn(r,t,a,n,o,s,h,c){return{value:r,root:t,parent:a,type:n,props:o,children:s,line:Bn,column:Xt,length:h,return:"",siblings:c}}function nt(r,t){return ts(Wn("",null,null,"",null,null,0,r.siblings),r,{length:-r.length},t)}function Ut(r){for(;r.root;)r=nt(r.root,{children:[r]});Ca(r,r.siblings)}function Vf(){return er}function Gf(){return er=br>0?tr(ca,--br):0,Xt--,er===10&&(Xt=1,Bn--),er}function Cr(){return er=br<Ed?tr(ca,br++):0,Xt++,er===10&&(Xt=1,Bn++),er}function it(){return tr(ca,br)}function kn(){return br}function Vn(r,t){return Tt(ca,r,t)}function Ia(r){switch(r){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 Hf(r){return Bn=Xt=1,Ed=_r(ca=r),br=0,[]}function qf(r){return ca="",r}function po(r){return zd(Vn(br-1,as(r===91?r+2:r===40?r+1:r)))}function Kf(r){for(;(er=it())&&er<33;)Cr();return Ia(r)>2||Ia(er)>3?"":" "}function Yf(r,t){for(;--t&&Cr()&&!(er<48||er>102||er>57&&er<65||er>70&&er<97););return Vn(r,kn()+(t<6&&it()==32&&Cr()==32))}function as(r){for(;Cr();)switch(er){case r:return br;case 34:case 39:r!==34&&r!==39&&as(er);break;case 40:r===41&&as(r);break;case 92:Cr();break}return br}function Qf(r,t){for(;Cr()&&r+er!==57;)if(r+er===84&&it()===47)break;return"/*"+Vn(t,br-1)+"*"+Ss(r===47?r:Cr())}function Zf(r){for(;!Ia(it());)Cr();return Vn(r,br)}function Jf(r){return qf(Cn("",null,null,null,[""],r=Hf(r),0,[0],r))}function Cn(r,t,a,n,o,s,h,c,l){for(var u=0,d=0,f=h,g=0,m=0,x=0,v=1,C=1,j=1,_=0,z="",w=o,b=s,E=n,y=z;C;)switch(x=_,_=Cr()){case 40:if(x!=108&&tr(y,f-1)==58){_n(y+=Ce(po(_),"&","&\f"),"&\f",Sd(u?c[u-1]:0))!=-1&&(j=-1);break}case 34:case 39:case 91:y+=po(_);break;case 9:case 10:case 13:case 32:y+=Kf(x);break;case 92:y+=Yf(kn()-1,7);continue;case 47:switch(it()){case 42:case 47:Ca(Xf(Qf(Cr(),kn()),t,a,l),l),(Ia(x||1)==5||Ia(it()||1)==5)&&_r(y)&&Tt(y,-1,void 0)!==" "&&(y+=" ");break;default:y+="/"}break;case 123*v:c[u++]=_r(y)*j;case 125*v:case 59:case 0:switch(_){case 0:case 125:C=0;case 59+d:j==-1&&(y=Ce(y,/\f/g,"")),m>0&&(_r(y)-f||v===0&&x===47)&&Ca(m>32?ji(y+";",n,a,f-1,l):ji(Ce(y," ","")+";",n,a,f-2,l),l);break;case 59:y+=";";default:if(Ca(E=wi(y,t,a,u,d,o,c,z,w=[],b=[],f,s),s),_===123)if(d===0)Cn(y,t,E,E,w,s,f,c,b);else{switch(g){case 99:if(tr(y,3)===110)break;case 108:if(tr(y,2)===97)break;default:d=0;case 100:case 109:case 115:}d?Cn(r,E,E,n&&Ca(wi(r,E,E,0,0,o,c,z,o,w=[],f,b),b),o,b,f,c,n?w:b):Cn(y,E,E,E,[""],b,0,c,b)}}u=d=m=0,v=j=1,z=y="",f=h;break;case 58:f=1+_r(y),m=x;default:if(v<1){if(_==123)--v;else if(_==125&&v++==0&&Gf()==125)continue}switch(y+=Ss(_),_*v){case 38:j=d>0?1:(y+="\f",-1);break;case 44:c[u++]=(_r(y)-1)*j,j=1;break;case 64:it()===45&&(y+=po(Cr())),g=it(),d=f=_r(z=y+=Zf(kn())),_++;break;case 45:x===45&&_r(y)==2&&(v=0)}}return s}function wi(r,t,a,n,o,s,h,c,l,u,d,f){for(var g=o-1,m=o===0?s:[""],x=$d(m),v=0,C=0,j=0;v<n;++v)for(var _=0,z=Tt(r,g+1,g=Sd(C=h[v])),w=r;_<x;++_)(w=zd(C>0?m[_]+" "+z:Ce(z,/&\f/g,m[_])))&&(l[j++]=w);return Wn(r,t,a,o===0?Un:c,l,u,d,f)}function Xf(r,t,a,n){return Wn(r,t,a,kd,Ss(Vf()),Tt(r,2,-2),0,n)}function ji(r,t,a,n,o){return Wn(r,t,a,Cs,Tt(r,0,n),Tt(r,n+1,-1),n,o)}function Rd(r,t,a){switch(Bf(r,t)){case 5103:return Le+"print-"+r+r;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 Le+r+r;case 4855:return Le+r.replace("add","source-over").replace("substract","source-out").replace("intersect","source-in").replace("exclude","xor")+r;case 4789:return Ra+r+r;case 5349:case 4246:case 4810:case 6968:case 2756:return Le+r+Ra+r+Ve+r+r;case 5936:switch(tr(r,t+11)){case 114:return Le+r+Ve+Ce(r,/[svh]\w+-[tblr]{2}/,"tb")+r;case 108:return Le+r+Ve+Ce(r,/[svh]\w+-[tblr]{2}/,"tb-rl")+r;case 45:return Le+r+Ve+Ce(r,/[svh]\w+-[tblr]{2}/,"lr")+r}case 6828:case 4268:case 2903:return Le+r+Ve+r+r;case 6165:return Le+r+Ve+"flex-"+r+r;case 5187:return Le+r+Ce(r,/(\w+).+(:[^]+)/,Le+"box-$1$2"+Ve+"flex-$1$2")+r;case 5443:return Le+r+Ve+"flex-item-"+Ce(r,/flex-|-self/g,"")+(qr(r,/flex-|baseline/)?"":Ve+"grid-row-"+Ce(r,/flex-|-self/g,""))+r;case 4675:return Le+r+Ve+"flex-line-pack"+Ce(r,/align-content|flex-|-self/g,"")+r;case 5548:return Le+r+Ve+Ce(r,"shrink","negative")+r;case 5292:return Le+r+Ve+Ce(r,"basis","preferred-size")+r;case 6060:return Le+"box-"+Ce(r,"-grow","")+Le+r+Ve+Ce(r,"grow","positive")+r;case 4554:return Le+Ce(r,/([^-])(transform)/g,"$1"+Le+"$2")+r;case 6187:return Ce(Ce(Ce(r,/(zoom-|grab)/,Le+"$1"),/(image-set)/,Le+"$1"),r,"")+r;case 5495:case 3959:return Ce(r,/(image-set\([^]*)/,Le+"$1$`$1");case 4968:return Ce(Ce(r,/(.+:)(flex-)?(.*)/,Le+"box-pack:$3"+Ve+"flex-pack:$3"),/space-between/,"justify")+Le+r+r;case 4200:if(!qr(r,/flex-|baseline/))return Ve+"grid-column-align"+Tt(r,t)+r;break;case 2592:case 3360:return Ve+Ce(r,"template-","")+r;case 4384:case 3616:return a&&a.some(function(n,o){return t=o,qr(n.props,/grid-\w+-end/)})?~_n(r+(a=a[t].value),"span",0)?r:Ve+Ce(r,"-start","")+r+Ve+"grid-row-span:"+(~_n(a,"span",0)?qr(a,/\d+/):+qr(a,/\d+/)-+qr(r,/\d+/))+";":Ve+Ce(r,"-start","")+r;case 4896:case 4128:return a&&a.some(function(n){return qr(n.props,/grid-\w+-start/)})?r:Ve+Ce(Ce(r,"-end","-span"),"span ","")+r;case 4095:case 3583:case 4068:case 2532:return Ce(r,/(.+)-inline(.+)/,Le+"$1$2")+r;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(_r(r)-1-t>6)switch(tr(r,t+1)){case 109:if(tr(r,t+4)!==45)break;case 102:return Ce(r,/(.+:)(.+)-([^]+)/,"$1"+Le+"$2-$3$1"+Ra+(tr(r,t+3)==108?"$3":"$2-$3"))+r;case 115:return~_n(r,"stretch",0)?Rd(Ce(r,"stretch","fill-available"),t,a)+r:r}break;case 5152:case 5920:return Ce(r,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(n,o,s,h,c,l,u){return Ve+o+":"+s+u+(h?Ve+o+"-span:"+(c?l:+l-+s)+u:"")+r});case 4949:if(tr(r,t+6)===121)return Ce(r,":",":"+Le)+r;break;case 6444:switch(tr(r,tr(r,14)===45?18:11)){case 120:return Ce(r,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+Le+(tr(r,14)===45?"inline-":"")+"box$3$1"+Le+"$2$3$1"+Ve+"$2box$3")+r;case 100:return Ce(r,":",":"+Ve)+r}break;case 5719:case 2647:case 2135:case 3927:case 2391:return Ce(r,"scroll-","scroll-snap-")+r}return r}function Tn(r,t){for(var a="",n=0;n<r.length;n++)a+=t(r[n],n,r,t)||"";return a}function eg(r,t,a,n){switch(r.type){case Uf:if(r.children.length)break;case Ff:case Nf:case Cs:return r.return=r.return||r.value;case kd:return"";case Cd:return r.return=r.value+"{"+Tn(r.children,n)+"}";case Un:if(!_r(r.value=r.props.join(",")))return""}return _r(a=Tn(r.children,n))?r.return=r.value+"{"+a+"}":""}function rg(r){var t=$d(r);return function(a,n,o,s){for(var h="",c=0;c<t;c++)h+=r[c](a,n,o,s)||"";return h}}function tg(r){return function(t){t.root||(t=t.return)&&r(t)}}function ag(r,t,a,n){if(r.length>-1&&!r.return)switch(r.type){case Cs:r.return=Rd(r.value,r.length,a);return;case Cd:return Tn([nt(r,{value:Ce(r.value,"@","@"+Le)})],n);case Un:if(r.length)return Wf(a=r.props,function(o){switch(qr(o,n=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":Ut(nt(r,{props:[Ce(o,/:(read-\w+)/,":"+Ra+"$1")]})),Ut(nt(r,{props:[o]})),ts(r,{props:yi(a,n)});break;case"::placeholder":Ut(nt(r,{props:[Ce(o,/:(plac\w+)/,":"+Le+"input-$1")]})),Ut(nt(r,{props:[Ce(o,/:(plac\w+)/,":"+Ra+"$1")]})),Ut(nt(r,{props:[Ce(o,/:(plac\w+)/,Ve+"input-$1")]})),Ut(nt(r,{props:[o]})),ts(r,{props:yi(a,n)});break}return""})}}var ng={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},At=typeof process<"u"&&process.env!==void 0&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",Pd="active",Td="data-styled-version",Gn="6.3.11",zs=`/*!sc*/
|
|
19
19
|
`,Pa=typeof window<"u"&&typeof document<"u",og=!!(typeof SC_DISABLE_SPEEDY=="boolean"?SC_DISABLE_SPEEDY:typeof process<"u"&&process.env!==void 0&&process.env.REACT_APP_SC_DISABLE_SPEEDY!==void 0&&process.env.REACT_APP_SC_DISABLE_SPEEDY!==""?process.env.REACT_APP_SC_DISABLE_SPEEDY!=="false"&&process.env.REACT_APP_SC_DISABLE_SPEEDY:typeof process<"u"&&process.env!==void 0&&process.env.SC_DISABLE_SPEEDY!==void 0&&process.env.SC_DISABLE_SPEEDY!==""?process.env.SC_DISABLE_SPEEDY!=="false"&&process.env.SC_DISABLE_SPEEDY:process.env.NODE_ENV!=="production"),sg=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.
|