@grackle-ai/web 0.108.3 → 0.110.1

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.
@@ -1,754 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/KnowledgePage--fPNWRzR.js","assets/dagview-tHPW3Rz3.js","assets/grpc-DkqZhsre.js","assets/markdown-Yr3vTPLR.js","assets/KnowledgePage-BmY14aDt.css"])))=>i.map(i=>d[i]);
2
- import{r as w2,a as N2,b as y,j as a,d as fy,H as py,P as my,i as C2,B as E2,c as A2,C as D2,M as R2,e as M2}from"./dagview-tHPW3Rz3.js";import{c as I2,a as Cd,G as O2,b as L2,d as B2,e as $2,f as z2,M as H2,A as E_,D as A_,W as P2,O as U2,g as V2,C as da,h as D_,i as R_,w as q2,t as G2,p as $c,j as F2,R as zr,S as hy}from"./grpc-DkqZhsre.js";import{v as Z2,r as K2,t as zc,i as Y2,f as J2,M as Ed,a as Ad}from"./markdown-Yr3vTPLR.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))r(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const u of d.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&r(u)}).observe(document,{childList:!0,subtree:!0});function o(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerPolicy&&(d.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?d.credentials="include":c.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function r(c){if(c.ep)return;c.ep=!0;const d=o(c);fetch(c.href,d)}})();var tp={exports:{}},Hr={},np={exports:{}},sp={};/**
3
- * @license React
4
- * scheduler.production.js
5
- *
6
- * Copyright (c) Meta Platforms, Inc. and affiliates.
7
- *
8
- * This source code is licensed under the MIT license found in the
9
- * LICENSE file in the root directory of this source tree.
10
- */var gy;function W2(){return gy||(gy=1,(function(t){function s(B,R){var Z=B.length;B.push(R);e:for(;0<Z;){var me=Z-1>>>1,q=B[me];if(0<c(q,R))B[me]=R,B[Z]=q,Z=me;else break e}}function o(B){return B.length===0?null:B[0]}function r(B){if(B.length===0)return null;var R=B[0],Z=B.pop();if(Z!==R){B[0]=Z;e:for(var me=0,q=B.length,le=q>>>1;me<le;){var de=2*(me+1)-1,xe=B[de],ke=de+1,Ze=B[ke];if(0>c(xe,Z))ke<q&&0>c(Ze,xe)?(B[me]=Ze,B[ke]=Z,me=ke):(B[me]=xe,B[de]=Z,me=de);else if(ke<q&&0>c(Ze,Z))B[me]=Ze,B[ke]=Z,me=ke;else break e}}return R}function c(B,R){var Z=B.sortIndex-R.sortIndex;return Z!==0?Z:B.id-R.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;t.unstable_now=function(){return d.now()}}else{var u=Date,p=u.now();t.unstable_now=function(){return u.now()-p}}var m=[],g=[],v=1,_=null,b=3,x=!1,S=!1,j=!1,w=!1,T=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,A=typeof setImmediate<"u"?setImmediate:null;function L(B){for(var R=o(g);R!==null;){if(R.callback===null)r(g);else if(R.startTime<=B)r(g),R.sortIndex=R.expirationTime,s(m,R);else break;R=o(g)}}function E(B){if(j=!1,L(B),!S)if(o(m)!==null)S=!0,M||(M=!0,Q());else{var R=o(g);R!==null&&re(E,R.startTime-B)}}var M=!1,H=-1,D=5,z=-1;function Y(){return w?!0:!(t.unstable_now()-z<D)}function V(){if(w=!1,M){var B=t.unstable_now();z=B;var R=!0;try{e:{S=!1,j&&(j=!1,C(H),H=-1),x=!0;var Z=b;try{t:{for(L(B),_=o(m);_!==null&&!(_.expirationTime>B&&Y());){var me=_.callback;if(typeof me=="function"){_.callback=null,b=_.priorityLevel;var q=me(_.expirationTime<=B);if(B=t.unstable_now(),typeof q=="function"){_.callback=q,L(B),R=!0;break t}_===o(m)&&r(m),L(B)}else r(m);_=o(m)}if(_!==null)R=!0;else{var le=o(g);le!==null&&re(E,le.startTime-B),R=!1}}break e}finally{_=null,b=Z,x=!1}R=void 0}}finally{R?Q():M=!1}}}var Q;if(typeof A=="function")Q=function(){A(V)};else if(typeof MessageChannel<"u"){var ge=new MessageChannel,X=ge.port2;ge.port1.onmessage=V,Q=function(){X.postMessage(null)}}else Q=function(){T(V,0)};function re(B,R){H=T(function(){B(t.unstable_now())},R)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(B){B.callback=null},t.unstable_forceFrameRate=function(B){0>B||125<B?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):D=0<B?Math.floor(1e3/B):5},t.unstable_getCurrentPriorityLevel=function(){return b},t.unstable_next=function(B){switch(b){case 1:case 2:case 3:var R=3;break;default:R=b}var Z=b;b=R;try{return B()}finally{b=Z}},t.unstable_requestPaint=function(){w=!0},t.unstable_runWithPriority=function(B,R){switch(B){case 1:case 2:case 3:case 4:case 5:break;default:B=3}var Z=b;b=B;try{return R()}finally{b=Z}},t.unstable_scheduleCallback=function(B,R,Z){var me=t.unstable_now();switch(typeof Z=="object"&&Z!==null?(Z=Z.delay,Z=typeof Z=="number"&&0<Z?me+Z:me):Z=me,B){case 1:var q=-1;break;case 2:q=250;break;case 5:q=1073741823;break;case 4:q=1e4;break;default:q=5e3}return q=Z+q,B={id:v++,callback:R,priorityLevel:B,startTime:Z,expirationTime:q,sortIndex:-1},Z>me?(B.sortIndex=Z,s(g,B),o(m)===null&&B===o(g)&&(j?(C(H),H=-1):j=!0,re(E,Z-me))):(B.sortIndex=q,s(m,B),S||x||(S=!0,M||(M=!0,Q()))),B},t.unstable_shouldYield=Y,t.unstable_wrapCallback=function(B){var R=b;return function(){var Z=b;b=R;try{return B.apply(this,arguments)}finally{b=Z}}}})(sp)),sp}var vy;function X2(){return vy||(vy=1,np.exports=W2()),np.exports}/**
11
- * @license React
12
- * react-dom-client.production.js
13
- *
14
- * Copyright (c) Meta Platforms, Inc. and affiliates.
15
- *
16
- * This source code is licensed under the MIT license found in the
17
- * LICENSE file in the root directory of this source tree.
18
- */var yy;function Q2(){if(yy)return Hr;yy=1;var t=X2(),s=w2(),o=N2();function r(e){var n="https://react.dev/errors/"+e;if(1<arguments.length){n+="?args[]="+encodeURIComponent(arguments[1]);for(var i=2;i<arguments.length;i++)n+="&args[]="+encodeURIComponent(arguments[i])}return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function c(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function d(e){var n=e,i=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(i=n.return),e=n.return;while(e)}return n.tag===3?i:null}function u(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function p(e){if(e.tag===31){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function m(e){if(d(e)!==e)throw Error(r(188))}function g(e){var n=e.alternate;if(!n){if(n=d(e),n===null)throw Error(r(188));return n!==e?null:e}for(var i=e,l=n;;){var f=i.return;if(f===null)break;var h=f.alternate;if(h===null){if(l=f.return,l!==null){i=l;continue}break}if(f.child===h.child){for(h=f.child;h;){if(h===i)return m(f),e;if(h===l)return m(f),n;h=h.sibling}throw Error(r(188))}if(i.return!==l.return)i=f,l=h;else{for(var k=!1,N=f.child;N;){if(N===i){k=!0,i=f,l=h;break}if(N===l){k=!0,l=f,i=h;break}N=N.sibling}if(!k){for(N=h.child;N;){if(N===i){k=!0,i=h,l=f;break}if(N===l){k=!0,l=h,i=f;break}N=N.sibling}if(!k)throw Error(r(189))}}if(i.alternate!==l)throw Error(r(190))}if(i.tag!==3)throw Error(r(188));return i.stateNode.current===i?e:n}function v(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e;for(e=e.child;e!==null;){if(n=v(e),n!==null)return n;e=e.sibling}return null}var _=Object.assign,b=Symbol.for("react.element"),x=Symbol.for("react.transitional.element"),S=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),w=Symbol.for("react.strict_mode"),T=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),A=Symbol.for("react.context"),L=Symbol.for("react.forward_ref"),E=Symbol.for("react.suspense"),M=Symbol.for("react.suspense_list"),H=Symbol.for("react.memo"),D=Symbol.for("react.lazy"),z=Symbol.for("react.activity"),Y=Symbol.for("react.memo_cache_sentinel"),V=Symbol.iterator;function Q(e){return e===null||typeof e!="object"?null:(e=V&&e[V]||e["@@iterator"],typeof e=="function"?e:null)}var ge=Symbol.for("react.client.reference");function X(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ge?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case j:return"Fragment";case T:return"Profiler";case w:return"StrictMode";case E:return"Suspense";case M:return"SuspenseList";case z:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case S:return"Portal";case A:return e.displayName||"Context";case C:return(e._context.displayName||"Context")+".Consumer";case L:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case H:return n=e.displayName||null,n!==null?n:X(e.type)||"Memo";case D:n=e._payload,e=e._init;try{return X(e(n))}catch{}}return null}var re=Array.isArray,B=s.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R=o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Z={pending:!1,data:null,method:null,action:null},me=[],q=-1;function le(e){return{current:e}}function de(e){0>q||(e.current=me[q],me[q]=null,q--)}function xe(e,n){q++,me[q]=e.current,e.current=n}var ke=le(null),Ze=le(null),Xe=le(null),Se=le(null);function fe(e,n){switch(xe(Xe,n),xe(Ze,e),xe(ke,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?O0(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)n=O0(n),e=L0(n,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}de(ke),xe(ke,e)}function be(){de(ke),de(Ze),de(Xe)}function Vt(e){e.memoizedState!==null&&xe(Se,e);var n=ke.current,i=L0(n,e.type);n!==i&&(xe(Ze,e),xe(ke,i))}function ie(e){Ze.current===e&&(de(ke),de(Ze)),Se.current===e&&(de(Se),Or._currentValue=Z)}var We,qt;function ne(e){if(We===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\n( *(at )?)/);We=n&&n[1]||"",qt=-1<i.stack.indexOf(`
19
- at`)?" (<anonymous>)":-1<i.stack.indexOf("@")?"@unknown:0:0":""}return`
20
- `+We+e+qt}var Tt=!1;function Lt(e,n){if(!e||Tt)return"";Tt=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(n){var ae=function(){throw Error()};if(Object.defineProperty(ae.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ae,[])}catch(J){var K=J}Reflect.construct(e,[],ae)}else{try{ae.call()}catch(J){K=J}e.call(ae.prototype)}}else{try{throw Error()}catch(J){K=J}(ae=e())&&typeof ae.catch=="function"&&ae.catch(function(){})}}catch(J){if(J&&K&&typeof J.stack=="string")return[J.stack,K.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var f=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");f&&f.configurable&&Object.defineProperty(l.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var h=l.DetermineComponentFrameRoot(),k=h[0],N=h[1];if(k&&N){var I=k.split(`
21
- `),F=N.split(`
22
- `);for(f=l=0;l<I.length&&!I[l].includes("DetermineComponentFrameRoot");)l++;for(;f<F.length&&!F[f].includes("DetermineComponentFrameRoot");)f++;if(l===I.length||f===F.length)for(l=I.length-1,f=F.length-1;1<=l&&0<=f&&I[l]!==F[f];)f--;for(;1<=l&&0<=f;l--,f--)if(I[l]!==F[f]){if(l!==1||f!==1)do if(l--,f--,0>f||I[l]!==F[f]){var ee=`
23
- `+I[l].replace(" at new "," at ");return e.displayName&&ee.includes("<anonymous>")&&(ee=ee.replace("<anonymous>",e.displayName)),ee}while(1<=l&&0<=f);break}}}finally{Tt=!1,Error.prepareStackTrace=i}return(i=e?e.displayName||e.name:"")?ne(i):""}function Bt(e,n){switch(e.tag){case 26:case 27:case 5:return ne(e.type);case 16:return ne("Lazy");case 13:return e.child!==n&&n!==null?ne("Suspense Fallback"):ne("Suspense");case 19:return ne("SuspenseList");case 0:case 15:return Lt(e.type,!1);case 11:return Lt(e.type.render,!1);case 1:return Lt(e.type,!0);case 31:return ne("Activity");default:return""}}function Pe(e){try{var n="",i=null;do n+=Bt(e,i),i=e,e=e.return;while(e);return n}catch(l){return`
24
- Error generating stack: `+l.message+`
25
- `+l.stack}}var ln=Object.prototype.hasOwnProperty,ga=t.unstable_scheduleCallback,fs=t.unstable_cancelCallback,ti=t.unstable_shouldYield,va=t.unstable_requestPaint,tn=t.unstable_now,Hi=t.unstable_getCurrentPriorityLevel,ya=t.unstable_ImmediatePriority,ni=t.unstable_UserBlockingPriority,js=t.unstable_NormalPriority,Pi=t.unstable_LowPriority,qn=t.unstable_IdlePriority,Ee=t.log,ze=t.unstable_setDisableYieldValue,nn=null,wt=null;function yn(e){if(typeof Ee=="function"&&ze(e),wt&&typeof wt.setStrictMode=="function")try{wt.setStrictMode(nn,e)}catch{}}var sn=Math.clz32?Math.clz32:qi,Ui=Math.log,Vi=Math.LN2;function qi(e){return e>>>=0,e===0?32:31-(Ui(e)/Vi|0)|0}var si=256,ai=262144,ii=4194304;function Ts(e){var n=e&42;if(n!==0)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function oi(e,n,i){var l=e.pendingLanes;if(l===0)return 0;var f=0,h=e.suspendedLanes,k=e.pingedLanes;e=e.warmLanes;var N=l&134217727;return N!==0?(l=N&~h,l!==0?f=Ts(l):(k&=N,k!==0?f=Ts(k):i||(i=N&~e,i!==0&&(f=Ts(i))))):(N=l&~h,N!==0?f=Ts(N):k!==0?f=Ts(k):i||(i=l&~e,i!==0&&(f=Ts(i)))),f===0?0:n!==0&&n!==f&&(n&h)===0&&(h=f&-f,i=n&-n,h>=i||h===32&&(i&4194048)!==0)?n:f}function ba(e,n){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)===0}function jl(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Tl(){var e=ii;return ii<<=1,(ii&62914560)===0&&(ii=4194304),e}function P(e){for(var n=[],i=0;31>i;i++)n.push(e);return n}function te(e,n){e.pendingLanes|=n,n!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ce(e,n,i,l,f,h){var k=e.pendingLanes;e.pendingLanes=i,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=i,e.entangledLanes&=i,e.errorRecoveryDisabledLanes&=i,e.shellSuspendCounter=0;var N=e.entanglements,I=e.expirationTimes,F=e.hiddenUpdates;for(i=k&~i;0<i;){var ee=31-sn(i),ae=1<<ee;N[ee]=0,I[ee]=-1;var K=F[ee];if(K!==null)for(F[ee]=null,ee=0;ee<K.length;ee++){var J=K[ee];J!==null&&(J.lane&=-536870913)}i&=~ae}l!==0&&pe(e,l,0),h!==0&&f===0&&e.tag!==0&&(e.suspendedLanes|=h&~(k&~n))}function pe(e,n,i){e.pendingLanes|=n,e.suspendedLanes&=~n;var l=31-sn(n);e.entangledLanes|=n,e.entanglements[l]=e.entanglements[l]|1073741824|i&261930}function ve(e,n){var i=e.entangledLanes|=n;for(e=e.entanglements;i;){var l=31-sn(i),f=1<<l;f&n|e[l]&n&&(e[l]|=n),i&=~f}}function qe(e,n){var i=n&-n;return i=(i&42)!==0?1:Te(i),(i&(e.suspendedLanes|n))!==0?0:i}function Te(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Me(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Qe(){var e=R.p;return e!==0?e:(e=window.event,e===void 0?32:iy(e.type))}function vt(e,n){var i=R.p;try{return R.p=e,n()}finally{R.p=i}}var He=Math.random().toString(36).slice(2),et="__reactFiber$"+He,ut="__reactProps$"+He,bt="__reactContainer$"+He,ws="__reactEvents$"+He,zs="__reactListeners$"+He,Yo="__reactHandles$"+He,kh="__reactResources$"+He,Jo="__reactMarker$"+He;function Fd(e){delete e[et],delete e[ut],delete e[ws],delete e[zs],delete e[Yo]}function Gi(e){var n=e[et];if(n)return n;for(var i=e.parentNode;i;){if(n=i[bt]||i[et]){if(i=n.alternate,n.child!==null||i!==null&&i.child!==null)for(e=V0(e);e!==null;){if(i=e[et])return i;e=V0(e)}return n}e=i,i=e.parentNode}return null}function Fi(e){if(e=e[et]||e[bt]){var n=e.tag;if(n===5||n===6||n===13||n===31||n===26||n===27||n===3)return e}return null}function Wo(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e.stateNode;throw Error(r(33))}function Zi(e){var n=e[kh];return n||(n=e[kh]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function an(e){e[Jo]=!0}var Sh=new Set,jh={};function ri(e,n){Ki(e,n),Ki(e+"Capture",n)}function Ki(e,n){for(jh[e]=n,e=0;e<n.length;e++)Sh.add(n[e])}var vk=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Th={},wh={};function yk(e){return ln.call(wh,e)?!0:ln.call(Th,e)?!1:vk.test(e)?wh[e]=!0:(Th[e]=!0,!1)}function wl(e,n,i){if(yk(n))if(i===null)e.removeAttribute(n);else{switch(typeof i){case"undefined":case"function":case"symbol":e.removeAttribute(n);return;case"boolean":var l=n.toLowerCase().slice(0,5);if(l!=="data-"&&l!=="aria-"){e.removeAttribute(n);return}}e.setAttribute(n,""+i)}}function Nl(e,n,i){if(i===null)e.removeAttribute(n);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttribute(n,""+i)}}function Hs(e,n,i,l){if(l===null)e.removeAttribute(i);else{switch(typeof l){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(i);return}e.setAttributeNS(n,i,""+l)}}function Gn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Nh(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function bk(e,n,i){var l=Object.getOwnPropertyDescriptor(e.constructor.prototype,n);if(!e.hasOwnProperty(n)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var f=l.get,h=l.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return f.call(this)},set:function(k){i=""+k,h.call(this,k)}}),Object.defineProperty(e,n,{enumerable:l.enumerable}),{getValue:function(){return i},setValue:function(k){i=""+k},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Zd(e){if(!e._valueTracker){var n=Nh(e)?"checked":"value";e._valueTracker=bk(e,n,""+e[n])}}function Ch(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var i=n.getValue(),l="";return e&&(l=Nh(e)?e.checked?"true":"false":e.value),e=l,e!==i?(n.setValue(e),!0):!1}function Cl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var _k=/[\n"\\]/g;function Fn(e){return e.replace(_k,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function Kd(e,n,i,l,f,h,k,N){e.name="",k!=null&&typeof k!="function"&&typeof k!="symbol"&&typeof k!="boolean"?e.type=k:e.removeAttribute("type"),n!=null?k==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+Gn(n)):e.value!==""+Gn(n)&&(e.value=""+Gn(n)):k!=="submit"&&k!=="reset"||e.removeAttribute("value"),n!=null?Yd(e,k,Gn(n)):i!=null?Yd(e,k,Gn(i)):l!=null&&e.removeAttribute("value"),f==null&&h!=null&&(e.defaultChecked=!!h),f!=null&&(e.checked=f&&typeof f!="function"&&typeof f!="symbol"),N!=null&&typeof N!="function"&&typeof N!="symbol"&&typeof N!="boolean"?e.name=""+Gn(N):e.removeAttribute("name")}function Eh(e,n,i,l,f,h,k,N){if(h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"&&(e.type=h),n!=null||i!=null){if(!(h!=="submit"&&h!=="reset"||n!=null)){Zd(e);return}i=i!=null?""+Gn(i):"",n=n!=null?""+Gn(n):i,N||n===e.value||(e.value=n),e.defaultValue=n}l=l??f,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=N?e.checked:!!l,e.defaultChecked=!!l,k!=null&&typeof k!="function"&&typeof k!="symbol"&&typeof k!="boolean"&&(e.name=k),Zd(e)}function Yd(e,n,i){n==="number"&&Cl(e.ownerDocument)===e||e.defaultValue===""+i||(e.defaultValue=""+i)}function Yi(e,n,i,l){if(e=e.options,n){n={};for(var f=0;f<i.length;f++)n["$"+i[f]]=!0;for(i=0;i<e.length;i++)f=n.hasOwnProperty("$"+e[i].value),e[i].selected!==f&&(e[i].selected=f),f&&l&&(e[i].defaultSelected=!0)}else{for(i=""+Gn(i),n=null,f=0;f<e.length;f++){if(e[f].value===i){e[f].selected=!0,l&&(e[f].defaultSelected=!0);return}n!==null||e[f].disabled||(n=e[f])}n!==null&&(n.selected=!0)}}function Ah(e,n,i){if(n!=null&&(n=""+Gn(n),n!==e.value&&(e.value=n),i==null)){e.defaultValue!==n&&(e.defaultValue=n);return}e.defaultValue=i!=null?""+Gn(i):""}function Dh(e,n,i,l){if(n==null){if(l!=null){if(i!=null)throw Error(r(92));if(re(l)){if(1<l.length)throw Error(r(93));l=l[0]}i=l}i==null&&(i=""),n=i}i=Gn(n),e.defaultValue=i,l=e.textContent,l===i&&l!==""&&l!==null&&(e.value=l),Zd(e)}function Ji(e,n){if(n){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=n;return}}e.textContent=n}var xk=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Rh(e,n,i){var l=n.indexOf("--")===0;i==null||typeof i=="boolean"||i===""?l?e.setProperty(n,""):n==="float"?e.cssFloat="":e[n]="":l?e.setProperty(n,i):typeof i!="number"||i===0||xk.has(n)?n==="float"?e.cssFloat=i:e[n]=(""+i).trim():e[n]=i+"px"}function Mh(e,n,i){if(n!=null&&typeof n!="object")throw Error(r(62));if(e=e.style,i!=null){for(var l in i)!i.hasOwnProperty(l)||n!=null&&n.hasOwnProperty(l)||(l.indexOf("--")===0?e.setProperty(l,""):l==="float"?e.cssFloat="":e[l]="");for(var f in n)l=n[f],n.hasOwnProperty(f)&&i[f]!==l&&Rh(e,f,l)}else for(var h in n)n.hasOwnProperty(h)&&Rh(e,h,n[h])}function Jd(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var kk=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Sk=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function El(e){return Sk.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function Ps(){}var Wd=null;function Xd(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Wi=null,Xi=null;function Ih(e){var n=Fi(e);if(n&&(e=n.stateNode)){var i=e[ut]||null;e:switch(e=n.stateNode,n.type){case"input":if(Kd(e,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name),n=i.name,i.type==="radio"&&n!=null){for(i=e;i.parentNode;)i=i.parentNode;for(i=i.querySelectorAll('input[name="'+Fn(""+n)+'"][type="radio"]'),n=0;n<i.length;n++){var l=i[n];if(l!==e&&l.form===e.form){var f=l[ut]||null;if(!f)throw Error(r(90));Kd(l,f.value,f.defaultValue,f.defaultValue,f.checked,f.defaultChecked,f.type,f.name)}}for(n=0;n<i.length;n++)l=i[n],l.form===e.form&&Ch(l)}break e;case"textarea":Ah(e,i.value,i.defaultValue);break e;case"select":n=i.value,n!=null&&Yi(e,!!i.multiple,n,!1)}}}var Qd=!1;function Oh(e,n,i){if(Qd)return e(n,i);Qd=!0;try{var l=e(n);return l}finally{if(Qd=!1,(Wi!==null||Xi!==null)&&(gc(),Wi&&(n=Wi,e=Xi,Xi=Wi=null,Ih(n),e)))for(n=0;n<e.length;n++)Ih(e[n])}}function Xo(e,n){var i=e.stateNode;if(i===null)return null;var l=i[ut]||null;if(l===null)return null;i=l[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(l=!l.disabled)||(e=e.type,l=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!l;break e;default:e=!1}if(e)return null;if(i&&typeof i!="function")throw Error(r(231,n,typeof i));return i}var Us=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),eu=!1;if(Us)try{var Qo={};Object.defineProperty(Qo,"passive",{get:function(){eu=!0}}),window.addEventListener("test",Qo,Qo),window.removeEventListener("test",Qo,Qo)}catch{eu=!1}var _a=null,tu=null,Al=null;function Lh(){if(Al)return Al;var e,n=tu,i=n.length,l,f="value"in _a?_a.value:_a.textContent,h=f.length;for(e=0;e<i&&n[e]===f[e];e++);var k=i-e;for(l=1;l<=k&&n[i-l]===f[h-l];l++);return Al=f.slice(e,1<l?1-l:void 0)}function Dl(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function Rl(){return!0}function Bh(){return!1}function jn(e){function n(i,l,f,h,k){this._reactName=i,this._targetInst=f,this.type=l,this.nativeEvent=h,this.target=k,this.currentTarget=null;for(var N in e)e.hasOwnProperty(N)&&(i=e[N],this[N]=i?i(h):h[N]);return this.isDefaultPrevented=(h.defaultPrevented!=null?h.defaultPrevented:h.returnValue===!1)?Rl:Bh,this.isPropagationStopped=Bh,this}return _(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var i=this.nativeEvent;i&&(i.preventDefault?i.preventDefault():typeof i.returnValue!="unknown"&&(i.returnValue=!1),this.isDefaultPrevented=Rl)},stopPropagation:function(){var i=this.nativeEvent;i&&(i.stopPropagation?i.stopPropagation():typeof i.cancelBubble!="unknown"&&(i.cancelBubble=!0),this.isPropagationStopped=Rl)},persist:function(){},isPersistent:Rl}),n}var li={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Ml=jn(li),er=_({},li,{view:0,detail:0}),jk=jn(er),nu,su,tr,Il=_({},er,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:iu,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==tr&&(tr&&e.type==="mousemove"?(nu=e.screenX-tr.screenX,su=e.screenY-tr.screenY):su=nu=0,tr=e),nu)},movementY:function(e){return"movementY"in e?e.movementY:su}}),$h=jn(Il),Tk=_({},Il,{dataTransfer:0}),wk=jn(Tk),Nk=_({},er,{relatedTarget:0}),au=jn(Nk),Ck=_({},li,{animationName:0,elapsedTime:0,pseudoElement:0}),Ek=jn(Ck),Ak=_({},li,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Dk=jn(Ak),Rk=_({},li,{data:0}),zh=jn(Rk),Mk={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Ik={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Ok={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Lk(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=Ok[e])?!!n[e]:!1}function iu(){return Lk}var Bk=_({},er,{key:function(e){if(e.key){var n=Mk[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=Dl(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Ik[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:iu,charCode:function(e){return e.type==="keypress"?Dl(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Dl(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),$k=jn(Bk),zk=_({},Il,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Hh=jn(zk),Hk=_({},er,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:iu}),Pk=jn(Hk),Uk=_({},li,{propertyName:0,elapsedTime:0,pseudoElement:0}),Vk=jn(Uk),qk=_({},Il,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Gk=jn(qk),Fk=_({},li,{newState:0,oldState:0}),Zk=jn(Fk),Kk=[9,13,27,32],ou=Us&&"CompositionEvent"in window,nr=null;Us&&"documentMode"in document&&(nr=document.documentMode);var Yk=Us&&"TextEvent"in window&&!nr,Ph=Us&&(!ou||nr&&8<nr&&11>=nr),Uh=" ",Vh=!1;function qh(e,n){switch(e){case"keyup":return Kk.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Qi=!1;function Jk(e,n){switch(e){case"compositionend":return Gh(n);case"keypress":return n.which!==32?null:(Vh=!0,Uh);case"textInput":return e=n.data,e===Uh&&Vh?null:e;default:return null}}function Wk(e,n){if(Qi)return e==="compositionend"||!ou&&qh(e,n)?(e=Lh(),Al=tu=_a=null,Qi=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return Ph&&n.locale!=="ko"?null:n.data;default:return null}}var Xk={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Fh(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!Xk[e.type]:n==="textarea"}function Zh(e,n,i,l){Wi?Xi?Xi.push(l):Xi=[l]:Wi=l,n=Sc(n,"onChange"),0<n.length&&(i=new Ml("onChange","change",null,i,l),e.push({event:i,listeners:n}))}var sr=null,ar=null;function Qk(e){E0(e,0)}function Ol(e){var n=Wo(e);if(Ch(n))return e}function Kh(e,n){if(e==="change")return n}var Yh=!1;if(Us){var ru;if(Us){var lu="oninput"in document;if(!lu){var Jh=document.createElement("div");Jh.setAttribute("oninput","return;"),lu=typeof Jh.oninput=="function"}ru=lu}else ru=!1;Yh=ru&&(!document.documentMode||9<document.documentMode)}function Wh(){sr&&(sr.detachEvent("onpropertychange",Xh),ar=sr=null)}function Xh(e){if(e.propertyName==="value"&&Ol(ar)){var n=[];Zh(n,ar,e,Xd(e)),Oh(Qk,n)}}function eS(e,n,i){e==="focusin"?(Wh(),sr=n,ar=i,sr.attachEvent("onpropertychange",Xh)):e==="focusout"&&Wh()}function tS(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Ol(ar)}function nS(e,n){if(e==="click")return Ol(n)}function sS(e,n){if(e==="input"||e==="change")return Ol(n)}function aS(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var An=typeof Object.is=="function"?Object.is:aS;function ir(e,n){if(An(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var i=Object.keys(e),l=Object.keys(n);if(i.length!==l.length)return!1;for(l=0;l<i.length;l++){var f=i[l];if(!ln.call(n,f)||!An(e[f],n[f]))return!1}return!0}function Qh(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function eg(e,n){var i=Qh(e);e=0;for(var l;i;){if(i.nodeType===3){if(l=e+i.textContent.length,e<=n&&l>=n)return{node:i,offset:n-e};e=l}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=Qh(i)}}function tg(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?tg(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function ng(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var n=Cl(e.document);n instanceof e.HTMLIFrameElement;){try{var i=typeof n.contentWindow.location.href=="string"}catch{i=!1}if(i)e=n.contentWindow;else break;n=Cl(e.document)}return n}function cu(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var iS=Us&&"documentMode"in document&&11>=document.documentMode,eo=null,du=null,or=null,uu=!1;function sg(e,n,i){var l=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;uu||eo==null||eo!==Cl(l)||(l=eo,"selectionStart"in l&&cu(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),or&&ir(or,l)||(or=l,l=Sc(du,"onSelect"),0<l.length&&(n=new Ml("onSelect","select",null,n,i),e.push({event:n,listeners:l}),n.target=eo)))}function ci(e,n){var i={};return i[e.toLowerCase()]=n.toLowerCase(),i["Webkit"+e]="webkit"+n,i["Moz"+e]="moz"+n,i}var to={animationend:ci("Animation","AnimationEnd"),animationiteration:ci("Animation","AnimationIteration"),animationstart:ci("Animation","AnimationStart"),transitionrun:ci("Transition","TransitionRun"),transitionstart:ci("Transition","TransitionStart"),transitioncancel:ci("Transition","TransitionCancel"),transitionend:ci("Transition","TransitionEnd")},fu={},ag={};Us&&(ag=document.createElement("div").style,"AnimationEvent"in window||(delete to.animationend.animation,delete to.animationiteration.animation,delete to.animationstart.animation),"TransitionEvent"in window||delete to.transitionend.transition);function di(e){if(fu[e])return fu[e];if(!to[e])return e;var n=to[e],i;for(i in n)if(n.hasOwnProperty(i)&&i in ag)return fu[e]=n[i];return e}var ig=di("animationend"),og=di("animationiteration"),rg=di("animationstart"),oS=di("transitionrun"),rS=di("transitionstart"),lS=di("transitioncancel"),lg=di("transitionend"),cg=new Map,pu="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");pu.push("scrollEnd");function ps(e,n){cg.set(e,n),ri(n,[e])}var Ll=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Zn=[],no=0,mu=0;function Bl(){for(var e=no,n=mu=no=0;n<e;){var i=Zn[n];Zn[n++]=null;var l=Zn[n];Zn[n++]=null;var f=Zn[n];Zn[n++]=null;var h=Zn[n];if(Zn[n++]=null,l!==null&&f!==null){var k=l.pending;k===null?f.next=f:(f.next=k.next,k.next=f),l.pending=f}h!==0&&dg(i,f,h)}}function $l(e,n,i,l){Zn[no++]=e,Zn[no++]=n,Zn[no++]=i,Zn[no++]=l,mu|=l,e.lanes|=l,e=e.alternate,e!==null&&(e.lanes|=l)}function hu(e,n,i,l){return $l(e,n,i,l),zl(e)}function ui(e,n){return $l(e,null,null,n),zl(e)}function dg(e,n,i){e.lanes|=i;var l=e.alternate;l!==null&&(l.lanes|=i);for(var f=!1,h=e.return;h!==null;)h.childLanes|=i,l=h.alternate,l!==null&&(l.childLanes|=i),h.tag===22&&(e=h.stateNode,e===null||e._visibility&1||(f=!0)),e=h,h=h.return;return e.tag===3?(h=e.stateNode,f&&n!==null&&(f=31-sn(i),e=h.hiddenUpdates,l=e[f],l===null?e[f]=[n]:l.push(n),n.lane=i|536870912),h):null}function zl(e){if(50<Cr)throw Cr=0,Tf=null,Error(r(185));for(var n=e.return;n!==null;)e=n,n=e.return;return e.tag===3?e.stateNode:null}var so={};function cS(e,n,i,l){this.tag=e,this.key=i,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Dn(e,n,i,l){return new cS(e,n,i,l)}function gu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Vs(e,n){var i=e.alternate;return i===null?(i=Dn(e.tag,n,e.key,e.mode),i.elementType=e.elementType,i.type=e.type,i.stateNode=e.stateNode,i.alternate=e,e.alternate=i):(i.pendingProps=n,i.type=e.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=e.flags&65011712,i.childLanes=e.childLanes,i.lanes=e.lanes,i.child=e.child,i.memoizedProps=e.memoizedProps,i.memoizedState=e.memoizedState,i.updateQueue=e.updateQueue,n=e.dependencies,i.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},i.sibling=e.sibling,i.index=e.index,i.ref=e.ref,i.refCleanup=e.refCleanup,i}function ug(e,n){e.flags&=65011714;var i=e.alternate;return i===null?(e.childLanes=0,e.lanes=n,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=i.childLanes,e.lanes=i.lanes,e.child=i.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=i.memoizedProps,e.memoizedState=i.memoizedState,e.updateQueue=i.updateQueue,e.type=i.type,n=i.dependencies,e.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext}),e}function Hl(e,n,i,l,f,h){var k=0;if(l=e,typeof e=="function")gu(e)&&(k=1);else if(typeof e=="string")k=m2(e,i,ke.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case z:return e=Dn(31,i,n,f),e.elementType=z,e.lanes=h,e;case j:return fi(i.children,f,h,n);case w:k=8,f|=24;break;case T:return e=Dn(12,i,n,f|2),e.elementType=T,e.lanes=h,e;case E:return e=Dn(13,i,n,f),e.elementType=E,e.lanes=h,e;case M:return e=Dn(19,i,n,f),e.elementType=M,e.lanes=h,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case A:k=10;break e;case C:k=9;break e;case L:k=11;break e;case H:k=14;break e;case D:k=16,l=null;break e}k=29,i=Error(r(130,e===null?"null":typeof e,"")),l=null}return n=Dn(k,i,n,f),n.elementType=e,n.type=l,n.lanes=h,n}function fi(e,n,i,l){return e=Dn(7,e,l,n),e.lanes=i,e}function vu(e,n,i){return e=Dn(6,e,null,n),e.lanes=i,e}function fg(e){var n=Dn(18,null,null,0);return n.stateNode=e,n}function yu(e,n,i){return n=Dn(4,e.children!==null?e.children:[],e.key,n),n.lanes=i,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}var pg=new WeakMap;function Kn(e,n){if(typeof e=="object"&&e!==null){var i=pg.get(e);return i!==void 0?i:(n={value:e,source:n,stack:Pe(n)},pg.set(e,n),n)}return{value:e,source:n,stack:Pe(n)}}var ao=[],io=0,Pl=null,rr=0,Yn=[],Jn=0,xa=null,Ns=1,Cs="";function qs(e,n){ao[io++]=rr,ao[io++]=Pl,Pl=e,rr=n}function mg(e,n,i){Yn[Jn++]=Ns,Yn[Jn++]=Cs,Yn[Jn++]=xa,xa=e;var l=Ns;e=Cs;var f=32-sn(l)-1;l&=~(1<<f),i+=1;var h=32-sn(n)+f;if(30<h){var k=f-f%5;h=(l&(1<<k)-1).toString(32),l>>=k,f-=k,Ns=1<<32-sn(n)+f|i<<f|l,Cs=h+e}else Ns=1<<h|i<<f|l,Cs=e}function bu(e){e.return!==null&&(qs(e,1),mg(e,1,0))}function _u(e){for(;e===Pl;)Pl=ao[--io],ao[io]=null,rr=ao[--io],ao[io]=null;for(;e===xa;)xa=Yn[--Jn],Yn[Jn]=null,Cs=Yn[--Jn],Yn[Jn]=null,Ns=Yn[--Jn],Yn[Jn]=null}function hg(e,n){Yn[Jn++]=Ns,Yn[Jn++]=Cs,Yn[Jn++]=xa,Ns=n.id,Cs=n.overflow,xa=e}var cn=null,_t=null,Ke=!1,ka=null,Wn=!1,xu=Error(r(519));function Sa(e){var n=Error(r(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw lr(Kn(n,e)),xu}function gg(e){var n=e.stateNode,i=e.type,l=e.memoizedProps;switch(n[et]=e,n[ut]=l,i){case"dialog":Ve("cancel",n),Ve("close",n);break;case"iframe":case"object":case"embed":Ve("load",n);break;case"video":case"audio":for(i=0;i<Ar.length;i++)Ve(Ar[i],n);break;case"source":Ve("error",n);break;case"img":case"image":case"link":Ve("error",n),Ve("load",n);break;case"details":Ve("toggle",n);break;case"input":Ve("invalid",n),Eh(n,l.value,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name,!0);break;case"select":Ve("invalid",n);break;case"textarea":Ve("invalid",n),Dh(n,l.value,l.defaultValue,l.children)}i=l.children,typeof i!="string"&&typeof i!="number"&&typeof i!="bigint"||n.textContent===""+i||l.suppressHydrationWarning===!0||M0(n.textContent,i)?(l.popover!=null&&(Ve("beforetoggle",n),Ve("toggle",n)),l.onScroll!=null&&Ve("scroll",n),l.onScrollEnd!=null&&Ve("scrollend",n),l.onClick!=null&&(n.onclick=Ps),n=!0):n=!1,n||Sa(e,!0)}function vg(e){for(cn=e.return;cn;)switch(cn.tag){case 5:case 31:case 13:Wn=!1;return;case 27:case 3:Wn=!0;return;default:cn=cn.return}}function oo(e){if(e!==cn)return!1;if(!Ke)return vg(e),Ke=!0,!1;var n=e.tag,i;if((i=n!==3&&n!==27)&&((i=n===5)&&(i=e.type,i=!(i!=="form"&&i!=="button")||Hf(e.type,e.memoizedProps)),i=!i),i&&_t&&Sa(e),vg(e),n===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(317));_t=U0(e)}else if(n===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(317));_t=U0(e)}else n===27?(n=_t,Ba(e.type)?(e=Gf,Gf=null,_t=e):_t=n):_t=cn?Qn(e.stateNode.nextSibling):null;return!0}function pi(){_t=cn=null,Ke=!1}function ku(){var e=ka;return e!==null&&(Cn===null?Cn=e:Cn.push.apply(Cn,e),ka=null),e}function lr(e){ka===null?ka=[e]:ka.push(e)}var Su=le(null),mi=null,Gs=null;function ja(e,n,i){xe(Su,n._currentValue),n._currentValue=i}function Fs(e){e._currentValue=Su.current,de(Su)}function ju(e,n,i){for(;e!==null;){var l=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,l!==null&&(l.childLanes|=n)):l!==null&&(l.childLanes&n)!==n&&(l.childLanes|=n),e===i)break;e=e.return}}function Tu(e,n,i,l){var f=e.child;for(f!==null&&(f.return=e);f!==null;){var h=f.dependencies;if(h!==null){var k=f.child;h=h.firstContext;e:for(;h!==null;){var N=h;h=f;for(var I=0;I<n.length;I++)if(N.context===n[I]){h.lanes|=i,N=h.alternate,N!==null&&(N.lanes|=i),ju(h.return,i,e),l||(k=null);break e}h=N.next}}else if(f.tag===18){if(k=f.return,k===null)throw Error(r(341));k.lanes|=i,h=k.alternate,h!==null&&(h.lanes|=i),ju(k,i,e),k=null}else k=f.child;if(k!==null)k.return=f;else for(k=f;k!==null;){if(k===e){k=null;break}if(f=k.sibling,f!==null){f.return=k.return,k=f;break}k=k.return}f=k}}function ro(e,n,i,l){e=null;for(var f=n,h=!1;f!==null;){if(!h){if((f.flags&524288)!==0)h=!0;else if((f.flags&262144)!==0)break}if(f.tag===10){var k=f.alternate;if(k===null)throw Error(r(387));if(k=k.memoizedProps,k!==null){var N=f.type;An(f.pendingProps.value,k.value)||(e!==null?e.push(N):e=[N])}}else if(f===Se.current){if(k=f.alternate,k===null)throw Error(r(387));k.memoizedState.memoizedState!==f.memoizedState.memoizedState&&(e!==null?e.push(Or):e=[Or])}f=f.return}e!==null&&Tu(n,e,i,l),n.flags|=262144}function Ul(e){for(e=e.firstContext;e!==null;){if(!An(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function hi(e){mi=e,Gs=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function dn(e){return yg(mi,e)}function Vl(e,n){return mi===null&&hi(e),yg(e,n)}function yg(e,n){var i=n._currentValue;if(n={context:n,memoizedValue:i,next:null},Gs===null){if(e===null)throw Error(r(308));Gs=n,e.dependencies={lanes:0,firstContext:n},e.flags|=524288}else Gs=Gs.next=n;return i}var dS=typeof AbortController<"u"?AbortController:function(){var e=[],n=this.signal={aborted:!1,addEventListener:function(i,l){e.push(l)}};this.abort=function(){n.aborted=!0,e.forEach(function(i){return i()})}},uS=t.unstable_scheduleCallback,fS=t.unstable_NormalPriority,Gt={$$typeof:A,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function wu(){return{controller:new dS,data:new Map,refCount:0}}function cr(e){e.refCount--,e.refCount===0&&uS(fS,function(){e.controller.abort()})}var dr=null,Nu=0,lo=0,co=null;function pS(e,n){if(dr===null){var i=dr=[];Nu=0,lo=Df(),co={status:"pending",value:void 0,then:function(l){i.push(l)}}}return Nu++,n.then(bg,bg),n}function bg(){if(--Nu===0&&dr!==null){co!==null&&(co.status="fulfilled");var e=dr;dr=null,lo=0,co=null;for(var n=0;n<e.length;n++)(0,e[n])()}}function mS(e,n){var i=[],l={status:"pending",value:null,reason:null,then:function(f){i.push(f)}};return e.then(function(){l.status="fulfilled",l.value=n;for(var f=0;f<i.length;f++)(0,i[f])(n)},function(f){for(l.status="rejected",l.reason=f,f=0;f<i.length;f++)(0,i[f])(void 0)}),l}var _g=B.S;B.S=function(e,n){s0=tn(),typeof n=="object"&&n!==null&&typeof n.then=="function"&&pS(e,n),_g!==null&&_g(e,n)};var gi=le(null);function Cu(){var e=gi.current;return e!==null?e:yt.pooledCache}function ql(e,n){n===null?xe(gi,gi.current):xe(gi,n.pool)}function xg(){var e=Cu();return e===null?null:{parent:Gt._currentValue,pool:e}}var uo=Error(r(460)),Eu=Error(r(474)),Gl=Error(r(542)),Fl={then:function(){}};function kg(e){return e=e.status,e==="fulfilled"||e==="rejected"}function Sg(e,n,i){switch(i=e[i],i===void 0?e.push(n):i!==n&&(n.then(Ps,Ps),n=i),n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,Tg(e),e;default:if(typeof n.status=="string")n.then(Ps,Ps);else{if(e=yt,e!==null&&100<e.shellSuspendCounter)throw Error(r(482));e=n,e.status="pending",e.then(function(l){if(n.status==="pending"){var f=n;f.status="fulfilled",f.value=l}},function(l){if(n.status==="pending"){var f=n;f.status="rejected",f.reason=l}})}switch(n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,Tg(e),e}throw yi=n,uo}}function vi(e){try{var n=e._init;return n(e._payload)}catch(i){throw i!==null&&typeof i=="object"&&typeof i.then=="function"?(yi=i,uo):i}}var yi=null;function jg(){if(yi===null)throw Error(r(459));var e=yi;return yi=null,e}function Tg(e){if(e===uo||e===Gl)throw Error(r(483))}var fo=null,ur=0;function Zl(e){var n=ur;return ur+=1,fo===null&&(fo=[]),Sg(fo,e,n)}function fr(e,n){n=n.props.ref,e.ref=n!==void 0?n:null}function Kl(e,n){throw n.$$typeof===b?Error(r(525)):(e=Object.prototype.toString.call(n),Error(r(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e)))}function wg(e){function n(U,$){if(e){var G=U.deletions;G===null?(U.deletions=[$],U.flags|=16):G.push($)}}function i(U,$){if(!e)return null;for(;$!==null;)n(U,$),$=$.sibling;return null}function l(U){for(var $=new Map;U!==null;)U.key!==null?$.set(U.key,U):$.set(U.index,U),U=U.sibling;return $}function f(U,$){return U=Vs(U,$),U.index=0,U.sibling=null,U}function h(U,$,G){return U.index=G,e?(G=U.alternate,G!==null?(G=G.index,G<$?(U.flags|=67108866,$):G):(U.flags|=67108866,$)):(U.flags|=1048576,$)}function k(U){return e&&U.alternate===null&&(U.flags|=67108866),U}function N(U,$,G,se){return $===null||$.tag!==6?($=vu(G,U.mode,se),$.return=U,$):($=f($,G),$.return=U,$)}function I(U,$,G,se){var Ce=G.type;return Ce===j?ee(U,$,G.props.children,se,G.key):$!==null&&($.elementType===Ce||typeof Ce=="object"&&Ce!==null&&Ce.$$typeof===D&&vi(Ce)===$.type)?($=f($,G.props),fr($,G),$.return=U,$):($=Hl(G.type,G.key,G.props,null,U.mode,se),fr($,G),$.return=U,$)}function F(U,$,G,se){return $===null||$.tag!==4||$.stateNode.containerInfo!==G.containerInfo||$.stateNode.implementation!==G.implementation?($=yu(G,U.mode,se),$.return=U,$):($=f($,G.children||[]),$.return=U,$)}function ee(U,$,G,se,Ce){return $===null||$.tag!==7?($=fi(G,U.mode,se,Ce),$.return=U,$):($=f($,G),$.return=U,$)}function ae(U,$,G){if(typeof $=="string"&&$!==""||typeof $=="number"||typeof $=="bigint")return $=vu(""+$,U.mode,G),$.return=U,$;if(typeof $=="object"&&$!==null){switch($.$$typeof){case x:return G=Hl($.type,$.key,$.props,null,U.mode,G),fr(G,$),G.return=U,G;case S:return $=yu($,U.mode,G),$.return=U,$;case D:return $=vi($),ae(U,$,G)}if(re($)||Q($))return $=fi($,U.mode,G,null),$.return=U,$;if(typeof $.then=="function")return ae(U,Zl($),G);if($.$$typeof===A)return ae(U,Vl(U,$),G);Kl(U,$)}return null}function K(U,$,G,se){var Ce=$!==null?$.key:null;if(typeof G=="string"&&G!==""||typeof G=="number"||typeof G=="bigint")return Ce!==null?null:N(U,$,""+G,se);if(typeof G=="object"&&G!==null){switch(G.$$typeof){case x:return G.key===Ce?I(U,$,G,se):null;case S:return G.key===Ce?F(U,$,G,se):null;case D:return G=vi(G),K(U,$,G,se)}if(re(G)||Q(G))return Ce!==null?null:ee(U,$,G,se,null);if(typeof G.then=="function")return K(U,$,Zl(G),se);if(G.$$typeof===A)return K(U,$,Vl(U,G),se);Kl(U,G)}return null}function J(U,$,G,se,Ce){if(typeof se=="string"&&se!==""||typeof se=="number"||typeof se=="bigint")return U=U.get(G)||null,N($,U,""+se,Ce);if(typeof se=="object"&&se!==null){switch(se.$$typeof){case x:return U=U.get(se.key===null?G:se.key)||null,I($,U,se,Ce);case S:return U=U.get(se.key===null?G:se.key)||null,F($,U,se,Ce);case D:return se=vi(se),J(U,$,G,se,Ce)}if(re(se)||Q(se))return U=U.get(G)||null,ee($,U,se,Ce,null);if(typeof se.then=="function")return J(U,$,G,Zl(se),Ce);if(se.$$typeof===A)return J(U,$,G,Vl($,se),Ce);Kl($,se)}return null}function _e(U,$,G,se){for(var Ce=null,tt=null,je=$,Le=$=0,Fe=null;je!==null&&Le<G.length;Le++){je.index>Le?(Fe=je,je=null):Fe=je.sibling;var nt=K(U,je,G[Le],se);if(nt===null){je===null&&(je=Fe);break}e&&je&&nt.alternate===null&&n(U,je),$=h(nt,$,Le),tt===null?Ce=nt:tt.sibling=nt,tt=nt,je=Fe}if(Le===G.length)return i(U,je),Ke&&qs(U,Le),Ce;if(je===null){for(;Le<G.length;Le++)je=ae(U,G[Le],se),je!==null&&($=h(je,$,Le),tt===null?Ce=je:tt.sibling=je,tt=je);return Ke&&qs(U,Le),Ce}for(je=l(je);Le<G.length;Le++)Fe=J(je,U,Le,G[Le],se),Fe!==null&&(e&&Fe.alternate!==null&&je.delete(Fe.key===null?Le:Fe.key),$=h(Fe,$,Le),tt===null?Ce=Fe:tt.sibling=Fe,tt=Fe);return e&&je.forEach(function(Ua){return n(U,Ua)}),Ke&&qs(U,Le),Ce}function Ae(U,$,G,se){if(G==null)throw Error(r(151));for(var Ce=null,tt=null,je=$,Le=$=0,Fe=null,nt=G.next();je!==null&&!nt.done;Le++,nt=G.next()){je.index>Le?(Fe=je,je=null):Fe=je.sibling;var Ua=K(U,je,nt.value,se);if(Ua===null){je===null&&(je=Fe);break}e&&je&&Ua.alternate===null&&n(U,je),$=h(Ua,$,Le),tt===null?Ce=Ua:tt.sibling=Ua,tt=Ua,je=Fe}if(nt.done)return i(U,je),Ke&&qs(U,Le),Ce;if(je===null){for(;!nt.done;Le++,nt=G.next())nt=ae(U,nt.value,se),nt!==null&&($=h(nt,$,Le),tt===null?Ce=nt:tt.sibling=nt,tt=nt);return Ke&&qs(U,Le),Ce}for(je=l(je);!nt.done;Le++,nt=G.next())nt=J(je,U,Le,nt.value,se),nt!==null&&(e&&nt.alternate!==null&&je.delete(nt.key===null?Le:nt.key),$=h(nt,$,Le),tt===null?Ce=nt:tt.sibling=nt,tt=nt);return e&&je.forEach(function(T2){return n(U,T2)}),Ke&&qs(U,Le),Ce}function gt(U,$,G,se){if(typeof G=="object"&&G!==null&&G.type===j&&G.key===null&&(G=G.props.children),typeof G=="object"&&G!==null){switch(G.$$typeof){case x:e:{for(var Ce=G.key;$!==null;){if($.key===Ce){if(Ce=G.type,Ce===j){if($.tag===7){i(U,$.sibling),se=f($,G.props.children),se.return=U,U=se;break e}}else if($.elementType===Ce||typeof Ce=="object"&&Ce!==null&&Ce.$$typeof===D&&vi(Ce)===$.type){i(U,$.sibling),se=f($,G.props),fr(se,G),se.return=U,U=se;break e}i(U,$);break}else n(U,$);$=$.sibling}G.type===j?(se=fi(G.props.children,U.mode,se,G.key),se.return=U,U=se):(se=Hl(G.type,G.key,G.props,null,U.mode,se),fr(se,G),se.return=U,U=se)}return k(U);case S:e:{for(Ce=G.key;$!==null;){if($.key===Ce)if($.tag===4&&$.stateNode.containerInfo===G.containerInfo&&$.stateNode.implementation===G.implementation){i(U,$.sibling),se=f($,G.children||[]),se.return=U,U=se;break e}else{i(U,$);break}else n(U,$);$=$.sibling}se=yu(G,U.mode,se),se.return=U,U=se}return k(U);case D:return G=vi(G),gt(U,$,G,se)}if(re(G))return _e(U,$,G,se);if(Q(G)){if(Ce=Q(G),typeof Ce!="function")throw Error(r(150));return G=Ce.call(G),Ae(U,$,G,se)}if(typeof G.then=="function")return gt(U,$,Zl(G),se);if(G.$$typeof===A)return gt(U,$,Vl(U,G),se);Kl(U,G)}return typeof G=="string"&&G!==""||typeof G=="number"||typeof G=="bigint"?(G=""+G,$!==null&&$.tag===6?(i(U,$.sibling),se=f($,G),se.return=U,U=se):(i(U,$),se=vu(G,U.mode,se),se.return=U,U=se),k(U)):i(U,$)}return function(U,$,G,se){try{ur=0;var Ce=gt(U,$,G,se);return fo=null,Ce}catch(je){if(je===uo||je===Gl)throw je;var tt=Dn(29,je,null,U.mode);return tt.lanes=se,tt.return=U,tt}finally{}}}var bi=wg(!0),Ng=wg(!1),Ta=!1;function Au(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Du(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function wa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Na(e,n,i){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(rt&2)!==0){var f=l.pending;return f===null?n.next=n:(n.next=f.next,f.next=n),l.pending=n,n=zl(e),dg(e,null,i),n}return $l(e,l,n,i),zl(e)}function pr(e,n,i){if(n=n.updateQueue,n!==null&&(n=n.shared,(i&4194048)!==0)){var l=n.lanes;l&=e.pendingLanes,i|=l,n.lanes=i,ve(e,i)}}function Ru(e,n){var i=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,i===l)){var f=null,h=null;if(i=i.firstBaseUpdate,i!==null){do{var k={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};h===null?f=h=k:h=h.next=k,i=i.next}while(i!==null);h===null?f=h=n:h=h.next=n}else f=h=n;i={baseState:l.baseState,firstBaseUpdate:f,lastBaseUpdate:h,shared:l.shared,callbacks:l.callbacks},e.updateQueue=i;return}e=i.lastBaseUpdate,e===null?i.firstBaseUpdate=n:e.next=n,i.lastBaseUpdate=n}var Mu=!1;function mr(){if(Mu){var e=co;if(e!==null)throw e}}function hr(e,n,i,l){Mu=!1;var f=e.updateQueue;Ta=!1;var h=f.firstBaseUpdate,k=f.lastBaseUpdate,N=f.shared.pending;if(N!==null){f.shared.pending=null;var I=N,F=I.next;I.next=null,k===null?h=F:k.next=F,k=I;var ee=e.alternate;ee!==null&&(ee=ee.updateQueue,N=ee.lastBaseUpdate,N!==k&&(N===null?ee.firstBaseUpdate=F:N.next=F,ee.lastBaseUpdate=I))}if(h!==null){var ae=f.baseState;k=0,ee=F=I=null,N=h;do{var K=N.lane&-536870913,J=K!==N.lane;if(J?(Ge&K)===K:(l&K)===K){K!==0&&K===lo&&(Mu=!0),ee!==null&&(ee=ee.next={lane:0,tag:N.tag,payload:N.payload,callback:null,next:null});e:{var _e=e,Ae=N;K=n;var gt=i;switch(Ae.tag){case 1:if(_e=Ae.payload,typeof _e=="function"){ae=_e.call(gt,ae,K);break e}ae=_e;break e;case 3:_e.flags=_e.flags&-65537|128;case 0:if(_e=Ae.payload,K=typeof _e=="function"?_e.call(gt,ae,K):_e,K==null)break e;ae=_({},ae,K);break e;case 2:Ta=!0}}K=N.callback,K!==null&&(e.flags|=64,J&&(e.flags|=8192),J=f.callbacks,J===null?f.callbacks=[K]:J.push(K))}else J={lane:K,tag:N.tag,payload:N.payload,callback:N.callback,next:null},ee===null?(F=ee=J,I=ae):ee=ee.next=J,k|=K;if(N=N.next,N===null){if(N=f.shared.pending,N===null)break;J=N,N=J.next,J.next=null,f.lastBaseUpdate=J,f.shared.pending=null}}while(!0);ee===null&&(I=ae),f.baseState=I,f.firstBaseUpdate=F,f.lastBaseUpdate=ee,h===null&&(f.shared.lanes=0),Ra|=k,e.lanes=k,e.memoizedState=ae}}function Cg(e,n){if(typeof e!="function")throw Error(r(191,e));e.call(n)}function Eg(e,n){var i=e.callbacks;if(i!==null)for(e.callbacks=null,e=0;e<i.length;e++)Cg(i[e],n)}var po=le(null),Yl=le(0);function Ag(e,n){e=ta,xe(Yl,e),xe(po,n),ta=e|n.baseLanes}function Iu(){xe(Yl,ta),xe(po,po.current)}function Ou(){ta=Yl.current,de(po),de(Yl)}var Rn=le(null),Xn=null;function Ca(e){var n=e.alternate;xe($t,$t.current&1),xe(Rn,e),Xn===null&&(n===null||po.current!==null||n.memoizedState!==null)&&(Xn=e)}function Lu(e){xe($t,$t.current),xe(Rn,e),Xn===null&&(Xn=e)}function Dg(e){e.tag===22?(xe($t,$t.current),xe(Rn,e),Xn===null&&(Xn=e)):Ea()}function Ea(){xe($t,$t.current),xe(Rn,Rn.current)}function Mn(e){de(Rn),Xn===e&&(Xn=null),de($t)}var $t=le(0);function Jl(e){for(var n=e;n!==null;){if(n.tag===13){var i=n.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||Vf(i)||qf(i)))return n}else if(n.tag===19&&(n.memoizedProps.revealOrder==="forwards"||n.memoizedProps.revealOrder==="backwards"||n.memoizedProps.revealOrder==="unstable_legacy-backwards"||n.memoizedProps.revealOrder==="together")){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var Zs=0,Oe=null,mt=null,Ft=null,Wl=!1,mo=!1,_i=!1,Xl=0,gr=0,ho=null,hS=0;function Mt(){throw Error(r(321))}function Bu(e,n){if(n===null)return!1;for(var i=0;i<n.length&&i<e.length;i++)if(!An(e[i],n[i]))return!1;return!0}function $u(e,n,i,l,f,h){return Zs=h,Oe=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,B.H=e===null||e.memoizedState===null?mv:Qu,_i=!1,h=i(l,f),_i=!1,mo&&(h=Mg(n,i,l,f)),Rg(e),h}function Rg(e){B.H=br;var n=mt!==null&&mt.next!==null;if(Zs=0,Ft=mt=Oe=null,Wl=!1,gr=0,ho=null,n)throw Error(r(300));e===null||Zt||(e=e.dependencies,e!==null&&Ul(e)&&(Zt=!0))}function Mg(e,n,i,l){Oe=e;var f=0;do{if(mo&&(ho=null),gr=0,mo=!1,25<=f)throw Error(r(301));if(f+=1,Ft=mt=null,e.updateQueue!=null){var h=e.updateQueue;h.lastEffect=null,h.events=null,h.stores=null,h.memoCache!=null&&(h.memoCache.index=0)}B.H=hv,h=n(i,l)}while(mo);return h}function gS(){var e=B.H,n=e.useState()[0];return n=typeof n.then=="function"?vr(n):n,e=e.useState()[0],(mt!==null?mt.memoizedState:null)!==e&&(Oe.flags|=1024),n}function zu(){var e=Xl!==0;return Xl=0,e}function Hu(e,n,i){n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~i}function Pu(e){if(Wl){for(e=e.memoizedState;e!==null;){var n=e.queue;n!==null&&(n.pending=null),e=e.next}Wl=!1}Zs=0,Ft=mt=Oe=null,mo=!1,gr=Xl=0,ho=null}function bn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ft===null?Oe.memoizedState=Ft=e:Ft=Ft.next=e,Ft}function zt(){if(mt===null){var e=Oe.alternate;e=e!==null?e.memoizedState:null}else e=mt.next;var n=Ft===null?Oe.memoizedState:Ft.next;if(n!==null)Ft=n,mt=e;else{if(e===null)throw Oe.alternate===null?Error(r(467)):Error(r(310));mt=e,e={memoizedState:mt.memoizedState,baseState:mt.baseState,baseQueue:mt.baseQueue,queue:mt.queue,next:null},Ft===null?Oe.memoizedState=Ft=e:Ft=Ft.next=e}return Ft}function Ql(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function vr(e){var n=gr;return gr+=1,ho===null&&(ho=[]),e=Sg(ho,e,n),n=Oe,(Ft===null?n.memoizedState:Ft.next)===null&&(n=n.alternate,B.H=n===null||n.memoizedState===null?mv:Qu),e}function ec(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return vr(e);if(e.$$typeof===A)return dn(e)}throw Error(r(438,String(e)))}function Uu(e){var n=null,i=Oe.updateQueue;if(i!==null&&(n=i.memoCache),n==null){var l=Oe.alternate;l!==null&&(l=l.updateQueue,l!==null&&(l=l.memoCache,l!=null&&(n={data:l.data.map(function(f){return f.slice()}),index:0})))}if(n==null&&(n={data:[],index:0}),i===null&&(i=Ql(),Oe.updateQueue=i),i.memoCache=n,i=n.data[n.index],i===void 0)for(i=n.data[n.index]=Array(e),l=0;l<e;l++)i[l]=Y;return n.index++,i}function Ks(e,n){return typeof n=="function"?n(e):n}function tc(e){var n=zt();return Vu(n,mt,e)}function Vu(e,n,i){var l=e.queue;if(l===null)throw Error(r(311));l.lastRenderedReducer=i;var f=e.baseQueue,h=l.pending;if(h!==null){if(f!==null){var k=f.next;f.next=h.next,h.next=k}n.baseQueue=f=h,l.pending=null}if(h=e.baseState,f===null)e.memoizedState=h;else{n=f.next;var N=k=null,I=null,F=n,ee=!1;do{var ae=F.lane&-536870913;if(ae!==F.lane?(Ge&ae)===ae:(Zs&ae)===ae){var K=F.revertLane;if(K===0)I!==null&&(I=I.next={lane:0,revertLane:0,gesture:null,action:F.action,hasEagerState:F.hasEagerState,eagerState:F.eagerState,next:null}),ae===lo&&(ee=!0);else if((Zs&K)===K){F=F.next,K===lo&&(ee=!0);continue}else ae={lane:0,revertLane:F.revertLane,gesture:null,action:F.action,hasEagerState:F.hasEagerState,eagerState:F.eagerState,next:null},I===null?(N=I=ae,k=h):I=I.next=ae,Oe.lanes|=K,Ra|=K;ae=F.action,_i&&i(h,ae),h=F.hasEagerState?F.eagerState:i(h,ae)}else K={lane:ae,revertLane:F.revertLane,gesture:F.gesture,action:F.action,hasEagerState:F.hasEagerState,eagerState:F.eagerState,next:null},I===null?(N=I=K,k=h):I=I.next=K,Oe.lanes|=ae,Ra|=ae;F=F.next}while(F!==null&&F!==n);if(I===null?k=h:I.next=N,!An(h,e.memoizedState)&&(Zt=!0,ee&&(i=co,i!==null)))throw i;e.memoizedState=h,e.baseState=k,e.baseQueue=I,l.lastRenderedState=h}return f===null&&(l.lanes=0),[e.memoizedState,l.dispatch]}function qu(e){var n=zt(),i=n.queue;if(i===null)throw Error(r(311));i.lastRenderedReducer=e;var l=i.dispatch,f=i.pending,h=n.memoizedState;if(f!==null){i.pending=null;var k=f=f.next;do h=e(h,k.action),k=k.next;while(k!==f);An(h,n.memoizedState)||(Zt=!0),n.memoizedState=h,n.baseQueue===null&&(n.baseState=h),i.lastRenderedState=h}return[h,l]}function Ig(e,n,i){var l=Oe,f=zt(),h=Ke;if(h){if(i===void 0)throw Error(r(407));i=i()}else i=n();var k=!An((mt||f).memoizedState,i);if(k&&(f.memoizedState=i,Zt=!0),f=f.queue,Zu(Bg.bind(null,l,f,e),[e]),f.getSnapshot!==n||k||Ft!==null&&Ft.memoizedState.tag&1){if(l.flags|=2048,go(9,{destroy:void 0},Lg.bind(null,l,f,i,n),null),yt===null)throw Error(r(349));h||(Zs&127)!==0||Og(l,n,i)}return i}function Og(e,n,i){e.flags|=16384,e={getSnapshot:n,value:i},n=Oe.updateQueue,n===null?(n=Ql(),Oe.updateQueue=n,n.stores=[e]):(i=n.stores,i===null?n.stores=[e]:i.push(e))}function Lg(e,n,i,l){n.value=i,n.getSnapshot=l,$g(n)&&zg(e)}function Bg(e,n,i){return i(function(){$g(n)&&zg(e)})}function $g(e){var n=e.getSnapshot;e=e.value;try{var i=n();return!An(e,i)}catch{return!0}}function zg(e){var n=ui(e,2);n!==null&&En(n,e,2)}function Gu(e){var n=bn();if(typeof e=="function"){var i=e;if(e=i(),_i){yn(!0);try{i()}finally{yn(!1)}}}return n.memoizedState=n.baseState=e,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ks,lastRenderedState:e},n}function Hg(e,n,i,l){return e.baseState=i,Vu(e,mt,typeof l=="function"?l:Ks)}function vS(e,n,i,l,f){if(ac(e))throw Error(r(485));if(e=n.action,e!==null){var h={payload:f,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(k){h.listeners.push(k)}};B.T!==null?i(!0):h.isTransition=!1,l(h),i=n.pending,i===null?(h.next=n.pending=h,Pg(n,h)):(h.next=i.next,n.pending=i.next=h)}}function Pg(e,n){var i=n.action,l=n.payload,f=e.state;if(n.isTransition){var h=B.T,k={};B.T=k;try{var N=i(f,l),I=B.S;I!==null&&I(k,N),Ug(e,n,N)}catch(F){Fu(e,n,F)}finally{h!==null&&k.types!==null&&(h.types=k.types),B.T=h}}else try{h=i(f,l),Ug(e,n,h)}catch(F){Fu(e,n,F)}}function Ug(e,n,i){i!==null&&typeof i=="object"&&typeof i.then=="function"?i.then(function(l){Vg(e,n,l)},function(l){return Fu(e,n,l)}):Vg(e,n,i)}function Vg(e,n,i){n.status="fulfilled",n.value=i,qg(n),e.state=i,n=e.pending,n!==null&&(i=n.next,i===n?e.pending=null:(i=i.next,n.next=i,Pg(e,i)))}function Fu(e,n,i){var l=e.pending;if(e.pending=null,l!==null){l=l.next;do n.status="rejected",n.reason=i,qg(n),n=n.next;while(n!==l)}e.action=null}function qg(e){e=e.listeners;for(var n=0;n<e.length;n++)(0,e[n])()}function Gg(e,n){return n}function Fg(e,n){if(Ke){var i=yt.formState;if(i!==null){e:{var l=Oe;if(Ke){if(_t){t:{for(var f=_t,h=Wn;f.nodeType!==8;){if(!h){f=null;break t}if(f=Qn(f.nextSibling),f===null){f=null;break t}}h=f.data,f=h==="F!"||h==="F"?f:null}if(f){_t=Qn(f.nextSibling),l=f.data==="F!";break e}}Sa(l)}l=!1}l&&(n=i[0])}}return i=bn(),i.memoizedState=i.baseState=n,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gg,lastRenderedState:n},i.queue=l,i=uv.bind(null,Oe,l),l.dispatch=i,l=Gu(!1),h=Xu.bind(null,Oe,!1,l.queue),l=bn(),f={state:n,dispatch:null,action:e,pending:null},l.queue=f,i=vS.bind(null,Oe,f,h,i),f.dispatch=i,l.memoizedState=e,[n,i,!1]}function Zg(e){var n=zt();return Kg(n,mt,e)}function Kg(e,n,i){if(n=Vu(e,n,Gg)[0],e=tc(Ks)[0],typeof n=="object"&&n!==null&&typeof n.then=="function")try{var l=vr(n)}catch(k){throw k===uo?Gl:k}else l=n;n=zt();var f=n.queue,h=f.dispatch;return i!==n.memoizedState&&(Oe.flags|=2048,go(9,{destroy:void 0},yS.bind(null,f,i),null)),[l,h,e]}function yS(e,n){e.action=n}function Yg(e){var n=zt(),i=mt;if(i!==null)return Kg(n,i,e);zt(),n=n.memoizedState,i=zt();var l=i.queue.dispatch;return i.memoizedState=e,[n,l,!1]}function go(e,n,i,l){return e={tag:e,create:i,deps:l,inst:n,next:null},n=Oe.updateQueue,n===null&&(n=Ql(),Oe.updateQueue=n),i=n.lastEffect,i===null?n.lastEffect=e.next=e:(l=i.next,i.next=e,e.next=l,n.lastEffect=e),e}function Jg(){return zt().memoizedState}function nc(e,n,i,l){var f=bn();Oe.flags|=e,f.memoizedState=go(1|n,{destroy:void 0},i,l===void 0?null:l)}function sc(e,n,i,l){var f=zt();l=l===void 0?null:l;var h=f.memoizedState.inst;mt!==null&&l!==null&&Bu(l,mt.memoizedState.deps)?f.memoizedState=go(n,h,i,l):(Oe.flags|=e,f.memoizedState=go(1|n,h,i,l))}function Wg(e,n){nc(8390656,8,e,n)}function Zu(e,n){sc(2048,8,e,n)}function bS(e){Oe.flags|=4;var n=Oe.updateQueue;if(n===null)n=Ql(),Oe.updateQueue=n,n.events=[e];else{var i=n.events;i===null?n.events=[e]:i.push(e)}}function Xg(e){var n=zt().memoizedState;return bS({ref:n,nextImpl:e}),function(){if((rt&2)!==0)throw Error(r(440));return n.impl.apply(void 0,arguments)}}function Qg(e,n){return sc(4,2,e,n)}function ev(e,n){return sc(4,4,e,n)}function tv(e,n){if(typeof n=="function"){e=e();var i=n(e);return function(){typeof i=="function"?i():n(null)}}if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function nv(e,n,i){i=i!=null?i.concat([e]):null,sc(4,4,tv.bind(null,n,e),i)}function Ku(){}function sv(e,n){var i=zt();n=n===void 0?null:n;var l=i.memoizedState;return n!==null&&Bu(n,l[1])?l[0]:(i.memoizedState=[e,n],e)}function av(e,n){var i=zt();n=n===void 0?null:n;var l=i.memoizedState;if(n!==null&&Bu(n,l[1]))return l[0];if(l=e(),_i){yn(!0);try{e()}finally{yn(!1)}}return i.memoizedState=[l,n],l}function Yu(e,n,i){return i===void 0||(Zs&1073741824)!==0&&(Ge&261930)===0?e.memoizedState=n:(e.memoizedState=i,e=i0(),Oe.lanes|=e,Ra|=e,i)}function iv(e,n,i,l){return An(i,n)?i:po.current!==null?(e=Yu(e,i,l),An(e,n)||(Zt=!0),e):(Zs&42)===0||(Zs&1073741824)!==0&&(Ge&261930)===0?(Zt=!0,e.memoizedState=i):(e=i0(),Oe.lanes|=e,Ra|=e,n)}function ov(e,n,i,l,f){var h=R.p;R.p=h!==0&&8>h?h:8;var k=B.T,N={};B.T=N,Xu(e,!1,n,i);try{var I=f(),F=B.S;if(F!==null&&F(N,I),I!==null&&typeof I=="object"&&typeof I.then=="function"){var ee=mS(I,l);yr(e,n,ee,Ln(e))}else yr(e,n,l,Ln(e))}catch(ae){yr(e,n,{then:function(){},status:"rejected",reason:ae},Ln())}finally{R.p=h,k!==null&&N.types!==null&&(k.types=N.types),B.T=k}}function _S(){}function Ju(e,n,i,l){if(e.tag!==5)throw Error(r(476));var f=rv(e).queue;ov(e,f,n,Z,i===null?_S:function(){return lv(e),i(l)})}function rv(e){var n=e.memoizedState;if(n!==null)return n;n={memoizedState:Z,baseState:Z,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ks,lastRenderedState:Z},next:null};var i={};return n.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ks,lastRenderedState:i},next:null},e.memoizedState=n,e=e.alternate,e!==null&&(e.memoizedState=n),n}function lv(e){var n=rv(e);n.next===null&&(n=e.alternate.memoizedState),yr(e,n.next.queue,{},Ln())}function Wu(){return dn(Or)}function cv(){return zt().memoizedState}function dv(){return zt().memoizedState}function xS(e){for(var n=e.return;n!==null;){switch(n.tag){case 24:case 3:var i=Ln();e=wa(i);var l=Na(n,e,i);l!==null&&(En(l,n,i),pr(l,n,i)),n={cache:wu()},e.payload=n;return}n=n.return}}function kS(e,n,i){var l=Ln();i={lane:l,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},ac(e)?fv(n,i):(i=hu(e,n,i,l),i!==null&&(En(i,e,l),pv(i,n,l)))}function uv(e,n,i){var l=Ln();yr(e,n,i,l)}function yr(e,n,i,l){var f={lane:l,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(ac(e))fv(n,f);else{var h=e.alternate;if(e.lanes===0&&(h===null||h.lanes===0)&&(h=n.lastRenderedReducer,h!==null))try{var k=n.lastRenderedState,N=h(k,i);if(f.hasEagerState=!0,f.eagerState=N,An(N,k))return $l(e,n,f,0),yt===null&&Bl(),!1}catch{}finally{}if(i=hu(e,n,f,l),i!==null)return En(i,e,l),pv(i,n,l),!0}return!1}function Xu(e,n,i,l){if(l={lane:2,revertLane:Df(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},ac(e)){if(n)throw Error(r(479))}else n=hu(e,i,l,2),n!==null&&En(n,e,2)}function ac(e){var n=e.alternate;return e===Oe||n!==null&&n===Oe}function fv(e,n){mo=Wl=!0;var i=e.pending;i===null?n.next=n:(n.next=i.next,i.next=n),e.pending=n}function pv(e,n,i){if((i&4194048)!==0){var l=n.lanes;l&=e.pendingLanes,i|=l,n.lanes=i,ve(e,i)}}var br={readContext:dn,use:ec,useCallback:Mt,useContext:Mt,useEffect:Mt,useImperativeHandle:Mt,useLayoutEffect:Mt,useInsertionEffect:Mt,useMemo:Mt,useReducer:Mt,useRef:Mt,useState:Mt,useDebugValue:Mt,useDeferredValue:Mt,useTransition:Mt,useSyncExternalStore:Mt,useId:Mt,useHostTransitionStatus:Mt,useFormState:Mt,useActionState:Mt,useOptimistic:Mt,useMemoCache:Mt,useCacheRefresh:Mt};br.useEffectEvent=Mt;var mv={readContext:dn,use:ec,useCallback:function(e,n){return bn().memoizedState=[e,n===void 0?null:n],e},useContext:dn,useEffect:Wg,useImperativeHandle:function(e,n,i){i=i!=null?i.concat([e]):null,nc(4194308,4,tv.bind(null,n,e),i)},useLayoutEffect:function(e,n){return nc(4194308,4,e,n)},useInsertionEffect:function(e,n){nc(4,2,e,n)},useMemo:function(e,n){var i=bn();n=n===void 0?null:n;var l=e();if(_i){yn(!0);try{e()}finally{yn(!1)}}return i.memoizedState=[l,n],l},useReducer:function(e,n,i){var l=bn();if(i!==void 0){var f=i(n);if(_i){yn(!0);try{i(n)}finally{yn(!1)}}}else f=n;return l.memoizedState=l.baseState=f,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:f},l.queue=e,e=e.dispatch=kS.bind(null,Oe,e),[l.memoizedState,e]},useRef:function(e){var n=bn();return e={current:e},n.memoizedState=e},useState:function(e){e=Gu(e);var n=e.queue,i=uv.bind(null,Oe,n);return n.dispatch=i,[e.memoizedState,i]},useDebugValue:Ku,useDeferredValue:function(e,n){var i=bn();return Yu(i,e,n)},useTransition:function(){var e=Gu(!1);return e=ov.bind(null,Oe,e.queue,!0,!1),bn().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,i){var l=Oe,f=bn();if(Ke){if(i===void 0)throw Error(r(407));i=i()}else{if(i=n(),yt===null)throw Error(r(349));(Ge&127)!==0||Og(l,n,i)}f.memoizedState=i;var h={value:i,getSnapshot:n};return f.queue=h,Wg(Bg.bind(null,l,h,e),[e]),l.flags|=2048,go(9,{destroy:void 0},Lg.bind(null,l,h,i,n),null),i},useId:function(){var e=bn(),n=yt.identifierPrefix;if(Ke){var i=Cs,l=Ns;i=(l&~(1<<32-sn(l)-1)).toString(32)+i,n="_"+n+"R_"+i,i=Xl++,0<i&&(n+="H"+i.toString(32)),n+="_"}else i=hS++,n="_"+n+"r_"+i.toString(32)+"_";return e.memoizedState=n},useHostTransitionStatus:Wu,useFormState:Fg,useActionState:Fg,useOptimistic:function(e){var n=bn();n.memoizedState=n.baseState=e;var i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=i,n=Xu.bind(null,Oe,!0,i),i.dispatch=n,[e,n]},useMemoCache:Uu,useCacheRefresh:function(){return bn().memoizedState=xS.bind(null,Oe)},useEffectEvent:function(e){var n=bn(),i={impl:e};return n.memoizedState=i,function(){if((rt&2)!==0)throw Error(r(440));return i.impl.apply(void 0,arguments)}}},Qu={readContext:dn,use:ec,useCallback:sv,useContext:dn,useEffect:Zu,useImperativeHandle:nv,useInsertionEffect:Qg,useLayoutEffect:ev,useMemo:av,useReducer:tc,useRef:Jg,useState:function(){return tc(Ks)},useDebugValue:Ku,useDeferredValue:function(e,n){var i=zt();return iv(i,mt.memoizedState,e,n)},useTransition:function(){var e=tc(Ks)[0],n=zt().memoizedState;return[typeof e=="boolean"?e:vr(e),n]},useSyncExternalStore:Ig,useId:cv,useHostTransitionStatus:Wu,useFormState:Zg,useActionState:Zg,useOptimistic:function(e,n){var i=zt();return Hg(i,mt,e,n)},useMemoCache:Uu,useCacheRefresh:dv};Qu.useEffectEvent=Xg;var hv={readContext:dn,use:ec,useCallback:sv,useContext:dn,useEffect:Zu,useImperativeHandle:nv,useInsertionEffect:Qg,useLayoutEffect:ev,useMemo:av,useReducer:qu,useRef:Jg,useState:function(){return qu(Ks)},useDebugValue:Ku,useDeferredValue:function(e,n){var i=zt();return mt===null?Yu(i,e,n):iv(i,mt.memoizedState,e,n)},useTransition:function(){var e=qu(Ks)[0],n=zt().memoizedState;return[typeof e=="boolean"?e:vr(e),n]},useSyncExternalStore:Ig,useId:cv,useHostTransitionStatus:Wu,useFormState:Yg,useActionState:Yg,useOptimistic:function(e,n){var i=zt();return mt!==null?Hg(i,mt,e,n):(i.baseState=e,[e,i.queue.dispatch])},useMemoCache:Uu,useCacheRefresh:dv};hv.useEffectEvent=Xg;function ef(e,n,i,l){n=e.memoizedState,i=i(l,n),i=i==null?n:_({},n,i),e.memoizedState=i,e.lanes===0&&(e.updateQueue.baseState=i)}var tf={enqueueSetState:function(e,n,i){e=e._reactInternals;var l=Ln(),f=wa(l);f.payload=n,i!=null&&(f.callback=i),n=Na(e,f,l),n!==null&&(En(n,e,l),pr(n,e,l))},enqueueReplaceState:function(e,n,i){e=e._reactInternals;var l=Ln(),f=wa(l);f.tag=1,f.payload=n,i!=null&&(f.callback=i),n=Na(e,f,l),n!==null&&(En(n,e,l),pr(n,e,l))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var i=Ln(),l=wa(i);l.tag=2,n!=null&&(l.callback=n),n=Na(e,l,i),n!==null&&(En(n,e,i),pr(n,e,i))}};function gv(e,n,i,l,f,h,k){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(l,h,k):n.prototype&&n.prototype.isPureReactComponent?!ir(i,l)||!ir(f,h):!0}function vv(e,n,i,l){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(i,l),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(i,l),n.state!==e&&tf.enqueueReplaceState(n,n.state,null)}function xi(e,n){var i=n;if("ref"in n){i={};for(var l in n)l!=="ref"&&(i[l]=n[l])}if(e=e.defaultProps){i===n&&(i=_({},i));for(var f in e)i[f]===void 0&&(i[f]=e[f])}return i}function yv(e){Ll(e)}function bv(e){console.error(e)}function _v(e){Ll(e)}function ic(e,n){try{var i=e.onUncaughtError;i(n.value,{componentStack:n.stack})}catch(l){setTimeout(function(){throw l})}}function xv(e,n,i){try{var l=e.onCaughtError;l(i.value,{componentStack:i.stack,errorBoundary:n.tag===1?n.stateNode:null})}catch(f){setTimeout(function(){throw f})}}function nf(e,n,i){return i=wa(i),i.tag=3,i.payload={element:null},i.callback=function(){ic(e,n)},i}function kv(e){return e=wa(e),e.tag=3,e}function Sv(e,n,i,l){var f=i.type.getDerivedStateFromError;if(typeof f=="function"){var h=l.value;e.payload=function(){return f(h)},e.callback=function(){xv(n,i,l)}}var k=i.stateNode;k!==null&&typeof k.componentDidCatch=="function"&&(e.callback=function(){xv(n,i,l),typeof f!="function"&&(Ma===null?Ma=new Set([this]):Ma.add(this));var N=l.stack;this.componentDidCatch(l.value,{componentStack:N!==null?N:""})})}function SS(e,n,i,l,f){if(i.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(n=i.alternate,n!==null&&ro(n,i,f,!0),i=Rn.current,i!==null){switch(i.tag){case 31:case 13:return Xn===null?vc():i.alternate===null&&It===0&&(It=3),i.flags&=-257,i.flags|=65536,i.lanes=f,l===Fl?i.flags|=16384:(n=i.updateQueue,n===null?i.updateQueue=new Set([l]):n.add(l),Cf(e,l,f)),!1;case 22:return i.flags|=65536,l===Fl?i.flags|=16384:(n=i.updateQueue,n===null?(n={transitions:null,markerInstances:null,retryQueue:new Set([l])},i.updateQueue=n):(i=n.retryQueue,i===null?n.retryQueue=new Set([l]):i.add(l)),Cf(e,l,f)),!1}throw Error(r(435,i.tag))}return Cf(e,l,f),vc(),!1}if(Ke)return n=Rn.current,n!==null?((n.flags&65536)===0&&(n.flags|=256),n.flags|=65536,n.lanes=f,l!==xu&&(e=Error(r(422),{cause:l}),lr(Kn(e,i)))):(l!==xu&&(n=Error(r(423),{cause:l}),lr(Kn(n,i))),e=e.current.alternate,e.flags|=65536,f&=-f,e.lanes|=f,l=Kn(l,i),f=nf(e.stateNode,l,f),Ru(e,f),It!==4&&(It=2)),!1;var h=Error(r(520),{cause:l});if(h=Kn(h,i),Nr===null?Nr=[h]:Nr.push(h),It!==4&&(It=2),n===null)return!0;l=Kn(l,i),i=n;do{switch(i.tag){case 3:return i.flags|=65536,e=f&-f,i.lanes|=e,e=nf(i.stateNode,l,e),Ru(i,e),!1;case 1:if(n=i.type,h=i.stateNode,(i.flags&128)===0&&(typeof n.getDerivedStateFromError=="function"||h!==null&&typeof h.componentDidCatch=="function"&&(Ma===null||!Ma.has(h))))return i.flags|=65536,f&=-f,i.lanes|=f,f=kv(f),Sv(f,e,i,l),Ru(i,f),!1}i=i.return}while(i!==null);return!1}var sf=Error(r(461)),Zt=!1;function un(e,n,i,l){n.child=e===null?Ng(n,null,i,l):bi(n,e.child,i,l)}function jv(e,n,i,l,f){i=i.render;var h=n.ref;if("ref"in l){var k={};for(var N in l)N!=="ref"&&(k[N]=l[N])}else k=l;return hi(n),l=$u(e,n,i,k,h,f),N=zu(),e!==null&&!Zt?(Hu(e,n,f),Ys(e,n,f)):(Ke&&N&&bu(n),n.flags|=1,un(e,n,l,f),n.child)}function Tv(e,n,i,l,f){if(e===null){var h=i.type;return typeof h=="function"&&!gu(h)&&h.defaultProps===void 0&&i.compare===null?(n.tag=15,n.type=h,wv(e,n,h,l,f)):(e=Hl(i.type,null,l,n,n.mode,f),e.ref=n.ref,e.return=n,n.child=e)}if(h=e.child,!ff(e,f)){var k=h.memoizedProps;if(i=i.compare,i=i!==null?i:ir,i(k,l)&&e.ref===n.ref)return Ys(e,n,f)}return n.flags|=1,e=Vs(h,l),e.ref=n.ref,e.return=n,n.child=e}function wv(e,n,i,l,f){if(e!==null){var h=e.memoizedProps;if(ir(h,l)&&e.ref===n.ref)if(Zt=!1,n.pendingProps=l=h,ff(e,f))(e.flags&131072)!==0&&(Zt=!0);else return n.lanes=e.lanes,Ys(e,n,f)}return af(e,n,i,l,f)}function Nv(e,n,i,l){var f=l.children,h=e!==null?e.memoizedState:null;if(e===null&&n.stateNode===null&&(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),l.mode==="hidden"){if((n.flags&128)!==0){if(h=h!==null?h.baseLanes|i:i,e!==null){for(l=n.child=e.child,f=0;l!==null;)f=f|l.lanes|l.childLanes,l=l.sibling;l=f&~h}else l=0,n.child=null;return Cv(e,n,h,i,l)}if((i&536870912)!==0)n.memoizedState={baseLanes:0,cachePool:null},e!==null&&ql(n,h!==null?h.cachePool:null),h!==null?Ag(n,h):Iu(),Dg(n);else return l=n.lanes=536870912,Cv(e,n,h!==null?h.baseLanes|i:i,i,l)}else h!==null?(ql(n,h.cachePool),Ag(n,h),Ea(),n.memoizedState=null):(e!==null&&ql(n,null),Iu(),Ea());return un(e,n,f,i),n.child}function _r(e,n){return e!==null&&e.tag===22||n.stateNode!==null||(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),n.sibling}function Cv(e,n,i,l,f){var h=Cu();return h=h===null?null:{parent:Gt._currentValue,pool:h},n.memoizedState={baseLanes:i,cachePool:h},e!==null&&ql(n,null),Iu(),Dg(n),e!==null&&ro(e,n,l,!0),n.childLanes=f,null}function oc(e,n){return n=lc({mode:n.mode,children:n.children},e.mode),n.ref=e.ref,e.child=n,n.return=e,n}function Ev(e,n,i){return bi(n,e.child,null,i),e=oc(n,n.pendingProps),e.flags|=2,Mn(n),n.memoizedState=null,e}function jS(e,n,i){var l=n.pendingProps,f=(n.flags&128)!==0;if(n.flags&=-129,e===null){if(Ke){if(l.mode==="hidden")return e=oc(n,l),n.lanes=536870912,_r(null,e);if(Lu(n),(e=_t)?(e=P0(e,Wn),e=e!==null&&e.data==="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:xa!==null?{id:Ns,overflow:Cs}:null,retryLane:536870912,hydrationErrors:null},i=fg(e),i.return=n,n.child=i,cn=n,_t=null)):e=null,e===null)throw Sa(n);return n.lanes=536870912,null}return oc(n,l)}var h=e.memoizedState;if(h!==null){var k=h.dehydrated;if(Lu(n),f)if(n.flags&256)n.flags&=-257,n=Ev(e,n,i);else if(n.memoizedState!==null)n.child=e.child,n.flags|=128,n=null;else throw Error(r(558));else if(Zt||ro(e,n,i,!1),f=(i&e.childLanes)!==0,Zt||f){if(l=yt,l!==null&&(k=qe(l,i),k!==0&&k!==h.retryLane))throw h.retryLane=k,ui(e,k),En(l,e,k),sf;vc(),n=Ev(e,n,i)}else e=h.treeContext,_t=Qn(k.nextSibling),cn=n,Ke=!0,ka=null,Wn=!1,e!==null&&hg(n,e),n=oc(n,l),n.flags|=4096;return n}return e=Vs(e.child,{mode:l.mode,children:l.children}),e.ref=n.ref,n.child=e,e.return=n,e}function rc(e,n){var i=n.ref;if(i===null)e!==null&&e.ref!==null&&(n.flags|=4194816);else{if(typeof i!="function"&&typeof i!="object")throw Error(r(284));(e===null||e.ref!==i)&&(n.flags|=4194816)}}function af(e,n,i,l,f){return hi(n),i=$u(e,n,i,l,void 0,f),l=zu(),e!==null&&!Zt?(Hu(e,n,f),Ys(e,n,f)):(Ke&&l&&bu(n),n.flags|=1,un(e,n,i,f),n.child)}function Av(e,n,i,l,f,h){return hi(n),n.updateQueue=null,i=Mg(n,l,i,f),Rg(e),l=zu(),e!==null&&!Zt?(Hu(e,n,h),Ys(e,n,h)):(Ke&&l&&bu(n),n.flags|=1,un(e,n,i,h),n.child)}function Dv(e,n,i,l,f){if(hi(n),n.stateNode===null){var h=so,k=i.contextType;typeof k=="object"&&k!==null&&(h=dn(k)),h=new i(l,h),n.memoizedState=h.state!==null&&h.state!==void 0?h.state:null,h.updater=tf,n.stateNode=h,h._reactInternals=n,h=n.stateNode,h.props=l,h.state=n.memoizedState,h.refs={},Au(n),k=i.contextType,h.context=typeof k=="object"&&k!==null?dn(k):so,h.state=n.memoizedState,k=i.getDerivedStateFromProps,typeof k=="function"&&(ef(n,i,k,l),h.state=n.memoizedState),typeof i.getDerivedStateFromProps=="function"||typeof h.getSnapshotBeforeUpdate=="function"||typeof h.UNSAFE_componentWillMount!="function"&&typeof h.componentWillMount!="function"||(k=h.state,typeof h.componentWillMount=="function"&&h.componentWillMount(),typeof h.UNSAFE_componentWillMount=="function"&&h.UNSAFE_componentWillMount(),k!==h.state&&tf.enqueueReplaceState(h,h.state,null),hr(n,l,h,f),mr(),h.state=n.memoizedState),typeof h.componentDidMount=="function"&&(n.flags|=4194308),l=!0}else if(e===null){h=n.stateNode;var N=n.memoizedProps,I=xi(i,N);h.props=I;var F=h.context,ee=i.contextType;k=so,typeof ee=="object"&&ee!==null&&(k=dn(ee));var ae=i.getDerivedStateFromProps;ee=typeof ae=="function"||typeof h.getSnapshotBeforeUpdate=="function",N=n.pendingProps!==N,ee||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(N||F!==k)&&vv(n,h,l,k),Ta=!1;var K=n.memoizedState;h.state=K,hr(n,l,h,f),mr(),F=n.memoizedState,N||K!==F||Ta?(typeof ae=="function"&&(ef(n,i,ae,l),F=n.memoizedState),(I=Ta||gv(n,i,I,l,K,F,k))?(ee||typeof h.UNSAFE_componentWillMount!="function"&&typeof h.componentWillMount!="function"||(typeof h.componentWillMount=="function"&&h.componentWillMount(),typeof h.UNSAFE_componentWillMount=="function"&&h.UNSAFE_componentWillMount()),typeof h.componentDidMount=="function"&&(n.flags|=4194308)):(typeof h.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=l,n.memoizedState=F),h.props=l,h.state=F,h.context=k,l=I):(typeof h.componentDidMount=="function"&&(n.flags|=4194308),l=!1)}else{h=n.stateNode,Du(e,n),k=n.memoizedProps,ee=xi(i,k),h.props=ee,ae=n.pendingProps,K=h.context,F=i.contextType,I=so,typeof F=="object"&&F!==null&&(I=dn(F)),N=i.getDerivedStateFromProps,(F=typeof N=="function"||typeof h.getSnapshotBeforeUpdate=="function")||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(k!==ae||K!==I)&&vv(n,h,l,I),Ta=!1,K=n.memoizedState,h.state=K,hr(n,l,h,f),mr();var J=n.memoizedState;k!==ae||K!==J||Ta||e!==null&&e.dependencies!==null&&Ul(e.dependencies)?(typeof N=="function"&&(ef(n,i,N,l),J=n.memoizedState),(ee=Ta||gv(n,i,ee,l,K,J,I)||e!==null&&e.dependencies!==null&&Ul(e.dependencies))?(F||typeof h.UNSAFE_componentWillUpdate!="function"&&typeof h.componentWillUpdate!="function"||(typeof h.componentWillUpdate=="function"&&h.componentWillUpdate(l,J,I),typeof h.UNSAFE_componentWillUpdate=="function"&&h.UNSAFE_componentWillUpdate(l,J,I)),typeof h.componentDidUpdate=="function"&&(n.flags|=4),typeof h.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof h.componentDidUpdate!="function"||k===e.memoizedProps&&K===e.memoizedState||(n.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||k===e.memoizedProps&&K===e.memoizedState||(n.flags|=1024),n.memoizedProps=l,n.memoizedState=J),h.props=l,h.state=J,h.context=I,l=ee):(typeof h.componentDidUpdate!="function"||k===e.memoizedProps&&K===e.memoizedState||(n.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||k===e.memoizedProps&&K===e.memoizedState||(n.flags|=1024),l=!1)}return h=l,rc(e,n),l=(n.flags&128)!==0,h||l?(h=n.stateNode,i=l&&typeof i.getDerivedStateFromError!="function"?null:h.render(),n.flags|=1,e!==null&&l?(n.child=bi(n,e.child,null,f),n.child=bi(n,null,i,f)):un(e,n,i,f),n.memoizedState=h.state,e=n.child):e=Ys(e,n,f),e}function Rv(e,n,i,l){return pi(),n.flags|=256,un(e,n,i,l),n.child}var of={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function rf(e){return{baseLanes:e,cachePool:xg()}}function lf(e,n,i){return e=e!==null?e.childLanes&~i:0,n&&(e|=On),e}function Mv(e,n,i){var l=n.pendingProps,f=!1,h=(n.flags&128)!==0,k;if((k=h)||(k=e!==null&&e.memoizedState===null?!1:($t.current&2)!==0),k&&(f=!0,n.flags&=-129),k=(n.flags&32)!==0,n.flags&=-33,e===null){if(Ke){if(f?Ca(n):Ea(),(e=_t)?(e=P0(e,Wn),e=e!==null&&e.data!=="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:xa!==null?{id:Ns,overflow:Cs}:null,retryLane:536870912,hydrationErrors:null},i=fg(e),i.return=n,n.child=i,cn=n,_t=null)):e=null,e===null)throw Sa(n);return qf(e)?n.lanes=32:n.lanes=536870912,null}var N=l.children;return l=l.fallback,f?(Ea(),f=n.mode,N=lc({mode:"hidden",children:N},f),l=fi(l,f,i,null),N.return=n,l.return=n,N.sibling=l,n.child=N,l=n.child,l.memoizedState=rf(i),l.childLanes=lf(e,k,i),n.memoizedState=of,_r(null,l)):(Ca(n),cf(n,N))}var I=e.memoizedState;if(I!==null&&(N=I.dehydrated,N!==null)){if(h)n.flags&256?(Ca(n),n.flags&=-257,n=df(e,n,i)):n.memoizedState!==null?(Ea(),n.child=e.child,n.flags|=128,n=null):(Ea(),N=l.fallback,f=n.mode,l=lc({mode:"visible",children:l.children},f),N=fi(N,f,i,null),N.flags|=2,l.return=n,N.return=n,l.sibling=N,n.child=l,bi(n,e.child,null,i),l=n.child,l.memoizedState=rf(i),l.childLanes=lf(e,k,i),n.memoizedState=of,n=_r(null,l));else if(Ca(n),qf(N)){if(k=N.nextSibling&&N.nextSibling.dataset,k)var F=k.dgst;k=F,l=Error(r(419)),l.stack="",l.digest=k,lr({value:l,source:null,stack:null}),n=df(e,n,i)}else if(Zt||ro(e,n,i,!1),k=(i&e.childLanes)!==0,Zt||k){if(k=yt,k!==null&&(l=qe(k,i),l!==0&&l!==I.retryLane))throw I.retryLane=l,ui(e,l),En(k,e,l),sf;Vf(N)||vc(),n=df(e,n,i)}else Vf(N)?(n.flags|=192,n.child=e.child,n=null):(e=I.treeContext,_t=Qn(N.nextSibling),cn=n,Ke=!0,ka=null,Wn=!1,e!==null&&hg(n,e),n=cf(n,l.children),n.flags|=4096);return n}return f?(Ea(),N=l.fallback,f=n.mode,I=e.child,F=I.sibling,l=Vs(I,{mode:"hidden",children:l.children}),l.subtreeFlags=I.subtreeFlags&65011712,F!==null?N=Vs(F,N):(N=fi(N,f,i,null),N.flags|=2),N.return=n,l.return=n,l.sibling=N,n.child=l,_r(null,l),l=n.child,N=e.child.memoizedState,N===null?N=rf(i):(f=N.cachePool,f!==null?(I=Gt._currentValue,f=f.parent!==I?{parent:I,pool:I}:f):f=xg(),N={baseLanes:N.baseLanes|i,cachePool:f}),l.memoizedState=N,l.childLanes=lf(e,k,i),n.memoizedState=of,_r(e.child,l)):(Ca(n),i=e.child,e=i.sibling,i=Vs(i,{mode:"visible",children:l.children}),i.return=n,i.sibling=null,e!==null&&(k=n.deletions,k===null?(n.deletions=[e],n.flags|=16):k.push(e)),n.child=i,n.memoizedState=null,i)}function cf(e,n){return n=lc({mode:"visible",children:n},e.mode),n.return=e,e.child=n}function lc(e,n){return e=Dn(22,e,null,n),e.lanes=0,e}function df(e,n,i){return bi(n,e.child,null,i),e=cf(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function Iv(e,n,i){e.lanes|=n;var l=e.alternate;l!==null&&(l.lanes|=n),ju(e.return,n,i)}function uf(e,n,i,l,f,h){var k=e.memoizedState;k===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:l,tail:i,tailMode:f,treeForkCount:h}:(k.isBackwards=n,k.rendering=null,k.renderingStartTime=0,k.last=l,k.tail=i,k.tailMode=f,k.treeForkCount=h)}function Ov(e,n,i){var l=n.pendingProps,f=l.revealOrder,h=l.tail;l=l.children;var k=$t.current,N=(k&2)!==0;if(N?(k=k&1|2,n.flags|=128):k&=1,xe($t,k),un(e,n,l,i),l=Ke?rr:0,!N&&e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Iv(e,i,n);else if(e.tag===19)Iv(e,i,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(f){case"forwards":for(i=n.child,f=null;i!==null;)e=i.alternate,e!==null&&Jl(e)===null&&(f=i),i=i.sibling;i=f,i===null?(f=n.child,n.child=null):(f=i.sibling,i.sibling=null),uf(n,!1,f,i,h,l);break;case"backwards":case"unstable_legacy-backwards":for(i=null,f=n.child,n.child=null;f!==null;){if(e=f.alternate,e!==null&&Jl(e)===null){n.child=f;break}e=f.sibling,f.sibling=i,i=f,f=e}uf(n,!0,i,null,h,l);break;case"together":uf(n,!1,null,null,void 0,l);break;default:n.memoizedState=null}return n.child}function Ys(e,n,i){if(e!==null&&(n.dependencies=e.dependencies),Ra|=n.lanes,(i&n.childLanes)===0)if(e!==null){if(ro(e,n,i,!1),(i&n.childLanes)===0)return null}else return null;if(e!==null&&n.child!==e.child)throw Error(r(153));if(n.child!==null){for(e=n.child,i=Vs(e,e.pendingProps),n.child=i,i.return=n;e.sibling!==null;)e=e.sibling,i=i.sibling=Vs(e,e.pendingProps),i.return=n;i.sibling=null}return n.child}function ff(e,n){return(e.lanes&n)!==0?!0:(e=e.dependencies,!!(e!==null&&Ul(e)))}function TS(e,n,i){switch(n.tag){case 3:fe(n,n.stateNode.containerInfo),ja(n,Gt,e.memoizedState.cache),pi();break;case 27:case 5:Vt(n);break;case 4:fe(n,n.stateNode.containerInfo);break;case 10:ja(n,n.type,n.memoizedProps.value);break;case 31:if(n.memoizedState!==null)return n.flags|=128,Lu(n),null;break;case 13:var l=n.memoizedState;if(l!==null)return l.dehydrated!==null?(Ca(n),n.flags|=128,null):(i&n.child.childLanes)!==0?Mv(e,n,i):(Ca(n),e=Ys(e,n,i),e!==null?e.sibling:null);Ca(n);break;case 19:var f=(e.flags&128)!==0;if(l=(i&n.childLanes)!==0,l||(ro(e,n,i,!1),l=(i&n.childLanes)!==0),f){if(l)return Ov(e,n,i);n.flags|=128}if(f=n.memoizedState,f!==null&&(f.rendering=null,f.tail=null,f.lastEffect=null),xe($t,$t.current),l)break;return null;case 22:return n.lanes=0,Nv(e,n,i,n.pendingProps);case 24:ja(n,Gt,e.memoizedState.cache)}return Ys(e,n,i)}function Lv(e,n,i){if(e!==null)if(e.memoizedProps!==n.pendingProps)Zt=!0;else{if(!ff(e,i)&&(n.flags&128)===0)return Zt=!1,TS(e,n,i);Zt=(e.flags&131072)!==0}else Zt=!1,Ke&&(n.flags&1048576)!==0&&mg(n,rr,n.index);switch(n.lanes=0,n.tag){case 16:e:{var l=n.pendingProps;if(e=vi(n.elementType),n.type=e,typeof e=="function")gu(e)?(l=xi(e,l),n.tag=1,n=Dv(null,n,e,l,i)):(n.tag=0,n=af(null,n,e,l,i));else{if(e!=null){var f=e.$$typeof;if(f===L){n.tag=11,n=jv(null,n,e,l,i);break e}else if(f===H){n.tag=14,n=Tv(null,n,e,l,i);break e}}throw n=X(e)||e,Error(r(306,n,""))}}return n;case 0:return af(e,n,n.type,n.pendingProps,i);case 1:return l=n.type,f=xi(l,n.pendingProps),Dv(e,n,l,f,i);case 3:e:{if(fe(n,n.stateNode.containerInfo),e===null)throw Error(r(387));l=n.pendingProps;var h=n.memoizedState;f=h.element,Du(e,n),hr(n,l,null,i);var k=n.memoizedState;if(l=k.cache,ja(n,Gt,l),l!==h.cache&&Tu(n,[Gt],i,!0),mr(),l=k.element,h.isDehydrated)if(h={element:l,isDehydrated:!1,cache:k.cache},n.updateQueue.baseState=h,n.memoizedState=h,n.flags&256){n=Rv(e,n,l,i);break e}else if(l!==f){f=Kn(Error(r(424)),n),lr(f),n=Rv(e,n,l,i);break e}else{switch(e=n.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(_t=Qn(e.firstChild),cn=n,Ke=!0,ka=null,Wn=!0,i=Ng(n,null,l,i),n.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling}else{if(pi(),l===f){n=Ys(e,n,i);break e}un(e,n,l,i)}n=n.child}return n;case 26:return rc(e,n),e===null?(i=Z0(n.type,null,n.pendingProps,null))?n.memoizedState=i:Ke||(i=n.type,e=n.pendingProps,l=jc(Xe.current).createElement(i),l[et]=n,l[ut]=e,fn(l,i,e),an(l),n.stateNode=l):n.memoizedState=Z0(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return Vt(n),e===null&&Ke&&(l=n.stateNode=q0(n.type,n.pendingProps,Xe.current),cn=n,Wn=!0,f=_t,Ba(n.type)?(Gf=f,_t=Qn(l.firstChild)):_t=f),un(e,n,n.pendingProps.children,i),rc(e,n),e===null&&(n.flags|=4194304),n.child;case 5:return e===null&&Ke&&((f=l=_t)&&(l=t2(l,n.type,n.pendingProps,Wn),l!==null?(n.stateNode=l,cn=n,_t=Qn(l.firstChild),Wn=!1,f=!0):f=!1),f||Sa(n)),Vt(n),f=n.type,h=n.pendingProps,k=e!==null?e.memoizedProps:null,l=h.children,Hf(f,h)?l=null:k!==null&&Hf(f,k)&&(n.flags|=32),n.memoizedState!==null&&(f=$u(e,n,gS,null,null,i),Or._currentValue=f),rc(e,n),un(e,n,l,i),n.child;case 6:return e===null&&Ke&&((e=i=_t)&&(i=n2(i,n.pendingProps,Wn),i!==null?(n.stateNode=i,cn=n,_t=null,e=!0):e=!1),e||Sa(n)),null;case 13:return Mv(e,n,i);case 4:return fe(n,n.stateNode.containerInfo),l=n.pendingProps,e===null?n.child=bi(n,null,l,i):un(e,n,l,i),n.child;case 11:return jv(e,n,n.type,n.pendingProps,i);case 7:return un(e,n,n.pendingProps,i),n.child;case 8:return un(e,n,n.pendingProps.children,i),n.child;case 12:return un(e,n,n.pendingProps.children,i),n.child;case 10:return l=n.pendingProps,ja(n,n.type,l.value),un(e,n,l.children,i),n.child;case 9:return f=n.type._context,l=n.pendingProps.children,hi(n),f=dn(f),l=l(f),n.flags|=1,un(e,n,l,i),n.child;case 14:return Tv(e,n,n.type,n.pendingProps,i);case 15:return wv(e,n,n.type,n.pendingProps,i);case 19:return Ov(e,n,i);case 31:return jS(e,n,i);case 22:return Nv(e,n,i,n.pendingProps);case 24:return hi(n),l=dn(Gt),e===null?(f=Cu(),f===null&&(f=yt,h=wu(),f.pooledCache=h,h.refCount++,h!==null&&(f.pooledCacheLanes|=i),f=h),n.memoizedState={parent:l,cache:f},Au(n),ja(n,Gt,f)):((e.lanes&i)!==0&&(Du(e,n),hr(n,null,null,i),mr()),f=e.memoizedState,h=n.memoizedState,f.parent!==l?(f={parent:l,cache:l},n.memoizedState=f,n.lanes===0&&(n.memoizedState=n.updateQueue.baseState=f),ja(n,Gt,l)):(l=h.cache,ja(n,Gt,l),l!==f.cache&&Tu(n,[Gt],i,!0))),un(e,n,n.pendingProps.children,i),n.child;case 29:throw n.pendingProps}throw Error(r(156,n.tag))}function Js(e){e.flags|=4}function pf(e,n,i,l,f){if((n=(e.mode&32)!==0)&&(n=!1),n){if(e.flags|=16777216,(f&335544128)===f)if(e.stateNode.complete)e.flags|=8192;else if(c0())e.flags|=8192;else throw yi=Fl,Eu}else e.flags&=-16777217}function Bv(e,n){if(n.type!=="stylesheet"||(n.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!X0(n))if(c0())e.flags|=8192;else throw yi=Fl,Eu}function cc(e,n){n!==null&&(e.flags|=4),e.flags&16384&&(n=e.tag!==22?Tl():536870912,e.lanes|=n,_o|=n)}function xr(e,n){if(!Ke)switch(e.tailMode){case"hidden":n=e.tail;for(var i=null;n!==null;)n.alternate!==null&&(i=n),n=n.sibling;i===null?e.tail=null:i.sibling=null;break;case"collapsed":i=e.tail;for(var l=null;i!==null;)i.alternate!==null&&(l=i),i=i.sibling;l===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:l.sibling=null}}function xt(e){var n=e.alternate!==null&&e.alternate.child===e.child,i=0,l=0;if(n)for(var f=e.child;f!==null;)i|=f.lanes|f.childLanes,l|=f.subtreeFlags&65011712,l|=f.flags&65011712,f.return=e,f=f.sibling;else for(f=e.child;f!==null;)i|=f.lanes|f.childLanes,l|=f.subtreeFlags,l|=f.flags,f.return=e,f=f.sibling;return e.subtreeFlags|=l,e.childLanes=i,n}function wS(e,n,i){var l=n.pendingProps;switch(_u(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return xt(n),null;case 1:return xt(n),null;case 3:return i=n.stateNode,l=null,e!==null&&(l=e.memoizedState.cache),n.memoizedState.cache!==l&&(n.flags|=2048),Fs(Gt),be(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(e===null||e.child===null)&&(oo(n)?Js(n):e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,ku())),xt(n),null;case 26:var f=n.type,h=n.memoizedState;return e===null?(Js(n),h!==null?(xt(n),Bv(n,h)):(xt(n),pf(n,f,null,l,i))):h?h!==e.memoizedState?(Js(n),xt(n),Bv(n,h)):(xt(n),n.flags&=-16777217):(e=e.memoizedProps,e!==l&&Js(n),xt(n),pf(n,f,e,l,i)),null;case 27:if(ie(n),i=Xe.current,f=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==l&&Js(n);else{if(!l){if(n.stateNode===null)throw Error(r(166));return xt(n),null}e=ke.current,oo(n)?gg(n):(e=q0(f,l,i),n.stateNode=e,Js(n))}return xt(n),null;case 5:if(ie(n),f=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==l&&Js(n);else{if(!l){if(n.stateNode===null)throw Error(r(166));return xt(n),null}if(h=ke.current,oo(n))gg(n);else{var k=jc(Xe.current);switch(h){case 1:h=k.createElementNS("http://www.w3.org/2000/svg",f);break;case 2:h=k.createElementNS("http://www.w3.org/1998/Math/MathML",f);break;default:switch(f){case"svg":h=k.createElementNS("http://www.w3.org/2000/svg",f);break;case"math":h=k.createElementNS("http://www.w3.org/1998/Math/MathML",f);break;case"script":h=k.createElement("div"),h.innerHTML="<script><\/script>",h=h.removeChild(h.firstChild);break;case"select":h=typeof l.is=="string"?k.createElement("select",{is:l.is}):k.createElement("select"),l.multiple?h.multiple=!0:l.size&&(h.size=l.size);break;default:h=typeof l.is=="string"?k.createElement(f,{is:l.is}):k.createElement(f)}}h[et]=n,h[ut]=l;e:for(k=n.child;k!==null;){if(k.tag===5||k.tag===6)h.appendChild(k.stateNode);else if(k.tag!==4&&k.tag!==27&&k.child!==null){k.child.return=k,k=k.child;continue}if(k===n)break e;for(;k.sibling===null;){if(k.return===null||k.return===n)break e;k=k.return}k.sibling.return=k.return,k=k.sibling}n.stateNode=h;e:switch(fn(h,f,l),f){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&Js(n)}}return xt(n),pf(n,n.type,e===null?null:e.memoizedProps,n.pendingProps,i),null;case 6:if(e&&n.stateNode!=null)e.memoizedProps!==l&&Js(n);else{if(typeof l!="string"&&n.stateNode===null)throw Error(r(166));if(e=Xe.current,oo(n)){if(e=n.stateNode,i=n.memoizedProps,l=null,f=cn,f!==null)switch(f.tag){case 27:case 5:l=f.memoizedProps}e[et]=n,e=!!(e.nodeValue===i||l!==null&&l.suppressHydrationWarning===!0||M0(e.nodeValue,i)),e||Sa(n,!0)}else e=jc(e).createTextNode(l),e[et]=n,n.stateNode=e}return xt(n),null;case 31:if(i=n.memoizedState,e===null||e.memoizedState!==null){if(l=oo(n),i!==null){if(e===null){if(!l)throw Error(r(318));if(e=n.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(557));e[et]=n}else pi(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;xt(n),e=!1}else i=ku(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),e=!0;if(!e)return n.flags&256?(Mn(n),n):(Mn(n),null);if((n.flags&128)!==0)throw Error(r(558))}return xt(n),null;case 13:if(l=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(f=oo(n),l!==null&&l.dehydrated!==null){if(e===null){if(!f)throw Error(r(318));if(f=n.memoizedState,f=f!==null?f.dehydrated:null,!f)throw Error(r(317));f[et]=n}else pi(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;xt(n),f=!1}else f=ku(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=f),f=!0;if(!f)return n.flags&256?(Mn(n),n):(Mn(n),null)}return Mn(n),(n.flags&128)!==0?(n.lanes=i,n):(i=l!==null,e=e!==null&&e.memoizedState!==null,i&&(l=n.child,f=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(f=l.alternate.memoizedState.cachePool.pool),h=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(h=l.memoizedState.cachePool.pool),h!==f&&(l.flags|=2048)),i!==e&&i&&(n.child.flags|=8192),cc(n,n.updateQueue),xt(n),null);case 4:return be(),e===null&&Of(n.stateNode.containerInfo),xt(n),null;case 10:return Fs(n.type),xt(n),null;case 19:if(de($t),l=n.memoizedState,l===null)return xt(n),null;if(f=(n.flags&128)!==0,h=l.rendering,h===null)if(f)xr(l,!1);else{if(It!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(h=Jl(e),h!==null){for(n.flags|=128,xr(l,!1),e=h.updateQueue,n.updateQueue=e,cc(n,e),n.subtreeFlags=0,e=i,i=n.child;i!==null;)ug(i,e),i=i.sibling;return xe($t,$t.current&1|2),Ke&&qs(n,l.treeForkCount),n.child}e=e.sibling}l.tail!==null&&tn()>mc&&(n.flags|=128,f=!0,xr(l,!1),n.lanes=4194304)}else{if(!f)if(e=Jl(h),e!==null){if(n.flags|=128,f=!0,e=e.updateQueue,n.updateQueue=e,cc(n,e),xr(l,!0),l.tail===null&&l.tailMode==="hidden"&&!h.alternate&&!Ke)return xt(n),null}else 2*tn()-l.renderingStartTime>mc&&i!==536870912&&(n.flags|=128,f=!0,xr(l,!1),n.lanes=4194304);l.isBackwards?(h.sibling=n.child,n.child=h):(e=l.last,e!==null?e.sibling=h:n.child=h,l.last=h)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=tn(),e.sibling=null,i=$t.current,xe($t,f?i&1|2:i&1),Ke&&qs(n,l.treeForkCount),e):(xt(n),null);case 22:case 23:return Mn(n),Ou(),l=n.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(n.flags|=8192):l&&(n.flags|=8192),l?(i&536870912)!==0&&(n.flags&128)===0&&(xt(n),n.subtreeFlags&6&&(n.flags|=8192)):xt(n),i=n.updateQueue,i!==null&&cc(n,i.retryQueue),i=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(i=e.memoizedState.cachePool.pool),l=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(l=n.memoizedState.cachePool.pool),l!==i&&(n.flags|=2048),e!==null&&de(gi),null;case 24:return i=null,e!==null&&(i=e.memoizedState.cache),n.memoizedState.cache!==i&&(n.flags|=2048),Fs(Gt),xt(n),null;case 25:return null;case 30:return null}throw Error(r(156,n.tag))}function NS(e,n){switch(_u(n),n.tag){case 1:return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Fs(Gt),be(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 26:case 27:case 5:return ie(n),null;case 31:if(n.memoizedState!==null){if(Mn(n),n.alternate===null)throw Error(r(340));pi()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 13:if(Mn(n),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(r(340));pi()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return de($t),null;case 4:return be(),null;case 10:return Fs(n.type),null;case 22:case 23:return Mn(n),Ou(),e!==null&&de(gi),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 24:return Fs(Gt),null;case 25:return null;default:return null}}function $v(e,n){switch(_u(n),n.tag){case 3:Fs(Gt),be();break;case 26:case 27:case 5:ie(n);break;case 4:be();break;case 31:n.memoizedState!==null&&Mn(n);break;case 13:Mn(n);break;case 19:de($t);break;case 10:Fs(n.type);break;case 22:case 23:Mn(n),Ou(),e!==null&&de(gi);break;case 24:Fs(Gt)}}function kr(e,n){try{var i=n.updateQueue,l=i!==null?i.lastEffect:null;if(l!==null){var f=l.next;i=f;do{if((i.tag&e)===e){l=void 0;var h=i.create,k=i.inst;l=h(),k.destroy=l}i=i.next}while(i!==f)}}catch(N){pt(n,n.return,N)}}function Aa(e,n,i){try{var l=n.updateQueue,f=l!==null?l.lastEffect:null;if(f!==null){var h=f.next;l=h;do{if((l.tag&e)===e){var k=l.inst,N=k.destroy;if(N!==void 0){k.destroy=void 0,f=n;var I=i,F=N;try{F()}catch(ee){pt(f,I,ee)}}}l=l.next}while(l!==h)}}catch(ee){pt(n,n.return,ee)}}function zv(e){var n=e.updateQueue;if(n!==null){var i=e.stateNode;try{Eg(n,i)}catch(l){pt(e,e.return,l)}}}function Hv(e,n,i){i.props=xi(e.type,e.memoizedProps),i.state=e.memoizedState;try{i.componentWillUnmount()}catch(l){pt(e,n,l)}}function Sr(e,n){try{var i=e.ref;if(i!==null){switch(e.tag){case 26:case 27:case 5:var l=e.stateNode;break;case 30:l=e.stateNode;break;default:l=e.stateNode}typeof i=="function"?e.refCleanup=i(l):i.current=l}}catch(f){pt(e,n,f)}}function Es(e,n){var i=e.ref,l=e.refCleanup;if(i!==null)if(typeof l=="function")try{l()}catch(f){pt(e,n,f)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof i=="function")try{i(null)}catch(f){pt(e,n,f)}else i.current=null}function Pv(e){var n=e.type,i=e.memoizedProps,l=e.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":i.autoFocus&&l.focus();break e;case"img":i.src?l.src=i.src:i.srcSet&&(l.srcset=i.srcSet)}}catch(f){pt(e,e.return,f)}}function mf(e,n,i){try{var l=e.stateNode;YS(l,e.type,i,n),l[ut]=n}catch(f){pt(e,e.return,f)}}function Uv(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Ba(e.type)||e.tag===4}function hf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Uv(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Ba(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function gf(e,n,i){var l=e.tag;if(l===5||l===6)e=e.stateNode,n?(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i).insertBefore(e,n):(n=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,n.appendChild(e),i=i._reactRootContainer,i!=null||n.onclick!==null||(n.onclick=Ps));else if(l!==4&&(l===27&&Ba(e.type)&&(i=e.stateNode,n=null),e=e.child,e!==null))for(gf(e,n,i),e=e.sibling;e!==null;)gf(e,n,i),e=e.sibling}function dc(e,n,i){var l=e.tag;if(l===5||l===6)e=e.stateNode,n?i.insertBefore(e,n):i.appendChild(e);else if(l!==4&&(l===27&&Ba(e.type)&&(i=e.stateNode),e=e.child,e!==null))for(dc(e,n,i),e=e.sibling;e!==null;)dc(e,n,i),e=e.sibling}function Vv(e){var n=e.stateNode,i=e.memoizedProps;try{for(var l=e.type,f=n.attributes;f.length;)n.removeAttributeNode(f[0]);fn(n,l,i),n[et]=e,n[ut]=i}catch(h){pt(e,e.return,h)}}var Ws=!1,Kt=!1,vf=!1,qv=typeof WeakSet=="function"?WeakSet:Set,on=null;function CS(e,n){if(e=e.containerInfo,$f=Dc,e=ng(e),cu(e)){if("selectionStart"in e)var i={start:e.selectionStart,end:e.selectionEnd};else e:{i=(i=e.ownerDocument)&&i.defaultView||window;var l=i.getSelection&&i.getSelection();if(l&&l.rangeCount!==0){i=l.anchorNode;var f=l.anchorOffset,h=l.focusNode;l=l.focusOffset;try{i.nodeType,h.nodeType}catch{i=null;break e}var k=0,N=-1,I=-1,F=0,ee=0,ae=e,K=null;t:for(;;){for(var J;ae!==i||f!==0&&ae.nodeType!==3||(N=k+f),ae!==h||l!==0&&ae.nodeType!==3||(I=k+l),ae.nodeType===3&&(k+=ae.nodeValue.length),(J=ae.firstChild)!==null;)K=ae,ae=J;for(;;){if(ae===e)break t;if(K===i&&++F===f&&(N=k),K===h&&++ee===l&&(I=k),(J=ae.nextSibling)!==null)break;ae=K,K=ae.parentNode}ae=J}i=N===-1||I===-1?null:{start:N,end:I}}else i=null}i=i||{start:0,end:0}}else i=null;for(zf={focusedElem:e,selectionRange:i},Dc=!1,on=n;on!==null;)if(n=on,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,on=e;else for(;on!==null;){switch(n=on,h=n.alternate,e=n.flags,n.tag){case 0:if((e&4)!==0&&(e=n.updateQueue,e=e!==null?e.events:null,e!==null))for(i=0;i<e.length;i++)f=e[i],f.ref.impl=f.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&h!==null){e=void 0,i=n,f=h.memoizedProps,h=h.memoizedState,l=i.stateNode;try{var _e=xi(i.type,f);e=l.getSnapshotBeforeUpdate(_e,h),l.__reactInternalSnapshotBeforeUpdate=e}catch(Ae){pt(i,i.return,Ae)}}break;case 3:if((e&1024)!==0){if(e=n.stateNode.containerInfo,i=e.nodeType,i===9)Uf(e);else if(i===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Uf(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(r(163))}if(e=n.sibling,e!==null){e.return=n.return,on=e;break}on=n.return}}function Gv(e,n,i){var l=i.flags;switch(i.tag){case 0:case 11:case 15:Qs(e,i),l&4&&kr(5,i);break;case 1:if(Qs(e,i),l&4)if(e=i.stateNode,n===null)try{e.componentDidMount()}catch(k){pt(i,i.return,k)}else{var f=xi(i.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(f,n,e.__reactInternalSnapshotBeforeUpdate)}catch(k){pt(i,i.return,k)}}l&64&&zv(i),l&512&&Sr(i,i.return);break;case 3:if(Qs(e,i),l&64&&(e=i.updateQueue,e!==null)){if(n=null,i.child!==null)switch(i.child.tag){case 27:case 5:n=i.child.stateNode;break;case 1:n=i.child.stateNode}try{Eg(e,n)}catch(k){pt(i,i.return,k)}}break;case 27:n===null&&l&4&&Vv(i);case 26:case 5:Qs(e,i),n===null&&l&4&&Pv(i),l&512&&Sr(i,i.return);break;case 12:Qs(e,i);break;case 31:Qs(e,i),l&4&&Kv(e,i);break;case 13:Qs(e,i),l&4&&Yv(e,i),l&64&&(e=i.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(i=BS.bind(null,i),s2(e,i))));break;case 22:if(l=i.memoizedState!==null||Ws,!l){n=n!==null&&n.memoizedState!==null||Kt,f=Ws;var h=Kt;Ws=l,(Kt=n)&&!h?ea(e,i,(i.subtreeFlags&8772)!==0):Qs(e,i),Ws=f,Kt=h}break;case 30:break;default:Qs(e,i)}}function Fv(e){var n=e.alternate;n!==null&&(e.alternate=null,Fv(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&Fd(n)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Nt=null,Tn=!1;function Xs(e,n,i){for(i=i.child;i!==null;)Zv(e,n,i),i=i.sibling}function Zv(e,n,i){if(wt&&typeof wt.onCommitFiberUnmount=="function")try{wt.onCommitFiberUnmount(nn,i)}catch{}switch(i.tag){case 26:Kt||Es(i,n),Xs(e,n,i),i.memoizedState?i.memoizedState.count--:i.stateNode&&(i=i.stateNode,i.parentNode.removeChild(i));break;case 27:Kt||Es(i,n);var l=Nt,f=Tn;Ba(i.type)&&(Nt=i.stateNode,Tn=!1),Xs(e,n,i),Rr(i.stateNode),Nt=l,Tn=f;break;case 5:Kt||Es(i,n);case 6:if(l=Nt,f=Tn,Nt=null,Xs(e,n,i),Nt=l,Tn=f,Nt!==null)if(Tn)try{(Nt.nodeType===9?Nt.body:Nt.nodeName==="HTML"?Nt.ownerDocument.body:Nt).removeChild(i.stateNode)}catch(h){pt(i,n,h)}else try{Nt.removeChild(i.stateNode)}catch(h){pt(i,n,h)}break;case 18:Nt!==null&&(Tn?(e=Nt,z0(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,i.stateNode),Co(e)):z0(Nt,i.stateNode));break;case 4:l=Nt,f=Tn,Nt=i.stateNode.containerInfo,Tn=!0,Xs(e,n,i),Nt=l,Tn=f;break;case 0:case 11:case 14:case 15:Aa(2,i,n),Kt||Aa(4,i,n),Xs(e,n,i);break;case 1:Kt||(Es(i,n),l=i.stateNode,typeof l.componentWillUnmount=="function"&&Hv(i,n,l)),Xs(e,n,i);break;case 21:Xs(e,n,i);break;case 22:Kt=(l=Kt)||i.memoizedState!==null,Xs(e,n,i),Kt=l;break;default:Xs(e,n,i)}}function Kv(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Co(e)}catch(i){pt(n,n.return,i)}}}function Yv(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Co(e)}catch(i){pt(n,n.return,i)}}function ES(e){switch(e.tag){case 31:case 13:case 19:var n=e.stateNode;return n===null&&(n=e.stateNode=new qv),n;case 22:return e=e.stateNode,n=e._retryCache,n===null&&(n=e._retryCache=new qv),n;default:throw Error(r(435,e.tag))}}function uc(e,n){var i=ES(e);n.forEach(function(l){if(!i.has(l)){i.add(l);var f=$S.bind(null,e,l);l.then(f,f)}})}function wn(e,n){var i=n.deletions;if(i!==null)for(var l=0;l<i.length;l++){var f=i[l],h=e,k=n,N=k;e:for(;N!==null;){switch(N.tag){case 27:if(Ba(N.type)){Nt=N.stateNode,Tn=!1;break e}break;case 5:Nt=N.stateNode,Tn=!1;break e;case 3:case 4:Nt=N.stateNode.containerInfo,Tn=!0;break e}N=N.return}if(Nt===null)throw Error(r(160));Zv(h,k,f),Nt=null,Tn=!1,h=f.alternate,h!==null&&(h.return=null),f.return=null}if(n.subtreeFlags&13886)for(n=n.child;n!==null;)Jv(n,e),n=n.sibling}var ms=null;function Jv(e,n){var i=e.alternate,l=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:wn(n,e),Nn(e),l&4&&(Aa(3,e,e.return),kr(3,e),Aa(5,e,e.return));break;case 1:wn(n,e),Nn(e),l&512&&(Kt||i===null||Es(i,i.return)),l&64&&Ws&&(e=e.updateQueue,e!==null&&(l=e.callbacks,l!==null&&(i=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=i===null?l:i.concat(l))));break;case 26:var f=ms;if(wn(n,e),Nn(e),l&512&&(Kt||i===null||Es(i,i.return)),l&4){var h=i!==null?i.memoizedState:null;if(l=e.memoizedState,i===null)if(l===null)if(e.stateNode===null){e:{l=e.type,i=e.memoizedProps,f=f.ownerDocument||f;t:switch(l){case"title":h=f.getElementsByTagName("title")[0],(!h||h[Jo]||h[et]||h.namespaceURI==="http://www.w3.org/2000/svg"||h.hasAttribute("itemprop"))&&(h=f.createElement(l),f.head.insertBefore(h,f.querySelector("head > title"))),fn(h,l,i),h[et]=e,an(h),l=h;break e;case"link":var k=J0("link","href",f).get(l+(i.href||""));if(k){for(var N=0;N<k.length;N++)if(h=k[N],h.getAttribute("href")===(i.href==null||i.href===""?null:i.href)&&h.getAttribute("rel")===(i.rel==null?null:i.rel)&&h.getAttribute("title")===(i.title==null?null:i.title)&&h.getAttribute("crossorigin")===(i.crossOrigin==null?null:i.crossOrigin)){k.splice(N,1);break t}}h=f.createElement(l),fn(h,l,i),f.head.appendChild(h);break;case"meta":if(k=J0("meta","content",f).get(l+(i.content||""))){for(N=0;N<k.length;N++)if(h=k[N],h.getAttribute("content")===(i.content==null?null:""+i.content)&&h.getAttribute("name")===(i.name==null?null:i.name)&&h.getAttribute("property")===(i.property==null?null:i.property)&&h.getAttribute("http-equiv")===(i.httpEquiv==null?null:i.httpEquiv)&&h.getAttribute("charset")===(i.charSet==null?null:i.charSet)){k.splice(N,1);break t}}h=f.createElement(l),fn(h,l,i),f.head.appendChild(h);break;default:throw Error(r(468,l))}h[et]=e,an(h),l=h}e.stateNode=l}else W0(f,e.type,e.stateNode);else e.stateNode=Y0(f,l,e.memoizedProps);else h!==l?(h===null?i.stateNode!==null&&(i=i.stateNode,i.parentNode.removeChild(i)):h.count--,l===null?W0(f,e.type,e.stateNode):Y0(f,l,e.memoizedProps)):l===null&&e.stateNode!==null&&mf(e,e.memoizedProps,i.memoizedProps)}break;case 27:wn(n,e),Nn(e),l&512&&(Kt||i===null||Es(i,i.return)),i!==null&&l&4&&mf(e,e.memoizedProps,i.memoizedProps);break;case 5:if(wn(n,e),Nn(e),l&512&&(Kt||i===null||Es(i,i.return)),e.flags&32){f=e.stateNode;try{Ji(f,"")}catch(_e){pt(e,e.return,_e)}}l&4&&e.stateNode!=null&&(f=e.memoizedProps,mf(e,f,i!==null?i.memoizedProps:f)),l&1024&&(vf=!0);break;case 6:if(wn(n,e),Nn(e),l&4){if(e.stateNode===null)throw Error(r(162));l=e.memoizedProps,i=e.stateNode;try{i.nodeValue=l}catch(_e){pt(e,e.return,_e)}}break;case 3:if(Nc=null,f=ms,ms=Tc(n.containerInfo),wn(n,e),ms=f,Nn(e),l&4&&i!==null&&i.memoizedState.isDehydrated)try{Co(n.containerInfo)}catch(_e){pt(e,e.return,_e)}vf&&(vf=!1,Wv(e));break;case 4:l=ms,ms=Tc(e.stateNode.containerInfo),wn(n,e),Nn(e),ms=l;break;case 12:wn(n,e),Nn(e);break;case 31:wn(n,e),Nn(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,uc(e,l)));break;case 13:wn(n,e),Nn(e),e.child.flags&8192&&e.memoizedState!==null!=(i!==null&&i.memoizedState!==null)&&(pc=tn()),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,uc(e,l)));break;case 22:f=e.memoizedState!==null;var I=i!==null&&i.memoizedState!==null,F=Ws,ee=Kt;if(Ws=F||f,Kt=ee||I,wn(n,e),Kt=ee,Ws=F,Nn(e),l&8192)e:for(n=e.stateNode,n._visibility=f?n._visibility&-2:n._visibility|1,f&&(i===null||I||Ws||Kt||ki(e)),i=null,n=e;;){if(n.tag===5||n.tag===26){if(i===null){I=i=n;try{if(h=I.stateNode,f)k=h.style,typeof k.setProperty=="function"?k.setProperty("display","none","important"):k.display="none";else{N=I.stateNode;var ae=I.memoizedProps.style,K=ae!=null&&ae.hasOwnProperty("display")?ae.display:null;N.style.display=K==null||typeof K=="boolean"?"":(""+K).trim()}}catch(_e){pt(I,I.return,_e)}}}else if(n.tag===6){if(i===null){I=n;try{I.stateNode.nodeValue=f?"":I.memoizedProps}catch(_e){pt(I,I.return,_e)}}}else if(n.tag===18){if(i===null){I=n;try{var J=I.stateNode;f?H0(J,!0):H0(I.stateNode,!1)}catch(_e){pt(I,I.return,_e)}}}else if((n.tag!==22&&n.tag!==23||n.memoizedState===null||n===e)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break e;for(;n.sibling===null;){if(n.return===null||n.return===e)break e;i===n&&(i=null),n=n.return}i===n&&(i=null),n.sibling.return=n.return,n=n.sibling}l&4&&(l=e.updateQueue,l!==null&&(i=l.retryQueue,i!==null&&(l.retryQueue=null,uc(e,i))));break;case 19:wn(n,e),Nn(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,uc(e,l)));break;case 30:break;case 21:break;default:wn(n,e),Nn(e)}}function Nn(e){var n=e.flags;if(n&2){try{for(var i,l=e.return;l!==null;){if(Uv(l)){i=l;break}l=l.return}if(i==null)throw Error(r(160));switch(i.tag){case 27:var f=i.stateNode,h=hf(e);dc(e,h,f);break;case 5:var k=i.stateNode;i.flags&32&&(Ji(k,""),i.flags&=-33);var N=hf(e);dc(e,N,k);break;case 3:case 4:var I=i.stateNode.containerInfo,F=hf(e);gf(e,F,I);break;default:throw Error(r(161))}}catch(ee){pt(e,e.return,ee)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function Wv(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var n=e;Wv(n),n.tag===5&&n.flags&1024&&n.stateNode.reset(),e=e.sibling}}function Qs(e,n){if(n.subtreeFlags&8772)for(n=n.child;n!==null;)Gv(e,n.alternate,n),n=n.sibling}function ki(e){for(e=e.child;e!==null;){var n=e;switch(n.tag){case 0:case 11:case 14:case 15:Aa(4,n,n.return),ki(n);break;case 1:Es(n,n.return);var i=n.stateNode;typeof i.componentWillUnmount=="function"&&Hv(n,n.return,i),ki(n);break;case 27:Rr(n.stateNode);case 26:case 5:Es(n,n.return),ki(n);break;case 22:n.memoizedState===null&&ki(n);break;case 30:ki(n);break;default:ki(n)}e=e.sibling}}function ea(e,n,i){for(i=i&&(n.subtreeFlags&8772)!==0,n=n.child;n!==null;){var l=n.alternate,f=e,h=n,k=h.flags;switch(h.tag){case 0:case 11:case 15:ea(f,h,i),kr(4,h);break;case 1:if(ea(f,h,i),l=h,f=l.stateNode,typeof f.componentDidMount=="function")try{f.componentDidMount()}catch(F){pt(l,l.return,F)}if(l=h,f=l.updateQueue,f!==null){var N=l.stateNode;try{var I=f.shared.hiddenCallbacks;if(I!==null)for(f.shared.hiddenCallbacks=null,f=0;f<I.length;f++)Cg(I[f],N)}catch(F){pt(l,l.return,F)}}i&&k&64&&zv(h),Sr(h,h.return);break;case 27:Vv(h);case 26:case 5:ea(f,h,i),i&&l===null&&k&4&&Pv(h),Sr(h,h.return);break;case 12:ea(f,h,i);break;case 31:ea(f,h,i),i&&k&4&&Kv(f,h);break;case 13:ea(f,h,i),i&&k&4&&Yv(f,h);break;case 22:h.memoizedState===null&&ea(f,h,i),Sr(h,h.return);break;case 30:break;default:ea(f,h,i)}n=n.sibling}}function yf(e,n){var i=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(i=e.memoizedState.cachePool.pool),e=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(e=n.memoizedState.cachePool.pool),e!==i&&(e!=null&&e.refCount++,i!=null&&cr(i))}function bf(e,n){e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&cr(e))}function hs(e,n,i,l){if(n.subtreeFlags&10256)for(n=n.child;n!==null;)Xv(e,n,i,l),n=n.sibling}function Xv(e,n,i,l){var f=n.flags;switch(n.tag){case 0:case 11:case 15:hs(e,n,i,l),f&2048&&kr(9,n);break;case 1:hs(e,n,i,l);break;case 3:hs(e,n,i,l),f&2048&&(e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&cr(e)));break;case 12:if(f&2048){hs(e,n,i,l),e=n.stateNode;try{var h=n.memoizedProps,k=h.id,N=h.onPostCommit;typeof N=="function"&&N(k,n.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(I){pt(n,n.return,I)}}else hs(e,n,i,l);break;case 31:hs(e,n,i,l);break;case 13:hs(e,n,i,l);break;case 23:break;case 22:h=n.stateNode,k=n.alternate,n.memoizedState!==null?h._visibility&2?hs(e,n,i,l):jr(e,n):h._visibility&2?hs(e,n,i,l):(h._visibility|=2,vo(e,n,i,l,(n.subtreeFlags&10256)!==0||!1)),f&2048&&yf(k,n);break;case 24:hs(e,n,i,l),f&2048&&bf(n.alternate,n);break;default:hs(e,n,i,l)}}function vo(e,n,i,l,f){for(f=f&&((n.subtreeFlags&10256)!==0||!1),n=n.child;n!==null;){var h=e,k=n,N=i,I=l,F=k.flags;switch(k.tag){case 0:case 11:case 15:vo(h,k,N,I,f),kr(8,k);break;case 23:break;case 22:var ee=k.stateNode;k.memoizedState!==null?ee._visibility&2?vo(h,k,N,I,f):jr(h,k):(ee._visibility|=2,vo(h,k,N,I,f)),f&&F&2048&&yf(k.alternate,k);break;case 24:vo(h,k,N,I,f),f&&F&2048&&bf(k.alternate,k);break;default:vo(h,k,N,I,f)}n=n.sibling}}function jr(e,n){if(n.subtreeFlags&10256)for(n=n.child;n!==null;){var i=e,l=n,f=l.flags;switch(l.tag){case 22:jr(i,l),f&2048&&yf(l.alternate,l);break;case 24:jr(i,l),f&2048&&bf(l.alternate,l);break;default:jr(i,l)}n=n.sibling}}var Tr=8192;function yo(e,n,i){if(e.subtreeFlags&Tr)for(e=e.child;e!==null;)Qv(e,n,i),e=e.sibling}function Qv(e,n,i){switch(e.tag){case 26:yo(e,n,i),e.flags&Tr&&e.memoizedState!==null&&h2(i,ms,e.memoizedState,e.memoizedProps);break;case 5:yo(e,n,i);break;case 3:case 4:var l=ms;ms=Tc(e.stateNode.containerInfo),yo(e,n,i),ms=l;break;case 22:e.memoizedState===null&&(l=e.alternate,l!==null&&l.memoizedState!==null?(l=Tr,Tr=16777216,yo(e,n,i),Tr=l):yo(e,n,i));break;default:yo(e,n,i)}}function e0(e){var n=e.alternate;if(n!==null&&(e=n.child,e!==null)){n.child=null;do n=e.sibling,e.sibling=null,e=n;while(e!==null)}}function wr(e){var n=e.deletions;if((e.flags&16)!==0){if(n!==null)for(var i=0;i<n.length;i++){var l=n[i];on=l,n0(l,e)}e0(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)t0(e),e=e.sibling}function t0(e){switch(e.tag){case 0:case 11:case 15:wr(e),e.flags&2048&&Aa(9,e,e.return);break;case 3:wr(e);break;case 12:wr(e);break;case 22:var n=e.stateNode;e.memoizedState!==null&&n._visibility&2&&(e.return===null||e.return.tag!==13)?(n._visibility&=-3,fc(e)):wr(e);break;default:wr(e)}}function fc(e){var n=e.deletions;if((e.flags&16)!==0){if(n!==null)for(var i=0;i<n.length;i++){var l=n[i];on=l,n0(l,e)}e0(e)}for(e=e.child;e!==null;){switch(n=e,n.tag){case 0:case 11:case 15:Aa(8,n,n.return),fc(n);break;case 22:i=n.stateNode,i._visibility&2&&(i._visibility&=-3,fc(n));break;default:fc(n)}e=e.sibling}}function n0(e,n){for(;on!==null;){var i=on;switch(i.tag){case 0:case 11:case 15:Aa(8,i,n);break;case 23:case 22:if(i.memoizedState!==null&&i.memoizedState.cachePool!==null){var l=i.memoizedState.cachePool.pool;l!=null&&l.refCount++}break;case 24:cr(i.memoizedState.cache)}if(l=i.child,l!==null)l.return=i,on=l;else e:for(i=e;on!==null;){l=on;var f=l.sibling,h=l.return;if(Fv(l),l===i){on=null;break e}if(f!==null){f.return=h,on=f;break e}on=h}}}var AS={getCacheForType:function(e){var n=dn(Gt),i=n.data.get(e);return i===void 0&&(i=e(),n.data.set(e,i)),i},cacheSignal:function(){return dn(Gt).controller.signal}},DS=typeof WeakMap=="function"?WeakMap:Map,rt=0,yt=null,Ue=null,Ge=0,ft=0,In=null,Da=!1,bo=!1,_f=!1,ta=0,It=0,Ra=0,Si=0,xf=0,On=0,_o=0,Nr=null,Cn=null,kf=!1,pc=0,s0=0,mc=1/0,hc=null,Ma=null,Xt=0,Ia=null,xo=null,na=0,Sf=0,jf=null,a0=null,Cr=0,Tf=null;function Ln(){return(rt&2)!==0&&Ge!==0?Ge&-Ge:B.T!==null?Df():Qe()}function i0(){if(On===0)if((Ge&536870912)===0||Ke){var e=ai;ai<<=1,(ai&3932160)===0&&(ai=262144),On=e}else On=536870912;return e=Rn.current,e!==null&&(e.flags|=32),On}function En(e,n,i){(e===yt&&(ft===2||ft===9)||e.cancelPendingCommit!==null)&&(ko(e,0),Oa(e,Ge,On,!1)),te(e,i),((rt&2)===0||e!==yt)&&(e===yt&&((rt&2)===0&&(Si|=i),It===4&&Oa(e,Ge,On,!1)),As(e))}function o0(e,n,i){if((rt&6)!==0)throw Error(r(327));var l=!i&&(n&127)===0&&(n&e.expiredLanes)===0||ba(e,n),f=l?IS(e,n):Nf(e,n,!0),h=l;do{if(f===0){bo&&!l&&Oa(e,n,0,!1);break}else{if(i=e.current.alternate,h&&!RS(i)){f=Nf(e,n,!1),h=!1;continue}if(f===2){if(h=n,e.errorRecoveryDisabledLanes&h)var k=0;else k=e.pendingLanes&-536870913,k=k!==0?k:k&536870912?536870912:0;if(k!==0){n=k;e:{var N=e;f=Nr;var I=N.current.memoizedState.isDehydrated;if(I&&(ko(N,k).flags|=256),k=Nf(N,k,!1),k!==2){if(_f&&!I){N.errorRecoveryDisabledLanes|=h,Si|=h,f=4;break e}h=Cn,Cn=f,h!==null&&(Cn===null?Cn=h:Cn.push.apply(Cn,h))}f=k}if(h=!1,f!==2)continue}}if(f===1){ko(e,0),Oa(e,n,0,!0);break}e:{switch(l=e,h=f,h){case 0:case 1:throw Error(r(345));case 4:if((n&4194048)!==n)break;case 6:Oa(l,n,On,!Da);break e;case 2:Cn=null;break;case 3:case 5:break;default:throw Error(r(329))}if((n&62914560)===n&&(f=pc+300-tn(),10<f)){if(Oa(l,n,On,!Da),oi(l,0,!0)!==0)break e;na=n,l.timeoutHandle=B0(r0.bind(null,l,i,Cn,hc,kf,n,On,Si,_o,Da,h,"Throttled",-0,0),f);break e}r0(l,i,Cn,hc,kf,n,On,Si,_o,Da,h,null,-0,0)}}break}while(!0);As(e)}function r0(e,n,i,l,f,h,k,N,I,F,ee,ae,K,J){if(e.timeoutHandle=-1,ae=n.subtreeFlags,ae&8192||(ae&16785408)===16785408){ae={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Ps},Qv(n,h,ae);var _e=(h&62914560)===h?pc-tn():(h&4194048)===h?s0-tn():0;if(_e=g2(ae,_e),_e!==null){na=h,e.cancelPendingCommit=_e(h0.bind(null,e,n,h,i,l,f,k,N,I,ee,ae,null,K,J)),Oa(e,h,k,!F);return}}h0(e,n,h,i,l,f,k,N,I)}function RS(e){for(var n=e;;){var i=n.tag;if((i===0||i===11||i===15)&&n.flags&16384&&(i=n.updateQueue,i!==null&&(i=i.stores,i!==null)))for(var l=0;l<i.length;l++){var f=i[l],h=f.getSnapshot;f=f.value;try{if(!An(h(),f))return!1}catch{return!1}}if(i=n.child,n.subtreeFlags&16384&&i!==null)i.return=n,n=i;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function Oa(e,n,i,l){n&=~xf,n&=~Si,e.suspendedLanes|=n,e.pingedLanes&=~n,l&&(e.warmLanes|=n),l=e.expirationTimes;for(var f=n;0<f;){var h=31-sn(f),k=1<<h;l[h]=-1,f&=~k}i!==0&&pe(e,i,n)}function gc(){return(rt&6)===0?(Er(0),!1):!0}function wf(){if(Ue!==null){if(ft===0)var e=Ue.return;else e=Ue,Gs=mi=null,Pu(e),fo=null,ur=0,e=Ue;for(;e!==null;)$v(e.alternate,e),e=e.return;Ue=null}}function ko(e,n){var i=e.timeoutHandle;i!==-1&&(e.timeoutHandle=-1,XS(i)),i=e.cancelPendingCommit,i!==null&&(e.cancelPendingCommit=null,i()),na=0,wf(),yt=e,Ue=i=Vs(e.current,null),Ge=n,ft=0,In=null,Da=!1,bo=ba(e,n),_f=!1,_o=On=xf=Si=Ra=It=0,Cn=Nr=null,kf=!1,(n&8)!==0&&(n|=n&32);var l=e.entangledLanes;if(l!==0)for(e=e.entanglements,l&=n;0<l;){var f=31-sn(l),h=1<<f;n|=e[f],l&=~h}return ta=n,Bl(),i}function l0(e,n){Oe=null,B.H=br,n===uo||n===Gl?(n=jg(),ft=3):n===Eu?(n=jg(),ft=4):ft=n===sf?8:n!==null&&typeof n=="object"&&typeof n.then=="function"?6:1,In=n,Ue===null&&(It=1,ic(e,Kn(n,e.current)))}function c0(){var e=Rn.current;return e===null?!0:(Ge&4194048)===Ge?Xn===null:(Ge&62914560)===Ge||(Ge&536870912)!==0?e===Xn:!1}function d0(){var e=B.H;return B.H=br,e===null?br:e}function u0(){var e=B.A;return B.A=AS,e}function vc(){It=4,Da||(Ge&4194048)!==Ge&&Rn.current!==null||(bo=!0),(Ra&134217727)===0&&(Si&134217727)===0||yt===null||Oa(yt,Ge,On,!1)}function Nf(e,n,i){var l=rt;rt|=2;var f=d0(),h=u0();(yt!==e||Ge!==n)&&(hc=null,ko(e,n)),n=!1;var k=It;e:do try{if(ft!==0&&Ue!==null){var N=Ue,I=In;switch(ft){case 8:wf(),k=6;break e;case 3:case 2:case 9:case 6:Rn.current===null&&(n=!0);var F=ft;if(ft=0,In=null,So(e,N,I,F),i&&bo){k=0;break e}break;default:F=ft,ft=0,In=null,So(e,N,I,F)}}MS(),k=It;break}catch(ee){l0(e,ee)}while(!0);return n&&e.shellSuspendCounter++,Gs=mi=null,rt=l,B.H=f,B.A=h,Ue===null&&(yt=null,Ge=0,Bl()),k}function MS(){for(;Ue!==null;)f0(Ue)}function IS(e,n){var i=rt;rt|=2;var l=d0(),f=u0();yt!==e||Ge!==n?(hc=null,mc=tn()+500,ko(e,n)):bo=ba(e,n);e:do try{if(ft!==0&&Ue!==null){n=Ue;var h=In;t:switch(ft){case 1:ft=0,In=null,So(e,n,h,1);break;case 2:case 9:if(kg(h)){ft=0,In=null,p0(n);break}n=function(){ft!==2&&ft!==9||yt!==e||(ft=7),As(e)},h.then(n,n);break e;case 3:ft=7;break e;case 4:ft=5;break e;case 7:kg(h)?(ft=0,In=null,p0(n)):(ft=0,In=null,So(e,n,h,7));break;case 5:var k=null;switch(Ue.tag){case 26:k=Ue.memoizedState;case 5:case 27:var N=Ue;if(k?X0(k):N.stateNode.complete){ft=0,In=null;var I=N.sibling;if(I!==null)Ue=I;else{var F=N.return;F!==null?(Ue=F,yc(F)):Ue=null}break t}}ft=0,In=null,So(e,n,h,5);break;case 6:ft=0,In=null,So(e,n,h,6);break;case 8:wf(),It=6;break e;default:throw Error(r(462))}}OS();break}catch(ee){l0(e,ee)}while(!0);return Gs=mi=null,B.H=l,B.A=f,rt=i,Ue!==null?0:(yt=null,Ge=0,Bl(),It)}function OS(){for(;Ue!==null&&!ti();)f0(Ue)}function f0(e){var n=Lv(e.alternate,e,ta);e.memoizedProps=e.pendingProps,n===null?yc(e):Ue=n}function p0(e){var n=e,i=n.alternate;switch(n.tag){case 15:case 0:n=Av(i,n,n.pendingProps,n.type,void 0,Ge);break;case 11:n=Av(i,n,n.pendingProps,n.type.render,n.ref,Ge);break;case 5:Pu(n);default:$v(i,n),n=Ue=ug(n,ta),n=Lv(i,n,ta)}e.memoizedProps=e.pendingProps,n===null?yc(e):Ue=n}function So(e,n,i,l){Gs=mi=null,Pu(n),fo=null,ur=0;var f=n.return;try{if(SS(e,f,n,i,Ge)){It=1,ic(e,Kn(i,e.current)),Ue=null;return}}catch(h){if(f!==null)throw Ue=f,h;It=1,ic(e,Kn(i,e.current)),Ue=null;return}n.flags&32768?(Ke||l===1?e=!0:bo||(Ge&536870912)!==0?e=!1:(Da=e=!0,(l===2||l===9||l===3||l===6)&&(l=Rn.current,l!==null&&l.tag===13&&(l.flags|=16384))),m0(n,e)):yc(n)}function yc(e){var n=e;do{if((n.flags&32768)!==0){m0(n,Da);return}e=n.return;var i=wS(n.alternate,n,ta);if(i!==null){Ue=i;return}if(n=n.sibling,n!==null){Ue=n;return}Ue=n=e}while(n!==null);It===0&&(It=5)}function m0(e,n){do{var i=NS(e.alternate,e);if(i!==null){i.flags&=32767,Ue=i;return}if(i=e.return,i!==null&&(i.flags|=32768,i.subtreeFlags=0,i.deletions=null),!n&&(e=e.sibling,e!==null)){Ue=e;return}Ue=e=i}while(e!==null);It=6,Ue=null}function h0(e,n,i,l,f,h,k,N,I){e.cancelPendingCommit=null;do bc();while(Xt!==0);if((rt&6)!==0)throw Error(r(327));if(n!==null){if(n===e.current)throw Error(r(177));if(h=n.lanes|n.childLanes,h|=mu,ce(e,i,h,k,N,I),e===yt&&(Ue=yt=null,Ge=0),xo=n,Ia=e,na=i,Sf=h,jf=f,a0=l,(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,zS(js,function(){return _0(),null})):(e.callbackNode=null,e.callbackPriority=0),l=(n.flags&13878)!==0,(n.subtreeFlags&13878)!==0||l){l=B.T,B.T=null,f=R.p,R.p=2,k=rt,rt|=4;try{CS(e,n,i)}finally{rt=k,R.p=f,B.T=l}}Xt=1,g0(),v0(),y0()}}function g0(){if(Xt===1){Xt=0;var e=Ia,n=xo,i=(n.flags&13878)!==0;if((n.subtreeFlags&13878)!==0||i){i=B.T,B.T=null;var l=R.p;R.p=2;var f=rt;rt|=4;try{Jv(n,e);var h=zf,k=ng(e.containerInfo),N=h.focusedElem,I=h.selectionRange;if(k!==N&&N&&N.ownerDocument&&tg(N.ownerDocument.documentElement,N)){if(I!==null&&cu(N)){var F=I.start,ee=I.end;if(ee===void 0&&(ee=F),"selectionStart"in N)N.selectionStart=F,N.selectionEnd=Math.min(ee,N.value.length);else{var ae=N.ownerDocument||document,K=ae&&ae.defaultView||window;if(K.getSelection){var J=K.getSelection(),_e=N.textContent.length,Ae=Math.min(I.start,_e),gt=I.end===void 0?Ae:Math.min(I.end,_e);!J.extend&&Ae>gt&&(k=gt,gt=Ae,Ae=k);var U=eg(N,Ae),$=eg(N,gt);if(U&&$&&(J.rangeCount!==1||J.anchorNode!==U.node||J.anchorOffset!==U.offset||J.focusNode!==$.node||J.focusOffset!==$.offset)){var G=ae.createRange();G.setStart(U.node,U.offset),J.removeAllRanges(),Ae>gt?(J.addRange(G),J.extend($.node,$.offset)):(G.setEnd($.node,$.offset),J.addRange(G))}}}}for(ae=[],J=N;J=J.parentNode;)J.nodeType===1&&ae.push({element:J,left:J.scrollLeft,top:J.scrollTop});for(typeof N.focus=="function"&&N.focus(),N=0;N<ae.length;N++){var se=ae[N];se.element.scrollLeft=se.left,se.element.scrollTop=se.top}}Dc=!!$f,zf=$f=null}finally{rt=f,R.p=l,B.T=i}}e.current=n,Xt=2}}function v0(){if(Xt===2){Xt=0;var e=Ia,n=xo,i=(n.flags&8772)!==0;if((n.subtreeFlags&8772)!==0||i){i=B.T,B.T=null;var l=R.p;R.p=2;var f=rt;rt|=4;try{Gv(e,n.alternate,n)}finally{rt=f,R.p=l,B.T=i}}Xt=3}}function y0(){if(Xt===4||Xt===3){Xt=0,va();var e=Ia,n=xo,i=na,l=a0;(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?Xt=5:(Xt=0,xo=Ia=null,b0(e,e.pendingLanes));var f=e.pendingLanes;if(f===0&&(Ma=null),Me(i),n=n.stateNode,wt&&typeof wt.onCommitFiberRoot=="function")try{wt.onCommitFiberRoot(nn,n,void 0,(n.current.flags&128)===128)}catch{}if(l!==null){n=B.T,f=R.p,R.p=2,B.T=null;try{for(var h=e.onRecoverableError,k=0;k<l.length;k++){var N=l[k];h(N.value,{componentStack:N.stack})}}finally{B.T=n,R.p=f}}(na&3)!==0&&bc(),As(e),f=e.pendingLanes,(i&261930)!==0&&(f&42)!==0?e===Tf?Cr++:(Cr=0,Tf=e):Cr=0,Er(0)}}function b0(e,n){(e.pooledCacheLanes&=n)===0&&(n=e.pooledCache,n!=null&&(e.pooledCache=null,cr(n)))}function bc(){return g0(),v0(),y0(),_0()}function _0(){if(Xt!==5)return!1;var e=Ia,n=Sf;Sf=0;var i=Me(na),l=B.T,f=R.p;try{R.p=32>i?32:i,B.T=null,i=jf,jf=null;var h=Ia,k=na;if(Xt=0,xo=Ia=null,na=0,(rt&6)!==0)throw Error(r(331));var N=rt;if(rt|=4,t0(h.current),Xv(h,h.current,k,i),rt=N,Er(0,!1),wt&&typeof wt.onPostCommitFiberRoot=="function")try{wt.onPostCommitFiberRoot(nn,h)}catch{}return!0}finally{R.p=f,B.T=l,b0(e,n)}}function x0(e,n,i){n=Kn(i,n),n=nf(e.stateNode,n,2),e=Na(e,n,2),e!==null&&(te(e,2),As(e))}function pt(e,n,i){if(e.tag===3)x0(e,e,i);else for(;n!==null;){if(n.tag===3){x0(n,e,i);break}else if(n.tag===1){var l=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Ma===null||!Ma.has(l))){e=Kn(i,e),i=kv(2),l=Na(n,i,2),l!==null&&(Sv(i,l,n,e),te(l,2),As(l));break}}n=n.return}}function Cf(e,n,i){var l=e.pingCache;if(l===null){l=e.pingCache=new DS;var f=new Set;l.set(n,f)}else f=l.get(n),f===void 0&&(f=new Set,l.set(n,f));f.has(i)||(_f=!0,f.add(i),e=LS.bind(null,e,n,i),n.then(e,e))}function LS(e,n,i){var l=e.pingCache;l!==null&&l.delete(n),e.pingedLanes|=e.suspendedLanes&i,e.warmLanes&=~i,yt===e&&(Ge&i)===i&&(It===4||It===3&&(Ge&62914560)===Ge&&300>tn()-pc?(rt&2)===0&&ko(e,0):xf|=i,_o===Ge&&(_o=0)),As(e)}function k0(e,n){n===0&&(n=Tl()),e=ui(e,n),e!==null&&(te(e,n),As(e))}function BS(e){var n=e.memoizedState,i=0;n!==null&&(i=n.retryLane),k0(e,i)}function $S(e,n){var i=0;switch(e.tag){case 31:case 13:var l=e.stateNode,f=e.memoizedState;f!==null&&(i=f.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(r(314))}l!==null&&l.delete(n),k0(e,i)}function zS(e,n){return ga(e,n)}var _c=null,jo=null,Ef=!1,xc=!1,Af=!1,La=0;function As(e){e!==jo&&e.next===null&&(jo===null?_c=jo=e:jo=jo.next=e),xc=!0,Ef||(Ef=!0,PS())}function Er(e,n){if(!Af&&xc){Af=!0;do for(var i=!1,l=_c;l!==null;){if(e!==0){var f=l.pendingLanes;if(f===0)var h=0;else{var k=l.suspendedLanes,N=l.pingedLanes;h=(1<<31-sn(42|e)+1)-1,h&=f&~(k&~N),h=h&201326741?h&201326741|1:h?h|2:0}h!==0&&(i=!0,w0(l,h))}else h=Ge,h=oi(l,l===yt?h:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(h&3)===0||ba(l,h)||(i=!0,w0(l,h));l=l.next}while(i);Af=!1}}function HS(){S0()}function S0(){xc=Ef=!1;var e=0;La!==0&&WS()&&(e=La);for(var n=tn(),i=null,l=_c;l!==null;){var f=l.next,h=j0(l,n);h===0?(l.next=null,i===null?_c=f:i.next=f,f===null&&(jo=i)):(i=l,(e!==0||(h&3)!==0)&&(xc=!0)),l=f}Xt!==0&&Xt!==5||Er(e),La!==0&&(La=0)}function j0(e,n){for(var i=e.suspendedLanes,l=e.pingedLanes,f=e.expirationTimes,h=e.pendingLanes&-62914561;0<h;){var k=31-sn(h),N=1<<k,I=f[k];I===-1?((N&i)===0||(N&l)!==0)&&(f[k]=jl(N,n)):I<=n&&(e.expiredLanes|=N),h&=~N}if(n=yt,i=Ge,i=oi(e,e===n?i:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l=e.callbackNode,i===0||e===n&&(ft===2||ft===9)||e.cancelPendingCommit!==null)return l!==null&&l!==null&&fs(l),e.callbackNode=null,e.callbackPriority=0;if((i&3)===0||ba(e,i)){if(n=i&-i,n===e.callbackPriority)return n;switch(l!==null&&fs(l),Me(i)){case 2:case 8:i=ni;break;case 32:i=js;break;case 268435456:i=qn;break;default:i=js}return l=T0.bind(null,e),i=ga(i,l),e.callbackPriority=n,e.callbackNode=i,n}return l!==null&&l!==null&&fs(l),e.callbackPriority=2,e.callbackNode=null,2}function T0(e,n){if(Xt!==0&&Xt!==5)return e.callbackNode=null,e.callbackPriority=0,null;var i=e.callbackNode;if(bc()&&e.callbackNode!==i)return null;var l=Ge;return l=oi(e,e===yt?l:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l===0?null:(o0(e,l,n),j0(e,tn()),e.callbackNode!=null&&e.callbackNode===i?T0.bind(null,e):null)}function w0(e,n){if(bc())return null;o0(e,n,!0)}function PS(){QS(function(){(rt&6)!==0?ga(ya,HS):S0()})}function Df(){if(La===0){var e=lo;e===0&&(e=si,si<<=1,(si&261888)===0&&(si=256)),La=e}return La}function N0(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:El(""+e)}function C0(e,n){var i=n.ownerDocument.createElement("input");return i.name=n.name,i.value=n.value,e.id&&i.setAttribute("form",e.id),n.parentNode.insertBefore(i,n),e=new FormData(e),i.parentNode.removeChild(i),e}function US(e,n,i,l,f){if(n==="submit"&&i&&i.stateNode===f){var h=N0((f[ut]||null).action),k=l.submitter;k&&(n=(n=k[ut]||null)?N0(n.formAction):k.getAttribute("formAction"),n!==null&&(h=n,k=null));var N=new Ml("action","action",null,l,f);e.push({event:N,listeners:[{instance:null,listener:function(){if(l.defaultPrevented){if(La!==0){var I=k?C0(f,k):new FormData(f);Ju(i,{pending:!0,data:I,method:f.method,action:h},null,I)}}else typeof h=="function"&&(N.preventDefault(),I=k?C0(f,k):new FormData(f),Ju(i,{pending:!0,data:I,method:f.method,action:h},h,I))},currentTarget:f}]})}}for(var Rf=0;Rf<pu.length;Rf++){var Mf=pu[Rf],VS=Mf.toLowerCase(),qS=Mf[0].toUpperCase()+Mf.slice(1);ps(VS,"on"+qS)}ps(ig,"onAnimationEnd"),ps(og,"onAnimationIteration"),ps(rg,"onAnimationStart"),ps("dblclick","onDoubleClick"),ps("focusin","onFocus"),ps("focusout","onBlur"),ps(oS,"onTransitionRun"),ps(rS,"onTransitionStart"),ps(lS,"onTransitionCancel"),ps(lg,"onTransitionEnd"),Ki("onMouseEnter",["mouseout","mouseover"]),Ki("onMouseLeave",["mouseout","mouseover"]),Ki("onPointerEnter",["pointerout","pointerover"]),Ki("onPointerLeave",["pointerout","pointerover"]),ri("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),ri("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),ri("onBeforeInput",["compositionend","keypress","textInput","paste"]),ri("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),ri("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),ri("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ar="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),GS=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Ar));function E0(e,n){n=(n&4)!==0;for(var i=0;i<e.length;i++){var l=e[i],f=l.event;l=l.listeners;e:{var h=void 0;if(n)for(var k=l.length-1;0<=k;k--){var N=l[k],I=N.instance,F=N.currentTarget;if(N=N.listener,I!==h&&f.isPropagationStopped())break e;h=N,f.currentTarget=F;try{h(f)}catch(ee){Ll(ee)}f.currentTarget=null,h=I}else for(k=0;k<l.length;k++){if(N=l[k],I=N.instance,F=N.currentTarget,N=N.listener,I!==h&&f.isPropagationStopped())break e;h=N,f.currentTarget=F;try{h(f)}catch(ee){Ll(ee)}f.currentTarget=null,h=I}}}}function Ve(e,n){var i=n[ws];i===void 0&&(i=n[ws]=new Set);var l=e+"__bubble";i.has(l)||(A0(n,e,2,!1),i.add(l))}function If(e,n,i){var l=0;n&&(l|=4),A0(i,e,l,n)}var kc="_reactListening"+Math.random().toString(36).slice(2);function Of(e){if(!e[kc]){e[kc]=!0,Sh.forEach(function(i){i!=="selectionchange"&&(GS.has(i)||If(i,!1,e),If(i,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[kc]||(n[kc]=!0,If("selectionchange",!1,n))}}function A0(e,n,i,l){switch(iy(n)){case 2:var f=b2;break;case 8:f=_2;break;default:f=Jf}i=f.bind(null,n,i,e),f=void 0,!eu||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(f=!0),l?f!==void 0?e.addEventListener(n,i,{capture:!0,passive:f}):e.addEventListener(n,i,!0):f!==void 0?e.addEventListener(n,i,{passive:f}):e.addEventListener(n,i,!1)}function Lf(e,n,i,l,f){var h=l;if((n&1)===0&&(n&2)===0&&l!==null)e:for(;;){if(l===null)return;var k=l.tag;if(k===3||k===4){var N=l.stateNode.containerInfo;if(N===f)break;if(k===4)for(k=l.return;k!==null;){var I=k.tag;if((I===3||I===4)&&k.stateNode.containerInfo===f)return;k=k.return}for(;N!==null;){if(k=Gi(N),k===null)return;if(I=k.tag,I===5||I===6||I===26||I===27){l=h=k;continue e}N=N.parentNode}}l=l.return}Oh(function(){var F=h,ee=Xd(i),ae=[];e:{var K=cg.get(e);if(K!==void 0){var J=Ml,_e=e;switch(e){case"keypress":if(Dl(i)===0)break e;case"keydown":case"keyup":J=$k;break;case"focusin":_e="focus",J=au;break;case"focusout":_e="blur",J=au;break;case"beforeblur":case"afterblur":J=au;break;case"click":if(i.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":J=$h;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":J=wk;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":J=Pk;break;case ig:case og:case rg:J=Ek;break;case lg:J=Vk;break;case"scroll":case"scrollend":J=jk;break;case"wheel":J=Gk;break;case"copy":case"cut":case"paste":J=Dk;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":J=Hh;break;case"toggle":case"beforetoggle":J=Zk}var Ae=(n&4)!==0,gt=!Ae&&(e==="scroll"||e==="scrollend"),U=Ae?K!==null?K+"Capture":null:K;Ae=[];for(var $=F,G;$!==null;){var se=$;if(G=se.stateNode,se=se.tag,se!==5&&se!==26&&se!==27||G===null||U===null||(se=Xo($,U),se!=null&&Ae.push(Dr($,se,G))),gt)break;$=$.return}0<Ae.length&&(K=new J(K,_e,null,i,ee),ae.push({event:K,listeners:Ae}))}}if((n&7)===0){e:{if(K=e==="mouseover"||e==="pointerover",J=e==="mouseout"||e==="pointerout",K&&i!==Wd&&(_e=i.relatedTarget||i.fromElement)&&(Gi(_e)||_e[bt]))break e;if((J||K)&&(K=ee.window===ee?ee:(K=ee.ownerDocument)?K.defaultView||K.parentWindow:window,J?(_e=i.relatedTarget||i.toElement,J=F,_e=_e?Gi(_e):null,_e!==null&&(gt=d(_e),Ae=_e.tag,_e!==gt||Ae!==5&&Ae!==27&&Ae!==6)&&(_e=null)):(J=null,_e=F),J!==_e)){if(Ae=$h,se="onMouseLeave",U="onMouseEnter",$="mouse",(e==="pointerout"||e==="pointerover")&&(Ae=Hh,se="onPointerLeave",U="onPointerEnter",$="pointer"),gt=J==null?K:Wo(J),G=_e==null?K:Wo(_e),K=new Ae(se,$+"leave",J,i,ee),K.target=gt,K.relatedTarget=G,se=null,Gi(ee)===F&&(Ae=new Ae(U,$+"enter",_e,i,ee),Ae.target=G,Ae.relatedTarget=gt,se=Ae),gt=se,J&&_e)t:{for(Ae=FS,U=J,$=_e,G=0,se=U;se;se=Ae(se))G++;se=0;for(var Ce=$;Ce;Ce=Ae(Ce))se++;for(;0<G-se;)U=Ae(U),G--;for(;0<se-G;)$=Ae($),se--;for(;G--;){if(U===$||$!==null&&U===$.alternate){Ae=U;break t}U=Ae(U),$=Ae($)}Ae=null}else Ae=null;J!==null&&D0(ae,K,J,Ae,!1),_e!==null&&gt!==null&&D0(ae,gt,_e,Ae,!0)}}e:{if(K=F?Wo(F):window,J=K.nodeName&&K.nodeName.toLowerCase(),J==="select"||J==="input"&&K.type==="file")var tt=Kh;else if(Fh(K))if(Yh)tt=sS;else{tt=tS;var je=eS}else J=K.nodeName,!J||J.toLowerCase()!=="input"||K.type!=="checkbox"&&K.type!=="radio"?F&&Jd(F.elementType)&&(tt=Kh):tt=nS;if(tt&&(tt=tt(e,F))){Zh(ae,tt,i,ee);break e}je&&je(e,K,F),e==="focusout"&&F&&K.type==="number"&&F.memoizedProps.value!=null&&Yd(K,"number",K.value)}switch(je=F?Wo(F):window,e){case"focusin":(Fh(je)||je.contentEditable==="true")&&(eo=je,du=F,or=null);break;case"focusout":or=du=eo=null;break;case"mousedown":uu=!0;break;case"contextmenu":case"mouseup":case"dragend":uu=!1,sg(ae,i,ee);break;case"selectionchange":if(iS)break;case"keydown":case"keyup":sg(ae,i,ee)}var Le;if(ou)e:{switch(e){case"compositionstart":var Fe="onCompositionStart";break e;case"compositionend":Fe="onCompositionEnd";break e;case"compositionupdate":Fe="onCompositionUpdate";break e}Fe=void 0}else Qi?qh(e,i)&&(Fe="onCompositionEnd"):e==="keydown"&&i.keyCode===229&&(Fe="onCompositionStart");Fe&&(Ph&&i.locale!=="ko"&&(Qi||Fe!=="onCompositionStart"?Fe==="onCompositionEnd"&&Qi&&(Le=Lh()):(_a=ee,tu="value"in _a?_a.value:_a.textContent,Qi=!0)),je=Sc(F,Fe),0<je.length&&(Fe=new zh(Fe,e,null,i,ee),ae.push({event:Fe,listeners:je}),Le?Fe.data=Le:(Le=Gh(i),Le!==null&&(Fe.data=Le)))),(Le=Yk?Jk(e,i):Wk(e,i))&&(Fe=Sc(F,"onBeforeInput"),0<Fe.length&&(je=new zh("onBeforeInput","beforeinput",null,i,ee),ae.push({event:je,listeners:Fe}),je.data=Le)),US(ae,e,F,i,ee)}E0(ae,n)})}function Dr(e,n,i){return{instance:e,listener:n,currentTarget:i}}function Sc(e,n){for(var i=n+"Capture",l=[];e!==null;){var f=e,h=f.stateNode;if(f=f.tag,f!==5&&f!==26&&f!==27||h===null||(f=Xo(e,i),f!=null&&l.unshift(Dr(e,f,h)),f=Xo(e,n),f!=null&&l.push(Dr(e,f,h))),e.tag===3)return l;e=e.return}return[]}function FS(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function D0(e,n,i,l,f){for(var h=n._reactName,k=[];i!==null&&i!==l;){var N=i,I=N.alternate,F=N.stateNode;if(N=N.tag,I!==null&&I===l)break;N!==5&&N!==26&&N!==27||F===null||(I=F,f?(F=Xo(i,h),F!=null&&k.unshift(Dr(i,F,I))):f||(F=Xo(i,h),F!=null&&k.push(Dr(i,F,I)))),i=i.return}k.length!==0&&e.push({event:n,listeners:k})}var ZS=/\r\n?/g,KS=/\u0000|\uFFFD/g;function R0(e){return(typeof e=="string"?e:""+e).replace(ZS,`
26
- `).replace(KS,"")}function M0(e,n){return n=R0(n),R0(e)===n}function ht(e,n,i,l,f,h){switch(i){case"children":typeof l=="string"?n==="body"||n==="textarea"&&l===""||Ji(e,l):(typeof l=="number"||typeof l=="bigint")&&n!=="body"&&Ji(e,""+l);break;case"className":Nl(e,"class",l);break;case"tabIndex":Nl(e,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":Nl(e,i,l);break;case"style":Mh(e,l,h);break;case"data":if(n!=="object"){Nl(e,"data",l);break}case"src":case"href":if(l===""&&(n!=="a"||i!=="href")){e.removeAttribute(i);break}if(l==null||typeof l=="function"||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(i);break}l=El(""+l),e.setAttribute(i,l);break;case"action":case"formAction":if(typeof l=="function"){e.setAttribute(i,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof h=="function"&&(i==="formAction"?(n!=="input"&&ht(e,n,"name",f.name,f,null),ht(e,n,"formEncType",f.formEncType,f,null),ht(e,n,"formMethod",f.formMethod,f,null),ht(e,n,"formTarget",f.formTarget,f,null)):(ht(e,n,"encType",f.encType,f,null),ht(e,n,"method",f.method,f,null),ht(e,n,"target",f.target,f,null)));if(l==null||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(i);break}l=El(""+l),e.setAttribute(i,l);break;case"onClick":l!=null&&(e.onclick=Ps);break;case"onScroll":l!=null&&Ve("scroll",e);break;case"onScrollEnd":l!=null&&Ve("scrollend",e);break;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(r(61));if(i=l.__html,i!=null){if(f.children!=null)throw Error(r(60));e.innerHTML=i}}break;case"multiple":e.multiple=l&&typeof l!="function"&&typeof l!="symbol";break;case"muted":e.muted=l&&typeof l!="function"&&typeof l!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(l==null||typeof l=="function"||typeof l=="boolean"||typeof l=="symbol"){e.removeAttribute("xlink:href");break}i=El(""+l),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":l!=null&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(i,""+l):e.removeAttribute(i);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":l&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(i,""):e.removeAttribute(i);break;case"capture":case"download":l===!0?e.setAttribute(i,""):l!==!1&&l!=null&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(i,l):e.removeAttribute(i);break;case"cols":case"rows":case"size":case"span":l!=null&&typeof l!="function"&&typeof l!="symbol"&&!isNaN(l)&&1<=l?e.setAttribute(i,l):e.removeAttribute(i);break;case"rowSpan":case"start":l==null||typeof l=="function"||typeof l=="symbol"||isNaN(l)?e.removeAttribute(i):e.setAttribute(i,l);break;case"popover":Ve("beforetoggle",e),Ve("toggle",e),wl(e,"popover",l);break;case"xlinkActuate":Hs(e,"http://www.w3.org/1999/xlink","xlink:actuate",l);break;case"xlinkArcrole":Hs(e,"http://www.w3.org/1999/xlink","xlink:arcrole",l);break;case"xlinkRole":Hs(e,"http://www.w3.org/1999/xlink","xlink:role",l);break;case"xlinkShow":Hs(e,"http://www.w3.org/1999/xlink","xlink:show",l);break;case"xlinkTitle":Hs(e,"http://www.w3.org/1999/xlink","xlink:title",l);break;case"xlinkType":Hs(e,"http://www.w3.org/1999/xlink","xlink:type",l);break;case"xmlBase":Hs(e,"http://www.w3.org/XML/1998/namespace","xml:base",l);break;case"xmlLang":Hs(e,"http://www.w3.org/XML/1998/namespace","xml:lang",l);break;case"xmlSpace":Hs(e,"http://www.w3.org/XML/1998/namespace","xml:space",l);break;case"is":wl(e,"is",l);break;case"innerText":case"textContent":break;default:(!(2<i.length)||i[0]!=="o"&&i[0]!=="O"||i[1]!=="n"&&i[1]!=="N")&&(i=kk.get(i)||i,wl(e,i,l))}}function Bf(e,n,i,l,f,h){switch(i){case"style":Mh(e,l,h);break;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(r(61));if(i=l.__html,i!=null){if(f.children!=null)throw Error(r(60));e.innerHTML=i}}break;case"children":typeof l=="string"?Ji(e,l):(typeof l=="number"||typeof l=="bigint")&&Ji(e,""+l);break;case"onScroll":l!=null&&Ve("scroll",e);break;case"onScrollEnd":l!=null&&Ve("scrollend",e);break;case"onClick":l!=null&&(e.onclick=Ps);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!jh.hasOwnProperty(i))e:{if(i[0]==="o"&&i[1]==="n"&&(f=i.endsWith("Capture"),n=i.slice(2,f?i.length-7:void 0),h=e[ut]||null,h=h!=null?h[i]:null,typeof h=="function"&&e.removeEventListener(n,h,f),typeof l=="function")){typeof h!="function"&&h!==null&&(i in e?e[i]=null:e.hasAttribute(i)&&e.removeAttribute(i)),e.addEventListener(n,l,f);break e}i in e?e[i]=l:l===!0?e.setAttribute(i,""):wl(e,i,l)}}}function fn(e,n,i){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Ve("error",e),Ve("load",e);var l=!1,f=!1,h;for(h in i)if(i.hasOwnProperty(h)){var k=i[h];if(k!=null)switch(h){case"src":l=!0;break;case"srcSet":f=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(r(137,n));default:ht(e,n,h,k,i,null)}}f&&ht(e,n,"srcSet",i.srcSet,i,null),l&&ht(e,n,"src",i.src,i,null);return;case"input":Ve("invalid",e);var N=h=k=f=null,I=null,F=null;for(l in i)if(i.hasOwnProperty(l)){var ee=i[l];if(ee!=null)switch(l){case"name":f=ee;break;case"type":k=ee;break;case"checked":I=ee;break;case"defaultChecked":F=ee;break;case"value":h=ee;break;case"defaultValue":N=ee;break;case"children":case"dangerouslySetInnerHTML":if(ee!=null)throw Error(r(137,n));break;default:ht(e,n,l,ee,i,null)}}Eh(e,h,N,I,F,k,f,!1);return;case"select":Ve("invalid",e),l=k=h=null;for(f in i)if(i.hasOwnProperty(f)&&(N=i[f],N!=null))switch(f){case"value":h=N;break;case"defaultValue":k=N;break;case"multiple":l=N;default:ht(e,n,f,N,i,null)}n=h,i=k,e.multiple=!!l,n!=null?Yi(e,!!l,n,!1):i!=null&&Yi(e,!!l,i,!0);return;case"textarea":Ve("invalid",e),h=f=l=null;for(k in i)if(i.hasOwnProperty(k)&&(N=i[k],N!=null))switch(k){case"value":l=N;break;case"defaultValue":f=N;break;case"children":h=N;break;case"dangerouslySetInnerHTML":if(N!=null)throw Error(r(91));break;default:ht(e,n,k,N,i,null)}Dh(e,l,f,h);return;case"option":for(I in i)if(i.hasOwnProperty(I)&&(l=i[I],l!=null))switch(I){case"selected":e.selected=l&&typeof l!="function"&&typeof l!="symbol";break;default:ht(e,n,I,l,i,null)}return;case"dialog":Ve("beforetoggle",e),Ve("toggle",e),Ve("cancel",e),Ve("close",e);break;case"iframe":case"object":Ve("load",e);break;case"video":case"audio":for(l=0;l<Ar.length;l++)Ve(Ar[l],e);break;case"image":Ve("error",e),Ve("load",e);break;case"details":Ve("toggle",e);break;case"embed":case"source":case"link":Ve("error",e),Ve("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(F in i)if(i.hasOwnProperty(F)&&(l=i[F],l!=null))switch(F){case"children":case"dangerouslySetInnerHTML":throw Error(r(137,n));default:ht(e,n,F,l,i,null)}return;default:if(Jd(n)){for(ee in i)i.hasOwnProperty(ee)&&(l=i[ee],l!==void 0&&Bf(e,n,ee,l,i,void 0));return}}for(N in i)i.hasOwnProperty(N)&&(l=i[N],l!=null&&ht(e,n,N,l,i,null))}function YS(e,n,i,l){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var f=null,h=null,k=null,N=null,I=null,F=null,ee=null;for(J in i){var ae=i[J];if(i.hasOwnProperty(J)&&ae!=null)switch(J){case"checked":break;case"value":break;case"defaultValue":I=ae;default:l.hasOwnProperty(J)||ht(e,n,J,null,l,ae)}}for(var K in l){var J=l[K];if(ae=i[K],l.hasOwnProperty(K)&&(J!=null||ae!=null))switch(K){case"type":h=J;break;case"name":f=J;break;case"checked":F=J;break;case"defaultChecked":ee=J;break;case"value":k=J;break;case"defaultValue":N=J;break;case"children":case"dangerouslySetInnerHTML":if(J!=null)throw Error(r(137,n));break;default:J!==ae&&ht(e,n,K,J,l,ae)}}Kd(e,k,N,I,F,ee,h,f);return;case"select":J=k=N=K=null;for(h in i)if(I=i[h],i.hasOwnProperty(h)&&I!=null)switch(h){case"value":break;case"multiple":J=I;default:l.hasOwnProperty(h)||ht(e,n,h,null,l,I)}for(f in l)if(h=l[f],I=i[f],l.hasOwnProperty(f)&&(h!=null||I!=null))switch(f){case"value":K=h;break;case"defaultValue":N=h;break;case"multiple":k=h;default:h!==I&&ht(e,n,f,h,l,I)}n=N,i=k,l=J,K!=null?Yi(e,!!i,K,!1):!!l!=!!i&&(n!=null?Yi(e,!!i,n,!0):Yi(e,!!i,i?[]:"",!1));return;case"textarea":J=K=null;for(N in i)if(f=i[N],i.hasOwnProperty(N)&&f!=null&&!l.hasOwnProperty(N))switch(N){case"value":break;case"children":break;default:ht(e,n,N,null,l,f)}for(k in l)if(f=l[k],h=i[k],l.hasOwnProperty(k)&&(f!=null||h!=null))switch(k){case"value":K=f;break;case"defaultValue":J=f;break;case"children":break;case"dangerouslySetInnerHTML":if(f!=null)throw Error(r(91));break;default:f!==h&&ht(e,n,k,f,l,h)}Ah(e,K,J);return;case"option":for(var _e in i)if(K=i[_e],i.hasOwnProperty(_e)&&K!=null&&!l.hasOwnProperty(_e))switch(_e){case"selected":e.selected=!1;break;default:ht(e,n,_e,null,l,K)}for(I in l)if(K=l[I],J=i[I],l.hasOwnProperty(I)&&K!==J&&(K!=null||J!=null))switch(I){case"selected":e.selected=K&&typeof K!="function"&&typeof K!="symbol";break;default:ht(e,n,I,K,l,J)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Ae in i)K=i[Ae],i.hasOwnProperty(Ae)&&K!=null&&!l.hasOwnProperty(Ae)&&ht(e,n,Ae,null,l,K);for(F in l)if(K=l[F],J=i[F],l.hasOwnProperty(F)&&K!==J&&(K!=null||J!=null))switch(F){case"children":case"dangerouslySetInnerHTML":if(K!=null)throw Error(r(137,n));break;default:ht(e,n,F,K,l,J)}return;default:if(Jd(n)){for(var gt in i)K=i[gt],i.hasOwnProperty(gt)&&K!==void 0&&!l.hasOwnProperty(gt)&&Bf(e,n,gt,void 0,l,K);for(ee in l)K=l[ee],J=i[ee],!l.hasOwnProperty(ee)||K===J||K===void 0&&J===void 0||Bf(e,n,ee,K,l,J);return}}for(var U in i)K=i[U],i.hasOwnProperty(U)&&K!=null&&!l.hasOwnProperty(U)&&ht(e,n,U,null,l,K);for(ae in l)K=l[ae],J=i[ae],!l.hasOwnProperty(ae)||K===J||K==null&&J==null||ht(e,n,ae,K,l,J)}function I0(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function JS(){if(typeof performance.getEntriesByType=="function"){for(var e=0,n=0,i=performance.getEntriesByType("resource"),l=0;l<i.length;l++){var f=i[l],h=f.transferSize,k=f.initiatorType,N=f.duration;if(h&&N&&I0(k)){for(k=0,N=f.responseEnd,l+=1;l<i.length;l++){var I=i[l],F=I.startTime;if(F>N)break;var ee=I.transferSize,ae=I.initiatorType;ee&&I0(ae)&&(I=I.responseEnd,k+=ee*(I<N?1:(N-F)/(I-F)))}if(--l,n+=8*(h+k)/(f.duration/1e3),e++,10<e)break}}if(0<e)return n/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var $f=null,zf=null;function jc(e){return e.nodeType===9?e:e.ownerDocument}function O0(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function L0(e,n){if(e===0)switch(n){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&n==="foreignObject"?0:e}function Hf(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.children=="bigint"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Pf=null;function WS(){var e=window.event;return e&&e.type==="popstate"?e===Pf?!1:(Pf=e,!0):(Pf=null,!1)}var B0=typeof setTimeout=="function"?setTimeout:void 0,XS=typeof clearTimeout=="function"?clearTimeout:void 0,$0=typeof Promise=="function"?Promise:void 0,QS=typeof queueMicrotask=="function"?queueMicrotask:typeof $0<"u"?function(e){return $0.resolve(null).then(e).catch(e2)}:B0;function e2(e){setTimeout(function(){throw e})}function Ba(e){return e==="head"}function z0(e,n){var i=n,l=0;do{var f=i.nextSibling;if(e.removeChild(i),f&&f.nodeType===8)if(i=f.data,i==="/$"||i==="/&"){if(l===0){e.removeChild(f),Co(n);return}l--}else if(i==="$"||i==="$?"||i==="$~"||i==="$!"||i==="&")l++;else if(i==="html")Rr(e.ownerDocument.documentElement);else if(i==="head"){i=e.ownerDocument.head,Rr(i);for(var h=i.firstChild;h;){var k=h.nextSibling,N=h.nodeName;h[Jo]||N==="SCRIPT"||N==="STYLE"||N==="LINK"&&h.rel.toLowerCase()==="stylesheet"||i.removeChild(h),h=k}}else i==="body"&&Rr(e.ownerDocument.body);i=f}while(i);Co(n)}function H0(e,n){var i=e;e=0;do{var l=i.nextSibling;if(i.nodeType===1?n?(i._stashedDisplay=i.style.display,i.style.display="none"):(i.style.display=i._stashedDisplay||"",i.getAttribute("style")===""&&i.removeAttribute("style")):i.nodeType===3&&(n?(i._stashedText=i.nodeValue,i.nodeValue=""):i.nodeValue=i._stashedText||""),l&&l.nodeType===8)if(i=l.data,i==="/$"){if(e===0)break;e--}else i!=="$"&&i!=="$?"&&i!=="$~"&&i!=="$!"||e++;i=l}while(i)}function Uf(e){var n=e.firstChild;for(n&&n.nodeType===10&&(n=n.nextSibling);n;){var i=n;switch(n=n.nextSibling,i.nodeName){case"HTML":case"HEAD":case"BODY":Uf(i),Fd(i);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(i.rel.toLowerCase()==="stylesheet")continue}e.removeChild(i)}}function t2(e,n,i,l){for(;e.nodeType===1;){var f=i;if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!l&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(l){if(!e[Jo])switch(n){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(h=e.getAttribute("rel"),h==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(h!==f.rel||e.getAttribute("href")!==(f.href==null||f.href===""?null:f.href)||e.getAttribute("crossorigin")!==(f.crossOrigin==null?null:f.crossOrigin)||e.getAttribute("title")!==(f.title==null?null:f.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(h=e.getAttribute("src"),(h!==(f.src==null?null:f.src)||e.getAttribute("type")!==(f.type==null?null:f.type)||e.getAttribute("crossorigin")!==(f.crossOrigin==null?null:f.crossOrigin))&&h&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(n==="input"&&e.type==="hidden"){var h=f.name==null?null:""+f.name;if(f.type==="hidden"&&e.getAttribute("name")===h)return e}else return e;if(e=Qn(e.nextSibling),e===null)break}return null}function n2(e,n,i){if(n==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!i||(e=Qn(e.nextSibling),e===null))return null;return e}function P0(e,n){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Qn(e.nextSibling),e===null))return null;return e}function Vf(e){return e.data==="$?"||e.data==="$~"}function qf(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function s2(e,n){var i=e.ownerDocument;if(e.data==="$~")e._reactRetry=n;else if(e.data!=="$?"||i.readyState!=="loading")n();else{var l=function(){n(),i.removeEventListener("DOMContentLoaded",l)};i.addEventListener("DOMContentLoaded",l),e._reactRetry=l}}function Qn(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"||n==="F!"||n==="F")break;if(n==="/$"||n==="/&")return null}}return e}var Gf=null;function U0(e){e=e.nextSibling;for(var n=0;e;){if(e.nodeType===8){var i=e.data;if(i==="/$"||i==="/&"){if(n===0)return Qn(e.nextSibling);n--}else i!=="$"&&i!=="$!"&&i!=="$?"&&i!=="$~"&&i!=="&"||n++}e=e.nextSibling}return null}function V0(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var i=e.data;if(i==="$"||i==="$!"||i==="$?"||i==="$~"||i==="&"){if(n===0)return e;n--}else i!=="/$"&&i!=="/&"||n++}e=e.previousSibling}return null}function q0(e,n,i){switch(n=jc(i),e){case"html":if(e=n.documentElement,!e)throw Error(r(452));return e;case"head":if(e=n.head,!e)throw Error(r(453));return e;case"body":if(e=n.body,!e)throw Error(r(454));return e;default:throw Error(r(451))}}function Rr(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);Fd(e)}var es=new Map,G0=new Set;function Tc(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var sa=R.d;R.d={f:a2,r:i2,D:o2,C:r2,L:l2,m:c2,X:u2,S:d2,M:f2};function a2(){var e=sa.f(),n=gc();return e||n}function i2(e){var n=Fi(e);n!==null&&n.tag===5&&n.type==="form"?lv(n):sa.r(e)}var To=typeof document>"u"?null:document;function F0(e,n,i){var l=To;if(l&&typeof n=="string"&&n){var f=Fn(n);f='link[rel="'+e+'"][href="'+f+'"]',typeof i=="string"&&(f+='[crossorigin="'+i+'"]'),G0.has(f)||(G0.add(f),e={rel:e,crossOrigin:i,href:n},l.querySelector(f)===null&&(n=l.createElement("link"),fn(n,"link",e),an(n),l.head.appendChild(n)))}}function o2(e){sa.D(e),F0("dns-prefetch",e,null)}function r2(e,n){sa.C(e,n),F0("preconnect",e,n)}function l2(e,n,i){sa.L(e,n,i);var l=To;if(l&&e&&n){var f='link[rel="preload"][as="'+Fn(n)+'"]';n==="image"&&i&&i.imageSrcSet?(f+='[imagesrcset="'+Fn(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(f+='[imagesizes="'+Fn(i.imageSizes)+'"]')):f+='[href="'+Fn(e)+'"]';var h=f;switch(n){case"style":h=wo(e);break;case"script":h=No(e)}es.has(h)||(e=_({rel:"preload",href:n==="image"&&i&&i.imageSrcSet?void 0:e,as:n},i),es.set(h,e),l.querySelector(f)!==null||n==="style"&&l.querySelector(Mr(h))||n==="script"&&l.querySelector(Ir(h))||(n=l.createElement("link"),fn(n,"link",e),an(n),l.head.appendChild(n)))}}function c2(e,n){sa.m(e,n);var i=To;if(i&&e){var l=n&&typeof n.as=="string"?n.as:"script",f='link[rel="modulepreload"][as="'+Fn(l)+'"][href="'+Fn(e)+'"]',h=f;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":h=No(e)}if(!es.has(h)&&(e=_({rel:"modulepreload",href:e},n),es.set(h,e),i.querySelector(f)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(Ir(h)))return}l=i.createElement("link"),fn(l,"link",e),an(l),i.head.appendChild(l)}}}function d2(e,n,i){sa.S(e,n,i);var l=To;if(l&&e){var f=Zi(l).hoistableStyles,h=wo(e);n=n||"default";var k=f.get(h);if(!k){var N={loading:0,preload:null};if(k=l.querySelector(Mr(h)))N.loading=5;else{e=_({rel:"stylesheet",href:e,"data-precedence":n},i),(i=es.get(h))&&Ff(e,i);var I=k=l.createElement("link");an(I),fn(I,"link",e),I._p=new Promise(function(F,ee){I.onload=F,I.onerror=ee}),I.addEventListener("load",function(){N.loading|=1}),I.addEventListener("error",function(){N.loading|=2}),N.loading|=4,wc(k,n,l)}k={type:"stylesheet",instance:k,count:1,state:N},f.set(h,k)}}}function u2(e,n){sa.X(e,n);var i=To;if(i&&e){var l=Zi(i).hoistableScripts,f=No(e),h=l.get(f);h||(h=i.querySelector(Ir(f)),h||(e=_({src:e,async:!0},n),(n=es.get(f))&&Zf(e,n),h=i.createElement("script"),an(h),fn(h,"link",e),i.head.appendChild(h)),h={type:"script",instance:h,count:1,state:null},l.set(f,h))}}function f2(e,n){sa.M(e,n);var i=To;if(i&&e){var l=Zi(i).hoistableScripts,f=No(e),h=l.get(f);h||(h=i.querySelector(Ir(f)),h||(e=_({src:e,async:!0,type:"module"},n),(n=es.get(f))&&Zf(e,n),h=i.createElement("script"),an(h),fn(h,"link",e),i.head.appendChild(h)),h={type:"script",instance:h,count:1,state:null},l.set(f,h))}}function Z0(e,n,i,l){var f=(f=Xe.current)?Tc(f):null;if(!f)throw Error(r(446));switch(e){case"meta":case"title":return null;case"style":return typeof i.precedence=="string"&&typeof i.href=="string"?(n=wo(i.href),i=Zi(f).hoistableStyles,l=i.get(n),l||(l={type:"style",instance:null,count:0,state:null},i.set(n,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(i.rel==="stylesheet"&&typeof i.href=="string"&&typeof i.precedence=="string"){e=wo(i.href);var h=Zi(f).hoistableStyles,k=h.get(e);if(k||(f=f.ownerDocument||f,k={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},h.set(e,k),(h=f.querySelector(Mr(e)))&&!h._p&&(k.instance=h,k.state.loading=5),es.has(e)||(i={rel:"preload",as:"style",href:i.href,crossOrigin:i.crossOrigin,integrity:i.integrity,media:i.media,hrefLang:i.hrefLang,referrerPolicy:i.referrerPolicy},es.set(e,i),h||p2(f,e,i,k.state))),n&&l===null)throw Error(r(528,""));return k}if(n&&l!==null)throw Error(r(529,""));return null;case"script":return n=i.async,i=i.src,typeof i=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=No(i),i=Zi(f).hoistableScripts,l=i.get(n),l||(l={type:"script",instance:null,count:0,state:null},i.set(n,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,e))}}function wo(e){return'href="'+Fn(e)+'"'}function Mr(e){return'link[rel="stylesheet"]['+e+"]"}function K0(e){return _({},e,{"data-precedence":e.precedence,precedence:null})}function p2(e,n,i,l){e.querySelector('link[rel="preload"][as="style"]['+n+"]")?l.loading=1:(n=e.createElement("link"),l.preload=n,n.addEventListener("load",function(){return l.loading|=1}),n.addEventListener("error",function(){return l.loading|=2}),fn(n,"link",i),an(n),e.head.appendChild(n))}function No(e){return'[src="'+Fn(e)+'"]'}function Ir(e){return"script[async]"+e}function Y0(e,n,i){if(n.count++,n.instance===null)switch(n.type){case"style":var l=e.querySelector('style[data-href~="'+Fn(i.href)+'"]');if(l)return n.instance=l,an(l),l;var f=_({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),an(l),fn(l,"style",f),wc(l,i.precedence,e),n.instance=l;case"stylesheet":f=wo(i.href);var h=e.querySelector(Mr(f));if(h)return n.state.loading|=4,n.instance=h,an(h),h;l=K0(i),(f=es.get(f))&&Ff(l,f),h=(e.ownerDocument||e).createElement("link"),an(h);var k=h;return k._p=new Promise(function(N,I){k.onload=N,k.onerror=I}),fn(h,"link",l),n.state.loading|=4,wc(h,i.precedence,e),n.instance=h;case"script":return h=No(i.src),(f=e.querySelector(Ir(h)))?(n.instance=f,an(f),f):(l=i,(f=es.get(h))&&(l=_({},i),Zf(l,f)),e=e.ownerDocument||e,f=e.createElement("script"),an(f),fn(f,"link",l),e.head.appendChild(f),n.instance=f);case"void":return null;default:throw Error(r(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(l=n.instance,n.state.loading|=4,wc(l,i.precedence,e));return n.instance}function wc(e,n,i){for(var l=i.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),f=l.length?l[l.length-1]:null,h=f,k=0;k<l.length;k++){var N=l[k];if(N.dataset.precedence===n)h=N;else if(h!==f)break}h?h.parentNode.insertBefore(e,h.nextSibling):(n=i.nodeType===9?i.head:i,n.insertBefore(e,n.firstChild))}function Ff(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.title==null&&(e.title=n.title)}function Zf(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.integrity==null&&(e.integrity=n.integrity)}var Nc=null;function J0(e,n,i){if(Nc===null){var l=new Map,f=Nc=new Map;f.set(i,l)}else f=Nc,l=f.get(i),l||(l=new Map,f.set(i,l));if(l.has(e))return l;for(l.set(e,null),i=i.getElementsByTagName(e),f=0;f<i.length;f++){var h=i[f];if(!(h[Jo]||h[et]||e==="link"&&h.getAttribute("rel")==="stylesheet")&&h.namespaceURI!=="http://www.w3.org/2000/svg"){var k=h.getAttribute(n)||"";k=e+k;var N=l.get(k);N?N.push(h):l.set(k,[h])}}return l}function W0(e,n,i){e=e.ownerDocument||e,e.head.insertBefore(i,n==="title"?e.querySelector("head > title"):null)}function m2(e,n,i){if(i===1||n.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;switch(n.rel){case"stylesheet":return e=n.disabled,typeof n.precedence=="string"&&e==null;default:return!0}case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function X0(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function h2(e,n,i,l){if(i.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(i.state.loading&4)===0){if(i.instance===null){var f=wo(l.href),h=n.querySelector(Mr(f));if(h){n=h._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(e.count++,e=Cc.bind(e),n.then(e,e)),i.state.loading|=4,i.instance=h,an(h);return}h=n.ownerDocument||n,l=K0(l),(f=es.get(f))&&Ff(l,f),h=h.createElement("link"),an(h);var k=h;k._p=new Promise(function(N,I){k.onload=N,k.onerror=I}),fn(h,"link",l),i.instance=h}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(i,n),(n=i.state.preload)&&(i.state.loading&3)===0&&(e.count++,i=Cc.bind(e),n.addEventListener("load",i),n.addEventListener("error",i))}}var Kf=0;function g2(e,n){return e.stylesheets&&e.count===0&&Ac(e,e.stylesheets),0<e.count||0<e.imgCount?function(i){var l=setTimeout(function(){if(e.stylesheets&&Ac(e,e.stylesheets),e.unsuspend){var h=e.unsuspend;e.unsuspend=null,h()}},6e4+n);0<e.imgBytes&&Kf===0&&(Kf=62500*JS());var f=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Ac(e,e.stylesheets),e.unsuspend)){var h=e.unsuspend;e.unsuspend=null,h()}},(e.imgBytes>Kf?50:800)+n);return e.unsuspend=i,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(f)}}:null}function Cc(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Ac(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Ec=null;function Ac(e,n){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Ec=new Map,n.forEach(v2,e),Ec=null,Cc.call(e))}function v2(e,n){if(!(n.state.loading&4)){var i=Ec.get(e);if(i)var l=i.get(null);else{i=new Map,Ec.set(e,i);for(var f=e.querySelectorAll("link[data-precedence],style[data-precedence]"),h=0;h<f.length;h++){var k=f[h];(k.nodeName==="LINK"||k.getAttribute("media")!=="not all")&&(i.set(k.dataset.precedence,k),l=k)}l&&i.set(null,l)}f=n.instance,k=f.getAttribute("data-precedence"),h=i.get(k)||l,h===l&&i.set(null,f),i.set(k,f),this.count++,l=Cc.bind(this),f.addEventListener("load",l),f.addEventListener("error",l),h?h.parentNode.insertBefore(f,h.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(f,e.firstChild)),n.state.loading|=4}}var Or={$$typeof:A,Provider:null,Consumer:null,_currentValue:Z,_currentValue2:Z,_threadCount:0};function y2(e,n,i,l,f,h,k,N,I){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=P(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=P(0),this.hiddenUpdates=P(null),this.identifierPrefix=l,this.onUncaughtError=f,this.onCaughtError=h,this.onRecoverableError=k,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=I,this.incompleteTransitions=new Map}function Q0(e,n,i,l,f,h,k,N,I,F,ee,ae){return e=new y2(e,n,i,k,I,F,ee,ae,N),n=1,h===!0&&(n|=24),h=Dn(3,null,null,n),e.current=h,h.stateNode=e,n=wu(),n.refCount++,e.pooledCache=n,n.refCount++,h.memoizedState={element:l,isDehydrated:i,cache:n},Au(h),e}function ey(e){return e?(e=so,e):so}function ty(e,n,i,l,f,h){f=ey(f),l.context===null?l.context=f:l.pendingContext=f,l=wa(n),l.payload={element:i},h=h===void 0?null:h,h!==null&&(l.callback=h),i=Na(e,l,n),i!==null&&(En(i,e,n),pr(i,e,n))}function ny(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var i=e.retryLane;e.retryLane=i!==0&&i<n?i:n}}function Yf(e,n){ny(e,n),(e=e.alternate)&&ny(e,n)}function sy(e){if(e.tag===13||e.tag===31){var n=ui(e,67108864);n!==null&&En(n,e,67108864),Yf(e,67108864)}}function ay(e){if(e.tag===13||e.tag===31){var n=Ln();n=Te(n);var i=ui(e,n);i!==null&&En(i,e,n),Yf(e,n)}}var Dc=!0;function b2(e,n,i,l){var f=B.T;B.T=null;var h=R.p;try{R.p=2,Jf(e,n,i,l)}finally{R.p=h,B.T=f}}function _2(e,n,i,l){var f=B.T;B.T=null;var h=R.p;try{R.p=8,Jf(e,n,i,l)}finally{R.p=h,B.T=f}}function Jf(e,n,i,l){if(Dc){var f=Wf(l);if(f===null)Lf(e,n,l,Rc,i),oy(e,l);else if(k2(f,e,n,i,l))l.stopPropagation();else if(oy(e,l),n&4&&-1<x2.indexOf(e)){for(;f!==null;){var h=Fi(f);if(h!==null)switch(h.tag){case 3:if(h=h.stateNode,h.current.memoizedState.isDehydrated){var k=Ts(h.pendingLanes);if(k!==0){var N=h;for(N.pendingLanes|=2,N.entangledLanes|=2;k;){var I=1<<31-sn(k);N.entanglements[1]|=I,k&=~I}As(h),(rt&6)===0&&(mc=tn()+500,Er(0))}}break;case 31:case 13:N=ui(h,2),N!==null&&En(N,h,2),gc(),Yf(h,2)}if(h=Wf(l),h===null&&Lf(e,n,l,Rc,i),h===f)break;f=h}f!==null&&l.stopPropagation()}else Lf(e,n,l,null,i)}}function Wf(e){return e=Xd(e),Xf(e)}var Rc=null;function Xf(e){if(Rc=null,e=Gi(e),e!==null){var n=d(e);if(n===null)e=null;else{var i=n.tag;if(i===13){if(e=u(n),e!==null)return e;e=null}else if(i===31){if(e=p(n),e!==null)return e;e=null}else if(i===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null)}}return Rc=e,null}function iy(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Hi()){case ya:return 2;case ni:return 8;case js:case Pi:return 32;case qn:return 268435456;default:return 32}default:return 32}}var Qf=!1,$a=null,za=null,Ha=null,Lr=new Map,Br=new Map,Pa=[],x2="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function oy(e,n){switch(e){case"focusin":case"focusout":$a=null;break;case"dragenter":case"dragleave":za=null;break;case"mouseover":case"mouseout":Ha=null;break;case"pointerover":case"pointerout":Lr.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":Br.delete(n.pointerId)}}function $r(e,n,i,l,f,h){return e===null||e.nativeEvent!==h?(e={blockedOn:n,domEventName:i,eventSystemFlags:l,nativeEvent:h,targetContainers:[f]},n!==null&&(n=Fi(n),n!==null&&sy(n)),e):(e.eventSystemFlags|=l,n=e.targetContainers,f!==null&&n.indexOf(f)===-1&&n.push(f),e)}function k2(e,n,i,l,f){switch(n){case"focusin":return $a=$r($a,e,n,i,l,f),!0;case"dragenter":return za=$r(za,e,n,i,l,f),!0;case"mouseover":return Ha=$r(Ha,e,n,i,l,f),!0;case"pointerover":var h=f.pointerId;return Lr.set(h,$r(Lr.get(h)||null,e,n,i,l,f)),!0;case"gotpointercapture":return h=f.pointerId,Br.set(h,$r(Br.get(h)||null,e,n,i,l,f)),!0}return!1}function ry(e){var n=Gi(e.target);if(n!==null){var i=d(n);if(i!==null){if(n=i.tag,n===13){if(n=u(i),n!==null){e.blockedOn=n,vt(e.priority,function(){ay(i)});return}}else if(n===31){if(n=p(i),n!==null){e.blockedOn=n,vt(e.priority,function(){ay(i)});return}}else if(n===3&&i.stateNode.current.memoizedState.isDehydrated){e.blockedOn=i.tag===3?i.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Mc(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var i=Wf(e.nativeEvent);if(i===null){i=e.nativeEvent;var l=new i.constructor(i.type,i);Wd=l,i.target.dispatchEvent(l),Wd=null}else return n=Fi(i),n!==null&&sy(n),e.blockedOn=i,!1;n.shift()}return!0}function ly(e,n,i){Mc(e)&&i.delete(n)}function S2(){Qf=!1,$a!==null&&Mc($a)&&($a=null),za!==null&&Mc(za)&&(za=null),Ha!==null&&Mc(Ha)&&(Ha=null),Lr.forEach(ly),Br.forEach(ly)}function Ic(e,n){e.blockedOn===n&&(e.blockedOn=null,Qf||(Qf=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,S2)))}var Oc=null;function cy(e){Oc!==e&&(Oc=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Oc===e&&(Oc=null);for(var n=0;n<e.length;n+=3){var i=e[n],l=e[n+1],f=e[n+2];if(typeof l!="function"){if(Xf(l||i)===null)continue;break}var h=Fi(i);h!==null&&(e.splice(n,3),n-=3,Ju(h,{pending:!0,data:f,method:i.method,action:l},l,f))}}))}function Co(e){function n(I){return Ic(I,e)}$a!==null&&Ic($a,e),za!==null&&Ic(za,e),Ha!==null&&Ic(Ha,e),Lr.forEach(n),Br.forEach(n);for(var i=0;i<Pa.length;i++){var l=Pa[i];l.blockedOn===e&&(l.blockedOn=null)}for(;0<Pa.length&&(i=Pa[0],i.blockedOn===null);)ry(i),i.blockedOn===null&&Pa.shift();if(i=(e.ownerDocument||e).$$reactFormReplay,i!=null)for(l=0;l<i.length;l+=3){var f=i[l],h=i[l+1],k=f[ut]||null;if(typeof h=="function")k||cy(i);else if(k){var N=null;if(h&&h.hasAttribute("formAction")){if(f=h,k=h[ut]||null)N=k.formAction;else if(Xf(f)!==null)continue}else N=k.action;typeof N=="function"?i[l+1]=N:(i.splice(l,3),l-=3),cy(i)}}}function dy(){function e(h){h.canIntercept&&h.info==="react-transition"&&h.intercept({handler:function(){return new Promise(function(k){return f=k})},focusReset:"manual",scroll:"manual"})}function n(){f!==null&&(f(),f=null),l||setTimeout(i,20)}function i(){if(!l&&!navigation.transition){var h=navigation.currentEntry;h&&h.url!=null&&navigation.navigate(h.url,{state:h.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var l=!1,f=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",n),navigation.addEventListener("navigateerror",n),setTimeout(i,100),function(){l=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",n),navigation.removeEventListener("navigateerror",n),f!==null&&(f(),f=null)}}}function ep(e){this._internalRoot=e}Lc.prototype.render=ep.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(r(409));var i=n.current,l=Ln();ty(i,l,e,n,null,null)},Lc.prototype.unmount=ep.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;ty(e.current,2,null,e,null,null),gc(),n[bt]=null}};function Lc(e){this._internalRoot=e}Lc.prototype.unstable_scheduleHydration=function(e){if(e){var n=Qe();e={blockedOn:null,target:e,priority:n};for(var i=0;i<Pa.length&&n!==0&&n<Pa[i].priority;i++);Pa.splice(i,0,e),i===0&&ry(e)}};var uy=s.version;if(uy!=="19.2.4")throw Error(r(527,uy,"19.2.4"));R.findDOMNode=function(e){var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(r(188)):(e=Object.keys(e).join(","),Error(r(268,e)));return e=g(n),e=e!==null?v(e):null,e=e===null?null:e.stateNode,e};var j2={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:B,reconcilerVersion:"19.2.4"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Bc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bc.isDisabled&&Bc.supportsFiber)try{nn=Bc.inject(j2),wt=Bc}catch{}}return Hr.createRoot=function(e,n){if(!c(e))throw Error(r(299));var i=!1,l="",f=yv,h=bv,k=_v;return n!=null&&(n.unstable_strictMode===!0&&(i=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(f=n.onUncaughtError),n.onCaughtError!==void 0&&(h=n.onCaughtError),n.onRecoverableError!==void 0&&(k=n.onRecoverableError)),n=Q0(e,1,!1,null,null,i,l,null,f,h,k,dy),e[bt]=n.current,Of(e),new ep(n)},Hr.hydrateRoot=function(e,n,i){if(!c(e))throw Error(r(299));var l=!1,f="",h=yv,k=bv,N=_v,I=null;return i!=null&&(i.unstable_strictMode===!0&&(l=!0),i.identifierPrefix!==void 0&&(f=i.identifierPrefix),i.onUncaughtError!==void 0&&(h=i.onUncaughtError),i.onCaughtError!==void 0&&(k=i.onCaughtError),i.onRecoverableError!==void 0&&(N=i.onRecoverableError),i.formState!==void 0&&(I=i.formState)),n=Q0(e,1,!0,n,i??null,l,f,I,h,k,N,dy),n.context=ey(null),i=n.current,l=Ln(),l=Te(l),f=wa(l),f.callback=null,Na(i,f,l),i=l,n.current.lanes=i,te(n,i),As(n),e[bt]=n.current,Of(e),new Lc(n)},Hr.version="19.2.4",Hr}var by;function ej(){if(by)return tp.exports;by=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(s){console.error(s)}}return t(),tp.exports=Q2(),tp.exports}var tj=ej();const nj="modulepreload",sj=function(t){return"/"+t},_y={},aj=function(s,o,r){let c=Promise.resolve();if(o&&o.length>0){let u=function(g){return Promise.all(g.map(v=>Promise.resolve(v).then(_=>({status:"fulfilled",value:_}),_=>({status:"rejected",reason:_}))))};document.getElementsByTagName("link");const p=document.querySelector("meta[property=csp-nonce]"),m=(p==null?void 0:p.nonce)||(p==null?void 0:p.getAttribute("nonce"));c=u(o.map(g=>{if(g=sj(g),g in _y)return;_y[g]=!0;const v=g.endsWith(".css"),_=v?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${g}"]${_}`))return;const b=document.createElement("link");if(b.rel=v?"stylesheet":nj,v||(b.as="script"),b.crossOrigin="",b.href=g,m&&b.setAttribute("nonce",m),document.head.appendChild(b),v)return new Promise((x,S)=>{b.addEventListener("load",x),b.addEventListener("error",()=>S(new Error(`Unable to preload CSS for ${g}`)))})}))}function d(u){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=u,window.dispatchEvent(p),!p.defaultPrevented)throw u}return c.then(u=>{for(const p of u||[])p.status==="rejected"&&d(p.reason);return s().catch(d)})},ij=new Proxy(globalThis.fetch,{apply(t,s,o){return Reflect.apply(globalThis.fetch,s,o)}}),Dd=I2({baseUrl:"/",fetch:ij}),Be=Cd(O2,Dd),mn=Cd(L2,Dd),Hc=Cd(B2,Dd),Pc=Cd($2,Dd),oj="_bar_1xhb4_1",rj="_input_1xhb4_32",lj="_select_1xhb4_67",cj="_btnPrimary_1xhb4_103",dj="_btnGhost_1xhb4_173",uj="_badge_1xhb4_195",fj="_disconnectHint_1xhb4_205",$n={bar:oj,input:rj,select:lj,btnPrimary:cj,btnGhost:dj,badge:uj,disconnectHint:fj};function pj(t,s){if(!t)return!1;const o=s.find(r=>r.id===t);return o!==void 0&&(o.status==="disconnected"||o.status==="error")}function mj({environmentId:t,onReconnect:s}){return a.jsxs(a.Fragment,{children:[a.jsx("span",{className:$n.disconnectHint,"data-testid":"env-disconnect-hint",children:"Environment unavailable"}),a.jsx("button",{type:"button",onClick:()=>s(t),className:$n.btnGhost,"data-testid":"reconnect-btn",title:"Reconnect the environment to resume messaging",children:"Reconnect"})]})}function Rd({mode:t,sessionId:s,environmentId:o,taskId:r,showPersonaSelect:c,personas:d,environments:u,onSendInput:p,onSpawn:m,onStartTask:g,onProvisionEnvironment:v,onShowToast:_}){const[b,x]=y.useState(""),[S,j]=y.useState(""),w=pj(o,u),T=C=>{if(C.preventDefault(),!!b.trim())if(t==="send"){if(!s||w)return;p(s,b),x("")}else if(t==="spawn"){if(!o)return;m(o,b,S),_==null||_("Session started","success"),x(""),j("")}else{if(!r)return;g(r,void 0,o,b),x("")}};return t==="spawn"?a.jsxs("form",{onSubmit:T,className:$n.bar,children:[a.jsx("span",{className:$n.badge,children:"new chat"}),a.jsx("input",{type:"text",value:b,onChange:C=>x(C.target.value),placeholder:"Enter prompt...",autoFocus:!0,className:$n.input,"aria-label":"Enter prompt"}),c&&a.jsxs("select",{value:S,onChange:C=>j(C.target.value),className:$n.select,"aria-label":"Select persona",children:[a.jsx("option",{value:"",children:"(Default)"}),d.map(C=>a.jsx("option",{value:C.id,children:C.name},C.id))]}),a.jsx("button",{type:"submit",disabled:!b.trim()||!o,className:$n.btnPrimary,children:"Go"})]}):t==="start"?a.jsxs("form",{onSubmit:T,className:$n.bar,children:[a.jsx("input",{type:"text",value:b,onChange:C=>x(C.target.value),placeholder:"Type a message...",autoFocus:!0,className:$n.input,"aria-label":"Type a message"}),a.jsx("button",{type:"submit",disabled:!b.trim(),className:$n.btnPrimary,children:"Send"})]}):a.jsxs("form",{onSubmit:T,className:$n.bar,children:[w&&o&&a.jsx(mj,{environmentId:o,onReconnect:v}),a.jsx("input",{type:"text",value:b,onChange:C=>x(C.target.value),placeholder:"Type a message...",autoFocus:!w,disabled:w,className:$n.input,"aria-label":"Type a message"}),a.jsx("span",{title:w?"Environment is unavailable — reconnect first":void 0,children:a.jsx("button",{type:"submit",disabled:!b.trim()||w,className:$n.btnPrimary,children:"Send"})})]})}const xy=220,ky=70,hj=40,gj=60,vj="hierarchy",yj="dependency";function bj(t){return y.useMemo(()=>{if(t.length===0)return{nodes:[],edges:[]};const s=new fy.graphlib.Graph({multigraph:!0});s.setDefaultEdgeLabel(()=>({})),s.setGraph({rankdir:"TB",nodesep:hj,ranksep:gj});const o=new Map(t.map(u=>[u.id,u])),r=new Map;for(const u of t)if(u.parentTaskId&&o.has(u.parentTaskId)){const p=r.get(u.parentTaskId)||[];p.push(u),r.set(u.parentTaskId,p)}for(const u of t)s.setNode(u.id,{width:xy,height:ky});const c=[];for(const u of t){if(u.parentTaskId&&o.has(u.parentTaskId)){const p=`hierarchy-${u.parentTaskId}-${u.id}`;s.setEdge(u.parentTaskId,u.id,{},p),c.push({id:p,source:u.parentTaskId,target:u.id,type:"smoothstep",data:{edgeType:vj},style:{stroke:"var(--accent-green)",strokeWidth:2},animated:!1})}for(const p of u.dependsOn)if(o.has(p)){const m=`dependency-${p}-${u.id}`;s.setEdge(p,u.id,{},m),c.push({id:m,source:p,target:u.id,type:"smoothstep",data:{edgeType:yj},style:{stroke:"var(--text-tertiary)",strokeWidth:1.5,strokeDasharray:"6 3"},animated:!1})}}return fy.layout(s),{nodes:t.map(u=>{const p=s.node(u.id),m=r.get(u.id)||[];return{id:u.id,type:"task",position:{x:p.x-xy/2,y:p.y-ky/2},data:{task:u,childCount:m.length,doneChildCount:m.filter(g=>g.status==="complete").length,hasDependencies:u.dependsOn.length>0}}}),edges:c}},[t])}/**
27
- * @license lucide-react v0.474.0 - ISC
28
- *
29
- * This source code is licensed under the ISC license.
30
- * See the LICENSE file in the root directory of this source tree.
31
- */const _j=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),M_=(...t)=>t.filter((s,o,r)=>!!s&&s.trim()!==""&&r.indexOf(s)===o).join(" ").trim();/**
32
- * @license lucide-react v0.474.0 - ISC
33
- *
34
- * This source code is licensed under the ISC license.
35
- * See the LICENSE file in the root directory of this source tree.
36
- */var xj={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
37
- * @license lucide-react v0.474.0 - ISC
38
- *
39
- * This source code is licensed under the ISC license.
40
- * See the LICENSE file in the root directory of this source tree.
41
- */const kj=y.forwardRef(({color:t="currentColor",size:s=24,strokeWidth:o=2,absoluteStrokeWidth:r,className:c="",children:d,iconNode:u,...p},m)=>y.createElement("svg",{ref:m,...xj,width:s,height:s,stroke:t,strokeWidth:r?Number(o)*24/Number(s):o,className:M_("lucide",c),...p},[...u.map(([g,v])=>y.createElement(g,v)),...Array.isArray(d)?d:[d]]));/**
42
- * @license lucide-react v0.474.0 - ISC
43
- *
44
- * This source code is licensed under the ISC license.
45
- * See the LICENSE file in the root directory of this source tree.
46
- */const $e=(t,s)=>{const o=y.forwardRef(({className:r,...c},d)=>y.createElement(kj,{ref:d,iconNode:s,className:M_(`lucide-${_j(t)}`,r),...c}));return o.displayName=`${t}`,o};/**
47
- * @license lucide-react v0.474.0 - ISC
48
- *
49
- * This source code is licensed under the ISC license.
50
- * See the LICENSE file in the root directory of this source tree.
51
- */const Sj=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Sy=$e("ArrowDown",Sj);/**
52
- * @license lucide-react v0.474.0 - ISC
53
- *
54
- * This source code is licensed under the ISC license.
55
- * See the LICENSE file in the root directory of this source tree.
56
- */const jj=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],jy=$e("ArrowUp",jj);/**
57
- * @license lucide-react v0.474.0 - ISC
58
- *
59
- * This source code is licensed under the ISC license.
60
- * See the LICENSE file in the root directory of this source tree.
61
- */const Tj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]],wj=$e("Ban",Tj);/**
62
- * @license lucide-react v0.474.0 - ISC
63
- *
64
- * This source code is licensed under the ISC license.
65
- * See the LICENSE file in the root directory of this source tree.
66
- */const Nj=[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]],Cj=$e("Brain",Nj);/**
67
- * @license lucide-react v0.474.0 - ISC
68
- *
69
- * This source code is licensed under the ISC license.
70
- * See the LICENSE file in the root directory of this source tree.
71
- */const Ej=[["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M17.5 17.5 16 16.3V14",key:"akvzfd"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]],Aj=$e("CalendarClock",Ej);/**
72
- * @license lucide-react v0.474.0 - ISC
73
- *
74
- * This source code is licensed under the ISC license.
75
- * See the LICENSE file in the root directory of this source tree.
76
- */const Dj=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Li=$e("Check",Dj);/**
77
- * @license lucide-react v0.474.0 - ISC
78
- *
79
- * This source code is licensed under the ISC license.
80
- * See the LICENSE file in the root directory of this source tree.
81
- */const Rj=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],I_=$e("ChevronDown",Rj);/**
82
- * @license lucide-react v0.474.0 - ISC
83
- *
84
- * This source code is licensed under the ISC license.
85
- * See the LICENSE file in the root directory of this source tree.
86
- */const Mj=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],ma=$e("ChevronRight",Mj);/**
87
- * @license lucide-react v0.474.0 - ISC
88
- *
89
- * This source code is licensed under the ISC license.
90
- * See the LICENSE file in the root directory of this source tree.
91
- */const Ij=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Ja=$e("Circle",Ij);/**
92
- * @license lucide-react v0.474.0 - ISC
93
- *
94
- * This source code is licensed under the ISC license.
95
- * See the LICENSE file in the root directory of this source tree.
96
- */const Oj=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]],Lj=$e("ClipboardList",Oj);/**
97
- * @license lucide-react v0.474.0 - ISC
98
- *
99
- * This source code is licensed under the ISC license.
100
- * See the LICENSE file in the root directory of this source tree.
101
- */const Bj=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]],O_=$e("Clipboard",Bj);/**
102
- * @license lucide-react v0.474.0 - ISC
103
- *
104
- * This source code is licensed under the ISC license.
105
- * See the LICENSE file in the root directory of this source tree.
106
- */const $j=[["path",{d:"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z",key:"sobvz5"}],["path",{d:"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z",key:"11i496"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 22v-2",key:"1osdcq"}],["path",{d:"m17 20.66-1-1.73",key:"eq3orb"}],["path",{d:"M11 10.27 7 3.34",key:"16pf9h"}],["path",{d:"m20.66 17-1.73-1",key:"sg0v6f"}],["path",{d:"m3.34 7 1.73 1",key:"1ulond"}],["path",{d:"M14 12h8",key:"4f43i9"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"m20.66 7-1.73 1",key:"1ow05n"}],["path",{d:"m3.34 17 1.73-1",key:"nuk764"}],["path",{d:"m17 3.34-1 1.73",key:"2wel8s"}],["path",{d:"m11 13.73-4 6.93",key:"794ttg"}]],zj=$e("Cog",$j);/**
107
- * @license lucide-react v0.474.0 - ISC
108
- *
109
- * This source code is licensed under the ISC license.
110
- * See the LICENSE file in the root directory of this source tree.
111
- */const Hj=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],Pj=$e("Copy",Hj);/**
112
- * @license lucide-react v0.474.0 - ISC
113
- *
114
- * This source code is licensed under the ISC license.
115
- * See the LICENSE file in the root directory of this source tree.
116
- */const Uj=[["polyline",{points:"15 10 20 15 15 20",key:"1q7qjw"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]],Vj=$e("CornerDownRight",Uj);/**
117
- * @license lucide-react v0.474.0 - ISC
118
- *
119
- * This source code is licensed under the ISC license.
120
- * See the LICENSE file in the root directory of this source tree.
121
- */const qj=[["path",{d:"M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5",key:"1couwa"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1y4qbx"}]],Gj=$e("FilePen",qj);/**
122
- * @license lucide-react v0.474.0 - ISC
123
- *
124
- * This source code is licensed under the ISC license.
125
- * See the LICENSE file in the root directory of this source tree.
126
- */const Fj=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],Zj=$e("FileText",Fj);/**
127
- * @license lucide-react v0.474.0 - ISC
128
- *
129
- * This source code is licensed under the ISC license.
130
- * See the LICENSE file in the root directory of this source tree.
131
- */const Kj=[["polyline",{points:"15 17 20 12 15 7",key:"1w3sku"}],["path",{d:"M4 18v-2a4 4 0 0 1 4-4h12",key:"jmiej9"}]],Yj=$e("Forward",Kj);/**
132
- * @license lucide-react v0.474.0 - ISC
133
- *
134
- * This source code is licensed under the ISC license.
135
- * See the LICENSE file in the root directory of this source tree.
136
- */const Jj=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],Wj=$e("Github",Jj);/**
137
- * @license lucide-react v0.474.0 - ISC
138
- *
139
- * This source code is licensed under the ISC license.
140
- * See the LICENSE file in the root directory of this source tree.
141
- */const Xj=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]],Qj=$e("House",Xj);/**
142
- * @license lucide-react v0.474.0 - ISC
143
- *
144
- * This source code is licensed under the ISC license.
145
- * See the LICENSE file in the root directory of this source tree.
146
- */const eT=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Tm=$e("Info",eT);/**
147
- * @license lucide-react v0.474.0 - ISC
148
- *
149
- * This source code is licensed under the ISC license.
150
- * See the LICENSE file in the root directory of this source tree.
151
- */const tT=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],nT=$e("Key",tT);/**
152
- * @license lucide-react v0.474.0 - ISC
153
- *
154
- * This source code is licensed under the ISC license.
155
- * See the LICENSE file in the root directory of this source tree.
156
- */const sT=[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]],aT=$e("Keyboard",sT);/**
157
- * @license lucide-react v0.474.0 - ISC
158
- *
159
- * This source code is licensed under the ISC license.
160
- * See the LICENSE file in the root directory of this source tree.
161
- */const iT=[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]],oT=$e("ListChecks",iT);/**
162
- * @license lucide-react v0.474.0 - ISC
163
- *
164
- * This source code is licensed under the ISC license.
165
- * See the LICENSE file in the root directory of this source tree.
166
- */const rT=[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]],lT=$e("List",rT);/**
167
- * @license lucide-react v0.474.0 - ISC
168
- *
169
- * This source code is licensed under the ISC license.
170
- * See the LICENSE file in the root directory of this source tree.
171
- */const cT=[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]],dT=$e("Loader",cT);/**
172
- * @license lucide-react v0.474.0 - ISC
173
- *
174
- * This source code is licensed under the ISC license.
175
- * See the LICENSE file in the root directory of this source tree.
176
- */const uT=[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]],fT=$e("Menu",uT);/**
177
- * @license lucide-react v0.474.0 - ISC
178
- *
179
- * This source code is licensed under the ISC license.
180
- * See the LICENSE file in the root directory of this source tree.
181
- */const pT=[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]],L_=$e("MessageSquare",pT);/**
182
- * @license lucide-react v0.474.0 - ISC
183
- *
184
- * This source code is licensed under the ISC license.
185
- * See the LICENSE file in the root directory of this source tree.
186
- */const mT=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],hT=$e("Monitor",mT);/**
187
- * @license lucide-react v0.474.0 - ISC
188
- *
189
- * This source code is licensed under the ISC license.
190
- * See the LICENSE file in the root directory of this source tree.
191
- */const gT=[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]],vT=$e("Palette",gT);/**
192
- * @license lucide-react v0.474.0 - ISC
193
- *
194
- * This source code is licensed under the ISC license.
195
- * See the LICENSE file in the root directory of this source tree.
196
- */const yT=[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]],bT=$e("Pause",yT);/**
197
- * @license lucide-react v0.474.0 - ISC
198
- *
199
- * This source code is licensed under the ISC license.
200
- * See the LICENSE file in the root directory of this source tree.
201
- */const _T=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],xT=$e("Pencil",_T);/**
202
- * @license lucide-react v0.474.0 - ISC
203
- *
204
- * This source code is licensed under the ISC license.
205
- * See the LICENSE file in the root directory of this source tree.
206
- */const kT=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],ST=$e("Puzzle",kT);/**
207
- * @license lucide-react v0.474.0 - ISC
208
- *
209
- * This source code is licensed under the ISC license.
210
- * See the LICENSE file in the root directory of this source tree.
211
- */const jT=[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]],TT=$e("Radio",jT);/**
212
- * @license lucide-react v0.474.0 - ISC
213
- *
214
- * This source code is licensed under the ISC license.
215
- * See the LICENSE file in the root directory of this source tree.
216
- */const wT=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],NT=$e("RefreshCw",wT);/**
217
- * @license lucide-react v0.474.0 - ISC
218
- *
219
- * This source code is licensed under the ISC license.
220
- * See the LICENSE file in the root directory of this source tree.
221
- */const CT=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],fd=$e("Search",CT);/**
222
- * @license lucide-react v0.474.0 - ISC
223
- *
224
- * This source code is licensed under the ISC license.
225
- * See the LICENSE file in the root directory of this source tree.
226
- */const ET=[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],AT=$e("Settings",ET);/**
227
- * @license lucide-react v0.474.0 - ISC
228
- *
229
- * This source code is licensed under the ISC license.
230
- * See the LICENSE file in the root directory of this source tree.
231
- */const DT=[["path",{d:"M21 10.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.5",key:"1uzm8b"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],RT=$e("SquareCheckBig",DT);/**
232
- * @license lucide-react v0.474.0 - ISC
233
- *
234
- * This source code is licensed under the ISC license.
235
- * See the LICENSE file in the root directory of this source tree.
236
- */const MT=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],IT=$e("Star",MT);/**
237
- * @license lucide-react v0.474.0 - ISC
238
- *
239
- * This source code is licensed under the ISC license.
240
- * See the LICENSE file in the root directory of this source tree.
241
- */const OT=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],wm=$e("TriangleAlert",OT);/**
242
- * @license lucide-react v0.474.0 - ISC
243
- *
244
- * This source code is licensed under the ISC license.
245
- * See the LICENSE file in the root directory of this source tree.
246
- */const LT=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],BT=$e("User",LT);/**
247
- * @license lucide-react v0.474.0 - ISC
248
- *
249
- * This source code is licensed under the ISC license.
250
- * See the LICENSE file in the root directory of this source tree.
251
- */const $T=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],$s=$e("X",$T),Nm=8,it=12,Ut=14,Et=16,Yp={not_started:{color:"var(--text-tertiary)",icon:a.jsx(Ja,{size:it}),label:"Not Started"},working:{color:"var(--accent-green)",icon:a.jsx(Ja,{size:it,fill:"currentColor"}),label:"Working"},paused:{color:"var(--accent-yellow)",icon:a.jsx(bT,{size:it}),label:"Paused"},complete:{color:"var(--accent-green)",icon:a.jsx(Li,{size:it}),label:"Complete"},failed:{color:"var(--accent-red)",icon:a.jsx($s,{size:it}),label:"Failed"},blocked:{color:"var(--accent-yellow)",icon:a.jsx(wj,{size:it}),label:"Blocked"}};function Wa(t){return t==="blocked"?Yp.blocked:Yp[gl(t)]}const zT={not_started:"statusPending",working:"statusInProgress",paused:"statusWaitingInput",complete:"statusDone",failed:"statusFailed"};function HT(t){return zT[gl(t)]??"statusPending"}const PT=["working","paused","failed","not_started","blocked","complete"],Ty=["not_started","working","paused","complete","failed"],UT={pending:"not_started",assigned:"not_started",in_progress:"working",waiting_input:"paused",review:"paused",done:"complete"};function gl(t){return t in Yp&&t!=="blocked"?t:UT[t]??"not_started"}const VT={not_started:"--text-tertiary",working:"--accent-green",paused:"--accent-yellow",complete:"--accent-green",failed:"--accent-red",pending:"--text-tertiary",assigned:"--text-tertiary",in_progress:"--accent-green",review:"--accent-yellow",done:"--accent-green",waiting_input:"--accent-yellow"},qT="_dagContainer_js4w6_1",GT="_taskNode_js4w6_26",FT="_taskNodeBorder_js4w6_54",ZT="_taskNodeContent_js4w6_60",KT="_taskNodeHeader_js4w6_70",YT="_taskNodeIcon_js4w6_77",JT="_taskNodeTitle_js4w6_82",WT="_taskNodeBadges_js4w6_90",XT="_childBadge_js4w6_95",QT="_depBadge_js4w6_107",ew="_handle_js4w6_119",tw="_emptyCta_js4w6_126",nw="_ctaDescription_js4w6_137",sw="_ctaButton_js4w6_144",Sn={dagContainer:qT,taskNode:GT,taskNodeBorder:FT,taskNodeContent:ZT,taskNodeHeader:KT,taskNodeIcon:YT,taskNodeTitle:JT,taskNodeBadges:WT,childBadge:XT,depBadge:QT,handle:ew,emptyCta:tw,ctaDescription:nw,ctaButton:sw};function aw({data:t}){const{task:s,childCount:o,doneChildCount:r,hasDependencies:c}=t,d=Wa(s.status);return a.jsxs("div",{className:Sn.taskNode,"data-task-id":s.id,"data-task-title":s.title,children:[a.jsx(py,{type:"target",position:my.Top,className:Sn.handle}),a.jsx("div",{className:Sn.taskNodeBorder,style:{backgroundColor:d.color}}),a.jsxs("div",{className:Sn.taskNodeContent,children:[a.jsxs("div",{className:Sn.taskNodeHeader,children:[a.jsx("span",{className:Sn.taskNodeIcon,style:{color:d.color},children:d.icon}),a.jsx("span",{className:Sn.taskNodeTitle,children:s.title})]}),a.jsxs("div",{className:Sn.taskNodeBadges,children:[o>0&&a.jsxs("span",{className:Sn.childBadge,children:[r,"/",o]}),c&&a.jsx("span",{className:Sn.depBadge,children:"dep"})]})]}),a.jsx(py,{type:"source",position:my.Bottom,className:Sn.handle})]})}/**
252
- * react-router v7.13.2
253
- *
254
- * Copyright (c) Remix Software Inc.
255
- *
256
- * This source code is licensed under the MIT license found in the
257
- * LICENSE.md file in the root directory of this source tree.
258
- *
259
- * @license MIT
260
- */var wy="popstate";function Ny(t){return typeof t=="object"&&t!=null&&"pathname"in t&&"search"in t&&"hash"in t&&"state"in t&&"key"in t}function iw(t={}){function s(r,c){var g;let d=(g=c.state)==null?void 0:g.masked,{pathname:u,search:p,hash:m}=d||r.location;return Jp("",{pathname:u,search:p,hash:m},c.state&&c.state.usr||null,c.state&&c.state.key||"default",d?{pathname:r.location.pathname,search:r.location.search,hash:r.location.hash}:void 0)}function o(r,c){return typeof c=="string"?c:rl(c)}return rw(s,o,null,t)}function St(t,s){if(t===!1||t===null||typeof t>"u")throw new Error(s)}function cs(t,s){if(!t){typeof console<"u"&&console.warn(s);try{throw new Error(s)}catch{}}}function ow(){return Math.random().toString(36).substring(2,10)}function Cy(t,s){return{usr:t.state,key:t.key,idx:s,masked:t.unstable_mask?{pathname:t.pathname,search:t.search,hash:t.hash}:void 0}}function Jp(t,s,o=null,r,c){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof s=="string"?Vo(s):s,state:o,key:s&&s.key||r||ow(),unstable_mask:c}}function rl({pathname:t="/",search:s="",hash:o=""}){return s&&s!=="?"&&(t+=s.charAt(0)==="?"?s:"?"+s),o&&o!=="#"&&(t+=o.charAt(0)==="#"?o:"#"+o),t}function Vo(t){let s={};if(t){let o=t.indexOf("#");o>=0&&(s.hash=t.substring(o),t=t.substring(0,o));let r=t.indexOf("?");r>=0&&(s.search=t.substring(r),t=t.substring(0,r)),t&&(s.pathname=t)}return s}function rw(t,s,o,r={}){let{window:c=document.defaultView,v5Compat:d=!1}=r,u=c.history,p="POP",m=null,g=v();g==null&&(g=0,u.replaceState({...u.state,idx:g},""));function v(){return(u.state||{idx:null}).idx}function _(){p="POP";let w=v(),T=w==null?null:w-g;g=w,m&&m({action:p,location:j.location,delta:T})}function b(w,T){p="PUSH";let C=Ny(w)?w:Jp(j.location,w,T);g=v()+1;let A=Cy(C,g),L=j.createHref(C.unstable_mask||C);try{u.pushState(A,"",L)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;c.location.assign(L)}d&&m&&m({action:p,location:j.location,delta:1})}function x(w,T){p="REPLACE";let C=Ny(w)?w:Jp(j.location,w,T);g=v();let A=Cy(C,g),L=j.createHref(C.unstable_mask||C);u.replaceState(A,"",L),d&&m&&m({action:p,location:j.location,delta:0})}function S(w){return lw(w)}let j={get action(){return p},get location(){return t(c,u)},listen(w){if(m)throw new Error("A history only accepts one active listener");return c.addEventListener(wy,_),m=w,()=>{c.removeEventListener(wy,_),m=null}},createHref(w){return s(c,w)},createURL:S,encodeLocation(w){let T=S(w);return{pathname:T.pathname,search:T.search,hash:T.hash}},push:b,replace:x,go(w){return u.go(w)}};return j}function lw(t,s=!1){let o="http://localhost";typeof window<"u"&&(o=window.location.origin!=="null"?window.location.origin:window.location.href),St(o,"No window.location.(origin|href) available to create URL");let r=typeof t=="string"?t:rl(t);return r=r.replace(/ $/,"%20"),!s&&r.startsWith("//")&&(r=o+r),new URL(r,o)}function B_(t,s,o="/"){return cw(t,s,o,!1)}function cw(t,s,o,r){let c=typeof s=="string"?Vo(s):s,d=ua(c.pathname||"/",o);if(d==null)return null;let u=$_(t);dw(u);let p=null;for(let m=0;p==null&&m<u.length;++m){let g=H_(d);p=bw(u[m],g,r)}return p}function $_(t,s=[],o=[],r="",c=!1){let d=(u,p,m=c,g)=>{let v={relativePath:g===void 0?u.path||"":g,caseSensitive:u.caseSensitive===!0,childrenIndex:p,route:u};if(v.relativePath.startsWith("/")){if(!v.relativePath.startsWith(r)&&m)return;St(v.relativePath.startsWith(r),`Absolute route path "${v.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),v.relativePath=v.relativePath.slice(r.length)}let _=Os([r,v.relativePath]),b=o.concat(v);u.children&&u.children.length>0&&(St(u.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${_}".`),$_(u.children,s,b,_,m)),!(u.path==null&&!u.index)&&s.push({path:_,score:vw(_,u.index),routesMeta:b})};return t.forEach((u,p)=>{var m;if(u.path===""||!((m=u.path)!=null&&m.includes("?")))d(u,p);else for(let g of z_(u.path))d(u,p,!0,g)}),s}function z_(t){let s=t.split("/");if(s.length===0)return[];let[o,...r]=s,c=o.endsWith("?"),d=o.replace(/\?$/,"");if(r.length===0)return c?[d,""]:[d];let u=z_(r.join("/")),p=[];return p.push(...u.map(m=>m===""?d:[d,m].join("/"))),c&&p.push(...u),p.map(m=>t.startsWith("/")&&m===""?"/":m)}function dw(t){t.sort((s,o)=>s.score!==o.score?o.score-s.score:yw(s.routesMeta.map(r=>r.childrenIndex),o.routesMeta.map(r=>r.childrenIndex)))}var uw=/^:[\w-]+$/,fw=3,pw=2,mw=1,hw=10,gw=-2,Ey=t=>t==="*";function vw(t,s){let o=t.split("/"),r=o.length;return o.some(Ey)&&(r+=gw),s&&(r+=pw),o.filter(c=>!Ey(c)).reduce((c,d)=>c+(uw.test(d)?fw:d===""?mw:hw),r)}function yw(t,s){return t.length===s.length&&t.slice(0,-1).every((r,c)=>r===s[c])?t[t.length-1]-s[s.length-1]:0}function bw(t,s,o=!1){let{routesMeta:r}=t,c={},d="/",u=[];for(let p=0;p<r.length;++p){let m=r[p],g=p===r.length-1,v=d==="/"?s:s.slice(d.length)||"/",_=ll({path:m.relativePath,caseSensitive:m.caseSensitive,end:g},v),b=m.route;if(!_&&g&&o&&!r[r.length-1].route.index&&(_=ll({path:m.relativePath,caseSensitive:m.caseSensitive,end:!1},v)),!_)return null;Object.assign(c,_.params),u.push({params:c,pathname:Os([d,_.pathname]),pathnameBase:jw(Os([d,_.pathnameBase])),route:b}),_.pathnameBase!=="/"&&(d=Os([d,_.pathnameBase]))}return u}function ll(t,s){typeof t=="string"&&(t={path:t,caseSensitive:!1,end:!0});let[o,r]=_w(t.path,t.caseSensitive,t.end),c=s.match(o);if(!c)return null;let d=c[0],u=d.replace(/(.)\/+$/,"$1"),p=c.slice(1);return{params:r.reduce((g,{paramName:v,isOptional:_},b)=>{if(v==="*"){let S=p[b]||"";u=d.slice(0,d.length-S.length).replace(/(.)\/+$/,"$1")}const x=p[b];return _&&!x?g[v]=void 0:g[v]=(x||"").replace(/%2F/g,"/"),g},{}),pathname:d,pathnameBase:u,pattern:t}}function _w(t,s=!1,o=!0){cs(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let r=[],c="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(u,p,m,g,v)=>{if(r.push({paramName:p,isOptional:m!=null}),m){let _=v.charAt(g+u.length);return _&&_!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(r.push({paramName:"*"}),c+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):o?c+="\\/*$":t!==""&&t!=="/"&&(c+="(?:(?=\\/|$))"),[new RegExp(c,s?void 0:"i"),r]}function H_(t){try{return t.split("/").map(s=>decodeURIComponent(s).replace(/\//g,"%2F")).join("/")}catch(s){return cs(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${s}).`),t}}function ua(t,s){if(s==="/")return t;if(!t.toLowerCase().startsWith(s.toLowerCase()))return null;let o=s.endsWith("/")?s.length-1:s.length,r=t.charAt(o);return r&&r!=="/"?null:t.slice(o)||"/"}var xw=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function kw(t,s="/"){let{pathname:o,search:r="",hash:c=""}=typeof t=="string"?Vo(t):t,d;return o?(o=o.replace(/\/\/+/g,"/"),o.startsWith("/")?d=Ay(o.substring(1),"/"):d=Ay(o,s)):d=s,{pathname:d,search:Tw(r),hash:ww(c)}}function Ay(t,s){let o=s.replace(/\/+$/,"").split("/");return t.split("/").forEach(c=>{c===".."?o.length>1&&o.pop():c!=="."&&o.push(c)}),o.length>1?o.join("/"):"/"}function ap(t,s,o,r){return`Cannot include a '${t}' character in a manually specified \`to.${s}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${o}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Sw(t){return t.filter((s,o)=>o===0||s.route.path&&s.route.path.length>0)}function Cm(t){let s=Sw(t);return s.map((o,r)=>r===s.length-1?o.pathname:o.pathnameBase)}function Md(t,s,o,r=!1){let c;typeof t=="string"?c=Vo(t):(c={...t},St(!c.pathname||!c.pathname.includes("?"),ap("?","pathname","search",c)),St(!c.pathname||!c.pathname.includes("#"),ap("#","pathname","hash",c)),St(!c.search||!c.search.includes("#"),ap("#","search","hash",c)));let d=t===""||c.pathname==="",u=d?"/":c.pathname,p;if(u==null)p=o;else{let _=s.length-1;if(!r&&u.startsWith("..")){let b=u.split("/");for(;b[0]==="..";)b.shift(),_-=1;c.pathname=b.join("/")}p=_>=0?s[_]:"/"}let m=kw(c,p),g=u&&u!=="/"&&u.endsWith("/"),v=(d||u===".")&&o.endsWith("/");return!m.pathname.endsWith("/")&&(g||v)&&(m.pathname+="/"),m}var Os=t=>t.join("/").replace(/\/\/+/g,"/"),jw=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),Tw=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,ww=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t,Nw=class{constructor(t,s,o,r=!1){this.status=t,this.statusText=s||"",this.internal=r,o instanceof Error?(this.data=o.toString(),this.error=o):this.data=o}};function Cw(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}function Ew(t){return t.map(s=>s.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var P_=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function U_(t,s){let o=t;if(typeof o!="string"||!xw.test(o))return{absoluteURL:void 0,isExternal:!1,to:o};let r=o,c=!1;if(P_)try{let d=new URL(window.location.href),u=o.startsWith("//")?new URL(d.protocol+o):new URL(o),p=ua(u.pathname,s);u.origin===d.origin&&p!=null?o=p+u.search+u.hash:c=!0}catch{cs(!1,`<Link to="${o}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:c,to:o}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var V_=["POST","PUT","PATCH","DELETE"];new Set(V_);var Aw=["GET",...V_];new Set(Aw);var qo=y.createContext(null);qo.displayName="DataRouter";var Id=y.createContext(null);Id.displayName="DataRouterState";var Dw=y.createContext(!1),q_=y.createContext({isTransitioning:!1});q_.displayName="ViewTransition";var Rw=y.createContext(new Map);Rw.displayName="Fetchers";var Mw=y.createContext(null);Mw.displayName="Await";var Un=y.createContext(null);Un.displayName="Navigation";var vl=y.createContext(null);vl.displayName="Location";var ds=y.createContext({outlet:null,matches:[],isDataRoute:!1});ds.displayName="Route";var Em=y.createContext(null);Em.displayName="RouteError";var G_="REACT_ROUTER_ERROR",Iw="REDIRECT",Ow="ROUTE_ERROR_RESPONSE";function Lw(t){if(t.startsWith(`${G_}:${Iw}:{`))try{let s=JSON.parse(t.slice(28));if(typeof s=="object"&&s&&typeof s.status=="number"&&typeof s.statusText=="string"&&typeof s.location=="string"&&typeof s.reloadDocument=="boolean"&&typeof s.replace=="boolean")return s}catch{}}function Bw(t){if(t.startsWith(`${G_}:${Ow}:{`))try{let s=JSON.parse(t.slice(40));if(typeof s=="object"&&s&&typeof s.status=="number"&&typeof s.statusText=="string")return new Nw(s.status,s.statusText,s.data)}catch{}}function $w(t,{relative:s}={}){St(Bi(),"useHref() may be used only in the context of a <Router> component.");let{basename:o,navigator:r}=y.useContext(Un),{hash:c,pathname:d,search:u}=yl(t,{relative:s}),p=d;return o!=="/"&&(p=d==="/"?o:Os([o,d])),r.createHref({pathname:p,search:u,hash:c})}function Bi(){return y.useContext(vl)!=null}function Wt(){return St(Bi(),"useLocation() may be used only in the context of a <Router> component."),y.useContext(vl).location}function Dt(t){St(Bi(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:s}=Wt();return y.useMemo(()=>ll(t,H_(s)),[s,t])}var F_="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Z_(t){y.useContext(Un).static||y.useLayoutEffect(t)}function Od(){let{isDataRoute:t}=y.useContext(ds);return t?Qw():zw()}function zw(){St(Bi(),"useNavigate() may be used only in the context of a <Router> component.");let t=y.useContext(qo),{basename:s,navigator:o}=y.useContext(Un),{matches:r}=y.useContext(ds),{pathname:c}=Wt(),d=JSON.stringify(Cm(r)),u=y.useRef(!1);return Z_(()=>{u.current=!0}),y.useCallback((m,g={})=>{if(cs(u.current,F_),!u.current)return;if(typeof m=="number"){o.go(m);return}let v=Md(m,JSON.parse(d),c,g.relative==="path");t==null&&s!=="/"&&(v.pathname=v.pathname==="/"?s:Os([s,v.pathname])),(g.replace?o.replace:o.push)(v,g.state,g)},[s,o,d,c,t])}var Hw=y.createContext(null);function Pw(t){let s=y.useContext(ds).outlet;return y.useMemo(()=>s&&y.createElement(Hw.Provider,{value:t},s),[s,t])}function Vn(){let{matches:t}=y.useContext(ds),s=t[t.length-1];return s?s.params:{}}function yl(t,{relative:s}={}){let{matches:o}=y.useContext(ds),{pathname:r}=Wt(),c=JSON.stringify(Cm(o));return y.useMemo(()=>Md(t,JSON.parse(c),r,s==="path"),[t,c,r,s])}function Uw(t,s){return K_(t,s)}function K_(t,s,o){var w;St(Bi(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:r}=y.useContext(Un),{matches:c}=y.useContext(ds),d=c[c.length-1],u=d?d.params:{},p=d?d.pathname:"/",m=d?d.pathnameBase:"/",g=d&&d.route;{let T=g&&g.path||"";J_(p,!g||T.endsWith("*")||T.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${p}" (under <Route path="${T}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
261
-
262
- Please change the parent <Route path="${T}"> to <Route path="${T==="/"?"*":`${T}/*`}">.`)}let v=Wt(),_;if(s){let T=typeof s=="string"?Vo(s):s;St(m==="/"||((w=T.pathname)==null?void 0:w.startsWith(m)),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${m}" but pathname "${T.pathname}" was given in the \`location\` prop.`),_=T}else _=v;let b=_.pathname||"/",x=b;if(m!=="/"){let T=m.replace(/^\//,"").split("/");x="/"+b.replace(/^\//,"").split("/").slice(T.length).join("/")}let S=B_(t,{pathname:x});cs(g||S!=null,`No routes matched location "${_.pathname}${_.search}${_.hash}" `),cs(S==null||S[S.length-1].route.element!==void 0||S[S.length-1].route.Component!==void 0||S[S.length-1].route.lazy!==void 0,`Matched leaf route at location "${_.pathname}${_.search}${_.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let j=Zw(S&&S.map(T=>Object.assign({},T,{params:Object.assign({},u,T.params),pathname:Os([m,r.encodeLocation?r.encodeLocation(T.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:T.pathname]),pathnameBase:T.pathnameBase==="/"?m:Os([m,r.encodeLocation?r.encodeLocation(T.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:T.pathnameBase])})),c,o);return s&&j?y.createElement(vl.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,..._},navigationType:"POP"}},j):j}function Vw(){let t=Xw(),s=Cw(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),o=t instanceof Error?t.stack:null,r="rgba(200,200,200, 0.5)",c={padding:"0.5rem",backgroundColor:r},d={padding:"2px 4px",backgroundColor:r},u=null;return console.error("Error handled by React Router default ErrorBoundary:",t),u=y.createElement(y.Fragment,null,y.createElement("p",null,"💿 Hey developer 👋"),y.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",y.createElement("code",{style:d},"ErrorBoundary")," or"," ",y.createElement("code",{style:d},"errorElement")," prop on your route.")),y.createElement(y.Fragment,null,y.createElement("h2",null,"Unexpected Application Error!"),y.createElement("h3",{style:{fontStyle:"italic"}},s),o?y.createElement("pre",{style:c},o):null,u)}var qw=y.createElement(Vw,null),Y_=class extends y.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,s){return s.location!==t.location||s.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:s.error,location:s.location,revalidation:t.revalidation||s.revalidation}}componentDidCatch(t,s){this.props.onError?this.props.onError(t,s):console.error("React Router caught the following error during render",t)}render(){let t=this.state.error;if(this.context&&typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){const o=Bw(t.digest);o&&(t=o)}let s=t!==void 0?y.createElement(ds.Provider,{value:this.props.routeContext},y.createElement(Em.Provider,{value:t,children:this.props.component})):this.props.children;return this.context?y.createElement(Gw,{error:t},s):s}};Y_.contextType=Dw;var ip=new WeakMap;function Gw({children:t,error:s}){let{basename:o}=y.useContext(Un);if(typeof s=="object"&&s&&"digest"in s&&typeof s.digest=="string"){let r=Lw(s.digest);if(r){let c=ip.get(s);if(c)throw c;let d=U_(r.location,o);if(P_&&!ip.get(s))if(d.isExternal||r.reloadDocument)window.location.href=d.absoluteURL||d.to;else{const u=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(d.to,{replace:r.replace}));throw ip.set(s,u),u}return y.createElement("meta",{httpEquiv:"refresh",content:`0;url=${d.absoluteURL||d.to}`})}}return t}function Fw({routeContext:t,match:s,children:o}){let r=y.useContext(qo);return r&&r.static&&r.staticContext&&(s.route.errorElement||s.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=s.route.id),y.createElement(ds.Provider,{value:t},o)}function Zw(t,s=[],o){let r=o==null?void 0:o.state;if(t==null){if(!r)return null;if(r.errors)t=r.matches;else if(s.length===0&&!r.initialized&&r.matches.length>0)t=r.matches;else return null}let c=t,d=r==null?void 0:r.errors;if(d!=null){let v=c.findIndex(_=>_.route.id&&(d==null?void 0:d[_.route.id])!==void 0);St(v>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(d).join(",")}`),c=c.slice(0,Math.min(c.length,v+1))}let u=!1,p=-1;if(o&&r){u=r.renderFallback;for(let v=0;v<c.length;v++){let _=c[v];if((_.route.HydrateFallback||_.route.hydrateFallbackElement)&&(p=v),_.route.id){let{loaderData:b,errors:x}=r,S=_.route.loader&&!b.hasOwnProperty(_.route.id)&&(!x||x[_.route.id]===void 0);if(_.route.lazy||S){o.isStatic&&(u=!0),p>=0?c=c.slice(0,p+1):c=[c[0]];break}}}}let m=o==null?void 0:o.onError,g=r&&m?(v,_)=>{var b,x;m(v,{location:r.location,params:((x=(b=r.matches)==null?void 0:b[0])==null?void 0:x.params)??{},unstable_pattern:Ew(r.matches),errorInfo:_})}:void 0;return c.reduceRight((v,_,b)=>{let x,S=!1,j=null,w=null;r&&(x=d&&_.route.id?d[_.route.id]:void 0,j=_.route.errorElement||qw,u&&(p<0&&b===0?(J_("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),S=!0,w=null):p===b&&(S=!0,w=_.route.hydrateFallbackElement||null)));let T=s.concat(c.slice(0,b+1)),C=()=>{let A;return x?A=j:S?A=w:_.route.Component?A=y.createElement(_.route.Component,null):_.route.element?A=_.route.element:A=v,y.createElement(Fw,{match:_,routeContext:{outlet:v,matches:T,isDataRoute:r!=null},children:A})};return r&&(_.route.ErrorBoundary||_.route.errorElement||b===0)?y.createElement(Y_,{location:r.location,revalidation:r.revalidation,component:j,error:x,children:C(),routeContext:{outlet:null,matches:T,isDataRoute:!0},onError:g}):C()},null)}function Am(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Kw(t){let s=y.useContext(qo);return St(s,Am(t)),s}function Yw(t){let s=y.useContext(Id);return St(s,Am(t)),s}function Jw(t){let s=y.useContext(ds);return St(s,Am(t)),s}function Dm(t){let s=Jw(t),o=s.matches[s.matches.length-1];return St(o.route.id,`${t} can only be used on routes that contain a unique "id"`),o.route.id}function Ww(){return Dm("useRouteId")}function Xw(){var r;let t=y.useContext(Em),s=Yw("useRouteError"),o=Dm("useRouteError");return t!==void 0?t:(r=s.errors)==null?void 0:r[o]}function Qw(){let{router:t}=Kw("useNavigate"),s=Dm("useNavigate"),o=y.useRef(!1);return Z_(()=>{o.current=!0}),y.useCallback(async(c,d={})=>{cs(o.current,F_),o.current&&(typeof c=="number"?await t.navigate(c):await t.navigate(c,{fromRouteId:s,...d}))},[t,s])}var Dy={};function J_(t,s,o){!s&&!Dy[t]&&(Dy[t]=!0,cs(!1,o))}y.memo(eN);function eN({routes:t,future:s,state:o,isStatic:r,onError:c}){return K_(t,void 0,{state:o,isStatic:r,onError:c})}function rs({to:t,replace:s,state:o,relative:r}){St(Bi(),"<Navigate> may be used only in the context of a <Router> component.");let{static:c}=y.useContext(Un);cs(!c,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:d}=y.useContext(ds),{pathname:u}=Wt(),p=Od(),m=Md(t,Cm(d),u,r==="path"),g=JSON.stringify(m);return y.useEffect(()=>{p(JSON.parse(g),{replace:s,state:o,relative:r})},[p,g,r,s,o]),null}function ha(t){return Pw(t.context)}function we(t){St(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function tN({basename:t="/",children:s=null,location:o,navigationType:r="POP",navigator:c,static:d=!1,unstable_useTransitions:u}){St(!Bi(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let p=t.replace(/^\/*/,"/"),m=y.useMemo(()=>({basename:p,navigator:c,static:d,unstable_useTransitions:u,future:{}}),[p,c,d,u]);typeof o=="string"&&(o=Vo(o));let{pathname:g="/",search:v="",hash:_="",state:b=null,key:x="default",unstable_mask:S}=o,j=y.useMemo(()=>{let w=ua(g,p);return w==null?null:{location:{pathname:w,search:v,hash:_,state:b,key:x,unstable_mask:S},navigationType:r}},[p,g,v,_,b,x,r,S]);return cs(j!=null,`<Router basename="${p}"> is not able to match the URL "${g}${v}${_}" because it does not start with the basename, so the <Router> won't render anything.`),j==null?null:y.createElement(Un.Provider,{value:m},y.createElement(vl.Provider,{children:s,value:j}))}function nN({children:t,location:s}){return Uw(Wp(t),s)}function Wp(t,s=[]){let o=[];return y.Children.forEach(t,(r,c)=>{if(!y.isValidElement(r))return;let d=[...s,c];if(r.type===y.Fragment){o.push.apply(o,Wp(r.props.children,d));return}St(r.type===we,`[${typeof r.type=="string"?r.type:r.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),St(!r.props.index||!r.props.children,"An index route cannot have child routes.");let u={id:r.props.id||d.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(u.children=Wp(r.props.children,d)),o.push(u)}),o}var sd="get",ad="application/x-www-form-urlencoded";function Ld(t){return typeof HTMLElement<"u"&&t instanceof HTMLElement}function sN(t){return Ld(t)&&t.tagName.toLowerCase()==="button"}function aN(t){return Ld(t)&&t.tagName.toLowerCase()==="form"}function iN(t){return Ld(t)&&t.tagName.toLowerCase()==="input"}function oN(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function rN(t,s){return t.button===0&&(!s||s==="_self")&&!oN(t)}function Xp(t=""){return new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((s,o)=>{let r=t[o];return s.concat(Array.isArray(r)?r.map(c=>[o,c]):[[o,r]])},[]))}function lN(t,s){let o=Xp(t);return s&&s.forEach((r,c)=>{o.has(c)||s.getAll(c).forEach(d=>{o.append(c,d)})}),o}var Uc=null;function cN(){if(Uc===null)try{new FormData(document.createElement("form"),0),Uc=!1}catch{Uc=!0}return Uc}var dN=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function op(t){return t!=null&&!dN.has(t)?(cs(!1,`"${t}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${ad}"`),null):t}function uN(t,s){let o,r,c,d,u;if(aN(t)){let p=t.getAttribute("action");r=p?ua(p,s):null,o=t.getAttribute("method")||sd,c=op(t.getAttribute("enctype"))||ad,d=new FormData(t)}else if(sN(t)||iN(t)&&(t.type==="submit"||t.type==="image")){let p=t.form;if(p==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let m=t.getAttribute("formaction")||p.getAttribute("action");if(r=m?ua(m,s):null,o=t.getAttribute("formmethod")||p.getAttribute("method")||sd,c=op(t.getAttribute("formenctype"))||op(p.getAttribute("enctype"))||ad,d=new FormData(p,t),!cN()){let{name:g,type:v,value:_}=t;if(v==="image"){let b=g?`${g}.`:"";d.append(`${b}x`,"0"),d.append(`${b}y`,"0")}else g&&d.append(g,_)}}else{if(Ld(t))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');o=sd,r=null,c=ad,u=t}return d&&c==="text/plain"&&(u=d,d=void 0),{action:r,method:o.toLowerCase(),encType:c,formData:d,body:u}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Rm(t,s){if(t===!1||t===null||typeof t>"u")throw new Error(s)}function fN(t,s,o,r){let c=typeof t=="string"?new URL(t,typeof window>"u"?"server://singlefetch/":window.location.origin):t;return o?c.pathname.endsWith("/")?c.pathname=`${c.pathname}_.${r}`:c.pathname=`${c.pathname}.${r}`:c.pathname==="/"?c.pathname=`_root.${r}`:s&&ua(c.pathname,s)==="/"?c.pathname=`${s.replace(/\/$/,"")}/_root.${r}`:c.pathname=`${c.pathname.replace(/\/$/,"")}.${r}`,c}async function pN(t,s){if(t.id in s)return s[t.id];try{let o=await import(t.module);return s[t.id]=o,o}catch(o){return console.error(`Error loading route module \`${t.module}\`, reloading page...`),console.error(o),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function mN(t){return t==null?!1:t.href==null?t.rel==="preload"&&typeof t.imageSrcSet=="string"&&typeof t.imageSizes=="string":typeof t.rel=="string"&&typeof t.href=="string"}async function hN(t,s,o){let r=await Promise.all(t.map(async c=>{let d=s.routes[c.route.id];if(d){let u=await pN(d,o);return u.links?u.links():[]}return[]}));return bN(r.flat(1).filter(mN).filter(c=>c.rel==="stylesheet"||c.rel==="preload").map(c=>c.rel==="stylesheet"?{...c,rel:"prefetch",as:"style"}:{...c,rel:"prefetch"}))}function Ry(t,s,o,r,c,d){let u=(m,g)=>o[g]?m.route.id!==o[g].route.id:!0,p=(m,g)=>{var v;return o[g].pathname!==m.pathname||((v=o[g].route.path)==null?void 0:v.endsWith("*"))&&o[g].params["*"]!==m.params["*"]};return d==="assets"?s.filter((m,g)=>u(m,g)||p(m,g)):d==="data"?s.filter((m,g)=>{var _;let v=r.routes[m.route.id];if(!v||!v.hasLoader)return!1;if(u(m,g)||p(m,g))return!0;if(m.route.shouldRevalidate){let b=m.route.shouldRevalidate({currentUrl:new URL(c.pathname+c.search+c.hash,window.origin),currentParams:((_=o[0])==null?void 0:_.params)||{},nextUrl:new URL(t,window.origin),nextParams:m.params,defaultShouldRevalidate:!0});if(typeof b=="boolean")return b}return!0}):[]}function gN(t,s,{includeHydrateFallback:o}={}){return vN(t.map(r=>{let c=s.routes[r.route.id];if(!c)return[];let d=[c.module];return c.clientActionModule&&(d=d.concat(c.clientActionModule)),c.clientLoaderModule&&(d=d.concat(c.clientLoaderModule)),o&&c.hydrateFallbackModule&&(d=d.concat(c.hydrateFallbackModule)),c.imports&&(d=d.concat(c.imports)),d}).flat(1))}function vN(t){return[...new Set(t)]}function yN(t){let s={},o=Object.keys(t).sort();for(let r of o)s[r]=t[r];return s}function bN(t,s){let o=new Set;return new Set(s),t.reduce((r,c)=>{let d=JSON.stringify(yN(c));return o.has(d)||(o.add(d),r.push({key:d,link:c})),r},[])}function W_(){let t=y.useContext(qo);return Rm(t,"You must render this element inside a <DataRouterContext.Provider> element"),t}function _N(){let t=y.useContext(Id);return Rm(t,"You must render this element inside a <DataRouterStateContext.Provider> element"),t}var Mm=y.createContext(void 0);Mm.displayName="FrameworkContext";function X_(){let t=y.useContext(Mm);return Rm(t,"You must render this element inside a <HydratedRouter> element"),t}function xN(t,s){let o=y.useContext(Mm),[r,c]=y.useState(!1),[d,u]=y.useState(!1),{onFocus:p,onBlur:m,onMouseEnter:g,onMouseLeave:v,onTouchStart:_}=s,b=y.useRef(null);y.useEffect(()=>{if(t==="render"&&u(!0),t==="viewport"){let j=T=>{T.forEach(C=>{u(C.isIntersecting)})},w=new IntersectionObserver(j,{threshold:.5});return b.current&&w.observe(b.current),()=>{w.disconnect()}}},[t]),y.useEffect(()=>{if(r){let j=setTimeout(()=>{u(!0)},100);return()=>{clearTimeout(j)}}},[r]);let x=()=>{c(!0)},S=()=>{c(!1),u(!1)};return o?t!=="intent"?[d,b,{}]:[d,b,{onFocus:Pr(p,x),onBlur:Pr(m,S),onMouseEnter:Pr(g,x),onMouseLeave:Pr(v,S),onTouchStart:Pr(_,x)}]:[!1,b,{}]}function Pr(t,s){return o=>{t&&t(o),o.defaultPrevented||s(o)}}function kN({page:t,...s}){let{router:o}=W_(),r=y.useMemo(()=>B_(o.routes,t,o.basename),[o.routes,t,o.basename]);return r?y.createElement(jN,{page:t,matches:r,...s}):null}function SN(t){let{manifest:s,routeModules:o}=X_(),[r,c]=y.useState([]);return y.useEffect(()=>{let d=!1;return hN(t,s,o).then(u=>{d||c(u)}),()=>{d=!0}},[t,s,o]),r}function jN({page:t,matches:s,...o}){let r=Wt(),{future:c,manifest:d,routeModules:u}=X_(),{basename:p}=W_(),{loaderData:m,matches:g}=_N(),v=y.useMemo(()=>Ry(t,s,g,d,r,"data"),[t,s,g,d,r]),_=y.useMemo(()=>Ry(t,s,g,d,r,"assets"),[t,s,g,d,r]),b=y.useMemo(()=>{if(t===r.pathname+r.search+r.hash)return[];let j=new Set,w=!1;if(s.forEach(C=>{var L;let A=d.routes[C.route.id];!A||!A.hasLoader||(!v.some(E=>E.route.id===C.route.id)&&C.route.id in m&&((L=u[C.route.id])!=null&&L.shouldRevalidate)||A.hasClientLoader?w=!0:j.add(C.route.id))}),j.size===0)return[];let T=fN(t,p,c.unstable_trailingSlashAwareDataRequests,"data");return w&&j.size>0&&T.searchParams.set("_routes",s.filter(C=>j.has(C.route.id)).map(C=>C.route.id).join(",")),[T.pathname+T.search]},[p,c.unstable_trailingSlashAwareDataRequests,m,r,d,v,s,t,u]),x=y.useMemo(()=>gN(_,d),[_,d]),S=SN(_);return y.createElement(y.Fragment,null,b.map(j=>y.createElement("link",{key:j,rel:"prefetch",as:"fetch",href:j,...o})),x.map(j=>y.createElement("link",{key:j,rel:"modulepreload",href:j,...o})),S.map(({key:j,link:w})=>y.createElement("link",{key:j,nonce:o.nonce,...w,crossOrigin:w.crossOrigin??o.crossOrigin})))}function TN(...t){return s=>{t.forEach(o=>{typeof o=="function"?o(s):o!=null&&(o.current=s)})}}var wN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{wN&&(window.__reactRouterVersion="7.13.2")}catch{}function NN({basename:t,children:s,unstable_useTransitions:o,window:r}){let c=y.useRef();c.current==null&&(c.current=iw({window:r,v5Compat:!0}));let d=c.current,[u,p]=y.useState({action:d.action,location:d.location}),m=y.useCallback(g=>{o===!1?p(g):y.startTransition(()=>p(g))},[o]);return y.useLayoutEffect(()=>d.listen(m),[d,m]),y.createElement(tN,{basename:t,children:s,location:u.location,navigationType:u.action,navigator:d,unstable_useTransitions:o})}var Q_=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bl=y.forwardRef(function({onClick:s,discover:o="render",prefetch:r="none",relative:c,reloadDocument:d,replace:u,unstable_mask:p,state:m,target:g,to:v,preventScrollReset:_,viewTransition:b,unstable_defaultShouldRevalidate:x,...S},j){let{basename:w,navigator:T,unstable_useTransitions:C}=y.useContext(Un),A=typeof v=="string"&&Q_.test(v),L=U_(v,w);v=L.to;let E=$w(v,{relative:c}),M=Wt(),H=null;if(p){let re=Md(p,[],M.unstable_mask?M.unstable_mask.pathname:"/",!0);w!=="/"&&(re.pathname=re.pathname==="/"?w:Os([w,re.pathname])),H=T.createHref(re)}let[D,z,Y]=xN(r,S),V=DN(v,{replace:u,unstable_mask:p,state:m,target:g,preventScrollReset:_,relative:c,viewTransition:b,unstable_defaultShouldRevalidate:x,unstable_useTransitions:C});function Q(re){s&&s(re),re.defaultPrevented||V(re)}let ge=!(L.isExternal||d),X=y.createElement("a",{...S,...Y,href:(ge?H:void 0)||L.absoluteURL||E,onClick:ge?Q:s,ref:TN(j,z),target:g,"data-discover":!A&&o==="render"?"true":void 0});return D&&!A?y.createElement(y.Fragment,null,X,y.createElement(kN,{page:E})):X});bl.displayName="Link";var CN=y.forwardRef(function({"aria-current":s="page",caseSensitive:o=!1,className:r="",end:c=!1,style:d,to:u,viewTransition:p,children:m,...g},v){let _=yl(u,{relative:g.relative}),b=Wt(),x=y.useContext(Id),{navigator:S,basename:j}=y.useContext(Un),w=x!=null&&LN(_)&&p===!0,T=S.encodeLocation?S.encodeLocation(_).pathname:_.pathname,C=b.pathname,A=x&&x.navigation&&x.navigation.location?x.navigation.location.pathname:null;o||(C=C.toLowerCase(),A=A?A.toLowerCase():null,T=T.toLowerCase()),A&&j&&(A=ua(A,j)||A);const L=T!=="/"&&T.endsWith("/")?T.length-1:T.length;let E=C===T||!c&&C.startsWith(T)&&C.charAt(L)==="/",M=A!=null&&(A===T||!c&&A.startsWith(T)&&A.charAt(T.length)==="/"),H={isActive:E,isPending:M,isTransitioning:w},D=E?s:void 0,z;typeof r=="function"?z=r(H):z=[r,E?"active":null,M?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let Y=typeof d=="function"?d(H):d;return y.createElement(bl,{...g,"aria-current":D,className:z,ref:v,style:Y,to:u,viewTransition:p},typeof m=="function"?m(H):m)});CN.displayName="NavLink";var EN=y.forwardRef(({discover:t="render",fetcherKey:s,navigate:o,reloadDocument:r,replace:c,state:d,method:u=sd,action:p,onSubmit:m,relative:g,preventScrollReset:v,viewTransition:_,unstable_defaultShouldRevalidate:b,...x},S)=>{let{unstable_useTransitions:j}=y.useContext(Un),w=IN(),T=ON(p,{relative:g}),C=u.toLowerCase()==="get"?"get":"post",A=typeof p=="string"&&Q_.test(p),L=E=>{if(m&&m(E),E.defaultPrevented)return;E.preventDefault();let M=E.nativeEvent.submitter,H=(M==null?void 0:M.getAttribute("formmethod"))||u,D=()=>w(M||E.currentTarget,{fetcherKey:s,method:H,navigate:o,replace:c,state:d,relative:g,preventScrollReset:v,viewTransition:_,unstable_defaultShouldRevalidate:b});j&&o!==!1?y.startTransition(()=>D()):D()};return y.createElement("form",{ref:S,method:C,action:T,onSubmit:r?m:L,...x,"data-discover":!A&&t==="render"?"true":void 0})});EN.displayName="Form";function AN(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function ex(t){let s=y.useContext(qo);return St(s,AN(t)),s}function DN(t,{target:s,replace:o,unstable_mask:r,state:c,preventScrollReset:d,relative:u,viewTransition:p,unstable_defaultShouldRevalidate:m,unstable_useTransitions:g}={}){let v=Od(),_=Wt(),b=yl(t,{relative:u});return y.useCallback(x=>{if(rN(x,s)){x.preventDefault();let S=o!==void 0?o:rl(_)===rl(b),j=()=>v(t,{replace:S,unstable_mask:r,state:c,preventScrollReset:d,relative:u,viewTransition:p,unstable_defaultShouldRevalidate:m});g?y.startTransition(()=>j()):j()}},[_,v,b,o,r,c,s,t,d,u,p,m,g])}function Im(t){cs(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let s=y.useRef(Xp(t)),o=y.useRef(!1),r=Wt(),c=y.useMemo(()=>lN(r.search,o.current?null:s.current),[r.search]),d=Od(),u=y.useCallback((p,m)=>{const g=Xp(typeof p=="function"?p(new URLSearchParams(c)):p);o.current=!0,d("?"+g,m)},[d,c]);return[c,u]}var RN=0,MN=()=>`__${String(++RN)}__`;function IN(){let{router:t}=ex("useSubmit"),{basename:s}=y.useContext(Un),o=Ww(),r=t.fetch,c=t.navigate;return y.useCallback(async(d,u={})=>{let{action:p,method:m,encType:g,formData:v,body:_}=uN(d,s);if(u.navigate===!1){let b=u.fetcherKey||MN();await r(b,o,u.action||p,{unstable_defaultShouldRevalidate:u.unstable_defaultShouldRevalidate,preventScrollReset:u.preventScrollReset,formData:v,body:_,formMethod:u.method||m,formEncType:u.encType||g,flushSync:u.flushSync})}else await c(u.action||p,{unstable_defaultShouldRevalidate:u.unstable_defaultShouldRevalidate,preventScrollReset:u.preventScrollReset,formData:v,body:_,formMethod:u.method||m,formEncType:u.encType||g,replace:u.replace,state:u.state,fromRouteId:o,flushSync:u.flushSync,viewTransition:u.viewTransition})},[r,c,s,o])}function ON(t,{relative:s}={}){let{basename:o}=y.useContext(Un),r=y.useContext(ds);St(r,"useFormAction must be used inside a RouteContext");let[c]=r.matches.slice(-1),d={...yl(t||".",{relative:s})},u=Wt();if(t==null){d.search=u.search;let p=new URLSearchParams(d.search),m=p.getAll("index");if(m.some(v=>v==="")){p.delete("index"),m.filter(_=>_).forEach(_=>p.append("index",_));let v=p.toString();d.search=v?`?${v}`:""}}return(!t||t===".")&&c.route.index&&(d.search=d.search?d.search.replace(/^\?/,"?index&"):"?index"),o!=="/"&&(d.pathname=d.pathname==="/"?o:Os([o,d.pathname])),rl(d)}function LN(t,{relative:s}={}){let o=y.useContext(q_);St(o!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=ex("useViewTransitionState"),c=yl(t,{relative:s});if(!o.isTransitioning)return!1;let d=ua(o.currentLocation.pathname,r)||o.currentLocation.pathname,u=ua(o.nextLocation.pathname,r)||o.nextLocation.pathname;return ll(c.pathname,u)!=null||ll(c.pathname,d)!=null}function dt(){const t=Od();return y.useCallback((s,o)=>{typeof s=="number"?t(s):t(s,o)},[t])}function Bd(t){return`/sessions/${encodeURIComponent(t)}`}function Ri(t,s){return s?`/environments/${encodeURIComponent(s)}/workspaces/${encodeURIComponent(t)}`:`/workspaces/${encodeURIComponent(t)}`}function Hn(t,s,o,r){const c=encodeURIComponent(t);let d;return o&&r?d=`/environments/${encodeURIComponent(r)}/workspaces/${encodeURIComponent(o)}/tasks/${c}`:o?d=`/workspaces/${encodeURIComponent(o)}/tasks/${c}`:d=`/tasks/${c}`,s?`${d}/${s}`:d}function $i(t,s,o){const r=new URLSearchParams;t&&r.set("workspace",t),s&&r.set("parent",s);const c=r.toString();if(t&&o){const d=`/environments/${encodeURIComponent(o)}/workspaces/${encodeURIComponent(t)}/tasks/new`;return s?`${d}?parent=${encodeURIComponent(s)}`:d}return c?`/tasks/new?${c}`:"/tasks/new"}function tx(t){return`/sessions/new?${new URLSearchParams({env:t}).toString()}`}const Bo="/environments",BN="/environments/new";function Mi(t){return`/environments/${encodeURIComponent(t)}`}function $N(t){return`/environments/${encodeURIComponent(t)}/edit`}const Ai="/settings",zN="/settings/credentials",rp="/settings/personas",HN="/settings/personas/new";function nx(t){return`/settings/personas/${encodeURIComponent(t)}`}const lp="/settings/schedules",PN="/settings/schedules/new";function sx(t){return`/settings/schedules/${encodeURIComponent(t)}`}const UN="/settings/shortcuts",VN="/pair",cl="/chat";function qN(t){return`/chat/${encodeURIComponent(t)}`}const Ii="/",GN="/tasks",ax="/workspaces/new",ix="/knowledge",$d="/findings";function FN(t,s){return t&&s?`/environments/${encodeURIComponent(s)}/workspaces/${encodeURIComponent(t)}/findings`:$d}function Qp(t,s,o){const r=encodeURIComponent(t);return s&&o?`/environments/${encodeURIComponent(o)}/workspaces/${encodeURIComponent(s)}/findings/${r}`:`/findings/${r}`}const ZN=VT,KN={task:aw};function YN({workspaceId:t,environmentId:s,tasks:o,resolvedThemeId:r}){const c=dt(),d=y.useMemo(()=>o.filter(_=>_.workspaceId===t),[o,t]),{nodes:u,edges:p}=bj(d),m=y.useMemo(()=>{const _=getComputedStyle(document.documentElement),b={};for(const[x,S]of Object.entries(ZN))b[x]=_.getPropertyValue(S).trim()||"#6b7a8d";return b},[r]),g=y.useCallback((_,b)=>{c(Hn(b.id,void 0,t,s))},[c,t,s]),v=y.useCallback(_=>{const b=_.data;return m[b.task.status]||m.pending},[m]);return d.length===0?a.jsxs("div",{className:Sn.emptyCta,children:[a.jsx("button",{className:Sn.ctaButton,onClick:()=>c($i(t,void 0,s)),children:"Create Task"}),a.jsx("div",{className:Sn.ctaDescription,children:"Create tasks to see the dependency graph"})]}):a.jsx("div",{className:Sn.dagContainer,children:a.jsxs(C2,{nodes:u,edges:p,nodeTypes:KN,onNodeClick:g,fitView:!0,fitViewOptions:{padding:.2},minZoom:.3,maxZoom:2,children:[a.jsx(E2,{variant:A2.Dots,gap:24,size:1,color:"var(--text-disabled)"}),a.jsx(D2,{showInteractive:!1}),a.jsx(R2,{nodeColor:v,maskColor:"var(--bg-overlay)",style:{background:"var(--bg-inset)"}})]})})}const JN="_breadcrumbs_17or2_1",WN="_list_17or2_11",XN="_item_17or2_21",QN="_separator_17or2_28",eC="_link_17or2_34",tC="_current_17or2_57",Eo={breadcrumbs:JN,list:WN,item:XN,separator:QN,link:eC,current:tC};function Ss({segments:t}){return a.jsx("nav",{className:Eo.breadcrumbs,"aria-label":"Breadcrumb","data-testid":"breadcrumbs",children:a.jsx("ol",{className:Eo.list,children:t.map((s,o)=>{const r=o===t.length-1;return a.jsxs("li",{className:Eo.item,children:[o>0&&a.jsx("span",{className:Eo.separator,"aria-hidden":"true",children:a.jsx(ma,{size:it})}),s.url&&!r?a.jsx(bl,{className:Eo.link,to:s.url,title:s.label,children:s.label}):a.jsx("span",{className:Eo.current,"aria-current":"page",title:s.label,children:s.label})]},o)})})})}const nC="_btn_dwk2o_1",sC="_sm_dwk2o_22",aC="_md_dwk2o_28",iC="_lg_dwk2o_34",oC="_primary_dwk2o_40",rC="_danger_dwk2o_55",lC="_outline_dwk2o_70",cC="_ghost_dwk2o_80",cp={btn:nC,sm:sC,md:aC,lg:iC,primary:oC,danger:rC,outline:lC,ghost:cC},rn=y.forwardRef(function({variant:s="primary",size:o="md",className:r,children:c,...d},u){const p=[cp.btn,cp[s],cp[o],r].filter(Boolean).join(" ");return a.jsx("button",{ref:u,className:p,...d,children:c})}),dC="_copyButton_1bqk0_1",uC={copyButton:dC},fC=2e3;function pC({text:t,className:s,"data-testid":o}){const[r,c]=y.useState(!1),d=y.useRef(void 0);y.useEffect(()=>()=>{d.current!==void 0&&clearTimeout(d.current)},[]);const u=y.useCallback(async()=>{try{await navigator.clipboard.writeText(t),c(!0),d.current!==void 0&&clearTimeout(d.current),d.current=setTimeout(()=>{c(!1),d.current=void 0},fC)}catch{}},[t]);return a.jsx("button",{type:"button",className:`${uC.copyButton} ${s??""}`,onClick:()=>{u().catch(()=>{})},"aria-label":r?"Copied":"Copy to clipboard","data-testid":o??"copy-button",children:r?a.jsx(Li,{size:Ut,"aria-hidden":"true"}):a.jsx(O_,{size:Ut,"aria-hidden":"true"})})}const mC="_banner_bxqlh_1",hC="_label_bxqlh_15",gC="_text_bxqlh_25",vC="_link_bxqlh_29",Vc={banner:mC,label:hC,text:gC,link:vC};function yC(){return a.jsxs("div",{className:Vc.banner,"data-testid":"demo-banner",children:[a.jsx("span",{className:Vc.label,children:"DEMO"}),a.jsxs("span",{className:Vc.text,children:["This is an interactive demo with mock data."," ",a.jsx("a",{href:"https://github.com/nick-pape/grackle",target:"_blank",rel:"noopener noreferrer",className:Vc.link,children:"Install Grackle"})," ","to use it for real."]})]})}const bC="_container_og0yp_1",_C="_chevronButton_og0yp_6",xC="_mainButton_og0yp_6",kC="_sm_og0yp_34",SC="_md_og0yp_34",jC="_lg_og0yp_34",TC="_primary_og0yp_57",wC="_danger_og0yp_70",NC="_outline_og0yp_83",CC="_ghost_og0yp_92",EC="_dropdown_og0yp_100",AC="_option_og0yp_113",DC="_optionLabel_og0yp_130",RC="_optionDesc_og0yp_135",aa={container:bC,chevronButton:_C,mainButton:xC,sm:kC,md:SC,lg:jC,primary:TC,danger:wC,outline:NC,ghost:CC,dropdown:EC,option:AC,optionLabel:DC,optionDesc:RC};function ox({label:t,onClick:s,options:o,variant:r="primary",size:c="md","data-testid":d}){const[u,p]=y.useState(!1),m=y.useRef(null);y.useEffect(()=>{if(!u)return;function b(x){m.current&&x.target instanceof Node&&!m.current.contains(x.target)&&p(!1)}return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[u]),y.useEffect(()=>{if(!u)return;function b(x){x.key==="Escape"&&p(!1)}return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[u]);const g=aa[r]||"",v=aa[c]||"",_=()=>{u&&p(!1),s()};return a.jsxs("div",{ref:m,className:aa.container,"data-testid":d,children:[a.jsx("button",{type:"button",className:`${aa.mainButton} ${g} ${v}`,onClick:_,"data-testid":d?`${d}-main`:void 0,children:t}),a.jsx("button",{type:"button",className:`${aa.chevronButton} ${g} ${v}`,onClick:()=>p(b=>!b),"aria-label":`More options for ${t}`,"aria-haspopup":"menu","aria-expanded":u,"data-testid":d?`${d}-chevron`:void 0,children:a.jsx(I_,{size:Ut,"aria-hidden":"true"})}),u&&a.jsx("div",{className:aa.dropdown,"data-testid":d?`${d}-menu`:void 0,children:o.map((b,x)=>a.jsxs("button",{type:"button",className:aa.option,onClick:()=>{b.onClick(),p(!1)},children:[a.jsx("span",{className:aa.optionLabel,children:b.label}),b.description&&a.jsx("span",{className:aa.optionDesc,children:b.description})]},x))})]})}function em(){em=function(c,d){return new o(c,void 0,d)};var t=RegExp.prototype,s=new WeakMap;function o(c,d,u){var p=new RegExp(c,d);return s.set(p,u||s.get(c)),pd(p,o.prototype)}function r(c,d){var u=s.get(d);return Object.keys(u).reduce(function(p,m){var g=u[m];if(typeof g=="number")p[m]=c[g];else{for(var v=0;c[g[v]]===void 0&&v+1<g.length;)v++;p[m]=c[g[v]]}return p},Object.create(null))}return(function(c,d){if(typeof d!="function"&&d!==null)throw new TypeError("Super expression must either be null or a function");c.prototype=Object.create(d&&d.prototype,{constructor:{value:c,writable:!0,configurable:!0}}),Object.defineProperty(c,"prototype",{writable:!1}),d&&pd(c,d)})(o,RegExp),o.prototype.exec=function(c){var d=t.exec.call(this,c);if(d){d.groups=r(d,this);var u=d.indices;u&&(u.groups=r(u,this))}return d},o.prototype[Symbol.replace]=function(c,d){if(typeof d=="string"){var u=s.get(this);return t[Symbol.replace].call(this,c,d.replace(/\$<([^>]+)>/g,function(m,g){var v=u[g];return"$"+(Array.isArray(v)?v.join("$"):v)}))}if(typeof d=="function"){var p=this;return t[Symbol.replace].call(this,c,function(){var m=arguments;return typeof m[m.length-1]!="object"&&(m=[].slice.call(m)).push(r(m,p)),d.apply(this,m)})}return t[Symbol.replace].call(this,c,d)},em.apply(this,arguments)}function pd(t,s){return pd=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(o,r){return o.__proto__=r,o},pd(t,s)}function My(t,s){(s==null||s>t.length)&&(s=t.length);for(var o=0,r=new Array(s);o<s;o++)r[o]=t[o];return r}function dp(t,s){var o=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(o)return(o=o.call(t)).next.bind(o);if(Array.isArray(t)||(o=(function(c,d){if(c){if(typeof c=="string")return My(c,d);var u=Object.prototype.toString.call(c).slice(8,-1);return u==="Object"&&c.constructor&&(u=c.constructor.name),u==="Map"||u==="Set"?Array.from(c):u==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u)?My(c,d):void 0}})(t))||s){o&&(t=o);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
263
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var MC=(function(t){return function(s){return s===void 0&&(s={}),(function(r,c){if(c&&!r.registered(c))throw new Error('The default language "'+c+'" is not registered with refractor.')})(t,s.defaultLanguage),function(r){Z2(r,"element",o)};function o(r,c,d){var u,p;if(d&&d.tagName==="pre"&&r.tagName==="code"){var m=(r==null||(u=r.data)==null?void 0:u.meta)||(r==null||(p=r.properties)==null?void 0:p.metastring)||"";r.properties.className?typeof r.properties.className=="boolean"?r.properties.className=[]:Array.isArray(r.properties.className)||(r.properties.className=[r.properties.className]):r.properties.className=[];var g,v,_=(function(E){for(var M,H=dp(E.properties.className);!(M=H()).done;){var D=M.value;if(D.slice(0,9)==="language-")return D.slice(9).toLowerCase()}return null})(r);if(!_&&s.defaultLanguage&&r.properties.className.push("language-"+(_=s.defaultLanguage)),r.properties.className.push("code-highlight"),_)try{var b,x;x=(b=_)!=null&&b.includes("diff-")?_.split("-")[1]:_,g=t.highlight(zc(r),x),d.properties.className=(d.properties.className||[]).concat("language-"+x)}catch(E){if(!s.ignoreMissing||!/Unknown language/.test(E.message))throw E;g=r}else g=r;g.children=(v=1,function E(M){return M.reduce(function(H,D){if(D.type==="text"){var z=D.value,Y=(z.match(/\n/g)||"").length;if(Y===0)D.position={start:{line:v,column:1},end:{line:v,column:1}},H.push(D);else for(var V,Q=z.split(`
264
- `),ge=dp(Q.entries());!(V=ge()).done;){var X=V.value,re=X[0],B=X[1];H.push({type:"text",value:re===Q.length-1?B:B+`
265
- `,position:{start:{line:v+re,column:1},end:{line:v+re,column:1}}})}return v+=Y,H}if(Object.prototype.hasOwnProperty.call(D,"children")){var R=v;return D.children=E(D.children),H.push(D),D.position={start:{line:R,column:1},end:{line:v,column:1}},H}return H.push(D),H},[])})(g.children),g.position=g.children.length>0?{start:{line:g.children[0].position.start.line,column:0},end:{line:g.children[g.children.length-1].position.end.line,column:0}}:{start:{line:0,column:0},end:{line:0,column:0}};for(var S,j=(function(E){var M=/{([\d,-]+)}/,H=E.split(",").map(function(Y){return Y.trim()}).join();if(M.test(H)){var D=M.exec(H)[1],z=Y2(D);return function(Y){return z.includes(Y+1)}}return function(){return!1}})(m),w=(function(E){var M=em(/showLineNumbers=(\d+)/i,{lines:1});if(M.test(E)){var H=M.exec(E);return Number(H.groups.lines)}return 1})(m),T=(function(E){for(var M=new Array(E),H=0;H<E;H++)M[H]={type:"element",tagName:"span",properties:{className:[]},children:[]};return M})(g.position.end.line),C=["showlinenumbers=false",'showlinenumbers="false"',"showlinenumbers={false}"],A=function(){var E,M,H=S.value,D=H[0],z=H[1];z.properties.className=["code-line"];var Y=J2(g,function(V){return V.position.start.line<=D+1&&V.position.end.line>=D+1});z.children=Y.children,(m.toLowerCase().includes("showLineNumbers".toLowerCase())||s.showLineNumbers===!0||typeof s.showLineNumbers=="object"&&s.showLineNumbers.includes(_))&&!C.some(function(V){return m.toLowerCase().includes(V)})&&(z.properties.line=[(D+w).toString()],z.properties.className.push("line-number")),j(D)&&z.properties.className.push("highlight-line"),(_==="diff"||(E=_)!=null&&E.includes("diff-"))&&zc(z).substring(0,1)==="-"?z.properties.className.push("deleted"):(_==="diff"||(M=_)!=null&&M.includes("diff-"))&&zc(z).substring(0,1)==="+"&&z.properties.className.push("inserted")},L=dp(T.entries());!(S=L()).done;)A();T.length>0&&zc(T[T.length-1]).trim()===""&&T.pop(),r.children=T}}}})(K2);function $o(t){if(t>=1e6)return`${(t/1e6).toFixed(1)}M`;if(t>=1e3){const s=Number((t/1e3).toFixed(1));return s>=1e3?`${(t/1e6).toFixed(1)}M`:`${s.toFixed(1)}k`}return String(t)}function Is(t){if(t===0)return"-";const s=t/1e5;if(s<.01){const o=t<5?5:4;return`$${s.toFixed(o)}`}return`$${s.toFixed(2)}`}const Iy=new Set(["grackle"]);function Go(t){if(t.startsWith("mcp__")){const o=t.indexOf("__",5);if(o>5){const r=t.slice(5,o);if(Iy.has(r))return t.slice(o+2)}}const s=t.indexOf("-");if(s>0){const o=t.slice(0,s);if(Iy.has(o))return t.slice(s+1)}return t}const IC={read:"file-read",view:"file-read",edit:"file-edit",file_change:"file-edit",write:"file-write",bash:"shell",powershell:"shell",command_execution:"shell",grep:"search",glob:"search",todowrite:"todo",update_plan:"todo",todo_write:"todo",report_intent:"metadata",finding_post:"finding",finding_list:"finding",task_list:"task",task_create:"task",task_show:"task",task_update:"task",task_start:"task",task_complete:"task",task_resume:"task",task_delete:"task",workpad_write:"workpad",workpad_read:"workpad",knowledge_search:"knowledge",knowledge_get_node:"knowledge",knowledge_create_node:"knowledge",ipc_spawn:"ipc",ipc_write:"ipc",ipc_close:"ipc",ipc_list_fds:"ipc",ipc_terminate:"ipc",ipc_create_stream:"ipc",ipc_attach:"ipc",ipc_share_stream:"ipc",ipc_list_streams:"ipc",toolsearch:"tool-search",agent:"agent",task:"agent",read_agent:"agent"};function OC(t){const s=Go(t);return IC[s.toLowerCase()]??"generic"}const LC="_card_qkm9i_2",BC="_cardBlue_qkm9i_20",$C="_cardOrange_qkm9i_24",zC="_cardGreen_qkm9i_28",HC="_cardPurple_qkm9i_32",PC="_cardNeutral_qkm9i_36",UC="_cardRed_qkm9i_40",VC="_cardTeal_qkm9i_44",qC="_header_qkm9i_48",GC="_icon_qkm9i_55",FC="_toolName_qkm9i_64",ZC="_fileName_qkm9i_71",KC="_badge_qkm9i_80",YC="_spacer_qkm9i_87",JC="_bodyToggle_qkm9i_91",WC="_chevron_qkm9i_109",XC="_chevronExpanded_qkm9i_115",QC="_pre_qkm9i_119",eE="_diffAdd_qkm9i_143",tE="_diffRemove_qkm9i_155",nE="_diffContext_qkm9i_167",sE="_diffHeader_qkm9i_176",aE="_diffLine_qkm9i_182",iE="_exitOk_qkm9i_188",oE="_exitError_qkm9i_194",rE="_exitPending_qkm9i_200",lE="_inProgress_qkm9i_228",cE="_metadata_qkm9i_232",dE="_metadataPrefix_qkm9i_239",O={card:LC,cardBlue:BC,cardOrange:$C,cardGreen:zC,cardPurple:HC,cardNeutral:PC,cardRed:UC,cardTeal:VC,header:qC,icon:GC,toolName:FC,fileName:ZC,badge:KC,spacer:YC,bodyToggle:JC,chevron:WC,chevronExpanded:XC,pre:QC,diffAdd:eE,diffRemove:tE,diffContext:nE,diffHeader:sE,diffLine:aE,exitOk:iE,exitError:oE,exitPending:rE,inProgress:lE,metadata:cE,metadataPrefix:dE};function uE(t){if(t==null||typeof t!="object")return"";const s=t;return typeof s.file_path=="string"?s.file_path:typeof s.path=="string"?s.path:""}function fE(t){const s=t.split(/[/\\]/);return s[s.length-1]||t}const up=5;function Oy({tool:t,args:s,result:o,isError:r,writeVariant:c}){const[d,u]=y.useState(!1),p=uE(s),m=fE(p),g=o===void 0,v=r?O.cardRed:c?O.cardGreen:O.cardBlue,_=c?"var(--accent-green)":"var(--accent-blue)",b=c?a.jsx(Gj,{size:Ut}):a.jsx(Zj,{size:Ut}),x=c?"tool-card-file-write":"tool-card-file-read",S=(o==null?void 0:o.split(`
266
- `))??[],j=S.length>up,w=d?S:S.slice(0,up);return a.jsxs("div",{className:`${O.card} ${v} ${g?O.inProgress:""}`,"data-testid":x,children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,children:b}),a.jsx("span",{className:O.toolName,style:{color:_},children:t}),m&&a.jsx("span",{className:O.fileName,title:p,children:m}),!g&&S.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,children:[S.length," lines"]})]})]}),r&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:o}),!r&&!g&&S.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-content",children:w.map((T,C)=>a.jsxs("span",{className:O.diffLine,children:[a.jsx("span",{style:{color:"var(--text-tertiary)",userSelect:"none",marginRight:"var(--space-sm)",display:"inline-block",width:"3ch",textAlign:"right"},children:C+1}),T]},C))}),j&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{u(T=>!T)},"aria-expanded":d,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${d?O.chevronExpanded:""}`,"aria-hidden":"true",children:a.jsx(ma,{size:it})}),d?"collapse":`${S.length-up} more lines`]})]})]})}function pE(t){const s=t.split(`
267
- `),o=[];for(const r of s)r.startsWith("diff --git")||r.startsWith("index ")||(r.startsWith("--- ")||r.startsWith("+++ "))&&!r.startsWith("---- ")&&!r.startsWith("++++ ")||(r.startsWith("@@")?o.push({type:"header",content:r}):r.startsWith("+")?o.push({type:"add",content:r.slice(1)}):r.startsWith("-")?o.push({type:"remove",content:r.slice(1)}):r.startsWith(" ")?o.push({type:"context",content:r.slice(1)}):r===""&&o.push({type:"context",content:""}));return o}function mE(t,s){const o=t.split(`
268
- `),r=s.split(`
269
- `),c=[];for(const d of o)c.push({type:"remove",content:d});for(const d of r)c.push({type:"add",content:d});return c}function hE(t){let s=0,o=0;for(const r of t)r.type==="add"&&s++,r.type==="remove"&&o++;return{added:s,removed:o}}function gE(t){if(t==null||typeof t!="object")return"";const s=t;return typeof s.file_path=="string"&&s.file_path||typeof s.path=="string"&&s.path||""}function vE(t){if(t===void 0||typeof t!="object"||t===null)return;const s=t,o=(typeof s.old_string=="string"?s.old_string:void 0)??(typeof s.old_str=="string"?s.old_str:void 0),r=(typeof s.new_string=="string"?s.new_string:void 0)??(typeof s.new_str=="string"?s.new_str:void 0);if(o!==void 0&&r!==void 0)return{oldStr:o,newStr:r}}function yE(t){const s=t.split(/[/\\]/);return s[s.length-1]||t}function bE(t,s){if(s){let r=s;if(s.trimStart().startsWith("{"))try{const c=JSON.parse(s);typeof c.detailedContent=="string"&&(r=c.detailedContent)}catch{}if(r.includes("@@")||r.startsWith("diff ")){const c=pE(r);if(c.length>0)return c}}const o=vE(t);if(o)return mE(o.oldStr,o.newStr)}const fp=5;function _E({tool:t,args:s,result:o,isError:r,detailedResult:c}){const[d,u]=y.useState(!1),p=gE(s),m=yE(p),g=o===void 0,v=bE(s,c),_=v?hE(v):null,b=((v==null?void 0:v.length)??0)>fp,x=d?v:v==null?void 0:v.slice(0,fp);return a.jsxs("div",{className:`${O.card} ${r?O.cardRed:O.cardOrange} ${g?O.inProgress:""}`,"data-testid":"tool-card-file-edit",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,children:a.jsx(xT,{size:Ut})}),a.jsx("span",{className:O.toolName,style:{color:"var(--accent-yellow)"},children:t}),m&&a.jsx("span",{className:O.fileName,title:p,children:m}),_&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,"data-testid":"tool-card-diff-stats",children:[a.jsxs("span",{style:{color:"var(--accent-green)"},children:["+",_.added]})," ",a.jsxs("span",{style:{color:"var(--accent-red)"},children:["−",_.removed]})]})]})]}),r&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:o}),!r&&x&&x.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-diff",children:x.map((S,j)=>{let w=O.diffContext;return S.type==="add"&&(w=O.diffAdd),S.type==="remove"&&(w=O.diffRemove),S.type==="header"&&(w=O.diffHeader),a.jsx("span",{className:`${O.diffLine} ${w}`,children:S.content},j)})}),b&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{u(S=>!S)},"aria-expanded":d,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${d?O.chevronExpanded:""}`,"aria-hidden":"true",children:a.jsx(ma,{size:it})}),d?"collapse":`${((v==null?void 0:v.length)??0)-fp} more lines`]})]}),!r&&!v&&!g&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-content",children:o})]})}const xE=/^\[exit (\d+)\]\s*/;function kE(t){const s=xE.exec(t);return s?{exitCode:Number(s[1]),output:t.slice(s[0].length)}:{exitCode:void 0,output:t}}function SE(t){if(t==null||typeof t!="object")return"";const s=t;return typeof s.command=="string"?s.command:""}function jE(t){const s=/pwsh(?:\.exe)?["']?\s+-Command\s+'([^']*)'\s*$/i.exec(t);if(s)return s[1];const o=/pwsh(?:\.exe)?["']?\s+-Command\s+"([^"]*)"\s*$/i.exec(t);return o?o[1]:t}const pp=3;function TE({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=SE(s),p=jE(u),m=o===void 0,g=o?kE(o):null,v=(g==null?void 0:g.output.split(`
270
- `))??[],_=v.length>pp,b=c?v:v.slice(0,pp),x=g==null?void 0:g.exitCode,S=r||x!==void 0&&x!==0;return a.jsxs("div",{className:`${O.card} ${S?O.cardRed:O.cardNeutral}`,"data-testid":"tool-card-shell",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,style:{color:"var(--text-secondary)",fontFamily:"var(--font-mono)",fontWeight:"bold"},children:"$"}),a.jsx("span",{className:O.fileName,style:{flex:1,color:"var(--text-primary)"},title:u!==p?u:void 0,"data-testid":"tool-card-command",children:p}),x!==void 0&&a.jsxs("span",{className:x===0?O.exitOk:O.exitError,"data-testid":"tool-card-exit-code",children:[x===0?a.jsx(Li,{size:it,"aria-hidden":"true"}):a.jsx($s,{size:it,"aria-hidden":"true"})," ","exit ",x]}),m&&a.jsx("span",{className:O.exitPending,"data-testid":"tool-card-pending",children:a.jsx(dT,{size:it,"aria-hidden":"true"})})]}),!m&&g&&g.output.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-output",children:b.join(`
271
- `)}),_&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{d(j=>!j)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${c?O.chevronExpanded:""}`,"aria-hidden":"true",children:a.jsx(ma,{size:it})}),c?"collapse":`${v.length-pp} more lines`]})]})]})}function wE(t){if(t==null||typeof t!="object")return{pattern:"",path:""};const s=t,o=typeof s.pattern=="string"?s.pattern:"",r=typeof s.path=="string"?s.path:"";return{pattern:o,path:r}}const mp=5;function NE({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),{pattern:u,path:p}=wE(s),m=o===void 0,g=(o==null?void 0:o.split(`
272
- `).filter(b=>b.length>0))??[],v=g.length>mp,_=c?g:g.slice(0,mp);return a.jsxs("div",{className:`${O.card} ${r?O.cardRed:O.cardPurple} ${m?O.inProgress:""}`,"data-testid":"tool-card-search",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,children:a.jsx(fd,{size:Ut})}),a.jsx("span",{className:O.toolName,style:{color:"var(--accent-purple, #a78bfa)"},children:t}),u&&a.jsxs("span",{className:O.fileName,"data-testid":"tool-card-pattern",children:['"',u,'"']}),p&&a.jsxs("span",{className:O.fileName,style:{flexShrink:1},"data-testid":"tool-card-search-path",children:["in ",p]}),!m&&!r&&g.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,"data-testid":"tool-card-match-count",children:[g.length," ",g.length===1?"match":"matches"]})]})]}),r&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:o}),!r&&!m&&_.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-results",children:_.join(`
273
- `)}),v&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{d(b=>!b)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${c?O.chevronExpanded:""}`,"aria-hidden":"true",children:a.jsx(ma,{size:it})}),c?"collapse":`${g.length-mp} more matches`]})]})]})}const CE="_progressBar_14f5c_1",EE="_progressFill_14f5c_9",AE="_activeTask_14f5c_16",DE="_activeIcon_14f5c_27",RE="_todoPulse_14f5c_1",ME="_activeText_14f5c_34",IE="_checklist_14f5c_48",OE="_item_14f5c_55",LE="_itemIcon_14f5c_65",BE="_itemText_14f5c_73",$E="_pending_14f5c_78",zE="_in_progress_14f5c_85",HE="_completed_14f5c_97",PE="_emptyMessage_14f5c_108",gs={progressBar:CE,progressFill:EE,activeTask:AE,activeIcon:DE,todoPulse:RE,activeText:ME,checklist:IE,item:OE,itemIcon:LE,itemText:BE,pending:$E,in_progress:zE,completed:HE,emptyMessage:PE},UE=/^[-*]\s*\[([ xX~!/])\]\s*(.+)$/;function VE(t){if(t===void 0||typeof t!="object"||t===null)return[];const s=t;return Array.isArray(s.todos)?s.todos.filter(o=>typeof o=="object"&&o!==null&&typeof o.content=="string"&&typeof o.status=="string").map(o=>({content:o.content,activeForm:typeof o.activeForm=="string"?o.activeForm:void 0,status:Ly(o.status)})):Array.isArray(s.plan)?s.plan.filter(o=>typeof o=="object"&&o!==null&&typeof o.step=="string"&&typeof o.status=="string").map(o=>({content:o.step,status:Ly(o.status)})):typeof s.content=="string"?qE(s.content):[]}function Ly(t){switch(t.toLowerCase()){case"completed":case"done":case"complete":return"completed";case"in_progress":case"in-progress":case"working":case"active":return"in_progress";default:return"pending"}}function qE(t){const s=t.split(`
274
- `),o=[];for(const r of s){const c=UE.exec(r.trim());if(c){const d=c[1],u=c[2].trim();let p="pending";d==="x"||d==="X"?p="completed":(d==="~"||d==="/"||d==="!")&&(p="in_progress"),o.push({content:u,status:p})}}return o}function GE(t){switch(t){case"completed":return a.jsx(Li,{size:it});case"in_progress":return a.jsx(Ja,{size:it,fill:"currentColor"});default:return a.jsx(Ja,{size:it})}}function FE({args:t}){const s=VE(t),o=s.filter(d=>d.status==="completed").length,r=s.find(d=>d.status==="in_progress"),c=s.length===0;return a.jsxs("div",{className:`${O.card} ${O.cardBlue}`,"data-testid":"tool-card-todo",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,children:a.jsx(oT,{size:Ut})}),a.jsx("span",{className:O.toolName,style:{color:"var(--accent-blue)"},children:c?"Todos cleared":"Todos"}),!c&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,"data-testid":"tool-card-todo-progress",children:[o,"/",s.length]})]})]}),!c&&a.jsx("div",{className:gs.progressBar,"data-testid":"tool-card-todo-bar",children:a.jsx("div",{className:gs.progressFill,style:{width:`${o/s.length*100}%`}})}),r&&a.jsxs("div",{className:gs.activeTask,"data-testid":"tool-card-todo-active",children:[a.jsx("span",{className:gs.activeIcon,children:a.jsx(Ja,{size:it,fill:"currentColor"})}),a.jsx("span",{className:gs.activeText,children:r.activeForm||r.content})]}),!c&&a.jsx("div",{className:gs.checklist,"data-testid":"tool-card-todo-list",children:s.map((d,u)=>a.jsxs("div",{className:`${gs.item} ${gs[d.status]}`,"data-testid":"tool-card-todo-item",children:[a.jsx("span",{className:gs.itemIcon,children:GE(d.status)}),a.jsx("span",{className:gs.itemText,children:d.content})]},u))}),c&&a.jsx("div",{className:gs.emptyMessage,children:"All items completed and cleared."})]})}function ZE(t,s){if(s==null||typeof s!="object")return"";const o=s;if(typeof o.intent=="string")return o.intent;for(const r of Object.values(o))if(typeof r=="string")return r;return t}function KE({tool:t,args:s}){const o=ZE(t,s);return a.jsxs("div",{className:O.metadata,"data-testid":"tool-card-metadata",children:[a.jsx("span",{className:O.metadataPrefix,children:a.jsx(Vj,{size:it})}),o]})}function YE(t){if(t==null||typeof t!="object")return{};const s=t;return{title:typeof s.title=="string"?s.title:void 0,category:typeof s.category=="string"?s.category:void 0,tags:Array.isArray(s.tags)?s.tags:void 0}}function JE(t){if(!t)return{};try{const s=JSON.parse(t);if(Array.isArray(s))return{list:s.filter(o=>o!==null&&typeof o=="object")};if(typeof s=="object"&&s!==null)return{single:s}}catch{}return{}}const hp=5,gp=5;function WE({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=Go(t),p=YE(s),m=o===void 0,{single:g,list:v}=JE(o),_=(g==null?void 0:g.title)??p.title,b=v?void 0:(g==null?void 0:g.category)??p.category,x=v?void 0:(g==null?void 0:g.tags)??p.tags;return a.jsxs("div",{className:`${O.card} ${r?O.cardRed:O.cardPurple} ${m?O.inProgress:""}`,"data-testid":"tool-card-finding",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,"aria-hidden":"true",children:"💡"}),a.jsx("span",{className:O.toolName,style:{color:"var(--accent-purple, #a78bfa)"},children:u}),_&&a.jsxs("span",{className:O.fileName,"data-testid":"tool-card-finding-title",children:['"',_,'"']}),b&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsx("span",{className:O.badge,"data-testid":"tool-card-finding-category",children:b})]}),v&&!b&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,"data-testid":"tool-card-finding-count",children:[v.length," ",v.length===1?"finding":"findings"]})]})]}),x&&x.length>0&&a.jsx("div",{className:O.pre,style:{padding:"4px 8px",whiteSpace:"normal"},"data-testid":"tool-card-finding-tags",children:x.map((S,j)=>a.jsxs("span",{style:{display:"inline-block",marginRight:"6px",opacity:.7,fontSize:"0.85em"},children:["#",S]},j))}),m&&!_&&s!==null&&s!==void 0&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-args",children:JSON.stringify(s,null,2)}),r&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:o}),!r&&(g==null?void 0:g.content)&&a.jsx(a.Fragment,{children:(()=>{const S=g.content.split(`
275
- `),j=S.length>gp,w=c?g.content:S.slice(0,gp).join(`
276
- `);return a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-finding-content",children:w}),j&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{d(T=>!T)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${c?O.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${S.length-gp} more lines`]})]})})()}),!r&&v&&v.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-finding-list",children:(c?v:v.slice(0,hp)).map((S,j)=>`${S.category?`[${S.category}] `:""}${S.title??S.id??`Finding ${j+1}`}`).join(`
277
- `)}),v.length>hp&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{d(S=>!S)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${c?O.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${v.length-hp} more findings`]})]})]})}function XE(t){if(t==null||typeof t!="object")return{};const s=t;return{taskId:typeof s.taskId=="string"?s.taskId:void 0,title:typeof s.title=="string"?s.title:void 0,status:typeof s.status=="string"?s.status:void 0}}function QE(t){if(!t)return{};try{const s=JSON.parse(t);if(Array.isArray(s))return{list:s.filter(o=>o!==null&&typeof o=="object")};if(typeof s=="object"&&s!==null){const o=s;return typeof o.sessionId=="string"?{sessionId:o.sessionId,single:o}:{single:o}}}catch{}return{}}function By(t){switch(t){case"complete":case"completed":return"✓";case"working":case"in_progress":return"●";case"paused":return"⏸";case"failed":return"✗";default:return"○"}}function eA(t){switch(t){case"complete":case"completed":return"var(--accent-green, #4ade80)";case"working":case"in_progress":return"var(--accent-blue, #60a5fa)";case"failed":return"var(--accent-red, #f87171)";case"paused":return"var(--text-tertiary, #888)";default:return"var(--text-secondary, #aaa)"}}const vp=5;function tA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=Go(t),p=XE(s),m=o===void 0,{single:g,list:v,sessionId:_}=QE(o),b=(g==null?void 0:g.title)??p.title,x=(g==null?void 0:g.status)??p.status;return a.jsxs("div",{className:`${O.card} ${r?O.cardRed:O.cardBlue} ${m?O.inProgress:""}`,"data-testid":"tool-card-task",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,"aria-hidden":"true",children:"📋"}),a.jsx("span",{className:O.toolName,style:{color:"var(--accent-blue)"},children:u}),b&&a.jsxs("span",{className:O.fileName,"data-testid":"tool-card-task-title",children:['"',b,'"']}),!b&&p.taskId&&a.jsx("span",{className:O.fileName,"data-testid":"tool-card-task-id",children:p.taskId}),x&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,style:{color:eA(x)},"data-testid":"tool-card-task-status",children:[By(x)," ",x]})]}),v&&!x&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,"data-testid":"tool-card-task-count",children:[v.length," ",v.length===1?"task":"tasks"]})]})]}),m&&!b&&!p.taskId&&s!==null&&s!==void 0&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-args",children:JSON.stringify(s,null,2)}),r&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:o}),!r&&_&&a.jsxs("div",{className:O.pre,style:{padding:"4px 8px",fontSize:"0.85em"},"data-testid":"tool-card-task-session",children:["session: ",_]}),!r&&g&&!v&&!_&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-task-detail",children:[g.id?`id: ${g.id}`:null,g.status?`status: ${g.status}`:null,g.branch?`branch: ${g.branch}`:null,g.latestSessionId?`session: ${g.latestSessionId}`:null].filter(Boolean).join(`
278
- `)}),!r&&v&&v.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-task-list",children:(c?v:v.slice(0,vp)).map(S=>{const j=By(S.status),w=S.title??S.id??"untitled";return`${j} ${w}`}).join(`
279
- `)}),v.length>vp&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{d(S=>!S)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${c?O.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${v.length-vp} more tasks`]})]})]})}function nA(t){if(t==null||typeof t!="object")return{};const s=t;return{status:typeof s.status=="string"?s.status:void 0,summary:typeof s.summary=="string"?s.summary:void 0}}function sA(t){if(!t)return{};try{const s=JSON.parse(t);if(typeof s!="object"||s===null)return{};const o=s,r=typeof o.workpad=="object"&&o.workpad!==null?o.workpad:o;return{status:typeof r.status=="string"?r.status:void 0,summary:typeof r.summary=="string"?r.summary:void 0,extra:typeof r.extra=="object"&&r.extra!==null?r.extra:void 0}}catch{}return{}}function aA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=Go(t),p=nA(s),m=o===void 0,g=sA(o),v=g.status??p.status,_=g.summary??p.summary;return a.jsxs("div",{className:`${O.card} ${r?O.cardRed:O.cardGreen} ${m?O.inProgress:""}`,"data-testid":"tool-card-workpad",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,"aria-hidden":"true",children:"📓"}),a.jsx("span",{className:O.toolName,style:{color:"var(--accent-green, #4ade80)"},children:u}),v&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsx("span",{className:O.badge,"data-testid":"tool-card-workpad-status",children:v})]})]}),_&&a.jsx("pre",{className:O.pre,style:{whiteSpace:"pre-wrap"},"data-testid":"tool-card-workpad-summary",children:_}),m&&!_&&s!==null&&s!==void 0&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-args",children:JSON.stringify(s,null,2)}),r&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:o}),!r&&!m&&o&&!_&&!v&&!g.extra&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-result",children:o}),!r&&g.extra&&a.jsxs(a.Fragment,{children:[a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{d(b=>!b)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${c?O.chevronExpanded:""}`,children:"▸"}),c?"collapse":"extra data"]}),c&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-workpad-extra",children:JSON.stringify(g.extra,null,2)})]})]})}function iA(t){if(t==null||typeof t!="object")return{};const s=t;return{query:typeof s.query=="string"?s.query:void 0,id:typeof s.id=="string"?s.id:void 0}}function oA(t){if(!t)return{};try{const s=JSON.parse(t);if(typeof s!="object"||s===null)return{};const o=s;if(Array.isArray(o.results))return{results:o.results.filter(r=>r!==null&&typeof r=="object")};if(typeof o.node=="object"&&o.node!==null){const r=Array.isArray(o.edges)?o.edges.length:0;return{node:o.node,edgeCount:r}}if(typeof o.id=="string")return{node:o}}catch{}return{}}const yp=5;function rA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=Go(t),p=iA(s),m=o===void 0,g=oA(o);return a.jsxs("div",{className:`${O.card} ${r?O.cardRed:O.cardPurple} ${m?O.inProgress:""}`,"data-testid":"tool-card-knowledge",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,"aria-hidden":"true",children:"🧠"}),a.jsx("span",{className:O.toolName,style:{color:"var(--accent-purple, #a78bfa)"},children:u}),p.query&&a.jsxs("span",{className:O.fileName,"data-testid":"tool-card-knowledge-query",children:['"',p.query,'"']}),p.id&&!p.query&&a.jsx("span",{className:O.fileName,"data-testid":"tool-card-knowledge-id",children:p.id}),g.results&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,"data-testid":"tool-card-knowledge-count",children:[g.results.length," ",g.results.length===1?"result":"results"]})]}),g.node&&g.edgeCount!==void 0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,"data-testid":"tool-card-knowledge-edges",children:[g.edgeCount," ",g.edgeCount===1?"edge":"edges"]})]})]}),m&&s!==null&&s!==void 0&&!p.query&&!p.id&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-args",children:JSON.stringify(s,null,2)}),r&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:o}),!r&&g.results&&g.results.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-knowledge-results",children:(c?g.results:g.results.slice(0,yp)).map(v=>{var x,S,j;const _=((x=v.node)==null?void 0:x.title)??((S=v.node)==null?void 0:S.label)??((j=v.node)==null?void 0:j.id)??"node",b=v.score!==void 0?` (${(v.score*100).toFixed(0)}%)`:"";return`${_}${b}`}).join(`
280
- `)}),g.results.length>yp&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{d(v=>!v)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${c?O.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${g.results.length-yp} more results`]})]}),!r&&g.node&&!g.results&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-knowledge-node",children:[g.node.id?`id: ${g.node.id}`:null,g.node.title?`title: ${g.node.title}`:null,g.node.category?`category: ${g.node.category}`:null,g.node.kind?`kind: ${g.node.kind}`:null,g.node.content?`content: ${g.node.content.length>100?g.node.content.slice(0,100)+"...":g.node.content}`:null].filter(Boolean).join(`
281
- `)})]})}function lA(t){if(t==null||typeof t!="object")return{};const s=t;return{fd:typeof s.fd=="number"?s.fd:void 0,pipe:typeof s.pipe=="string"?s.pipe:void 0,prompt:typeof s.prompt=="string"?s.prompt:void 0,name:typeof s.name=="string"?s.name:void 0,message:typeof s.message=="string"?s.message:void 0}}function cA(t){if(!t)return{};try{const s=JSON.parse(t);if(typeof s!="object"||s===null)return{};const o=s;return{sessionId:typeof o.sessionId=="string"?o.sessionId:void 0,fd:typeof o.fd=="number"?o.fd:void 0,fds:Array.isArray(o.fds)?o.fds.filter(r=>r!==null&&typeof r=="object"):void 0,success:typeof o.success=="boolean"?o.success:void 0,output:typeof o.output=="string"?o.output:void 0}}catch{}return{}}function dA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=Go(t),p=lA(s),m=o===void 0,g=cA(o);let v="";p.pipe?v=`[${p.pipe}]`:p.fd!==void 0?v=`fd:${p.fd}`:p.name&&(v=`"${p.name}"`);const _=p.prompt?p.prompt.length>60?`${p.prompt.slice(0,60)}...`:p.prompt:void 0;return a.jsxs("div",{className:`${O.card} ${r?O.cardRed:O.cardOrange} ${m?O.inProgress:""}`,"data-testid":"tool-card-ipc",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,"aria-hidden":"true",children:"🔀"}),a.jsx("span",{className:O.toolName,style:{color:"var(--accent-yellow, #fbbf24)"},children:u}),v&&a.jsx("span",{className:O.fileName,"data-testid":"tool-card-ipc-info",children:v}),_&&a.jsx("span",{className:O.fileName,title:p.prompt,"data-testid":"tool-card-ipc-prompt",children:_}),g.fds&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,"data-testid":"tool-card-ipc-fd-count",children:[g.fds.length," ",g.fds.length===1?"fd":"fds"]})]}),g.success!==void 0&&!g.fds&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsx("span",{className:O.badge,style:{color:g.success?"var(--accent-green, #4ade80)":"var(--accent-red, #f87171)"},"data-testid":"tool-card-ipc-success",children:g.success?"✓ ok":"✗ failed"})]})]}),m&&!_&&!v&&s!==null&&s!==void 0&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-args",children:JSON.stringify(s,null,2)}),r&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:o}),!r&&g.sessionId&&a.jsxs("div",{className:O.pre,style:{padding:"4px 8px",fontSize:"0.85em"},"data-testid":"tool-card-ipc-session",children:["session: ",g.sessionId,g.fd!==void 0&&` | fd: ${g.fd}`]}),!r&&g.output&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-ipc-output",children:g.output}),!r&&g.fds&&g.fds.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-ipc-fds",children:(c?g.fds:g.fds.slice(0,5)).map(b=>{const x=[`fd:${b.fd??"?"}`,b.permission??"",b.deliveryMode??""];return b.streamName&&x.push(b.streamName),b.owned&&x.push("(owned)"),x.filter(Boolean).join(" ")}).join(`
282
- `)}),g.fds.length>5&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{d(b=>!b)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${c?O.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${g.fds.length-5} more fds`]})]})]})}function uA(t){if(t==null||typeof t!="object")return"";const s=t;return typeof s.query=="string"?s.query:""}const bp=8;function fA({args:t,result:s,isError:o}){const[r,c]=y.useState(!1),d=uA(t),u=s===void 0,p=(s==null?void 0:s.split(`
283
- `))??[],m=p.length>bp,g=r?s:p.slice(0,bp).join(`
284
- `);return a.jsxs("div",{className:`${O.card} ${o?O.cardRed:O.cardNeutral} ${u?O.inProgress:""}`,"data-testid":"tool-card-tool-search",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,"aria-hidden":"true",children:"🔧"}),a.jsx("span",{className:O.toolName,children:"ToolSearch"}),d&&a.jsxs("span",{className:O.fileName,"data-testid":"tool-card-tool-search-query",children:['"',d,'"']}),!u&&!o&&s&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:O.spacer}),a.jsxs("span",{className:O.badge,"data-testid":"tool-card-tool-search-count",children:[p.length," lines"]})]})]}),u&&!d&&t!==null&&t!==void 0&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-args",children:JSON.stringify(t,null,2)}),o&&s&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:s}),!o&&!u&&s&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-tool-search-result",children:g}),m&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{c(v=>!v)},"aria-expanded":r,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${r?O.chevronExpanded:""}`,children:"▸"}),r?"collapse":`${p.length-bp} more lines`]})]})]})}function pA(t){const s=/^mcp__([^_]+(?:_[^_]+)*)__(.+)$/.exec(t);return s?{display:`${s[1]} / ${s[2]}`,isMcp:!0}:{display:t,isMcp:!1}}function mA(t){if(t==null)return"";if(typeof t!="object")return String(t);const s=t;if(typeof s.command=="string")return s.command;if(typeof s.file_path=="string")return s.file_path;if(typeof s.path=="string")return s.path;if(typeof s.query=="string")return s.query;if(typeof s.url=="string")return s.url;try{const o=JSON.stringify(t);return o.length>120?`${o.slice(0,120)}…`:o}catch{return""}}const _p=5;function hA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),{display:u}=pA(t),p=mA(s),m=o===void 0,g=(o==null?void 0:o.split(`
285
- `))??[],v=g.length>_p,_=c?o:g.slice(0,_p).join(`
286
- `);let b="";if(s!=null)try{b=JSON.stringify(s,null,2)}catch{b=String(s)}return a.jsxs("div",{className:`${O.card} ${r?O.cardRed:O.cardBlue} ${m?O.inProgress:""}`,"data-testid":"tool-card-generic",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,children:a.jsx(zj,{size:Ut,"aria-hidden":"true"})}),a.jsx("span",{className:O.toolName,style:{color:"var(--accent-blue)"},children:u}),p&&a.jsx("span",{className:O.fileName,children:p})]}),m&&b&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-args",children:b}),r&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:o}),!r&&!m&&o&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-result",children:_}),v&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{d(x=>!x)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${c?O.chevronExpanded:""}`,"aria-hidden":"true",children:a.jsx(ma,{size:it})}),c?"collapse":`${g.length-_p} more lines`]})]})]})}const gA="_badgePill_o7eqc_1",vA="_modelBadge_o7eqc_14",yA="_backgroundBadge_o7eqc_26",bA="_backgroundDot_o7eqc_36",_A="_backgroundDotPulsing_o7eqc_41",xA="_description_o7eqc_55",kA="_statusLine_o7eqc_62",SA="_statusCompleted_o7eqc_72",jA="_statusRunning_o7eqc_77",TA="_statusError_o7eqc_83",wA="_promptToggle_o7eqc_88",vs={badgePill:gA,modelBadge:vA,backgroundBadge:yA,backgroundDot:bA,backgroundDotPulsing:_A,description:xA,statusLine:kA,statusCompleted:SA,statusRunning:jA,statusError:TA,promptToggle:wA};function NA(t,s){if(s==null||typeof s!="object")return{};const o=s;return t.toLowerCase()==="read_agent"?{agentId:typeof o.agent_id=="string"?o.agent_id:void 0,isPoll:!0}:typeof o.agent_type=="string"||typeof o.name=="string"?{agentType:typeof o.agent_type=="string"?o.agent_type:void 0,description:typeof o.description=="string"?o.description:void 0,prompt:typeof o.prompt=="string"?o.prompt:void 0,isBackground:o.mode==="background",agentName:typeof o.name=="string"?o.name:void 0}:{agentType:typeof o.subagent_type=="string"?o.subagent_type:void 0,description:typeof o.description=="string"?o.description:void 0,prompt:typeof o.prompt=="string"?o.prompt:void 0,isBackground:o.run_in_background===!0,model:typeof o.model=="string"?o.model:void 0,isResume:typeof o.resume=="string"&&o.resume.length>0}}const CA=/^Agent\s+(completed|running|failed|error)\.\s*agent_id:\s*(\S+),?\s*([^\n]*)(?:\n\n([\s\S]*))?$/i;function EA(t){const s=CA.exec(t);if(!s)return;const o=s[4];return{status:s[1].toLowerCase(),agentId:s[2].replace(/,$/,""),metadata:s[3].trim(),content:o?o.trim():void 0}}const xp=5;function AA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),[u,p]=y.useState(!1),m=NA(t,s),g=o===void 0,v=m.isPoll&&o?EA(o):void 0,_=(v==null?void 0:v.content)??o,b=(_==null?void 0:_.split(`
287
- `))??[],x=b.length>xp,S=c?_:b.slice(0,xp).join(`
288
- `),j=m.isPoll?"Subagent":"Agent";return a.jsxs("div",{className:`${O.card} ${r?O.cardRed:O.cardTeal} ${g?O.inProgress:""}`,"data-testid":"tool-card-agent",children:[a.jsxs("div",{className:O.header,children:[a.jsx("span",{className:O.icon,style:{color:"var(--accent-teal, #2dd4bf)"},children:"▶"}),a.jsx("span",{className:O.toolName,style:{color:"var(--accent-teal, #2dd4bf)"},children:j}),m.agentType&&a.jsx("span",{className:vs.badgePill,"data-testid":"tool-card-agent-type",children:m.agentType}),m.model&&a.jsx("span",{className:vs.modelBadge,"data-testid":"tool-card-agent-model",children:m.model}),m.isBackground&&a.jsxs("span",{className:vs.backgroundBadge,"data-testid":"tool-card-agent-background",children:[a.jsx("span",{className:g?vs.backgroundDotPulsing:vs.backgroundDot,children:"●"}),"BG"]}),m.agentName&&a.jsx("span",{className:O.fileName,"data-testid":"tool-card-agent-name",children:m.agentName}),m.agentId&&a.jsx("span",{className:O.fileName,"data-testid":"tool-card-agent-id",children:m.agentId}),a.jsx("span",{className:O.spacer}),g&&!m.isBackground&&a.jsx("span",{className:O.exitPending,"data-testid":"tool-card-pending",children:"●"})]}),m.description&&a.jsx("div",{className:vs.description,"data-testid":"tool-card-agent-description",children:m.isResume?`Resuming: ${m.description}`:m.description}),v&&a.jsxs("div",{className:vs.statusLine,"data-testid":"tool-card-agent-status",children:[a.jsx("span",{className:v.status==="completed"?vs.statusCompleted:v.status==="running"?vs.statusRunning:vs.statusError,children:v.status}),v.metadata&&a.jsx("span",{children:v.metadata})]}),m.prompt&&a.jsxs(a.Fragment,{children:[a.jsxs("button",{type:"button",className:vs.promptToggle,onClick:()=>{p(w=>!w)},"aria-expanded":u,"data-testid":"tool-card-prompt-toggle",children:[a.jsx("span",{className:`${O.chevron} ${u?O.chevronExpanded:""}`,children:"▸"}),"prompt"]}),u&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-prompt",children:m.prompt})]}),r&&o&&a.jsx("pre",{className:O.pre,"data-testid":"tool-card-error",children:o}),!r&&!g&&_&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:O.pre,"data-testid":"tool-card-result",children:S}),x&&a.jsxs("button",{type:"button",className:O.bodyToggle,onClick:()=>{d(w=>!w)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${O.chevron} ${c?O.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${b.length-xp} more lines`]})]})]})}function kp(t){switch(OC(t.tool)){case"file-read":return a.jsx(Oy,{...t});case"file-edit":return a.jsx(_E,{...t});case"file-write":return a.jsx(Oy,{...t,writeVariant:!0});case"shell":return a.jsx(TE,{...t});case"search":return a.jsx(NE,{...t});case"todo":return a.jsx(FE,{...t});case"metadata":return a.jsx(KE,{...t});case"finding":return a.jsx(WE,{...t});case"task":return a.jsx(tA,{...t});case"workpad":return a.jsx(aA,{...t});case"knowledge":return a.jsx(rA,{...t});case"ipc":return a.jsx(dA,{...t});case"tool-search":return a.jsx(fA,{...t});case"agent":return a.jsx(AA,{...t});default:return a.jsx(hA,{...t})}}const DA="_systemContextEvent_hmqlm_1",RA="_systemContextHeader_hmqlm_7",MA="_systemContextBadge_hmqlm_28",IA="_systemContextToggle_hmqlm_37",OA="_systemContextPre_hmqlm_43",LA="_systemContextEllipsis_hmqlm_54",BA="_systemEvent_hmqlm_58",$A="_systemTimestamp_hmqlm_65",zA="_textEvent_hmqlm_69",HA="_codeBlockWrapper_hmqlm_156",PA="_codeBlockCopyButton_hmqlm_159",UA="_errorEvent_hmqlm_163",VA="_statusEvent_hmqlm_171",qA="_userInputEvent_hmqlm_180",GA="_userInputContent_hmqlm_186",FA="_signalEvent_hmqlm_203",ZA="_signalBadge_hmqlm_214",KA="_signalContent_hmqlm_223",YA="_usageEvent_hmqlm_228",JA="_usageBadge_hmqlm_235",WA="_defaultEvent_hmqlm_244",Pt={systemContextEvent:DA,systemContextHeader:RA,systemContextBadge:MA,systemContextToggle:IA,systemContextPre:OA,systemContextEllipsis:LA,systemEvent:BA,systemTimestamp:$A,textEvent:zA,codeBlockWrapper:HA,codeBlockCopyButton:PA,errorEvent:UA,statusEvent:VA,userInputEvent:qA,userInputContent:GA,signalEvent:FA,signalBadge:ZA,signalContent:KA,usageEvent:YA,usageBadge:JA,defaultEvent:WA},$y=3;function XA({content:t}){const[s,o]=y.useState(!1),r=t.split(`
289
- `),c=r.length>$y,d=s?t:r.slice(0,$y).join(`
290
- `);return a.jsxs("div",{className:Pt.systemContextEvent,"data-testid":"system-context-event",children:[a.jsxs("button",{type:"button",className:Pt.systemContextHeader,onClick:()=>{o(u=>!u)},"aria-expanded":s,children:[a.jsx("span",{className:Pt.systemContextBadge,children:"SYSTEM PROMPT"}),c&&a.jsx("span",{className:Pt.systemContextToggle,"aria-hidden":"true",children:s?a.jsx(I_,{size:it}):a.jsx(ma,{size:it})})]}),a.jsxs("pre",{className:Pt.systemContextPre,children:[d,!s&&c&&a.jsx("span",{className:Pt.systemContextEllipsis,children:"…"})]})]})}function QA({time:t,content:s}){return a.jsxs("div",{className:Pt.systemEvent,children:[a.jsxs("span",{className:Pt.systemTimestamp,children:["[",t,"]"]})," ",s]})}function tm(t){return typeof t=="string"?t:typeof t=="number"?String(t):Array.isArray(t)?t.map(tm).join(""):t!=null&&typeof t=="object"&&"props"in t?tm(t.props.children):""}function eD({children:t,node:s,...o}){const r=tm(t);return a.jsxs("div",{className:Pt.codeBlockWrapper,children:[a.jsx("pre",{...o,children:t}),a.jsx(pC,{text:r,"data-testid":"copy-code-block",className:Pt.codeBlockCopyButton})]})}const tD={pre:eD};function nD({content:t}){return a.jsx("div",{className:Pt.textEvent,children:a.jsx(Ed,{remarkPlugins:[Ad],rehypePlugins:[MC],components:tD,children:t})})}function sD({content:t}){return a.jsxs("div",{className:Pt.errorEvent,children:["Error: ",t]})}function aD({content:t}){return a.jsxs("div",{className:Pt.statusEvent,children:["--- ",t," ---"]})}function iD({content:t}){return a.jsx("div",{className:Pt.userInputEvent,children:a.jsx("span",{className:Pt.userInputContent,children:t})})}function oD({content:t}){return a.jsxs("div",{className:Pt.signalEvent,"data-testid":"signal-event",children:[a.jsx("span",{className:Pt.signalBadge,children:"SIGNAL"}),a.jsx("span",{className:Pt.signalContent,children:t})]})}function rD({content:t}){let s=t;try{const o=JSON.parse(t),r=Number(o.input_tokens)||0,c=Number(o.output_tokens)||0,d=$o(r+c),u=Is(Number(o.cost_millicents)||0);s=`${d} tokens · ${u}`}catch{}return a.jsx("div",{className:Pt.usageEvent,"data-testid":"usage-event",children:a.jsx("span",{className:Pt.usageBadge,children:s})})}function lD({content:t}){return a.jsx("div",{className:Pt.defaultEvent,children:t})}function cD({event:t,toolUseCtx:s,settled:o}){const r=new Date(t.timestamp).toLocaleTimeString();switch(t.eventType){case"system":{if(t.raw)try{if(JSON.parse(t.raw).systemContext===!0)return a.jsx(XA,{content:t.content})}catch{}return a.jsx(QA,{time:r,content:t.content})}case"text":case"output":return a.jsx(nD,{content:t.content});case"tool_use":{let c="",d={};try{const u=JSON.parse(t.content);c=u.tool||"",d=u.args}catch{}return a.jsx(kp,{tool:c,args:d,result:o?"":void 0})}case"tool_result":{let c=!1;if(t.raw)try{c=JSON.parse(t.raw).is_error===!0}catch{}let d=t.content;if(t.content.trimStart().startsWith("{"))try{const u=JSON.parse(t.content);typeof u.content=="string"&&(d=u.content)}catch{}return s?a.jsx(kp,{tool:s.tool,args:s.args,result:d,isError:c,detailedResult:s.detailedResult}):a.jsx(kp,{tool:"Tool output",args:void 0,result:d,isError:c})}case"error":return a.jsx(sD,{content:t.content});case"status":return a.jsx(aD,{content:t.content});case"user_input":return a.jsx(iD,{content:t.content});case"signal":return a.jsx(oD,{content:t.content});case"usage":return a.jsx(rD,{content:t.content});default:return a.jsx(lD,{content:t.content})}}const Om=y.createContext({});function Lm(t){const s=y.useRef(null);return s.current===null&&(s.current=t()),s.current}const zd=y.createContext(null),Bm=y.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"});class dD extends y.Component{getSnapshotBeforeUpdate(s){const o=this.props.childRef.current;if(o&&s.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=o.offsetHeight||0,r.width=o.offsetWidth||0,r.top=o.offsetTop,r.left=o.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function uD({children:t,isPresent:s}){const o=y.useId(),r=y.useRef(null),c=y.useRef({width:0,height:0,top:0,left:0}),{nonce:d}=y.useContext(Bm);return y.useInsertionEffect(()=>{const{width:u,height:p,top:m,left:g}=c.current;if(s||!r.current||!u||!p)return;r.current.dataset.motionPopId=o;const v=document.createElement("style");return d&&(v.nonce=d),document.head.appendChild(v),v.sheet&&v.sheet.insertRule(`
291
- [data-motion-pop-id="${o}"] {
292
- position: absolute !important;
293
- width: ${u}px !important;
294
- height: ${p}px !important;
295
- top: ${m}px !important;
296
- left: ${g}px !important;
297
- }
298
- `),()=>{document.head.removeChild(v)}},[s]),a.jsx(dD,{isPresent:s,childRef:r,sizeRef:c,children:y.cloneElement(t,{ref:r})})}const fD=({children:t,initial:s,isPresent:o,onExitComplete:r,custom:c,presenceAffectsLayout:d,mode:u})=>{const p=Lm(pD),m=y.useId(),g=y.useCallback(_=>{p.set(_,!0);for(const b of p.values())if(!b)return;r&&r()},[p,r]),v=y.useMemo(()=>({id:m,initial:s,isPresent:o,custom:c,onExitComplete:g,register:_=>(p.set(_,!1),()=>p.delete(_))}),d?[Math.random(),g]:[o,g]);return y.useMemo(()=>{p.forEach((_,b)=>p.set(b,!1))},[o]),y.useEffect(()=>{!o&&!p.size&&r&&r()},[o]),u==="popLayout"&&(t=a.jsx(uD,{isPresent:o,children:t})),a.jsx(zd.Provider,{value:v,children:t})};function pD(){return new Map}function rx(t=!0){const s=y.useContext(zd);if(s===null)return[!0,null];const{isPresent:o,onExitComplete:r,register:c}=s,d=y.useId();y.useEffect(()=>{t&&c(d)},[t]);const u=y.useCallback(()=>t&&r&&r(d),[d,r,t]);return!o&&r?[!1,u]:[!0]}const qc=t=>t.key||"";function zy(t){const s=[];return y.Children.forEach(t,o=>{y.isValidElement(o)&&s.push(o)}),s}const $m=typeof window<"u",lx=$m?y.useLayoutEffect:y.useEffect,ls=({children:t,custom:s,initial:o=!0,onExitComplete:r,presenceAffectsLayout:c=!0,mode:d="sync",propagate:u=!1})=>{const[p,m]=rx(u),g=y.useMemo(()=>zy(t),[t]),v=u&&!p?[]:g.map(qc),_=y.useRef(!0),b=y.useRef(g),x=Lm(()=>new Map),[S,j]=y.useState(g),[w,T]=y.useState(g);lx(()=>{_.current=!1,b.current=g;for(let L=0;L<w.length;L++){const E=qc(w[L]);v.includes(E)?x.delete(E):x.get(E)!==!0&&x.set(E,!1)}},[w,v.length,v.join("-")]);const C=[];if(g!==S){let L=[...g];for(let E=0;E<w.length;E++){const M=w[E],H=qc(M);v.includes(H)||(L.splice(E,0,M),C.push(M))}d==="wait"&&C.length&&(L=C),T(zy(L)),j(g);return}const{forceRender:A}=y.useContext(Om);return a.jsx(a.Fragment,{children:w.map(L=>{const E=qc(L),M=u&&!p?!1:g===w||v.includes(E),H=()=>{if(x.has(E))x.set(E,!0);else return;let D=!0;x.forEach(z=>{z||(D=!1)}),D&&(A==null||A(),T(b.current),u&&(m==null||m()),r&&r())};return a.jsx(fD,{isPresent:M,initial:!_.current||o?void 0:!1,custom:M?void 0:s,presenceAffectsLayout:c,mode:d,onExitComplete:M?void 0:H,children:L},E)})})},zn=t=>t;let cx=zn;const mD={useManualTiming:!1};function hD(t){let s=new Set,o=new Set,r=!1,c=!1;const d=new WeakSet;let u={delta:0,timestamp:0,isProcessing:!1};function p(g){d.has(g)&&(m.schedule(g),t()),g(u)}const m={schedule:(g,v=!1,_=!1)=>{const x=_&&r?s:o;return v&&d.add(g),x.has(g)||x.add(g),g},cancel:g=>{o.delete(g),d.delete(g)},process:g=>{if(u=g,r){c=!0;return}r=!0,[s,o]=[o,s],s.forEach(p),s.clear(),r=!1,c&&(c=!1,m.process(g))}};return m}const Gc=["read","resolveKeyframes","update","preRender","render","postRender"],gD=40;function dx(t,s){let o=!1,r=!0;const c={delta:0,timestamp:0,isProcessing:!1},d=()=>o=!0,u=Gc.reduce((T,C)=>(T[C]=hD(d),T),{}),{read:p,resolveKeyframes:m,update:g,preRender:v,render:_,postRender:b}=u,x=()=>{const T=performance.now();o=!1,c.delta=r?1e3/60:Math.max(Math.min(T-c.timestamp,gD),1),c.timestamp=T,c.isProcessing=!0,p.process(c),m.process(c),g.process(c),v.process(c),_.process(c),b.process(c),c.isProcessing=!1,o&&s&&(r=!1,t(x))},S=()=>{o=!0,r=!0,c.isProcessing||t(x)};return{schedule:Gc.reduce((T,C)=>{const A=u[C];return T[C]=(L,E=!1,M=!1)=>(o||S(),A.schedule(L,E,M)),T},{}),cancel:T=>{for(let C=0;C<Gc.length;C++)u[Gc[C]].cancel(T)},state:c,steps:u}}const{schedule:jt,cancel:Xa,state:pn,steps:Sp}=dx(typeof requestAnimationFrame<"u"?requestAnimationFrame:zn,!0),ux=y.createContext({strict:!1}),Hy={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},zo={};for(const t in Hy)zo[t]={isEnabled:s=>Hy[t].some(o=>!!s[o])};function vD(t){for(const s in t)zo[s]={...zo[s],...t[s]}}const yD=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function md(t){return t.startsWith("while")||t.startsWith("drag")&&t!=="draggable"||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||t.startsWith("onLayout")||yD.has(t)}let fx=t=>!md(t);function bD(t){t&&(fx=s=>s.startsWith("on")?!md(s):t(s))}try{bD(require("@emotion/is-prop-valid").default)}catch{}function _D(t,s,o){const r={};for(const c in t)c==="values"&&typeof t.values=="object"||(fx(c)||o===!0&&md(c)||!s&&!md(c)||t.draggable&&c.startsWith("onDrag"))&&(r[c]=t[c]);return r}function xD(t){if(typeof Proxy>"u")return t;const s=new Map,o=(...r)=>t(...r);return new Proxy(o,{get:(r,c)=>c==="create"?t:(s.has(c)||s.set(c,t(c)),s.get(c))})}const Hd=y.createContext({});function dl(t){return typeof t=="string"||Array.isArray(t)}function Pd(t){return t!==null&&typeof t=="object"&&typeof t.start=="function"}const zm=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Hm=["initial",...zm];function Ud(t){return Pd(t.animate)||Hm.some(s=>dl(t[s]))}function px(t){return!!(Ud(t)||t.variants)}function kD(t,s){if(Ud(t)){const{initial:o,animate:r}=t;return{initial:o===!1||dl(o)?o:void 0,animate:dl(r)?r:void 0}}return t.inherit!==!1?s:{}}function SD(t){const{initial:s,animate:o}=kD(t,y.useContext(Hd));return y.useMemo(()=>({initial:s,animate:o}),[Py(s),Py(o)])}function Py(t){return Array.isArray(t)?t.join(" "):t}const jD=Symbol.for("motionComponentSymbol");function Ro(t){return t&&typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"current")}function TD(t,s,o){return y.useCallback(r=>{r&&t.onMount&&t.onMount(r),s&&(r?s.mount(r):s.unmount()),o&&(typeof o=="function"?o(r):Ro(o)&&(o.current=r))},[s])}const Pm=t=>t.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),wD="framerAppearId",mx="data-"+Pm(wD),{schedule:Um}=dx(queueMicrotask,!1),hx=y.createContext({});function ND(t,s,o,r,c){var d,u;const{visualElement:p}=y.useContext(Hd),m=y.useContext(ux),g=y.useContext(zd),v=y.useContext(Bm).reducedMotion,_=y.useRef(null);r=r||m.renderer,!_.current&&r&&(_.current=r(t,{visualState:s,parent:p,props:o,presenceContext:g,blockInitialAnimation:g?g.initial===!1:!1,reducedMotionConfig:v}));const b=_.current,x=y.useContext(hx);b&&!b.projection&&c&&(b.type==="html"||b.type==="svg")&&CD(_.current,o,c,x);const S=y.useRef(!1);y.useInsertionEffect(()=>{b&&S.current&&b.update(o,g)});const j=o[mx],w=y.useRef(!!j&&!(!((d=window.MotionHandoffIsComplete)===null||d===void 0)&&d.call(window,j))&&((u=window.MotionHasOptimisedAnimation)===null||u===void 0?void 0:u.call(window,j)));return lx(()=>{b&&(S.current=!0,window.MotionIsMounted=!0,b.updateFeatures(),Um.render(b.render),w.current&&b.animationState&&b.animationState.animateChanges())}),y.useEffect(()=>{b&&(!w.current&&b.animationState&&b.animationState.animateChanges(),w.current&&(queueMicrotask(()=>{var T;(T=window.MotionHandoffMarkAsComplete)===null||T===void 0||T.call(window,j)}),w.current=!1))}),b}function CD(t,s,o,r){const{layoutId:c,layout:d,drag:u,dragConstraints:p,layoutScroll:m,layoutRoot:g}=s;t.projection=new o(t.latestValues,s["data-framer-portal-id"]?void 0:gx(t.parent)),t.projection.setOptions({layoutId:c,layout:d,alwaysMeasureLayout:!!u||p&&Ro(p),visualElement:t,animationType:typeof d=="string"?d:"both",initialPromotionConfig:r,layoutScroll:m,layoutRoot:g})}function gx(t){if(t)return t.options.allowProjection!==!1?t.projection:gx(t.parent)}function ED({preloadedFeatures:t,createVisualElement:s,useRender:o,useVisualState:r,Component:c}){var d,u;t&&vD(t);function p(g,v){let _;const b={...y.useContext(Bm),...g,layoutId:AD(g)},{isStatic:x}=b,S=SD(g),j=r(g,x);if(!x&&$m){DD();const w=RD(b);_=w.MeasureLayout,S.visualElement=ND(c,j,b,s,w.ProjectionNode)}return a.jsxs(Hd.Provider,{value:S,children:[_&&S.visualElement?a.jsx(_,{visualElement:S.visualElement,...b}):null,o(c,g,TD(j,S.visualElement,v),j,x,S.visualElement)]})}p.displayName=`motion.${typeof c=="string"?c:`create(${(u=(d=c.displayName)!==null&&d!==void 0?d:c.name)!==null&&u!==void 0?u:""})`}`;const m=y.forwardRef(p);return m[jD]=c,m}function AD({layoutId:t}){const s=y.useContext(Om).id;return s&&t!==void 0?s+"-"+t:t}function DD(t,s){y.useContext(ux).strict}function RD(t){const{drag:s,layout:o}=zo;if(!s&&!o)return{};const r={...s,...o};return{MeasureLayout:s!=null&&s.isEnabled(t)||o!=null&&o.isEnabled(t)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const MD=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Vm(t){return typeof t!="string"||t.includes("-")?!1:!!(MD.indexOf(t)>-1||/[A-Z]/u.test(t))}function Uy(t){const s=[{},{}];return t==null||t.values.forEach((o,r)=>{s[0][r]=o.get(),s[1][r]=o.getVelocity()}),s}function qm(t,s,o,r){if(typeof s=="function"){const[c,d]=Uy(r);s=s(o!==void 0?o:t.custom,c,d)}if(typeof s=="string"&&(s=t.variants&&t.variants[s]),typeof s=="function"){const[c,d]=Uy(r);s=s(o!==void 0?o:t.custom,c,d)}return s}const nm=t=>Array.isArray(t),ID=t=>!!(t&&typeof t=="object"&&t.mix&&t.toValue),OD=t=>nm(t)?t[t.length-1]||0:t,vn=t=>!!(t&&t.getVelocity);function id(t){const s=vn(t)?t.get():t;return ID(s)?s.toValue():s}function LD({scrapeMotionValuesFromProps:t,createRenderState:s,onUpdate:o},r,c,d){const u={latestValues:BD(r,c,d,t),renderState:s()};return o&&(u.onMount=p=>o({props:r,current:p,...u}),u.onUpdate=p=>o(p)),u}const vx=t=>(s,o)=>{const r=y.useContext(Hd),c=y.useContext(zd),d=()=>LD(t,s,r,c);return o?d():Lm(d)};function BD(t,s,o,r){const c={},d=r(t,{});for(const b in d)c[b]=id(d[b]);let{initial:u,animate:p}=t;const m=Ud(t),g=px(t);s&&g&&!m&&t.inherit!==!1&&(u===void 0&&(u=s.initial),p===void 0&&(p=s.animate));let v=o?o.initial===!1:!1;v=v||u===!1;const _=v?p:u;if(_&&typeof _!="boolean"&&!Pd(_)){const b=Array.isArray(_)?_:[_];for(let x=0;x<b.length;x++){const S=qm(t,b[x]);if(S){const{transitionEnd:j,transition:w,...T}=S;for(const C in T){let A=T[C];if(Array.isArray(A)){const L=v?A.length-1:0;A=A[L]}A!==null&&(c[C]=A)}for(const C in j)c[C]=j[C]}}}return c}const Fo=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],zi=new Set(Fo),yx=t=>s=>typeof s=="string"&&s.startsWith(t),bx=yx("--"),$D=yx("var(--"),Gm=t=>$D(t)?zD.test(t.split("/*")[0].trim()):!1,zD=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,_x=(t,s)=>s&&typeof t=="number"?s.transform(t):t,fa=(t,s,o)=>o>s?s:o<t?t:o,Zo={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},ul={...Zo,transform:t=>fa(0,1,t)},Fc={...Zo,default:1},_l=t=>({test:s=>typeof s=="string"&&s.endsWith(t)&&s.split(" ").length===1,parse:parseFloat,transform:s=>`${s}${t}`}),Ya=_l("deg"),Ls=_l("%"),De=_l("px"),HD=_l("vh"),PD=_l("vw"),Vy={...Ls,parse:t=>Ls.parse(t)/100,transform:t=>Ls.transform(t*100)},UD={borderWidth:De,borderTopWidth:De,borderRightWidth:De,borderBottomWidth:De,borderLeftWidth:De,borderRadius:De,radius:De,borderTopLeftRadius:De,borderTopRightRadius:De,borderBottomRightRadius:De,borderBottomLeftRadius:De,width:De,maxWidth:De,height:De,maxHeight:De,top:De,right:De,bottom:De,left:De,padding:De,paddingTop:De,paddingRight:De,paddingBottom:De,paddingLeft:De,margin:De,marginTop:De,marginRight:De,marginBottom:De,marginLeft:De,backgroundPositionX:De,backgroundPositionY:De},VD={rotate:Ya,rotateX:Ya,rotateY:Ya,rotateZ:Ya,scale:Fc,scaleX:Fc,scaleY:Fc,scaleZ:Fc,skew:Ya,skewX:Ya,skewY:Ya,distance:De,translateX:De,translateY:De,translateZ:De,x:De,y:De,z:De,perspective:De,transformPerspective:De,opacity:ul,originX:Vy,originY:Vy,originZ:De},qy={...Zo,transform:Math.round},Fm={...UD,...VD,zIndex:qy,size:De,fillOpacity:ul,strokeOpacity:ul,numOctaves:qy},qD={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},GD=Fo.length;function FD(t,s,o){let r="",c=!0;for(let d=0;d<GD;d++){const u=Fo[d],p=t[u];if(p===void 0)continue;let m=!0;if(typeof p=="number"?m=p===(u.startsWith("scale")?1:0):m=parseFloat(p)===0,!m||o){const g=_x(p,Fm[u]);if(!m){c=!1;const v=qD[u]||u;r+=`${v}(${g}) `}o&&(s[u]=g)}}return r=r.trim(),o?r=o(s,c?"":r):c&&(r="none"),r}function Zm(t,s,o){const{style:r,vars:c,transformOrigin:d}=t;let u=!1,p=!1;for(const m in s){const g=s[m];if(zi.has(m)){u=!0;continue}else if(bx(m)){c[m]=g;continue}else{const v=_x(g,Fm[m]);m.startsWith("origin")?(p=!0,d[m]=v):r[m]=v}}if(s.transform||(u||o?r.transform=FD(s,t.transform,o):r.transform&&(r.transform="none")),p){const{originX:m="50%",originY:g="50%",originZ:v=0}=d;r.transformOrigin=`${m} ${g} ${v}`}}const ZD={offset:"stroke-dashoffset",array:"stroke-dasharray"},KD={offset:"strokeDashoffset",array:"strokeDasharray"};function YD(t,s,o=1,r=0,c=!0){t.pathLength=1;const d=c?ZD:KD;t[d.offset]=De.transform(-r);const u=De.transform(s),p=De.transform(o);t[d.array]=`${u} ${p}`}function Gy(t,s,o){return typeof t=="string"?t:De.transform(s+o*t)}function JD(t,s,o){const r=Gy(s,t.x,t.width),c=Gy(o,t.y,t.height);return`${r} ${c}`}function Km(t,{attrX:s,attrY:o,attrScale:r,originX:c,originY:d,pathLength:u,pathSpacing:p=1,pathOffset:m=0,...g},v,_){if(Zm(t,g,_),v){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:b,style:x,dimensions:S}=t;b.transform&&(S&&(x.transform=b.transform),delete b.transform),S&&(c!==void 0||d!==void 0||x.transform)&&(x.transformOrigin=JD(S,c!==void 0?c:.5,d!==void 0?d:.5)),s!==void 0&&(b.x=s),o!==void 0&&(b.y=o),r!==void 0&&(b.scale=r),u!==void 0&&YD(b,u,p,m,!1)}const Ym=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),xx=()=>({...Ym(),attrs:{}}),Jm=t=>typeof t=="string"&&t.toLowerCase()==="svg";function kx(t,{style:s,vars:o},r,c){Object.assign(t.style,s,c&&c.getProjectionStyles(r));for(const d in o)t.style.setProperty(d,o[d])}const Sx=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function jx(t,s,o,r){kx(t,s,void 0,r);for(const c in s.attrs)t.setAttribute(Sx.has(c)?c:Pm(c),s.attrs[c])}const hd={};function WD(t){Object.assign(hd,t)}function Tx(t,{layout:s,layoutId:o}){return zi.has(t)||t.startsWith("origin")||(s||o!==void 0)&&(!!hd[t]||t==="opacity")}function Wm(t,s,o){var r;const{style:c}=t,d={};for(const u in c)(vn(c[u])||s.style&&vn(s.style[u])||Tx(u,t)||((r=o==null?void 0:o.getValue(u))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(d[u]=c[u]);return d}function wx(t,s,o){const r=Wm(t,s,o);for(const c in t)if(vn(t[c])||vn(s[c])){const d=Fo.indexOf(c)!==-1?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c;r[d]=t[c]}return r}function XD(t,s){try{s.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{s.dimensions={x:0,y:0,width:0,height:0}}}const Fy=["x","y","width","height","cx","cy","r"],QD={useVisualState:vx({scrapeMotionValuesFromProps:wx,createRenderState:xx,onUpdate:({props:t,prevProps:s,current:o,renderState:r,latestValues:c})=>{if(!o)return;let d=!!t.drag;if(!d){for(const p in c)if(zi.has(p)){d=!0;break}}if(!d)return;let u=!s;if(s)for(let p=0;p<Fy.length;p++){const m=Fy[p];t[m]!==s[m]&&(u=!0)}u&&jt.read(()=>{XD(o,r),jt.render(()=>{Km(r,c,Jm(o.tagName),t.transformTemplate),jx(o,r)})})}})},e4={useVisualState:vx({scrapeMotionValuesFromProps:Wm,createRenderState:Ym})};function Nx(t,s,o){for(const r in s)!vn(s[r])&&!Tx(r,o)&&(t[r]=s[r])}function t4({transformTemplate:t},s){return y.useMemo(()=>{const o=Ym();return Zm(o,s,t),Object.assign({},o.vars,o.style)},[s])}function n4(t,s){const o=t.style||{},r={};return Nx(r,o,t),Object.assign(r,t4(t,s)),r}function s4(t,s){const o={},r=n4(t,s);return t.drag&&t.dragListener!==!1&&(o.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=t.drag===!0?"none":`pan-${t.drag==="x"?"y":"x"}`),t.tabIndex===void 0&&(t.onTap||t.onTapStart||t.whileTap)&&(o.tabIndex=0),o.style=r,o}function a4(t,s,o,r){const c=y.useMemo(()=>{const d=xx();return Km(d,s,Jm(r),t.transformTemplate),{...d.attrs,style:{...d.style}}},[s]);if(t.style){const d={};Nx(d,t.style,t),c.style={...d,...c.style}}return c}function i4(t=!1){return(o,r,c,{latestValues:d},u)=>{const m=(Vm(o)?a4:s4)(r,d,u,o),g=_D(r,typeof o=="string",t),v=o!==y.Fragment?{...g,...m,ref:c}:{},{children:_}=r,b=y.useMemo(()=>vn(_)?_.get():_,[_]);return y.createElement(o,{...v,children:b})}}function o4(t,s){return function(r,{forwardMotionProps:c}={forwardMotionProps:!1}){const u={...Vm(r)?QD:e4,preloadedFeatures:t,useRender:i4(c),createVisualElement:s,Component:r};return ED(u)}}function Cx(t,s){if(!Array.isArray(s))return!1;const o=s.length;if(o!==t.length)return!1;for(let r=0;r<o;r++)if(s[r]!==t[r])return!1;return!0}function Vd(t,s,o){const r=t.getProps();return qm(r,s,o!==void 0?o:r.custom,t)}function Xm(t,s){return t?t[s]||t.default||t:void 0}const Ex=new Set(["width","height","top","left","right","bottom",...Fo]);let od;function r4(){od=void 0}const Bs={now:()=>(od===void 0&&Bs.set(pn.isProcessing||mD.useManualTiming?pn.timestamp:performance.now()),od),set:t=>{od=t,queueMicrotask(r4)}};function Qm(t,s){t.indexOf(s)===-1&&t.push(s)}function eh(t,s){const o=t.indexOf(s);o>-1&&t.splice(o,1)}class th{constructor(){this.subscriptions=[]}add(s){return Qm(this.subscriptions,s),()=>eh(this.subscriptions,s)}notify(s,o,r){const c=this.subscriptions.length;if(c)if(c===1)this.subscriptions[0](s,o,r);else for(let d=0;d<c;d++){const u=this.subscriptions[d];u&&u(s,o,r)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function Ax(t,s){return s?t*(1e3/s):0}const Zy=30,l4=t=>!isNaN(parseFloat(t));class c4{constructor(s,o={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,c=!0)=>{const d=Bs.now();this.updatedAt!==d&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),c&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(s),this.owner=o.owner}setCurrent(s){this.current=s,this.updatedAt=Bs.now(),this.canTrackVelocity===null&&s!==void 0&&(this.canTrackVelocity=l4(this.current))}setPrevFrameValue(s=this.current){this.prevFrameValue=s,this.prevUpdatedAt=this.updatedAt}onChange(s){return this.on("change",s)}on(s,o){this.events[s]||(this.events[s]=new th);const r=this.events[s].add(o);return s==="change"?()=>{r(),jt.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const s in this.events)this.events[s].clear()}attach(s,o){this.passiveEffect=s,this.stopPassiveEffect=o}set(s,o=!0){!o||!this.passiveEffect?this.updateAndNotify(s,o):this.passiveEffect(s,this.updateAndNotify)}setWithVelocity(s,o,r){this.set(o),this.prev=void 0,this.prevFrameValue=s,this.prevUpdatedAt=this.updatedAt-r}jump(s,o=!0){this.updateAndNotify(s),this.prev=s,this.prevUpdatedAt=this.prevFrameValue=void 0,o&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const s=Bs.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||s-this.updatedAt>Zy)return 0;const o=Math.min(this.updatedAt-this.prevUpdatedAt,Zy);return Ax(parseFloat(this.current)-parseFloat(this.prevFrameValue),o)}start(s){return this.stop(),new Promise(o=>{this.hasAnimated=!0,this.animation=s(o),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function fl(t,s){return new c4(t,s)}function d4(t,s,o){t.hasValue(s)?t.getValue(s).set(o):t.addValue(s,fl(o))}function u4(t,s){const o=Vd(t,s);let{transitionEnd:r={},transition:c={},...d}=o||{};d={...d,...r};for(const u in d){const p=OD(d[u]);d4(t,u,p)}}function f4(t){return!!(vn(t)&&t.add)}function sm(t,s){const o=t.getValue("willChange");if(f4(o))return o.add(s)}function Dx(t){return t.props[mx]}function nh(t){let s;return()=>(s===void 0&&(s=t()),s)}const p4=nh(()=>window.ScrollTimeline!==void 0);class m4{constructor(s){this.stop=()=>this.runAll("stop"),this.animations=s.filter(Boolean)}get finished(){return Promise.all(this.animations.map(s=>"finished"in s?s.finished:s))}getAll(s){return this.animations[0][s]}setAll(s,o){for(let r=0;r<this.animations.length;r++)this.animations[r][s]=o}attachTimeline(s,o){const r=this.animations.map(c=>{if(p4()&&c.attachTimeline)return c.attachTimeline(s);if(typeof o=="function")return o(c)});return()=>{r.forEach((c,d)=>{c&&c(),this.animations[d].stop()})}}get time(){return this.getAll("time")}set time(s){this.setAll("time",s)}get speed(){return this.getAll("speed")}set speed(s){this.setAll("speed",s)}get startTime(){return this.getAll("startTime")}get duration(){let s=0;for(let o=0;o<this.animations.length;o++)s=Math.max(s,this.animations[o].duration);return s}runAll(s){this.animations.forEach(o=>o[s]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class h4 extends m4{then(s,o){return Promise.all(this.animations).then(s).catch(o)}}const ra=t=>t*1e3,la=t=>t/1e3;function sh(t){return typeof t=="function"}function Ky(t,s){t.timeline=s,t.onfinish=null}const ah=t=>Array.isArray(t)&&typeof t[0]=="number",g4={linearEasing:void 0};function v4(t,s){const o=nh(t);return()=>{var r;return(r=g4[s])!==null&&r!==void 0?r:o()}}const gd=v4(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Ho=(t,s,o)=>{const r=s-t;return r===0?1:(o-t)/r},Rx=(t,s,o=10)=>{let r="";const c=Math.max(Math.round(s/o),2);for(let d=0;d<c;d++)r+=t(Ho(0,c-1,d))+", ";return`linear(${r.substring(0,r.length-2)})`};function Mx(t){return!!(typeof t=="function"&&gd()||!t||typeof t=="string"&&(t in am||gd())||ah(t)||Array.isArray(t)&&t.every(Mx))}const Yr=([t,s,o,r])=>`cubic-bezier(${t}, ${s}, ${o}, ${r})`,am={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Yr([0,.65,.55,1]),circOut:Yr([.55,0,1,.45]),backIn:Yr([.31,.01,.66,-.59]),backOut:Yr([.33,1.53,.69,.99])};function Ix(t,s){if(t)return typeof t=="function"&&gd()?Rx(t,s):ah(t)?Yr(t):Array.isArray(t)?t.map(o=>Ix(o,s)||am.easeOut):am[t]}const Ox=(t,s,o)=>(((1-3*o+3*s)*t+(3*o-6*s))*t+3*s)*t,y4=1e-7,b4=12;function _4(t,s,o,r,c){let d,u,p=0;do u=s+(o-s)/2,d=Ox(u,r,c)-t,d>0?o=u:s=u;while(Math.abs(d)>y4&&++p<b4);return u}function xl(t,s,o,r){if(t===s&&o===r)return zn;const c=d=>_4(d,0,1,t,o);return d=>d===0||d===1?d:Ox(c(d),s,r)}const Lx=t=>s=>s<=.5?t(2*s)/2:(2-t(2*(1-s)))/2,Bx=t=>s=>1-t(1-s),$x=xl(.33,1.53,.69,.99),ih=Bx($x),zx=Lx(ih),Hx=t=>(t*=2)<1?.5*ih(t):.5*(2-Math.pow(2,-10*(t-1))),oh=t=>1-Math.sin(Math.acos(t)),Px=Bx(oh),Ux=Lx(oh),Vx=t=>/^0[^.\s]+$/u.test(t);function x4(t){return typeof t=="number"?t===0:t!==null?t==="none"||t==="0"||Vx(t):!0}const el=t=>Math.round(t*1e5)/1e5,rh=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function k4(t){return t==null}const S4=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,lh=(t,s)=>o=>!!(typeof o=="string"&&S4.test(o)&&o.startsWith(t)||s&&!k4(o)&&Object.prototype.hasOwnProperty.call(o,s)),qx=(t,s,o)=>r=>{if(typeof r!="string")return r;const[c,d,u,p]=r.match(rh);return{[t]:parseFloat(c),[s]:parseFloat(d),[o]:parseFloat(u),alpha:p!==void 0?parseFloat(p):1}},j4=t=>fa(0,255,t),jp={...Zo,transform:t=>Math.round(j4(t))},Ei={test:lh("rgb","red"),parse:qx("red","green","blue"),transform:({red:t,green:s,blue:o,alpha:r=1})=>"rgba("+jp.transform(t)+", "+jp.transform(s)+", "+jp.transform(o)+", "+el(ul.transform(r))+")"};function T4(t){let s="",o="",r="",c="";return t.length>5?(s=t.substring(1,3),o=t.substring(3,5),r=t.substring(5,7),c=t.substring(7,9)):(s=t.substring(1,2),o=t.substring(2,3),r=t.substring(3,4),c=t.substring(4,5),s+=s,o+=o,r+=r,c+=c),{red:parseInt(s,16),green:parseInt(o,16),blue:parseInt(r,16),alpha:c?parseInt(c,16)/255:1}}const im={test:lh("#"),parse:T4,transform:Ei.transform},Mo={test:lh("hsl","hue"),parse:qx("hue","saturation","lightness"),transform:({hue:t,saturation:s,lightness:o,alpha:r=1})=>"hsla("+Math.round(t)+", "+Ls.transform(el(s))+", "+Ls.transform(el(o))+", "+el(ul.transform(r))+")"},gn={test:t=>Ei.test(t)||im.test(t)||Mo.test(t),parse:t=>Ei.test(t)?Ei.parse(t):Mo.test(t)?Mo.parse(t):im.parse(t),transform:t=>typeof t=="string"?t:t.hasOwnProperty("red")?Ei.transform(t):Mo.transform(t)},w4=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function N4(t){var s,o;return isNaN(t)&&typeof t=="string"&&(((s=t.match(rh))===null||s===void 0?void 0:s.length)||0)+(((o=t.match(w4))===null||o===void 0?void 0:o.length)||0)>0}const Gx="number",Fx="color",C4="var",E4="var(",Yy="${}",A4=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function pl(t){const s=t.toString(),o=[],r={color:[],number:[],var:[]},c=[];let d=0;const p=s.replace(A4,m=>(gn.test(m)?(r.color.push(d),c.push(Fx),o.push(gn.parse(m))):m.startsWith(E4)?(r.var.push(d),c.push(C4),o.push(m)):(r.number.push(d),c.push(Gx),o.push(parseFloat(m))),++d,Yy)).split(Yy);return{values:o,split:p,indexes:r,types:c}}function Zx(t){return pl(t).values}function Kx(t){const{split:s,types:o}=pl(t),r=s.length;return c=>{let d="";for(let u=0;u<r;u++)if(d+=s[u],c[u]!==void 0){const p=o[u];p===Gx?d+=el(c[u]):p===Fx?d+=gn.transform(c[u]):d+=c[u]}return d}}const D4=t=>typeof t=="number"?0:t;function R4(t){const s=Zx(t);return Kx(t)(s.map(D4))}const Qa={test:N4,parse:Zx,createTransformer:Kx,getAnimatableNone:R4},M4=new Set(["brightness","contrast","saturate","opacity"]);function I4(t){const[s,o]=t.slice(0,-1).split("(");if(s==="drop-shadow")return t;const[r]=o.match(rh)||[];if(!r)return t;const c=o.replace(r,"");let d=M4.has(s)?1:0;return r!==o&&(d*=100),s+"("+d+c+")"}const O4=/\b([a-z-]*)\(.*?\)/gu,om={...Qa,getAnimatableNone:t=>{const s=t.match(O4);return s?s.map(I4).join(" "):t}},L4={...Fm,color:gn,backgroundColor:gn,outlineColor:gn,fill:gn,stroke:gn,borderColor:gn,borderTopColor:gn,borderRightColor:gn,borderBottomColor:gn,borderLeftColor:gn,filter:om,WebkitFilter:om},ch=t=>L4[t];function Yx(t,s){let o=ch(t);return o!==om&&(o=Qa),o.getAnimatableNone?o.getAnimatableNone(s):void 0}const B4=new Set(["auto","none","0"]);function $4(t,s,o){let r=0,c;for(;r<t.length&&!c;){const d=t[r];typeof d=="string"&&!B4.has(d)&&pl(d).values.length&&(c=t[r]),r++}if(c&&o)for(const d of s)t[d]=Yx(o,c)}const Jy=t=>t===Zo||t===De,Wy=(t,s)=>parseFloat(t.split(", ")[s]),Xy=(t,s)=>(o,{transform:r})=>{if(r==="none"||!r)return 0;const c=r.match(/^matrix3d\((.+)\)$/u);if(c)return Wy(c[1],s);{const d=r.match(/^matrix\((.+)\)$/u);return d?Wy(d[1],t):0}},z4=new Set(["x","y","z"]),H4=Fo.filter(t=>!z4.has(t));function P4(t){const s=[];return H4.forEach(o=>{const r=t.getValue(o);r!==void 0&&(s.push([o,r.get()]),r.set(o.startsWith("scale")?1:0))}),s}const Po={width:({x:t},{paddingLeft:s="0",paddingRight:o="0"})=>t.max-t.min-parseFloat(s)-parseFloat(o),height:({y:t},{paddingTop:s="0",paddingBottom:o="0"})=>t.max-t.min-parseFloat(s)-parseFloat(o),top:(t,{top:s})=>parseFloat(s),left:(t,{left:s})=>parseFloat(s),bottom:({y:t},{top:s})=>parseFloat(s)+(t.max-t.min),right:({x:t},{left:s})=>parseFloat(s)+(t.max-t.min),x:Xy(4,13),y:Xy(5,14)};Po.translateX=Po.x;Po.translateY=Po.y;const Di=new Set;let rm=!1,lm=!1;function Jx(){if(lm){const t=Array.from(Di).filter(r=>r.needsMeasurement),s=new Set(t.map(r=>r.element)),o=new Map;s.forEach(r=>{const c=P4(r);c.length&&(o.set(r,c),r.render())}),t.forEach(r=>r.measureInitialState()),s.forEach(r=>{r.render();const c=o.get(r);c&&c.forEach(([d,u])=>{var p;(p=r.getValue(d))===null||p===void 0||p.set(u)})}),t.forEach(r=>r.measureEndState()),t.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}lm=!1,rm=!1,Di.forEach(t=>t.complete()),Di.clear()}function Wx(){Di.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(lm=!0)})}function U4(){Wx(),Jx()}class dh{constructor(s,o,r,c,d,u=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...s],this.onComplete=o,this.name=r,this.motionValue=c,this.element=d,this.isAsync=u}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Di.add(this),rm||(rm=!0,jt.read(Wx),jt.resolveKeyframes(Jx))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:s,name:o,element:r,motionValue:c}=this;for(let d=0;d<s.length;d++)if(s[d]===null)if(d===0){const u=c==null?void 0:c.get(),p=s[s.length-1];if(u!==void 0)s[0]=u;else if(r&&o){const m=r.readValue(o,p);m!=null&&(s[0]=m)}s[0]===void 0&&(s[0]=p),c&&u===void 0&&c.set(s[0])}else s[d]=s[d-1]}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),Di.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,Di.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const Xx=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t),V4=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function q4(t){const s=V4.exec(t);if(!s)return[,];const[,o,r,c]=s;return[`--${o??r}`,c]}function Qx(t,s,o=1){const[r,c]=q4(t);if(!r)return;const d=window.getComputedStyle(s).getPropertyValue(r);if(d){const u=d.trim();return Xx(u)?parseFloat(u):u}return Gm(c)?Qx(c,s,o+1):c}const e1=t=>s=>s.test(t),G4={test:t=>t==="auto",parse:t=>t},t1=[Zo,De,Ls,Ya,PD,HD,G4],Qy=t=>t1.find(e1(t));class n1 extends dh{constructor(s,o,r,c,d){super(s,o,r,c,d,!0)}readKeyframes(){const{unresolvedKeyframes:s,element:o,name:r}=this;if(!o||!o.current)return;super.readKeyframes();for(let m=0;m<s.length;m++){let g=s[m];if(typeof g=="string"&&(g=g.trim(),Gm(g))){const v=Qx(g,o.current);v!==void 0&&(s[m]=v),m===s.length-1&&(this.finalKeyframe=g)}}if(this.resolveNoneKeyframes(),!Ex.has(r)||s.length!==2)return;const[c,d]=s,u=Qy(c),p=Qy(d);if(u!==p)if(Jy(u)&&Jy(p))for(let m=0;m<s.length;m++){const g=s[m];typeof g=="string"&&(s[m]=parseFloat(g))}else this.needsMeasurement=!0}resolveNoneKeyframes(){const{unresolvedKeyframes:s,name:o}=this,r=[];for(let c=0;c<s.length;c++)x4(s[c])&&r.push(c);r.length&&$4(s,r,o)}measureInitialState(){const{element:s,unresolvedKeyframes:o,name:r}=this;if(!s||!s.current)return;r==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=Po[r](s.measureViewportBox(),window.getComputedStyle(s.current)),o[0]=this.measuredOrigin;const c=o[o.length-1];c!==void 0&&s.getValue(r,c).jump(c,!1)}measureEndState(){var s;const{element:o,name:r,unresolvedKeyframes:c}=this;if(!o||!o.current)return;const d=o.getValue(r);d&&d.jump(this.measuredOrigin,!1);const u=c.length-1,p=c[u];c[u]=Po[r](o.measureViewportBox(),window.getComputedStyle(o.current)),p!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=p),!((s=this.removedTransforms)===null||s===void 0)&&s.length&&this.removedTransforms.forEach(([m,g])=>{o.getValue(m).set(g)}),this.resolveNoneKeyframes()}}const eb=(t,s)=>s==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(Qa.test(t)||t==="0")&&!t.startsWith("url("));function F4(t){const s=t[0];if(t.length===1)return!0;for(let o=0;o<t.length;o++)if(t[o]!==s)return!0}function Z4(t,s,o,r){const c=t[0];if(c===null)return!1;if(s==="display"||s==="visibility")return!0;const d=t[t.length-1],u=eb(c,s),p=eb(d,s);return!u||!p?!1:F4(t)||(o==="spring"||sh(o))&&r}const K4=t=>t!==null;function qd(t,{repeat:s,repeatType:o="loop"},r){const c=t.filter(K4),d=s&&o!=="loop"&&s%2===1?0:c.length-1;return!d||r===void 0?c[d]:r}const Y4=40;class s1{constructor({autoplay:s=!0,delay:o=0,type:r="keyframes",repeat:c=0,repeatDelay:d=0,repeatType:u="loop",...p}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Bs.now(),this.options={autoplay:s,delay:o,type:r,repeat:c,repeatDelay:d,repeatType:u,...p},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>Y4?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&U4(),this._resolved}onKeyframesResolved(s,o){this.resolvedAt=Bs.now(),this.hasAttemptedResolve=!0;const{name:r,type:c,velocity:d,delay:u,onComplete:p,onUpdate:m,isGenerator:g}=this.options;if(!g&&!Z4(s,r,c,d))if(u)this.options.duration=0;else{m&&m(qd(s,this.options,o)),p&&p(),this.resolveFinishedPromise();return}const v=this.initPlayback(s,o);v!==!1&&(this._resolved={keyframes:s,finalKeyframe:o,...v},this.onPostResolved())}onPostResolved(){}then(s,o){return this.currentFinishedPromise.then(s,o)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(s=>{this.resolveFinishedPromise=s})}}const cm=2e4;function a1(t){let s=0;const o=50;let r=t.next(s);for(;!r.done&&s<cm;)s+=o,r=t.next(s);return s>=cm?1/0:s}const Rt=(t,s,o)=>t+(s-t)*o;function Tp(t,s,o){return o<0&&(o+=1),o>1&&(o-=1),o<1/6?t+(s-t)*6*o:o<1/2?s:o<2/3?t+(s-t)*(2/3-o)*6:t}function J4({hue:t,saturation:s,lightness:o,alpha:r}){t/=360,s/=100,o/=100;let c=0,d=0,u=0;if(!s)c=d=u=o;else{const p=o<.5?o*(1+s):o+s-o*s,m=2*o-p;c=Tp(m,p,t+1/3),d=Tp(m,p,t),u=Tp(m,p,t-1/3)}return{red:Math.round(c*255),green:Math.round(d*255),blue:Math.round(u*255),alpha:r}}function vd(t,s){return o=>o>0?s:t}const wp=(t,s,o)=>{const r=t*t,c=o*(s*s-r)+r;return c<0?0:Math.sqrt(c)},W4=[im,Ei,Mo],X4=t=>W4.find(s=>s.test(t));function tb(t){const s=X4(t);if(!s)return!1;let o=s.parse(t);return s===Mo&&(o=J4(o)),o}const nb=(t,s)=>{const o=tb(t),r=tb(s);if(!o||!r)return vd(t,s);const c={...o};return d=>(c.red=wp(o.red,r.red,d),c.green=wp(o.green,r.green,d),c.blue=wp(o.blue,r.blue,d),c.alpha=Rt(o.alpha,r.alpha,d),Ei.transform(c))},Q4=(t,s)=>o=>s(t(o)),kl=(...t)=>t.reduce(Q4),dm=new Set(["none","hidden"]);function eR(t,s){return dm.has(t)?o=>o<=0?t:s:o=>o>=1?s:t}function tR(t,s){return o=>Rt(t,s,o)}function uh(t){return typeof t=="number"?tR:typeof t=="string"?Gm(t)?vd:gn.test(t)?nb:aR:Array.isArray(t)?i1:typeof t=="object"?gn.test(t)?nb:nR:vd}function i1(t,s){const o=[...t],r=o.length,c=t.map((d,u)=>uh(d)(d,s[u]));return d=>{for(let u=0;u<r;u++)o[u]=c[u](d);return o}}function nR(t,s){const o={...t,...s},r={};for(const c in o)t[c]!==void 0&&s[c]!==void 0&&(r[c]=uh(t[c])(t[c],s[c]));return c=>{for(const d in r)o[d]=r[d](c);return o}}function sR(t,s){var o;const r=[],c={color:0,var:0,number:0};for(let d=0;d<s.values.length;d++){const u=s.types[d],p=t.indexes[u][c[u]],m=(o=t.values[p])!==null&&o!==void 0?o:0;r[d]=m,c[u]++}return r}const aR=(t,s)=>{const o=Qa.createTransformer(s),r=pl(t),c=pl(s);return r.indexes.var.length===c.indexes.var.length&&r.indexes.color.length===c.indexes.color.length&&r.indexes.number.length>=c.indexes.number.length?dm.has(t)&&!c.values.length||dm.has(s)&&!r.values.length?eR(t,s):kl(i1(sR(r,c),c.values),o):vd(t,s)};function o1(t,s,o){return typeof t=="number"&&typeof s=="number"&&typeof o=="number"?Rt(t,s,o):uh(t)(t,s)}const iR=5;function r1(t,s,o){const r=Math.max(s-iR,0);return Ax(o-t(r),s-r)}const Ot={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},Np=.001;function oR({duration:t=Ot.duration,bounce:s=Ot.bounce,velocity:o=Ot.velocity,mass:r=Ot.mass}){let c,d,u=1-s;u=fa(Ot.minDamping,Ot.maxDamping,u),t=fa(Ot.minDuration,Ot.maxDuration,la(t)),u<1?(c=g=>{const v=g*u,_=v*t,b=v-o,x=um(g,u),S=Math.exp(-_);return Np-b/x*S},d=g=>{const _=g*u*t,b=_*o+o,x=Math.pow(u,2)*Math.pow(g,2)*t,S=Math.exp(-_),j=um(Math.pow(g,2),u);return(-c(g)+Np>0?-1:1)*((b-x)*S)/j}):(c=g=>{const v=Math.exp(-g*t),_=(g-o)*t+1;return-Np+v*_},d=g=>{const v=Math.exp(-g*t),_=(o-g)*(t*t);return v*_});const p=5/t,m=lR(c,d,p);if(t=ra(t),isNaN(m))return{stiffness:Ot.stiffness,damping:Ot.damping,duration:t};{const g=Math.pow(m,2)*r;return{stiffness:g,damping:u*2*Math.sqrt(r*g),duration:t}}}const rR=12;function lR(t,s,o){let r=o;for(let c=1;c<rR;c++)r=r-t(r)/s(r);return r}function um(t,s){return t*Math.sqrt(1-s*s)}const cR=["duration","bounce"],dR=["stiffness","damping","mass"];function sb(t,s){return s.some(o=>t[o]!==void 0)}function uR(t){let s={velocity:Ot.velocity,stiffness:Ot.stiffness,damping:Ot.damping,mass:Ot.mass,isResolvedFromDuration:!1,...t};if(!sb(t,dR)&&sb(t,cR))if(t.visualDuration){const o=t.visualDuration,r=2*Math.PI/(o*1.2),c=r*r,d=2*fa(.05,1,1-(t.bounce||0))*Math.sqrt(c);s={...s,mass:Ot.mass,stiffness:c,damping:d}}else{const o=oR(t);s={...s,...o,mass:Ot.mass},s.isResolvedFromDuration=!0}return s}function l1(t=Ot.visualDuration,s=Ot.bounce){const o=typeof t!="object"?{visualDuration:t,keyframes:[0,1],bounce:s}:t;let{restSpeed:r,restDelta:c}=o;const d=o.keyframes[0],u=o.keyframes[o.keyframes.length-1],p={done:!1,value:d},{stiffness:m,damping:g,mass:v,duration:_,velocity:b,isResolvedFromDuration:x}=uR({...o,velocity:-la(o.velocity||0)}),S=b||0,j=g/(2*Math.sqrt(m*v)),w=u-d,T=la(Math.sqrt(m/v)),C=Math.abs(w)<5;r||(r=C?Ot.restSpeed.granular:Ot.restSpeed.default),c||(c=C?Ot.restDelta.granular:Ot.restDelta.default);let A;if(j<1){const E=um(T,j);A=M=>{const H=Math.exp(-j*T*M);return u-H*((S+j*T*w)/E*Math.sin(E*M)+w*Math.cos(E*M))}}else if(j===1)A=E=>u-Math.exp(-T*E)*(w+(S+T*w)*E);else{const E=T*Math.sqrt(j*j-1);A=M=>{const H=Math.exp(-j*T*M),D=Math.min(E*M,300);return u-H*((S+j*T*w)*Math.sinh(D)+E*w*Math.cosh(D))/E}}const L={calculatedDuration:x&&_||null,next:E=>{const M=A(E);if(x)p.done=E>=_;else{let H=0;j<1&&(H=E===0?ra(S):r1(A,E,M));const D=Math.abs(H)<=r,z=Math.abs(u-M)<=c;p.done=D&&z}return p.value=p.done?u:M,p},toString:()=>{const E=Math.min(a1(L),cm),M=Rx(H=>L.next(E*H).value,E,30);return E+"ms "+M}};return L}function ab({keyframes:t,velocity:s=0,power:o=.8,timeConstant:r=325,bounceDamping:c=10,bounceStiffness:d=500,modifyTarget:u,min:p,max:m,restDelta:g=.5,restSpeed:v}){const _=t[0],b={done:!1,value:_},x=D=>p!==void 0&&D<p||m!==void 0&&D>m,S=D=>p===void 0?m:m===void 0||Math.abs(p-D)<Math.abs(m-D)?p:m;let j=o*s;const w=_+j,T=u===void 0?w:u(w);T!==w&&(j=T-_);const C=D=>-j*Math.exp(-D/r),A=D=>T+C(D),L=D=>{const z=C(D),Y=A(D);b.done=Math.abs(z)<=g,b.value=b.done?T:Y};let E,M;const H=D=>{x(b.value)&&(E=D,M=l1({keyframes:[b.value,S(b.value)],velocity:r1(A,D,b.value),damping:c,stiffness:d,restDelta:g,restSpeed:v}))};return H(0),{calculatedDuration:null,next:D=>{let z=!1;return!M&&E===void 0&&(z=!0,L(D),H(D)),E!==void 0&&D>=E?M.next(D-E):(!z&&L(D),b)}}}const fR=xl(.42,0,1,1),pR=xl(0,0,.58,1),c1=xl(.42,0,.58,1),mR=t=>Array.isArray(t)&&typeof t[0]!="number",hR={linear:zn,easeIn:fR,easeInOut:c1,easeOut:pR,circIn:oh,circInOut:Ux,circOut:Px,backIn:ih,backInOut:zx,backOut:$x,anticipate:Hx},ib=t=>{if(ah(t)){cx(t.length===4);const[s,o,r,c]=t;return xl(s,o,r,c)}else if(typeof t=="string")return hR[t];return t};function gR(t,s,o){const r=[],c=o||o1,d=t.length-1;for(let u=0;u<d;u++){let p=c(t[u],t[u+1]);if(s){const m=Array.isArray(s)?s[u]||zn:s;p=kl(m,p)}r.push(p)}return r}function vR(t,s,{clamp:o=!0,ease:r,mixer:c}={}){const d=t.length;if(cx(d===s.length),d===1)return()=>s[0];if(d===2&&s[0]===s[1])return()=>s[1];const u=t[0]===t[1];t[0]>t[d-1]&&(t=[...t].reverse(),s=[...s].reverse());const p=gR(s,r,c),m=p.length,g=v=>{if(u&&v<t[0])return s[0];let _=0;if(m>1)for(;_<t.length-2&&!(v<t[_+1]);_++);const b=Ho(t[_],t[_+1],v);return p[_](b)};return o?v=>g(fa(t[0],t[d-1],v)):g}function yR(t,s){const o=t[t.length-1];for(let r=1;r<=s;r++){const c=Ho(0,s,r);t.push(Rt(o,1,c))}}function bR(t){const s=[0];return yR(s,t.length-1),s}function _R(t,s){return t.map(o=>o*s)}function xR(t,s){return t.map(()=>s||c1).splice(0,t.length-1)}function yd({duration:t=300,keyframes:s,times:o,ease:r="easeInOut"}){const c=mR(r)?r.map(ib):ib(r),d={done:!1,value:s[0]},u=_R(o&&o.length===s.length?o:bR(s),t),p=vR(u,s,{ease:Array.isArray(c)?c:xR(s,c)});return{calculatedDuration:t,next:m=>(d.value=p(m),d.done=m>=t,d)}}const kR=t=>{const s=({timestamp:o})=>t(o);return{start:()=>jt.update(s,!0),stop:()=>Xa(s),now:()=>pn.isProcessing?pn.timestamp:Bs.now()}},SR={decay:ab,inertia:ab,tween:yd,keyframes:yd,spring:l1},jR=t=>t/100;class fh extends s1{constructor(s){super(s),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:m}=this.options;m&&m()};const{name:o,motionValue:r,element:c,keyframes:d}=this.options,u=(c==null?void 0:c.KeyframeResolver)||dh,p=(m,g)=>this.onKeyframesResolved(m,g);this.resolver=new u(d,p,o,r,c),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(s){const{type:o="keyframes",repeat:r=0,repeatDelay:c=0,repeatType:d,velocity:u=0}=this.options,p=sh(o)?o:SR[o]||yd;let m,g;p!==yd&&typeof s[0]!="number"&&(m=kl(jR,o1(s[0],s[1])),s=[0,100]);const v=p({...this.options,keyframes:s});d==="mirror"&&(g=p({...this.options,keyframes:[...s].reverse(),velocity:-u})),v.calculatedDuration===null&&(v.calculatedDuration=a1(v));const{calculatedDuration:_}=v,b=_+c,x=b*(r+1)-c;return{generator:v,mirroredGenerator:g,mapPercentToKeyframes:m,calculatedDuration:_,resolvedDuration:b,totalDuration:x}}onPostResolved(){const{autoplay:s=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!s?this.pause():this.state=this.pendingPlayState}tick(s,o=!1){const{resolved:r}=this;if(!r){const{keyframes:D}=this.options;return{done:!0,value:D[D.length-1]}}const{finalKeyframe:c,generator:d,mirroredGenerator:u,mapPercentToKeyframes:p,keyframes:m,calculatedDuration:g,totalDuration:v,resolvedDuration:_}=r;if(this.startTime===null)return d.next(0);const{delay:b,repeat:x,repeatType:S,repeatDelay:j,onUpdate:w}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,s):this.speed<0&&(this.startTime=Math.min(s-v/this.speed,this.startTime)),o?this.currentTime=s:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(s-this.startTime)*this.speed;const T=this.currentTime-b*(this.speed>=0?1:-1),C=this.speed>=0?T<0:T>v;this.currentTime=Math.max(T,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=v);let A=this.currentTime,L=d;if(x){const D=Math.min(this.currentTime,v)/_;let z=Math.floor(D),Y=D%1;!Y&&D>=1&&(Y=1),Y===1&&z--,z=Math.min(z,x+1),!!(z%2)&&(S==="reverse"?(Y=1-Y,j&&(Y-=j/_)):S==="mirror"&&(L=u)),A=fa(0,1,Y)*_}const E=C?{done:!1,value:m[0]}:L.next(A);p&&(E.value=p(E.value));let{done:M}=E;!C&&g!==null&&(M=this.speed>=0?this.currentTime>=v:this.currentTime<=0);const H=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&M);return H&&c!==void 0&&(E.value=qd(m,this.options,c)),w&&w(E.value),H&&this.finish(),E}get duration(){const{resolved:s}=this;return s?la(s.calculatedDuration):0}get time(){return la(this.currentTime)}set time(s){s=ra(s),this.currentTime=s,this.holdTime!==null||this.speed===0?this.holdTime=s:this.driver&&(this.startTime=this.driver.now()-s/this.speed)}get speed(){return this.playbackSpeed}set speed(s){const o=this.playbackSpeed!==s;this.playbackSpeed=s,o&&(this.time=la(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:s=kR,onPlay:o,startTime:r}=this.options;this.driver||(this.driver=s(d=>this.tick(d))),o&&o();const c=this.driver.now();this.holdTime!==null?this.startTime=c-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=c):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var s;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(s=this.currentTime)!==null&&s!==void 0?s:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:s}=this.options;s&&s()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(s){return this.startTime=0,this.tick(s,!0)}}const TR=new Set(["opacity","clipPath","filter","transform"]);function wR(t,s,o,{delay:r=0,duration:c=300,repeat:d=0,repeatType:u="loop",ease:p="easeInOut",times:m}={}){const g={[s]:o};m&&(g.offset=m);const v=Ix(p,c);return Array.isArray(v)&&(g.easing=v),t.animate(g,{delay:r,duration:c,easing:Array.isArray(v)?"linear":v,fill:"both",iterations:d+1,direction:u==="reverse"?"alternate":"normal"})}const NR=nh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),bd=10,CR=2e4;function ER(t){return sh(t.type)||t.type==="spring"||!Mx(t.ease)}function AR(t,s){const o=new fh({...s,keyframes:t,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:t[0]};const c=[];let d=0;for(;!r.done&&d<CR;)r=o.sample(d),c.push(r.value),d+=bd;return{times:void 0,keyframes:c,duration:d-bd,ease:"linear"}}const d1={anticipate:Hx,backInOut:zx,circInOut:Ux};function DR(t){return t in d1}class ob extends s1{constructor(s){super(s);const{name:o,motionValue:r,element:c,keyframes:d}=this.options;this.resolver=new n1(d,(u,p)=>this.onKeyframesResolved(u,p),o,r,c),this.resolver.scheduleResolve()}initPlayback(s,o){let{duration:r=300,times:c,ease:d,type:u,motionValue:p,name:m,startTime:g}=this.options;if(!p.owner||!p.owner.current)return!1;if(typeof d=="string"&&gd()&&DR(d)&&(d=d1[d]),ER(this.options)){const{onComplete:_,onUpdate:b,motionValue:x,element:S,...j}=this.options,w=AR(s,j);s=w.keyframes,s.length===1&&(s[1]=s[0]),r=w.duration,c=w.times,d=w.ease,u="keyframes"}const v=wR(p.owner.current,m,s,{...this.options,duration:r,times:c,ease:d});return v.startTime=g??this.calcStartTime(),this.pendingTimeline?(Ky(v,this.pendingTimeline),this.pendingTimeline=void 0):v.onfinish=()=>{const{onComplete:_}=this.options;p.set(qd(s,this.options,o)),_&&_(),this.cancel(),this.resolveFinishedPromise()},{animation:v,duration:r,times:c,type:u,ease:d,keyframes:s}}get duration(){const{resolved:s}=this;if(!s)return 0;const{duration:o}=s;return la(o)}get time(){const{resolved:s}=this;if(!s)return 0;const{animation:o}=s;return la(o.currentTime||0)}set time(s){const{resolved:o}=this;if(!o)return;const{animation:r}=o;r.currentTime=ra(s)}get speed(){const{resolved:s}=this;if(!s)return 1;const{animation:o}=s;return o.playbackRate}set speed(s){const{resolved:o}=this;if(!o)return;const{animation:r}=o;r.playbackRate=s}get state(){const{resolved:s}=this;if(!s)return"idle";const{animation:o}=s;return o.playState}get startTime(){const{resolved:s}=this;if(!s)return null;const{animation:o}=s;return o.startTime}attachTimeline(s){if(!this._resolved)this.pendingTimeline=s;else{const{resolved:o}=this;if(!o)return zn;const{animation:r}=o;Ky(r,s)}return zn}play(){if(this.isStopped)return;const{resolved:s}=this;if(!s)return;const{animation:o}=s;o.playState==="finished"&&this.updateFinishedPromise(),o.play()}pause(){const{resolved:s}=this;if(!s)return;const{animation:o}=s;o.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:s}=this;if(!s)return;const{animation:o,keyframes:r,duration:c,type:d,ease:u,times:p}=s;if(o.playState==="idle"||o.playState==="finished")return;if(this.time){const{motionValue:g,onUpdate:v,onComplete:_,element:b,...x}=this.options,S=new fh({...x,keyframes:r,duration:c,type:d,ease:u,times:p,isGenerator:!0}),j=ra(this.time);g.setWithVelocity(S.sample(j-bd).value,S.sample(j).value,bd)}const{onStop:m}=this.options;m&&m(),this.cancel()}complete(){const{resolved:s}=this;s&&s.animation.finish()}cancel(){const{resolved:s}=this;s&&s.animation.cancel()}static supports(s){const{motionValue:o,name:r,repeatDelay:c,repeatType:d,damping:u,type:p}=s;if(!o||!o.owner||!(o.owner.current instanceof HTMLElement))return!1;const{onUpdate:m,transformTemplate:g}=o.owner.getProps();return NR()&&r&&TR.has(r)&&!m&&!g&&!c&&d!=="mirror"&&u!==0&&p!=="inertia"}}const RR={type:"spring",stiffness:500,damping:25,restSpeed:10},MR=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),IR={type:"keyframes",duration:.8},OR={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},LR=(t,{keyframes:s})=>s.length>2?IR:zi.has(t)?t.startsWith("scale")?MR(s[1]):RR:OR;function BR({when:t,delay:s,delayChildren:o,staggerChildren:r,staggerDirection:c,repeat:d,repeatType:u,repeatDelay:p,from:m,elapsed:g,...v}){return!!Object.keys(v).length}const ph=(t,s,o,r={},c,d)=>u=>{const p=Xm(r,t)||{},m=p.delay||r.delay||0;let{elapsed:g=0}=r;g=g-ra(m);let v={keyframes:Array.isArray(o)?o:[null,o],ease:"easeOut",velocity:s.getVelocity(),...p,delay:-g,onUpdate:b=>{s.set(b),p.onUpdate&&p.onUpdate(b)},onComplete:()=>{u(),p.onComplete&&p.onComplete()},name:t,motionValue:s,element:d?void 0:c};BR(p)||(v={...v,...LR(t,v)}),v.duration&&(v.duration=ra(v.duration)),v.repeatDelay&&(v.repeatDelay=ra(v.repeatDelay)),v.from!==void 0&&(v.keyframes[0]=v.from);let _=!1;if((v.type===!1||v.duration===0&&!v.repeatDelay)&&(v.duration=0,v.delay===0&&(_=!0)),_&&!d&&s.get()!==void 0){const b=qd(v.keyframes,p);if(b!==void 0)return jt.update(()=>{v.onUpdate(b),v.onComplete()}),new h4([])}return!d&&ob.supports(v)?new ob(v):new fh(v)};function $R({protectedKeys:t,needsAnimating:s},o){const r=t.hasOwnProperty(o)&&s[o]!==!0;return s[o]=!1,r}function u1(t,s,{delay:o=0,transitionOverride:r,type:c}={}){var d;let{transition:u=t.getDefaultTransition(),transitionEnd:p,...m}=s;r&&(u=r);const g=[],v=c&&t.animationState&&t.animationState.getState()[c];for(const _ in m){const b=t.getValue(_,(d=t.latestValues[_])!==null&&d!==void 0?d:null),x=m[_];if(x===void 0||v&&$R(v,_))continue;const S={delay:o,...Xm(u||{},_)};let j=!1;if(window.MotionHandoffAnimation){const T=Dx(t);if(T){const C=window.MotionHandoffAnimation(T,_,jt);C!==null&&(S.startTime=C,j=!0)}}sm(t,_),b.start(ph(_,b,x,t.shouldReduceMotion&&Ex.has(_)?{type:!1}:S,t,j));const w=b.animation;w&&g.push(w)}return p&&Promise.all(g).then(()=>{jt.update(()=>{p&&u4(t,p)})}),g}function fm(t,s,o={}){var r;const c=Vd(t,s,o.type==="exit"?(r=t.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:d=t.getDefaultTransition()||{}}=c||{};o.transitionOverride&&(d=o.transitionOverride);const u=c?()=>Promise.all(u1(t,c,o)):()=>Promise.resolve(),p=t.variantChildren&&t.variantChildren.size?(g=0)=>{const{delayChildren:v=0,staggerChildren:_,staggerDirection:b}=d;return zR(t,s,v+g,_,b,o)}:()=>Promise.resolve(),{when:m}=d;if(m){const[g,v]=m==="beforeChildren"?[u,p]:[p,u];return g().then(()=>v())}else return Promise.all([u(),p(o.delay)])}function zR(t,s,o=0,r=0,c=1,d){const u=[],p=(t.variantChildren.size-1)*r,m=c===1?(g=0)=>g*r:(g=0)=>p-g*r;return Array.from(t.variantChildren).sort(HR).forEach((g,v)=>{g.notify("AnimationStart",s),u.push(fm(g,s,{...d,delay:o+m(v)}).then(()=>g.notify("AnimationComplete",s)))}),Promise.all(u)}function HR(t,s){return t.sortNodePosition(s)}function PR(t,s,o={}){t.notify("AnimationStart",s);let r;if(Array.isArray(s)){const c=s.map(d=>fm(t,d,o));r=Promise.all(c)}else if(typeof s=="string")r=fm(t,s,o);else{const c=typeof s=="function"?Vd(t,s,o.custom):s;r=Promise.all(u1(t,c,o))}return r.then(()=>{t.notify("AnimationComplete",s)})}const UR=Hm.length;function f1(t){if(!t)return;if(!t.isControllingVariants){const o=t.parent?f1(t.parent)||{}:{};return t.props.initial!==void 0&&(o.initial=t.props.initial),o}const s={};for(let o=0;o<UR;o++){const r=Hm[o],c=t.props[r];(dl(c)||c===!1)&&(s[r]=c)}return s}const VR=[...zm].reverse(),qR=zm.length;function GR(t){return s=>Promise.all(s.map(({animation:o,options:r})=>PR(t,o,r)))}function FR(t){let s=GR(t),o=rb(),r=!0;const c=m=>(g,v)=>{var _;const b=Vd(t,v,m==="exit"?(_=t.presenceContext)===null||_===void 0?void 0:_.custom:void 0);if(b){const{transition:x,transitionEnd:S,...j}=b;g={...g,...j,...S}}return g};function d(m){s=m(t)}function u(m){const{props:g}=t,v=f1(t.parent)||{},_=[],b=new Set;let x={},S=1/0;for(let w=0;w<qR;w++){const T=VR[w],C=o[T],A=g[T]!==void 0?g[T]:v[T],L=dl(A),E=T===m?C.isActive:null;E===!1&&(S=w);let M=A===v[T]&&A!==g[T]&&L;if(M&&r&&t.manuallyAnimateOnMount&&(M=!1),C.protectedKeys={...x},!C.isActive&&E===null||!A&&!C.prevProp||Pd(A)||typeof A=="boolean")continue;const H=ZR(C.prevProp,A);let D=H||T===m&&C.isActive&&!M&&L||w>S&&L,z=!1;const Y=Array.isArray(A)?A:[A];let V=Y.reduce(c(T),{});E===!1&&(V={});const{prevResolvedValues:Q={}}=C,ge={...Q,...V},X=R=>{D=!0,b.has(R)&&(z=!0,b.delete(R)),C.needsAnimating[R]=!0;const Z=t.getValue(R);Z&&(Z.liveStyle=!1)};for(const R in ge){const Z=V[R],me=Q[R];if(x.hasOwnProperty(R))continue;let q=!1;nm(Z)&&nm(me)?q=!Cx(Z,me):q=Z!==me,q?Z!=null?X(R):b.add(R):Z!==void 0&&b.has(R)?X(R):C.protectedKeys[R]=!0}C.prevProp=A,C.prevResolvedValues=V,C.isActive&&(x={...x,...V}),r&&t.blockInitialAnimation&&(D=!1),D&&(!(M&&H)||z)&&_.push(...Y.map(R=>({animation:R,options:{type:T}})))}if(b.size){const w={};b.forEach(T=>{const C=t.getBaseTarget(T),A=t.getValue(T);A&&(A.liveStyle=!0),w[T]=C??null}),_.push({animation:w})}let j=!!_.length;return r&&(g.initial===!1||g.initial===g.animate)&&!t.manuallyAnimateOnMount&&(j=!1),r=!1,j?s(_):Promise.resolve()}function p(m,g){var v;if(o[m].isActive===g)return Promise.resolve();(v=t.variantChildren)===null||v===void 0||v.forEach(b=>{var x;return(x=b.animationState)===null||x===void 0?void 0:x.setActive(m,g)}),o[m].isActive=g;const _=u(m);for(const b in o)o[b].protectedKeys={};return _}return{animateChanges:u,setActive:p,setAnimateFunction:d,getState:()=>o,reset:()=>{o=rb(),r=!0}}}function ZR(t,s){return typeof s=="string"?s!==t:Array.isArray(s)?!Cx(s,t):!1}function ji(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function rb(){return{animate:ji(!0),whileInView:ji(),whileHover:ji(),whileTap:ji(),whileDrag:ji(),whileFocus:ji(),exit:ji()}}class ei{constructor(s){this.isMounted=!1,this.node=s}update(){}}class KR extends ei{constructor(s){super(s),s.animationState||(s.animationState=FR(s))}updateAnimationControlsSubscription(){const{animate:s}=this.node.getProps();Pd(s)&&(this.unmountControls=s.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:s}=this.node.getProps(),{animate:o}=this.node.prevProps||{};s!==o&&this.updateAnimationControlsSubscription()}unmount(){var s;this.node.animationState.reset(),(s=this.unmountControls)===null||s===void 0||s.call(this)}}let YR=0;class JR extends ei{constructor(){super(...arguments),this.id=YR++}update(){if(!this.node.presenceContext)return;const{isPresent:s,onExitComplete:o}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||s===r)return;const c=this.node.animationState.setActive("exit",!s);o&&!s&&c.then(()=>o(this.id))}mount(){const{register:s}=this.node.presenceContext||{};s&&(this.unmount=s(this.id))}unmount(){}}const WR={animation:{Feature:KR},exit:{Feature:JR}},xs={x:!1,y:!1};function p1(){return xs.x||xs.y}function XR(t){return t==="x"||t==="y"?xs[t]?null:(xs[t]=!0,()=>{xs[t]=!1}):xs.x||xs.y?null:(xs.x=xs.y=!0,()=>{xs.x=xs.y=!1})}const mh=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1;function ml(t,s,o,r={passive:!0}){return t.addEventListener(s,o,r),()=>t.removeEventListener(s,o)}function Sl(t){return{point:{x:t.pageX,y:t.pageY}}}const QR=t=>s=>mh(s)&&t(s,Sl(s));function tl(t,s,o,r){return ml(t,s,QR(o),r)}const lb=(t,s)=>Math.abs(t-s);function eM(t,s){const o=lb(t.x,s.x),r=lb(t.y,s.y);return Math.sqrt(o**2+r**2)}class m1{constructor(s,o,{transformPagePoint:r,contextWindow:c,dragSnapToOrigin:d=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const _=Ep(this.lastMoveEventInfo,this.history),b=this.startEvent!==null,x=eM(_.offset,{x:0,y:0})>=3;if(!b&&!x)return;const{point:S}=_,{timestamp:j}=pn;this.history.push({...S,timestamp:j});const{onStart:w,onMove:T}=this.handlers;b||(w&&w(this.lastMoveEvent,_),this.startEvent=this.lastMoveEvent),T&&T(this.lastMoveEvent,_)},this.handlePointerMove=(_,b)=>{this.lastMoveEvent=_,this.lastMoveEventInfo=Cp(b,this.transformPagePoint),jt.update(this.updatePoint,!0)},this.handlePointerUp=(_,b)=>{this.end();const{onEnd:x,onSessionEnd:S,resumeAnimation:j}=this.handlers;if(this.dragSnapToOrigin&&j&&j(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const w=Ep(_.type==="pointercancel"?this.lastMoveEventInfo:Cp(b,this.transformPagePoint),this.history);this.startEvent&&x&&x(_,w),S&&S(_,w)},!mh(s))return;this.dragSnapToOrigin=d,this.handlers=o,this.transformPagePoint=r,this.contextWindow=c||window;const u=Sl(s),p=Cp(u,this.transformPagePoint),{point:m}=p,{timestamp:g}=pn;this.history=[{...m,timestamp:g}];const{onSessionStart:v}=o;v&&v(s,Ep(p,this.history)),this.removeListeners=kl(tl(this.contextWindow,"pointermove",this.handlePointerMove),tl(this.contextWindow,"pointerup",this.handlePointerUp),tl(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(s){this.handlers=s}end(){this.removeListeners&&this.removeListeners(),Xa(this.updatePoint)}}function Cp(t,s){return s?{point:s(t.point)}:t}function cb(t,s){return{x:t.x-s.x,y:t.y-s.y}}function Ep({point:t},s){return{point:t,delta:cb(t,h1(s)),offset:cb(t,tM(s)),velocity:nM(s,.1)}}function tM(t){return t[0]}function h1(t){return t[t.length-1]}function nM(t,s){if(t.length<2)return{x:0,y:0};let o=t.length-1,r=null;const c=h1(t);for(;o>=0&&(r=t[o],!(c.timestamp-r.timestamp>ra(s)));)o--;if(!r)return{x:0,y:0};const d=la(c.timestamp-r.timestamp);if(d===0)return{x:0,y:0};const u={x:(c.x-r.x)/d,y:(c.y-r.y)/d};return u.x===1/0&&(u.x=0),u.y===1/0&&(u.y=0),u}const g1=1e-4,sM=1-g1,aM=1+g1,v1=.01,iM=0-v1,oM=0+v1;function Pn(t){return t.max-t.min}function rM(t,s,o){return Math.abs(t-s)<=o}function db(t,s,o,r=.5){t.origin=r,t.originPoint=Rt(s.min,s.max,t.origin),t.scale=Pn(o)/Pn(s),t.translate=Rt(o.min,o.max,t.origin)-t.originPoint,(t.scale>=sM&&t.scale<=aM||isNaN(t.scale))&&(t.scale=1),(t.translate>=iM&&t.translate<=oM||isNaN(t.translate))&&(t.translate=0)}function nl(t,s,o,r){db(t.x,s.x,o.x,r?r.originX:void 0),db(t.y,s.y,o.y,r?r.originY:void 0)}function ub(t,s,o){t.min=o.min+s.min,t.max=t.min+Pn(s)}function lM(t,s,o){ub(t.x,s.x,o.x),ub(t.y,s.y,o.y)}function fb(t,s,o){t.min=s.min-o.min,t.max=t.min+Pn(s)}function sl(t,s,o){fb(t.x,s.x,o.x),fb(t.y,s.y,o.y)}function cM(t,{min:s,max:o},r){return s!==void 0&&t<s?t=r?Rt(s,t,r.min):Math.max(t,s):o!==void 0&&t>o&&(t=r?Rt(o,t,r.max):Math.min(t,o)),t}function pb(t,s,o){return{min:s!==void 0?t.min+s:void 0,max:o!==void 0?t.max+o-(t.max-t.min):void 0}}function dM(t,{top:s,left:o,bottom:r,right:c}){return{x:pb(t.x,o,c),y:pb(t.y,s,r)}}function mb(t,s){let o=s.min-t.min,r=s.max-t.max;return s.max-s.min<t.max-t.min&&([o,r]=[r,o]),{min:o,max:r}}function uM(t,s){return{x:mb(t.x,s.x),y:mb(t.y,s.y)}}function fM(t,s){let o=.5;const r=Pn(t),c=Pn(s);return c>r?o=Ho(s.min,s.max-r,t.min):r>c&&(o=Ho(t.min,t.max-c,s.min)),fa(0,1,o)}function pM(t,s){const o={};return s.min!==void 0&&(o.min=s.min-t.min),s.max!==void 0&&(o.max=s.max-t.min),o}const pm=.35;function mM(t=pm){return t===!1?t=0:t===!0&&(t=pm),{x:hb(t,"left","right"),y:hb(t,"top","bottom")}}function hb(t,s,o){return{min:gb(t,s),max:gb(t,o)}}function gb(t,s){return typeof t=="number"?t:t[s]||0}const vb=()=>({translate:0,scale:1,origin:0,originPoint:0}),Io=()=>({x:vb(),y:vb()}),yb=()=>({min:0,max:0}),Ht=()=>({x:yb(),y:yb()});function os(t){return[t("x"),t("y")]}function y1({top:t,left:s,right:o,bottom:r}){return{x:{min:s,max:o},y:{min:t,max:r}}}function hM({x:t,y:s}){return{top:s.min,right:t.max,bottom:s.max,left:t.min}}function gM(t,s){if(!s)return t;const o=s({x:t.left,y:t.top}),r=s({x:t.right,y:t.bottom});return{top:o.y,left:o.x,bottom:r.y,right:r.x}}function Ap(t){return t===void 0||t===1}function mm({scale:t,scaleX:s,scaleY:o}){return!Ap(t)||!Ap(s)||!Ap(o)}function Ni(t){return mm(t)||b1(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function b1(t){return bb(t.x)||bb(t.y)}function bb(t){return t&&t!=="0%"}function _d(t,s,o){const r=t-o,c=s*r;return o+c}function _b(t,s,o,r,c){return c!==void 0&&(t=_d(t,c,r)),_d(t,o,r)+s}function hm(t,s=0,o=1,r,c){t.min=_b(t.min,s,o,r,c),t.max=_b(t.max,s,o,r,c)}function _1(t,{x:s,y:o}){hm(t.x,s.translate,s.scale,s.originPoint),hm(t.y,o.translate,o.scale,o.originPoint)}const xb=.999999999999,kb=1.0000000000001;function vM(t,s,o,r=!1){const c=o.length;if(!c)return;s.x=s.y=1;let d,u;for(let p=0;p<c;p++){d=o[p],u=d.projectionDelta;const{visualElement:m}=d.options;m&&m.props.style&&m.props.style.display==="contents"||(r&&d.options.layoutScroll&&d.scroll&&d!==d.root&&Lo(t,{x:-d.scroll.offset.x,y:-d.scroll.offset.y}),u&&(s.x*=u.x.scale,s.y*=u.y.scale,_1(t,u)),r&&Ni(d.latestValues)&&Lo(t,d.latestValues))}s.x<kb&&s.x>xb&&(s.x=1),s.y<kb&&s.y>xb&&(s.y=1)}function Oo(t,s){t.min=t.min+s,t.max=t.max+s}function Sb(t,s,o,r,c=.5){const d=Rt(t.min,t.max,c);hm(t,s,o,d,r)}function Lo(t,s){Sb(t.x,s.x,s.scaleX,s.scale,s.originX),Sb(t.y,s.y,s.scaleY,s.scale,s.originY)}function x1(t,s){return y1(gM(t.getBoundingClientRect(),s))}function yM(t,s,o){const r=x1(t,o),{scroll:c}=s;return c&&(Oo(r.x,c.offset.x),Oo(r.y,c.offset.y)),r}const k1=({current:t})=>t?t.ownerDocument.defaultView:null,bM=new WeakMap;class _M{constructor(s){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Ht(),this.visualElement=s}start(s,{snapToCursor:o=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const c=v=>{const{dragSnapToOrigin:_}=this.getProps();_?this.pauseAnimation():this.stopAnimation(),o&&this.snapToCursor(Sl(v).point)},d=(v,_)=>{const{drag:b,dragPropagation:x,onDragStart:S}=this.getProps();if(b&&!x&&(this.openDragLock&&this.openDragLock(),this.openDragLock=XR(b),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),os(w=>{let T=this.getAxisMotionValue(w).get()||0;if(Ls.test(T)){const{projection:C}=this.visualElement;if(C&&C.layout){const A=C.layout.layoutBox[w];A&&(T=Pn(A)*(parseFloat(T)/100))}}this.originPoint[w]=T}),S&&jt.postRender(()=>S(v,_)),sm(this.visualElement,"transform");const{animationState:j}=this.visualElement;j&&j.setActive("whileDrag",!0)},u=(v,_)=>{const{dragPropagation:b,dragDirectionLock:x,onDirectionLock:S,onDrag:j}=this.getProps();if(!b&&!this.openDragLock)return;const{offset:w}=_;if(x&&this.currentDirection===null){this.currentDirection=xM(w),this.currentDirection!==null&&S&&S(this.currentDirection);return}this.updateAxis("x",_.point,w),this.updateAxis("y",_.point,w),this.visualElement.render(),j&&j(v,_)},p=(v,_)=>this.stop(v,_),m=()=>os(v=>{var _;return this.getAnimationState(v)==="paused"&&((_=this.getAxisMotionValue(v).animation)===null||_===void 0?void 0:_.play())}),{dragSnapToOrigin:g}=this.getProps();this.panSession=new m1(s,{onSessionStart:c,onStart:d,onMove:u,onSessionEnd:p,resumeAnimation:m},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:g,contextWindow:k1(this.visualElement)})}stop(s,o){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:c}=o;this.startAnimation(c);const{onDragEnd:d}=this.getProps();d&&jt.postRender(()=>d(s,o))}cancel(){this.isDragging=!1;const{projection:s,animationState:o}=this.visualElement;s&&(s.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),o&&o.setActive("whileDrag",!1)}updateAxis(s,o,r){const{drag:c}=this.getProps();if(!r||!Zc(s,c,this.currentDirection))return;const d=this.getAxisMotionValue(s);let u=this.originPoint[s]+r[s];this.constraints&&this.constraints[s]&&(u=cM(u,this.constraints[s],this.elastic[s])),d.set(u)}resolveConstraints(){var s;const{dragConstraints:o,dragElastic:r}=this.getProps(),c=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(s=this.visualElement.projection)===null||s===void 0?void 0:s.layout,d=this.constraints;o&&Ro(o)?this.constraints||(this.constraints=this.resolveRefConstraints()):o&&c?this.constraints=dM(c.layoutBox,o):this.constraints=!1,this.elastic=mM(r),d!==this.constraints&&c&&this.constraints&&!this.hasMutatedConstraints&&os(u=>{this.constraints!==!1&&this.getAxisMotionValue(u)&&(this.constraints[u]=pM(c.layoutBox[u],this.constraints[u]))})}resolveRefConstraints(){const{dragConstraints:s,onMeasureDragConstraints:o}=this.getProps();if(!s||!Ro(s))return!1;const r=s.current,{projection:c}=this.visualElement;if(!c||!c.layout)return!1;const d=yM(r,c.root,this.visualElement.getTransformPagePoint());let u=uM(c.layout.layoutBox,d);if(o){const p=o(hM(u));this.hasMutatedConstraints=!!p,p&&(u=y1(p))}return u}startAnimation(s){const{drag:o,dragMomentum:r,dragElastic:c,dragTransition:d,dragSnapToOrigin:u,onDragTransitionEnd:p}=this.getProps(),m=this.constraints||{},g=os(v=>{if(!Zc(v,o,this.currentDirection))return;let _=m&&m[v]||{};u&&(_={min:0,max:0});const b=c?200:1e6,x=c?40:1e7,S={type:"inertia",velocity:r?s[v]:0,bounceStiffness:b,bounceDamping:x,timeConstant:750,restDelta:1,restSpeed:10,...d,..._};return this.startAxisValueAnimation(v,S)});return Promise.all(g).then(p)}startAxisValueAnimation(s,o){const r=this.getAxisMotionValue(s);return sm(this.visualElement,s),r.start(ph(s,r,0,o,this.visualElement,!1))}stopAnimation(){os(s=>this.getAxisMotionValue(s).stop())}pauseAnimation(){os(s=>{var o;return(o=this.getAxisMotionValue(s).animation)===null||o===void 0?void 0:o.pause()})}getAnimationState(s){var o;return(o=this.getAxisMotionValue(s).animation)===null||o===void 0?void 0:o.state}getAxisMotionValue(s){const o=`_drag${s.toUpperCase()}`,r=this.visualElement.getProps(),c=r[o];return c||this.visualElement.getValue(s,(r.initial?r.initial[s]:void 0)||0)}snapToCursor(s){os(o=>{const{drag:r}=this.getProps();if(!Zc(o,r,this.currentDirection))return;const{projection:c}=this.visualElement,d=this.getAxisMotionValue(o);if(c&&c.layout){const{min:u,max:p}=c.layout.layoutBox[o];d.set(s[o]-Rt(u,p,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:s,dragConstraints:o}=this.getProps(),{projection:r}=this.visualElement;if(!Ro(o)||!r||!this.constraints)return;this.stopAnimation();const c={x:0,y:0};os(u=>{const p=this.getAxisMotionValue(u);if(p&&this.constraints!==!1){const m=p.get();c[u]=fM({min:m,max:m},this.constraints[u])}});const{transformTemplate:d}=this.visualElement.getProps();this.visualElement.current.style.transform=d?d({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),os(u=>{if(!Zc(u,s,null))return;const p=this.getAxisMotionValue(u),{min:m,max:g}=this.constraints[u];p.set(Rt(m,g,c[u]))})}addListeners(){if(!this.visualElement.current)return;bM.set(this.visualElement,this);const s=this.visualElement.current,o=tl(s,"pointerdown",m=>{const{drag:g,dragListener:v=!0}=this.getProps();g&&v&&this.start(m)}),r=()=>{const{dragConstraints:m}=this.getProps();Ro(m)&&m.current&&(this.constraints=this.resolveRefConstraints())},{projection:c}=this.visualElement,d=c.addEventListener("measure",r);c&&!c.layout&&(c.root&&c.root.updateScroll(),c.updateLayout()),jt.read(r);const u=ml(window,"resize",()=>this.scalePositionWithinConstraints()),p=c.addEventListener("didUpdate",(({delta:m,hasLayoutChanged:g})=>{this.isDragging&&g&&(os(v=>{const _=this.getAxisMotionValue(v);_&&(this.originPoint[v]+=m[v].translate,_.set(_.get()+m[v].translate))}),this.visualElement.render())}));return()=>{u(),o(),d(),p&&p()}}getProps(){const s=this.visualElement.getProps(),{drag:o=!1,dragDirectionLock:r=!1,dragPropagation:c=!1,dragConstraints:d=!1,dragElastic:u=pm,dragMomentum:p=!0}=s;return{...s,drag:o,dragDirectionLock:r,dragPropagation:c,dragConstraints:d,dragElastic:u,dragMomentum:p}}}function Zc(t,s,o){return(s===!0||s===t)&&(o===null||o===t)}function xM(t,s=10){let o=null;return Math.abs(t.y)>s?o="y":Math.abs(t.x)>s&&(o="x"),o}class kM extends ei{constructor(s){super(s),this.removeGroupControls=zn,this.removeListeners=zn,this.controls=new _M(s)}mount(){const{dragControls:s}=this.node.getProps();s&&(this.removeGroupControls=s.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||zn}unmount(){this.removeGroupControls(),this.removeListeners()}}const jb=t=>(s,o)=>{t&&jt.postRender(()=>t(s,o))};class SM extends ei{constructor(){super(...arguments),this.removePointerDownListener=zn}onPointerDown(s){this.session=new m1(s,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:k1(this.node)})}createPanHandlers(){const{onPanSessionStart:s,onPanStart:o,onPan:r,onPanEnd:c}=this.node.getProps();return{onSessionStart:jb(s),onStart:jb(o),onMove:r,onEnd:(d,u)=>{delete this.session,c&&jt.postRender(()=>c(d,u))}}}mount(){this.removePointerDownListener=tl(this.node.current,"pointerdown",s=>this.onPointerDown(s))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const rd={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Tb(t,s){return s.max===s.min?0:t/(s.max-s.min)*100}const Ur={correct:(t,s)=>{if(!s.target)return t;if(typeof t=="string")if(De.test(t))t=parseFloat(t);else return t;const o=Tb(t,s.target.x),r=Tb(t,s.target.y);return`${o}% ${r}%`}},jM={correct:(t,{treeScale:s,projectionDelta:o})=>{const r=t,c=Qa.parse(t);if(c.length>5)return r;const d=Qa.createTransformer(t),u=typeof c[0]!="number"?1:0,p=o.x.scale*s.x,m=o.y.scale*s.y;c[0+u]/=p,c[1+u]/=m;const g=Rt(p,m,.5);return typeof c[2+u]=="number"&&(c[2+u]/=g),typeof c[3+u]=="number"&&(c[3+u]/=g),d(c)}};class TM extends y.Component{componentDidMount(){const{visualElement:s,layoutGroup:o,switchLayoutGroup:r,layoutId:c}=this.props,{projection:d}=s;WD(wM),d&&(o.group&&o.group.add(d),r&&r.register&&c&&r.register(d),d.root.didUpdate(),d.addEventListener("animationComplete",()=>{this.safeToRemove()}),d.setOptions({...d.options,onExitComplete:()=>this.safeToRemove()})),rd.hasEverUpdated=!0}getSnapshotBeforeUpdate(s){const{layoutDependency:o,visualElement:r,drag:c,isPresent:d}=this.props,u=r.projection;return u&&(u.isPresent=d,c||s.layoutDependency!==o||o===void 0?u.willUpdate():this.safeToRemove(),s.isPresent!==d&&(d?u.promote():u.relegate()||jt.postRender(()=>{const p=u.getStack();(!p||!p.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:s}=this.props.visualElement;s&&(s.root.didUpdate(),Um.postRender(()=>{!s.currentAnimation&&s.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:s,layoutGroup:o,switchLayoutGroup:r}=this.props,{projection:c}=s;c&&(c.scheduleCheckAfterUnmount(),o&&o.group&&o.group.remove(c),r&&r.deregister&&r.deregister(c))}safeToRemove(){const{safeToRemove:s}=this.props;s&&s()}render(){return null}}function S1(t){const[s,o]=rx(),r=y.useContext(Om);return a.jsx(TM,{...t,layoutGroup:r,switchLayoutGroup:y.useContext(hx),isPresent:s,safeToRemove:o})}const wM={borderRadius:{...Ur,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Ur,borderTopRightRadius:Ur,borderBottomLeftRadius:Ur,borderBottomRightRadius:Ur,boxShadow:jM};function NM(t,s,o){const r=vn(t)?t:fl(t);return r.start(ph("",r,s,o)),r.animation}function CM(t){return t instanceof SVGElement&&t.tagName!=="svg"}const EM=(t,s)=>t.depth-s.depth;class AM{constructor(){this.children=[],this.isDirty=!1}add(s){Qm(this.children,s),this.isDirty=!0}remove(s){eh(this.children,s),this.isDirty=!0}forEach(s){this.isDirty&&this.children.sort(EM),this.isDirty=!1,this.children.forEach(s)}}function DM(t,s){const o=Bs.now(),r=({timestamp:c})=>{const d=c-o;d>=s&&(Xa(r),t(d-s))};return jt.read(r,!0),()=>Xa(r)}const j1=["TopLeft","TopRight","BottomLeft","BottomRight"],RM=j1.length,wb=t=>typeof t=="string"?parseFloat(t):t,Nb=t=>typeof t=="number"||De.test(t);function MM(t,s,o,r,c,d){c?(t.opacity=Rt(0,o.opacity!==void 0?o.opacity:1,IM(r)),t.opacityExit=Rt(s.opacity!==void 0?s.opacity:1,0,OM(r))):d&&(t.opacity=Rt(s.opacity!==void 0?s.opacity:1,o.opacity!==void 0?o.opacity:1,r));for(let u=0;u<RM;u++){const p=`border${j1[u]}Radius`;let m=Cb(s,p),g=Cb(o,p);if(m===void 0&&g===void 0)continue;m||(m=0),g||(g=0),m===0||g===0||Nb(m)===Nb(g)?(t[p]=Math.max(Rt(wb(m),wb(g),r),0),(Ls.test(g)||Ls.test(m))&&(t[p]+="%")):t[p]=g}(s.rotate||o.rotate)&&(t.rotate=Rt(s.rotate||0,o.rotate||0,r))}function Cb(t,s){return t[s]!==void 0?t[s]:t.borderRadius}const IM=T1(0,.5,Px),OM=T1(.5,.95,zn);function T1(t,s,o){return r=>r<t?0:r>s?1:o(Ho(t,s,r))}function Eb(t,s){t.min=s.min,t.max=s.max}function ts(t,s){Eb(t.x,s.x),Eb(t.y,s.y)}function Ab(t,s){t.translate=s.translate,t.scale=s.scale,t.originPoint=s.originPoint,t.origin=s.origin}function Db(t,s,o,r,c){return t-=s,t=_d(t,1/o,r),c!==void 0&&(t=_d(t,1/c,r)),t}function LM(t,s=0,o=1,r=.5,c,d=t,u=t){if(Ls.test(s)&&(s=parseFloat(s),s=Rt(u.min,u.max,s/100)-u.min),typeof s!="number")return;let p=Rt(d.min,d.max,r);t===d&&(p-=s),t.min=Db(t.min,s,o,p,c),t.max=Db(t.max,s,o,p,c)}function Rb(t,s,[o,r,c],d,u){LM(t,s[o],s[r],s[c],s.scale,d,u)}const BM=["x","scaleX","originX"],$M=["y","scaleY","originY"];function Mb(t,s,o,r){Rb(t.x,s,BM,o?o.x:void 0,r?r.x:void 0),Rb(t.y,s,$M,o?o.y:void 0,r?r.y:void 0)}function Ib(t){return t.translate===0&&t.scale===1}function w1(t){return Ib(t.x)&&Ib(t.y)}function Ob(t,s){return t.min===s.min&&t.max===s.max}function zM(t,s){return Ob(t.x,s.x)&&Ob(t.y,s.y)}function Lb(t,s){return Math.round(t.min)===Math.round(s.min)&&Math.round(t.max)===Math.round(s.max)}function N1(t,s){return Lb(t.x,s.x)&&Lb(t.y,s.y)}function Bb(t){return Pn(t.x)/Pn(t.y)}function $b(t,s){return t.translate===s.translate&&t.scale===s.scale&&t.originPoint===s.originPoint}class HM{constructor(){this.members=[]}add(s){Qm(this.members,s),s.scheduleRender()}remove(s){if(eh(this.members,s),s===this.prevLead&&(this.prevLead=void 0),s===this.lead){const o=this.members[this.members.length-1];o&&this.promote(o)}}relegate(s){const o=this.members.findIndex(c=>s===c);if(o===0)return!1;let r;for(let c=o;c>=0;c--){const d=this.members[c];if(d.isPresent!==!1){r=d;break}}return r?(this.promote(r),!0):!1}promote(s,o){const r=this.lead;if(s!==r&&(this.prevLead=r,this.lead=s,s.show(),r)){r.instance&&r.scheduleRender(),s.scheduleRender(),s.resumeFrom=r,o&&(s.resumeFrom.preserveOpacity=!0),r.snapshot&&(s.snapshot=r.snapshot,s.snapshot.latestValues=r.animationValues||r.latestValues),s.root&&s.root.isUpdating&&(s.isLayoutDirty=!0);const{crossfade:c}=s.options;c===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(s=>{const{options:o,resumingFrom:r}=s;o.onExitComplete&&o.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(s=>{s.instance&&s.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function PM(t,s,o){let r="";const c=t.x.translate/s.x,d=t.y.translate/s.y,u=(o==null?void 0:o.z)||0;if((c||d||u)&&(r=`translate3d(${c}px, ${d}px, ${u}px) `),(s.x!==1||s.y!==1)&&(r+=`scale(${1/s.x}, ${1/s.y}) `),o){const{transformPerspective:g,rotate:v,rotateX:_,rotateY:b,skewX:x,skewY:S}=o;g&&(r=`perspective(${g}px) ${r}`),v&&(r+=`rotate(${v}deg) `),_&&(r+=`rotateX(${_}deg) `),b&&(r+=`rotateY(${b}deg) `),x&&(r+=`skewX(${x}deg) `),S&&(r+=`skewY(${S}deg) `)}const p=t.x.scale*s.x,m=t.y.scale*s.y;return(p!==1||m!==1)&&(r+=`scale(${p}, ${m})`),r||"none"}const Ci={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},Jr=typeof window<"u"&&window.MotionDebug!==void 0,Dp=["","X","Y","Z"],UM={visibility:"hidden"},zb=1e3;let VM=0;function Rp(t,s,o,r){const{latestValues:c}=s;c[t]&&(o[t]=c[t],s.setStaticValue(t,0),r&&(r[t]=0))}function C1(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;const{visualElement:s}=t.options;if(!s)return;const o=Dx(s);if(window.MotionHasOptimisedAnimation(o,"transform")){const{layout:c,layoutId:d}=t.options;window.MotionCancelOptimisedAnimation(o,"transform",jt,!(c||d))}const{parent:r}=t;r&&!r.hasCheckedOptimisedAppear&&C1(r)}function E1({attachResizeListener:t,defaultParent:s,measureScroll:o,checkIsScrollRoot:r,resetTransform:c}){return class{constructor(u={},p=s==null?void 0:s()){this.id=VM++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,Jr&&(Ci.totalNodes=Ci.resolvedTargetDeltas=Ci.recalculatedProjection=0),this.nodes.forEach(FM),this.nodes.forEach(WM),this.nodes.forEach(XM),this.nodes.forEach(ZM),Jr&&window.MotionDebug.record(Ci)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=u,this.root=p?p.root||p:this,this.path=p?[...p.path,p]:[],this.parent=p,this.depth=p?p.depth+1:0;for(let m=0;m<this.path.length;m++)this.path[m].shouldResetTransform=!0;this.root===this&&(this.nodes=new AM)}addEventListener(u,p){return this.eventHandlers.has(u)||this.eventHandlers.set(u,new th),this.eventHandlers.get(u).add(p)}notifyListeners(u,...p){const m=this.eventHandlers.get(u);m&&m.notify(...p)}hasListeners(u){return this.eventHandlers.has(u)}mount(u,p=this.root.hasTreeAnimated){if(this.instance)return;this.isSVG=CM(u),this.instance=u;const{layoutId:m,layout:g,visualElement:v}=this.options;if(v&&!v.current&&v.mount(u),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),p&&(g||m)&&(this.isLayoutDirty=!0),t){let _;const b=()=>this.root.updateBlockedByResize=!1;t(u,()=>{this.root.updateBlockedByResize=!0,_&&_(),_=DM(b,250),rd.hasAnimatedSinceResize&&(rd.hasAnimatedSinceResize=!1,this.nodes.forEach(Pb))})}m&&this.root.registerSharedNode(m,this),this.options.animate!==!1&&v&&(m||g)&&this.addEventListener("didUpdate",({delta:_,hasLayoutChanged:b,hasRelativeTargetChanged:x,layout:S})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const j=this.options.transition||v.getDefaultTransition()||s3,{onLayoutAnimationStart:w,onLayoutAnimationComplete:T}=v.getProps(),C=!this.targetLayout||!N1(this.targetLayout,S)||x,A=!b&&x;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||A||b&&(C||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(_,A);const L={...Xm(j,"layout"),onPlay:w,onComplete:T};(v.shouldReduceMotion||this.options.layoutRoot)&&(L.delay=0,L.type=!1),this.startAnimation(L)}else b||Pb(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=S})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const u=this.getStack();u&&u.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,Xa(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(QM),this.animationId++)}getTransformTemplate(){const{visualElement:u}=this.options;return u&&u.getProps().transformTemplate}willUpdate(u=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&C1(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let v=0;v<this.path.length;v++){const _=this.path[v];_.shouldResetTransform=!0,_.updateScroll("snapshot"),_.options.layoutRoot&&_.willUpdate(!1)}const{layoutId:p,layout:m}=this.options;if(p===void 0&&!m)return;const g=this.getTransformTemplate();this.prevTransformTemplateValue=g?g(this.latestValues,""):void 0,this.updateSnapshot(),u&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(Hb);return}this.isUpdating||this.nodes.forEach(YM),this.isUpdating=!1,this.nodes.forEach(JM),this.nodes.forEach(qM),this.nodes.forEach(GM),this.clearAllSnapshots();const p=Bs.now();pn.delta=fa(0,1e3/60,p-pn.timestamp),pn.timestamp=p,pn.isProcessing=!0,Sp.update.process(pn),Sp.preRender.process(pn),Sp.render.process(pn),pn.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Um.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(KM),this.sharedNodes.forEach(e3)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,jt.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){jt.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let m=0;m<this.path.length;m++)this.path[m].updateScroll();const u=this.layout;this.layout=this.measure(!1),this.layoutCorrected=Ht(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:p}=this.options;p&&p.notify("LayoutMeasure",this.layout.layoutBox,u?u.layoutBox:void 0)}updateScroll(u="measure"){let p=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===u&&(p=!1),p){const m=r(this.instance);this.scroll={animationId:this.root.animationId,phase:u,isRoot:m,offset:o(this.instance),wasRoot:this.scroll?this.scroll.isRoot:m}}}resetTransform(){if(!c)return;const u=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,p=this.projectionDelta&&!w1(this.projectionDelta),m=this.getTransformTemplate(),g=m?m(this.latestValues,""):void 0,v=g!==this.prevTransformTemplateValue;u&&(p||Ni(this.latestValues)||v)&&(c(this.instance,g),this.shouldResetTransform=!1,this.scheduleRender())}measure(u=!0){const p=this.measurePageBox();let m=this.removeElementScroll(p);return u&&(m=this.removeTransform(m)),a3(m),{animationId:this.root.animationId,measuredBox:p,layoutBox:m,latestValues:{},source:this.id}}measurePageBox(){var u;const{visualElement:p}=this.options;if(!p)return Ht();const m=p.measureViewportBox();if(!(((u=this.scroll)===null||u===void 0?void 0:u.wasRoot)||this.path.some(i3))){const{scroll:v}=this.root;v&&(Oo(m.x,v.offset.x),Oo(m.y,v.offset.y))}return m}removeElementScroll(u){var p;const m=Ht();if(ts(m,u),!((p=this.scroll)===null||p===void 0)&&p.wasRoot)return m;for(let g=0;g<this.path.length;g++){const v=this.path[g],{scroll:_,options:b}=v;v!==this.root&&_&&b.layoutScroll&&(_.wasRoot&&ts(m,u),Oo(m.x,_.offset.x),Oo(m.y,_.offset.y))}return m}applyTransform(u,p=!1){const m=Ht();ts(m,u);for(let g=0;g<this.path.length;g++){const v=this.path[g];!p&&v.options.layoutScroll&&v.scroll&&v!==v.root&&Lo(m,{x:-v.scroll.offset.x,y:-v.scroll.offset.y}),Ni(v.latestValues)&&Lo(m,v.latestValues)}return Ni(this.latestValues)&&Lo(m,this.latestValues),m}removeTransform(u){const p=Ht();ts(p,u);for(let m=0;m<this.path.length;m++){const g=this.path[m];if(!g.instance||!Ni(g.latestValues))continue;mm(g.latestValues)&&g.updateSnapshot();const v=Ht(),_=g.measurePageBox();ts(v,_),Mb(p,g.latestValues,g.snapshot?g.snapshot.layoutBox:void 0,v)}return Ni(this.latestValues)&&Mb(p,this.latestValues),p}setTargetDelta(u){this.targetDelta=u,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(u){this.options={...this.options,...u,crossfade:u.crossfade!==void 0?u.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==pn.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(u=!1){var p;const m=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=m.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=m.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=m.isSharedProjectionDirty);const g=!!this.resumingFrom||this!==m;if(!(u||g&&this.isSharedProjectionDirty||this.isProjectionDirty||!((p=this.parent)===null||p===void 0)&&p.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:_,layoutId:b}=this.options;if(!(!this.layout||!(_||b))){if(this.resolvedRelativeTargetAt=pn.timestamp,!this.targetDelta&&!this.relativeTarget){const x=this.getClosestProjectingParent();x&&x.layout&&this.animationProgress!==1?(this.relativeParent=x,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Ht(),this.relativeTargetOrigin=Ht(),sl(this.relativeTargetOrigin,this.layout.layoutBox,x.layout.layoutBox),ts(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)){if(this.target||(this.target=Ht(),this.targetWithTransforms=Ht()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),lM(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):ts(this.target,this.layout.layoutBox),_1(this.target,this.targetDelta)):ts(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const x=this.getClosestProjectingParent();x&&!!x.resumingFrom==!!this.resumingFrom&&!x.options.layoutScroll&&x.target&&this.animationProgress!==1?(this.relativeParent=x,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Ht(),this.relativeTargetOrigin=Ht(),sl(this.relativeTargetOrigin,this.target,x.target),ts(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}Jr&&Ci.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||mm(this.parent.latestValues)||b1(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var u;const p=this.getLead(),m=!!this.resumingFrom||this!==p;let g=!0;if((this.isProjectionDirty||!((u=this.parent)===null||u===void 0)&&u.isProjectionDirty)&&(g=!1),m&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(g=!1),this.resolvedRelativeTargetAt===pn.timestamp&&(g=!1),g)return;const{layout:v,layoutId:_}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(v||_))return;ts(this.layoutCorrected,this.layout.layoutBox);const b=this.treeScale.x,x=this.treeScale.y;vM(this.layoutCorrected,this.treeScale,this.path,m),p.layout&&!p.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(p.target=p.layout.layoutBox,p.targetWithTransforms=Ht());const{target:S}=p;if(!S){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Ab(this.prevProjectionDelta.x,this.projectionDelta.x),Ab(this.prevProjectionDelta.y,this.projectionDelta.y)),nl(this.projectionDelta,this.layoutCorrected,S,this.latestValues),(this.treeScale.x!==b||this.treeScale.y!==x||!$b(this.projectionDelta.x,this.prevProjectionDelta.x)||!$b(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",S)),Jr&&Ci.recalculatedProjection++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(u=!0){var p;if((p=this.options.visualElement)===null||p===void 0||p.scheduleRender(),u){const m=this.getStack();m&&m.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Io(),this.projectionDelta=Io(),this.projectionDeltaWithTransform=Io()}setAnimationOrigin(u,p=!1){const m=this.snapshot,g=m?m.latestValues:{},v={...this.latestValues},_=Io();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!p;const b=Ht(),x=m?m.source:void 0,S=this.layout?this.layout.source:void 0,j=x!==S,w=this.getStack(),T=!w||w.members.length<=1,C=!!(j&&!T&&this.options.crossfade===!0&&!this.path.some(n3));this.animationProgress=0;let A;this.mixTargetDelta=L=>{const E=L/1e3;Ub(_.x,u.x,E),Ub(_.y,u.y,E),this.setTargetDelta(_),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(sl(b,this.layout.layoutBox,this.relativeParent.layout.layoutBox),t3(this.relativeTarget,this.relativeTargetOrigin,b,E),A&&zM(this.relativeTarget,A)&&(this.isProjectionDirty=!1),A||(A=Ht()),ts(A,this.relativeTarget)),j&&(this.animationValues=v,MM(v,g,this.latestValues,E,C,T)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=E},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(u){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(Xa(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=jt.update(()=>{rd.hasAnimatedSinceResize=!0,this.currentAnimation=NM(0,zb,{...u,onUpdate:p=>{this.mixTargetDelta(p),u.onUpdate&&u.onUpdate(p)},onComplete:()=>{u.onComplete&&u.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const u=this.getStack();u&&u.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zb),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const u=this.getLead();let{targetWithTransforms:p,target:m,layout:g,latestValues:v}=u;if(!(!p||!m||!g)){if(this!==u&&this.layout&&g&&A1(this.options.animationType,this.layout.layoutBox,g.layoutBox)){m=this.target||Ht();const _=Pn(this.layout.layoutBox.x);m.x.min=u.target.x.min,m.x.max=m.x.min+_;const b=Pn(this.layout.layoutBox.y);m.y.min=u.target.y.min,m.y.max=m.y.min+b}ts(p,m),Lo(p,v),nl(this.projectionDeltaWithTransform,this.layoutCorrected,p,v)}}registerSharedNode(u,p){this.sharedNodes.has(u)||this.sharedNodes.set(u,new HM),this.sharedNodes.get(u).add(p);const g=p.options.initialPromotionConfig;p.promote({transition:g?g.transition:void 0,preserveFollowOpacity:g&&g.shouldPreserveFollowOpacity?g.shouldPreserveFollowOpacity(p):void 0})}isLead(){const u=this.getStack();return u?u.lead===this:!0}getLead(){var u;const{layoutId:p}=this.options;return p?((u=this.getStack())===null||u===void 0?void 0:u.lead)||this:this}getPrevLead(){var u;const{layoutId:p}=this.options;return p?(u=this.getStack())===null||u===void 0?void 0:u.prevLead:void 0}getStack(){const{layoutId:u}=this.options;if(u)return this.root.sharedNodes.get(u)}promote({needsReset:u,transition:p,preserveFollowOpacity:m}={}){const g=this.getStack();g&&g.promote(this,m),u&&(this.projectionDelta=void 0,this.needsReset=!0),p&&this.setOptions({transition:p})}relegate(){const u=this.getStack();return u?u.relegate(this):!1}resetSkewAndRotation(){const{visualElement:u}=this.options;if(!u)return;let p=!1;const{latestValues:m}=u;if((m.z||m.rotate||m.rotateX||m.rotateY||m.rotateZ||m.skewX||m.skewY)&&(p=!0),!p)return;const g={};m.z&&Rp("z",u,g,this.animationValues);for(let v=0;v<Dp.length;v++)Rp(`rotate${Dp[v]}`,u,g,this.animationValues),Rp(`skew${Dp[v]}`,u,g,this.animationValues);u.render();for(const v in g)u.setStaticValue(v,g[v]),this.animationValues&&(this.animationValues[v]=g[v]);u.scheduleRender()}getProjectionStyles(u){var p,m;if(!this.instance||this.isSVG)return;if(!this.isVisible)return UM;const g={visibility:""},v=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,g.opacity="",g.pointerEvents=id(u==null?void 0:u.pointerEvents)||"",g.transform=v?v(this.latestValues,""):"none",g;const _=this.getLead();if(!this.projectionDelta||!this.layout||!_.target){const j={};return this.options.layoutId&&(j.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,j.pointerEvents=id(u==null?void 0:u.pointerEvents)||""),this.hasProjected&&!Ni(this.latestValues)&&(j.transform=v?v({},""):"none",this.hasProjected=!1),j}const b=_.animationValues||_.latestValues;this.applyTransformsToTarget(),g.transform=PM(this.projectionDeltaWithTransform,this.treeScale,b),v&&(g.transform=v(b,g.transform));const{x,y:S}=this.projectionDelta;g.transformOrigin=`${x.origin*100}% ${S.origin*100}% 0`,_.animationValues?g.opacity=_===this?(m=(p=b.opacity)!==null&&p!==void 0?p:this.latestValues.opacity)!==null&&m!==void 0?m:1:this.preserveOpacity?this.latestValues.opacity:b.opacityExit:g.opacity=_===this?b.opacity!==void 0?b.opacity:"":b.opacityExit!==void 0?b.opacityExit:0;for(const j in hd){if(b[j]===void 0)continue;const{correct:w,applyTo:T}=hd[j],C=g.transform==="none"?b[j]:w(b[j],_);if(T){const A=T.length;for(let L=0;L<A;L++)g[T[L]]=C}else g[j]=C}return this.options.layoutId&&(g.pointerEvents=_===this?id(u==null?void 0:u.pointerEvents)||"":"none"),g}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(u=>{var p;return(p=u.currentAnimation)===null||p===void 0?void 0:p.stop()}),this.root.nodes.forEach(Hb),this.root.sharedNodes.clear()}}}function qM(t){t.updateLayout()}function GM(t){var s;const o=((s=t.resumeFrom)===null||s===void 0?void 0:s.snapshot)||t.snapshot;if(t.isLead()&&t.layout&&o&&t.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:c}=t.layout,{animationType:d}=t.options,u=o.source!==t.layout.source;d==="size"?os(_=>{const b=u?o.measuredBox[_]:o.layoutBox[_],x=Pn(b);b.min=r[_].min,b.max=b.min+x}):A1(d,o.layoutBox,r)&&os(_=>{const b=u?o.measuredBox[_]:o.layoutBox[_],x=Pn(r[_]);b.max=b.min+x,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[_].max=t.relativeTarget[_].min+x)});const p=Io();nl(p,r,o.layoutBox);const m=Io();u?nl(m,t.applyTransform(c,!0),o.measuredBox):nl(m,r,o.layoutBox);const g=!w1(p);let v=!1;if(!t.resumeFrom){const _=t.getClosestProjectingParent();if(_&&!_.resumeFrom){const{snapshot:b,layout:x}=_;if(b&&x){const S=Ht();sl(S,o.layoutBox,b.layoutBox);const j=Ht();sl(j,r,x.layoutBox),N1(S,j)||(v=!0),_.options.layoutRoot&&(t.relativeTarget=j,t.relativeTargetOrigin=S,t.relativeParent=_)}}}t.notifyListeners("didUpdate",{layout:r,snapshot:o,delta:m,layoutDelta:p,hasLayoutChanged:g,hasRelativeTargetChanged:v})}else if(t.isLead()){const{onExitComplete:r}=t.options;r&&r()}t.options.transition=void 0}function FM(t){Jr&&Ci.totalNodes++,t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function ZM(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function KM(t){t.clearSnapshot()}function Hb(t){t.clearMeasurements()}function YM(t){t.isLayoutDirty=!1}function JM(t){const{visualElement:s}=t.options;s&&s.getProps().onBeforeLayoutMeasure&&s.notify("BeforeLayoutMeasure"),t.resetTransform()}function Pb(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function WM(t){t.resolveTargetDelta()}function XM(t){t.calcProjection()}function QM(t){t.resetSkewAndRotation()}function e3(t){t.removeLeadSnapshot()}function Ub(t,s,o){t.translate=Rt(s.translate,0,o),t.scale=Rt(s.scale,1,o),t.origin=s.origin,t.originPoint=s.originPoint}function Vb(t,s,o,r){t.min=Rt(s.min,o.min,r),t.max=Rt(s.max,o.max,r)}function t3(t,s,o,r){Vb(t.x,s.x,o.x,r),Vb(t.y,s.y,o.y,r)}function n3(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const s3={duration:.45,ease:[.4,0,.1,1]},qb=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),Gb=qb("applewebkit/")&&!qb("chrome/")?Math.round:zn;function Fb(t){t.min=Gb(t.min),t.max=Gb(t.max)}function a3(t){Fb(t.x),Fb(t.y)}function A1(t,s,o){return t==="position"||t==="preserve-aspect"&&!rM(Bb(s),Bb(o),.2)}function i3(t){var s;return t!==t.root&&((s=t.scroll)===null||s===void 0?void 0:s.wasRoot)}const o3=E1({attachResizeListener:(t,s)=>ml(t,"resize",s),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Mp={current:void 0},D1=E1({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!Mp.current){const t=new o3({});t.mount(window),t.setOptions({layoutScroll:!0}),Mp.current=t}return Mp.current},resetTransform:(t,s)=>{t.style.transform=s!==void 0?s:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"}),r3={pan:{Feature:SM},drag:{Feature:kM,ProjectionNode:D1,MeasureLayout:S1}};function l3(t,s,o){var r;if(t instanceof Element)return[t];if(typeof t=="string"){let c=document;const d=(r=void 0)!==null&&r!==void 0?r:c.querySelectorAll(t);return d?Array.from(d):[]}return Array.from(t)}function R1(t,s){const o=l3(t),r=new AbortController,c={passive:!0,...s,signal:r.signal};return[o,c,()=>r.abort()]}function Zb(t){return s=>{s.pointerType==="touch"||p1()||t(s)}}function c3(t,s,o={}){const[r,c,d]=R1(t,o),u=Zb(p=>{const{target:m}=p,g=s(p);if(typeof g!="function"||!m)return;const v=Zb(_=>{g(_),m.removeEventListener("pointerleave",v)});m.addEventListener("pointerleave",v,c)});return r.forEach(p=>{p.addEventListener("pointerenter",u,c)}),d}function Kb(t,s,o){const{props:r}=t;t.animationState&&r.whileHover&&t.animationState.setActive("whileHover",o==="Start");const c="onHover"+o,d=r[c];d&&jt.postRender(()=>d(s,Sl(s)))}class d3 extends ei{mount(){const{current:s}=this.node;s&&(this.unmount=c3(s,o=>(Kb(this.node,o,"Start"),r=>Kb(this.node,r,"End"))))}unmount(){}}class u3 extends ei{constructor(){super(...arguments),this.isActive=!1}onFocus(){let s=!1;try{s=this.node.current.matches(":focus-visible")}catch{s=!0}!s||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=kl(ml(this.node.current,"focus",()=>this.onFocus()),ml(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const M1=(t,s)=>s?t===s?!0:M1(t,s.parentElement):!1,f3=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function p3(t){return f3.has(t.tagName)||t.tabIndex!==-1}const Wr=new WeakSet;function Yb(t){return s=>{s.key==="Enter"&&t(s)}}function Ip(t,s){t.dispatchEvent(new PointerEvent("pointer"+s,{isPrimary:!0,bubbles:!0}))}const m3=(t,s)=>{const o=t.currentTarget;if(!o)return;const r=Yb(()=>{if(Wr.has(o))return;Ip(o,"down");const c=Yb(()=>{Ip(o,"up")}),d=()=>Ip(o,"cancel");o.addEventListener("keyup",c,s),o.addEventListener("blur",d,s)});o.addEventListener("keydown",r,s),o.addEventListener("blur",()=>o.removeEventListener("keydown",r),s)};function Jb(t){return mh(t)&&!p1()}function h3(t,s,o={}){const[r,c,d]=R1(t,o),u=p=>{const m=p.currentTarget;if(!Jb(p)||Wr.has(m))return;Wr.add(m);const g=s(p),v=(x,S)=>{window.removeEventListener("pointerup",_),window.removeEventListener("pointercancel",b),!(!Jb(x)||!Wr.has(m))&&(Wr.delete(m),typeof g=="function"&&g(x,{success:S}))},_=x=>{v(x,o.useGlobalTarget||M1(m,x.target))},b=x=>{v(x,!1)};window.addEventListener("pointerup",_,c),window.addEventListener("pointercancel",b,c)};return r.forEach(p=>{!p3(p)&&p.getAttribute("tabindex")===null&&(p.tabIndex=0),(o.useGlobalTarget?window:p).addEventListener("pointerdown",u,c),p.addEventListener("focus",g=>m3(g,c),c)}),d}function Wb(t,s,o){const{props:r}=t;t.animationState&&r.whileTap&&t.animationState.setActive("whileTap",o==="Start");const c="onTap"+(o==="End"?"":o),d=r[c];d&&jt.postRender(()=>d(s,Sl(s)))}class g3 extends ei{mount(){const{current:s}=this.node;s&&(this.unmount=h3(s,o=>(Wb(this.node,o,"Start"),(r,{success:c})=>Wb(this.node,r,c?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const gm=new WeakMap,Op=new WeakMap,v3=t=>{const s=gm.get(t.target);s&&s(t)},y3=t=>{t.forEach(v3)};function b3({root:t,...s}){const o=t||document;Op.has(o)||Op.set(o,{});const r=Op.get(o),c=JSON.stringify(s);return r[c]||(r[c]=new IntersectionObserver(y3,{root:t,...s})),r[c]}function _3(t,s,o){const r=b3(s);return gm.set(t,o),r.observe(t),()=>{gm.delete(t),r.unobserve(t)}}const x3={some:0,all:1};class k3 extends ei{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:s={}}=this.node.getProps(),{root:o,margin:r,amount:c="some",once:d}=s,u={root:o?o.current:void 0,rootMargin:r,threshold:typeof c=="number"?c:x3[c]},p=m=>{const{isIntersecting:g}=m;if(this.isInView===g||(this.isInView=g,d&&!g&&this.hasEnteredView))return;g&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",g);const{onViewportEnter:v,onViewportLeave:_}=this.node.getProps(),b=g?v:_;b&&b(m)};return _3(this.node.current,u,p)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:s,prevProps:o}=this.node;["amount","margin","root"].some(S3(s,o))&&this.startObserver()}unmount(){}}function S3({viewport:t={}},{viewport:s={}}={}){return o=>t[o]!==s[o]}const j3={inView:{Feature:k3},tap:{Feature:g3},focus:{Feature:u3},hover:{Feature:d3}},T3={layout:{ProjectionNode:D1,MeasureLayout:S1}},xd={current:null},hh={current:!1};function I1(){if(hh.current=!0,!!$m)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),s=()=>xd.current=t.matches;t.addListener(s),s()}else xd.current=!1}const w3=[...t1,gn,Qa],N3=t=>w3.find(e1(t)),Xb=new WeakMap;function C3(t,s,o){for(const r in s){const c=s[r],d=o[r];if(vn(c))t.addValue(r,c);else if(vn(d))t.addValue(r,fl(c,{owner:t}));else if(d!==c)if(t.hasValue(r)){const u=t.getValue(r);u.liveStyle===!0?u.jump(c):u.hasAnimated||u.set(c)}else{const u=t.getStaticValue(r);t.addValue(r,fl(u!==void 0?u:c,{owner:t}))}}for(const r in o)s[r]===void 0&&t.removeValue(r);return s}const Qb=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class E3{scrapeMotionValuesFromProps(s,o,r){return{}}constructor({parent:s,props:o,presenceContext:r,reducedMotionConfig:c,blockInitialAnimation:d,visualState:u},p={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=dh,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const x=Bs.now();this.renderScheduledAt<x&&(this.renderScheduledAt=x,jt.render(this.render,!1,!0))};const{latestValues:m,renderState:g,onUpdate:v}=u;this.onUpdate=v,this.latestValues=m,this.baseTarget={...m},this.initialValues=o.initial?{...m}:{},this.renderState=g,this.parent=s,this.props=o,this.presenceContext=r,this.depth=s?s.depth+1:0,this.reducedMotionConfig=c,this.options=p,this.blockInitialAnimation=!!d,this.isControllingVariants=Ud(o),this.isVariantNode=px(o),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(s&&s.current);const{willChange:_,...b}=this.scrapeMotionValuesFromProps(o,{},this);for(const x in b){const S=b[x];m[x]!==void 0&&vn(S)&&S.set(m[x],!1)}}mount(s){this.current=s,Xb.set(s,this),this.projection&&!this.projection.instance&&this.projection.mount(s),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((o,r)=>this.bindToMotionValue(r,o)),hh.current||I1(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:xd.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Xb.delete(this.current),this.projection&&this.projection.unmount(),Xa(this.notifyUpdate),Xa(this.render),this.valueSubscriptions.forEach(s=>s()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const s in this.events)this.events[s].clear();for(const s in this.features){const o=this.features[s];o&&(o.unmount(),o.isMounted=!1)}this.current=null}bindToMotionValue(s,o){this.valueSubscriptions.has(s)&&this.valueSubscriptions.get(s)();const r=zi.has(s),c=o.on("change",p=>{this.latestValues[s]=p,this.props.onUpdate&&jt.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),d=o.on("renderRequest",this.scheduleRender);let u;window.MotionCheckAppearSync&&(u=window.MotionCheckAppearSync(this,s,o)),this.valueSubscriptions.set(s,()=>{c(),d(),u&&u(),o.owner&&o.stop()})}sortNodePosition(s){return!this.current||!this.sortInstanceNodePosition||this.type!==s.type?0:this.sortInstanceNodePosition(this.current,s.current)}updateFeatures(){let s="animation";for(s in zo){const o=zo[s];if(!o)continue;const{isEnabled:r,Feature:c}=o;if(!this.features[s]&&c&&r(this.props)&&(this.features[s]=new c(this)),this.features[s]){const d=this.features[s];d.isMounted?d.update():(d.mount(),d.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Ht()}getStaticValue(s){return this.latestValues[s]}setStaticValue(s,o){this.latestValues[s]=o}update(s,o){(s.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=s,this.prevPresenceContext=this.presenceContext,this.presenceContext=o;for(let r=0;r<Qb.length;r++){const c=Qb[r];this.propEventSubscriptions[c]&&(this.propEventSubscriptions[c](),delete this.propEventSubscriptions[c]);const d="on"+c,u=s[d];u&&(this.propEventSubscriptions[c]=this.on(c,u))}this.prevMotionValues=C3(this,this.scrapeMotionValuesFromProps(s,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue(),this.onUpdate&&this.onUpdate(this)}getProps(){return this.props}getVariant(s){return this.props.variants?this.props.variants[s]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(s){const o=this.getClosestVariantNode();if(o)return o.variantChildren&&o.variantChildren.add(s),()=>o.variantChildren.delete(s)}addValue(s,o){const r=this.values.get(s);o!==r&&(r&&this.removeValue(s),this.bindToMotionValue(s,o),this.values.set(s,o),this.latestValues[s]=o.get())}removeValue(s){this.values.delete(s);const o=this.valueSubscriptions.get(s);o&&(o(),this.valueSubscriptions.delete(s)),delete this.latestValues[s],this.removeValueFromRenderState(s,this.renderState)}hasValue(s){return this.values.has(s)}getValue(s,o){if(this.props.values&&this.props.values[s])return this.props.values[s];let r=this.values.get(s);return r===void 0&&o!==void 0&&(r=fl(o===null?void 0:o,{owner:this}),this.addValue(s,r)),r}readValue(s,o){var r;let c=this.latestValues[s]!==void 0||!this.current?this.latestValues[s]:(r=this.getBaseTargetFromProps(this.props,s))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,s,this.options);return c!=null&&(typeof c=="string"&&(Xx(c)||Vx(c))?c=parseFloat(c):!N3(c)&&Qa.test(o)&&(c=Yx(s,o)),this.setBaseTarget(s,vn(c)?c.get():c)),vn(c)?c.get():c}setBaseTarget(s,o){this.baseTarget[s]=o}getBaseTarget(s){var o;const{initial:r}=this.props;let c;if(typeof r=="string"||typeof r=="object"){const u=qm(this.props,r,(o=this.presenceContext)===null||o===void 0?void 0:o.custom);u&&(c=u[s])}if(r&&c!==void 0)return c;const d=this.getBaseTargetFromProps(this.props,s);return d!==void 0&&!vn(d)?d:this.initialValues[s]!==void 0&&c===void 0?void 0:this.baseTarget[s]}on(s,o){return this.events[s]||(this.events[s]=new th),this.events[s].add(o)}notify(s,...o){this.events[s]&&this.events[s].notify(...o)}}class O1 extends E3{constructor(){super(...arguments),this.KeyframeResolver=n1}sortInstanceNodePosition(s,o){return s.compareDocumentPosition(o)&2?1:-1}getBaseTargetFromProps(s,o){return s.style?s.style[o]:void 0}removeValueFromRenderState(s,{vars:o,style:r}){delete o[s],delete r[s]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:s}=this.props;vn(s)&&(this.childSubscription=s.on("change",o=>{this.current&&(this.current.textContent=`${o}`)}))}}function A3(t){return window.getComputedStyle(t)}class D3 extends O1{constructor(){super(...arguments),this.type="html",this.renderInstance=kx}readValueFromInstance(s,o){if(zi.has(o)){const r=ch(o);return r&&r.default||0}else{const r=A3(s),c=(bx(o)?r.getPropertyValue(o):r[o])||0;return typeof c=="string"?c.trim():c}}measureInstanceViewportBox(s,{transformPagePoint:o}){return x1(s,o)}build(s,o,r){Zm(s,o,r.transformTemplate)}scrapeMotionValuesFromProps(s,o,r){return Wm(s,o,r)}}class R3 extends O1{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Ht}getBaseTargetFromProps(s,o){return s[o]}readValueFromInstance(s,o){if(zi.has(o)){const r=ch(o);return r&&r.default||0}return o=Sx.has(o)?o:Pm(o),s.getAttribute(o)}scrapeMotionValuesFromProps(s,o,r){return wx(s,o,r)}build(s,o,r){Km(s,o,this.isSVGTag,r.transformTemplate)}renderInstance(s,o,r,c){jx(s,o,r,c)}mount(s){this.isSVGTag=Jm(s.tagName),super.mount(s)}}const M3=(t,s)=>Vm(t)?new R3(s):new D3(s,{allowProjection:t!==y.Fragment}),I3=o4({...WR,...j3,...r3,...T3},M3),At=xD(I3);function O3(){!hh.current&&I1();const[t]=y.useState(xd.current);return t}const L3="_overlay_cmicx_1",B3="_dialog_cmicx_11",$3="_title_cmicx_30",z3="_description_cmicx_38",H3="_actions_cmicx_45",P3="_cancelButton_cmicx_52",U3="_confirmButton_cmicx_79",Ti={overlay:L3,dialog:B3,title:$3,description:z3,actions:H3,cancelButton:P3,confirmButton:U3};function ks({isOpen:t,title:s,description:o,confirmLabel:r="Delete",onConfirm:c,onCancel:d}){const u=y.useId(),p=y.useId();return a.jsx(ls,{children:t&&a.jsx(At.div,{className:Ti.overlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},onClick:d,onKeyDown:m=>{m.key==="Escape"&&d()},role:"dialog","aria-modal":"true","aria-labelledby":u,"aria-describedby":o?p:void 0,children:a.jsxs(At.div,{className:Ti.dialog,initial:{opacity:0,scale:.93,y:-10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.93,y:-10},transition:{duration:.15,ease:[.16,1,.3,1]},onClick:m=>m.stopPropagation(),children:[a.jsx("h3",{id:u,className:Ti.title,children:s}),o&&a.jsx("p",{id:p,className:Ti.description,children:o}),a.jsxs("div",{className:Ti.actions,children:[a.jsx("button",{type:"button",className:Ti.cancelButton,onClick:d,autoFocus:!0,children:"Cancel"}),a.jsx("button",{type:"button",className:Ti.confirmButton,onClick:c,children:r})]})]})})})}const V3="_skeleton_1gqp4_9",q3="_circular_1gqp4_17",G3="_textContainer_1gqp4_26",F3="_card_1gqp4_31",kd={skeleton:V3,circular:q3,textContainer:G3,card:F3};function Ne({width:t="100%",height:s="1rem",borderRadius:o,variant:r="rectangular",className:c}){const d=[kd.skeleton,r==="circular"?kd.circular:"",c??""].filter(Boolean).join(" ");return a.jsx("div",{className:d,style:{width:t,height:s,...o&&r!=="circular"?{borderRadius:o}:{}},"aria-hidden":"true","data-testid":"skeleton"})}function vm({lines:t=3,lastLineWidth:s="60%",lineHeight:o="0.75rem",gap:r="var(--space-sm)",className:c}){return a.jsx("div",{className:`${kd.textContainer} ${c??""}`,style:{gap:r},"aria-hidden":"true","data-testid":"skeleton-text",children:Array.from({length:t},(d,u)=>a.jsx(Ne,{width:u===t-1&&t>1?s:"100%",height:o},u))})}function Sd({lines:t=2,className:s}){return a.jsxs("div",{className:`${kd.card} ${s??""}`,"aria-hidden":"true","data-testid":"skeleton-card",children:[a.jsx(Ne,{width:"40%",height:"1.25rem"}),a.jsx(vm,{lines:t})]})}const Z3="_spinner_1uyt1_1",K3="_spin_1uyt1_1",Y3="_sm_1uyt1_14",J3="_md_1uyt1_20",W3="_lg_1uyt1_26",X3="_xl_1uyt1_32",e_={spinner:Z3,spin:K3,sm:Y3,md:J3,lg:W3,xl:X3};function L1({size:t="md",className:s,label:o="Loading",liveRegion:r=!1}){return a.jsx("span",{className:`${e_.spinner} ${e_[t]} ${s??""}`,role:r?"status":void 0,"aria-label":o,"aria-hidden":r?void 0:!0})}const Q3="_splash_1bn1g_1",e6="_logo_1bn1g_11",t_={splash:Q3,logo:e6};function B1(){return a.jsxs("div",{className:t_.splash,"data-testid":"splash-screen",children:[a.jsx("img",{src:"/grackle-logo.png",alt:"Grackle",className:t_.logo}),a.jsx(L1,{size:"xl",label:"Loading Grackle",liveRegion:!0})]})}const t6="_wrapper_4e5yt_1",n6="_wrapperBlock_4e5yt_6",s6="_tooltip_4e5yt_11",a6="_visible_4e5yt_31",i6="_top_4e5yt_41",o6="_bottom_4e5yt_48",r6="_left_4e5yt_55",l6="_right_4e5yt_62",Vr={wrapper:t6,wrapperBlock:n6,tooltip:s6,visible:a6,top:i6,bottom:o6,left:r6,right:l6},c6=300,Kc=6;function Oi({text:t,placement:s="top",delayMs:o=c6,inline:r=!0,children:c,className:d,"data-testid":u}){const[p,m]=y.useState(!1),[g,v]=y.useState({top:0,left:0}),_=y.useRef(null),b=y.useRef(null),x=y.useRef(void 0),S=y.useId(),j=typeof document<"u",w=y.useCallback(()=>{if(!_.current||!b.current)return;const z=_.current.getBoundingClientRect(),Y=b.current.getBoundingClientRect();let V=0,Q=0;switch(s){case"top":V=z.top-Y.height-Kc,Q=z.left+z.width/2-Y.width/2;break;case"bottom":V=z.bottom+Kc,Q=z.left+z.width/2-Y.width/2;break;case"left":V=z.top+z.height/2-Y.height/2,Q=z.left-Y.width-Kc;break;case"right":V=z.top+z.height/2-Y.height/2,Q=z.right+Kc;break}v({top:V,left:Q})},[s]),T=y.useCallback(z=>{x.current!==void 0&&clearTimeout(x.current),x.current=setTimeout(()=>{w(),m(!0),x.current=void 0},z)},[w]),C=y.useCallback(()=>{T(o)},[o,T]),A=y.useCallback(()=>{T(0)},[T]),L=y.useCallback(()=>{x.current!==void 0&&(clearTimeout(x.current),x.current=void 0),m(!1)},[]);y.useEffect(()=>{if(!p)return;const z=Y=>{Y.key==="Escape"&&L()};return document.addEventListener("keydown",z),window.addEventListener("scroll",w,!0),window.addEventListener("resize",w),()=>{document.removeEventListener("keydown",z),window.removeEventListener("scroll",w,!0),window.removeEventListener("resize",w)}},[p,L,w]),y.useEffect(()=>()=>{x.current!==void 0&&clearTimeout(x.current)},[]);const E=r?"span":"div",M=[r?Vr.wrapper:Vr.wrapperBlock,d].filter(Boolean).join(" ");let H=c;if(y.isValidElement(c)){const z=c,Y=z.props["aria-describedby"],V=p?Y?`${Y} ${S}`:S:Y;H=y.cloneElement(z,{"aria-describedby":V})}const D=a.jsx("div",{ref:b,id:S,role:"tooltip",className:`${Vr.tooltip} ${Vr[s]} ${p?Vr.visible:""}`,style:{top:g.top,left:g.left},"data-testid":u??"tooltip",children:t});return a.jsxs(E,{ref:_,className:M,onMouseEnter:C,onMouseLeave:L,onFocus:A,onBlur:L,children:[H,j?M2.createPortal(D,document.body):null]})}const d6="_attemptSelector_ggigl_1",u6="_attemptLabel_ggigl_17",f6="_attemptButton_ggigl_21",p6="_attemptActive_ggigl_38",m6="_attemptStatus_ggigl_44",qr={attemptSelector:d6,attemptLabel:u6,attemptButton:f6,attemptActive:p6,attemptStatus:m6};function h6({taskSessions:t,selectedSessionId:s,onSelect:o}){if(!(t.length<2))return a.jsxs("div",{className:qr.attemptSelector,"data-testid":"attempt-selector",children:[a.jsx("span",{className:qr.attemptLabel,children:"Attempts:"}),t.map((r,c)=>{const d=r.id===s,u=r.status==="stopped"&&r.endReason==="completed"?"✓":r.status==="stopped"?"✗":r.status==="running"||r.status==="idle"?"●":"";return a.jsxs("button",{className:`${qr.attemptButton} ${d?qr.attemptActive:""}`,onClick:()=>o(r.id),title:`Attempt #${c+1} — ${r.status}`,"aria-label":`Attempt #${c+1}, ${r.status}`,"aria-pressed":d,"data-testid":`attempt-${c+1}`,children:["#",c+1,u&&a.jsx("span",{className:qr.attemptStatus,children:u})]},r.id)})]})}const g6="_row_ldkru_1",v6="_hoverActions_ldkru_5",y6="_hoverButton_ldkru_31",b6="_selectingRow_ldkru_72",_6="_selected_ldkru_83",x6="_checkboxArea_ldkru_90",k6="_checkbox_ldkru_90",S6="_contentArea_ldkru_106",ys={row:g6,hoverActions:v6,hoverButton:y6,selectingRow:b6,selected:_6,checkboxArea:x6,checkbox:k6,contentArea:S6};function j6({copyText:t,isContentBearing:s,isSelecting:o,isSelected:r,checkboxLabel:c,onSelect:d,onToggle:u,onCopied:p,children:m}){const[g,v]=y.useState(!1),_=y.useRef(void 0);y.useEffect(()=>()=>{_.current!==void 0&&clearTimeout(_.current)},[]);const b=y.useCallback(async()=>{try{await navigator.clipboard.writeText(t),v(!0),p==null||p(),_.current!==void 0&&clearTimeout(_.current),_.current=setTimeout(()=>{v(!1)},2e3)}catch{}},[t,p]),x=y.useCallback(S=>{!o||S.target.closest("a, button, input, textarea, select, [role=button]")||(S.preventDefault(),u(S.shiftKey))},[o,u]);return s?o?a.jsxs("div",{className:`${ys.row} ${ys.selectingRow} ${r?ys.selected:""}`,onClick:x,"data-testid":"event-selectable-row",children:[a.jsx("div",{className:ys.checkboxArea,children:a.jsx("input",{type:"checkbox",checked:r,onChange:S=>{u(S.nativeEvent.shiftKey)},onClick:S=>{S.stopPropagation()},className:ys.checkbox,"aria-label":c??"Select this event","data-testid":"event-select-checkbox"})}),a.jsx("div",{className:ys.contentArea,children:m})]}):a.jsxs("div",{className:ys.row,"data-testid":"event-hover-row",children:[a.jsxs("div",{className:ys.hoverActions,"data-testid":"event-hover-actions",children:[a.jsx("button",{type:"button",className:ys.hoverButton,onClick:()=>{b().catch(()=>{})},"aria-label":"Copy event content","data-testid":"event-hover-copy",children:g?a.jsx(Li,{size:it,"aria-hidden":"true"}):a.jsx(O_,{size:it,"aria-hidden":"true"})}),a.jsx("button",{type:"button",className:ys.hoverButton,onClick:d,"aria-label":"Select this event","data-testid":"event-hover-select",children:a.jsx(RT,{size:it,"aria-hidden":"true"})})]}),m]}):a.jsx("div",{className:ys.row,children:m})}const T6="_bar_lagql_1",w6="_left_lagql_21",N6="_right_lagql_27",C6="_count_lagql_33",E6="_toggleButton_lagql_40",A6="_copyButton_lagql_68",D6="_forwardButton_lagql_108",R6="_cancelButton_lagql_148",Va={bar:T6,left:w6,right:N6,count:C6,toggleButton:E6,copyButton:A6,forwardButton:D6,cancelButton:R6};function M6({selectedCount:t,totalSelectable:s,onSelectAll:o,onDeselectAll:r,onCopy:c,onForward:d,forwardDisabled:u=!1,onCancel:p}){const m=t>0&&t>=s;return a.jsxs(At.div,{className:Va.bar,initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:12},transition:{duration:.15},"data-testid":"floating-action-bar",children:[a.jsxs("div",{className:Va.left,children:[a.jsxs("span",{className:Va.count,"data-testid":"floating-bar-count",children:[t," selected"]}),a.jsx("button",{type:"button",className:Va.toggleButton,onClick:m?r:o,"data-testid":"floating-bar-select-all",children:m?"Deselect all":"Select all"})]}),a.jsxs("div",{className:Va.right,children:[a.jsxs("button",{type:"button",className:Va.copyButton,onClick:c,disabled:t===0,"data-testid":"floating-bar-copy",children:[a.jsx(Pj,{size:it,"aria-hidden":"true"}),"Copy"]}),d!==void 0&&a.jsx(Oi,{text:u?"No active sessions to forward to":"Forward to another session",children:a.jsxs("button",{type:"button",className:Va.forwardButton,"aria-disabled":u||t===0,onClick:()=>{!u&&t>0&&d()},"data-testid":"floating-bar-forward",children:[a.jsx(Yj,{size:it,"aria-hidden":"true"}),"Forward"]})}),a.jsx("button",{type:"button",className:Va.cancelButton,onClick:p,"aria-label":"Cancel selection","data-testid":"floating-bar-cancel",children:a.jsx($s,{size:it,"aria-hidden":"true"})})]})]})}const I6="_overlay_1hra6_1",O6="_dialog_1hra6_11",L6="_header_1hra6_27",B6="_title_1hra6_35",$6="_closeButton_1hra6_42",z6="_filterRow_1hra6_78",H6="_searchIcon_1hra6_86",P6="_filterInput_1hra6_91",U6="_list_1hra6_108",V6="_emptyItem_1hra6_116",q6="_sessionRow_1hra6_123",G6="_sessionMain_1hra6_158",F6="_envName_1hra6_165",Z6="_personaName_1hra6_175",K6="_statusBadge_1hra6_189",Y6="_status_running_1hra6_198",J6="_status_idle_1hra6_202",W6="_status_other_1hra6_206",X6="_sessionPrompt_1hra6_211",Q6="_noSessions_1hra6_220",Qt={overlay:I6,dialog:O6,header:L6,title:B6,closeButton:$6,filterRow:z6,searchIcon:H6,filterInput:P6,list:U6,emptyItem:V6,sessionRow:q6,sessionMain:G6,envName:F6,personaName:Z6,statusBadge:K6,status_running:Y6,status_idle:J6,status_other:W6,sessionPrompt:X6,noSessions:Q6};function e5(t){return t==="running"?"running":t==="idle"?"idle":t}function t5({isOpen:t,sessions:s,environments:o,personas:r,onSelect:c,onCancel:d}){const[u,p]=y.useState(""),m=y.useRef(null),g=y.useRef(null);y.useEffect(()=>{var j;t&&s.length<=4&&((j=g.current)==null||j.focus())},[t,s.length]);const v=new Map(o.map(j=>[j.id,j.displayName])),_=new Map((r??[]).map(j=>[j.id,j.name])),b=s.map(j=>({session:j,environmentName:v.get(j.environmentId)??j.environmentId})),x=s.length>4,S=u.trim()?b.filter(({session:j,environmentName:w})=>w.toLowerCase().includes(u.toLowerCase())||j.prompt.toLowerCase().includes(u.toLowerCase())):b;return a.jsx(ls,{children:t&&a.jsx(At.div,{className:Qt.overlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},onClick:d,onKeyDown:j=>{j.key==="Escape"&&d()},role:"dialog","aria-modal":"true","aria-label":"Forward to session","data-testid":"session-picker-overlay",children:a.jsxs(At.div,{ref:m,className:Qt.dialog,initial:{opacity:0,scale:.93,y:-10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.93,y:-10},transition:{duration:.15,ease:[.16,1,.3,1]},onClick:j=>{j.stopPropagation()},"data-testid":"session-picker-dialog",children:[a.jsxs("div",{className:Qt.header,children:[a.jsx("h3",{className:Qt.title,children:"Forward to session"}),a.jsx("button",{ref:g,type:"button",className:Qt.closeButton,onClick:d,"aria-label":"Close session picker","data-testid":"session-picker-close",children:a.jsx($s,{size:it,"aria-hidden":"true"})})]}),x&&a.jsxs("div",{className:Qt.filterRow,children:[a.jsx(fd,{size:it,className:Qt.searchIcon,"aria-hidden":"true"}),a.jsx("input",{type:"text",className:Qt.filterInput,placeholder:"Filter sessions...",value:u,onChange:j=>{p(j.target.value)},"data-testid":"session-picker-filter",autoFocus:!0})]}),s.length===0?a.jsxs("div",{className:Qt.noSessions,"data-testid":"session-picker-no-sessions",children:[a.jsx(fd,{size:Ut,"aria-hidden":"true"}),a.jsx("p",{children:"No active sessions to forward to."})]}):a.jsx("ul",{className:Qt.list,"data-testid":"session-picker-list",children:S.length===0?a.jsx("li",{className:Qt.emptyItem,"data-testid":"session-picker-empty",children:"No matching sessions"}):S.map(({session:j,environmentName:w})=>{const T=j.personaId?_.get(j.personaId)??void 0:void 0;return a.jsx("li",{children:a.jsxs("button",{type:"button",className:Qt.sessionRow,onClick:()=>{c(j.id)},"data-testid":`session-picker-item-${j.id}`,children:[a.jsxs("div",{className:Qt.sessionMain,children:[a.jsx("span",{className:Qt.envName,children:w}),T!==void 0&&a.jsx("span",{className:Qt.personaName,"data-testid":`session-picker-persona-${j.id}`,children:T}),a.jsx("span",{className:`${Qt.statusBadge} ${Qt[`status_${j.status}`]??Qt.status_other}`,"data-testid":`session-picker-status-${j.id}`,children:e5(j.status)})]}),a.jsx("div",{className:Qt.sessionPrompt,children:j.prompt.length>80?`${j.prompt.slice(0,80)}...`:j.prompt})]})},j.id)})})]})})})}const $1=50;function n5(t,s,o,r,c=$1){return r?t<c:s-t-o<c}function s5(t,s){const o=s-t;return o>0?o:0}function a5({scrollRef:t,contentLength:s,isReversed:o,paused:r}){const[c,d]=y.useState(!0),u=y.useRef(0),p=y.useRef(!1),m=y.useRef(0);y.useEffect(()=>{const v=t.current;if(!v)return;let _=!0;const b=()=>{m.current||(m.current=requestAnimationFrame(()=>{m.current=0;const x=n5(v.scrollTop,v.scrollHeight,v.clientHeight,o,$1);x!==_&&(_=x,d(x))}))};return v.addEventListener("scroll",b,{passive:!0}),()=>{v.removeEventListener("scroll",b),m.current&&(cancelAnimationFrame(m.current),m.current=0)}},[t,o]),y.useLayoutEffect(()=>{const v=t.current;!v||p.current||(p.current=!0,o?v.scrollTop=0:v.scrollTop=v.scrollHeight,d(!0))},[t,o]),y.useLayoutEffect(()=>{const v=t.current;if(v){if(r){u.current=v.scrollHeight;return}if(o&&!c){const _=s5(u.current,v.scrollHeight);_>0&&(v.scrollTop+=_)}c&&(o?v.scrollTo({top:0,behavior:"smooth"}):v.scrollTo({top:v.scrollHeight,behavior:"smooth"})),u.current=v.scrollHeight}},[s,c,o,r,t]);const g=y.useCallback(()=>{const v=t.current;if(!v)return;const _=o?0:v.scrollHeight;v.scrollTo({top:_,behavior:"smooth"}),d(!0)},[t,o]);return{isAtAnchor:c,scrollToAnchor:g}}const i5=new Set(["text","output","user_input","tool_use","tool_result","error"]);function hl(t){return i5.has(t.eventType)}function o5(t){var s;switch(t.eventType){case"tool_result":{if((s=t.toolUseCtx)!=null&&s.detailedResult)return t.toolUseCtx.detailedResult;let o=t.content;if(t.content.trimStart().startsWith("{"))try{const r=JSON.parse(t.content);typeof r.content=="string"&&(o=r.content)}catch{}return o}case"tool_use":try{const o=JSON.parse(t.content),r=o.tool??"tool",c=o.args!==void 0?JSON.stringify(o.args,void 0,2):"";return`${r}
299
- ${c}`}catch{return t.content}default:return t.content}}function n_(t){if(t==null)return"";if(typeof t!="object")return String(t);const s=t;return typeof s.command=="string"?`\`${s.command}\``:typeof s.file_path=="string"||typeof s.filePath=="string"?`\`${s.file_path??s.filePath}\``:typeof s.path=="string"?`\`${s.path}\``:typeof s.query=="string"?`\`${s.query}\``:typeof s.pattern=="string"?`\`${s.pattern}\``:""}function z1(t){var o;const s=[];for(const r of t){if(!hl(r))continue;const c=new Date(r.timestamp).toLocaleTimeString();switch(r.eventType){case"text":case"output":{s.push(`**Assistant** (${c}):
300
- ${r.content}`);break}case"user_input":{s.push(`**User** (${c}):
301
- ${r.content}`);break}case"tool_result":{let d=((o=r.toolUseCtx)==null?void 0:o.detailedResult)??void 0;if(!d&&(d=r.content,r.content.trimStart().startsWith("{")))try{const u=JSON.parse(r.content);typeof u.content=="string"&&(d=u.content)}catch{}if(r.toolUseCtx){const u=n_(r.toolUseCtx.args),p=u?`**Tool: ${r.toolUseCtx.tool}** ${u}`:`**Tool: ${r.toolUseCtx.tool}**`;s.push(`${p} (${c}):
302
- ${d}`)}else s.push(`**Tool output** (${c}):
303
- ${d}`);break}case"tool_use":{let d="tool",u;try{const g=JSON.parse(r.content);d=g.tool??"tool",u=g.args}catch{}const p=n_(u),m=p?`**Tool: ${d}** ${p}`:`**Tool: ${d}**`;u!==void 0?s.push(`${m} (${c}):
304
- \`\`\`json
305
- ${JSON.stringify(u,void 0,2)}
306
- \`\`\``):s.push(`${m} (${c}):`);break}case"error":{s.push(`**Error** (${c}):
307
- ${r.content}`);break}}}return s.join(`
308
-
309
- `)}function r5(t,s){const o=l5(t),r=z1(s);return`--- Forwarded from ${o} ---
310
-
311
- ${r}
312
-
313
- --- End forwarded ---`}function l5(t){return t.replace(/[\r\n]+/g," ").trim().replace(/---/g,"—")}function c5({events:t,formatForClipboard:s}){const[o,r]=y.useState(!1),[c,d]=y.useState(new Set),u=y.useRef(void 0),p=y.useMemo(()=>c.size,[c]),m=y.useCallback(S=>{r(!0),S!==void 0?(d(new Set([S])),u.current=S):(d(new Set),u.current=void 0)},[]),g=y.useCallback(()=>{r(!1),d(new Set),u.current=void 0},[]),v=y.useCallback((S,j)=>{if(j&&u.current!==void 0){const w=Math.min(u.current,S),T=Math.max(u.current,S);d(C=>{const A=new Set(C);for(let L=w;L<=T;L++)L<t.length&&hl(t[L])&&A.add(L);return A})}else d(w=>{const T=new Set(w);return T.has(S)?T.delete(S):T.add(S),T.size===0?(r(!1),u.current=void 0):u.current=S,T})},[t]),_=y.useCallback(()=>{const S=new Set;for(let j=0;j<t.length;j++)hl(t[j])&&S.add(j);d(S)},[t]),b=y.useCallback(()=>{d(new Set)},[]),x=y.useCallback(async()=>{const j=[...c].sort((T,C)=>T-C).filter(T=>T<t.length).map(T=>t[T]);if(j.length===0)return!1;const w=s(j);try{return await navigator.clipboard.writeText(w),!0}catch{return!1}},[c,t,s]);return{isSelecting:o,selectedIndices:c,selectedCount:p,enterSelectionMode:m,cancelSelection:g,toggleEvent:v,selectAll:_,deselectAll:b,copySelected:x}}const d5="_wrapper_1cdza_1",u5="_scrollContainer_1cdza_9",f5="_selectingPadding_1cdza_16",p5="_toolbar_1cdza_20",m5="_directionToggle_1cdza_27",h5="_scrollToAnchor_1cdza_65",g5="_scrollToAnchorBottom_1cdza_89",v5="_scrollToAnchorTop_1cdza_93",y5="_eventOverflowWarning_1cdza_97",oa={wrapper:d5,scrollContainer:u5,selectingPadding:f5,toolbar:p5,directionToggle:m5,scrollToAnchor:h5,scrollToAnchorBottom:g5,scrollToAnchorTop:v5,eventOverflowWarning:y5},b5=10*1024,_5=new Set(["running","idle"]);function x5(t){const s=new Date(t.timestamp).toLocaleTimeString();switch(t.eventType){case"text":case"output":return`Select message from assistant at ${s}`;case"user_input":return`Select message from user at ${s}`;case"tool_result":case"tool_use":return`Select tool event at ${s}`;case"error":return`Select error at ${s}`;default:return`Select event at ${s}`}}const H1="grackle-stream-direction";function k5(){try{return localStorage.getItem(H1)==="reversed"}catch{return!1}}function S5({eventsDropped:t}){return t<=0?a.jsx(a.Fragment,{}):a.jsxs("div",{className:oa.eventOverflowWarning,role:"alert",children:[a.jsx(wm,{size:Ut,"aria-hidden":"true"})," ",t.toLocaleString()," older event",t===1?"":"s"," were dropped — only the most recent 5,000 are shown. Full history is available in the session log."]})}function al({events:t,eventsDropped:s,emptyState:o,onShowToast:r,sessions:c,currentSessionId:d,environments:u,personas:p,onForward:m}){const g=y.useRef(null),[v,_]=y.useState(k5),b=O3(),[x,S]=y.useState(!1),[j,w]=y.useState(!1),[T,C]=y.useState(void 0),A=c5({events:t,formatForClipboard:z1}),L=y.useMemo(()=>t.filter(hl).length,[t]),E=y.useMemo(()=>c?c.filter(q=>_5.has(q.status)&&q.id!==d):[],[c,d]),M=y.useMemo(()=>v?[...t].reverse():t,[t,v]),{isAtAnchor:H,scrollToAnchor:D}=a5({scrollRef:g,contentLength:t.length,isReversed:v,paused:A.isSelecting}),z=()=>{const q=!v;_(q);try{localStorage.setItem(H1,q?"reversed":"default")}catch{}};y.useEffect(()=>{if(!A.isSelecting)return;const q=le=>{le.key==="Escape"&&!x&&!j&&A.cancelSelection()};return window.addEventListener("keydown",q),()=>{window.removeEventListener("keydown",q)}},[A.isSelecting,A.cancelSelection,x,j]);const Y=y.useCallback(async()=>{await A.copySelected()&&(r==null||r(`Copied ${A.selectedCount} message${A.selectedCount===1?"":"s"} to clipboard`,"success"))},[A,r]),V=y.useCallback(()=>[...A.selectedIndices].sort((le,de)=>le-de).filter(le=>le<t.length).map(le=>t[le]),[A.selectedIndices,t]),Q=y.useCallback(q=>{if(!q)return"this session";const le=c==null?void 0:c.find(xe=>xe.id===q);if(!le)return q.slice(0,8);const de=u==null?void 0:u.find(xe=>xe.id===le.environmentId);return(de==null?void 0:de.displayName)??le.environmentId.slice(0,8)},[c,u]),ge=y.useCallback(async(q,le)=>{if(!m)return;const de=Q(q);try{await m(q,le);const xe=A.selectedCount;r==null||r(`Forwarded ${xe} message${xe===1?"":"s"} to ${de}`,"success"),A.cancelSelection()}catch{r==null||r("Failed to forward messages","error")}},[m,Q,r,A]),X=y.useCallback(q=>{S(!1);const le=V(),de=Q(d),xe=r5(de,le);if(new TextEncoder().encode(xe).length>b5){C({sessionId:q,text:xe}),w(!0);return}ge(q,xe).catch(()=>{})},[V,Q,d,ge]),re=y.useCallback(()=>{w(!1),T&&(ge(T.sessionId,T.text).catch(()=>{}),C(void 0))},[T,ge]),B=y.useCallback(()=>{w(!1),C(void 0)},[]),R=b?0:.2,Z=v?-8:8,me=T?Math.round(new TextEncoder().encode(T.text).length/1024):0;return a.jsxs("div",{className:oa.wrapper,children:[a.jsx("div",{className:oa.toolbar,children:a.jsx(Oi,{text:v?"Showing newest first":"Showing oldest first",children:a.jsx("button",{className:oa.directionToggle,onClick:z,"aria-label":v?"Switch to newest at bottom":"Switch to newest at top","data-testid":"direction-toggle",children:v?a.jsx(Sy,{size:Ut,"aria-hidden":"true"}):a.jsx(jy,{size:Ut,"aria-hidden":"true"})})})}),a.jsxs("div",{ref:g,className:`${oa.scrollContainer} ${A.isSelecting?oa.selectingPadding:""}`,"data-testid":"event-stream-scroll",children:[t.length===0&&o,a.jsx(S5,{eventsDropped:s}),a.jsx(ls,{initial:!1,children:M.map((q,le)=>{const de=v?t.length-1-le:le;return a.jsx(At.div,{initial:{opacity:0,y:Z},animate:{opacity:1,y:0},transition:{duration:R,ease:"easeOut"},children:a.jsx(j6,{copyText:o5(q),isContentBearing:hl(q),isSelecting:A.isSelecting,isSelected:A.selectedIndices.has(de),checkboxLabel:x5(q),onSelect:()=>{A.enterSelectionMode(de)},onToggle:xe=>{A.toggleEvent(de,xe)},onCopied:()=>{r==null||r("Copied to clipboard","success")},children:a.jsx(cD,{event:q,toolUseCtx:q.toolUseCtx,settled:q.settled})})},`${q.sessionId}-${q.timestamp}-${de}`)})})]}),a.jsx(ls,{children:A.isSelecting&&a.jsx(M6,{selectedCount:A.selectedCount,totalSelectable:L,onSelectAll:A.selectAll,onDeselectAll:A.deselectAll,onCopy:()=>{Y().catch(()=>{})},onForward:m!==void 0?()=>{S(!0)}:void 0,forwardDisabled:E.length===0,onCancel:A.cancelSelection})}),a.jsx(t5,{isOpen:x,sessions:E,environments:u??[],personas:p,onSelect:X,onCancel:()=>{S(!1)}}),a.jsx(ks,{isOpen:j,title:"Send large message?",description:`This will forward a large message (${me} KB). Continue?`,confirmLabel:"Send",onConfirm:re,onCancel:B}),a.jsx(ls,{children:!H&&a.jsxs(At.button,{className:`${oa.scrollToAnchor} ${v?oa.scrollToAnchorTop:oa.scrollToAnchorBottom}`,onClick:D,initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},transition:{duration:.15},"aria-label":"Scroll to latest","data-testid":"scroll-to-anchor",children:[v?a.jsx(jy,{size:Ut,"aria-hidden":"true"}):a.jsx(Sy,{size:Ut,"aria-hidden":"true"})," New events"]})})]})}function gh(t){const{value:s,onSave:o,validate:r,fieldId:c,activeFieldId:d,onActivate:u,enterToSave:p=!0,trimOnSave:m=!0}=t,[g,v]=y.useState(""),[_,b]=y.useState(""),x=y.useRef(!1),S=d===c,j=y.useCallback(H=>{v(H),b("")},[]),w=y.useCallback(()=>{b("")},[]),T=y.useCallback(()=>{x.current=!1,u==null||u(null),v(""),b("")},[u]),C=y.useCallback(()=>{const H=m?g.trim():g;if(r){const z=r(g);if(z){b(z);return}}const D=m?s.trim():s;if(H===D){T();return}o(H),T()},[g,s,m,r,o,T]),A=y.useCallback(()=>{x.current=!0,u==null||u(c),v(s),b("")},[c,s,u]),L=y.useCallback(H=>{if(x.current){x.current=!1;return}H.relatedTarget instanceof HTMLElement&&H.relatedTarget.dataset.editAction===c||C()},[c,C]),E=y.useCallback(H=>{H.key==="Escape"?T():H.key==="Enter"&&p&&C()},[T,p,C]),M=(()=>{if(!S)return!1;const H=m?s.trim():s;return(m?g.trim():g)!==H})();return y.useEffect(()=>{!S&&(g!==""||_!=="")&&(v(""),b(""))},[S,g,_]),{isEditing:S,draft:g,error:_,isDirty:M,startEdit:A,cancelEdit:T,save:C,setDraft:j,clearError:w,handleBlur:L,handleKeyDown:E,ignoreInitialBlurRef:x}}const j5="_editFieldWrapper_yuzty_1",T5="_editInput_yuzty_10",w5="_editTextarea_yuzty_42",N5="_editSelect_yuzty_78",C5="_editError_yuzty_111",E5="_editInputInvalid_yuzty_118",A5="_editHint_yuzty_123",D5="_unsavedDot_yuzty_132",R5="_metaValueClickable_yuzty_140",M5="_editButton_yuzty_159",I5="_metaPlaceholder_yuzty_175",O5="_worktreeToggle_yuzty_180",at={editFieldWrapper:j5,editInput:T5,editTextarea:w5,editSelect:N5,editError:C5,editInputInvalid:E5,editHint:A5,unsavedDot:D5,metaValueClickable:R5,editButton:M5,metaPlaceholder:I5,worktreeToggle:O5};function Yt(t){const{value:s,onSave:o,validate:r,mode:c="edit",fieldId:d="text",activeFieldId:u,onActivate:p,onChange:m,renderDisplay:g,placeholder:v,maxLength:_,ariaLabel:b,"data-testid":x}=t,S=y.useRef(null),j=gh({value:s,onSave:o,validate:r,fieldId:d,activeFieldId:u,onActivate:p,enterToSave:!0,trimOnSave:!0});if(y.useEffect(()=>{if(j.isEditing){const T=window.setTimeout(()=>{var C;(C=S.current)==null||C.focus()},0);return()=>window.clearTimeout(T)}},[j.isEditing]),c==="create"){const T=A=>{m==null||m(A.target.value)},C=r==null?void 0:r(s);return a.jsxs("div",{className:at.editFieldWrapper,children:[a.jsx("input",{className:`${at.editInput} ${C?at.editInputInvalid:""}`,value:s,onChange:T,maxLength:_,placeholder:v,"aria-label":b,"data-testid":x?`${x}-input`:void 0}),C&&a.jsx("span",{className:at.editError,"data-testid":"edit-error",children:C})]})}if(j.isEditing)return a.jsxs("div",{className:at.editFieldWrapper,children:[a.jsx("input",{ref:S,className:`${at.editInput} ${j.error?at.editInputInvalid:""}`,value:j.draft,onChange:T=>j.setDraft(T.target.value),onBlur:j.handleBlur,onKeyDown:j.handleKeyDown,maxLength:_,placeholder:v,"aria-label":b,"data-testid":x?`${x}-input`:void 0}),j.isDirty&&a.jsx("span",{className:at.unsavedDot,title:"Unsaved changes"}),j.error&&a.jsx("span",{className:at.editError,"data-testid":"edit-error",children:j.error}),a.jsx("span",{className:at.editHint,children:"Enter to save · Esc to cancel"})]});const w=g==null?void 0:g(s);return a.jsxs("span",{role:"button",tabIndex:0,className:at.metaValueClickable,onClick:()=>j.startEdit(),onKeyDown:T=>{(T.key==="Enter"||T.key===" ")&&(T.preventDefault(),j.startEdit())},title:"Click to edit","aria-label":b,"data-testid":x?`${x}-button`:void 0,children:[w!==void 0?w:s?a.jsx("span",{children:s}):a.jsx("span",{className:at.metaPlaceholder,children:v||"None"}),a.jsx("span",{className:at.editButton,"aria-hidden":"true",children:"✏️"})]})}function ym(t){const{value:s,onSave:o,validate:r,mode:c="edit",fieldId:d="textarea",activeFieldId:u,onActivate:p,onChange:m,renderDisplay:g,placeholder:v,ariaLabel:_,"data-testid":b}=t,x=y.useRef(null),S=gh({value:s,onSave:o,validate:r,fieldId:d,activeFieldId:u,onActivate:p,enterToSave:!1,trimOnSave:!1});if(y.useEffect(()=>{if(S.isEditing){const w=window.setTimeout(()=>{var T;(T=x.current)==null||T.focus()},0);return()=>window.clearTimeout(w)}},[S.isEditing]),c==="create"){const w=C=>{m==null||m(C.target.value)},T=r==null?void 0:r(s);return a.jsxs("div",{className:at.editFieldWrapper,children:[a.jsx("textarea",{className:`${at.editTextarea} ${T?at.editInputInvalid:""}`,value:s,onChange:w,placeholder:v,"aria-label":_,"data-testid":b?`${b}-input`:void 0}),T&&a.jsx("span",{className:at.editError,"data-testid":"edit-error",children:T})]})}if(S.isEditing)return a.jsxs("div",{className:at.editFieldWrapper,children:[a.jsx("textarea",{ref:x,className:`${at.editTextarea} ${S.error?at.editInputInvalid:""}`,value:S.draft,onChange:w=>S.setDraft(w.target.value),onBlur:S.handleBlur,onKeyDown:S.handleKeyDown,title:_,"aria-label":_,"data-testid":b?`${b}-input`:void 0}),S.isDirty&&a.jsx("span",{className:at.unsavedDot,title:"Unsaved changes"}),S.error&&a.jsx("span",{className:at.editError,"data-testid":"edit-error",children:S.error}),a.jsx("span",{className:at.editHint,children:"Tab to save · Esc to cancel"})]});const j=g==null?void 0:g(s);return a.jsxs("span",{role:"button",tabIndex:0,className:at.metaValueClickable,onClick:()=>S.startEdit(),onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),S.startEdit())},title:"Click to edit","aria-label":_,"data-testid":b?`${b}-button`:void 0,children:[j!==void 0?j:s?a.jsx("span",{children:s}):a.jsx("span",{className:at.metaPlaceholder,children:v||"None"}),a.jsx("span",{className:at.editButton,"aria-hidden":"true",children:"✏️"})]})}function jd(t){var A;const{value:s,onSave:o,mode:r="edit",options:c,fieldId:d="select",activeFieldId:u,onActivate:p,onChange:m,renderDisplay:g,placeholder:v,ariaLabel:_,"data-testid":b}=t,x=y.useRef(null),S=gh({value:s,onSave:o,fieldId:d,activeFieldId:u,onActivate:p,enterToSave:!1,trimOnSave:!1});y.useEffect(()=>{if(S.isEditing){const L=window.setTimeout(()=>{var E;(E=x.current)==null||E.focus()},0);return()=>window.clearTimeout(L)}},[S.isEditing]);const j=y.useCallback(L=>{const E=L.target.value;S.ignoreInitialBlurRef.current=!1,E!==s&&o(E),S.cancelEdit()},[s,o,S]),w=y.useCallback(L=>{if(S.ignoreInitialBlurRef.current){S.ignoreInitialBlurRef.current=!1;return}L.relatedTarget instanceof HTMLElement&&L.relatedTarget.dataset.editAction===d||S.cancelEdit()},[d,S]);if(r==="create")return a.jsx("select",{className:at.editSelect,value:s,onChange:L=>m==null?void 0:m(L.target.value),"aria-label":_,"data-testid":b?`${b}-select`:void 0,children:c.map(L=>a.jsx("option",{value:L.value,children:L.label},L.value))});if(S.isEditing)return a.jsx("select",{ref:x,className:at.editSelect,value:S.draft,onChange:j,onBlur:w,title:_,"aria-label":_,"data-testid":b?`${b}-select`:void 0,children:c.map(L=>a.jsx("option",{value:L.value,children:L.label},L.value))});const T=g==null?void 0:g(s),C=(A=c.find(L=>L.value===s))==null?void 0:A.label;return a.jsxs("button",{type:"button",className:at.metaValueClickable,onClick:()=>S.startEdit(),title:"Click to change","aria-label":_,"data-testid":b?`${b}-button`:void 0,children:[T!==void 0?T:C?a.jsx("span",{children:C}):a.jsx("span",{className:at.metaPlaceholder,children:v||"None"}),a.jsx("span",{className:at.editButton,"aria-hidden":"true",children:"✏️"})]})}function L5(t){const{checked:s,onChange:o,label:r,ariaLabel:c,"data-testid":d}=t;return a.jsxs("label",{className:at.worktreeToggle,"data-testid":d,children:[a.jsx("input",{type:"checkbox",checked:s,onChange:u=>o(u.target.checked),"aria-label":c}),a.jsx("span",{children:r})]})}const B5="_nav_1snmp_1",$5="_searchForm_1snmp_8",z5="_searchInput_1snmp_15",H5="_searchButton_1snmp_33",P5="_clearButton_1snmp_68",U5="_workspaceSelect_1snmp_85",V5="_listHeader_1snmp_99",q5="_nodeList_1snmp_108",G5="_nodeItem_1snmp_116",F5="_indicator_1snmp_129",Z5="_label_1snmp_136",K5="_badge_1snmp_145",ns={nav:B5,searchForm:$5,searchInput:z5,searchButton:H5,clearButton:P5,workspaceSelect:U5,listHeader:V5,nodeList:q5,nodeItem:G5,indicator:F5,label:Z5,badge:K5};function Y5({nodes:t,workspaces:s,loading:o,searchQuery:r,onSearch:c,onClearSearch:d,onSelectNode:u,onWorkspaceChange:p}){const[m,g]=y.useState(""),v=y.useCallback(S=>{S.preventDefault(),m.trim()&&c(m.trim())},[m,c]),_=y.useCallback(()=>{g(""),d()},[d]),b=y.useCallback(S=>{u(S)},[u]),x=y.useCallback(S=>{g(""),p(S)},[p]);return a.jsxs("div",{className:ns.nav,"data-testid":"knowledge-nav",children:[a.jsxs("form",{className:ns.searchForm,onSubmit:v,children:[a.jsx("input",{className:ns.searchInput,type:"text",placeholder:"Search...",value:m,onChange:S=>{g(S.target.value)},"data-testid":"knowledge-search-input","aria-label":"Search knowledge nodes"}),a.jsx("button",{type:"submit",className:ns.searchButton,disabled:o,children:"Go"})]}),r&&a.jsx("button",{type:"button",className:ns.clearButton,onClick:_,children:"Clear search"}),a.jsxs("select",{className:ns.workspaceSelect,onChange:S=>{x(S.target.value)},"data-testid":"knowledge-workspace-filter","aria-label":"Filter by workspace",children:[a.jsx("option",{value:"",children:"All workspaces"}),s.map(S=>a.jsx("option",{value:S.id,children:S.name},S.id))]}),a.jsxs("div",{className:ns.listHeader,children:["Nodes (",t.length,")"]}),a.jsx("ul",{className:ns.nodeList,children:t.map(S=>a.jsxs("li",{className:ns.nodeItem,onClick:()=>{b(S.id)},onKeyDown:j=>{(j.key==="Enter"||j.key===" ")&&(j.preventDefault(),b(S.id))},role:"button",tabIndex:0,children:[a.jsx("span",{className:ns.indicator,style:{backgroundColor:S.kind==="reference"?"#4A9EFF":S.category==="decision"?"#22C55E":S.category==="concept"?"#A855F7":S.category==="snippet"?"#6B7280":"#EAB308"}}),a.jsx("span",{className:ns.label,children:S.label}),a.jsx("span",{className:ns.badge,children:S.kind==="reference"?S.sourceType:S.category})]},S.id))})]})}const J5="_container_bwu10_1",W5="_hamburger_bwu10_33",X5="_brand_bwu10_49",Q5="_brandLogo_bwu10_68",eI="_info_bwu10_75",tI="_connectionLabel_bwu10_90",nI="_connectionDot_bwu10_103",sI="_connected_bwu10_106",aI="_disconnected_bwu10_110",iI="_connecting_bwu10_113",Ms={container:J5,hamburger:W5,brand:X5,brandLogo:Q5,info:eI,connectionLabel:tI,connectionDot:nI,connected:sI,disconnected:aI,connecting:iI},oI={connected:"Connected",connecting:"Connecting...",disconnected:"Disconnected"},rI={connected:Ms.connected,connecting:Ms.connecting,disconnected:Ms.disconnected};function lI({connectionStatus:t,environments:s,sessions:o,onToggleSidebar:r,sidebarOpen:c}){const d=dt(),u=s.length,p=s.filter(v=>v.status==="connected").length,m=o.filter(v=>["running","idle"].includes(v.status)).length,g=oI[t];return a.jsxs("div",{className:Ms.container,children:[r&&a.jsx("button",{type:"button",className:Ms.hamburger,onClick:r,"aria-label":"Toggle sidebar","aria-expanded":c,children:a.jsx(fT,{size:Et,"aria-hidden":"true"})}),a.jsx(Oi,{text:"Home",placement:"bottom",children:a.jsxs("button",{type:"button",className:Ms.brand,onClick:()=>d(Ii),"data-testid":"statusbar-brand",children:[a.jsx("img",{src:"/icon-192x192.png",alt:"",className:Ms.brandLogo,"aria-hidden":"true","data-testid":"statusbar-logo"}),"Grackle"]})}),a.jsxs("div",{className:Ms.info,children:[a.jsxs("span",{"aria-label":g,children:[a.jsx("span",{className:`${Ms.connectionDot} ${rI[t]}`,"aria-hidden":"true",children:a.jsx(Ja,{size:Nm,fill:"currentColor"})})," ",a.jsx("span",{className:Ms.connectionLabel,"aria-hidden":"true",children:g})]}),a.jsxs("span",{children:[p,"/",u," env",u!==1?"s":""]}),a.jsxs("span",{children:[m," active"]})]})]})}const cI="_nav_13gkc_1",dI="_tab_13gkc_35",uI="_tabIcon_13gkc_68",fI="_tabLabel_13gkc_79",pI="_tabActive_13gkc_84",Gr={nav:cI,tab:dI,tabIcon:uI,tabLabel:fI,tabActive:pI},ld=[{view:"dashboard",label:"Dashboard",icon:a.jsx(Qj,{size:Et}),route:Ii,testId:"sidebar-tab-dashboard"},{view:"chat",label:"Chat",icon:a.jsx(L_,{size:Et}),route:cl,testId:"sidebar-tab-chat"},{view:"tasks",label:"Tasks",icon:a.jsx(Lj,{size:Et}),route:GN,testId:"sidebar-tab-tasks"},{view:"environments",label:"Environments",icon:a.jsx(hT,{size:Et}),route:Bo,testId:"sidebar-tab-environments"},{view:"knowledge",label:"Knowledge",icon:a.jsx(Cj,{size:Et}),route:ix,testId:"sidebar-tab-knowledge"},{view:"findings",label:"Findings",icon:a.jsx(fd,{size:Et}),route:$d,testId:"sidebar-tab-findings"},{view:"settings",label:"Settings",icon:a.jsx(AT,{size:Et}),route:zN,testId:"sidebar-tab-settings"}];function mI(t){return t===Ii||t==="/"?"dashboard":t.startsWith("/chat")||t.startsWith("/sessions")?"chat":t.startsWith("/workspaces")||t.startsWith("/environments")?"environments":t.startsWith(ix)?"knowledge":t.startsWith($d)?"findings":t.startsWith(Ai)?"settings":"tasks"}function hI({tabs:t=ld}){const s=Wt(),o=dt(),r=y.useRef(null),c=mI(s.pathname),d=y.useCallback(p=>{o(p.route)},[o]),u=y.useCallback(p=>{var b,x;const m=(b=r.current)==null?void 0:b.querySelectorAll('[role="tab"]');if(!m)return;const g=Array.from(m).findIndex(S=>S===document.activeElement),v=g>=0?g:t.findIndex(S=>S.view===c);let _=v;if(p.key==="ArrowRight"||p.key==="j"||p.key==="J")p.preventDefault(),_=(v+1)%t.length;else if(p.key==="ArrowLeft"||p.key==="k"||p.key==="K")p.preventDefault(),_=(v-1+t.length)%t.length;else if(p.key==="Home")p.preventDefault(),_=0;else if(p.key==="End")p.preventDefault(),_=t.length-1;else return;o(t[_].route),(x=m[_])==null||x.focus()},[c,o,t]);return a.jsx("nav",{className:Gr.nav,ref:r,role:"tablist","aria-orientation":"horizontal","aria-label":"App navigation",onKeyDown:u,"data-testid":"sidebar-nav",children:t.map(p=>{const m=p.view===c;return a.jsx(Oi,{text:p.label,placement:"bottom",children:a.jsxs("button",{role:"tab",type:"button","aria-selected":m,tabIndex:m?0:-1,className:`${Gr.tab} ${m?Gr.tabActive:""}`,onClick:()=>d(p),"data-testid":p.testId,"aria-label":p.label,children:[a.jsx("span",{className:Gr.tabIcon,"aria-hidden":"true",children:p.icon}),a.jsx("span",{className:Gr.tabLabel,children:p.label})]})},p.view)})})}const gI="_container_pi6ii_1",vI="_content_pi6ii_66",s_={container:gI,content:vI},yI=320,P1=220,U1=600,V1="grackle-sidebar-width";function bI(){try{const t=localStorage.getItem(V1);if(t!==null){const s=Number(t);if(Number.isFinite(s)&&s>=P1&&s<=U1)return s}}catch{}return yI}function _I(t){try{localStorage.setItem(V1,String(t))}catch{}}function xI({content:t}){const[s]=y.useState(bI),o=y.useRef(null);if(y.useEffect(()=>{const r=o.current;if(!r)return;const c=new ResizeObserver(d=>{for(const u of d){const p=u.borderBoxSize[0];if(p){const m=Math.round(p.inlineSize);m>=P1&&m<=U1&&_I(m)}}});return c.observe(r),()=>{c.disconnect()}},[]),t!==void 0)return a.jsx("div",{className:s_.container,ref:o,"data-testid":"sidebar",style:{width:s},children:a.jsx("div",{className:s_.content,children:t})})}const kI="_bar_tnfsh_1",SI="_btnPrimary_tnfsh_32",jI="_statusText_tnfsh_85",TI="_statusCompleted_tnfsh_90",wI="_statusFailed_tnfsh_94",NI="_statusBlocked_tnfsh_98",CI="_hintText_tnfsh_103",Ct={bar:kI,btnPrimary:SI,statusText:jI,statusCompleted:TI,statusFailed:wI,statusBlocked:NI,hintText:CI};function EI({sessions:t,tasks:s,environments:o}){const r=dt(),c=Wt(),d=Dt("/sessions/:sessionId"),u=Dt("/tasks/:taskId"),p=Dt("/tasks/:taskId/stream"),m=Dt("/tasks/:taskId/findings"),g=Dt("/tasks/:taskId/edit"),v=Dt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId"),_=Dt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream"),b=Dt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/findings"),x=Dt("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit"),S=Dt("/sessions/new"),j=Dt("/environments/:environmentId/workspaces/:workspaceId"),w=Dt("/tasks/new"),T=Dt("/chat"),C=Dt("/"),A=Dt("/settings/*"),L=d==null?void 0:d.params.sessionId,E=(u==null?void 0:u.params.taskId)??(p==null?void 0:p.params.taskId)??(m==null?void 0:m.params.taskId)??(v==null?void 0:v.params.taskId)??(_==null?void 0:_.params.taskId)??(b==null?void 0:b.params.taskId)??(x==null?void 0:x.params.taskId),M=v??_??b??x,H=(M==null?void 0:M.params.environmentId)??(j==null?void 0:j.params.environmentId),D=c.pathname.startsWith("/environments")&&!j&&!M,z=!!T,Y=!!S,V=!!j&&!v&&!_&&!b&&!x,Q=!!w;if(!!C&&!Y&&!V&&!Q||!!A||(!!g||!!x)||Q||D||Y)return a.jsx(a.Fragment,{});if(z)return o.find(R=>R.adapterType==="local"&&R.status==="connected")?a.jsx(a.Fragment,{}):a.jsx("div",{className:Ct.bar,children:a.jsx("span",{className:Ct.hintText,children:"Add a local environment to start chatting"})});if(V)return a.jsx("div",{className:Ct.bar,children:a.jsx("span",{className:Ct.hintText,children:"Select a task or click + to create one"})});if(E){const B=s.find(me=>me.id===E);if(!B)return a.jsx("div",{className:Ct.bar,children:a.jsx("span",{className:Ct.hintText,children:"Loading..."})});const R=new Map(s.map(me=>[me.id,me])),Z=B.dependsOn.some(me=>{const q=R.get(me);return q!==void 0&&q.status!=="complete"});if(B.status==="not_started"){const me=Z?B.dependsOn.map(q=>R.get(q)).filter(q=>q&&q.status!=="complete").map(q=>q.title):[];return a.jsx("div",{className:Ct.bar,children:Z?a.jsxs("span",{className:Ct.statusBlocked,children:["Blocked by: ",me.join(", ")]}):a.jsx("span",{className:Ct.hintText,children:"Use the buttons above to start or manage this task"})})}if(B.status==="working"||B.status==="paused"){const me=B.latestSessionId||void 0,q=me?t.find(de=>de.id===me):void 0;return q&&q.status!=="stopped"?a.jsx(a.Fragment,{}):a.jsx("div",{className:Ct.bar,children:a.jsx("span",{className:Ct.hintText,children:"Waiting for agent..."})})}if(B.status==="complete")return a.jsxs("div",{className:Ct.bar,children:[a.jsx("span",{className:`${Ct.statusText} ${Ct.statusCompleted}`,children:"Task completed"}),a.jsx("button",{onClick:()=>r($i(B.workspaceId,void 0,H)),className:Ct.btnPrimary,children:"+ New Task"})]});if(B.status==="failed")return a.jsx("div",{className:Ct.bar,children:a.jsx("span",{className:`${Ct.statusText} ${Ct.statusFailed}`,children:"Task failed"})})}if(L){const B=t.find(me=>me.id===L),R=(B==null?void 0:B.status)==="stopped";if(B!==void 0&&!R)return a.jsx(a.Fragment,{});if(R)return a.jsxs("div",{className:Ct.bar,children:[a.jsxs("span",{className:`${Ct.statusText} ${Ct.hintText}`,children:["Session ",B.endReason||B.status]}),a.jsx("button",{onClick:()=>r(tx(B.environmentId)),className:Ct.btnPrimary,children:"+ New Chat"})]})}return a.jsx("div",{className:Ct.bar,children:a.jsx("span",{className:Ct.hintText,children:"Loading..."})})}const AI="_nav_14i94_1",DI="_tab_14i94_24",RI="_tabActive_14i94_62",MI="_tabLabel_14i94_75",II="_statusDot_14i94_81",OI="_pulse_14i94_87",LI="_addButton_14i94_99",BI="_empty_14i94_132",qa={nav:AI,tab:DI,tabActive:RI,tabLabel:MI,statusDot:II,pulse:OI,addButton:LI,empty:BI},$I={connected:"var(--accent-green)",sleeping:"var(--accent-yellow)",error:"var(--accent-red)",disconnected:"var(--text-tertiary)",connecting:"var(--accent-blue)"};function zI({environments:t}){const s=dt(),o=y.useRef(null),r=Dt("/environments/:environmentId"),c=Dt("/environments/:environmentId/edit"),d=Dt("/environments/:environmentId/workspaces/:workspaceId"),u=Dt("/environments/:environmentId/workspaces/:workspaceId/*"),p=(r==null?void 0:r.params.environmentId)??(c==null?void 0:c.params.environmentId)??(d==null?void 0:d.params.environmentId)??(u==null?void 0:u.params.environmentId),m=p==="new"?void 0:p,g=y.useCallback(b=>{s(Mi(b))},[s]),v=y.useCallback(b=>{var T;const x=(T=o.current)==null?void 0:T.querySelectorAll('[role="tab"]');if(!x||x.length===0)return;const S=Array.from(x).findIndex(C=>C===document.activeElement),j=S>=0?S:t.findIndex(C=>C.id===m);let w=j;if(b.key==="ArrowDown"||b.key==="j"||b.key==="J")b.preventDefault(),w=(j+1)%x.length;else if(b.key==="ArrowUp"||b.key==="k"||b.key==="K")b.preventDefault(),w=(j-1+x.length)%x.length;else if(b.key==="Home")b.preventDefault(),w=0;else if(b.key==="End")b.preventDefault(),w=x.length-1;else return;w<t.length&&s(Mi(t[w].id)),x[w].focus()},[m,t,s]),_=m??(t.length>0?t[0].id:void 0);return a.jsxs("div",{className:qa.nav,"data-testid":"environment-nav",children:[a.jsx("nav",{ref:o,role:"tablist","aria-orientation":"vertical","aria-label":"Environments",onKeyDown:v,children:t.map(b=>{const x=b.id===m,S=b.id===_,j=$I[b.status]||"var(--text-tertiary)",w=b.status==="connected";return a.jsxs("button",{role:"tab",type:"button","aria-selected":x,tabIndex:S?0:-1,className:`${qa.tab} ${x?qa.tabActive:""}`,onClick:()=>g(b.id),"data-testid":"env-nav-item",children:[a.jsx("span",{className:`${qa.statusDot} ${w?qa.pulse:""}`,style:{color:j},"aria-hidden":"true",children:a.jsx(Ja,{size:Nm,fill:"currentColor"})}),a.jsx("span",{className:qa.tabLabel,title:b.displayName||b.id,children:b.displayName||b.id})]},b.id)})}),a.jsx("button",{type:"button",className:qa.addButton,onClick:()=>s(BN),title:"Add environment","data-testid":"env-nav-add",children:"+ Add Environment"}),t.length===0&&a.jsx("div",{className:qa.empty,children:"No environments yet."})]})}function Uo(t){const s=new Date(t),o=new Date,r=o.getTime()-s.getTime(),c=Math.floor(r/1e3),d=Math.floor(c/60),u=Math.floor(d/60),p=Math.floor(u/24);if(c<60)return"just now";if(d<60)return`${d}m ago`;if(u<24)return`${u}h ago`;if(p===1)return"yesterday";if(p<7)return`${p} days ago`;const m=s.getFullYear()===o.getFullYear(),g=s.toLocaleString("en-US",{month:"short"}),v=s.getDate();return m?`${g} ${v}`:`${g} ${v} ${s.getFullYear()}`}function q1(t){const s=new Date(t);if(Number.isNaN(s.getTime()))return"—";const o=new Date,r=s.getTime()-o.getTime();if(r<=0)return"overdue";const c=Math.floor(r/1e3),d=Math.floor(c/60),u=Math.floor(d/60),p=Math.floor(u/24);if(c<60)return`in ${c}s`;if(d<60)return`in ${d}m`;if(u<24)return`in ${u}h`;if(p<7)return`in ${p} day${p===1?"":"s"}`;const m=s.getFullYear()===o.getFullYear(),g=s.toLocaleString("en-US",{month:"short"}),v=s.getDate();return m?`${g} ${v}`:`${g} ${v} ${s.getFullYear()}`}const a_={architecture:{text:"var(--accent-blue)",bg:"var(--accent-blue-dim)"},api:{text:"var(--accent-green)",bg:"var(--accent-green-dim)"},bug:{text:"var(--accent-red)",bg:"var(--accent-red-dim)"},decision:{text:"var(--accent-yellow)",bg:"var(--accent-yellow-dim)"},dependency:{text:"var(--accent-purple)",bg:"var(--accent-purple-dim)"},pattern:{text:"var(--accent-cyan)",bg:"var(--accent-cyan-dim)"},general:{text:"var(--text-secondary)",bg:"var(--bg-elevated)"}};function Td(t){return a_[t]||a_.general}const HI="_nav_dlm8m_1",PI="_categoryPills_dlm8m_24",UI="_categoryPill_dlm8m_24",VI="_tab_dlm8m_42",qI="_tabActive_dlm8m_80",GI="_tabContent_dlm8m_93",FI="_tabLabel_dlm8m_100",ZI="_tabMeta_dlm8m_106",KI="_categoryDot_dlm8m_111",YI="_empty_dlm8m_118",Ds={nav:HI,categoryPills:PI,categoryPill:UI,tab:VI,tabActive:qI,tabContent:GI,tabLabel:FI,tabMeta:ZI,categoryDot:KI,empty:YI};function JI({findings:t,workspaceId:s,environmentId:o}){const r=dt(),c=y.useRef(null),d=Dt("/findings/:findingId"),u=Dt("/environments/:environmentId/workspaces/:workspaceId/findings/:findingId"),p=(d==null?void 0:d.params.findingId)??(u==null?void 0:u.params.findingId),m=y.useMemo(()=>{const b=new Set(t.map(x=>x.category).filter(Boolean));return Array.from(b).sort()},[t]),g=y.useCallback(b=>{r(Qp(b,s,o))},[r,s,o]),v=y.useCallback(b=>{var T;const x=(T=c.current)==null?void 0:T.querySelectorAll('[role="tab"]');if(!x||x.length===0)return;const S=Array.from(x).findIndex(C=>C===document.activeElement),j=S>=0?S:t.findIndex(C=>C.id===p);let w=j;if(b.key==="ArrowDown"||b.key==="j"||b.key==="J")b.preventDefault(),w=(j+1)%x.length;else if(b.key==="ArrowUp"||b.key==="k"||b.key==="K")b.preventDefault(),w=(j-1+x.length)%x.length;else if(b.key==="Home")b.preventDefault(),w=0;else if(b.key==="End")b.preventDefault(),w=x.length-1;else return;w<t.length&&r(Qp(t[w].id,s,o)),x[w].focus()},[p,t,r,s,o]),_=p??(t.length>0?t[0].id:void 0);return a.jsxs("div",{className:Ds.nav,"data-testid":"findings-nav",children:[m.length>1&&a.jsx("div",{className:Ds.categoryPills,"data-testid":"findings-nav-categories",children:m.map(b=>a.jsx("span",{className:Ds.categoryPill,style:{color:Td(b).text},children:b},b))}),a.jsx("nav",{ref:c,role:"tablist","aria-orientation":"vertical","aria-label":"Findings",onKeyDown:v,children:t.map(b=>{const x=b.id===p,S=b.id===_;return a.jsxs("button",{role:"tab",type:"button","aria-selected":x,tabIndex:S?0:-1,className:`${Ds.tab} ${x?Ds.tabActive:""}`,onClick:()=>g(b.id),"data-testid":"finding-nav-item",children:[a.jsx("span",{className:Ds.categoryDot,style:{color:Td(b.category).text},"aria-hidden":"true",children:a.jsx(Ja,{size:Nm,fill:"currentColor"})}),a.jsxs("span",{className:Ds.tabContent,children:[a.jsx("span",{className:Ds.tabLabel,title:b.title,children:b.title}),a.jsx("span",{className:Ds.tabMeta,title:b.createdAt,children:Uo(b.createdAt)})]})]},b.id)})}),t.length===0&&a.jsx("div",{className:Ds.empty,children:"No findings yet. Agents will post discoveries here."})]})}function WI(t){if(t.length===0)return[];const s=[...t].sort((r,c)=>r[0]-c[0]),o=[[s[0][0],s[0][1]]];for(let r=1;r<s.length;r++){const c=o[o.length-1],[d,u]=s[r];d<=c[1]+1?c[1]=Math.max(c[1],u):o.push([d,u])}return o}function G1({text:t,indices:s,highlightClass:o}){if(!s||s.length===0)return a.jsx(a.Fragment,{children:t});const r=WI(s),c=[];let d=0;for(const[u,p]of r)u>d&&c.push(a.jsx("span",{children:t.slice(d,u)},`p${d}`)),c.push(a.jsx("mark",{className:o,children:t.slice(u,p+1)},`m${u}`)),d=p+1;return d<t.length&&c.push(a.jsx("span",{children:t.slice(d)},`p${d}`)),a.jsx(a.Fragment,{children:c})}function XI(t){const s=new Map(t.map(r=>[r.id,{...r,children:[]}])),o=[];for(const r of s.values())r.parentTaskId&&s.has(r.parentTaskId)?s.get(r.parentTaskId).children.push(r):o.push(r);for(const r of s.values())r.children.sort((c,d)=>c.sortOrder-d.sortOrder);return o.sort((r,c)=>r.sortOrder-c.sortOrder)}function QI(t,s){const o=new Map;for(const d of t){const p=d.dependsOn.length>0&&d.dependsOn.some(g=>s.get(g)!=="complete")?"blocked":d.status,m=o.get(p);m?m.push(d):o.set(p,[d])}const r=[],c=new Set;for(const d of PT){c.add(d);const u=o.get(d);if(u&&u.length>0){u.sort((m,g)=>m.sortOrder-g.sortOrder);const p=Wa(d);r.push({status:d,label:p.label,style:p,tasks:u})}}for(const[d,u]of o)if(!c.has(d)&&u.length>0){u.sort((m,g)=>m.sortOrder-g.sortOrder);const p=Wa(d);r.push({status:d,label:p.label,style:p,tasks:u})}return r}const eO="_container_z4i38_1",tO="_header_z4i38_5",nO="_headerActions_z4i38_17",sO="_searchInput_z4i38_23",aO="_searchHighlight_z4i38_56",iO="_groupToggle_z4i38_62",oO="_groupToggleActive_z4i38_89",rO="_addButton_z4i38_93",lO="_taskRow_z4i38_120",cO="_selected_z4i38_140",dO="_expandArrow_z4i38_150",uO="_expanded_z4i38_157",fO="_leafSpacer_z4i38_161",pO="_taskStatusIcon_z4i38_166",mO="_taskTitle_z4i38_170",hO="_workspaceBadge_z4i38_177",gO="_childCountBadge_z4i38_195",vO="_dependencyBadge_z4i38_208",yO="_blockedBadge_z4i38_220",bO="_addChildButton_z4i38_225",_O="_emptyState_z4i38_268",xO="_statusGroupHeader_z4i38_275",kO="_statusGroupIcon_z4i38_294",SO="_statusGroupLabel_z4i38_298",jO="_statusGroupCount_z4i38_303",Ye={container:eO,header:tO,headerActions:nO,searchInput:sO,searchHighlight:aO,groupToggle:iO,groupToggleActive:oO,addButton:rO,taskRow:lO,selected:cO,expandArrow:dO,expanded:uO,leafSpacer:fO,taskStatusIcon:pO,taskTitle:mO,workspaceBadge:hO,childCountBadge:gO,dependencyBadge:vO,blockedBadge:yO,addChildButton:bO,emptyState:_O,statusGroupHeader:xO,statusGroupIcon:kO,statusGroupLabel:SO,statusGroupCount:jO},TO=[{name:"title",weight:2},{name:"description",weight:1}],F1=16,wO=16,Z1="grackle-task-group-by-status";function i_(){try{return localStorage.getItem(Z1)==="true"}catch{return!1}}function NO(t){try{localStorage.setItem(Z1,String(t))}catch{}}function CO({group:t,isExpanded:s,onToggle:o,selectedTaskId:r,navigate:c,titleHighlights:d,workspaceNames:u}){return a.jsxs("div",{"data-testid":`status-group-${t.status}`,children:[a.jsxs("div",{className:Ye.statusGroupHeader,role:"button",tabIndex:0,"aria-expanded":s,onClick:o,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),o())},children:[a.jsx("span",{className:`${Ye.expandArrow} ${s?Ye.expanded:""}`,"aria-hidden":"true",children:a.jsx(ma,{size:it})}),a.jsx("span",{className:Ye.statusGroupIcon,style:{color:t.style.color},"aria-hidden":"true",children:t.style.icon}),a.jsx("span",{className:Ye.statusGroupLabel,children:t.label}),a.jsx("span",{className:Ye.statusGroupCount,children:t.tasks.length})]}),a.jsx(ls,{children:s&&a.jsx(At.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},style:{overflow:"hidden"},children:t.tasks.map(p=>{const m=Wa(p.status),g=r===p.id,v=p.parentTaskId||!p.workspaceId?void 0:u.get(p.workspaceId);return a.jsxs("div",{onClick:()=>c(Hn(p.id)),role:"button",tabIndex:0,"aria-label":p.title,onKeyDown:_=>{_.currentTarget===_.target&&(_.key==="Enter"||_.key===" ")&&(_.preventDefault(),c(Hn(p.id)))},className:`${Ye.taskRow} ${g?Ye.selected:""}`,style:{"--task-indent":`${F1}px`},"data-task-id":p.id,children:[a.jsx("span",{className:Ye.leafSpacer}),a.jsx("span",{className:Ye.taskStatusIcon,style:{color:m.color},"aria-hidden":"true","data-testid":`task-status-${gl(p.status)}`,children:m.icon}),a.jsx("span",{className:Ye.taskTitle,title:p.title,children:a.jsx(G1,{text:p.title,indices:d.get(p.id),highlightClass:Ye.searchHighlight})}),v&&a.jsx("span",{className:Ye.workspaceBadge,title:v,children:v})]},p.id)})})})]})}function K1({node:t,depth:s,expandedTasks:o,toggleTask:r,selectedTaskId:c,navigate:d,taskStatusById:u,titleHighlights:p,workspaceNames:m}){const g=Wa(t.status),v=t.dependsOn.length>0&&t.dependsOn.some(T=>u.get(T)!=="complete"),_=o.has(t.id),b=t.children.length>0,x=c===t.id,S=F1+s*wO,w=s===0&&!t.parentTaskId&&t.workspaceId?m.get(t.workspaceId):void 0;return a.jsxs(a.Fragment,{children:[a.jsxs("div",{onClick:()=>d(Hn(t.id)),role:"button",tabIndex:0,"aria-label":t.title,onKeyDown:T=>{T.currentTarget===T.target&&(T.key==="Enter"||T.key===" ")&&(T.preventDefault(),d(Hn(t.id)))},className:`${Ye.taskRow} ${x?Ye.selected:""}`,style:{"--task-indent":`${S}px`},"data-task-id":t.id,children:[b&&a.jsx("span",{className:`${Ye.expandArrow} ${_?Ye.expanded:""}`,role:"button",tabIndex:0,"aria-label":_?"Collapse task":"Expand task",onClick:T=>{T.stopPropagation(),r(t.id)},onKeyDown:T=>{(T.key==="Enter"||T.key===" ")&&(T.preventDefault(),T.stopPropagation(),r(t.id))},children:a.jsx(ma,{size:it,"aria-hidden":"true"})}),!b&&a.jsx("span",{className:Ye.leafSpacer}),a.jsx("span",{className:Ye.taskStatusIcon,style:{color:g.color},"aria-hidden":"true","data-testid":`task-status-${gl(t.status)}`,children:g.icon}),a.jsx("span",{className:Ye.taskTitle,title:t.title,children:a.jsx(G1,{text:t.title,indices:p.get(t.id),highlightClass:Ye.searchHighlight})}),w&&a.jsx("span",{className:Ye.workspaceBadge,title:w,children:w}),b&&a.jsxs("span",{className:Ye.childCountBadge,children:[t.children.filter(T=>T.status==="complete").length,"/",t.children.length]}),t.dependsOn.length>0&&a.jsx("span",{className:`${Ye.dependencyBadge} ${v?Ye.blockedBadge:""}`,title:`Depends on: ${t.dependsOn.join(", ")}`,children:v?"blocked":"dep"}),s<H2&&a.jsx(Oi,{text:"Add child task",children:a.jsx("button",{onClick:T=>{T.stopPropagation(),d($i(t.workspaceId,t.id))},"aria-label":"Add child task",className:Ye.addChildButton,children:"+"})})]}),a.jsx(ls,{children:b&&_&&a.jsx(At.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.15},style:{overflow:"hidden"},children:t.children.map(T=>a.jsx(K1,{node:T,depth:s+1,expandedTasks:o,toggleTask:r,selectedTaskId:c,navigate:d,taskStatusById:u,titleHighlights:p,workspaceNames:m},T.id))})})]})}function EO({workspaces:t,tasks:s}){const o=dt(),[r,c]=y.useState(new Set),[d,u]=y.useState(new Set),[p,m]=y.useState(i_),[g,v]=y.useState(i_),[_,b]=y.useState(new Map),x=Dt("/tasks/:taskId/*"),S=(x==null?void 0:x.params.taskId)!=="new"?x==null?void 0:x.params.taskId:void 0,j=y.useMemo(()=>new Map(s.map(X=>[X.id,X.status])),[s]),w=y.useMemo(()=>new Map(t.map(X=>[X.id,X.name])),[t]),T=()=>{const X=!p;NO(X),m(X),X&&(v(!0),b(new Map))},C=X=>{b(re=>{const B=new Map(re),R=B.has(X)?B.get(X):g;return B.set(X,!R),B})},A=X=>_.has(X)?_.get(X):g,L=X=>{c(re=>{const B=new Set(re);return B.has(X)?(B.delete(X),u(R=>new Set(R).add(X))):(B.add(X),u(R=>{const Z=new Set(R);return Z.delete(X),Z})),B})};y.useEffect(()=>{const X=new Set(s.filter(re=>re.parentTaskId).map(re=>re.parentTaskId));X.size>0&&c(re=>{const B=new Set(re);for(const R of X)d.has(R)||B.add(R);return B})},[s,d]);const[E,M]=y.useState(""),{directMatchTaskIds:H,treeMatchTaskIds:D,titleHighlights:z}=y.useMemo(()=>{if(!E.trim())return{directMatchTaskIds:null,treeMatchTaskIds:null,titleHighlights:new Map};const X=z2(s,E,TO),re=new Set(X.map(me=>me.item.id)),B=new Map;for(const me of X){const q=me.matches.find(le=>le.key==="title");q&&B.set(me.item.id,q.indices)}const R=new Set(re),Z=new Map(s.map(me=>[me.id,me]));for(const me of[...re]){let q=Z.get(me);for(;q!=null&&q.parentTaskId;)R.add(q.parentTaskId),q=Z.get(q.parentTaskId)}return{directMatchTaskIds:re,treeMatchTaskIds:R,titleHighlights:B}},[E,s]),Y=H!==null,V=Y?p?H:D:null,Q=V?s.filter(X=>V.has(X.id)):s,ge=p?[]:XI(Q);return a.jsxs("div",{className:Ye.container,children:[a.jsxs("div",{className:Ye.header,children:[a.jsx("span",{children:"Tasks"}),a.jsxs("div",{className:Ye.headerActions,children:[a.jsx(Oi,{text:p?"Switch to tree view":"Group tasks by status",children:a.jsx("button",{className:`${Ye.groupToggle} ${p?Ye.groupToggleActive:""}`,onClick:T,"aria-label":p?"Switch to tree view":"Group tasks by status","aria-pressed":p,"data-testid":"task-group-by-status-toggle",children:a.jsx(lT,{size:Ut})})}),a.jsx(Oi,{text:"New task",children:a.jsx("button",{className:Ye.addButton,onClick:()=>o($i()),"aria-label":"New task","data-testid":"new-task-button",children:"+"})})]})]}),s.length>0&&a.jsx("input",{type:"text",value:E,onChange:X=>M(X.target.value),placeholder:"Filter...","aria-label":"Filter tasks",className:Ye.searchInput,"data-testid":"sidebar-search"}),p?QI(Q,j).map(X=>a.jsx(CO,{group:X,isExpanded:A(X.status),onToggle:()=>C(X.status),selectedTaskId:S,navigate:o,titleHighlights:z,workspaceNames:w},X.status)):ge.map(X=>a.jsx(K1,{node:X,depth:0,expandedTasks:r,toggleTask:L,selectedTaskId:S,navigate:o,taskStatusById:j,titleHighlights:z,workspaceNames:w},X.id)),Q.length===0&&!Y&&a.jsx("div",{className:Ye.emptyState,children:"No tasks yet. Click + to create one."}),Q.length===0&&Y&&a.jsx("div",{className:Ye.emptyState,children:"No matching tasks"})]})}const AO="_toast_ed2dk_1",DO="_success_ed2dk_18",RO="_icon_ed2dk_22",MO="_error_ed2dk_25",IO="_warning_ed2dk_32",OO="_info_ed2dk_38",LO="_message_ed2dk_53",BO="_close_ed2dk_60",Fr={toast:AO,success:DO,icon:RO,error:MO,warning:IO,info:OO,message:LO,close:BO},$O={success:a.jsx(Li,{size:Et}),error:a.jsx($s,{size:Et}),warning:a.jsx(wm,{size:Et}),info:a.jsx(Tm,{size:Et})};function zO({toast:t,onDismiss:s}){return y.useEffect(()=>{const o=setTimeout(()=>s(t.id),t.duration);return()=>clearTimeout(o)},[t.id,t.duration,s]),a.jsxs(At.div,{className:`${Fr.toast} ${Fr[t.variant]}`,role:"status",initial:{opacity:0,y:-16,scale:.94},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.94},transition:{duration:.2,ease:"easeOut"},layout:!0,children:[a.jsx("span",{className:Fr.icon,"aria-hidden":"true",children:$O[t.variant]}),a.jsx("span",{className:Fr.message,children:t.message}),a.jsx("button",{type:"button",className:Fr.close,onClick:()=>s(t.id),"aria-label":"Dismiss notification",children:a.jsx($s,{size:Ut,"aria-hidden":"true"})})]})}const HO="_container_qqse2_1",PO={container:HO};function UO({toasts:t,onDismiss:s}){return a.jsx("div",{className:PO.container,"data-testid":"toast-container",children:a.jsx(ls,{children:t.map(o=>a.jsx(zO,{toast:o,onDismiss:s},o.id))})})}const VO="_callout_e5awm_1",qO="_success_e5awm_11",GO="_icon_e5awm_15",FO="_error_e5awm_18",ZO="_warning_e5awm_25",KO="_info_e5awm_32",YO="_content_e5awm_48",JO="_close_e5awm_53",Zr={callout:VO,success:qO,icon:GO,error:FO,warning:ZO,info:KO,content:YO,close:JO},WO={success:a.jsx(Li,{size:Et}),error:a.jsx($s,{size:Et}),warning:a.jsx(wm,{size:Et}),info:a.jsx(Tm,{size:Et})};function XO({variant:t="info",children:s,dismissible:o=!1,className:r}){const[c,d]=y.useState(!1);return a.jsx(a.Fragment,{children:!c&&a.jsxs("div",{className:[Zr.callout,Zr[t],r].filter(Boolean).join(" "),role:t==="error"||t==="warning"?"alert":"status",children:[a.jsx("span",{className:Zr.icon,"aria-hidden":"true",children:WO[t]}),a.jsx("span",{className:Zr.content,children:s}),o&&a.jsx("button",{type:"button",className:Zr.close,onClick:()=>d(!0),"aria-label":"Dismiss",children:a.jsx($s,{size:Ut,"aria-hidden":"true"})})]})})}function QO({currentVersion:t,latestVersion:s,updateAvailable:o,isDocker:r}){if(!o)return a.jsx(a.Fragment,{});const c=r?"docker pull ghcr.io/nick-pape/grackle:latest && docker restart grackle":`npm install -g @grackle-ai/cli@${s}`;return a.jsx("div",{"data-testid":"update-banner",children:a.jsxs(XO,{variant:"info",dismissible:!0,children:[a.jsxs("strong",{children:["Grackle v",s]})," is available (you have v",t,")."," ","Run: ",a.jsx("code",{children:c})]})})}const eL="_container_de44x_1",tL="_emptyState_de44x_8",nL="_card_de44x_14",sL="_cardClickable_de44x_34",aL="_cardHeader_de44x_42",iL="_categoryBadge_de44x_54",oL="_findingTitle_de44x_62",rL="_findingDate_de44x_68",lL="_findingContent_de44x_80",cL="_tags_de44x_86",dL="_tag_de44x_86",bs={container:eL,emptyState:tL,card:nL,cardClickable:sL,cardHeader:aL,categoryBadge:iL,findingTitle:oL,findingDate:rL,findingContent:lL,tags:cL,tag:dL};function Y1({findings:t,onFindingClick:s}){return t.length===0?a.jsx("div",{className:bs.emptyState,children:"No findings yet. Agents will post discoveries here."}):a.jsx("div",{className:bs.container,children:t.map((o,r)=>{const c=Td(o.category),d=s?At.button:At.div;return a.jsxs(d,{type:s?"button":void 0,className:`${bs.card} ${s?bs.cardClickable:""}`,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:r*.05,duration:.2},onClick:s?()=>{s(o.id)}:void 0,children:[a.jsxs("div",{className:bs.cardHeader,children:[a.jsx("span",{className:bs.categoryBadge,style:{background:c.bg,color:c.text},children:o.category}),a.jsx("span",{className:bs.findingTitle,children:o.title}),a.jsx("span",{className:bs.findingDate,title:o.createdAt,children:Uo(o.createdAt)})]}),a.jsx("div",{className:bs.findingContent,children:o.content.length>300?o.content.slice(0,300)+"...":o.content}),o.tags.length>0&&a.jsx("div",{className:bs.tags,children:o.tags.map(u=>a.jsx("span",{className:bs.tag,style:{color:c.text,textShadow:`0 0 8px ${c.text}`},children:u},u))})]},o.id)})})}const uL="_container_m1fsr_1",fL="_heading_m1fsr_7",pL="_section_m1fsr_14",mL="_sectionTitle_m1fsr_26",hL="_sectionDescription_m1fsr_35",gL="_emptyState_m1fsr_41",vL="_tokenList_m1fsr_48",yL="_tokenRow_m1fsr_55",bL="_tokenBadge_m1fsr_68",_L="_tokenName_m1fsr_83",xL="_tokenTarget_m1fsr_90",kL="_deleteButton_m1fsr_99",SL="_addForm_m1fsr_113",jL="_formRow_m1fsr_119",TL="_input_m1fsr_125",wL="_select_m1fsr_155",NL="_addButton_m1fsr_187",CL="_emptyStateInfo_m1fsr_221",EL="_themeOptions_m1fsr_229",AL="_themeOption_m1fsr_229",DL="_themeOptionSelected_m1fsr_254",RL="_themeOptionHeader_m1fsr_259",ML="_themeOptionLabel_m1fsr_266",IL="_themeOptionDesc_m1fsr_273",OL="_variantToggle_m1fsr_279",LL="_variantButton_m1fsr_286",BL="_variantActive_m1fsr_305",$L="_themeSwatches_m1fsr_311",zL="_themeSwatch_m1fsr_311",HL="_systemToggle_m1fsr_325",PL="_systemToggleHint_m1fsr_341",UL="_themeActive_m1fsr_348",VL="_aboutGrid_m1fsr_354",qL="_aboutItem_m1fsr_360",GL="_aboutLabel_m1fsr_373",FL="_aboutValue_m1fsr_379",ZL="_aboutDot_m1fsr_387",KL="_aboutDotConnected_m1fsr_394",YL="_aboutDotDisconnected_m1fsr_398",JL="_aboutDotConnecting_m1fsr_402",ue={container:uL,heading:fL,section:pL,sectionTitle:mL,sectionDescription:hL,emptyState:gL,tokenList:vL,tokenRow:yL,tokenBadge:bL,tokenName:_L,tokenTarget:xL,deleteButton:kL,addForm:SL,formRow:jL,input:TL,select:wL,addButton:NL,emptyStateInfo:CL,themeOptions:EL,themeOption:AL,themeOptionSelected:DL,themeOptionHeader:RL,themeOptionLabel:ML,themeOptionDesc:IL,variantToggle:OL,variantButton:LL,variantActive:BL,themeSwatches:$L,themeSwatch:zL,systemToggle:HL,systemToggleHint:PL,themeActive:UL,aboutGrid:VL,aboutItem:qL,aboutLabel:GL,aboutValue:FL,aboutDot:ZL,aboutDotConnected:KL,aboutDotDisconnected:YL,aboutDotConnecting:JL},WL=[{value:"env_var",label:"Environment Variable"},{value:"file",label:"File"}];function XL({tokens:t,onSetToken:s,onDeleteToken:o,onShowToast:r}){const[c,d]=y.useState(""),[u,p]=y.useState(""),[m,g]=y.useState("env_var"),[v,_]=y.useState(""),[b,x]=y.useState(null),S=T=>{if(T.preventDefault(),!c||!u)return;const C=m==="env_var"?v||c.toUpperCase()+"_TOKEN":"";s(c,u,m,C,m==="file"?v:""),r==null||r("Token saved successfully","success"),d(""),p(""),_("")},j=T=>{x(T)},w=()=>{b&&(o(b),r==null||r("Token deleted","info")),x(null)};return a.jsxs(a.Fragment,{children:[a.jsx(ks,{isOpen:b!==null,title:"Delete Token?",description:b?`"${b}" will be permanently removed.`:void 0,onConfirm:w,onCancel:()=>x(null)}),a.jsxs("section",{className:ue.section,children:[a.jsx("h3",{className:ue.sectionTitle,children:"Tokens"}),a.jsx("p",{className:ue.sectionDescription,children:"API tokens are auto-pushed to environments when set or updated. Values are write-only."}),t.length===0?a.jsx("div",{className:ue.emptyStateInfo,children:"Add your first API token to enable service integrations."}):a.jsx("div",{className:ue.tokenList,children:t.map(T=>a.jsxs("div",{className:ue.tokenRow,children:[a.jsx("span",{className:ue.tokenBadge,children:T.tokenType}),a.jsx("span",{className:ue.tokenName,children:T.name}),a.jsx("span",{className:ue.tokenTarget,children:T.tokenType==="env_var"?T.envVar:T.filePath}),a.jsx("button",{className:ue.deleteButton,onClick:()=>j(T.name),title:`Delete ${T.name}`,"aria-label":`Delete ${T.name}`,children:a.jsx($s,{size:Ut,"aria-hidden":"true"})})]},T.name))}),a.jsxs("form",{className:ue.addForm,onSubmit:S,children:[a.jsxs("div",{className:ue.formRow,children:[a.jsx("input",{className:ue.input,type:"text",placeholder:"Token name",value:c,onChange:T=>d(T.target.value)}),a.jsx("input",{className:ue.input,type:"password",placeholder:"Value",value:u,onChange:T=>p(T.target.value)})]}),a.jsxs("div",{className:ue.formRow,children:[a.jsx("select",{className:ue.select,value:m,onChange:T=>g(T.target.value),children:WL.map(T=>a.jsx("option",{value:T.value,children:T.label},T.value))}),a.jsx("input",{className:ue.input,type:"text",placeholder:m==="env_var"?"Env var name (e.g. API_TOKEN)":"File path (e.g. /home/user/.token)",value:v,onChange:T=>_(T.target.value)}),a.jsx("button",{className:ue.addButton,type:"submit",children:"Add Token"})]})]})]})]})}const Gd=[{id:"grackle",label:"Grackle",description:"The default Grackle theme — iridescent purple on clean dark.",swatches:["#0e1218","#8b5cf6","#60a5fa","#e5e7eb","#34d399"],variantLightId:"grackle-light",variantDarkId:"grackle-dark"},{id:"grackle-light",label:"Grackle Light",description:"Light Grackle variant.",hidden:!0},{id:"grackle-dark",label:"Grackle Dark",description:"Dark Grackle variant.",hidden:!0},{id:"glass",label:"Glassmorphism",description:"Dark frosted-glass aesthetic with backdrop blur effects.",swatches:["#0a0c14","#4ecca3","#70a1ff","#e2e8f0","#a855f7"]},{id:"matrix",label:"Matrix",description:"Phosphor-green CRT terminal with scanlines and glow.",swatches:["#050505","#00ff41","#00bfff","#33ff77","#ffb000"]},{id:"brutalist",label:"Neubrutalism",description:"Thick borders, raw colors, bold type — ugly on purpose.",swatches:["#f5f0e8","#ff5757","#5ce1e6","#1a1a1a","#ffde59"],variantLightId:"brutalist-light",variantDarkId:"brutalist-dark"},{id:"brutalist-light",label:"Neubrutalism Light",description:"Light neubrutalism variant.",hidden:!0},{id:"brutalist-dark",label:"Neubrutalism Dark",description:"Dark neubrutalism variant.",hidden:!0},{id:"monokai",label:"Monokai",description:"Classic warm editor palette — pink, green, and purple.",swatches:["#272822","#f92672","#a6e22e","#f8f8f2","#ae81ff"],variantLightId:"monokai-light",variantDarkId:"monokai-dark"},{id:"monokai-dark",label:"Monokai Dark",description:"Dark Monokai variant.",hidden:!0},{id:"monokai-light",label:"Monokai Light",description:"Light Monokai variant.",hidden:!0},{id:"ubuntu",label:"Ubuntu",description:"Aubergine terminal with the GNOME Tango palette.",swatches:["#300a24","#8ae234","#ef2929","#eeeeec","#fce94f"]},{id:"sandstone",label:"Sandstone",description:"Warm terracotta accent on dark brown, in the style of Claude Code.",swatches:["#1a1815","#C15F3C","#6b8afd","#e8e6e3","#a78bfa"]},{id:"verdigris",label:"Verdigris",description:"Teal accent on charcoal, in the style of ChatGPT.",swatches:["#141414","#00a67e","#3b82f6","#ececec","#ab68ff"]},{id:"primer",label:"Primer",description:"Blue accent on ink-dark grey, in the style of GitHub.",swatches:["#0d1117","#58a6ff","#3fb950","#c9d1d9","#bc8cff"]}],J1=new Set(Gd.map(t=>t.id)),o_="grackle";function bm(t){return Gd.find(s=>s.id===t)}function QL({themeId:t,resolvedThemeId:s,onSetTheme:o,preferSystem:r,onSetPreferSystem:c}){return a.jsxs("section",{className:ue.section,children:[a.jsx("h3",{className:ue.sectionTitle,children:"Appearance"}),a.jsx("p",{className:ue.sectionDescription,children:"Choose how Grackle looks across the app."}),a.jsx("div",{className:ue.themeOptions,children:Gd.filter(d=>!d.hidden).map(d=>{const u=!!(d.variantLightId&&d.variantDarkId),p=u?t===d.id||t===d.variantLightId||t===d.variantDarkId:t===d.id,m=u&&s===d.variantLightId;return a.jsxs("button",{type:"button",className:`${ue.themeOption} ${p?ue.themeOptionSelected:""}`,"aria-pressed":p,onClick:()=>o(d.id),children:[a.jsxs("span",{className:ue.themeOptionHeader,children:[a.jsxs("span",{children:[a.jsx("span",{className:ue.themeOptionLabel,children:d.label}),a.jsx("span",{className:ue.themeOptionDesc,children:d.description})]}),u&&a.jsxs("span",{className:ue.variantToggle,children:[a.jsx("span",{role:"button",tabIndex:0,className:`${ue.variantButton} ${p&&m?ue.variantActive:""}`,onClick:g=>{g.stopPropagation(),c(!1),o(d.variantLightId)},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),g.stopPropagation(),c(!1),o(d.variantLightId))},"aria-label":"Light variant","aria-pressed":p&&m,children:"☼"}),a.jsx("span",{role:"button",tabIndex:0,className:`${ue.variantButton} ${p&&!m?ue.variantActive:""}`,onClick:g=>{g.stopPropagation(),c(!1),o(d.variantDarkId)},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),g.stopPropagation(),c(!1),o(d.variantDarkId))},"aria-label":"Dark variant","aria-pressed":p&&!m,children:"☾"})]})]}),d.swatches&&a.jsx("span",{className:ue.themeSwatches,children:d.swatches.map((g,v)=>a.jsx("span",{className:ue.themeSwatch,style:{background:g}},v))})]},d.id)})}),a.jsxs("label",{className:ue.systemToggle,children:[a.jsx("input",{type:"checkbox",checked:r,onChange:d=>c(d.target.checked)}),a.jsx("span",{children:"Match system light/dark preference"})]}),a.jsx("p",{className:ue.systemToggleHint,children:"Automatically switches between light and dark variants when available."}),a.jsxs("p",{className:ue.themeActive,children:["Active theme: ",a.jsx("strong",{children:s})]})]})}const eB={connected:"Connected",connecting:"Connecting...",disconnected:"Disconnected"},tB={connected:ue.aboutDotConnected,connecting:ue.aboutDotConnecting,disconnected:ue.aboutDotDisconnected};function nB({connectionStatus:t,environments:s,sessions:o}){const r=s.filter(u=>u.status==="connected").length,c=s.length,d=o.filter(u=>["running","idle"].includes(u.status)).length;return a.jsxs("section",{className:ue.section,"data-testid":"about-panel",children:[a.jsx("h3",{className:ue.sectionTitle,children:"About"}),a.jsx("p",{className:ue.sectionDescription,children:"Connection status and application information."}),a.jsxs("div",{className:ue.aboutGrid,children:[a.jsxs("div",{className:ue.aboutItem,children:[a.jsx("span",{className:ue.aboutLabel,children:"Connection"}),a.jsxs("span",{className:ue.aboutValue,children:[a.jsx("span",{className:`${ue.aboutDot} ${tB[t]}`}),eB[t]]})]}),a.jsxs("div",{className:ue.aboutItem,children:[a.jsx("span",{className:ue.aboutLabel,children:"Environments"}),a.jsxs("span",{className:ue.aboutValue,children:[r,"/",c," connected"]})]}),a.jsxs("div",{className:ue.aboutItem,children:[a.jsx("span",{className:ue.aboutLabel,children:"Active Sessions"}),a.jsx("span",{className:ue.aboutValue,children:d})]}),a.jsxs("div",{className:ue.aboutItem,children:[a.jsx("span",{className:ue.aboutLabel,children:"Version"}),a.jsx("span",{className:ue.aboutValue,children:"0.108.2"})]})]})]})}const sB="_container_cddyd_1",aB="_header_cddyd_8",iB="_headerTitle_cddyd_35",oB="_badge_cddyd_44",rB="_headerActions_cddyd_54",lB="_body_cddyd_61",cB="_formContent_cddyd_73",dB="_section_cddyd_85",uB="_label_cddyd_91",fB="_titleInput_cddyd_98",pB="_descriptionTextarea_cddyd_131",mB="_parentContext_cddyd_167",hB="_parentLabel_cddyd_175",gB="_parentName_cddyd_182",vB="_personaSelect_cddyd_186",yB="_depList_cddyd_220",bB="_depItem_cddyd_226",_B="_depItemSelected_cddyd_248",xB="_noDeps_cddyd_252",kB="_btnPrimary_cddyd_258",SB="_btnGhost_cddyd_289",st={container:sB,header:aB,headerTitle:iB,badge:oB,headerActions:rB,body:lB,formContent:cB,section:dB,label:uB,titleInput:fB,descriptionTextarea:pB,parentContext:mB,parentLabel:hB,parentName:gB,personaSelect:vB,depList:yB,depItem:bB,depItemSelected:_B,noDeps:xB,btnPrimary:kB,btnGhost:SB};function W1({mode:t,taskId:s,workspaceId:o,parentTaskId:r,environmentId:c,tasks:d,workspaces:u,personas:p,onCreateTask:m,onUpdateTask:g,onEditDone:v,onShowToast:_}){const b=dt(),x=t==="edit",S=x&&s?d.find(Se=>Se.id===s):void 0,j=x?(S==null?void 0:S.workspaceId)??"":o??"",[w,T]=y.useState(j),C=j||w,A=u.find(Se=>Se.id===C),L=c??(A==null?void 0:A.linkedEnvironmentIds[0]),E=!x&&!o,M=x?(S==null?void 0:S.parentTaskId)??"":r??"",H=M?d.find(Se=>Se.id===M):void 0,[D,z]=y.useState((S==null?void 0:S.title)??""),[Y,V]=y.useState((S==null?void 0:S.description)??""),[Q,ge]=y.useState((S==null?void 0:S.dependsOn)??[]),[X,re]=y.useState((S==null?void 0:S.defaultPersonaId)??""),[B,R]=y.useState((S==null?void 0:S.canDecompose)??!1),[Z,me]=y.useState(!1),q=y.useRef(!1);y.useEffect(()=>{x&&S&&!q.current&&(q.current=!0,z(S.title),V(S.description),ge(S.dependsOn),re(S.defaultPersonaId),R(S.canDecompose))},[x,S]);const le=d.filter(Se=>Se.workspaceId===C&&(!x||Se.id!==s)&&Se.id!==M),de=D.trim().length>0&&(!x||S!==void 0)&&C.length>0,xe=Se=>{ge(fe=>fe.includes(Se)?fe.filter(be=>be!==Se):[...fe,Se])},ke=()=>{!de||Z||x&&S===void 0||(x&&s?(g(s,D.trim(),Y,Q,X),_==null||_("Task updated","success"),v?v():b(Hn(s,void 0,C,L),{replace:!0})):(me(!0),m(C,D.trim(),Y,Q.length>0?Q:void 0,M||void 0,X,B,()=>{_==null||_("Task created","success"),b(o?Ri(o,L):"/tasks",{replace:!0})},Se=>{_==null||_(Se,"error"),me(!1)})))},Ze=()=>{if(v){v();return}b(x&&s?Hn(s,void 0,C,L):o?Ri(o,L):"/tasks")},Xe=x?"edit task":M?"child task":"new task";return a.jsxs("div",{className:st.container,children:[a.jsxs("div",{className:st.header,children:[a.jsxs("div",{className:st.headerTitle,children:[a.jsx("span",{className:st.badge,children:Xe}),H&&a.jsxs("span",{className:st.parentContext,children:[a.jsx("span",{className:st.parentLabel,children:"Child of"}),a.jsx("span",{className:st.parentName,children:H.title})]})]}),a.jsxs("div",{className:st.headerActions,children:[a.jsx("button",{onClick:ke,disabled:!de||Z,className:st.btnPrimary,"data-testid":"task-edit-save",children:Z?"Creating…":x?"Save Changes":"Create"}),a.jsx("button",{onClick:Ze,className:st.btnGhost,children:"Cancel"})]})]}),a.jsx("div",{className:st.body,children:a.jsxs("div",{className:st.formContent,children:[E&&a.jsxs("div",{className:st.section,children:[a.jsx("label",{className:st.label,htmlFor:"task-edit-workspace",children:"Workspace"}),a.jsxs("select",{id:"task-edit-workspace",value:w,onChange:Se=>T(Se.target.value),className:st.personaSelect,"data-testid":"task-edit-workspace",children:[a.jsx("option",{value:"",children:"Select a workspace..."}),u.map(Se=>a.jsx("option",{value:Se.id,children:Se.name},Se.id))]})]}),a.jsxs("div",{className:st.section,children:[a.jsx("label",{className:st.label,htmlFor:"task-edit-title",children:"Title"}),a.jsx("input",{id:"task-edit-title",type:"text",value:D,onChange:Se=>z(Se.target.value),placeholder:"Task title...",autoFocus:!0,className:st.titleInput,"data-testid":"task-edit-title",onKeyDown:Se=>{Se.key==="Enter"&&de&&ke()}})]}),a.jsxs("div",{className:st.section,children:[a.jsx("label",{className:st.label,htmlFor:"task-edit-description",children:"Description"}),a.jsx("textarea",{id:"task-edit-description",value:Y,onChange:Se=>V(Se.target.value),placeholder:"Describe the task... (markdown supported)",className:st.descriptionTextarea,"data-testid":"task-edit-description",rows:8})]}),a.jsxs("div",{className:st.section,children:[a.jsx("label",{className:st.label,htmlFor:"task-edit-persona",children:"Default Persona"}),a.jsxs("select",{id:"task-edit-persona",value:X,onChange:Se=>re(Se.target.value),className:st.personaSelect,"data-testid":"task-edit-persona",children:[a.jsx("option",{value:"",children:"(Inherit)"}),p.map(Se=>a.jsx("option",{value:Se.id,children:Se.name},Se.id))]})]}),!x&&a.jsx("div",{className:st.section,children:a.jsxs("label",{className:st.depItem,"data-testid":"task-edit-can-decompose",children:[a.jsx("input",{type:"checkbox",checked:B,onChange:Se=>R(Se.target.checked)}),"Can spawn subtasks"]})}),a.jsxs("div",{className:st.section,children:[a.jsx("div",{className:st.label,children:"Dependencies"}),le.length===0?a.jsx("div",{className:st.noDeps,children:"No other tasks in this workspace"}):a.jsx("div",{className:st.depList,children:le.map(Se=>{const fe=Q.includes(Se.id);return a.jsxs("label",{className:`${st.depItem} ${fe?st.depItemSelected:""}`,"data-testid":`dep-option-${Se.id}`,children:[a.jsx("input",{type:"checkbox",checked:fe,onChange:()=>xe(Se.id)}),Se.title,a.jsxs("span",{style:{opacity:.5,fontSize:"11px",marginLeft:"4px"},children:["(",Se.status,")"]})]},Se.id)})})]})]})})]})}const jB="_actionButtons_1rjka_1",TB="_btnPrimary_1rjka_8",wB="_btnDanger_1rjka_39",NB="_btnGhost_1rjka_78",en={actionButtons:jB,btnPrimary:TB,btnDanger:wB,btnGhost:NB};function CB({task:t,sessionId:s,isBlocked:o,onStart:r,onResume:c,onStop:d,onPause:u,onDelete:p,onEdit:m}){if(t.status==="not_started")return o?a.jsxs("div",{className:en.actionButtons,"data-testid":"task-action-buttons",children:[a.jsx("button",{onClick:m,className:en.btnGhost,"data-testid":"task-action-edit",children:"Edit"}),a.jsx("button",{onClick:p,className:en.btnDanger,"data-testid":"task-action-delete",children:"Delete"})]}):a.jsxs("div",{className:en.actionButtons,"data-testid":"task-action-buttons",children:[a.jsx("button",{"data-testid":"task-header-start",onClick:r,className:en.btnPrimary,children:"Start"}),a.jsx("button",{onClick:m,className:en.btnGhost,"data-testid":"task-action-edit",children:"Edit"}),a.jsx("button",{onClick:p,className:en.btnDanger,"data-testid":"task-action-delete",children:"Delete"})]});if(t.status==="working")return a.jsxs("div",{className:en.actionButtons,"data-testid":"task-action-buttons",children:[a.jsx("button",{onClick:d,className:en.btnDanger,"data-testid":"task-action-stop",children:"Stop"}),a.jsx("button",{onClick:u,disabled:!s,className:en.btnGhost,"data-testid":"task-action-pause",children:"Pause"})]});if(t.status==="paused")return a.jsxs("div",{className:en.actionButtons,"data-testid":"task-action-buttons",children:[a.jsx("button",{onClick:d,className:en.btnPrimary,"data-testid":"task-action-stop",children:"Stop"}),a.jsx("button",{onClick:c,className:en.btnGhost,"data-testid":"task-action-resume",children:"Resume"}),a.jsx("button",{onClick:p,className:en.btnDanger,"data-testid":"task-action-delete",children:"Delete"})]});if(t.status==="complete")return a.jsx("div",{className:en.actionButtons,"data-testid":"task-action-buttons",children:a.jsx("button",{onClick:p,className:en.btnDanger,"data-testid":"task-action-delete",children:"Delete"})});if(t.status==="failed")return a.jsxs("div",{className:en.actionButtons,"data-testid":"task-action-buttons",children:[a.jsx("button",{onClick:r,className:en.btnPrimary,"data-testid":"task-header-start",children:"Retry"}),a.jsx("button",{onClick:p,className:en.btnDanger,"data-testid":"task-action-delete",children:"Delete"})]})}const EB="_workpadSection_y8nj9_1",AB="_workpadLabel_y8nj9_9",DB="_workpadStatus_y8nj9_17",RB="_workpadSummary_y8nj9_23",MB="_workpadExtra_y8nj9_29",Ga={workpadSection:EB,workpadLabel:AB,workpadStatus:DB,workpadSummary:RB,workpadExtra:MB};function IB({workpad:t}){if(!t)return;let s;try{const o=JSON.parse(t);if(o==null||typeof o!="object"||Array.isArray(o))return;s=o}catch{return a.jsxs("div",{className:Ga.workpadSection,"data-testid":"workpad-panel",children:[a.jsx("div",{className:Ga.workpadLabel,children:"Workpad"}),a.jsx("div",{className:Ga.workpadExtra,children:t})]})}if(!(!s.status&&!s.summary&&!s.extra))return a.jsxs("div",{className:Ga.workpadSection,"data-testid":"workpad-panel",children:[a.jsx("div",{className:Ga.workpadLabel,children:"Workpad"}),s.status&&a.jsx("div",{className:Ga.workpadStatus,"data-testid":"workpad-status",children:s.status}),s.summary&&a.jsx("div",{className:Ga.workpadSummary,"data-testid":"workpad-summary",children:s.summary}),s.extra&&Object.keys(s.extra).length>0&&a.jsx("div",{className:Ga.workpadExtra,"data-testid":"workpad-extra",children:JSON.stringify(s.extra,null,2)})]})}const OB="_overviewDashboard_r05qm_1",LB="_overviewHero_r05qm_7",BB="_statusBadge_r05qm_14",$B="_statusPending_r05qm_26",zB="_statusAssigned_r05qm_31",HB="_statusInProgress_r05qm_36",PB="_statusReview_r05qm_41",UB="_statusDone_r05qm_46",VB="_statusFailed_r05qm_51",qB="_statusWaitingInput_r05qm_56",GB="_overviewBranchPill_r05qm_61",FB="_branchLink_r05qm_76",ZB="_overviewSection_r05qm_87",KB="_overviewLabel_r05qm_93",YB="_overviewValue_r05qm_100",JB="_overviewMuted_r05qm_105",WB="_overviewMarkdown_r05qm_111",XB="_envRow_r05qm_180",QB="_envDot_r05qm_186",e8="_envDotGreen_r05qm_193",t8="_envDotYellow_r05qm_197",n8="_envDotRed_r05qm_201",s8="_envDotGray_r05qm_205",a8="_depList_r05qm_209",i8="_depItem_r05qm_215",o8="_depBlocked_r05qm_222",r8="_depDone_r05qm_226",l8="_timeline_r05qm_230",c8="_timelineRow_r05qm_236",d8="_timelineKey_r05qm_243",u8="_timelineValue_r05qm_249",f8="_timelineDelta_r05qm_253",p8="_reviewNotes_r05qm_264",ye={overviewDashboard:OB,overviewHero:LB,statusBadge:BB,statusPending:$B,statusAssigned:zB,statusInProgress:HB,statusReview:PB,statusDone:UB,statusFailed:VB,statusWaitingInput:qB,overviewBranchPill:GB,branchLink:FB,overviewSection:ZB,overviewLabel:KB,overviewValue:YB,overviewMuted:JB,overviewMarkdown:WB,envRow:XB,envDot:QB,envDotGreen:e8,envDotYellow:t8,envDotRed:n8,envDotGray:s8,depList:a8,depItem:i8,depBlocked:o8,depDone:r8,timeline:l8,timelineRow:c8,timelineKey:d8,timelineValue:u8,timelineDelta:f8,reviewNotes:p8};function Yc(t){if(!t)return"—";const s=new Date(t);return isNaN(s.getTime())?"—":s.toLocaleString(void 0,{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit"})}function Lp(t,s){if(!t||!s)return;const o=new Date(s).getTime()-new Date(t).getTime();if(isNaN(o)||o<0)return;const r=Math.floor(o/6e4),c=Math.floor(o%6e4/1e3);if(r===0)return`${c}s`;const d=Math.floor(r/60),u=r%60;return d===0?`${r}m ${c}s`:`${d}h ${u}m`}function r_(t){const s=t.toLowerCase();return s==="ready"||s==="running"||s==="available"||s==="connected"?ye.envDotGreen:s==="provisioning"||s==="starting"||s==="pending"||s==="connecting"?ye.envDotYellow:s==="error"||s==="failed"||s==="disconnected"?ye.envDotRed:ye.envDotGray}function m8({status:t}){const s=Wa(t),o=HT(t);return a.jsx("span",{className:`${ye.statusBadge} ${ye[o]??ye.statusPending}`,"data-testid":"task-overview-status-badge",children:s.label})}function h8({task:t,tasksById:s,environments:o,workspaces:r,taskSessions:c,selectedEnvId:d,taskUsage:u,treeUsage:p}){const m=c.length>0?c[c.length-1]:void 0,g=(m==null?void 0:m.environmentId)??"",v=g?o.find(S=>S.id===g):void 0,_=r.find(S=>S.id===t.workspaceId),b=o.find(S=>S.id===d),x=t.branch&&(_!=null&&_.repoUrl)?`${_.repoUrl.replace(/\/$/,"")}/tree/${encodeURIComponent(t.branch)}`:void 0;return a.jsxs("div",{className:ye.overviewDashboard,"data-testid":"task-overview-panel",children:[a.jsxs("div",{className:ye.overviewHero,children:[a.jsx(m8,{status:t.status}),t.branch&&a.jsx("span",{className:ye.overviewBranchPill,"data-testid":"task-overview-branch",children:x?a.jsxs("a",{href:x,target:"_blank",rel:"noreferrer noopener",className:ye.branchLink,children:["🔗"," ",t.branch]}):a.jsxs("span",{children:["🔗"," ",t.branch]})})]}),typeof t.description=="string"&&t.description&&a.jsxs("div",{className:ye.overviewSection,"data-testid":"task-overview-description",children:[a.jsx("div",{className:ye.overviewLabel,children:"Description"}),a.jsx("div",{className:ye.overviewMarkdown,children:a.jsx(Ed,{remarkPlugins:[Ad],children:t.description})})]}),t.workpad&&a.jsx(IB,{workpad:t.workpad}),a.jsxs("div",{className:ye.overviewSection,children:[a.jsx("div",{className:ye.overviewLabel,children:"Environment"}),g&&v?a.jsxs("div",{className:ye.envRow,"data-testid":"task-overview-environment",children:[a.jsx("span",{className:`${ye.envDot} ${r_(v.status)}`,title:v.status,"aria-label":`Status: ${v.status}`,role:"img"}),a.jsx("span",{className:ye.overviewValue,children:v.displayName})]}):b?a.jsxs("div",{className:ye.envRow,"data-testid":"task-overview-environment",children:[a.jsx("span",{className:`${ye.envDot} ${r_(b.status)}`,title:b.status,"aria-label":`Status: ${b.status}`,role:"img"}),a.jsx("span",{className:ye.overviewValue,children:b.displayName}),a.jsx("span",{className:ye.overviewMuted,children:"(workspace default)"})]}):a.jsx("div",{className:ye.overviewMuted,children:"Set in workspace settings"})]}),a.jsxs("div",{className:ye.overviewSection,"data-testid":"task-overview-dependencies",children:[a.jsx("div",{className:ye.overviewLabel,children:"Dependencies"}),t.dependsOn.length===0?a.jsx("div",{className:ye.overviewMuted,children:"None"}):a.jsx("div",{className:ye.depList,children:t.dependsOn.map(S=>{const j=s.get(S),w=(j==null?void 0:j.status)==="complete";return a.jsxs("div",{className:`${ye.depItem} ${w?ye.depDone:ye.depBlocked}`,children:[a.jsx("span",{children:w?"✓":"○"}),a.jsx("span",{children:(j==null?void 0:j.title)??S})]},S)})})]}),a.jsxs("div",{className:ye.overviewSection,"data-testid":"task-overview-timeline",children:[a.jsx("div",{className:ye.overviewLabel,children:"Timeline"}),a.jsxs("div",{className:ye.timeline,children:[t.createdAt&&a.jsxs("div",{className:ye.timelineRow,children:[a.jsx("span",{className:ye.timelineKey,children:"Created"}),a.jsx("span",{className:ye.timelineValue,children:Yc(t.createdAt)})]}),t.assignedAt&&(()=>{const S=Lp(t.createdAt,t.assignedAt);return a.jsxs("div",{className:ye.timelineRow,children:[a.jsx("span",{className:ye.timelineKey,children:"Assigned"}),a.jsx("span",{className:ye.timelineValue,children:Yc(t.assignedAt)}),S!==void 0&&a.jsx("span",{className:ye.timelineDelta,children:S})]})})(),t.startedAt&&(()=>{const S=Lp(t.assignedAt??t.createdAt,t.startedAt);return a.jsxs("div",{className:ye.timelineRow,children:[a.jsx("span",{className:ye.timelineKey,children:"Started"}),a.jsx("span",{className:ye.timelineValue,children:Yc(t.startedAt)}),S!==void 0&&a.jsx("span",{className:ye.timelineDelta,children:S})]})})(),t.completedAt&&(()=>{const S=Lp(t.startedAt,t.completedAt);return a.jsxs("div",{className:ye.timelineRow,children:[a.jsx("span",{className:ye.timelineKey,children:"Completed"}),a.jsx("span",{className:ye.timelineValue,children:Yc(t.completedAt)}),S!==void 0&&a.jsx("span",{className:ye.timelineDelta,children:S})]})})(),!t.createdAt&&!t.assignedAt&&!t.startedAt&&!t.completedAt&&a.jsx("div",{className:ye.overviewMuted,children:"No timing data"})]})]}),u&&u.costMillicents>0&&a.jsxs("div",{className:ye.overviewSection,"data-testid":"task-overview-usage",children:[a.jsx("div",{className:ye.overviewLabel,children:"Usage"}),a.jsxs("div",{className:ye.timeline,children:[a.jsxs("div",{className:ye.timelineRow,children:[a.jsx("span",{className:ye.timelineKey,children:"Cost"}),a.jsx("span",{className:ye.timelineValue,children:Is(u.costMillicents)}),a.jsxs("span",{className:ye.timelineDelta,children:[u.sessionCount," session",u.sessionCount!==1?"s":""]})]}),p&&p.costMillicents>u.costMillicents&&a.jsxs("div",{className:ye.timelineRow,children:[a.jsx("span",{className:ye.timelineKey,children:"Total (incl. subtasks)"}),a.jsx("span",{className:ye.timelineValue,children:Is(p.costMillicents)}),a.jsxs("span",{className:ye.timelineDelta,children:[p.sessionCount," session",p.sessionCount!==1?"s":""]})]})]})]}),(t.tokenBudget>0||t.costBudgetMillicents>0)&&a.jsxs("div",{className:ye.overviewSection,"data-testid":"task-overview-budget",children:[a.jsx("div",{className:ye.overviewLabel,children:"Budget"}),a.jsxs("div",{className:ye.timeline,children:[t.tokenBudget>0&&a.jsxs("div",{className:ye.timelineRow,children:[a.jsx("span",{className:ye.timelineKey,children:"Tokens"}),a.jsxs("span",{className:ye.timelineValue,children:[$o(((u==null?void 0:u.inputTokens)??0)+((u==null?void 0:u.outputTokens)??0))," / ",$o(t.tokenBudget)]})]}),t.costBudgetMillicents>0&&a.jsxs("div",{className:ye.timelineRow,children:[a.jsx("span",{className:ye.timelineKey,children:"Cost"}),a.jsxs("span",{className:ye.timelineValue,children:[Is((u==null?void 0:u.costMillicents)??0)," / ",Is(t.costBudgetMillicents)]})]})]})]}),t.reviewNotes&&a.jsxs("div",{className:ye.overviewSection,"data-testid":"task-overview-review-notes",children:[a.jsx("div",{className:ye.overviewLabel,children:"Review Notes"}),a.jsx("div",{className:ye.reviewNotes,children:t.reviewNotes})]})]})}function g8({plugins:t,loading:s,onSetPluginEnabled:o}){return a.jsxs("div",{className:ue.container,"data-testid":"plugins-panel",children:[a.jsx("h2",{className:ue.heading,children:"Plugins"}),a.jsxs("div",{className:ue.section,children:[a.jsx("p",{className:ue.sectionDescription,children:"Enable or disable optional Grackle plugins. A server restart is required for changes to take effect."}),s&&a.jsx("p",{className:ue.emptyState,children:"Loading plugins..."}),!s&&t.length===0&&a.jsx("p",{className:ue.emptyState,children:"No plugins found."}),!s&&t.map(r=>{const c=r.enabled!==r.loaded;return a.jsxs("div",{className:ue.tokenRow,"data-testid":`plugin-row-${r.name}`,children:[a.jsxs("div",{style:{flex:1},children:[a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[a.jsx("span",{className:ue.tokenName,children:r.name}),r.required&&a.jsx("span",{className:ue.tokenBadge,title:"Required — cannot be disabled",children:"required"})]}),a.jsx("div",{className:ue.tokenTarget,children:r.description}),c&&a.jsx("div",{style:{fontSize:"var(--font-size-xs)",color:"var(--accent-yellow)",marginTop:"2px"},"data-testid":`plugin-restart-notice-${r.name}`,children:"Restart Grackle to apply changes"})]}),a.jsx("label",{style:{display:"flex",alignItems:"center",gap:"6px",cursor:r.required?"not-allowed":"pointer"},title:r.required?"Core is required and cannot be disabled":void 0,children:a.jsx("input",{type:"checkbox",checked:r.enabled,disabled:r.required,onChange:d=>o(r.name,d.target.checked),"data-testid":`plugin-toggle-${r.name}`,"aria-label":`Enable or disable ${r.name} plugin`,style:{accentColor:"var(--accent-green)",width:"16px",height:"16px"}})})]},r.name)})]})]})}function v8({githubAccounts:t,githubAccountsLoading:s,onAddGitHubAccount:o,onUpdateGitHubAccount:r,onRemoveGitHubAccount:c,onImportGitHubAccounts:d,onShowToast:u}){const[p,m]=y.useState(""),[g,v]=y.useState(""),[_,b]=y.useState(!1),[x,S]=y.useState(!1),[j,w]=y.useState(!1),[T,C]=y.useState(null),A=t.find(D=>D.id===T),L=async D=>{if(D.preventDefault(),!(!p.trim()||!g.trim())){S(!0);try{await o(p.trim(),g.trim(),"",_),u==null||u("GitHub account added","success"),m(""),v(""),b(!1)}catch(z){const Y=z instanceof Error?z.message:"Failed to add account";u==null||u(Y,"error")}finally{S(!1)}}},E=async D=>{try{await r(D,{isDefault:!0}),u==null||u("Default account updated","success")}catch(z){const Y=z instanceof Error?z.message:"Failed to update account";u==null||u(Y,"error")}},M=async()=>{if(T)try{await c(T),u==null||u("GitHub account removed","info")}catch(D){const z=D instanceof Error?D.message:"Failed to remove account";u==null||u(z,"error")}finally{C(null)}},H=async()=>{w(!0);try{const D=await d();D.imported>0?u==null||u(`Imported ${D.imported} account(s): ${D.usernames.join(", ")}`,"success"):u==null||u("No new accounts to import","info")}catch(D){const z=D instanceof Error?D.message:"Import failed";u==null||u(z,"error")}finally{w(!1)}};return a.jsxs(a.Fragment,{children:[a.jsx(ks,{isOpen:T!==null,title:"Remove GitHub Account?",description:A?`"${A.label}"${A.username?` (@${A.username})`:""} will be permanently removed.`:void 0,onConfirm:()=>{M().catch(()=>{})},onCancel:()=>C(null)}),a.jsxs("section",{className:ue.section,"data-testid":"github-accounts-panel",children:[a.jsx("h3",{className:ue.sectionTitle,children:"GitHub Accounts"}),a.jsx("p",{className:ue.sectionDescription,children:"Register multiple GitHub accounts to use different identities per environment. The default account is used when no specific account is assigned."}),s&&t.length===0?a.jsx("div",{className:ue.emptyState,children:"Loading..."}):t.length===0?a.jsx("div",{className:ue.emptyStateInfo,children:"No GitHub accounts registered. Add one below or import from the gh CLI."}):a.jsx("div",{className:ue.tokenList,children:t.map(D=>a.jsxs("div",{className:ue.tokenRow,"data-testid":`github-account-row-${D.id}`,children:[D.isDefault&&a.jsx("span",{className:ue.tokenBadge,title:"Default account",children:"default"}),a.jsx("span",{className:ue.tokenName,children:D.label}),D.username&&a.jsxs("span",{className:ue.tokenTarget,children:["@",D.username]}),!D.isDefault&&a.jsx("button",{className:ue.deleteButton,onClick:()=>{E(D.id).catch(()=>{})},title:"Set as default","aria-label":`Set ${D.label} as default`,"data-testid":`github-account-set-default-${D.id}`,children:a.jsx(IT,{size:Ut,"aria-hidden":"true"})}),a.jsx("button",{className:ue.deleteButton,onClick:()=>C(D.id),title:`Remove ${D.label}`,"aria-label":`Remove ${D.label}`,"data-testid":`github-account-remove-${D.id}`,children:a.jsx($s,{size:Ut,"aria-hidden":"true"})})]},D.id))}),a.jsxs("form",{className:ue.addForm,onSubmit:D=>{L(D).catch(()=>{})},children:[a.jsxs("div",{className:ue.formRow,children:[a.jsx("input",{className:ue.input,type:"text",placeholder:"Label (e.g. personal, work)",value:p,onChange:D=>m(D.target.value),"data-testid":"github-account-label-input"}),a.jsx("input",{className:ue.input,type:"password",placeholder:"Personal access token",value:g,onChange:D=>v(D.target.value),"data-testid":"github-account-token-input"})]}),a.jsxs("div",{className:ue.formRow,children:[a.jsxs("label",{className:ue.tokenTarget,style:{display:"flex",alignItems:"center",gap:"6px",cursor:"pointer"},children:[a.jsx("input",{type:"checkbox",checked:_,onChange:D=>b(D.target.checked),"data-testid":"github-account-default-checkbox"}),"Set as default"]}),a.jsx("button",{className:ue.addButton,type:"submit",disabled:!p.trim()||!g.trim()||x,"data-testid":"github-account-add-button",children:x?"Adding...":"Add Account"}),a.jsx("button",{className:ue.addButton,type:"button",onClick:()=>{H().catch(()=>{})},disabled:j,"data-testid":"github-account-import-button",children:j?"Importing...":"Import from gh CLI"})]})]})]})]})}const y8="_container_legrg_1",b8="_header_legrg_8",_8="_headerTitle_legrg_35",x8="_badge_legrg_44",k8="_headerActions_legrg_54",S8="_body_legrg_61",j8="_formContent_legrg_73",T8="_section_legrg_85",w8="_label_legrg_91",N8="_nameInput_legrg_98",C8="_fieldInput_legrg_131",E8="_adapterSelect_legrg_164",A8="_readOnlyValue_legrg_198",D8="_codespaceSection_legrg_204",R8="_codespaceActions_legrg_210",M8="_creatingHint_legrg_216",I8="_errorHint_legrg_222",O8="_btnPrimary_legrg_235",L8="_btnGhost_legrg_266",oe={container:y8,header:b8,headerTitle:_8,badge:x8,headerActions:k8,body:S8,formContent:j8,section:T8,label:w8,nameInput:N8,fieldInput:C8,adapterSelect:E8,readOnlyValue:A8,codespaceSection:D8,codespaceActions:R8,creatingHint:M8,errorHint:I8,btnPrimary:O8,btnGhost:L8},cd=1,dd=65535;function Bp(t){if(!t.trim())return!0;const s=Number(t);return Number.isInteger(s)&&s>=cd&&s<=dd}function $p(t){try{const s=JSON.parse(t);if(typeof s=="object"&&s!==null&&!Array.isArray(s))return s}catch{}return{}}function B8({codespaceName:t,onCodespaceNameChange:s,envName:o,onEnvNameChange:r,codespaces:c,codespaceError:d,codespaceListError:u,codespaceCreating:p,onCreateCodespace:m}){const[g,v]=y.useState("pick"),[_,b]=y.useState(""),[x,S]=y.useState("");return g==="create"?a.jsxs("div",{className:oe.codespaceSection,children:[a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Repository"}),a.jsx("input",{type:"text",value:_,onChange:j=>b(j.target.value),placeholder:"owner/repo",className:oe.fieldInput,"data-testid":"env-codespace-repo"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Machine Type"}),a.jsx("input",{type:"text",value:x,onChange:j=>S(j.target.value),placeholder:"Machine type (optional)...",className:oe.fieldInput,"data-testid":"env-codespace-machine"})]}),a.jsxs("div",{className:oe.codespaceActions,children:[a.jsx("button",{onClick:()=>{_.trim()&&(m(_.trim(),x.trim()||void 0),v("pick"),b(""),S(""))},disabled:!_.trim(),className:oe.btnPrimary,children:"Create"}),a.jsx("button",{onClick:()=>{v("pick"),b(""),S("")},className:oe.btnGhost,children:"Cancel"})]})]}):a.jsx("div",{className:oe.codespaceSection,children:a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Codespace"}),!u&&a.jsxs("select",{value:t,onChange:j=>{j.target.value==="__create__"?(v("create"),s("")):(s(j.target.value),j.target.value&&!o.trim()&&r(j.target.value))},disabled:p,className:oe.adapterSelect,"data-testid":"env-codespace-select",children:[a.jsx("option",{value:"",children:"Select a codespace..."}),c.map(j=>a.jsxs("option",{value:j.name,children:[j.name," (",j.repository,") — ",j.state]},j.name)),a.jsx("option",{value:"__create__",children:"Create new from repo..."})]}),p&&a.jsx("span",{className:oe.creatingHint,children:"Creating codespace..."}),u&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:oe.errorHint,children:u}),a.jsx("input",{type:"text",value:t,onChange:j=>s(j.target.value),placeholder:"Or enter codespace name manually...",className:oe.fieldInput,"data-testid":"env-codespace-manual"})]}),d&&!u&&a.jsx("span",{className:oe.errorHint,children:d})]})})}function X1({mode:t,environmentId:s,environments:o,githubAccounts:r,onAddEnvironment:c,onUpdateEnvironment:d,onListCodespaces:u,codespaces:p,codespaceError:m,codespaceListError:g,codespaceCreating:v,onCreateCodespace:_,onShowToast:b}){const x=dt(),S=t==="edit",j=S&&s?o.find(fe=>fe.id===s):void 0,[w,T]=y.useState(""),[C,A]=y.useState("local"),[L,E]=y.useState(""),[M,H]=y.useState(""),[D,z]=y.useState(""),[Y,V]=y.useState(""),[Q,ge]=y.useState(""),[X,re]=y.useState(""),[B,R]=y.useState(""),[Z,me]=y.useState(""),[q,le]=y.useState(null),de=y.useCallback(()=>{const fe={};if(C==="local"){if(L.trim()&&(fe.host=L.trim()),M.trim()){const be=Number(M);Number.isInteger(be)&&(fe.port=be)}}else if(C==="ssh"){if(fe.host=L.trim(),D.trim()&&(fe.user=D.trim()),M.trim()){const be=Number(M);Number.isInteger(be)&&(fe.sshPort=be)}Y.trim()&&(fe.identityFile=Y.trim())}else C==="docker"?(Q.trim()&&(fe.image=Q.trim()),X.trim()&&(fe.repo=X.trim())):C==="codespace"&&(fe.codespaceName=B.trim());return fe},[C,L,M,D,Y,Q,X,B]),xe=()=>!(!w.trim()||C==="ssh"&&!L.trim()||C==="codespace"&&!B.trim()||(C==="local"||C==="ssh")&&!Bp(M)),ke=()=>{xe()&&(c(w.trim(),C,de(),Z||void 0),b==null||b("Environment added successfully","success"),x(Bo,{replace:!0}))},Ze=()=>{x(s?Mi(s):Bo)},Xe=y.useCallback((fe,be)=>{if(!j||!s)return;const Vt=$p(j.adapterConfig),ie=be.trim();ie?Vt[fe]=ie:delete Vt[fe],d(s,{adapterConfig:Vt})},[j,s,d]),Se=y.useCallback((fe,be)=>{if(!j||!s)return;const Vt=$p(j.adapterConfig);if(be.trim()){const ie=Number(be);Number.isInteger(ie)&&ie>=cd&&ie<=dd&&(Vt[fe]=ie)}else delete Vt[fe];d(s,{adapterConfig:Vt})},[j,s,d]);if(S){if(!j)return a.jsxs("div",{className:oe.container,children:[a.jsxs("div",{className:oe.header,children:[a.jsx("div",{className:oe.headerTitle,children:a.jsx("span",{className:oe.badge,children:"edit environment"})}),a.jsx("div",{className:oe.headerActions,children:a.jsx("button",{onClick:Ze,className:oe.btnGhost,children:"Back"})})]}),a.jsx("div",{className:oe.body,children:a.jsx("div",{className:oe.formContent,children:a.jsx("span",{className:oe.readOnlyValue,children:"Environment not found"})})})]});const fe=$p(j.adapterConfig);return a.jsxs("div",{className:oe.container,"data-testid":"env-edit-panel",children:[a.jsxs("div",{className:oe.header,children:[a.jsx("div",{className:oe.headerTitle,children:a.jsx("span",{className:oe.badge,children:"edit environment"})}),a.jsx("div",{className:oe.headerActions,children:a.jsx("button",{onClick:Ze,className:oe.btnGhost,"data-testid":"env-edit-back",children:"Back"})})]}),a.jsx("div",{className:oe.body,children:a.jsxs("div",{className:oe.formContent,children:[a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Name"}),a.jsx(Yt,{value:j.displayName,onSave:be=>{s&&d(s,{displayName:be})},validate:be=>be.trim()===""?"Name cannot be empty":void 0,mode:"edit",fieldId:"name",activeFieldId:q,onActivate:le,placeholder:"Environment name",ariaLabel:"Environment name","data-testid":"env-edit-name"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Adapter Type"}),a.jsx("span",{className:oe.readOnlyValue,"data-testid":"env-edit-adapter-type",children:j.adapterType})]}),(j.adapterType==="codespace"||j.adapterType==="docker")&&(r.length>0||!!j.githubAccountId)&&a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"GitHub Account"}),a.jsxs("select",{value:j.githubAccountId||"",onChange:be=>{s&&d(s,{githubAccountId:be.target.value})},className:oe.adapterSelect,"data-testid":"env-edit-github-account",children:[a.jsx("option",{value:"",children:"(Default)"}),r.map(be=>a.jsxs("option",{value:be.id,children:[be.label,be.username?` (@${be.username})`:"",be.isDefault?" — default":""]},be.id))]})]}),j.adapterType==="local"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Host"}),a.jsx(Yt,{value:String(fe.host??""),onSave:be=>Xe("host",be),mode:"edit",fieldId:"host",activeFieldId:q,onActivate:le,placeholder:"(default)",ariaLabel:"Host","data-testid":"env-edit-host"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Port"}),a.jsx(Yt,{value:String(fe.port??""),onSave:be=>Se("port",be),validate:be=>Bp(be)?void 0:"Port must be 1-65535",mode:"edit",fieldId:"port",activeFieldId:q,onActivate:le,placeholder:"(default)",ariaLabel:"Port","data-testid":"env-edit-port"})]})]}),j.adapterType==="ssh"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Host"}),a.jsx(Yt,{value:String(fe.host??""),onSave:be=>Xe("host",be),validate:be=>be.trim()===""?"Host is required":void 0,mode:"edit",fieldId:"host",activeFieldId:q,onActivate:le,placeholder:"hostname or IP",ariaLabel:"Host","data-testid":"env-edit-host"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"User"}),a.jsx(Yt,{value:String(fe.user??""),onSave:be=>Xe("user",be),mode:"edit",fieldId:"user",activeFieldId:q,onActivate:le,placeholder:"(default)",ariaLabel:"User","data-testid":"env-edit-user"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"SSH Port"}),a.jsx(Yt,{value:String(fe.sshPort??""),onSave:be=>Se("sshPort",be),validate:be=>Bp(be)?void 0:"Port must be 1-65535",mode:"edit",fieldId:"sshPort",activeFieldId:q,onActivate:le,placeholder:"22",ariaLabel:"SSH Port","data-testid":"env-edit-ssh-port"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Identity File"}),a.jsx(Yt,{value:String(fe.identityFile??""),onSave:be=>Xe("identityFile",be),mode:"edit",fieldId:"identityFile",activeFieldId:q,onActivate:le,placeholder:"~/.ssh/id_rsa",ariaLabel:"Identity File","data-testid":"env-edit-identity-file"})]})]}),j.adapterType==="docker"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Image"}),a.jsx(Yt,{value:String(fe.image??""),onSave:be=>Xe("image",be),mode:"edit",fieldId:"image",activeFieldId:q,onActivate:le,placeholder:"(default)",ariaLabel:"Image","data-testid":"env-edit-image"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Repo"}),a.jsx(Yt,{value:String(fe.repo??""),onSave:be=>Xe("repo",be),mode:"edit",fieldId:"repo",activeFieldId:q,onActivate:le,placeholder:"(none)",ariaLabel:"Repo","data-testid":"env-edit-repo"})]})]}),j.adapterType==="codespace"&&a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,children:"Codespace Name"}),a.jsx(Yt,{value:String(fe.codespaceName??""),onSave:be=>Xe("codespaceName",be),validate:be=>be.trim()===""?"Codespace name is required":void 0,mode:"edit",fieldId:"codespaceName",activeFieldId:q,onActivate:le,placeholder:"codespace-name",ariaLabel:"Codespace Name","data-testid":"env-edit-codespace-name"})]})]})})]})}return a.jsxs("div",{className:oe.container,"data-testid":"env-create-panel",children:[a.jsxs("div",{className:oe.header,children:[a.jsx("div",{className:oe.headerTitle,children:a.jsx("span",{className:oe.badge,children:"new environment"})}),a.jsxs("div",{className:oe.headerActions,children:[a.jsx("button",{onClick:ke,disabled:!xe(),className:oe.btnPrimary,"data-testid":"env-create-submit",children:"Create"}),a.jsx("button",{onClick:Ze,className:oe.btnGhost,children:"Cancel"})]})]}),a.jsx("div",{className:oe.body,children:a.jsxs("div",{className:oe.formContent,children:[a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-name",children:"Name"}),a.jsx("input",{id:"env-create-name",type:"text",value:w,onChange:fe=>T(fe.target.value),placeholder:"Environment name...",autoFocus:!0,className:oe.nameInput,"data-testid":"env-create-name",onKeyDown:fe=>{fe.key==="Enter"&&xe()&&ke()}})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-adapter",children:"Adapter Type"}),a.jsxs("select",{id:"env-create-adapter",value:C,onChange:fe=>{A(fe.target.value),fe.target.value==="codespace"&&u(Z||void 0)},className:oe.adapterSelect,"data-testid":"env-create-adapter",children:[a.jsx("option",{value:"local",children:"local"}),a.jsx("option",{value:"ssh",children:"ssh"}),a.jsx("option",{value:"docker",children:"docker"}),a.jsx("option",{value:"codespace",children:"codespace"})]})]}),(C==="codespace"||C==="docker")&&r.length>0&&a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-github-account",children:"GitHub Account"}),a.jsxs("select",{id:"env-create-github-account",value:Z,onChange:fe=>{me(fe.target.value),C==="codespace"&&u(fe.target.value||void 0)},className:oe.adapterSelect,"data-testid":"env-create-github-account",children:[a.jsx("option",{value:"",children:"(Default)"}),r.map(fe=>a.jsxs("option",{value:fe.id,children:[fe.label," (@",fe.username,")",fe.isDefault?" — default":""]},fe.id))]})]}),C==="local"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-host",children:"Host"}),a.jsx("input",{id:"env-create-host",type:"text",value:L,onChange:fe=>E(fe.target.value),placeholder:"Host (optional)...",className:oe.fieldInput,"data-testid":"env-create-host"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-port",children:"Port"}),a.jsx("input",{id:"env-create-port",type:"number",min:cd,max:dd,value:M,onChange:fe=>H(fe.target.value),placeholder:"Port (optional)...",className:oe.fieldInput,"data-testid":"env-create-port"})]})]}),C==="ssh"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-host",children:"Host"}),a.jsx("input",{id:"env-create-host",type:"text",value:L,onChange:fe=>E(fe.target.value),placeholder:"Host (required)...",className:oe.fieldInput,"data-testid":"env-create-host"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-user",children:"User"}),a.jsx("input",{id:"env-create-user",type:"text",value:D,onChange:fe=>z(fe.target.value),placeholder:"User (optional)...",className:oe.fieldInput,"data-testid":"env-create-user"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-port",children:"SSH Port"}),a.jsx("input",{id:"env-create-port",type:"number",min:cd,max:dd,value:M,onChange:fe=>H(fe.target.value),placeholder:"SSH port (optional)...",className:oe.fieldInput,"data-testid":"env-create-port"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-identity",children:"Identity File"}),a.jsx("input",{id:"env-create-identity",type:"text",value:Y,onChange:fe=>V(fe.target.value),placeholder:"Identity file (optional)...",className:oe.fieldInput,"data-testid":"env-create-identity"})]})]}),C==="docker"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-image",children:"Image"}),a.jsx("input",{id:"env-create-image",type:"text",value:Q,onChange:fe=>ge(fe.target.value),placeholder:"Image (optional)...",className:oe.fieldInput,"data-testid":"env-create-image"})]}),a.jsxs("div",{className:oe.section,children:[a.jsx("label",{className:oe.label,htmlFor:"env-create-repo",children:"Repo"}),a.jsx("input",{id:"env-create-repo",type:"text",value:X,onChange:fe=>re(fe.target.value),placeholder:"Repo (optional)...",className:oe.fieldInput,"data-testid":"env-create-repo"})]})]}),C==="codespace"&&a.jsx(B8,{codespaceName:B,onCodespaceNameChange:R,envName:w,onEnvNameChange:T,codespaces:p,codespaceError:m,codespaceListError:g,codespaceCreating:v,onCreateCodespace:_})]})})]})}const $8="_group_1iprv_1",z8="_groupTitle_1iprv_8",H8="_shortcutList_1iprv_17",P8="_shortcutRow_1iprv_23",U8="_keys_1iprv_36",V8="_kbd_1iprv_43",q8="_description_1iprv_60",wi={group:$8,groupTitle:z8,shortcutList:H8,shortcutRow:P8,keys:U8,kbd:V8,description:q8},G8=[{title:"Global",shortcuts:[{keys:["?"],description:"Open keyboard shortcuts reference"},{keys:["N"],description:"Create a new task"},{keys:["Escape"],description:"Close dialog or cancel editing"}]},{title:"Task Page",shortcuts:[{keys:["1"],description:"Switch to Overview tab"},{keys:["2"],description:"Switch to Stream tab"},{keys:["3"],description:"Switch to Findings tab"}]},{title:"Workspace Page",shortcuts:[{keys:["1"],description:"Switch to Graph view"},{keys:["2"],description:"Switch to Board view"},{keys:["3"],description:"Switch to Tasks view"}]},{title:"Navigation Lists",shortcuts:[{keys:["←"],description:"Previous tab (horizontal nav)"},{keys:["→"],description:"Next tab (horizontal nav)"},{keys:["↑"],description:"Previous item (vertical nav)"},{keys:["↓"],description:"Next item (vertical nav)"},{keys:["J"],description:"Next item (alias for arrow down/right)"},{keys:["K"],description:"Previous item (alias for arrow up/left)"},{keys:["Home"],description:"Jump to first item"},{keys:["End"],description:"Jump to last item"}]},{title:"Editing",shortcuts:[{keys:["Enter"],description:"Activate / save inline edit"},{keys:["Space"],description:"Activate button or start editing"},{keys:["Escape"],description:"Cancel edit and discard changes"}]},{title:"Chat",shortcuts:[{keys:["Enter"],description:"Send message (when input is focused)"}]}];function F8(){return a.jsxs("section",{className:ue.section,"data-testid":"keyboard-shortcuts-panel",children:[a.jsx("h3",{className:ue.sectionTitle,children:"Keyboard Shortcuts"}),a.jsx("p",{className:ue.sectionDescription,children:"Keyboard shortcuts for navigating and interacting with Grackle. Global shortcuts are suppressed while typing in text fields."}),G8.map(t=>a.jsxs("div",{className:wi.group,children:[a.jsx("h4",{className:wi.groupTitle,children:t.title}),a.jsx("div",{className:wi.shortcutList,children:t.shortcuts.map(s=>a.jsxs("div",{className:wi.shortcutRow,children:[a.jsx("span",{className:wi.keys,children:s.keys.map(o=>a.jsx("kbd",{className:wi.kbd,children:o},o))}),a.jsx("span",{className:wi.description,children:s.description})]},s.description))})]},t.title))]})}const Z8=[{key:"claude",label:"Claude",description:"Forward Claude credentials for AI agent access.",options:[{value:"off",label:"Off"},{value:"subscription",label:"Subscription"},{value:"api_key",label:"API Key"}]},{key:"github",label:"GitHub",description:"Forward GITHUB_TOKEN and GH_TOKEN for git operations.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"copilot",label:"Copilot",description:"Forward Copilot tokens (COPILOT_GITHUB_TOKEN, CLI config).",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"codex",label:"Codex",description:"Forward OPENAI_API_KEY for Codex/OpenAI access.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"goose",label:"Goose",description:"Forward Goose config and API keys for Goose agent access.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]}];function K8({credentialProviders:t,onUpdateCredentialProviders:s}){const o=(r,c)=>{const d={...t};r==="claude"?d.claude=c:d[r]=c,s(d)};return a.jsxs("section",{className:ue.section,children:[a.jsx("h3",{className:ue.sectionTitle,children:"Credential Providers"}),a.jsx("p",{className:ue.sectionDescription,children:"Enable providers to automatically forward credentials to environments at task start. Credentials are read fresh from the host each time."}),a.jsx("div",{className:ue.tokenList,children:Z8.map(r=>a.jsxs("div",{className:ue.tokenRow,children:[a.jsx("span",{className:ue.tokenName,children:r.label}),a.jsx("span",{className:ue.tokenTarget,children:r.description}),a.jsx("select",{className:ue.select,value:t[r.key],onChange:c=>o(r.key,c.target.value),children:r.options.map(c=>a.jsx("option",{value:c.value,children:c.label},c.value))})]},r.key))})]})}const Y8="_container_10efq_1",J8="_header_10efq_7",W8="_list_10efq_105",X8="_card_10efq_111",Q8="_cardHeader_10efq_125",e7="_cardTitle_10efq_135",t7="_defaultBadge_10efq_141",n7="_cardActions_10efq_155",s7="_description_10efq_160",a7="_meta_10efq_166",i7="_empty_10efq_212",o7="_typeBadge_10efq_362",ss={container:Y8,header:J8,list:W8,card:X8,cardHeader:Q8,cardTitle:e7,defaultBadge:t7,cardActions:n7,description:s7,meta:a7,empty:i7,typeBadge:o7};function r7({personas:t,appDefaultPersonaId:s,onDeletePersona:o,onSetAppDefaultPersonaId:r,onNavigateToNew:c,onNavigateToPersona:d}){const[u,p]=y.useState(null),m=u?t.find(v=>v.id===u):void 0,g=async v=>{await o(v),p(null)};return a.jsxs("div",{className:ss.container,children:[a.jsxs("div",{className:ss.header,children:[a.jsx("h2",{children:"Personas"}),a.jsx(rn,{variant:"primary",size:"md",onClick:c,"data-testid":"persona-new-button",children:"+ New Persona"})]}),t.length===0?a.jsx("p",{className:ss.empty,children:"No personas yet. Create one to get started."}):a.jsx("div",{className:ss.list,children:t.map(v=>{const _=s===v.id,b=v.type==="script";return a.jsxs("div",{className:ss.card,"data-testid":`persona-card-${v.id}`,onClick:()=>d(v.id),role:"button",tabIndex:0,onKeyDown:x=>{x.currentTarget===x.target&&(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),d(v.id))},children:[a.jsxs("div",{className:ss.cardHeader,children:[a.jsxs("span",{className:ss.cardTitle,children:[a.jsx("strong",{children:v.name}),a.jsx("span",{className:ss.typeBadge,"data-testid":`persona-type-badge-${v.id}`,children:b?"Script":"Agent"}),_&&a.jsx("span",{className:ss.defaultBadge,"data-testid":`persona-default-badge-${v.id}`,children:"App Default"})]}),a.jsxs("div",{className:ss.cardActions,onClick:x=>x.stopPropagation(),children:[!_&&a.jsx(rn,{variant:"ghost",size:"sm",onClick:()=>{r(v.id).catch(()=>{})},"data-testid":`persona-set-default-${v.id}`,title:"Set as app default persona",children:"Set Default"}),a.jsx(rn,{variant:"ghost",size:"sm",onClick:()=>d(v.id),children:"Edit"}),a.jsx(rn,{variant:"ghost",size:"sm",onClick:()=>p(v.id),"data-testid":`persona-delete-${v.id}`,children:"Delete"})]})]}),v.description&&a.jsx("p",{className:ss.description,children:v.description}),a.jsxs("div",{className:ss.meta,children:[v.runtime&&a.jsxs("span",{children:["Runtime: ",v.runtime]}),v.model&&a.jsxs("span",{children:["Model: ",v.model]}),v.maxTurns>0&&a.jsxs("span",{children:["Max turns: ",v.maxTurns]})]})]},v.id)})}),a.jsx(ks,{isOpen:u!==null,title:"Delete Persona?",description:`"${(m==null?void 0:m.name)??""}" will be permanently removed.`,confirmLabel:"Delete",onConfirm:()=>{u&&g(u).catch(()=>{})},onCancel:()=>p(null)})]})}const l7="_container_uy08i_1",c7="_header_uy08i_7",d7="_count_uy08i_13",u7="_presets_uy08i_18",f7="_presetButton_uy08i_24",p7="_filterInput_uy08i_41",m7="_groups_uy08i_53",h7="_group_uy08i_53",g7="_groupHeader_uy08i_68",v7="_groupName_uy08i_77",y7="_groupCount_uy08i_81",b7="_toolList_uy08i_87",_7="_toolItem_uy08i_95",x7="_toolName_uy08i_103",_n={container:l7,header:c7,count:d7,presets:u7,presetButton:f7,filterInput:p7,groups:m7,group:h7,groupHeader:g7,groupName:v7,groupCount:y7,toolList:b7,toolItem:_7,toolName:x7},k7=(()=>{const t=new Map;for(const s of E_){const o=s==="get_version_status"?"version":s.split("_")[0];t.has(o)||t.set(o,[]),t.get(o).push(s)}return[...t.entries()].sort(([s],[o])=>s.localeCompare(o)).map(([s,o])=>({group:s,tools:o.sort()}))})(),S7=[{name:"default",label:"Default",tools:A_},{name:"worker",label:"Worker",tools:P2},{name:"orchestrator",label:"Orchestrator",tools:U2},{name:"admin",label:"Admin",tools:V2}];function l_({selectedTools:t,onChange:s,disabled:o}){const[r,c]=y.useState(""),d=y.useMemo(()=>new Set(t),[t]),u=y.useCallback(v=>{if(o)return;const _=new Set(d);_.has(v)?_.delete(v):_.add(v),s([..._].sort())},[d,s,o]),p=y.useCallback((v,_)=>{if(o)return;const b=new Set(d);for(const x of v)_?b.delete(x):b.add(x);s([...b].sort())},[d,s,o]),m=y.useCallback(v=>{o||s([...v].sort())},[s,o]),g=r.toLowerCase();return a.jsxs("div",{className:_n.container,"data-testid":"mcp-tool-selector",children:[a.jsx("div",{className:_n.header,children:a.jsx("span",{className:_n.count,children:t.length===0?`Using default (${A_.length} tools)`:`${t.length} of ${E_.size} tools selected`})}),a.jsxs("div",{className:_n.presets,"data-testid":"mcp-tool-presets",children:[S7.map(v=>a.jsx("button",{type:"button",className:_n.presetButton,disabled:o,onClick:()=>m(v.tools),"data-testid":`preset-${v.name}`,children:v.label},v.name)),a.jsx("button",{type:"button",className:_n.presetButton,disabled:o,onClick:()=>s([]),"data-testid":"preset-clear",children:"Clear"})]}),a.jsx("input",{type:"text",className:_n.filterInput,placeholder:"Filter tools...",value:r,onChange:v=>c(v.target.value),disabled:o,"data-testid":"mcp-tool-filter"}),a.jsx("div",{className:_n.groups,children:k7.map(({group:v,tools:_})=>{const b=g?_.filter(S=>S.toLowerCase().includes(g)):_;if(b.length===0)return null;const x=b.every(S=>d.has(S));return a.jsxs("div",{className:_n.group,"data-testid":`tool-group-${v}`,children:[a.jsxs("label",{className:_n.groupHeader,children:[a.jsx("input",{type:"checkbox",checked:x,onChange:()=>p(b,x),disabled:o,"data-testid":`group-toggle-${v}`}),a.jsx("span",{className:_n.groupName,children:v}),a.jsxs("span",{className:_n.groupCount,children:["(",b.filter(S=>d.has(S)).length,"/",b.length,")"]})]}),a.jsx("div",{className:_n.toolList,children:b.map(S=>a.jsxs("label",{className:_n.toolItem,children:[a.jsx("input",{type:"checkbox",checked:d.has(S),onChange:()=>u(S),disabled:o,"data-testid":`tool-${S}`}),a.jsx("span",{className:_n.toolName,children:S})]},S))})]},v)})})]})}const j7="_container_1gfuq_1",T7="_header_1gfuq_7",w7="_list_1gfuq_19",N7="_card_1gfuq_25",C7="_cardHeader_1gfuq_40",E7="_cardTitle_1gfuq_46",A7="_statusBadge_1gfuq_56",D7="_enabled_1gfuq_68",R7="_disabled_1gfuq_71",M7="_cardActions_1gfuq_75",I7="_cardMeta_1gfuq_80",O7="_empty_1gfuq_98",as={container:j7,header:T7,list:w7,card:N7,cardHeader:C7,cardTitle:E7,statusBadge:A7,enabled:D7,disabled:R7,cardActions:M7,cardMeta:I7,empty:O7};function L7({schedules:t,personas:s,onDeleteSchedule:o,onToggleEnabled:r,onNavigateToNew:c,onNavigateToSchedule:d}){const[u,p]=y.useState(null),m=u?t.find(b=>b.id===u):void 0,g=async b=>{await o(b),p(null)},v=y.useMemo(()=>{const b=new Map;for(const x of s)b.set(x.id,x.name);return b},[s]),_=b=>v.get(b)??b;return a.jsxs("div",{className:as.container,children:[a.jsxs("div",{className:as.header,children:[a.jsx("h2",{children:"Schedules"}),a.jsx(rn,{variant:"primary",size:"md",onClick:c,"data-testid":"schedule-new-button",children:"+ New Schedule"})]}),t.length===0?a.jsx("p",{className:as.empty,"data-testid":"schedule-empty-state",children:"No schedules yet. Create one to run tasks on a recurring cadence."}):a.jsx("div",{className:as.list,children:t.map(b=>a.jsxs("div",{className:as.card,"data-testid":`schedule-card-${b.id}`,onClick:()=>d(b.id),role:"button",tabIndex:0,onKeyDown:x=>{x.currentTarget===x.target&&(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),d(b.id))},children:[a.jsxs("div",{className:as.cardHeader,children:[a.jsxs("span",{className:as.cardTitle,children:[a.jsx("strong",{children:b.title}),a.jsx("span",{className:`${as.statusBadge} ${b.enabled?as.enabled:as.disabled}`,"data-testid":`schedule-status-badge-${b.id}`,children:b.enabled?"Enabled":"Disabled"})]}),a.jsxs("div",{className:as.cardActions,onClick:x=>x.stopPropagation(),children:[a.jsx(rn,{variant:"ghost",size:"sm",onClick:()=>{(async()=>{await r(b.id,{enabled:!b.enabled})})().catch(()=>{})},"data-testid":`schedule-toggle-${b.id}`,title:b.enabled?"Disable schedule":"Enable schedule",children:b.enabled?"Disable":"Enable"}),a.jsx(rn,{variant:"ghost",size:"sm",onClick:()=>d(b.id),"data-testid":`schedule-edit-${b.id}`,children:"Edit"}),a.jsx(rn,{variant:"ghost",size:"sm",onClick:()=>p(b.id),"data-testid":`schedule-delete-${b.id}`,children:"Delete"})]})]}),a.jsxs("div",{className:as.cardMeta,children:[a.jsx("span",{"data-testid":`schedule-expression-${b.id}`,children:b.scheduleExpression}),b.personaId&&a.jsxs("span",{"data-testid":`schedule-persona-${b.id}`,children:["Persona: ",_(b.personaId)]}),a.jsxs("span",{"data-testid":`schedule-last-run-${b.id}`,children:["Last run: ",b.lastRunAt?Uo(b.lastRunAt):"Never"]}),b.enabled&&b.nextRunAt?a.jsxs("span",{"data-testid":`schedule-next-run-${b.id}`,children:["Next run: ",q1(b.nextRunAt)]}):null,b.runCount>0&&a.jsxs("span",{"data-testid":`schedule-run-count-${b.id}`,children:["Runs: ",b.runCount]})]})]},b.id))}),a.jsx(ks,{isOpen:u!==null,title:"Delete Schedule?",description:`"${(m==null?void 0:m.title)??""}" will be permanently removed. Tasks already created by this schedule will not be affected.`,confirmLabel:"Delete",onConfirm:()=>{u&&g(u).catch(()=>{})},onCancel:()=>p(null)})]})}const B7="_nav_1bhou_1",$7="_tab_1bhou_24",z7="_tabIcon_1bhou_62",H7="_tabActive_1bhou_68",Jc={nav:B7,tab:$7,tabIcon:z7,tabActive:H7},ia=[{path:"credentials",label:"Credentials",icon:a.jsx(nT,{size:Et})},{path:"github-accounts",label:"GitHub Accounts",icon:a.jsx(Wj,{size:Et})},{path:"personas",label:"Personas",icon:a.jsx(BT,{size:Et})},{path:"schedules",label:"Schedules",icon:a.jsx(Aj,{size:Et})},{path:"appearance",label:"Appearance",icon:a.jsx(vT,{size:Et})},{path:"shortcuts",label:"Shortcuts",icon:a.jsx(aT,{size:Et})},{path:"plugins",label:"Plugins",icon:a.jsx(ST,{size:Et})},{path:"about",label:"About",icon:a.jsx(Tm,{size:Et})}];function P7(){var u;const t=Wt(),s=dt(),o=y.useRef(null),r=((u=ia.find(p=>{const m=`${Ai}/${p.path}`;return t.pathname===m||t.pathname.startsWith(`${m}/`)}))==null?void 0:u.path)??ia[0].path,c=y.useCallback(p=>{s(`${Ai}/${p}`)},[s]),d=y.useCallback(p=>{var x,S;const m=(x=o.current)==null?void 0:x.querySelectorAll('[role="tab"]');if(!m)return;const g=Array.from(m).findIndex(j=>j===document.activeElement),v=g>=0?g:ia.findIndex(j=>j.path===r);let _=v;if(p.key==="ArrowDown"||p.key==="j"||p.key==="J")p.preventDefault(),_=(v+1)%ia.length;else if(p.key==="ArrowUp"||p.key==="k"||p.key==="K")p.preventDefault(),_=(v-1+ia.length)%ia.length;else if(p.key==="Home")p.preventDefault(),_=0;else if(p.key==="End")p.preventDefault(),_=ia.length-1;else return;const b=ia[_].path;s(`${Ai}/${b}`),(S=m[_])==null||S.focus()},[r,s]);return a.jsx("nav",{className:Jc.nav,ref:o,role:"tablist","aria-orientation":"vertical","aria-label":"Settings",onKeyDown:d,children:ia.map(p=>{const m=p.path===r;return a.jsxs("button",{role:"tab",type:"button","aria-selected":m,tabIndex:m?0:-1,className:`${Jc.tab} ${m?Jc.tabActive:""}`,onClick:()=>c(p.path),children:[a.jsx("span",{className:Jc.tabIcon,"aria-hidden":"true",children:p.icon}),p.label]},p.path)})})}const U7="_container_1dqrb_1",V7="_header_1dqrb_5",q7="_refreshButton_1dqrb_17",G7="_streamRow_1dqrb_32",F7="_selected_1dqrb_49",Z7="_systemRow_1dqrb_53 _streamRow_1dqrb_32",K7="_streamIcon_1dqrb_60",Y7="_streamName_1dqrb_65",J7="_subscriberBadge_1dqrb_74",W7="_emptyState_1dqrb_88",X7="_loading_1dqrb_95",xn={container:U7,header:V7,refreshButton:q7,streamRow:G7,selected:F7,systemRow:Z7,streamIcon:K7,streamName:Y7,subscriberBadge:J7,emptyState:W7,loading:X7},c_=14;function Q7({streams:t,loading:s,streamsLoadError:o=!1,streamsLoadedOnce:r=!0,onRefresh:c}){const d=dt(),u=Wt(),p=Dt("/chat/:streamId"),m=p==null?void 0:p.params.streamId,g=!m&&u.pathname===cl,v=[...t].sort((x,S)=>x.name.localeCompare(S.name)),_=y.useCallback(()=>{d(cl)},[d]),b=y.useCallback(x=>{d(qN(x))},[d]);return a.jsxs("div",{className:xn.container,"data-testid":"stream-list",children:[a.jsxs("div",{className:xn.header,children:[a.jsx("span",{children:"Streams"}),c&&a.jsx("button",{className:xn.refreshButton,onClick:c,"aria-label":"Refresh streams","data-testid":"stream-list-refresh",children:a.jsx(NT,{size:12})})]}),a.jsxs("button",{type:"button",className:`${xn.systemRow}${g?` ${xn.selected}`:""}`,onClick:_,"data-testid":"stream-list-system-row","aria-current":g?"page":void 0,children:[a.jsx(L_,{size:c_,className:xn.streamIcon}),a.jsx("span",{className:xn.streamName,children:"System"})]}),s&&v.length===0&&a.jsx("div",{className:xn.loading,children:"Loading..."}),!s&&o&&a.jsx("div",{className:xn.emptyState,"data-testid":"stream-list-error",children:"Unable to load streams"}),!s&&!o&&r&&v.length===0&&a.jsx("div",{className:xn.emptyState,children:"No streams"}),v.map(x=>{const S=m===x.id;return a.jsxs("button",{type:"button",className:`${xn.streamRow}${S?` ${xn.selected}`:""}`,onClick:()=>b(x.id),"data-testid":`stream-list-row-${x.id}`,"aria-current":S?"page":void 0,children:[a.jsx(TT,{size:c_,className:xn.streamIcon}),a.jsx("span",{className:xn.streamName,children:x.name}),x.subscriberCount>0&&a.jsx("span",{className:xn.subscriberBadge,children:x.subscriberCount})]},x.id)})]})}const e$="_panel_1au81_1",t$="_header_1au81_24",n$="_title_1au81_33",s$="_closeButton_1au81_43",a$="_body_1au81_57",i$="_section_1au81_63",o$="_sectionLabel_1au81_67",r$="_metaRow_1au81_76",l$="_metaKey_1au81_84",c$="_metaValue_1au81_90",d$="_subscriberCard_1au81_99",u$="_subscriberHeader_1au81_107",f$="_sessionLink_1au81_114",p$="_badges_1au81_132",m$="_badgeRw_1au81_150 _badge_1au81_132",h$="_badgeR_1au81_150 _badge_1au81_132",g$="_badgeW_1au81_162 _badge_1au81_132",v$="_badgeAsync_1au81_168 _badge_1au81_132",y$="_badgeSync_1au81_174 _badge_1au81_132",b$="_badgeDetach_1au81_178 _badge_1au81_132",_$="_spawnTag_1au81_184 _badge_1au81_132",x$="_fdNumber_1au81_189",k$="_emptySubscribers_1au81_195",lt={panel:e$,header:t$,title:n$,closeButton:s$,body:a$,section:i$,sectionLabel:o$,metaRow:r$,metaKey:l$,metaValue:c$,subscriberCard:d$,subscriberHeader:u$,sessionLink:f$,badges:p$,badgeRw:m$,badgeR:h$,badgeW:g$,badgeAsync:v$,badgeSync:y$,badgeDetach:b$,spawnTag:_$,fdNumber:x$,emptySubscribers:k$};function S$({permission:t}){const s=t==="rw"?lt.badgeRw:t==="r"?lt.badgeR:lt.badgeW;return a.jsx("span",{className:s,children:t})}function j$({mode:t}){const s=t==="async"?lt.badgeAsync:t==="detach"?lt.badgeDetach:lt.badgeSync;return a.jsx("span",{className:s,children:t})}function T$({stream:t,onClose:s}){const o=dt();return y.useEffect(()=>{const r=c=>{c.key==="Escape"&&s()};return document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)}},[s]),a.jsxs("div",{className:lt.panel,"data-testid":"stream-detail-panel",children:[a.jsxs("div",{className:lt.header,children:[a.jsx("h3",{className:lt.title,children:t.name}),a.jsx("button",{className:lt.closeButton,onClick:s,"aria-label":"Close stream details",children:"×"})]}),a.jsxs("div",{className:lt.body,children:[a.jsxs("div",{className:lt.section,children:[a.jsx("div",{className:lt.sectionLabel,children:"Overview"}),a.jsxs("div",{className:lt.metaRow,children:[a.jsx("span",{className:lt.metaKey,children:"Stream ID"}),a.jsx("span",{className:lt.metaValue,children:t.id})]}),a.jsxs("div",{className:lt.metaRow,children:[a.jsx("span",{className:lt.metaKey,children:"Subscribers"}),a.jsx("span",{className:lt.metaValue,children:t.subscriberCount})]}),a.jsxs("div",{className:lt.metaRow,children:[a.jsx("span",{className:lt.metaKey,children:"Buffered"}),a.jsxs("span",{className:lt.metaValue,children:[t.messageBufferDepth," msgs"]})]})]}),a.jsxs("div",{className:lt.section,children:[a.jsx("div",{className:lt.sectionLabel,children:"Subscribers"}),t.subscribers.length===0?a.jsx("div",{className:lt.emptySubscribers,children:"No active subscribers"}):t.subscribers.map(r=>a.jsxs("div",{className:lt.subscriberCard,"data-testid":`subscriber-card-${r.subscriptionId}`,children:[a.jsxs("div",{className:lt.subscriberHeader,children:[a.jsxs("span",{className:lt.fdNumber,children:["fd ",r.fd]}),a.jsxs("button",{className:lt.sessionLink,onClick:()=>{o(Bd(r.sessionId))},title:r.sessionId,children:[r.sessionId.slice(0,12),"…"]})]}),a.jsxs("div",{className:lt.badges,children:[a.jsx(S$,{permission:r.permission}),a.jsx(j$,{mode:r.deliveryMode}),r.createdBySpawn&&a.jsx("span",{className:lt.spawnTag,children:"spawn"})]})]},r.subscriptionId))]})]})]})}function w$({tasks:t,taskStatusById:s,sessionStatusByTaskId:o}){const r=new Map;for(const d of t)if(d.parentTaskId){const u=r.get(d.parentTaskId);u?u.push(d):r.set(d.parentTaskId,[d])}const c=new Map(Ty.map(d=>[d,[]]));for(const d of t){const u=gl(d.status),p=d.dependsOn.length>0&&d.dependsOn.some(S=>s.get(S)!=="complete"),m=r.get(d.id)??[],g=m.length,v=m.filter(S=>S.status==="complete").length;let _;if(u==="paused"&&o){const S=o.get(d.id);S==="idle"?_="Needs input":S==="completed"&&(_="Ready to complete")}const b={task:d,isBlocked:p,childCount:g,doneChildCount:v,pausedSubBadge:_},x=c.get(u);x?x.push(b):c.get("not_started").push(b)}for(const d of c.values())d.sort((u,p)=>u.task.sortOrder-p.task.sortOrder);return Ty.map(d=>{const u=Wa(d);return{status:d,label:u.label,style:u,tasks:c.get(d)??[]}})}const N$="_boardContainer_1c4y1_1",C$="_column_1c4y1_17",E$="_columnHeader_1c4y1_34",A$="_columnIcon_1c4y1_47",D$="_columnLabel_1c4y1_52",R$="_columnCount_1c4y1_57",M$="_cardList_1c4y1_67",I$="_emptyPlaceholder_1c4y1_76",O$="_card_1c4y1_67",L$="_cardHeader_1c4y1_107",B$="_cardStatusIcon_1c4y1_113",$$="_cardTitle_1c4y1_119",z$="_cardBadges_1c4y1_127",H$="_badge_1c4y1_134",P$="_blockedBadge_1c4y1_146",U$="_childBadge_1c4y1_151",V$="_depBadge_1c4y1_155",q$="_parentBadge_1c4y1_159",G$="_pausedSubBadge_1c4y1_166",F$="_personaBadge_1c4y1_170",Z$="_envBadge_1c4y1_174",K$="_emptyCta_1c4y1_178",Y$="_ctaButton_1c4y1_188",J$="_ctaDescription_1c4y1_204",ct={boardContainer:N$,column:C$,columnHeader:E$,columnIcon:A$,columnLabel:D$,columnCount:R$,cardList:M$,emptyPlaceholder:I$,card:O$,cardHeader:L$,cardStatusIcon:B$,cardTitle:$$,cardBadges:z$,badge:H$,blockedBadge:P$,childBadge:U$,depBadge:V$,parentBadge:q$,pausedSubBadge:G$,personaBadge:F$,envBadge:Z$,emptyCta:K$,ctaButton:Y$,ctaDescription:J$};function W$({workspaceId:t,environmentId:s,tasks:o,sessions:r,personas:c,environments:d}){const u=dt(),p=y.useMemo(()=>o.filter(b=>b.workspaceId===t),[o,t]),m=y.useMemo(()=>new Map(o.map(b=>[b.id,b.status])),[o]),g=y.useMemo(()=>new Map(p.map(b=>[b.id,b])),[p]),v=y.useMemo(()=>{const b=new Map(r.map(C=>[C.id,C])),x=new Map(c.map(C=>[C.id,C])),S=new Map(d.map(C=>[C.id,C])),j=new Map,w=new Map,T=new Map;for(const C of p)if(C.latestSessionId){const A=b.get(C.latestSessionId);if(A){if(j.set(C.id,A.endReason||A.status),A.personaId){const L=x.get(A.personaId);L&&w.set(C.id,L.name)}if(A.environmentId){const L=S.get(A.environmentId);L&&T.set(C.id,L.displayName)}}}return{sessionStatusByTaskId:j,personaNameByTaskId:w,environmentNameByTaskId:T}},[p,r,c,d]),_=y.useMemo(()=>w$({tasks:p,taskStatusById:m,sessionStatusByTaskId:v.sessionStatusByTaskId}),[p,m,v]);return p.length===0?a.jsxs("div",{className:ct.emptyCta,"data-testid":"board-empty-cta",children:[a.jsx("button",{className:ct.ctaButton,onClick:()=>u($i(t,void 0,s)),children:"Create Task"}),a.jsx("div",{className:ct.ctaDescription,children:"Break your work into tasks and let agents tackle them"})]}):a.jsx("div",{className:ct.boardContainer,"data-testid":"board-container",children:_.map(b=>a.jsxs("section",{className:ct.column,"data-testid":`board-column-${b.status}`,"aria-label":`${b.label}, ${b.tasks.length} ${b.tasks.length===1?"task":"tasks"}`,children:[a.jsxs("div",{className:ct.columnHeader,children:[a.jsx("span",{className:ct.columnIcon,style:{color:b.style.color},children:b.style.icon}),a.jsx("span",{className:ct.columnLabel,children:b.label}),a.jsx("span",{className:ct.columnCount,"data-testid":`board-count-${b.status}`,children:b.tasks.length})]}),a.jsx("div",{className:ct.cardList,children:b.tasks.length===0?a.jsx("div",{className:ct.emptyPlaceholder,children:"No tasks"}):a.jsx(ls,{mode:"popLayout",children:b.tasks.map(x=>a.jsx(At.div,{layout:!0,initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},children:a.jsx(X$,{boardTask:x,tasksById:g,personaName:v.personaNameByTaskId.get(x.task.id),envName:v.environmentNameByTaskId.get(x.task.id),onClick:()=>u(Hn(x.task.id,void 0,t,s))})},x.task.id))})})]},b.status))})}function X$({boardTask:t,tasksById:s,personaName:o,envName:r,onClick:c}){const{task:d,isBlocked:u,childCount:p,doneChildCount:m,pausedSubBadge:g}=t,v=Wa(d.status),_=d.parentTaskId?s.get(d.parentTaskId):void 0;return a.jsxs("div",{className:ct.card,tabIndex:0,role:"button","data-testid":`board-card-${d.id}`,onClick:c,onKeyDown:b=>{(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),c())},children:[a.jsxs("div",{className:ct.cardHeader,children:[a.jsx("span",{className:ct.cardStatusIcon,style:{color:v.color},children:v.icon}),a.jsx("span",{className:ct.cardTitle,children:d.title})]}),a.jsxs("div",{className:ct.cardBadges,children:[_&&a.jsx("span",{className:`${ct.badge} ${ct.parentBadge}`,title:_.title,children:_.title}),p>0&&a.jsxs("span",{className:`${ct.badge} ${ct.childBadge}`,children:[m,"/",p]}),u&&a.jsx("span",{className:`${ct.badge} ${ct.blockedBadge}`,children:"blocked"}),d.dependsOn.length>0&&!u&&a.jsx("span",{className:`${ct.badge} ${ct.depBadge}`,children:"dep"}),g&&a.jsx("span",{className:`${ct.badge} ${ct.pausedSubBadge}`,children:g}),o&&a.jsx("span",{className:`${ct.badge} ${ct.personaBadge}`,children:o}),r&&a.jsx("span",{className:`${ct.badge} ${ct.envBadge}`,children:r})]})]})}const Q$="_formContent_ymnez_1",ez="_section_ymnez_13",tz="_label_ymnez_19",nz="_titleInput_ymnez_26",sz="_descriptionTextarea_ymnez_58",az="_selectField_ymnez_94",iz="_checkboxRow_ymnez_128",oz="_checkboxLabel_ymnez_141",rz="_fieldError_ymnez_146",kt={formContent:Q$,section:ez,label:tz,titleInput:nz,descriptionTextarea:sz,selectField:az,checkboxRow:iz,checkboxLabel:oz,fieldError:rz};function lz(t,s){return{name:(t==null?void 0:t.name)??"",description:(t==null?void 0:t.description)??"",repoUrl:(t==null?void 0:t.repoUrl)??"",environmentId:(t==null?void 0:t.linkedEnvironmentIds[0])??s??"",defaultPersonaId:(t==null?void 0:t.defaultPersonaId)??"",useWorktrees:(t==null?void 0:t.useWorktrees)??!0,workingDirectory:(t==null?void 0:t.workingDirectory)??""}}const cz=100;function dz({values:t,onChange:s,environments:o,personas:r,errors:c,disabled:d,autoFocusName:u}){const p=(m,g)=>{s({...t,[m]:g})};return a.jsxs("div",{className:kt.formContent,children:[a.jsxs("div",{className:kt.section,children:[a.jsx("label",{className:kt.label,htmlFor:"ws-name",children:"Name"}),a.jsx("input",{id:"ws-name",className:kt.titleInput,type:"text",value:t.name,onChange:m=>p("name",m.target.value),placeholder:"Workspace name",maxLength:cz,autoFocus:u,disabled:d,"data-testid":"workspace-form-name"}),(c==null?void 0:c.name)&&a.jsx("span",{className:kt.fieldError,"data-testid":"workspace-form-error-name",children:c.name})]}),a.jsxs("div",{className:kt.section,children:[a.jsx("label",{className:kt.label,htmlFor:"ws-description",children:"Description"}),a.jsx("textarea",{id:"ws-description",className:kt.descriptionTextarea,value:t.description,onChange:m=>p("description",m.target.value),placeholder:"Optional description (Markdown supported)",disabled:d,"data-testid":"workspace-form-description"})]}),a.jsxs("div",{className:kt.section,children:[a.jsx("label",{className:kt.label,htmlFor:"ws-repo",children:"Repository URL"}),a.jsx("input",{id:"ws-repo",className:kt.titleInput,type:"text",value:t.repoUrl,onChange:m=>p("repoUrl",m.target.value),placeholder:"https://github.com/org/repo",disabled:d,"data-testid":"workspace-form-repo"}),(c==null?void 0:c.repoUrl)&&a.jsx("span",{className:kt.fieldError,"data-testid":"workspace-form-error-repoUrl",children:c.repoUrl})]}),a.jsxs("div",{className:kt.section,children:[a.jsx("label",{className:kt.label,htmlFor:"ws-environment",children:"Environment"}),a.jsxs("select",{id:"ws-environment",className:kt.selectField,value:t.environmentId,onChange:m=>p("environmentId",m.target.value),disabled:d,"data-testid":"workspace-form-environment",children:[a.jsx("option",{value:"",children:"Select environment…"}),o.map(m=>a.jsx("option",{value:m.id,children:m.displayName||m.id},m.id))]}),(c==null?void 0:c.environmentId)&&a.jsx("span",{className:kt.fieldError,"data-testid":"workspace-form-error-environmentId",children:c.environmentId})]}),a.jsxs("div",{className:kt.section,children:[a.jsx("label",{className:kt.label,htmlFor:"ws-persona",children:"Default Persona"}),a.jsxs("select",{id:"ws-persona",className:kt.selectField,value:t.defaultPersonaId,onChange:m=>p("defaultPersonaId",m.target.value),disabled:d,"data-testid":"workspace-form-persona",children:[a.jsx("option",{value:"",children:"(Inherit)"}),r.map(m=>a.jsx("option",{value:m.id,children:m.name},m.id))]})]}),a.jsx("div",{className:kt.section,children:a.jsxs("label",{className:kt.checkboxRow,children:[a.jsx("input",{type:"checkbox",checked:t.useWorktrees,onChange:m=>p("useWorktrees",m.target.checked),disabled:d,"data-testid":"workspace-form-worktrees"}),a.jsx("span",{className:kt.checkboxLabel,children:"Enable worktree isolation"})]})}),a.jsxs("div",{className:kt.section,children:[a.jsx("label",{className:kt.label,htmlFor:"ws-workdir",children:"Working Directory"}),a.jsx("input",{id:"ws-workdir",className:kt.titleInput,type:"text",value:t.workingDirectory,onChange:m=>p("workingDirectory",m.target.value),placeholder:"Default (server default)",disabled:d,"data-testid":"workspace-form-workdir"})]})]})}const Q1=y.createContext(void 0),uz=4e3;function fz({children:t}){const[s,o]=y.useState([]),r=y.useRef(0),c=y.useCallback(u=>{o(p=>p.filter(m=>m.id!==u))},[]),d=y.useCallback((u,p="info",m=uz)=>{const g=`toast-${++r.current}`;o(v=>[...v,{id:g,message:u,variant:p,duration:m}])},[]);return a.jsx(Q1.Provider,{value:{toasts:s,showToast:d,dismissToast:c},children:t})}function hn(){const t=y.useContext(Q1);if(!t)throw new Error("useToast must be used within ToastProvider");return t}const _m="grackle-theme",ek="grackle-prefer-system",tk="(prefers-color-scheme: dark)";let Xr=[],ud;function zp(){ud=void 0;for(const t of Xr)t()}function xm(){return typeof window>"u"?!1:window.matchMedia(tk).matches}function il(){if(typeof localStorage>"u")return o_;try{const t=localStorage.getItem(_m);if(t!==null&&J1.has(t))return t}catch{}return o_}function wd(){if(typeof localStorage>"u")return!1;try{return localStorage.getItem(ek)==="true"}catch{return!1}}function km(t){return Gd.find(s=>s.variantLightId===t||s.variantDarkId===t)}function nk(t,s){const o=bm(t);if(o!=null&&o.variantDarkId)return s&&o.variantLightId?xm()?o.variantDarkId:o.variantLightId:o.variantDarkId;if(o!=null&&o.hidden&&s){const r=km(t);if(r!=null&&r.variantLightId&&r.variantDarkId)return xm()?r.variantDarkId:r.variantLightId}return t}function Do(t,s,o=!1){o&&document.documentElement.classList.add("no-transitions"),document.documentElement.dataset.theme=nk(t,s),o&&(document.documentElement.offsetHeight,requestAnimationFrame(()=>{document.documentElement.classList.remove("no-transitions")}))}typeof document<"u"&&Do(il(),wd());function pz(){return ud===void 0&&(ud={themeId:il(),systemDark:xm(),preferSystem:wd()}),ud}function mz(t){return Xr=[...Xr,t],()=>{Xr=Xr.filter(s=>s!==t)}}function hz(){const t=y.useSyncExternalStore(mz,pz),{themeId:s,preferSystem:o}=t,r=nk(s,o),c=y.useCallback(u=>{if(J1.has(u)){try{localStorage.setItem(_m,u)}catch{}Do(u,wd(),!0),zp()}},[]),d=y.useCallback(u=>{try{localStorage.setItem(ek,u?"true":"false")}catch{}if(u){const p=il(),m=bm(p);if(m!=null&&m.hidden){const g=km(p);if(g)try{localStorage.setItem(_m,g.id)}catch{}}}Do(il(),u,!0),zp()},[]);return y.useEffect(()=>{Do(s,o)},[s,o]),y.useEffect(()=>{if(typeof window>"u")return;const u=window.matchMedia(tk),p=()=>{const m=il(),g=wd();if(g){const v=bm(m);if(v!=null&&v.variantDarkId&&v.variantLightId&&Do(m,g),v!=null&&v.hidden){const _=km(m);_!=null&&_.variantDarkId&&_.variantLightId&&Do(m,g)}}zp()};return u.addEventListener("change",p),()=>{u.removeEventListener("change",p)}},[]),{themeId:s,setTheme:c,resolvedThemeId:r,preferSystem:o,setPreferSystem:d}}const sk=y.createContext(void 0);function gz({children:t}){const s=hz();return a.jsx(sk.Provider,{value:s,children:t})}function ak(){const t=y.useContext(sk);if(!t)throw new Error("useThemeContext must be used within ThemeProvider");return t}const ik=y.createContext(void 0),ok=y.createContext(void 0);function vz({children:t}){const[s,o]=y.useState(void 0),r=y.useCallback(c=>{o(c)},[]);return a.jsx(ok.Provider,{value:r,children:a.jsx(ik.Provider,{value:s,children:t})})}function yz(){return y.useContext(ik)}function bz(){const t=y.useContext(ok);if(t===void 0)throw new Error("useSidebarSetter must be used within a SidebarProvider");return t}const vh=y.createContext(void 0);function ot(){const t=y.useContext(vh);if(!t)throw new Error("useGrackle must be used within GrackleProvider");return t}function rk(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function lk(t,s){return console.warn(`[ws] Malformed "${t}" message: ${s}`),!1}function _z(t){return rk(t)&&typeof t.sessionId=="string"&&typeof t.eventType=="string"&&typeof t.timestamp=="string"&&typeof t.content=="string"&&(t.raw===void 0||typeof t.raw=="string")}const xz=new Set(["off","subscription","api_key"]),Wc=new Set(["off","on"]);function kz(t){return rk(t)&&xz.has(t.claude)&&Wc.has(t.github)&&Wc.has(t.copilot)&&Wc.has(t.codex)&&Wc.has(t.goose)}function ck(t){switch(t){case"waiting_input":return"idle";case"completed":return"stopped";case"killed":return"stopped";case"failed":return"stopped";case"interrupted":return"stopped";case"terminated":return"stopped";default:return t}}function dk(t){switch(t){case"completed":return"completed";case"killed":return"killed";case"failed":return"interrupted";case"interrupted":return"interrupted";case"terminated":return"terminated";default:return}}const Ao=5e3;function Sz(t,s){const o=[];let r=t;const c=new Set;for(;r&&s.has(r)&&!c.has(r);){c.add(r);const d=s.get(r);o.unshift(d),r=d.parentTaskId||void 0}return o}const pa={label:"Home",url:Ii};function jz(t){return t?[pa,{label:"Settings",url:Ai},{label:t,url:void 0}]:[pa,{label:"Settings",url:void 0}]}const yh={label:"Environments",url:Bo};function Tz(){return[pa,{label:"Environments",url:void 0}]}function wz(){return[pa,{label:"New Chat",url:void 0}]}function Nz(t){return[pa,{label:`Session ${t.slice(0,8)}`,url:void 0}]}function Cz(t,s,o,r){const c=o.find(u=>u.id===t),d=r.find(u=>u.id===s);return[pa,yh,{label:(d==null?void 0:d.displayName)??"Environment",url:Mi(s)},{label:(c==null?void 0:c.name)??"Workspace",url:void 0}]}function Ez(t,s,o,r,c){const d=Sz(t,c),u=c.get(t),p=u==null?void 0:u.workspaceId,m=p?o.find(x=>x.id===p):void 0,g=s??(m==null?void 0:m.linkedEnvironmentIds[0]),v=g?r.find(x=>x.id===g):void 0,_=[pa];v&&g&&(_.push(yh),_.push({label:v.displayName,url:Mi(g)})),m&&g&&_.push({label:m.name,url:Ri(m.id,g)});for(let x=0;x<d.length-1;x++)_.push({label:d[x].title,url:Hn(d[x].id,void 0,p,g)});const b=d[d.length-1];return _.push({label:(b==null?void 0:b.title)??t,url:void 0}),_}const Az={label:"Findings",url:$d};function Dz(){return[pa,{label:"Findings",url:void 0}]}function uk(t,s,o,r,c){const d=[pa];if(s&&o){const u=r.find(m=>m.id===s),p=c.find(m=>m.id===o);d.push(yh),p&&d.push({label:p.displayName,url:Mi(o)}),u&&d.push({label:u.name,url:Ri(s,o)}),d.push({label:"Findings",url:FN(s,o)})}else d.push(Az);return d.push({label:t,url:void 0}),d}function bh(t){const s=[];for(const o of t){const r=s[s.length-1];o.eventType==="text"&&(r==null?void 0:r.eventType)==="text"?s[s.length-1]={...r,content:r.content+o.content}:s.push(o)}return s}function Xc(t){if(typeof t.id=="string")return t.id;const s=t.data;if(s&&typeof s.toolCallId=="string")return s.toolCallId;const o=t.item;if(o&&typeof o.id=="string")return o.id}function Rz(t){if(typeof t.tool_use_id=="string")return t.tool_use_id;const s=t.data;if(s&&typeof s.toolCallId=="string")return s.toolCallId;const o=t.item;if(o&&typeof o.id=="string")return o.id}function _h(t){const s=new Map;for(const v of t)if(v.raw)try{s.set(v,JSON.parse(v.raw))}catch{}const o=new Map;for(const v of t){if(v.eventType!=="tool_use")continue;const _=s.get(v),b=_?Xc(_):void 0;if(b)try{const x=JSON.parse(v.content);o.set(b,{tool:x.tool,args:x.args})}catch{}}const r=new Set,c=new Set,d=t.map((v,_)=>{if(v.eventType!=="tool_result")return v;const b=s.get(v),x=b?Rz(b):void 0;if(!x)return v;const S=o.get(x);if(!S)return v;r.add(x),c.add(_);let j;const w=v.content.trim();if(w.startsWith("{"))try{const T=JSON.parse(w);typeof T.detailedContent=="string"&&(j=T.detailedContent)}catch{}return{...v,toolUseCtx:{...S,detailedResult:j}}}),u=[];for(let v=0;v<d.length;v++){if(d[v].eventType!=="tool_use")continue;const _=s.get(d[v]),b=_?Xc(_):void 0;b&&r.has(b)||u.push(v)}const p=[];for(let v=0;v<d.length;v++)d[v].eventType!=="tool_result"||c.has(v)||p.push(v);let m=0;for(const v of u){for(;m<p.length&&p[m]<v;)m++;if(m>=p.length)break;const _=p[m];if(_!==v+1)continue;const b=d[v],x=d[_];let S;try{const j=JSON.parse(b.content);S={tool:j.tool,args:j.args}}catch{}if(S){let j;const w=x.content.trim();if(w.startsWith("{"))try{const A=JSON.parse(w);typeof A.detailedContent=="string"&&(j=A.detailedContent)}catch{}d[_]={...x,toolUseCtx:{...S,detailedResult:j}},c.add(_);const T=s.get(b),C=T?Xc(T):void 0;C?r.add(C):(r.add(`__seq_${v}`),s.set(b,{...T??{},__seqId:`__seq_${v}`})),m++}}const g=d.filter(v=>{if(v.eventType!=="tool_use")return!0;const _=s.get(v);if(!_)return!0;const b=Xc(_);if(b&&r.has(b))return!1;const x=_.__seqId;return!(x&&r.has(x))});for(let v=0;v<g.length;v++){if(g[v].eventType!=="tool_use")continue;let _=!1;for(let b=v+1;b<g.length;b++)if(g[b].eventType!=="tool_use"){_=!0;break}_&&(g[v]={...g[v],settled:!0})}return g}function Mz(t,s,o){const r=t.filter(m=>m.status==="running"||m.status==="idle"||m.status==="waiting").length,c=fk(s),d=s.filter(m=>Sm(m,c)).length,u=s.filter(m=>m.status==="paused"||m.status==="failed"||Sm(m,c)).length,p=o.filter(m=>m.status==="disconnected"||m.status==="error").length;return{activeSessions:r,blockedTasks:d,attentionTasks:u,unhealthyEnvironments:p}}function fk(t){const s=new Map;for(const o of t)s.set(o.id,o.status);return s}function Sm(t,s){return t.dependsOn.some(o=>s.get(o)!=="complete")}function Iz(t,s){var u;const o=new Map;for(const p of s)o.set(p.id,p);const r=fk(t),c=[];for(const p of t){const m=p.workspaceId?((u=o.get(p.workspaceId))==null?void 0:u.name)??"Unknown":"Unknown";p.status==="failed"?c.push({task:p,reason:"failed",workspaceName:m}):Sm(p,r)?c.push({task:p,reason:"blocked",workspaceName:m}):p.status==="paused"&&c.push({task:p,reason:"paused",workspaceName:m})}const d={failed:0,blocked:1,paused:2};return c.sort((p,m)=>(d[p.reason]??3)-(d[m.reason]??3)),c}function Oz(t,s){const o=new Map;for(const r of s)o.set(r.id,r);return t.filter(r=>r.status==="running"||r.status==="idle"||r.status==="waiting").map(r=>{var c;return{session:r,environmentName:((c=o.get(r.environmentId))==null?void 0:c.displayName)??"Unknown"}})}function Lz(t,s,o){const r=new Map;for(const c of s){if(!c.workspaceId)continue;let d=r.get(c.workspaceId);d||(d={totalTasks:0,completedTasks:0,workingTasks:0,failedTasks:0},r.set(c.workspaceId,d)),d.totalTasks+=1,c.status==="complete"?d.completedTasks+=1:c.status==="working"?d.workingTasks+=1:c.status==="failed"&&(d.failedTasks+=1)}return t.map(c=>{const d=r.get(c.id)??{totalTasks:0,completedTasks:0,workingTasks:0,failedTasks:0};return{workspace:c,totalTasks:d.totalTasks,completedTasks:d.completedTasks,workingTasks:d.workingTasks,failedTasks:d.failedTasks}})}const Rs=[{id:"kn-auth-flow",label:"Authentication Flow",kind:"knowledge",category:"concept",content:"The application uses JWT Bearer tokens for stateless authentication. Access tokens expire after 24h. Refresh tokens are stored in the database and rotated on use. The auth middleware verifies tokens and attaches the decoded payload to req.user.",tags:["auth","jwt","security"],workspaceId:"proj-alpha",createdAt:"2026-02-25T10:30:00Z",updatedAt:"2026-02-27T08:15:00Z",val:5},{id:"kn-db-schema",label:"Database Schema",kind:"knowledge",category:"concept",content:"PostgreSQL database with tables: users, sessions, refresh_tokens, audit_log. Uses UUID primary keys, TIMESTAMPTZ for all timestamps, and JSONB for flexible metadata columns. Connection pooling via pg-pool with per-tenant isolation.",tags:["database","postgres","schema"],workspaceId:"proj-alpha",createdAt:"2026-02-23T11:00:00Z",updatedAt:"2026-02-26T22:45:00Z",val:4},{id:"kn-error-handling",label:"Error Response Pattern",kind:"knowledge",category:"concept",content:"All API errors follow the shape { error: string, code: string, details?: unknown }. HTTP status codes map to: 400 (validation), 401 (unauthenticated), 403 (forbidden), 404 (not found), 409 (conflict), 429 (rate limited), 500 (internal).",tags:["api","errors","patterns"],workspaceId:"proj-alpha",createdAt:"2026-02-27T08:17:00Z",updatedAt:"2026-02-27T08:17:00Z",val:3},{id:"kn-rate-limiting",label:"Rate Limiting Strategy",kind:"knowledge",category:"concept",content:"Token-bucket algorithm with in-memory state per client IP. Default rate: 100 requests/minute, burst: 20. Returns 429 with Retry-After header. Redis adapter available for multi-instance deployments.",tags:["api","rate-limiting","infrastructure"],workspaceId:"proj-alpha",createdAt:"2026-02-27T09:00:00Z",updatedAt:"2026-02-27T09:00:00Z",val:2},{id:"kn-etl-pipeline",label:"ETL Pipeline Architecture",kind:"knowledge",category:"concept",content:"Data pipelines follow an Extract-Transform-Load pattern with pluggable stages. Each stage reads from a source (Postgres, S3, API), transforms via configurable mappers, and loads into a target (Parquet, BigQuery, S3). Incremental loads use high-watermark tracking.",tags:["etl","pipeline","architecture"],workspaceId:"proj-beta",createdAt:"2026-02-26T08:00:00Z",updatedAt:"2026-02-27T09:05:00Z",val:4},{id:"kn-parquet-format",label:"Parquet Output Format",kind:"knowledge",category:"concept",content:"Parquet files are written with row-group buffering (configurable batch size, default 10000 rows). Supports Snappy, ZSTD, and GZIP compression. Schema is derived from the internal column type system using Arrow type mapping.",tags:["parquet","data-format","compression"],workspaceId:"proj-beta",createdAt:"2026-02-26T08:05:00Z",updatedAt:"2026-02-26T08:15:00Z",val:3},{id:"kn-jwt-over-session",label:"JWT over Session Auth",kind:"knowledge",category:"decision",content:"Chose JWT tokens over server-side sessions for stateless auth. Rationale: (1) no session store needed, (2) works across microservices without shared state, (3) supports mobile clients natively. Trade-off: tokens can't be revoked instantly (mitigated by short expiry + refresh rotation).",tags:["auth","decision","jwt"],workspaceId:"proj-alpha",createdAt:"2026-02-25T10:00:00Z",updatedAt:"2026-02-25T10:00:00Z",val:3},{id:"kn-pg-pool-decision",label:"pg-pool over Knex",kind:"knowledge",category:"decision",content:"Chose pg-pool over Knex for connection pooling. pg-pool gives direct control over idle timeout, max connections, and health check queries. Knex wraps pg-pool and adds query-building overhead we don't need since we write raw SQL with parameterized queries.",tags:["database","decision","postgres"],workspaceId:"proj-alpha",createdAt:"2026-02-23T11:30:00Z",updatedAt:"2026-02-23T11:30:00Z",val:2},{id:"kn-watermark-decision",label:"Local Watermark Storage",kind:"knowledge",category:"decision",content:"Currently using local SQLite for watermark storage. This works for single-worker pipelines but needs to move to a shared store (Redis or Postgres) for production multi-worker scenarios. Tracked as a follow-up task.",tags:["pipeline","decision","watermarks"],workspaceId:"proj-beta",createdAt:"2026-02-27T09:05:00Z",updatedAt:"2026-02-27T09:05:00Z",val:2},{id:"kn-jwt-middleware",label:"JWT Verify Middleware",kind:"knowledge",category:"snippet",content:`\`\`\`typescript
314
- export function verifyToken(req: Request, res: Response, next: NextFunction): void {
315
- const header = req.headers.authorization;
316
- if (!header?.startsWith("Bearer ")) {
317
- res.status(401).json({ error: "Missing token" });
318
- return;
319
- }
320
- const decoded = jwt.verify(header.slice(7), JWT_SECRET) as JwtPayload;
321
- req.user = decoded;
322
- next();
323
- }
324
- \`\`\``,tags:["auth","jwt","middleware","typescript"],workspaceId:"proj-alpha",createdAt:"2026-02-27T08:15:14Z",updatedAt:"2026-02-27T08:15:14Z",val:2},{id:"kn-audit-schema",label:"Audit Log Schema",kind:"knowledge",category:"snippet",content:`\`\`\`sql
325
- CREATE TABLE audit_log (
326
- id BIGSERIAL PRIMARY KEY,
327
- user_id UUID REFERENCES users(id),
328
- action TEXT NOT NULL,
329
- entity_type TEXT NOT NULL,
330
- entity_id TEXT NOT NULL,
331
- old_value JSONB,
332
- new_value JSONB,
333
- ip_address INET,
334
- created_at TIMESTAMPTZ DEFAULT now()
335
- );
336
- \`\`\``,tags:["database","audit","schema","sql"],workspaceId:"proj-alpha",createdAt:"2026-02-26T22:45:15Z",updatedAt:"2026-02-26T22:45:15Z",val:2},{id:"kn-n1-query",label:"N+1 Query in User List",kind:"knowledge",category:"insight",content:"GET /api/users performs a separate query for each user's role metadata, resulting in N+1 queries. For 500 users this adds ~2 seconds of latency. Solution: use a JOIN or batch lookup to fetch all role data in a single query.",tags:["performance","database","n+1"],workspaceId:"proj-alpha",createdAt:"2026-02-22T09:30:00Z",updatedAt:"2026-02-22T09:30:00Z",val:2},{id:"kn-session-race",label:"Session Cleanup Race Condition",kind:"knowledge",category:"insight",content:"When two concurrent requests hit /api/logout, the second call throws a 500 because the session row has already been deleted. Fix: use DELETE ... RETURNING or add IF EXISTS guard to make the operation idempotent.",tags:["bug","concurrency","sessions"],workspaceId:"proj-alpha",createdAt:"2026-02-26T22:50:00Z",updatedAt:"2026-02-26T22:50:00Z",val:2},{id:"kn-ref-task-001",label:"JWT Auth Task",kind:"reference",sourceType:"task",sourceId:"task-001",content:"Implement JWT authentication across all protected routes, replacing session-based auth.",workspaceId:"proj-alpha",createdAt:"2026-02-25T10:00:00Z",updatedAt:"2026-02-27T08:15:00Z",val:3},{id:"kn-ref-task-006",label:"Parquet Export Task",kind:"reference",sourceType:"task",sourceId:"task-006",content:"Add Parquet export support for pipeline outputs, enabling downstream Spark consumption.",workspaceId:"proj-beta",createdAt:"2026-02-26T08:00:00Z",updatedAt:"2026-02-27T09:00:00Z",val:3},{id:"kn-ref-sess-001",label:"Auth Middleware Session",kind:"reference",sourceType:"session",sourceId:"sess-001",content:"Active session implementing JWT auth middleware, rewrote auth.ts, login.ts, and test suite.",workspaceId:"proj-alpha",createdAt:"2026-02-27T08:15:00Z",updatedAt:"2026-02-27T08:15:42Z",val:2}],Fa=[{source:"kn-auth-flow",target:"kn-jwt-over-session",type:"decided_by"},{source:"kn-auth-flow",target:"kn-jwt-middleware",type:"implemented_by"},{source:"kn-auth-flow",target:"kn-ref-task-001",type:"tracked_in"},{source:"kn-auth-flow",target:"kn-error-handling",type:"relates_to"},{source:"kn-jwt-over-session",target:"kn-ref-task-001",type:"motivated_by"},{source:"kn-db-schema",target:"kn-pg-pool-decision",type:"decided_by"},{source:"kn-db-schema",target:"kn-audit-schema",type:"contains"},{source:"kn-db-schema",target:"kn-n1-query",type:"affected_by"},{source:"kn-db-schema",target:"kn-session-race",type:"affected_by"},{source:"kn-rate-limiting",target:"kn-error-handling",type:"relates_to"},{source:"kn-rate-limiting",target:"kn-auth-flow",type:"depends_on"},{source:"kn-etl-pipeline",target:"kn-parquet-format",type:"outputs_to"},{source:"kn-etl-pipeline",target:"kn-watermark-decision",type:"decided_by"},{source:"kn-etl-pipeline",target:"kn-ref-task-006",type:"tracked_in"},{source:"kn-parquet-format",target:"kn-ref-task-006",type:"tracked_in"},{source:"kn-watermark-decision",target:"kn-etl-pipeline",type:"relates_to"},{source:"kn-ref-task-001",target:"kn-ref-sess-001",type:"has_session"},{source:"kn-jwt-middleware",target:"kn-ref-sess-001",type:"created_in"},{source:"kn-audit-schema",target:"kn-db-schema",type:"part_of"}],Bz=new Map(Rs.map(t=>[t.id,t]));function Hp(t){const s=Bz.get(t);if(!s)throw new Error(`MOCK_KNOWLEDGE_NODES is missing node "${t}"`);return s}const d_={"kn-auth-flow":{node:Hp("kn-auth-flow"),edges:[{fromId:"kn-auth-flow",toId:"kn-jwt-over-session",type:"decided_by"},{fromId:"kn-auth-flow",toId:"kn-jwt-middleware",type:"implemented_by"},{fromId:"kn-auth-flow",toId:"kn-ref-task-001",type:"tracked_in"},{fromId:"kn-auth-flow",toId:"kn-error-handling",type:"relates_to"},{fromId:"kn-rate-limiting",toId:"kn-auth-flow",type:"depends_on"}]},"kn-db-schema":{node:Hp("kn-db-schema"),edges:[{fromId:"kn-db-schema",toId:"kn-pg-pool-decision",type:"decided_by"},{fromId:"kn-db-schema",toId:"kn-audit-schema",type:"contains"},{fromId:"kn-db-schema",toId:"kn-n1-query",type:"affected_by"},{fromId:"kn-db-schema",toId:"kn-session-race",type:"affected_by"},{fromId:"kn-audit-schema",toId:"kn-db-schema",type:"part_of"}]},"kn-etl-pipeline":{node:Hp("kn-etl-pipeline"),edges:[{fromId:"kn-etl-pipeline",toId:"kn-parquet-format",type:"outputs_to"},{fromId:"kn-etl-pipeline",toId:"kn-watermark-decision",type:"decided_by"},{fromId:"kn-etl-pipeline",toId:"kn-ref-task-006",type:"tracked_in"},{fromId:"kn-watermark-decision",toId:"kn-etl-pipeline",type:"relates_to"}]}},$z=[{id:"env-local-01",displayName:"Local Dev",adapterType:"local",adapterConfig:"{}",status:"connected",bootstrapped:!0,githubAccountId:""},{id:"env-docker-01",displayName:"Docker Sandbox",adapterType:"docker",adapterConfig:'{"image":"node:20"}',status:"connected",bootstrapped:!0,githubAccountId:""},{id:"env-cs-01",displayName:"GitHub Codespace",adapterType:"codespace",adapterConfig:'{"codespaceName":"my-codespace"}',status:"connected",bootstrapped:!0,githubAccountId:""},{id:"env-remote-01",displayName:"Staging (SSH)",adapterType:"ssh",adapterConfig:'{"host":"192.168.1.10","user":"deploy","sshPort":22}',status:"disconnected",bootstrapped:!1,githubAccountId:""},{id:"error-env",displayName:"Error Test",adapterType:"local",adapterConfig:"{}",status:"connected",bootstrapped:!0,githubAccountId:""}],zz=[{id:"sess-001-prev",environmentId:"env-local-01",runtime:"claude-code",status:"stopped",endReason:"interrupted",prompt:"Implement auth middleware",startedAt:"2026-02-26T14:00:00Z",endedAt:"2026-02-26T15:12:00Z",error:"Context window exceeded before completing implementation",inputTokens:84200,outputTokens:12750,costMillicents:41e3},{id:"sess-001",environmentId:"env-local-01",runtime:"claude-code",status:"running",prompt:"Refactor the authentication middleware to use JWT tokens",startedAt:"2026-02-27T08:15:00Z",inputTokens:42600,outputTokens:8100,costMillicents:22e3},{id:"sess-002",environmentId:"env-docker-01",runtime:"copilot",status:"stopped",endReason:"completed",prompt:"Write unit tests for the user registration endpoint",startedAt:"2026-02-27T07:30:00Z",endedAt:"2026-02-27T07:33:00Z",inputTokens:31400,outputTokens:9800,costMillicents:18e3},{id:"sess-003",environmentId:"env-local-01",runtime:"claude-code",status:"stopped",endReason:"interrupted",prompt:"Migrate database schema to add audit_log table",startedAt:"2026-02-26T22:45:00Z",endedAt:"2026-02-26T23:10:00Z",inputTokens:56300,outputTokens:14200,costMillicents:31e3},{id:"sess-004",environmentId:"env-docker-01",runtime:"codex",status:"running",prompt:"Implement rate limiting for the public API",startedAt:"2026-02-27T09:00:00Z",inputTokens:18900,outputTokens:4500,costMillicents:1e4},{id:"sess-005",environmentId:"env-cs-01",runtime:"claude-code",status:"suspended",prompt:"Refactor database connection pooling for multi-tenant isolation",startedAt:"2026-02-27T06:00:00Z",inputTokens:67800,outputTokens:19300,costMillicents:38e3}],Hz=[{sessionId:"sess-001-prev",eventType:"status",timestamp:"2026-02-26T14:00:01Z",content:"running"},{sessionId:"sess-001-prev",eventType:"system",timestamp:"2026-02-26T14:00:02Z",content:`You are a senior backend engineer. Focus on security best practices and thorough testing.
337
- Project: acme/alpha — Node.js + Express REST API
338
- Task: Implement auth middleware using JWT tokens`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-001-prev",eventType:"text",timestamp:"2026-02-26T14:00:05Z",content:"I'll start by reading the current authentication middleware to understand what needs to change."},{sessionId:"sess-001-prev",eventType:"tool_use",timestamp:"2026-02-26T14:00:06Z",content:JSON.stringify({tool:"Read",args:{file_path:"src/middleware/auth.ts"}}),raw:JSON.stringify({id:"tu-prev-001",type:"tool_use"})},{sessionId:"sess-001-prev",eventType:"tool_result",timestamp:"2026-02-26T14:00:07Z",content:`import session from "express-session";
339
- import type { Request, Response, NextFunction } from "express";
340
-
341
- export function requireAuth(req: Request, res: Response, next: NextFunction): void {
342
- if (!req.session?.userId) {
343
- res.status(401).json({ error: "Not authenticated" });
344
- return;
345
- }
346
- next();
347
- }`,raw:JSON.stringify({tool_use_id:"tu-prev-001"})},{sessionId:"sess-001-prev",eventType:"text",timestamp:"2026-02-26T14:00:10Z",content:"The current auth uses express-session with server-side session storage. Let me find all files that depend on this pattern."},{sessionId:"sess-001-prev",eventType:"tool_use",timestamp:"2026-02-26T14:00:11Z",content:JSON.stringify({tool:"Grep",args:{pattern:"req\\.session",path:"src/"}}),raw:JSON.stringify({id:"tu-prev-002",type:"tool_use"})},{sessionId:"sess-001-prev",eventType:"tool_result",timestamp:"2026-02-26T14:00:12Z",content:`src/middleware/auth.ts:4: if (!req.session?.userId) {
348
- src/routes/login.ts:18: req.session.userId = user.id;
349
- src/routes/login.ts:19: req.session.role = user.role;
350
- src/routes/protected.ts:7: const userId = req.session.userId;`,raw:JSON.stringify({tool_use_id:"tu-prev-002"})},{sessionId:"sess-001-prev",eventType:"usage",timestamp:"2026-02-26T14:30:00Z",content:JSON.stringify({input_tokens:42100,output_tokens:6350,cost_millicents:21e3})},{sessionId:"sess-001-prev",eventType:"text",timestamp:"2026-02-26T14:30:02Z",content:"Found 3 files using session-based auth. Now let me read the login route and the protected route to understand the full flow before making changes."},{sessionId:"sess-001-prev",eventType:"tool_use",timestamp:"2026-02-26T14:30:03Z",content:JSON.stringify({tool:"Read",args:{file_path:"src/routes/login.ts"}}),raw:JSON.stringify({id:"tu-prev-003",type:"tool_use"})},{sessionId:"sess-001-prev",eventType:"tool_result",timestamp:"2026-02-26T14:30:04Z",content:`import { Router } from "express";
351
- import bcrypt from "bcrypt";
352
- import { db } from "../db.js";
353
-
354
- const router = Router();
355
-
356
- router.post("/login", async (req, res) => {
357
- const { email, password } = req.body;
358
- const user = await db.users.findByEmail(email);
359
- if (!user || !await bcrypt.compare(password, user.passwordHash)) {
360
- return res.status(401).json({ error: "Invalid credentials" });
361
- }
362
- req.session.userId = user.id;
363
- req.session.role = user.role;
364
- res.json({ ok: true });
365
- });
366
-
367
- export default router;`,raw:JSON.stringify({tool_use_id:"tu-prev-003"})},{sessionId:"sess-001-prev",eventType:"error",timestamp:"2026-02-26T15:12:00Z",content:"Context window exceeded before completing implementation"},{sessionId:"sess-001-prev",eventType:"status",timestamp:"2026-02-26T15:12:01Z",content:"interrupted"},{sessionId:"sess-001",eventType:"status",timestamp:"2026-02-27T08:15:01Z",content:"running"},{sessionId:"sess-001",eventType:"system",timestamp:"2026-02-27T08:15:02Z",content:`You are a senior backend engineer. Focus on security best practices and thorough testing.
368
- Project: acme/alpha — Node.js + Express REST API
369
- Task: Implement auth middleware using JWT tokens
370
-
371
- Note: A previous session attempted this task but was interrupted. Pick up where it left off.`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:04Z",content:"I'll pick up the JWT auth migration. The previous session identified 3 files that need updating. Let me verify the current state and start implementing."},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:04.5Z",content:JSON.stringify({tool:"TodoWrite",args:{todos:[{content:"Install jsonwebtoken package",activeForm:"Installing jsonwebtoken",status:"pending"},{content:"Rewrite auth middleware for JWT",activeForm:"Rewriting auth middleware",status:"pending"},{content:"Update login route to issue tokens",activeForm:"Updating login route",status:"pending"},{content:"Update protected routes",activeForm:"Updating protected routes",status:"pending"},{content:"Fix and update tests",activeForm:"Fixing tests",status:"pending"},{content:"Run full test suite",activeForm:"Running tests",status:"pending"}]}})},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:05Z",content:JSON.stringify({tool:"Grep",args:{pattern:"express-session|req\\.session",path:"src/",output_mode:"files_with_matches"}}),raw:JSON.stringify({id:"tu-001-01",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:06Z",content:`src/middleware/auth.ts
372
- src/routes/login.ts
373
- src/routes/protected.ts`,raw:JSON.stringify({tool_use_id:"tu-001-01"})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:08Z",content:"Good, same 3 files. Let me install the JWT library first, then rewrite the middleware."},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:09Z",content:JSON.stringify({tool:"Bash",args:{command:"npm install jsonwebtoken && npm install -D @types/jsonwebtoken"}}),raw:JSON.stringify({id:"tu-001-02",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:11Z",content:`added 12 packages in 3.2s
374
-
375
- added 1 package in 0.8s`,raw:JSON.stringify({tool_use_id:"tu-001-02"})},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:11.5Z",content:JSON.stringify({tool:"TodoWrite",args:{todos:[{content:"Install jsonwebtoken package",activeForm:"Installing jsonwebtoken",status:"completed"},{content:"Rewrite auth middleware for JWT",activeForm:"Rewriting auth middleware",status:"in_progress"},{content:"Update login route to issue tokens",activeForm:"Updating login route",status:"pending"},{content:"Update protected routes",activeForm:"Updating protected routes",status:"pending"},{content:"Fix and update tests",activeForm:"Fixing tests",status:"pending"},{content:"Run full test suite",activeForm:"Running tests",status:"pending"}]}})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:12Z",content:"Now I'll rewrite the auth middleware to use JWT verification instead of session checks."},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:13Z",content:JSON.stringify({tool:"Write",args:{file_path:"src/middleware/auth.ts",content:`import jwt from "jsonwebtoken";
376
- import type { Request, Response, NextFunction } from "express";
377
-
378
- const JWT_SECRET = process.env.JWT_SECRET || "change-me";
379
-
380
- export interface JwtPayload {
381
- userId: string;
382
- role: string;
383
- iat: number;
384
- exp: number;
385
- }
386
-
387
- export function verifyToken(req: Request, res: Response, next: NextFunction): void {
388
- const header = req.headers.authorization;
389
- if (!header?.startsWith("Bearer ")) {
390
- res.status(401).json({ error: "Missing or malformed token" });
391
- return;
392
- }
393
- try {
394
- const decoded = jwt.verify(header.slice(7), JWT_SECRET) as JwtPayload;
395
- req.user = decoded;
396
- next();
397
- } catch (err) {
398
- if (err instanceof jwt.TokenExpiredError) {
399
- res.status(401).json({ error: "Token expired" });
400
- } else {
401
- res.status(403).json({ error: "Invalid token" });
402
- }
403
- }
404
- }
405
- `}}),raw:JSON.stringify({id:"tu-001-03",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:14Z",content:"File written: src/middleware/auth.ts (32 lines)",raw:JSON.stringify({tool_use_id:"tu-001-03"})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:16Z",content:`Now I need to update the login route to issue JWT tokens instead of setting session data.
406
-
407
- The new login flow will:
408
- 1. Validate credentials (unchanged)
409
- 2. Generate a JWT with \`userId\` and \`role\` claims
410
- 3. Return the token in the response body
411
- 4. Include a refresh token for long-lived sessions`},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:17Z",content:JSON.stringify({tool:"Write",args:{file_path:"src/routes/login.ts",content:`import { Router } from "express";
412
- import bcrypt from "bcrypt";
413
- import jwt from "jsonwebtoken";
414
- import crypto from "node:crypto";
415
- import { db } from "../db.js";
416
-
417
- const JWT_SECRET = process.env.JWT_SECRET || "change-me";
418
- const ACCESS_TOKEN_EXPIRY = "24h";
419
- const REFRESH_TOKEN_BYTES = 48;
420
-
421
- const router = Router();
422
-
423
- router.post("/login", async (req, res) => {
424
- const { email, password } = req.body;
425
- const user = await db.users.findByEmail(email);
426
- if (!user || !(await bcrypt.compare(password, user.passwordHash))) {
427
- return res.status(401).json({ error: "Invalid credentials" });
428
- }
429
-
430
- const accessToken = jwt.sign(
431
- { userId: user.id, role: user.role },
432
- JWT_SECRET,
433
- { expiresIn: ACCESS_TOKEN_EXPIRY },
434
- );
435
-
436
- const refreshToken = crypto.randomBytes(REFRESH_TOKEN_BYTES).toString("hex");
437
- await db.refreshTokens.create({ userId: user.id, token: refreshToken });
438
-
439
- res.json({ accessToken, refreshToken, expiresIn: ACCESS_TOKEN_EXPIRY });
440
- });
441
-
442
- export default router;
443
- `}}),raw:JSON.stringify({id:"tu-001-04",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:18Z",content:"File written: src/routes/login.ts (33 lines)",raw:JSON.stringify({tool_use_id:"tu-001-04"})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:20Z",content:"Let me update the protected route to use the new `req.user` shape from the JWT payload."},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:21Z",content:JSON.stringify({tool:"Edit",args:{file_path:"src/routes/protected.ts",old_string:"const userId = req.session.userId;",new_string:"const { userId } = req.user as JwtPayload;"}}),raw:JSON.stringify({id:"tu-001-05",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:22Z",content:"Updated src/routes/protected.ts",raw:JSON.stringify({tool_use_id:"tu-001-05"})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:24Z",content:"Now let me run the existing tests to make sure nothing is broken, then I'll add new JWT-specific tests."},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:25Z",content:JSON.stringify({tool:"Bash",args:{command:"npm test"}}),raw:JSON.stringify({id:"tu-001-06",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:30Z",content:` PASS src/routes/__tests__/login.test.ts
444
- PASS src/routes/__tests__/protected.test.ts
445
- FAIL src/middleware/__tests__/auth.test.ts
446
- x should reject missing session (12ms)
447
- x should allow valid session (8ms)
448
-
449
- 2 failed, 12 passed, 14 total
450
-
451
- Test Suites: 1 failed, 2 passed, 3 total`,raw:JSON.stringify({tool_use_id:"tu-001-06",is_error:!0})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:32Z",content:`Two tests failed because they still test the old session-based auth. I need to rewrite those tests for JWT.
452
-
453
- Let me update the auth middleware tests:`},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:33Z",content:JSON.stringify({tool:"Write",args:{file_path:"src/middleware/__tests__/auth.test.ts",content:`import { describe, it, expect } from "vitest";
454
- import jwt from "jsonwebtoken";
455
- import { verifyToken } from "../auth.js";
456
- import { createMockReqRes } from "../../test-utils/mock-express.js";
457
-
458
- const SECRET = "test-secret";
459
- process.env.JWT_SECRET = SECRET;
460
-
461
- describe("verifyToken", () => {
462
- it("should reject requests without Authorization header", () => {
463
- const { req, res, next } = createMockReqRes();
464
- verifyToken(req, res, next);
465
- expect(res.status).toHaveBeenCalledWith(401);
466
- });
467
-
468
- it("should reject expired tokens", () => {
469
- const token = jwt.sign({ userId: "u1", role: "user" }, SECRET, { expiresIn: "-1h" });
470
- const { req, res, next } = createMockReqRes({ authorization: \`Bearer \${token}\` });
471
- verifyToken(req, res, next);
472
- expect(res.status).toHaveBeenCalledWith(401);
473
- });
474
-
475
- it("should accept valid tokens and attach user to request", () => {
476
- const token = jwt.sign({ userId: "u1", role: "admin" }, SECRET, { expiresIn: "1h" });
477
- const { req, res, next } = createMockReqRes({ authorization: \`Bearer \${token}\` });
478
- verifyToken(req, res, next);
479
- expect(next).toHaveBeenCalled();
480
- expect(req.user).toMatchObject({ userId: "u1", role: "admin" });
481
- });
482
- });
483
- `}}),raw:JSON.stringify({id:"tu-001-07",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:34Z",content:"File written: src/middleware/__tests__/auth.test.ts (32 lines)",raw:JSON.stringify({tool_use_id:"tu-001-07"})},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:35Z",content:JSON.stringify({tool:"Bash",args:{command:"npm test"}}),raw:JSON.stringify({id:"tu-001-08",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:40Z",content:` PASS src/routes/__tests__/login.test.ts
484
- PASS src/routes/__tests__/protected.test.ts
485
- PASS src/middleware/__tests__/auth.test.ts
486
-
487
- Test Suites: 3 passed, 3 total
488
- Tests: 14 passed, 14 total`,raw:JSON.stringify({tool_use_id:"tu-001-08"})},{sessionId:"sess-001",eventType:"usage",timestamp:"2026-02-27T08:15:41Z",content:JSON.stringify({input_tokens:42600,output_tokens:8100,cost_millicents:22e3})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:42Z",content:`All 14 tests pass. Here's a summary of the changes:
489
-
490
- ### Changes made
491
-
492
- | File | Action |
493
- |------|--------|
494
- | \`src/middleware/auth.ts\` | Rewrote to verify JWT Bearer tokens |
495
- | \`src/routes/login.ts\` | Now issues JWT access + refresh tokens |
496
- | \`src/routes/protected.ts\` | Updated to read \`req.user\` from JWT payload |
497
- | \`src/middleware/__tests__/auth.test.ts\` | Updated tests for JWT verification |
498
-
499
- ### Key decisions
500
- - **Access token expiry**: 24 hours (configurable via \`JWT_SECRET\` env var)
501
- - **Refresh tokens**: 48-byte random hex, stored in DB
502
- - **Error handling**: Distinguishes expired tokens (401) from invalid tokens (403)`},{sessionId:"sess-002",eventType:"status",timestamp:"2026-02-27T07:30:01Z",content:"running"},{sessionId:"sess-002",eventType:"system",timestamp:"2026-02-27T07:30:02Z",content:`You are a QA engineer. Write comprehensive tests covering happy paths, edge cases, error scenarios, and security.
503
- Project: acme/alpha — Node.js + Express REST API
504
- Task: Write unit tests for the user registration endpoint`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-002",eventType:"text",timestamp:"2026-02-27T07:30:04Z",content:"I'll write thorough tests for `POST /api/register`. Let me first read the registration endpoint to understand its behavior."},{sessionId:"sess-002",eventType:"tool_use",timestamp:"2026-02-27T07:30:05Z",content:JSON.stringify({tool:"Read",args:{file_path:"src/routes/register.ts"}}),raw:JSON.stringify({id:"tu-002-01",type:"tool_use"})},{sessionId:"sess-002",eventType:"tool_result",timestamp:"2026-02-27T07:30:06Z",content:`import { Router } from "express";
505
- import bcrypt from "bcrypt";
506
- import { db } from "../db.js";
507
- import { validateEmail, validatePassword } from "../utils/validators.js";
508
-
509
- const SALT_ROUNDS = 12;
510
- const router = Router();
511
-
512
- router.post("/register", async (req, res) => {
513
- const { name, email, password } = req.body;
514
-
515
- if (!name || !email || !password) {
516
- return res.status(400).json({ error: "Missing required fields" });
517
- }
518
- if (!validateEmail(email)) {
519
- return res.status(400).json({ error: "Invalid email format" });
520
- }
521
- if (!validatePassword(password)) {
522
- return res.status(400).json({ error: "Password too weak" });
523
- }
524
-
525
- const existing = await db.users.findByEmail(email);
526
- if (existing) {
527
- return res.status(409).json({ error: "Email already registered" });
528
- }
529
-
530
- const passwordHash = await bcrypt.hash(password, SALT_ROUNDS);
531
- const user = await db.users.create({ name, email, passwordHash });
532
- res.status(201).json({ id: user.id, name: user.name, email: user.email });
533
- });
534
-
535
- export default router;`,raw:JSON.stringify({tool_use_id:"tu-002-01"})},{sessionId:"sess-002",eventType:"text",timestamp:"2026-02-27T07:30:10Z",content:`Good. The endpoint validates input, checks for duplicates, hashes the password, and creates the user. I'll write tests covering:
536
-
537
- 1. **Happy path** - valid registration
538
- 2. **Missing fields** - each required field missing
539
- 3. **Invalid email** - malformed email format
540
- 4. **Weak password** - password validation failure
541
- 5. **Duplicate email** - conflict with existing user
542
- 6. **SQL injection** - malicious email input
543
- 7. **XSS payload** - HTML in the name field
544
- 8. **Response shape** - correct status codes and body structure`},{sessionId:"sess-002",eventType:"tool_use",timestamp:"2026-02-27T07:30:12Z",content:JSON.stringify({tool:"Write",args:{file_path:"src/routes/__tests__/register.test.ts",content:"// [test content - 8 test cases as described above]"}}),raw:JSON.stringify({id:"tu-002-02",type:"tool_use"})},{sessionId:"sess-002",eventType:"tool_result",timestamp:"2026-02-27T07:30:13Z",content:"File written: src/routes/__tests__/register.test.ts (142 lines)",raw:JSON.stringify({tool_use_id:"tu-002-02"})},{sessionId:"sess-002",eventType:"tool_use",timestamp:"2026-02-27T07:31:00Z",content:JSON.stringify({tool:"Bash",args:{command:"npm test -- --testPathPattern=register"}}),raw:JSON.stringify({id:"tu-002-03",type:"tool_use"})},{sessionId:"sess-002",eventType:"tool_result",timestamp:"2026-02-27T07:31:30Z",content:` PASS src/routes/__tests__/register.test.ts
545
- POST /api/register
546
- ✓ should register a valid user (28ms)
547
- ✓ should reject missing name (4ms)
548
- ✓ should reject missing email (3ms)
549
- ✓ should reject missing password (3ms)
550
- ✓ should reject invalid email format (5ms)
551
- ✓ should reject weak password (4ms)
552
- ✓ should reject duplicate email (12ms)
553
- ✓ should sanitize HTML in name field (6ms)
554
-
555
- Tests: 8 passed, 8 total`,raw:JSON.stringify({tool_use_id:"tu-002-03"})},{sessionId:"sess-002",eventType:"usage",timestamp:"2026-02-27T07:32:00Z",content:JSON.stringify({input_tokens:31400,output_tokens:9800,cost_millicents:18e3})},{sessionId:"sess-002",eventType:"text",timestamp:"2026-02-27T07:32:30Z",content:"All 8 test cases pass. Created `src/routes/__tests__/register.test.ts` with comprehensive coverage for the registration endpoint including input validation, duplicate detection, and security edge cases."},{sessionId:"sess-002",eventType:"status",timestamp:"2026-02-27T07:33:00Z",content:"completed"},{sessionId:"sess-003",eventType:"status",timestamp:"2026-02-26T22:45:01Z",content:"running"},{sessionId:"sess-003",eventType:"system",timestamp:"2026-02-26T22:45:02Z",content:`You are a database engineer. Focus on safe migrations, zero-downtime deployments, and data integrity.
556
- Project: acme/alpha — Node.js + Express + PostgreSQL
557
- Task: Add audit_log table and migrate schema`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-003",eventType:"text",timestamp:"2026-02-26T22:45:05Z",content:"I need to add an `audit_log` table for tracking all write operations. Let me review the current schema first."},{sessionId:"sess-003",eventType:"tool_use",timestamp:"2026-02-26T22:45:06Z",content:JSON.stringify({tool:"Read",args:{file_path:"migrations/001_initial.sql"}}),raw:JSON.stringify({id:"tu-003-01",type:"tool_use"})},{sessionId:"sess-003",eventType:"tool_result",timestamp:"2026-02-26T22:45:07Z",content:`CREATE TABLE users (
558
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
559
- name TEXT NOT NULL,
560
- email TEXT UNIQUE NOT NULL,
561
- password_hash TEXT NOT NULL,
562
- role TEXT DEFAULT 'user',
563
- created_at TIMESTAMPTZ DEFAULT now(),
564
- updated_at TIMESTAMPTZ DEFAULT now()
565
- );
566
-
567
- CREATE TABLE sessions (
568
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
569
- user_id UUID REFERENCES users(id),
570
- expires_at TIMESTAMPTZ NOT NULL,
571
- created_at TIMESTAMPTZ DEFAULT now()
572
- );`,raw:JSON.stringify({tool_use_id:"tu-003-01"})},{sessionId:"sess-003",eventType:"text",timestamp:"2026-02-26T22:45:12Z",content:"I see the schema. I'll create a migration that:\n1. Adds a `last_login_at` column to `users`\n2. Adds an index on `sessions.expires_at` for efficient cleanup queries\n3. Creates the `audit_log` table\n\nLet me write the migration file:"},{sessionId:"sess-003",eventType:"tool_use",timestamp:"2026-02-26T22:45:14Z",content:JSON.stringify({tool:"Write",args:{file_path:"migrations/002_audit_log.sql",content:`-- Migration: 002_audit_log
573
- -- Add audit logging and user activity tracking
574
-
575
- BEGIN;
576
-
577
- -- 1. Add last_login_at to users
578
- ALTER TABLE users ADD COLUMN last_login_at TIMESTAMPTZ;
579
-
580
- -- 2. Index for session cleanup queries
581
- CREATE INDEX CONCURRENTLY idx_sessions_expires_at ON sessions (expires_at);
582
-
583
- -- 3. Audit log table
584
- CREATE TABLE audit_log (
585
- id BIGSERIAL PRIMARY KEY,
586
- user_id UUID REFERENCES users(id),
587
- action TEXT NOT NULL,
588
- entity_type TEXT NOT NULL,
589
- entity_id TEXT NOT NULL,
590
- old_value JSONB,
591
- new_value JSONB,
592
- ip_address INET,
593
- created_at TIMESTAMPTZ DEFAULT now()
594
- );
595
-
596
- CREATE INDEX idx_audit_log_user ON audit_log (user_id);
597
- CREATE INDEX idx_audit_log_entity ON audit_log (entity_type, entity_id);
598
- CREATE INDEX idx_audit_log_created ON audit_log (created_at);
599
-
600
- COMMIT;
601
- `}}),raw:JSON.stringify({id:"tu-003-02",type:"tool_use"})},{sessionId:"sess-003",eventType:"tool_result",timestamp:"2026-02-26T22:45:15Z",content:"File written: migrations/002_audit_log.sql (29 lines)",raw:JSON.stringify({tool_use_id:"tu-003-02"})},{sessionId:"sess-003",eventType:"text",timestamp:"2026-02-26T22:46:00Z",content:"Now I need to implement the audit middleware that logs write operations. This will intercept POST, PUT, PATCH, and DELETE requests."},{sessionId:"sess-003",eventType:"tool_use",timestamp:"2026-02-26T22:46:02Z",content:JSON.stringify({tool:"Bash",args:{command:"npm run migrate -- --dry-run"}}),raw:JSON.stringify({id:"tu-003-03",type:"tool_use"})},{sessionId:"sess-003",eventType:"tool_result",timestamp:"2026-02-26T22:46:10Z",content:`Dry run: would apply 002_audit_log.sql
602
- - ALTER TABLE users ADD COLUMN last_login_at
603
- - CREATE INDEX CONCURRENTLY idx_sessions_expires_at
604
- - CREATE TABLE audit_log
605
- - 3 indexes on audit_log
606
-
607
- WARNING: CREATE INDEX CONCURRENTLY cannot run inside a transaction block.
608
- Please split this into a separate migration step.`,raw:JSON.stringify({tool_use_id:"tu-003-03",is_error:!0})},{sessionId:"sess-003",eventType:"text",timestamp:"2026-02-26T22:46:15Z",content:"Good catch from the dry run! `CREATE INDEX CONCURRENTLY` can't run inside a transaction. I need to split the migration into two files: one for the transactional DDL and another for the concurrent index creation."},{sessionId:"sess-003",eventType:"usage",timestamp:"2026-02-26T23:00:00Z",content:JSON.stringify({input_tokens:56300,output_tokens:14200,cost_millicents:31e3})},{sessionId:"sess-003",eventType:"status",timestamp:"2026-02-26T23:10:00Z",content:"interrupted"},{sessionId:"sess-004",eventType:"status",timestamp:"2026-02-27T09:00:01Z",content:"running"},{sessionId:"sess-004",eventType:"system",timestamp:"2026-02-27T09:00:02Z",content:`You are a backend engineer specializing in API infrastructure.
609
- Project: acme/data-pipeline — ETL pipelines for analytics
610
- Task: Implement rate limiting for the public API using a token-bucket algorithm`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-004",eventType:"text",timestamp:"2026-02-27T09:00:05Z",content:"I'll implement rate limiting using a token-bucket algorithm. Let me first survey the existing API infrastructure to find the right integration point."},{sessionId:"sess-004",eventType:"tool_use",timestamp:"2026-02-27T09:00:05.5Z",content:JSON.stringify({tool:"TodoWrite",args:{todos:[{content:"Survey middleware structure",activeForm:"Surveying middleware",status:"in_progress"},{content:"Implement token-bucket algorithm",activeForm:"Implementing token bucket",status:"pending"},{content:"Add rate limit middleware to app",activeForm:"Adding middleware",status:"pending"},{content:"Write tests for rate limiting",activeForm:"Writing tests",status:"pending"},{content:"Add Redis adapter for multi-instance",activeForm:"Adding Redis adapter",status:"pending"}]}})},{sessionId:"sess-004",eventType:"tool_use",timestamp:"2026-02-27T09:00:06Z",content:JSON.stringify({tool:"Glob",args:{pattern:"src/middleware/**/*.ts"}}),raw:JSON.stringify({id:"tu-004-01",type:"tool_use"})},{sessionId:"sess-004",eventType:"tool_result",timestamp:"2026-02-27T09:00:07Z",content:`src/middleware/cors.ts
611
- src/middleware/error-handler.ts
612
- src/middleware/logger.ts
613
- src/middleware/request-id.ts`,raw:JSON.stringify({tool_use_id:"tu-004-01"})},{sessionId:"sess-004",eventType:"tool_use",timestamp:"2026-02-27T09:00:09Z",content:JSON.stringify({tool:"TodoWrite",args:{todos:[{content:"Survey middleware structure",activeForm:"Surveying middleware",status:"completed"},{content:"Implement token-bucket algorithm",activeForm:"Implementing token bucket",status:"in_progress"},{content:"Add rate limit middleware to app",activeForm:"Adding middleware",status:"pending"},{content:"Write tests for rate limiting",activeForm:"Writing tests",status:"pending"},{content:"Add Redis adapter for multi-instance",activeForm:"Adding Redis adapter",status:"pending"}]}})},{sessionId:"sess-004",eventType:"text",timestamp:"2026-02-27T09:00:10Z",content:`Good middleware structure already in place. I'll add a \`rate-limiter.ts\` module that:
614
-
615
- - Uses an **in-memory token bucket** per client IP
616
- - Supports configurable rate (requests/second) and burst size
617
- - Returns \`429 Too Many Requests\` with \`Retry-After\` header
618
- - Has a Redis adapter option for multi-instance deployments
619
-
620
- Let me implement it:`},{sessionId:"sess-004",eventType:"tool_use",timestamp:"2026-02-27T09:00:12Z",content:JSON.stringify({tool:"Write",args:{file_path:"src/middleware/rate-limiter.ts",content:"// Token bucket rate limiter implementation"}}),raw:JSON.stringify({id:"tu-004-02",type:"tool_use"})},{sessionId:"sess-004",eventType:"tool_result",timestamp:"2026-02-27T09:00:13Z",content:"File written: src/middleware/rate-limiter.ts (87 lines)",raw:JSON.stringify({tool_use_id:"tu-004-02"})},{sessionId:"sess-004",eventType:"text",timestamp:"2026-02-27T09:00:18Z",content:"Now I need to wire the rate limiter into the Express middleware stack. It should go after the request-ID middleware but before route handlers."},{sessionId:"sess-005",eventType:"status",timestamp:"2026-02-27T06:00:01Z",content:"running"},{sessionId:"sess-005",eventType:"system",timestamp:"2026-02-27T06:00:02Z",content:`You are a database specialist. Focus on connection management, performance, and multi-tenant isolation.
621
- Project: acme/alpha — Node.js + Express + PostgreSQL
622
- Task: Refactor database connection pooling for multi-tenant isolation`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-005",eventType:"text",timestamp:"2026-02-27T06:00:05Z",content:"I'll refactor the DB layer to support per-tenant connection pools. This is needed because the current single-pool design means one slow tenant can exhaust connections for everyone."},{sessionId:"sess-005",eventType:"tool_use",timestamp:"2026-02-27T06:00:06Z",content:JSON.stringify({tool:"Read",args:{file_path:"src/db/pool.ts"}}),raw:JSON.stringify({id:"tu-005-01",type:"tool_use"})},{sessionId:"sess-005",eventType:"tool_result",timestamp:"2026-02-27T06:00:07Z",content:`import pg from "pg";
623
-
624
- const pool = new pg.Pool({
625
- connectionString: process.env.DATABASE_URL,
626
- max: 20,
627
- idleTimeoutMillis: 30000,
628
- });
629
-
630
- export { pool };`,raw:JSON.stringify({tool_use_id:"tu-005-01"})},{sessionId:"sess-005",eventType:"text",timestamp:"2026-02-27T06:00:12Z",content:`The current pool is a single shared instance with \`max: 20\`. For multi-tenant isolation, I need:
631
-
632
- 1. **A \`PoolManager\` class** that creates and caches per-tenant pools
633
- 2. **Configurable limits** per tenant (max connections, idle timeout)
634
- 3. **Health checks** with automatic pool eviction for unhealthy connections
635
- 4. **Graceful shutdown** that drains all pools`},{sessionId:"sess-005",eventType:"tool_use",timestamp:"2026-02-27T06:00:14Z",content:JSON.stringify({tool:"Grep",args:{pattern:"import.*pool|from.*pool",path:"src/",output_mode:"content"}}),raw:JSON.stringify({id:"tu-005-02",type:"tool_use"})},{sessionId:"sess-005",eventType:"tool_result",timestamp:"2026-02-27T06:00:15Z",content:`src/db/index.ts:1:import { pool } from "./pool.js";
636
- src/routes/users.ts:2:import { pool } from "../db/pool.js";
637
- src/routes/register.ts:3:import { pool } from "../db/pool.js";
638
- src/routes/admin.ts:4:import { pool } from "../db/pool.js";
639
- src/services/billing.ts:2:import { pool } from "../db/pool.js";
640
- src/services/analytics.ts:1:import { pool } from "../db/pool.js";`,raw:JSON.stringify({tool_use_id:"tu-005-02"})},{sessionId:"sess-005",eventType:"text",timestamp:"2026-02-27T06:00:20Z",content:`Six files import the pool directly. I'll need to:
641
- 1. Create a new \`PoolManager\` abstraction
642
- 2. Update all consumers to use \`getPool(tenantId)\` instead of the global pool
643
- 3. Add middleware to extract tenant ID from the request
644
-
645
- This is a significant refactor. Let me start with the PoolManager class.`},{sessionId:"sess-005",eventType:"usage",timestamp:"2026-02-27T06:30:00Z",content:JSON.stringify({input_tokens:67800,output_tokens:19300,cost_millicents:38e3})},{sessionId:"sess-005",eventType:"status",timestamp:"2026-02-27T06:30:01Z",content:"suspended"}],Pz=[{id:"proj-alpha",name:"Workspace Alpha",description:"Core platform API and authentication services",repoUrl:"https://github.com/acme/alpha",linkedEnvironmentIds:["env-local-01","env-docker-01"],status:"active",workingDirectory:"",useWorktrees:!0,defaultPersonaId:"",tokenBudget:0,costBudgetMillicents:0,createdAt:"2026-01-15T10:00:00Z",updatedAt:"2026-01-15T10:00:00Z"},{id:"proj-beta",name:"Data Pipeline",description:"ETL pipelines for analytics and reporting",repoUrl:"https://github.com/acme/data-pipeline",linkedEnvironmentIds:["env-docker-01"],status:"active",workingDirectory:"",useWorktrees:!0,defaultPersonaId:"",tokenBudget:0,costBudgetMillicents:0,createdAt:"2026-02-01T14:30:00Z",updatedAt:"2026-02-01T14:30:00Z"},{id:"proj-gamma",name:"Mobile App",description:"React Native cross-platform mobile application",repoUrl:"",linkedEnvironmentIds:["env-local-01"],status:"archived",workingDirectory:"",useWorktrees:!0,defaultPersonaId:"",tokenBudget:0,costBudgetMillicents:0,createdAt:"2025-11-20T09:00:00Z",updatedAt:"2025-11-20T09:00:00Z"}],Uz=[{id:"task-001",workspaceId:"proj-alpha",title:"Implement JWT authentication",description:"Replace session-based auth with JWT tokens across all protected routes",status:"working",branch:"feat/jwt-auth",latestSessionId:"sess-001",dependsOn:[],reviewNotes:void 0,sortOrder:1,createdAt:"2026-02-25T10:00:00Z",parentTaskId:"",depth:0,childTaskIds:["task-001a","task-001b","task-001c"],canDecompose:!0,defaultPersonaId:"",workpad:JSON.stringify({status:"in_progress",summary:"Design and implement JWT-based authentication with access/refresh tokens, replacing session-based auth.",extra:{approach:"Replace express-session with JWT Bearer tokens. Access tokens expire in 24h, refresh tokens stored in DB.",files_changed:["src/middleware/auth.ts","src/routes/login.ts","src/routes/protected.ts"],decisions:["Chose jsonwebtoken over jose for consistency with existing codebase","24h access token expiry — long enough for dev sessions, short enough for security","Refresh tokens are 48-byte random hex stored in DB with user association"],blockers:"Need to verify token rotation strategy with security team before merging"}}),tokenBudget:0,costBudgetMillicents:0},{id:"task-001a",workspaceId:"proj-alpha",title:"Design token schema",description:"Define JWT payload structure, expiry, and refresh token strategy",status:"complete",branch:"feat/jwt-auth/design-token-schema",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:1,createdAt:"2026-02-25T10:10:00Z",parentTaskId:"task-001",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-001b",workspaceId:"proj-alpha",title:"Implement auth middleware",description:"Build Express middleware that verifies JWT Bearer tokens",status:"working",branch:"feat/jwt-auth/implement-auth-middleware",latestSessionId:"sess-001",dependsOn:[],reviewNotes:void 0,sortOrder:2,createdAt:"2026-02-25T10:15:00Z",parentTaskId:"task-001",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-001c",workspaceId:"proj-alpha",title:"Write auth integration tests",description:"End-to-end tests for login flow, token refresh, and protected route access",status:"not_started",branch:"",latestSessionId:"",dependsOn:["task-001b"],reviewNotes:void 0,sortOrder:3,createdAt:"2026-02-25T10:20:00Z",parentTaskId:"task-001",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-002",workspaceId:"proj-alpha",title:"Add rate limiting",description:"Implement token-bucket rate limiting for public API endpoints",status:"not_started",branch:"",latestSessionId:"",dependsOn:["task-001"],reviewNotes:void 0,sortOrder:2,createdAt:"2026-02-25T10:05:00Z",parentTaskId:"",depth:0,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-003",workspaceId:"proj-alpha",title:"Set up OpenAPI documentation",description:"Generate Swagger docs from route decorators and serve at /api/docs",status:"paused",branch:"feat/openapi-docs",latestSessionId:"sess-002",dependsOn:[],reviewNotes:void 0,sortOrder:3,createdAt:"2026-02-24T16:00:00Z",parentTaskId:"",depth:0,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-004",workspaceId:"proj-alpha",title:"Database connection pooling",description:"Switch from single connection to a connection pool with health checks",status:"complete",branch:"feat/db-pool",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:4,createdAt:"2026-02-23T11:00:00Z",parentTaskId:"",depth:0,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-005",workspaceId:"proj-alpha",title:"Fix N+1 query in user list",description:"Use a JOIN instead of per-row lookups in GET /api/users",status:"not_started",branch:"fix/user-list-n1",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:5,createdAt:"2026-02-22T09:30:00Z",parentTaskId:"",depth:0,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-006",workspaceId:"proj-beta",title:"Add Parquet export support",description:"Allow pipeline outputs to be written as Parquet files for Spark consumption",status:"working",branch:"feat/parquet-export",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:1,createdAt:"2026-02-26T08:00:00Z",parentTaskId:"",depth:0,childTaskIds:["task-006a","task-006b","task-006c","task-006d"],canDecompose:!0,defaultPersonaId:"",workpad:JSON.stringify({status:"in_progress",summary:"Plan for adding Parquet export support, including compression options and performance benchmarks.",extra:{approach:"Use apache-arrow npm package for Parquet write support. Map internal column types to Arrow type system.",compression:{supported:["snappy","zstd","gzip"],default:"snappy"},benchmarks:{"1M rows snappy":"2.3s","1M rows zstd":"3.1s","1M rows gzip":"4.8s"}}}),tokenBudget:0,costBudgetMillicents:0},{id:"task-006a",workspaceId:"proj-beta",title:"Define Parquet schema mapping",description:"Map internal column types to Arrow/Parquet type system",status:"complete",branch:"feat/parquet-export/define-parquet-schema-mapping",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:1,createdAt:"2026-02-26T08:05:00Z",parentTaskId:"task-006",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-006b",workspaceId:"proj-beta",title:"Implement row-group writer",description:"Write buffered row groups with configurable batch size",status:"complete",branch:"feat/parquet-export/implement-row-group-writer",latestSessionId:"",dependsOn:["task-006a"],reviewNotes:void 0,sortOrder:2,createdAt:"2026-02-26T08:10:00Z",parentTaskId:"task-006",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-006c",workspaceId:"proj-beta",title:"Add compression options",description:"Support Snappy, ZSTD, and GZIP compression for Parquet output",status:"working",branch:"feat/parquet-export/add-compression-options",latestSessionId:"sess-004",dependsOn:["task-006b"],reviewNotes:void 0,sortOrder:3,createdAt:"2026-02-26T08:15:00Z",parentTaskId:"task-006",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-006d",workspaceId:"proj-beta",title:"Write Parquet integration tests",description:"Round-trip tests: write Parquet, read back with pyarrow, verify data integrity",status:"not_started",branch:"",latestSessionId:"",dependsOn:["task-006c"],reviewNotes:void 0,sortOrder:4,createdAt:"2026-02-26T08:20:00Z",parentTaskId:"task-006",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-007",workspaceId:"proj-beta",title:"Implement incremental loads",description:"Track watermarks so pipelines only process new/changed rows",status:"working",branch:"feat/incremental",latestSessionId:"sess-004",dependsOn:[],reviewNotes:void 0,sortOrder:2,createdAt:"2026-02-26T08:30:00Z",parentTaskId:"",depth:0,childTaskIds:["task-007a","task-007b"],canDecompose:!0,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-007a",workspaceId:"proj-beta",title:"Design watermark storage",description:"Define schema for per-pipeline high-watermark tracking",status:"complete",branch:"feat/incremental/design-watermark-storage",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:1,createdAt:"2026-02-26T08:35:00Z",parentTaskId:"task-007",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-007b",workspaceId:"proj-beta",title:"Implement change detection query",description:"Generate WHERE clauses from watermarks to fetch only changed rows",status:"failed",branch:"feat/incremental/implement-change-detection-query",latestSessionId:"",dependsOn:["task-007a"],reviewNotes:void 0,sortOrder:2,createdAt:"2026-02-26T08:40:00Z",parentTaskId:"task-007",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0},{id:"task-008",workspaceId:"proj-beta",title:"Add pipeline monitoring dashboard",description:"Real-time metrics for pipeline throughput, latency, and error rates",status:"paused",branch:"feat/monitoring",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:3,createdAt:"2026-02-26T09:00:00Z",parentTaskId:"",depth:0,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0}],Qc=[{id:"find-001",workspaceId:"proj-alpha",taskId:"task-001",sessionId:"sess-001",category:"architecture",title:"Auth middleware is tightly coupled to Express",content:"The current auth middleware directly references Express Request/Response types. Consider extracting a framework-agnostic token verification layer so we can reuse it in the WebSocket auth path.",tags:["auth","decoupling","middleware"],createdAt:"2026-02-27T08:16:00Z"},{id:"find-002",workspaceId:"proj-alpha",taskId:"task-003",sessionId:"sess-002",category:"api",title:"Missing pagination on GET /api/users",content:"The users endpoint returns all rows without limit/offset. For datasets over 10k rows this will cause timeouts. Recommend cursor-based pagination with a default page size of 50.",tags:["api","pagination","performance"],createdAt:"2026-02-27T07:31:00Z"},{id:"find-003",workspaceId:"proj-alpha",taskId:"task-005",sessionId:"sess-003",category:"bug",title:"Race condition in session cleanup",content:"When two requests hit /api/logout concurrently, the second call throws a 500 because the session row has already been deleted. Needs an idempotent DELETE or a conditional check.",tags:["bug","concurrency","sessions"],createdAt:"2026-02-26T22:50:00Z"},{id:"find-004",workspaceId:"proj-alpha",taskId:"task-004",sessionId:"",category:"decision",title:"Chose pg-pool over knex connection pool",content:"pg-pool gives us direct control over idle timeout, max connections, and health check queries. Knex wraps pg-pool anyway and adds overhead we don't need since we write raw SQL.",tags:["database","decision","postgres"],createdAt:"2026-02-23T11:30:00Z"},{id:"find-005",workspaceId:"proj-alpha",taskId:"",sessionId:"",category:"dependency",title:"jsonwebtoken has 3 high-severity CVEs",content:"The jsonwebtoken package (v8.x) has known vulnerabilities. Consider migrating to jose which is maintained, supports ESM, and covers the same JWS/JWE surface area with zero dependencies.",tags:["security","dependency","jwt"],createdAt:"2026-02-27T08:20:00Z"},{id:"find-006",workspaceId:"proj-alpha",taskId:"task-001",sessionId:"sess-001",category:"pattern",title:"Consistent error response shape",content:"All error responses should follow the shape `{ error: string, code: string, details?: unknown }`. Currently some routes return `{ message: string }` and others return `{ error: string }`.",tags:["api","consistency","error-handling"],createdAt:"2026-02-27T08:17:00Z"},{id:"find-007",workspaceId:"proj-beta",taskId:"task-007",sessionId:"sess-004",category:"architecture",title:"Watermark storage should be pluggable",content:"The incremental load watermarks are currently stored in a local SQLite file. For production multi-worker scenarios, this needs to be backed by a shared store (Redis or Postgres).",tags:["architecture","pipeline","scalability"],createdAt:"2026-02-27T09:05:00Z"}],Vz=[{name:"anthropic",tokenType:"env_var",envVar:"ANTHROPIC_API_KEY",filePath:"",expiresAt:""},{name:"github",tokenType:"env_var",envVar:"GITHUB_TOKEN",filePath:"",expiresAt:"2026-12-31T23:59:59Z"},{name:"gcp-service-account",tokenType:"file",envVar:"",filePath:"/home/user/.config/gcloud/credentials.json",expiresAt:""}],qz=[{id:"persona-arch",name:"Software Architect",description:"Designs system architecture, defines interfaces, and decomposes large features into implementable tasks.",systemPrompt:"You are a senior software architect. Focus on clean interfaces, separation of concerns, and scalable patterns. When decomposing work, create concrete subtasks with clear acceptance criteria.",toolConfig:JSON.stringify({allowedTools:["Read","Grep","Glob","Write","Edit"]}),runtime:"claude-code",model:"claude-sonnet-4-6",maxTurns:50,mcpServers:"[]",createdAt:"2026-02-20T10:00:00Z",updatedAt:"2026-02-20T10:00:00Z",type:"agent",script:"",allowedMcpTools:["task_create","task_update","task_list","finding_post","finding_list","knowledge_search","knowledge_create_node","session_spawn"]},{id:"persona-fe",name:"Frontend Engineer",description:"React specialist — builds UI components, writes CSS, implements routing, and creates Playwright tests.",systemPrompt:"You are a frontend engineer specializing in React, TypeScript, and modern CSS. Follow component composition patterns, use semantic HTML, and write accessible markup.",toolConfig:JSON.stringify({allowedTools:["Read","Grep","Glob","Write","Edit","Bash"]}),runtime:"claude-code",model:"claude-sonnet-4-6",maxTurns:100,mcpServers:"[]",createdAt:"2026-02-20T10:05:00Z",updatedAt:"2026-02-20T10:05:00Z",type:"agent",script:"",allowedMcpTools:[]},{id:"persona-reviewer",name:"Code Reviewer",description:"Reviews diffs for correctness, security, and style. Posts findings for issues discovered.",systemPrompt:"You are a meticulous code reviewer. Check for security vulnerabilities, performance issues, and style consistency. Post findings for anything noteworthy.",toolConfig:JSON.stringify({allowedTools:["Read","Grep","Glob"]}),runtime:"claude-code",model:"claude-sonnet-4-6",maxTurns:30,mcpServers:"[]",createdAt:"2026-02-20T10:10:00Z",updatedAt:"2026-02-20T10:10:00Z",type:"agent",script:"",allowedMcpTools:["finding_post","finding_list","knowledge_search"]},{id:"persona-tester",name:"QA Engineer",description:"Writes comprehensive test suites — unit tests, integration tests, and E2E Playwright specs.",systemPrompt:"You are a QA engineer focused on test coverage. Write tests that cover happy paths, edge cases, error scenarios, and accessibility. Use Playwright for E2E tests.",toolConfig:JSON.stringify({allowedTools:["Read","Grep","Glob","Write","Edit","Bash"]}),runtime:"claude-code",model:"claude-sonnet-4-6",maxTurns:80,mcpServers:"[]",createdAt:"2026-02-20T10:15:00Z",updatedAt:"2026-02-20T10:15:00Z",type:"agent",script:"",allowedMcpTools:[]},{id:"persona-lint",name:"Lint & Format",description:"Scripted persona — runs ESLint and Prettier on changed files, auto-fixes violations, and posts a findings summary.",systemPrompt:"",toolConfig:"{}",runtime:"genaiscript",model:"",maxTurns:1,mcpServers:"[]",createdAt:"2026-02-21T09:00:00Z",updatedAt:"2026-02-21T09:00:00Z",type:"script",script:`const files = env.files.filter(f => /\\.(ts|tsx|js)$/.test(f.filename));
646
- for (const f of files) {
647
- const eslintResult = await host.exec("npx", ["eslint", "--fix", f.filename]);
648
- if (eslintResult.exitCode !== 0) {
649
- env.findings.push({ category: "lint", title: \`Lint issues in \${f.filename}\`, content: eslintResult.stderr });
650
- }
651
- const prettierResult = await host.exec("npx", ["prettier", "--write", f.filename]);
652
- if (prettierResult.exitCode !== 0) {
653
- env.findings.push({ category: "format", title: \`Prettier issues in \${f.filename}\`, content: prettierResult.stderr });
654
- }
655
- }
656
- env.findings.push({ category: "summary", title: "Lint & format pass complete", content: \`Ran ESLint and Prettier on \${files.length} files\` });`,allowedMcpTools:[]}],Gz={"task-001b":[{id:"sess-001-prev",environmentId:"env-local-01",runtime:"claude-code",status:"stopped",endReason:"interrupted",prompt:"Implement auth middleware",startedAt:"2026-02-26T14:00:00Z"},{id:"sess-001",environmentId:"env-local-01",runtime:"claude-code",status:"running",prompt:"Implement auth middleware",startedAt:"2026-02-27T08:15:00Z"}],"task-006c":[{id:"sess-004",environmentId:"env-docker-01",runtime:"claude-code",status:"running",prompt:"Add compression options",startedAt:"2026-02-27T09:00:00Z"}]};function Ie(t){return new Date(Date.now()+t).toISOString()}const u_=[{label:"API Refactor",pauseForInput:!1,steps:[{delayMs:0,event:{eventType:"status",timestamp:Ie(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Ie(600),content:"I'll start by finding all API route files that need refactoring."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Ie(1200),content:JSON.stringify({tool:"Glob",args:{pattern:"src/routes/**/*.ts"}}),raw:JSON.stringify({id:"stream-a-01",type:"tool_use"})}},{delayMs:1600,event:{eventType:"tool_result",timestamp:Ie(1600),content:`src/routes/users.ts
657
- src/routes/auth.ts
658
- src/routes/billing.ts
659
- src/routes/admin.ts
660
- src/routes/health.ts`,raw:JSON.stringify({tool_use_id:"stream-a-01"})}},{delayMs:2200,event:{eventType:"text",timestamp:Ie(2200),content:`Found 5 route files. Let me refactor users.ts to use Express Router with a middleware chain.
661
-
662
- \`\`\`typescript
663
- const router = Router();
664
- router.use(authenticate);
665
- router.use(validateBody);
666
-
667
- router.get("/", listUsers);
668
- router.post("/", createUser);
669
- router.get("/:id", getUser);
670
- router.put("/:id", updateUser);
671
- router.delete("/:id", deleteUser);
672
- \`\`\``}},{delayMs:3200,event:{eventType:"tool_use",timestamp:Ie(3200),content:JSON.stringify({tool:"Bash",args:{command:"npm test -- --testPathPattern=routes"}}),raw:JSON.stringify({id:"stream-a-02",type:"tool_use"})}},{delayMs:4e3,event:{eventType:"tool_result",timestamp:Ie(4e3),content:` PASS src/routes/__tests__/users.test.ts
673
- PASS src/routes/__tests__/auth.test.ts
674
- PASS src/routes/__tests__/billing.test.ts
675
-
676
- Test Suites: 3 passed, 3 total
677
- Tests: 22 passed, 22 total`,raw:JSON.stringify({tool_use_id:"stream-a-02"})}},{delayMs:4500,event:{eventType:"usage",timestamp:Ie(4500),content:JSON.stringify({input_tokens:28400,output_tokens:7200,cost_millicents:15e3})}},{delayMs:5e3,event:{eventType:"text",timestamp:Ie(5e3),content:"All 22 tests pass. The route refactoring is complete."}},{delayMs:5500,event:{eventType:"status",timestamp:Ie(5500),content:"completed"}}]},{label:"Database Migration",pauseForInput:!0,pauseAfterStep:4,steps:[{delayMs:0,event:{eventType:"status",timestamp:Ie(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Ie(600),content:"Scanning the current database schema to plan the migration."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Ie(1200),content:JSON.stringify({tool:"Read",args:{file_path:"migrations/001_initial.sql"}}),raw:JSON.stringify({id:"stream-b-01",type:"tool_use"})}},{delayMs:1800,event:{eventType:"tool_result",timestamp:Ie(1800),content:`CREATE TABLE users (
678
- id UUID PRIMARY KEY,
679
- name TEXT NOT NULL,
680
- email TEXT UNIQUE NOT NULL,
681
- created_at TIMESTAMPTZ DEFAULT now()
682
- );
683
-
684
- CREATE TABLE sessions (
685
- id UUID PRIMARY KEY,
686
- user_id UUID REFERENCES users(id),
687
- expires_at TIMESTAMPTZ NOT NULL
688
- );`,raw:JSON.stringify({tool_use_id:"stream-b-01"})}},{delayMs:2600,event:{eventType:"text",timestamp:Ie(2600),content:`I found the tables to modify:
689
- - **users**: add column \`last_login_at\`
690
- - **sessions**: add index on \`expires_at\`
691
- - **audit_log**: new table
692
-
693
- This migration will add a NOT NULL column to the \`users\` table. The table has **50,000+ rows** which may lock the table briefly.
694
-
695
- Please confirm to proceed.`}}],resumeSteps:[{delayMs:500,event:{eventType:"text",timestamp:Ie(0),content:"Proceeding with migration."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Ie(700),content:JSON.stringify({tool:"Bash",args:{command:"npm run migrate"}}),raw:JSON.stringify({id:"stream-b-02",type:"tool_use"})}},{delayMs:2200,event:{eventType:"tool_result",timestamp:Ie(1700),content:`Applying 002_add_last_login.sql... done
696
- Applying 003_sessions_index.sql... done
697
- Applying 004_audit_log.sql... done
698
-
699
- 3 migrations applied successfully.`,raw:JSON.stringify({tool_use_id:"stream-b-02"})}},{delayMs:2800,event:{eventType:"text",timestamp:Ie(2300),content:"All 3 migrations applied successfully. The `audit_log` table is ready."}},{delayMs:3200,event:{eventType:"status",timestamp:Ie(2700),content:"completed"}}]},{label:"Test Writer",pauseForInput:!1,steps:[{delayMs:0,event:{eventType:"status",timestamp:Ie(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Ie(600),content:"I'll generate tests for `src/services/billing.ts`. Let me read the implementation first."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Ie(1200),content:JSON.stringify({tool:"Read",args:{file_path:"src/services/billing.ts"}}),raw:JSON.stringify({id:"stream-c-01",type:"tool_use"})}},{delayMs:1800,event:{eventType:"tool_result",timestamp:Ie(1800),content:`import { StripeClient } from "./stripe-client.js";
700
- import type { Invoice, LineItem } from "../types/billing.js";
701
-
702
- export class BillingService {
703
- constructor(private stripe: StripeClient) {}
704
-
705
- async calculateMonthlyTotal(userId: string): Promise<number> {
706
- const invoices = await this.stripe.listInvoices(userId);
707
- return invoices.reduce((sum, inv) => sum + inv.total, 0);
708
- }
709
- }`,raw:JSON.stringify({tool_use_id:"stream-c-01"})}},{delayMs:2400,event:{eventType:"text",timestamp:Ie(2400),content:"The billing service imports from `./stripe-client.js`. Let me check if that module exists."}},{delayMs:2800,event:{eventType:"tool_use",timestamp:Ie(2800),content:JSON.stringify({tool:"Read",args:{file_path:"src/services/stripe-client.ts"}}),raw:JSON.stringify({id:"stream-c-02",type:"tool_use"})}},{delayMs:3200,event:{eventType:"tool_result",timestamp:Ie(3200),content:"Error: ENOENT: no such file or directory, open 'src/services/stripe-client.ts'",raw:JSON.stringify({tool_use_id:"stream-c-02",is_error:!0})}},{delayMs:3600,event:{eventType:"error",timestamp:Ie(3600),content:"Cannot resolve import 'src/services/stripe-client.ts' — module not found. The billing service depends on a Stripe client that doesn't exist in this environment."}},{delayMs:4e3,event:{eventType:"status",timestamp:Ie(4e3),content:"failed"}}]},{label:"Fix Auth Bug",pauseForInput:!1,steps:[{delayMs:0,event:{eventType:"status",timestamp:Ie(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Ie(600),content:"Let me investigate the authentication bug..."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Ie(1200),content:JSON.stringify({tool:"Read",args:{file_path:"/src/middleware/auth.ts"}}),raw:JSON.stringify({id:"tool-mock-001"})}},{delayMs:1800,event:{eventType:"tool_result",timestamp:Ie(1800),content:`import jwt from "jsonwebtoken";
710
- import type { Request, Response, NextFunction } from "express";
711
-
712
- const JWT_SECRET = process.env.JWT_SECRET || "change-me";
713
-
714
- export function verifyToken(req: Request, res: Response, next: NextFunction): void {
715
- const header = req.headers.authorization;
716
- if (!header?.startsWith("Bearer ")) {
717
- res.status(401).json({ error: "Missing token" });
718
- return;
719
- }
720
- try {
721
- const decoded = jwt.verify(header.slice(7), JWT_SECRET);
722
- if (decoded.exp > Date.now() / 1000) {
723
- res.status(403).json({ error: "Token expired" });
724
- return;
725
- }
726
- req.user = decoded;
727
- next();
728
- } catch {
729
- res.status(403).json({ error: "Invalid token" });
730
- }
731
- }`,raw:JSON.stringify({tool_use_id:"tool-mock-001",is_error:!1})}},{delayMs:2600,event:{eventType:"text",timestamp:Ie(2600),content:"Found the issue — the token expiry check on line 14 is using `>` instead of `<`. A token is expired when `exp < now`, but the code checks `exp > now` which means it rejects *valid* tokens and accepts *expired* ones. Let me fix it."}},{delayMs:3400,event:{eventType:"tool_use",timestamp:Ie(3400),content:JSON.stringify({tool:"Edit",args:{file_path:"/src/middleware/auth.ts",old_string:" if (decoded.exp > Date.now() / 1000) {",new_string:" if (decoded.exp < Date.now() / 1000) {"}}),raw:JSON.stringify({id:"tool-mock-002"})}},{delayMs:4e3,event:{eventType:"tool_result",timestamp:Ie(4e3),content:"File updated successfully",raw:JSON.stringify({tool_use_id:"tool-mock-002",is_error:!1})}},{delayMs:4600,event:{eventType:"tool_use",timestamp:Ie(4600),content:JSON.stringify({tool:"Bash",args:{command:"npm test -- --grep auth"}}),raw:JSON.stringify({id:"tool-mock-003"})}},{delayMs:5800,event:{eventType:"tool_result",timestamp:Ie(5800),content:`[exit 0] > jest --grep auth
732
-
733
- PASS src/auth.test.ts
734
- ✓ validates JWT token (12ms)
735
- ✓ rejects expired token (3ms)
736
- ✓ handles missing header (1ms)
737
-
738
- Tests: 3 passed, 3 total
739
- Time: 1.234s`,raw:JSON.stringify({tool_use_id:"tool-mock-003",is_error:!1})}},{delayMs:6400,event:{eventType:"tool_use",timestamp:Ie(6400),content:JSON.stringify({tool:"Grep",args:{pattern:"decoded\\.exp",path:"src/"}}),raw:JSON.stringify({id:"tool-mock-004"})}},{delayMs:7e3,event:{eventType:"tool_result",timestamp:Ie(7e3),content:`src/middleware/auth.ts:14: if (decoded.exp < Date.now() / 1000) {
740
- src/utils/token-refresh.ts:28: const remaining = decoded.exp - Date.now() / 1000;`,raw:JSON.stringify({tool_use_id:"tool-mock-004",is_error:!1})}},{delayMs:7800,event:{eventType:"text",timestamp:Ie(7800),content:"Fixed. The token expiry comparison was inverted — `decoded.exp > Date.now()` should have been `<` (a token is expired when its `exp` is in the past). The other occurrence in `token-refresh.ts` uses subtraction (not comparison), so it was already correct. All 3 auth tests pass."}},{delayMs:8400,event:{eventType:"usage",timestamp:Ie(8400),content:JSON.stringify({input_tokens:42600,output_tokens:1850,cost_millicents:12e3})}},{delayMs:8800,event:{eventType:"status",timestamp:Ie(8800),content:"completed"}}]}],is={onConnect:async()=>{},onDisconnect:()=>{},handleEvent:()=>!1},f_=400;function Fz({children:t}){const[s,o]=y.useState($z),[r,c]=y.useState(zz),[d,u]=y.useState(Hz),[p,m]=y.useState(void 0),[g,v]=y.useState(Pz),[_,b]=y.useState(""),[x,S]=y.useState(Uz),[j,w]=y.useState(Qc),[T,C]=y.useState(void 0),A=!1,[L,E]=y.useState(Vz),[M,H]=y.useState({claude:"off",github:"off",copilot:"off",codex:"off",goose:"off"}),[D,z]=y.useState(qz),[Y,V]=y.useState([]),[Q]=y.useState(Gz),[ge,X]=y.useState(""),[re,B]=y.useState(Rs),[R,Z]=y.useState(Fa),[me,q]=y.useState(void 0),[le,de]=y.useState(void 0),[xe,ke]=y.useState(""),Ze=y.useRef(void 0),Xe=y.useRef(0),Se=y.useRef(0),fe=y.useRef(new Set),be=y.useRef(new Map),Vt=y.useRef(x);Vt.current=x;const ie=y.useRef(new Map),We=y.useRef(new Map),qt=y.useCallback(P=>(Xe.current+=1,`mock-${P}-${String(Xe.current).padStart(3,"0")}`),[]),ne=y.useCallback(()=>{const P=u_[Se.current%u_.length];return Se.current+=1,P},[]),Tt=y.useCallback((P,te,ce)=>{const pe=setTimeout(()=>{var ve;fe.current.delete(pe),ce&&((ve=be.current.get(ce))==null||ve.delete(pe)),P()},te);fe.current.add(pe),ce&&(be.current.has(ce)||be.current.set(ce,new Set),be.current.get(ce).add(pe))},[]),Lt=y.useCallback(P=>{const te=be.current.get(P);te&&(te.forEach(ce=>{clearTimeout(ce),fe.current.delete(ce)}),be.current.delete(P))},[]),Bt=y.useCallback((P,te,ce)=>{c(pe=>pe.map(ve=>ve.id===P?{...ve,status:te,...ce!==void 0?{endReason:ce}:{}}:ve))},[]),Pe=y.useCallback(P=>{u(te=>[...te,P])},[]),ln=y.useCallback((P,te,ce)=>{te.forEach((pe,ve)=>{Tt(()=>{const qe={sessionId:P,...pe.event,timestamp:new Date().toISOString()};if(Pe(qe),pe.event.eventType==="status"){const Te=ck(pe.event.content),Me=dk(pe.event.content);Bt(P,Te,Me)}ve===te.length-1&&ce&&ce()},pe.delayMs,P)})},[Tt,Pe,Bt]),ga=y.useCallback(async(P,te,ce,pe)=>{console.log("[MockGrackle] spawn",{environmentId:P,prompt:te,runtime:pe});const ve=qt("sess"),qe={id:ve,environmentId:P,runtime:pe||"claude-code",status:"running",prompt:te,startedAt:new Date().toISOString()};c(Me=>[...Me,qe]),m(ve);const Te=ne();if(console.log(`[MockGrackle] Playing scenario: ${Te.label}`),Te.pauseForInput){const Me=Te.pauseAfterStep??Te.steps.length-1,Qe=Te.steps.slice(0,Me+1),vt=Qe.length>0?Qe[Qe.length-1].delayMs:0;ln(ve,Qe),Tt(()=>{Bt(ve,"idle"),Pe({sessionId:ve,eventType:"status",timestamp:new Date().toISOString(),content:"idle"})},vt+f_,ve),Te.resumeSteps&&ie.current.set(ve,Te.resumeSteps)}else ln(ve,Te.steps)},[qt,ne,ln,Tt,Bt,Pe]),fs=y.useCallback(async P=>{console.log("[MockGrackle] kill",P),Lt(P),ie.current.delete(P),Bt(P,"stopped","killed"),Pe({sessionId:P,eventType:"status",timestamp:new Date().toISOString(),content:"killed"}),S(te=>te.map(ce=>ce.latestSessionId===P&&ce.status==="working"?{...ce,status:"not_started"}:ce))},[Lt,Bt,Pe]),ti=y.useCallback(async P=>{console.log("[MockGrackle] stopGraceful",P),Lt(P),ie.current.delete(P),Bt(P,"stopped","terminated"),Pe({sessionId:P,eventType:"status",timestamp:new Date().toISOString(),content:"terminated"}),S(te=>te.map(ce=>ce.latestSessionId===P&&ce.status==="working"?{...ce,status:"not_started"}:ce))},[Lt,Bt,Pe]),va=y.useCallback(()=>{console.log("[MockGrackle] refresh")},[]),tn=y.useCallback(async P=>{console.log("[MockGrackle] loadSessionEvents",P)},[]),Hi=y.useCallback(()=>{console.log("[MockGrackle] clearEvents"),u([])},[]),ya=y.useCallback(async(P,te,ce,pe,ve,qe,Te,Me,Qe)=>{console.log("[MockGrackle] createWorkspace",{name:P,description:te});const vt={id:qt("proj"),name:P,description:te||"",repoUrl:ce||"",linkedEnvironmentIds:pe?[pe]:[],status:"active",workingDirectory:Te||"",useWorktrees:qe??!0,defaultPersonaId:ve||"",tokenBudget:0,costBudgetMillicents:0,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};v(He=>[...He,vt]),Me&&Me()},[qt]),ni=y.useCallback(async P=>{console.log("[MockGrackle] archiveWorkspace",P),v(te=>te.map(ce=>ce.id===P?{...ce,status:"archived"}:ce))},[]),js=y.useCallback(async P=>{console.log("[MockGrackle] loadTasks",P)},[]),Pi=y.useCallback(async(P,te,ce,pe,ve,qe,Te,Me,Qe)=>{console.log("[MockGrackle] createTask",{workspaceId:P,title:te,parentTaskId:ve}),S(vt=>{const et=vt.filter(zs=>zs.workspaceId===P).reduce((zs,Yo)=>Math.max(zs,Yo.sortOrder),0),ut=ve?vt.find(zs=>zs.id===ve):void 0;if(ve&&!ut)return console.warn("[MockGrackle] Parent task not found:",ve),vt;if(ut&&!ut.canDecompose)return console.warn("[MockGrackle] Parent task does not have decomposition rights:",ve),vt;const bt=ut?ut.depth+1:0,ws={id:qt("task"),workspaceId:P,title:te,description:ce||"",status:"not_started",branch:"",latestSessionId:"",dependsOn:pe||[],reviewNotes:void 0,sortOrder:et+1,createdAt:new Date().toISOString(),parentTaskId:ve||"",depth:bt,childTaskIds:[],canDecompose:Te??!ve,defaultPersonaId:qe||"",workpad:"",tokenBudget:0,costBudgetMillicents:0};return[...vt,ws]}),Me&&Me()},[qt]),qn=y.useCallback(async(P,te,ce,pe)=>{var vt;console.log("[MockGrackle] startTask",{taskId:P});const ve=Vt.current.find(He=>He.id===P),qe=(ve==null?void 0:ve.title)??"",Te=qt("sess"),Me={id:Te,environmentId:"env-local-01",runtime:"claude-code",status:"running",prompt:qe||P,startedAt:new Date().toISOString()};c(He=>[...He,Me]),S(He=>He.map(et=>et.id===P?{...et,status:"working",latestSessionId:Te,branch:`mock/${P.slice(0,8)}`}:et));const Qe=ne();if(console.log(`[MockGrackle] Playing task scenario: ${Qe.label}`),Qe.pauseForInput){const He=Qe.pauseAfterStep??Qe.steps.length-1,et=Qe.steps.slice(0,He+1),ut=et.length>0?et[et.length-1].delayMs:0;if(ln(Te,et),Tt(()=>{Bt(Te,"idle"),Pe({sessionId:Te,eventType:"status",timestamp:new Date().toISOString(),content:"idle"})},ut+f_,Te),Qe.resumeSteps){const bt=[...Qe.resumeSteps];ie.current.set(Te,bt);const ws=bt.reduce((zs,Yo)=>Math.max(zs,Yo.delayMs),0);We.current.set(Te,{taskId:P,delayAfterResume:ws+200})}}else{const He=Qe.steps.length>0?Qe.steps[Qe.steps.length-1].delayMs:0;ln(Te,Qe.steps);const et=(vt=Qe.steps[Qe.steps.length-1])==null?void 0:vt.event.content;Tt(()=>{et==="completed"?S(ut=>ut.map(bt=>bt.id===P&&bt.status==="working"?{...bt,status:"paused"}:bt)):et==="failed"&&S(ut=>ut.map(bt=>bt.id===P&&bt.status==="working"?{...bt,status:"failed"}:bt))},He+100,Te)}},[qt,ne,ln,Tt,Bt,Pe]),Ee=y.useCallback(async(P,te)=>{console.log("[MockGrackle] sendInput",{sessionId:P,text:te}),Pe({sessionId:P,eventType:"output",timestamp:new Date().toISOString(),content:`User input: ${te}`}),Bt(P,"running"),Pe({sessionId:P,eventType:"status",timestamp:new Date().toISOString(),content:"running"});const ce=ie.current.get(P);if(ce)ie.current.delete(P),ln(P,ce);else{const ve=[{delayMs:500,event:{eventType:"output",timestamp:new Date().toISOString(),content:"I received your input, continuing..."}},{delayMs:1500,event:{eventType:"status",timestamp:new Date().toISOString(),content:"completed"}}];ln(P,ve)}const pe=We.current.get(P);pe&&(We.current.delete(P),Tt(()=>{S(ve=>ve.map(qe=>qe.id===pe.taskId&&qe.status==="working"?{...qe,status:"paused"}:qe))},pe.delayAfterResume,P))},[Pe,Bt,ln,Tt]),ze=y.useCallback(async P=>{console.log("[MockGrackle] completeTask",P),S(te=>te.map(ce=>ce.id===P?{...ce,status:"complete"}:ce))},[]),nn=y.useCallback(async P=>{console.log("[MockGrackle] resumeTask",P)},[]),wt=y.useCallback(async(P,te,ce,pe,ve)=>{console.log("[MockGrackle] updateTask",{taskId:P,title:te}),S(qe=>qe.map(Te=>Te.id===P?{...Te,title:te.trim()||Te.title,description:ce,dependsOn:pe,...ve!==void 0?{defaultPersonaId:ve}:{}}:Te))},[]),yn=y.useCallback(async P=>{console.log("[MockGrackle] deleteTask",P),S(te=>te.filter(ce=>ce.id!==P))},[]),sn=y.useCallback(async P=>{console.log("[MockGrackle] loadFindings",P),w(Qc.filter(te=>te.workspaceId===P))},[]),Ui=y.useCallback(async()=>{console.log("[MockGrackle] loadAllFindings"),w([...Qc])},[]),Vi=y.useCallback(async P=>{console.log("[MockGrackle] loadFinding",P);const te=Qc.find(ce=>ce.id===P);C(te)},[]),qi=y.useCallback(async(P,te,ce,pe,ve)=>{console.log("[MockGrackle] postFinding",{workspaceId:P,title:te});const qe={id:qt("find"),workspaceId:P,taskId:"",sessionId:"",category:pe||"general",title:te,content:ce,tags:ve||[],createdAt:new Date().toISOString()};w(Te=>[...Te,qe])},[qt]),si=y.useCallback(async()=>{console.log("[MockGrackle] loadEnvironments")},[]),ai=y.useCallback(async(P,te,ce)=>{console.log("[MockGrackle] addEnvironment",{displayName:P,adapterType:te,adapterConfig:ce})},[]),ii=y.useCallback(async(P,te)=>{console.log("[MockGrackle] updateEnvironment",{environmentId:P,...te}),o(ce=>ce.map(pe=>pe.id!==P?pe:{...pe,...te.displayName!==void 0?{displayName:te.displayName}:{},...te.adapterConfig!==void 0?{adapterConfig:JSON.stringify(te.adapterConfig)}:{}}))},[]),Ts=y.useCallback(async()=>{console.log("[MockGrackle] loadTokens")},[]),oi=y.useCallback(async(P,te,ce,pe,ve)=>{console.log("[MockGrackle] setToken",{name:P,tokenType:ce}),E(qe=>[...qe.filter(Me=>Me.name!==P),{name:P,tokenType:ce,envVar:pe,filePath:ve,expiresAt:""}])},[]),ba=y.useCallback(async P=>{console.log("[MockGrackle] deleteToken",P),E(te=>te.filter(ce=>ce.name!==P))},[]),jl=y.useCallback(async P=>{console.log("[MockGrackle] updateCredentialProviders",P),H(P)},[]);y.useEffect(()=>()=>{fe.current.forEach(clearTimeout),fe.current.clear()},[]);const Tl=y.useMemo(()=>({connectionStatus:"connected",environments:{environments:s,environmentsLoading:!1,provisionStatus:{},operationError:"",clearOperationError:()=>{},loadEnvironments:si,addEnvironment:ai,updateEnvironment:ii,provisionEnvironment:async(P,te)=>{},stopEnvironment:async()=>{},removeEnvironment:async()=>{},domainHook:is},sessions:{sessions:r,sessionsLoading:!1,events:d,eventsDropped:0,lastSpawnedId:p,taskSessions:Q,spawn:ga,sendInput:Ee,kill:fs,stopGraceful:ti,loadSessionEvents:tn,clearEvents:Hi,loadTaskSessions:async P=>{console.log("[MockGrackle] loadTaskSessions",P)},domainHook:is},workspaces:{workspaces:g,workspacesLoading:!1,workspaceCreating:!1,loadWorkspaces:async()=>{console.log("[MockGrackle] loadWorkspaces")},createWorkspace:ya,archiveWorkspace:ni,updateWorkspace:async(P,te)=>{console.log("[MockGrackle] updateWorkspace",{workspaceId:P,...te}),v(ce=>ce.map(pe=>pe.id!==P?pe:{...pe,...te.name!==void 0?{name:te.name}:{},...te.description!==void 0?{description:te.description}:{},...te.repoUrl!==void 0?{repoUrl:te.repoUrl}:{},...te.environmentId!==void 0?{environmentId:te.environmentId}:{},...te.workingDirectory!==void 0?{workingDirectory:te.workingDirectory}:{},...te.useWorktrees!==void 0?{useWorktrees:te.useWorktrees}:{},...te.defaultPersonaId!==void 0?{defaultPersonaId:te.defaultPersonaId}:{},updatedAt:new Date().toISOString()}))},linkEnvironment:async(P,te)=>{if(console.log("[MockGrackle] linkEnvironment",{workspaceId:P,environmentId:te}),te==="error-env"){b("Failed to link environment");return}b(""),v(ce=>ce.map(pe=>pe.id!==P||pe.linkedEnvironmentIds.includes(te)?pe:{...pe,linkedEnvironmentIds:[...pe.linkedEnvironmentIds,te]}))},unlinkEnvironment:async(P,te)=>{if(console.log("[MockGrackle] unlinkEnvironment",{workspaceId:P,environmentId:te}),te==="error-env"){b("Failed to unlink environment");return}b(""),v(ce=>ce.map(pe=>pe.id!==P?pe:{...pe,linkedEnvironmentIds:pe.linkedEnvironmentIds.filter(ve=>ve!==te)}))},linkOperationError:_,clearLinkOperationError:()=>{b("")},domainHook:is},tasks:{tasks:x,tasksLoading:!1,taskStartingId:void 0,loadTasks:js,loadAllTasks:async()=>{console.log("[MockGrackle] loadAllTasks")},createTask:Pi,startTask:qn,stopTask:async P=>{console.log("[MockGrackle] stopTask",{taskId:P}),await ze(P)},completeTask:ze,resumeTask:nn,updateTask:wt,deleteTask:yn,domainHook:is},findings:{findings:j,selectedFinding:T,findingLoading:A,findingsLoading:!1,loadFindings:sn,loadAllFindings:Ui,loadFinding:Vi,postFinding:qi,domainHook:is},tokens:{tokens:L,tokensLoading:!1,loadTokens:Ts,setToken:oi,deleteToken:ba,domainHook:is},credentials:{credentialProviders:M,credentialsLoading:!1,updateCredentialProviders:jl,domainHook:is},codespaces:{codespaces:[],codespaceError:"",codespaceListError:"",codespaceCreating:!1,listCodespaces:async()=>{},createCodespace:async()=>{},domainHook:is},personas:{personas:D,personasLoading:!1,createPersona:async(P,te,ce,pe,ve,qe,Te,Me,Qe)=>{console.log("[MockGrackle] createPersona",{name:P});const vt={id:`mock-persona-${Date.now()}`,name:P,description:te,systemPrompt:ce,toolConfig:"{}",runtime:pe??"claude-code",model:ve||"",maxTurns:qe||0,mcpServers:"[]",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),type:Te||"agent",script:Me||"",allowedMcpTools:Qe||[]};return z(He=>[...He,vt]),vt},updatePersona:async(P,te,ce,pe,ve,qe,Te,Me,Qe,vt)=>{console.log("[MockGrackle] updatePersona",{personaId:P,name:te});const He=D.find(bt=>bt.id===P);if(!He)throw new Error(`Persona not found: ${P}`);const et=new Date().toISOString(),ut={...He,...te!==void 0?{name:te}:{},...ce!==void 0?{description:ce}:{},...pe!==void 0?{systemPrompt:pe}:{},...ve!==void 0?{runtime:ve}:{},...qe!==void 0?{model:qe}:{},...Te!==void 0?{maxTurns:Te}:{},...Me!==void 0?{type:Me}:{},...Qe!==void 0?{script:Qe}:{},...vt!==void 0?{allowedMcpTools:vt}:{},updatedAt:et};return z(bt=>bt.map(ws=>ws.id===P?ut:ws)),ut},deletePersona:async P=>{console.log("[MockGrackle] deletePersona",P),z(te=>te.filter(ce=>ce.id!==P))},domainHook:is},schedules:{schedules:Y,schedulesLoading:!1,createSchedule:async(P,te,ce,pe,ve)=>{console.log("[MockGrackle] createSchedule",{title:P});const qe={id:`mock-schedule-${Date.now()}`,title:P,description:te,scheduleExpression:ce,personaId:pe,workspaceId:ve??"",parentTaskId:"",enabled:!0,lastRunAt:"",nextRunAt:new Date(Date.now()+6e4).toISOString(),runCount:0,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};return V(Te=>[...Te,qe]),qe},updateSchedule:async(P,te)=>{console.log("[MockGrackle] updateSchedule",{scheduleId:P,fields:te});let ce;if(V(pe=>pe.map(ve=>ve.id!==P?ve:(ce={...ve,...te,updatedAt:new Date().toISOString()},ce))),!ce)throw new Error(`Schedule not found: ${P}`);return ce},deleteSchedule:async P=>{console.log("[MockGrackle] deleteSchedule",P),V(te=>te.filter(ce=>ce.id!==P))},domainHook:is},streams:{streams:[],streamsLoading:!1,streamsLoadedOnce:!0,streamsLoadError:!1,loadStreams:async()=>{},domainHook:is},knowledge:{graphData:{nodes:re,links:R},selectedNode:me,loading:!1,selectedId:le,searchQuery:xe,search:async P=>{if(console.log("[MockGrackle] knowledge.search",P),!P.trim()){ke(P);return}ke(P);const te=Ze.current,ce=te?Rs.filter(Te=>!Te.workspaceId||Te.workspaceId===te):Rs,pe=P.toLowerCase(),ve=ce.filter(Te=>{var Me,Qe,vt;return Te.label.toLowerCase().includes(pe)||((Me=Te.content)==null?void 0:Me.toLowerCase().includes(pe))||((Qe=Te.tags)==null?void 0:Qe.some(He=>He.toLowerCase().includes(pe)))||((vt=Te.category)==null?void 0:vt.toLowerCase().includes(pe))});B(ve);const qe=new Set(ve.map(Te=>Te.id));Z(Fa.filter(Te=>qe.has(Te.source)&&qe.has(Te.target))),de(void 0),q(void 0)},clearSearch:()=>{console.log("[MockGrackle] knowledge.clearSearch"),ke("");const P=Ze.current,te=P?Rs.filter(pe=>!pe.workspaceId||pe.workspaceId===P):Rs;B(te);const ce=new Set(te.map(pe=>pe.id));Z(Fa.filter(pe=>ce.has(pe.source)&&ce.has(pe.target)))},selectNode:async P=>{console.log("[MockGrackle] knowledge.selectNode",P),de(P);const te=P in d_?d_[P]:void 0;if(te)q(te);else{const ce=Rs.find(pe=>pe.id===P);if(ce){const pe=Fa.filter(ve=>ve.source===P||ve.target===P).map(ve=>({fromId:ve.source,toId:ve.target,type:ve.type}));q({node:ce,edges:pe})}}},clearSelection:()=>{console.log("[MockGrackle] knowledge.clearSelection"),de(void 0),q(void 0)},expandNode:async P=>{console.log("[MockGrackle] knowledge.expandNode",P),B(te=>{const ce=new Set(te.map(Me=>Me.id)),pe=Fa.filter(Me=>Me.source===P||Me.target===P),ve=new Set;for(const Me of pe)ce.has(Me.source)||ve.add(Me.source),ce.has(Me.target)||ve.add(Me.target);if(ve.size===0)return te;const qe=Rs.filter(Me=>ve.has(Me.id)),Te=new Set([...ce,...ve]);return Z(Me=>{const Qe=new Set(Me.map(He=>`${He.source}|${He.target}|${He.type}`)),vt=Fa.filter(He=>Te.has(He.source)&&Te.has(He.target)&&!Qe.has(`${He.source}|${He.target}|${He.type}`));return vt.length>0?[...Me,...vt]:Me}),[...te,...qe]})},loadRecent:async P=>{if(console.log("[MockGrackle] knowledge.loadRecent",P),Ze.current=P,P){const te=Rs.filter(pe=>!pe.workspaceId||pe.workspaceId===P);B(te);const ce=new Set(te.map(pe=>pe.id));Z(Fa.filter(pe=>ce.has(pe.source)&&ce.has(pe.target)))}else B(Rs),Z(Fa);ke("")},handleEvent:()=>!1,domainHook:is},githubAccounts:{githubAccounts:[],githubAccountsLoading:!1,loadGitHubAccounts:async()=>{console.log("[MockGrackle] loadGitHubAccounts")},addGitHubAccount:async(P,te,ce,pe)=>{console.log("[MockGrackle] addGitHubAccount",P)},updateGitHubAccount:async(P,te)=>{console.log("[MockGrackle] updateGitHubAccount",P,te)},removeGitHubAccount:async P=>{console.log("[MockGrackle] removeGitHubAccount",P)},importGitHubAccounts:async()=>(console.log("[MockGrackle] importGitHubAccounts"),{imported:0,usernames:[]})},plugins:{plugins:[{name:"core",description:"Core infrastructure",enabled:!0,required:!0,loaded:!0},{name:"orchestration",description:"Task orchestration",enabled:!0,required:!1,loaded:!0},{name:"scheduling",description:"Scheduled triggers",enabled:!0,required:!1,loaded:!0},{name:"knowledge",description:"Knowledge graph",enabled:!1,required:!1,loaded:!1}],pluginsLoading:!1,loadPlugins:async()=>{console.log("[MockGrackle] loadPlugins")},setPluginEnabled:async(P,te)=>{console.log("[MockGrackle] setPluginEnabled",P,te)}},appDefaultPersonaId:ge,setAppDefaultPersonaId:async P=>{console.log("[MockGrackle] setAppDefaultPersonaId",P),X(P)},onboardingCompleted:!0,completeOnboarding:async()=>{console.log("[MockGrackle] completeOnboarding")},usageCache:{"workspace:proj-alpha":{inputTokens:214500,outputTokens:44850,costMillicents:112e3,sessionCount:4},"workspace:proj-beta":{inputTokens:86700,outputTokens:23800,costMillicents:48e3,sessionCount:3},"task:task-001":{inputTokens:126800,outputTokens:20850,costMillicents:63e3,sessionCount:2},"task:task-006":{inputTokens:18900,outputTokens:4500,costMillicents:1e4,sessionCount:1},"task_tree:task-001":{inputTokens:126800,outputTokens:20850,costMillicents:63e3,sessionCount:2},"task_tree:task-006":{inputTokens:18900,outputTokens:4500,costMillicents:1e4,sessionCount:1}},loadUsage:async(P,te)=>{console.log(`[MockGrackle] loadUsage(${P}, ${te})`)},refresh:va}),[s,r,d,p,Q,g,_,x,j,T,L,M,D,Y,ge,re,R,me,le,xe,ga,Ee,fs,ti,tn,Hi,ya,ni,js,Pi,qn,ze,nn,wt,yn,sn,Ui,Vi,qi,si,ai,ii,Ts,oi,ba,jl,va]);return a.jsx(vh.Provider,{value:Tl,children:t})}const pk=3e3,Zz=pk;function Kz(t){const[s,o]=y.useState("connecting"),r=y.useRef(t.onSessionEvent);r.current=t.onSessionEvent;const c=y.useRef(t.onDomainEvent);c.current=t.onDomainEvent;const d=y.useRef(t.onConnect);d.current=t.onConnect;const u=y.useRef(t.onDisconnect);return u.current=t.onDisconnect,y.useEffect(()=>{let p=!1,m,g;async function v(){var x,S;if(p)return;Promise.resolve((x=d.current)==null?void 0:x.call(d)).catch(()=>{});let _=!1;const b=()=>{!_&&!p&&(_=!0,o("connected"))};g=setTimeout(b,Zz);try{const j=Be.streamEvents({});for await(const w of j){if(b(),p)break;const T=w.event;if(T.case==="sessionEvent"){const C=T.value;r.current({sessionId:C.sessionId,type:C.type,timestamp:C.timestamp,content:C.content,raw:C.raw})}else if(T.case==="domainEvent"){const C=T.value;c.current({id:C.id,type:C.type,timestamp:C.timestamp,payloadJson:C.payloadJson})}}}catch(j){if(clearTimeout(g),j instanceof da&&j.code===D_.Unauthenticated){window.location.href=VN;return}}clearTimeout(g),p||(o("connecting"),(S=u.current)==null||S.call(u),m=setTimeout(()=>{v().catch(()=>{})},pk))}return v().catch(()=>{}),()=>{p=!0,clearTimeout(m),clearTimeout(g)}},[]),{connectionStatus:s}}const jm=["core","orchestration","scheduling"],mk=y.createContext({pluginNames:[...jm],loading:!1,error:void 0});function Yz({children:t}){const[s,o]=y.useState([...jm]),[r,c]=y.useState(!0),[d,u]=y.useState(void 0);return y.useEffect(()=>{let p=!1;return fetch("/api/manifest").then(async m=>{if(!m.ok)throw new Error(`Manifest fetch returned ${m.status}`);return m.json()}).then(m=>{p||(o(m.plugins.map(g=>g.name)),c(!1))}).catch(m=>{p||(o([...jm]),u(m instanceof Error?m:new Error(String(m))),c(!1))}),()=>{p=!0}},[]),a.jsx(mk.Provider,{value:{pluginNames:s,loading:r,error:d},children:t})}function xh(){return y.useContext(mk)}const Jz=new Set(["dashboard","chat","environments","settings"]),Wz=new Set(["tasks","findings"]),Xz=new Set(["knowledge"]),hk={core:{navItems:ld.filter(t=>Jz.has(t.view)),domainHookKeys:["environments","sessions","workspaces","tokens","credentials","codespaces","streams","plugins"]},orchestration:{navItems:ld.filter(t=>Wz.has(t.view)),domainHookKeys:["tasks","findings","personas","notifications"]},scheduling:{navItems:[],domainHookKeys:["schedules"]},knowledge:{navItems:ld.filter(t=>Xz.has(t.view)),domainHookKeys:["knowledge"]}};function Qz(t){return t.flatMap(s=>{var o;return((o=hk[s])==null?void 0:o.navItems)??[]})}function eH(t){return new Set(t.flatMap(s=>{var o;return((o=hk[s])==null?void 0:o.domainHookKeys)??[]}))}function tH(t){return{id:t.id,displayName:t.displayName,adapterType:t.adapterType,adapterConfig:t.adapterConfig||"{}",status:t.status,bootstrapped:t.bootstrapped,githubAccountId:t.githubAccountId||""}}function p_(t){return{id:t.id,environmentId:t.environmentId,runtime:t.runtime,status:t.status,prompt:t.prompt,startedAt:t.startedAt,endedAt:t.endedAt||void 0,error:t.error||void 0,endReason:t.endReason||void 0,personaId:t.personaId||void 0,inputTokens:t.inputTokens,outputTokens:t.outputTokens,costMillicents:t.costMillicents}}function nH(t){return{sessionId:t.sessionId,eventType:R_(t.type),timestamp:t.timestamp,content:t.content,raw:t.raw||void 0}}function sH(t){return{id:t.id,name:t.name,description:t.description,repoUrl:t.repoUrl,linkedEnvironmentIds:[...t.linkedEnvironmentIds],status:q2(t.status),workingDirectory:t.workingDirectory,useWorktrees:t.useWorktrees,defaultPersonaId:t.defaultPersonaId,tokenBudget:t.tokenBudget,costBudgetMillicents:t.costBudgetMillicents,createdAt:t.createdAt,updatedAt:t.updatedAt}}function m_(t){return{id:t.id,workspaceId:t.workspaceId??void 0,title:t.title,description:t.description,status:G2(t.status),branch:t.branch,latestSessionId:t.latestSessionId,dependsOn:[...t.dependsOn],sortOrder:t.sortOrder,createdAt:t.createdAt,startedAt:t.startedAt||void 0,completedAt:t.completedAt||void 0,parentTaskId:t.parentTaskId,depth:t.depth,childTaskIds:[...t.childTaskIds],canDecompose:t.canDecompose,defaultPersonaId:t.defaultPersonaId,workpad:t.workpad,tokenBudget:t.tokenBudget,costBudgetMillicents:t.costBudgetMillicents}}function Pp(t){return{id:t.id,workspaceId:t.workspaceId,taskId:t.taskId,sessionId:t.sessionId,category:t.category,title:t.title,content:t.content,tags:[...t.tags],createdAt:t.createdAt}}function aH(t){return{name:t.name,tokenType:t.type,envVar:t.envVar,filePath:t.filePath,expiresAt:t.expiresAt}}function iH(t){return{claude:F2(t.claude),github:$c(t.github),copilot:$c(t.copilot),codex:$c(t.codex),goose:$c(t.goose)}}function oH(t){return{name:t.name,repository:t.repository,state:t.state,gitStatus:t.gitStatus}}function Up(t){return{id:t.id,name:t.name,description:t.description,systemPrompt:t.systemPrompt,toolConfig:t.toolConfig?JSON.stringify({allowedTools:[...t.toolConfig.allowedTools],disallowedTools:[...t.toolConfig.disallowedTools]}):"{}",runtime:t.runtime,model:t.model,maxTurns:t.maxTurns,mcpServers:JSON.stringify(t.mcpServers.map(s=>({name:s.name,command:s.command,args:[...s.args],tools:[...s.tools]}))),createdAt:t.createdAt,updatedAt:t.updatedAt,type:t.type||"agent",script:t.script,allowedMcpTools:[...t.allowedMcpTools]}}function rH(t){return{inputTokens:t.inputTokens,outputTokens:t.outputTokens,costMillicents:t.costMillicents,sessionCount:t.sessionCount}}function Vp(t){return{id:t.id,title:t.title,description:t.description,scheduleExpression:t.scheduleExpression,personaId:t.personaId,workspaceId:t.workspaceId,parentTaskId:t.parentTaskId,enabled:t.enabled,lastRunAt:t.lastRunAt,nextRunAt:t.nextRunAt,runCount:t.runCount,createdAt:t.createdAt,updatedAt:t.updatedAt}}function ed(t,s=0){return{id:t.id,label:t.title||t.label||t.id,kind:t.kind,category:t.category||void 0,sourceType:t.sourceType||void 0,sourceId:t.sourceId||void 0,content:t.content||void 0,tags:t.tags.length>0?[...t.tags]:void 0,workspaceId:t.workspaceId||void 0,createdAt:t.createdAt||void 0,updatedAt:t.updatedAt||void 0,val:s}}function qp(t){return{source:t.fromId,target:t.toId,type:t.type}}function lH(t){return{subscriptionId:t.subscriptionId,sessionId:t.sessionId,fd:t.fd,permission:t.permission,deliveryMode:t.deliveryMode,createdBySpawn:t.createdBySpawn}}function cH(t){return{id:t.id,name:t.name,subscriberCount:t.subscriberCount,messageBufferDepth:t.messageBufferDepth,subscribers:t.subscribers.map(lH)}}function us(){const[t,s]=y.useState(!1),o=y.useRef(0),r=y.useCallback(c=>(o.current++,o.current===1&&s(!0),c.finally(()=>{o.current--,o.current===0&&s(!1)})),[]);return{loading:t,track:r}}const h_=5e3;function Kr(t){return t instanceof da?t.message:"Operation failed"}function dH(){const[t,s]=y.useState([]),{loading:o,track:r}=us(),[c,d]=y.useState({}),[u,p]=y.useState(""),m=y.useCallback(()=>{p("")},[]),g=y.useCallback(async()=>{try{const C=await r(Be.listEnvironments({}));s(C.environments.map(tH))}catch{}},[r]),v=y.useCallback(C=>{switch(C.type){case"environment.added":return!0;case"environment.removed":{const A=C.payload.environmentId;return A&&(s(L=>L.filter(E=>E.id!==A)),d(L=>{const E={...L};return delete E[A],E})),!0}case"environment.changed":return g().catch(()=>{}),!0;case"environment.provision_progress":{const A=C.payload;if(typeof A.environmentId!="string"||typeof A.stage!="string"||typeof A.message!="string"||typeof A.progress!="number")return lk("environment.provision_progress","invalid payload"),!0;if(d(L=>({...L,[A.environmentId]:{stage:A.stage,message:A.message,progress:A.progress}})),A.stage==="ready"){const L=A.environmentId;setTimeout(()=>{d(E=>{const M={...E};return delete M[L],M})},h_)}return!0}default:return!1}},[g]),_=y.useCallback(C=>{var A;if(C.type==="environments"){const L=Array.isArray((A=C.payload)==null?void 0:A.environments)?C.payload.environments:[];return s(L),!0}return!1},[]),b=y.useCallback(async(C,A,L,E)=>{p("");try{await Be.addEnvironment({displayName:C,adapterType:A,adapterConfig:JSON.stringify(L??{}),githubAccountId:E??""})}catch(M){p(Kr(M))}},[]),x=y.useCallback(async(C,A)=>{p("");try{await Be.updateEnvironment({id:C,displayName:A.displayName,adapterConfig:A.adapterConfig?JSON.stringify(A.adapterConfig):void 0,githubAccountId:A.githubAccountId})}catch(L){p(Kr(L))}},[]),S=y.useCallback(async(C,A)=>{p("");try{const L=Be.provisionEnvironment({id:C,force:A??!1});for await(const E of L)d(M=>({...M,[C]:{stage:E.stage,message:E.message,progress:E.progress}})),E.stage==="ready"&&setTimeout(()=>{d(M=>{const H={...M};return delete H[C],H})},h_)}catch(L){d(E=>{const M={...E};return delete M[C],M}),p(Kr(L))}},[]),j=y.useCallback(async C=>{p("");try{await Be.stopEnvironment({id:C})}catch(A){p(Kr(A))}},[]),w=y.useCallback(async C=>{p("");try{await Be.removeEnvironment({id:C})}catch(A){p(Kr(A))}},[]);return{environments:t,environmentsLoading:o,provisionStatus:c,operationError:u,clearOperationError:m,loadEnvironments:g,addEnvironment:b,updateEnvironment:x,provisionEnvironment:S,stopEnvironment:j,removeEnvironment:w,handleEvent:v,handleLegacyMessage:_,domainHook:{onConnect:()=>g(),onDisconnect:()=>{},handleEvent:v}}}const Gp=new Set(["pending","running","idle"]),uH=new Set(["completed","failed","interrupted","hibernating","suspended"]),g_=["pending","running","idle"];function fH(){const[t,s]=y.useState([]),{loading:o,track:r}=us(),[c,d]=y.useState([]),[u,p]=y.useState(0),[m,g]=y.useState(void 0),[v,_]=y.useState({}),b=y.useCallback(async()=>{try{const z=(await r(Be.listSessions({}))).sessions.map(p_);s(Y=>{const V=new Map(Y.map(Q=>[Q.id,Q]));return z.map(Q=>{const ge=V.get(Q.id),X=ge==null?void 0:ge.status;return!X||X===Q.status?Q:uH.has(X)&&Gp.has(Q.status)?{...Q,status:X,...ge.endReason!==void 0?{endReason:ge.endReason}:{}}:Gp.has(X)&&Gp.has(Q.status)&&g_.indexOf(X)>g_.indexOf(Q.status)?{...Q,status:X}:Q})})}catch{}},[r]),x=y.useCallback(D=>{if(D.type!=="session_event")return!1;if(!_z(D.payload))return lk("session_event","payload is not a valid SessionEvent"),!0;const z=D.payload;let Y=0;if(d(V=>{const Q=[...V,z];return Q.length>Ao?(Y=Q.length-Ao,Q.slice(-Ao)):Q}),Y>0&&p(V=>V+Y),z.eventType==="usage")try{const V=JSON.parse(z.content),Q=Number(V.input_tokens)||0,ge=Number(V.output_tokens)||0,X=Number(V.cost_millicents)||0;(Q>0||ge>0||X>0)&&s(re=>re.map(B=>B.id===z.sessionId?{...B,inputTokens:(B.inputTokens??0)+Q,outputTokens:(B.outputTokens??0)+ge,costMillicents:(B.costMillicents??0)+X}:B))}catch{}if(z.eventType==="status"){const V=ck(z.content),Q=dk(z.content);s(ge=>ge.some(re=>re.id===z.sessionId)?ge.map(re=>re.id===z.sessionId?{...re,status:V,...Q!==void 0?{endReason:Q}:{}}:re):[...ge,{id:z.sessionId,environmentId:"",runtime:"",status:V,prompt:"",startedAt:z.timestamp,...Q!==void 0?{endReason:Q}:{}}])}return!0},[]),S=y.useCallback(D=>{x({type:"session_event",payload:D})},[x]),j=y.useCallback(D=>{var z,Y,V,Q,ge;switch(D.type){case"sessions":{const X=Array.isArray((z=D.payload)==null?void 0:z.sessions)?D.payload.sessions:[];return s(X),!0}case"spawned":{const X=(Y=D.payload)==null?void 0:Y.sessionId;return typeof X=="string"&&X&&g(X),b().catch(()=>{}),!0}case"session_events":{const X=Array.isArray((V=D.payload)==null?void 0:V.events)?D.payload.events:[];return X.length>0&&d(X),!0}case"task_sessions":{const X=(Q=D.payload)==null?void 0:Q.taskId;if(typeof X=="string"&&X){const re=Array.isArray((ge=D.payload)==null?void 0:ge.sessions)?D.payload.sessions:[];_(B=>({...B,[X]:re}))}return!0}default:return!1}},[b]),w=y.useCallback(async(D,z,Y,V,Q)=>{try{const ge=await Be.spawnAgent({environmentId:D,prompt:z,personaId:Y||"",workingDirectory:V||"",workspaceId:Q||""});g(ge.id),await b()}catch{}},[b]),T=y.useCallback(async(D,z)=>{await Be.sendInput({sessionId:D,text:z})},[]),C=y.useCallback(async D=>{try{await Be.killAgent({id:D,graceful:!1})}catch{}},[]),A=y.useCallback(async D=>{try{await Be.killAgent({id:D,graceful:!0})}catch{}},[]),L=y.useCallback(async D=>{try{const Y=(await Be.getSessionEvents({id:D})).events.map(nH);if(Y.length>0){let V=0;d(Q=>{const ge=new Set;for(const B of Q)B.sessionId===D&&ge.add(`${B.timestamp}|${B.eventType}`);const X=Y.filter(B=>!ge.has(`${B.timestamp}|${B.eventType}`)),re=[...Q,...X].sort((B,R)=>B.sessionId!==R.sessionId?0:B.timestamp.localeCompare(R.timestamp));return re.length>Ao?(V=re.length-Ao,re.slice(-Ao)):re}),V>0&&p(Q=>Q+V)}}catch{}},[]),E=y.useCallback(()=>{d([]),p(0)},[]),M=y.useCallback(async D=>{try{const Y=(await Be.getTaskSessions({id:D})).sessions.map(p_);_(V=>({...V,[D]:Y}))}catch{}},[]);return{sessions:t,sessionsLoading:o,events:c,eventsDropped:u,lastSpawnedId:m,taskSessions:v,loadSessions:b,spawn:w,sendInput:T,kill:C,stopGraceful:A,loadSessionEvents:L,clearEvents:E,loadTaskSessions:M,handleMessage:x,handleSessionEvent:S,handleLegacyMessage:j,domainHook:{onConnect:()=>b(),onDisconnect:()=>{E()},handleEvent:()=>!1}}}function v_(t){return t instanceof da?t.message:"Operation failed"}function pH(){const[t,s]=y.useState([]),{loading:o,track:r}=us(),[c,d]=y.useState(!1),[u,p]=y.useState(""),m=y.useCallback(async()=>{try{const C=await r(Be.listWorkspaces({}));s(C.workspaces.map(sH))}catch{}},[r]),g=y.useCallback(C=>{switch(C.type){case"workspace.created":return d(!1),m().catch(()=>{}),!0;case"workspace.archived":case"workspace.updated":return m().catch(()=>{}),!0;default:return!1}},[m]),v=y.useCallback(()=>{d(!1)},[]),_=y.useCallback(async(C,A,L,E,M,H,D,z,Y)=>{d(!0);try{await Be.createWorkspace({name:C,description:A||"",repoUrl:L||"",environmentId:E||"",defaultPersonaId:M||void 0,useWorktrees:H??!0,workingDirectory:D||void 0}),d(!1),z==null||z()}catch(V){d(!1);const Q=V instanceof da?V.message:"Failed to create workspace";Y==null||Y(Q)}},[]),b=y.useCallback(async C=>{try{await Be.archiveWorkspace({id:C})}catch{}},[]),x=y.useCallback(async(C,A)=>{try{await Be.updateWorkspace({id:C,...A})}catch{}},[]),S=y.useCallback(()=>{p("")},[]),j=y.useCallback(async(C,A)=>{try{p(""),await Be.linkEnvironment({workspaceId:C,environmentId:A}),await m().catch(()=>{})}catch(L){p(v_(L))}},[m]),w=y.useCallback(async(C,A)=>{try{p(""),await Be.unlinkEnvironment({workspaceId:C,environmentId:A}),await m().catch(()=>{})}catch(L){p(v_(L))}},[m]);return{workspaces:t,workspacesLoading:o,workspaceCreating:c,loadWorkspaces:m,createWorkspace:_,archiveWorkspace:b,updateWorkspace:x,linkEnvironment:j,unlinkEnvironment:w,linkOperationError:u,clearLinkOperationError:S,handleEvent:g,onDisconnect:v,domainHook:{onConnect:()=>m(),onDisconnect:v,handleEvent:g}}}function mH(){const[t,s]=y.useState([]),{loading:o,track:r}=us(),[c,d]=y.useState(void 0),u=y.useRef({}),p=y.useCallback(async E=>{try{const H=(await mn.listTasks({workspaceId:E})).tasks.map(m_);s(D=>[...D.filter(z=>z.workspaceId!==E),...H])}catch{}},[]),m=y.useCallback(async()=>{try{const M=(await r(mn.listTasks({}))).tasks.map(m_);s(H=>{const D=new Set(M.map(z=>z.id));return[...H.filter(z=>!D.has(z.id)),...M]})}catch{}},[r]),g=y.useCallback((E,M)=>{const H=D=>{clearTimeout(u.current[D]),u.current[D]=setTimeout(()=>{delete u.current[D],p(D).catch(()=>{})},200)};E?H(E):M&&s(D=>{const z=D.find(Y=>Y.id===M);return z!=null&&z.workspaceId?H(z.workspaceId):m().catch(()=>{}),D})},[p,m]),v=y.useCallback(E=>{const M=E.payload;switch(E.type){case"task.created":{const H=typeof M.workspaceId=="string"?M.workspaceId:"";return H&&p(H).catch(()=>{}),!0}case"task.started":{const H=typeof M.taskId=="string"?M.taskId:"",D=typeof M.sessionId=="string"?M.sessionId:"",z=typeof M.workspaceId=="string"?M.workspaceId:"";return d(Y=>H&&Y===H?void 0:Y),D&&H&&s(Y=>Y.map(V=>V.id===H?{...V,latestSessionId:D}:V)),g(z,H),!0}case"task.completed":case"task.deleted":case"task.reparented":case"task.updated":{const H=typeof M.workspaceId=="string"?M.workspaceId:"",D=typeof M.taskId=="string"?M.taskId:"";return d(z=>D&&z===D?void 0:z),g(H,D),!0}default:return!1}},[p,g]),_=y.useCallback(()=>{d(void 0)},[]),b=y.useCallback(E=>{var M,H;if(E.type==="tasks"){const D=Array.isArray((M=E.payload)==null?void 0:M.tasks)?E.payload.tasks:[],z=typeof((H=E.payload)==null?void 0:H.workspaceId)=="string"&&E.payload.workspaceId?E.payload.workspaceId:"";return s(z?Y=>[...Y.filter(V=>V.workspaceId!==z),...D]:Y=>{const V=new Set(D.map(Q=>Q.id));return[...Y.filter(Q=>!V.has(Q.id)),...D]}),!0}return!1},[]),x=y.useCallback(async(E,M,H,D,z,Y,V,Q,ge)=>{try{await mn.createTask({workspaceId:E,title:M,description:H||"",dependsOn:D||[],parentTaskId:z||"",defaultPersonaId:Y||void 0,canDecompose:V??void 0}),Q==null||Q()}catch(X){const re=X instanceof da?X.message:"Failed to create task";ge==null||ge(re)}},[]),S=y.useCallback(async(E,M,H,D)=>{d(E);try{await mn.startTask({taskId:E,personaId:M||"",environmentId:H||"",notes:D||""})}catch(z){if(z instanceof da&&z.code===D_.ResourceExhausted)return;throw d(void 0),z}},[]),j=y.useCallback(async E=>{try{await mn.stopTask({id:E})}catch{}},[]),w=y.useCallback(async E=>{try{await mn.completeTask({id:E})}catch{}},[]),T=y.useCallback(async E=>{try{await mn.resumeTask({id:E})}catch{}},[]),C=y.useCallback(async(E,M,H,D,z)=>{try{await mn.updateTask({id:E,title:M,description:H,dependsOn:D,...z!==void 0?{defaultPersonaId:z}:{}})}catch{}},[]),A=y.useCallback(async E=>{try{await mn.deleteTask({id:E})}catch{}},[]);return{tasks:t,tasksLoading:o,taskStartingId:c,loadTasks:p,loadAllTasks:m,createTask:x,startTask:S,stopTask:j,completeTask:w,resumeTask:T,updateTask:C,deleteTask:A,handleEvent:v,onDisconnect:_,handleLegacyMessage:b,domainHook:{onConnect:()=>m(),onDisconnect:_,handleEvent:v}}}function hH(){const[t,s]=y.useState([]),[o,r]=y.useState(void 0),[c,d]=y.useState(!1),{loading:u,track:p}=us(),m=y.useCallback(async S=>{try{const j=await p(mn.queryFindings({workspaceId:S}));s(j.findings.map(Pp))}catch{}},[p]),g=y.useCallback(async()=>{try{const S=await p(mn.queryFindings({workspaceId:""}));s(S.findings.map(Pp))}catch{}},[p]),v=y.useCallback(async S=>{r(void 0),d(!0);try{const j=await mn.getFinding({id:S});r(Pp(j))}catch{r(void 0)}finally{d(!1)}},[]),_=y.useCallback(S=>{if(S.type==="finding.posted"){const j=typeof S.payload.workspaceId=="string"?S.payload.workspaceId:"";return j&&m(j).catch(()=>{}),!0}return!1},[m]),b=y.useCallback(async(S,j,w,T,C)=>{try{await mn.postFinding({workspaceId:S,title:j,content:w,category:T??"general",tags:C??[]})}catch{}},[]);return{findings:t,selectedFinding:o,findingLoading:c,findingsLoading:u,loadFindings:m,loadAllFindings:g,loadFinding:v,postFinding:b,handleEvent:_,domainHook:{onConnect:()=>g(),onDisconnect:()=>{},handleEvent:_}}}function gH(){const[t,s]=y.useState([]),{loading:o,track:r}=us(),c=y.useCallback(async()=>{try{const g=await r(Be.listTokens({}));s(g.tokens.map(aH))}catch{}},[r]),d=y.useCallback(g=>g.type==="token.changed"?(c().catch(()=>{}),!0):!1,[c]),u=y.useCallback(async(g,v,_,b,x)=>{try{await Be.setToken({name:g,value:v,type:_,envVar:b,filePath:x})}catch{}},[]),p=y.useCallback(async g=>{try{await Be.deleteToken({name:g})}catch{}},[]);return{tokens:t,tokensLoading:o,loadTokens:c,setToken:u,deleteToken:p,handleEvent:d,domainHook:{onConnect:()=>c(),onDisconnect:()=>{},handleEvent:d}}}function vH(){const[t,s]=y.useState({claude:"off",github:"off",copilot:"off",codex:"off",goose:"off"}),{loading:o,track:r}=us(),c=y.useCallback(async()=>{try{const m=await r(Be.getCredentialProviders({}));s(iH(m))}catch{}},[r]),d=y.useCallback(m=>m.type==="credential.providers_changed"?(kz(m.payload)&&s(m.payload),!0):!1,[]),u=y.useCallback(async m=>{const g=[{provider:"claude",value:m.claude},{provider:"github",value:m.github},{provider:"copilot",value:m.copilot},{provider:"codex",value:m.codex},{provider:"goose",value:m.goose}];await Promise.allSettled(g.map(({provider:v,value:_})=>Be.setCredentialProvider({provider:v,value:_})))},[]);return{credentialProviders:t,credentialsLoading:o,loadCredentials:c,updateCredentialProviders:u,handleEvent:d,domainHook:{onConnect:()=>c(),onDisconnect:()=>{},handleEvent:d}}}function yH(){const[t,s]=y.useState([]),[o,r]=y.useState(""),[c,d]=y.useState(""),[u,p]=y.useState(!1),m=y.useCallback(async _=>{try{const b=await Be.listCodespaces({githubAccountId:_??""});s(b.codespaces.map(oH)),d(b.error)}catch{}},[]),g=y.useCallback(async(_,b)=>{p(!0),r("");try{await Be.createCodespace({repo:_,machine:b??""}),p(!1),await m()}catch(x){p(!1);const S=x instanceof da?x.message:"Failed to create codespace";r(S)}},[m]);return{codespaces:t,codespaceError:o,codespaceListError:c,codespaceCreating:u,listCodespaces:m,createCodespace:g,domainHook:{onConnect:()=>m(),onDisconnect:()=>{},handleEvent:()=>!1}}}function bH(){const[t,s]=y.useState([]),{loading:o,track:r}=us(),c=y.useCallback(async()=>{try{const v=await r(mn.listPersonas({}));s(v.personas.map(Up))}catch{}},[r]),d=y.useCallback(v=>{switch(v.type){case"persona.created":case"persona.updated":case"persona.deleted":return c().catch(()=>{}),!0;default:return!1}},[c]),u=y.useCallback(async(v,_,b,x,S,j,w,T,C)=>{const A=await mn.createPersona({name:v,description:_,systemPrompt:b,runtime:x||"",model:S||"",maxTurns:j||0,type:w||"agent",script:T||"",allowedMcpTools:C||[]}),L=Up(A);return s(E=>[...E.filter(M=>M.id!==L.id),L]),L},[]),p=y.useCallback(async(v,_,b,x,S,j,w,T,C,A)=>{const L={id:v};_!==void 0&&(L.name=_),b!==void 0&&(L.description=b),x!==void 0&&(L.systemPrompt=x),S!==void 0&&(L.runtime=S),j!==void 0&&(L.model=j),w!==void 0&&(L.maxTurns=w),T!==void 0&&(L.type=T),C!==void 0&&(L.script=C),A!==void 0&&(L.allowedMcpTools={tools:A});const E=await mn.updatePersona(L),M=Up(E);return s(H=>H.map(D=>D.id===M.id?M:D)),M},[]),m=y.useCallback(async v=>{await mn.deletePersona({id:v}),s(_=>_.filter(b=>b.id!==v))},[]);return{personas:t,personasLoading:o,loadPersonas:c,createPersona:u,updatePersona:p,deletePersona:m,handleEvent:d,domainHook:{onConnect:()=>c(),onDisconnect:()=>{},handleEvent:d}}}function _H(){const[t,s]=y.useState([]),{loading:o,track:r}=us(),c=y.useRef(void 0),d=y.useCallback(async()=>{try{const _=await r(Hc.listSchedules({}));s(_.schedules.map(Vp))}catch{}},[r]),u=y.useCallback(_=>{switch(_.type){case"schedule.created":case"schedule.updated":case"schedule.deleted":return d().catch(()=>{}),!0;case"schedule.fired":return clearTimeout(c.current),c.current=setTimeout(()=>{d().catch(()=>{})},500),!0;default:return!1}},[d]),p=y.useCallback(async(_,b,x,S,j,w)=>{const T=await Hc.createSchedule({title:_,description:b,scheduleExpression:x,personaId:S,workspaceId:j||"",parentTaskId:w||""}),C=Vp(T);return s(A=>[...A.filter(L=>L.id!==C.id),C]),C},[]),m=y.useCallback(async(_,b)=>{const x={id:_};b.title!==void 0&&(x.title=b.title),b.description!==void 0&&(x.description=b.description),b.scheduleExpression!==void 0&&(x.scheduleExpression=b.scheduleExpression),b.personaId!==void 0&&(x.personaId=b.personaId),b.enabled!==void 0&&(x.enabled=b.enabled);const S=await Hc.updateSchedule(x),j=Vp(S);return s(w=>w.map(T=>T.id===j.id?j:T)),j},[]),g=y.useCallback(async _=>{await Hc.deleteSchedule({id:_}),s(b=>b.filter(x=>x.id!==_))},[]);return{schedules:t,schedulesLoading:o,loadSchedules:d,createSchedule:p,updateSchedule:m,deleteSchedule:g,handleEvent:u,domainHook:{onConnect:()=>d(),onDisconnect:()=>{clearTimeout(c.current)},handleEvent:u}}}function xH(t){if(t)try{return JSON.parse(t)}catch{return}}function kH(){const[t,s]=y.useState(new Map),[o,r]=y.useState([]),[c,d]=y.useState(void 0),[u,p]=y.useState(void 0),[m,g]=y.useState(!1),[v,_]=y.useState(""),b=y.useRef(""),x=y.useCallback(async E=>{const M=E??"";b.current=M,_(""),g(!0);try{const H=await Pc.listRecentKnowledgeNodes({limit:30,workspaceId:M}),D=new Map,z=[];for(const Y of H.nodes)D.set(Y.id,ed(Y));for(const Y of H.edges)z.push(qp(Y));for(const Y of z){const V=D.get(Y.source);V&&(V.val+=1);const Q=D.get(Y.target);Q&&(Q.val+=1)}s(D),r(z)}catch{}finally{g(!1)}},[]),S=y.useCallback(async E=>{if(E.trim()){_(E),p(void 0),d(void 0),g(!0);try{const M=await Pc.searchKnowledge({query:E,limit:20,workspaceId:b.current}),H=new Map,D=[];for(const z of M.results){z.node&&H.set(z.node.id,ed(z.node,z.edges.length));for(const Y of z.edges)D.push(qp(Y))}s(H),r(D)}catch{}finally{g(!1)}}},[]),j=y.useCallback(()=>{x(b.current).catch(()=>{})},[x]),w=y.useCallback(async E=>{p(E);try{const M=await Pc.getKnowledgeNode({id:E});if(!M.node){d(void 0);return}d({node:ed(M.node,M.edges.length),edges:M.edges.map(H=>({fromId:H.fromId,toId:H.toId,type:H.type,metadata:xH(H.metadataJson)}))})}catch{d(void 0)}},[]),T=y.useCallback(()=>{p(void 0),d(void 0)},[]),C=y.useCallback(async E=>{try{const M=await Pc.expandKnowledgeNode({id:E,depth:1});s(H=>{const D=new Map(H);for(const z of M.nodes)D.has(z.id)||D.set(z.id,ed(z));return D}),r(H=>{const D=new Set(H.map(Y=>`${Y.source}:${Y.target}:${Y.type}`)),z=[];for(const Y of M.edges){const V=qp(Y),Q=`${V.source}:${V.target}:${V.type}`;D.has(Q)||z.push(V)}return[...H,...z]})}catch{}},[]),A=y.useCallback(E=>!1,[]),L={onConnect:async()=>{},onDisconnect:()=>{},handleEvent:A};return{graphData:{nodes:[...t.values()],links:o},selectedNode:c,selectedId:u,loading:m,searchQuery:v,search:S,clearSearch:j,selectNode:w,clearSelection:T,expandNode:C,loadRecent:x,handleEvent:A,domainHook:L}}function SH(){const t=y.useRef("default");y.useEffect(()=>{typeof Notification>"u"||(t.current=Notification.permission)},[]);function s(r){if(r.type!=="notification.escalated")return!1;if(typeof Notification>"u")return!0;if(t.current==="default")return Notification.requestPermission().then(u=>{t.current=u}).catch(()=>{}),!0;if(t.current!=="granted")return!0;const c=r.payload,d=new Notification(c.title||"Agent needs input",{body:c.message||"An agent is waiting for your input.",tag:c.escalationId,icon:"/icon-192x192.png"});return d.onclick=()=>{window.focus(),c.taskUrl&&(window.location.href=c.taskUrl),d.close()},!0}return{handleEvent:s,domainHook:{onConnect:async()=>{},onDisconnect:()=>{},handleEvent:s}}}function jH(){const[t,s]=y.useState([]),[o,r]=y.useState(!1),[c,d]=y.useState(!1),{loading:u,track:p}=us(),m=y.useRef(0),g=y.useCallback(async()=>{const b=m.current;try{const x=await p(Be.listStreams({}));m.current===b&&(s(x.streams.map(cH)),d(!1))}catch{m.current===b&&d(!0)}finally{m.current===b&&r(!0)}},[p]),v=y.useCallback(b=>!1,[]);return{streams:t,streamsLoading:u,streamsLoadedOnce:o,streamsLoadError:c,loadStreams:g,handleEvent:v,domainHook:{onConnect:g,onDisconnect:()=>{m.current+=1,s([]),r(!1),d(!1)},handleEvent:v}}}function TH(){const[t,s]=y.useState([]),{loading:o,track:r}=us(),c=y.useCallback(async()=>{try{const m=await r(Be.listPlugins({}));s(m.plugins.map(g=>({name:g.name,description:g.description,enabled:g.enabled,required:g.required,loaded:g.loaded})))}catch{}},[r]),d=y.useCallback(m=>m.type==="plugin.changed"?(c().catch(()=>{}),!0):!1,[c]),u=y.useCallback(async(m,g)=>{try{const v=await Be.setPluginEnabled({name:m,enabled:g});s(_=>_.map(b=>b.name===v.name?{...b,enabled:v.enabled}:b))}catch{}},[]);return{plugins:t,pluginsLoading:o,loadPlugins:c,setPluginEnabled:u,domainHook:{onConnect:()=>c(),onDisconnect:()=>{},handleEvent:d}}}function wH(){const[t,s]=y.useState([]),{loading:o,track:r}=us(),c=y.useCallback(async()=>{try{const _=await r(Be.listGitHubAccounts({}));s(_.accounts.map(b=>({id:b.id,label:b.label,username:b.username,isDefault:b.isDefault,createdAt:b.createdAt})))}catch{}},[r]),d=y.useCallback(_=>_.type==="github_account.changed"?(c().catch(()=>{}),!0):!1,[c]),u=y.useCallback(async(_,b,x,S)=>{const j=await Be.addGitHubAccount({label:_,token:b,username:x,isDefault:S});s(w=>[...j.isDefault?w.map(C=>({...C,isDefault:!1})):w,{id:j.id,label:j.label,username:j.username,isDefault:j.isDefault,createdAt:j.createdAt}])},[]),p=y.useCallback(async(_,b)=>{const x=await Be.updateGitHubAccount({id:_,...b});s(S=>S.map(j=>j.id===x.id?{...j,label:x.label,username:x.username,isDefault:x.isDefault}:b.isDefault?{...j,isDefault:!1}:j))},[]),m=y.useCallback(async _=>{await Be.removeGitHubAccount({id:_}),s(b=>b.filter(x=>x.id!==_))},[]),g=y.useCallback(async()=>{const _=await Be.importGitHubAccounts({});return _.imported>0&&await c(),{imported:_.imported,usernames:_.usernames}},[c]);return{githubAccounts:t,githubAccountsLoading:o,loadGitHubAccounts:c,addGitHubAccount:u,updateGitHubAccount:p,removeGitHubAccount:m,importGitHubAccounts:g,domainHook:{onConnect:()=>c(),onDisconnect:()=>{},handleEvent:d}}}function NH(){const[t,s]=y.useState(""),[o,r]=y.useState(void 0),[c,d]=y.useState({}),{pluginNames:u}=xh(),p=eH(u),m=dH(),g=fH(),v=pH(),_=mH(),b=hH(),x=gH(),S=vH(),j=yH(),w=bH(),T=_H(),C=kH(),A=SH(),L=jH(),E=TH(),M=wH(),H=[...p.has("environments")?[m.domainHook]:[],...p.has("sessions")?[g.domainHook]:[],...p.has("workspaces")?[v.domainHook]:[],...p.has("tasks")?[_.domainHook]:[],...p.has("findings")?[b.domainHook]:[],...p.has("tokens")?[x.domainHook]:[],...p.has("credentials")?[S.domainHook]:[],...p.has("codespaces")?[j.domainHook]:[],...p.has("personas")?[w.domainHook]:[],...p.has("schedules")?[T.domainHook]:[],...p.has("knowledge")?[C.domainHook]:[],...p.has("notifications")?[A.domainHook]:[],...p.has("streams")?[L.domainHook]:[],...p.has("plugins")?[E.domainHook]:[],M.domainHook],{connectionStatus:D}=Kz({onSessionEvent:Z=>{g.handleSessionEvent({sessionId:Z.sessionId,eventType:R_(Z.type),timestamp:Z.timestamp,content:Z.content,raw:Z.raw||void 0})},onDomainEvent:Z=>{try{const me=JSON.parse(Z.payloadJson);X({id:Z.id,type:Z.type,timestamp:Z.timestamp,payload:me})}catch{console.warn("[grackle] Failed to parse domain event payloadJson:",Z.payloadJson)}},onConnect:re,onDisconnect:B}),z="default_persona_id",Y="onboarding_completed",V=y.useCallback(async Z=>{const me=await Be.setSetting({key:z,value:Z});s(me.value)},[]),Q=y.useCallback(async()=>{r(!0);try{await Be.setSetting({key:Y,value:"true"})}catch{}},[]),ge=y.useCallback(async(Z,me)=>{try{const q=await Be.getUsage({scope:Z,id:me}),le=`${Z}:${me}`;d(de=>({...de,[le]:rH(q)}))}catch{}},[]);function X(Z){const me=Z.payload.key,q=Z.payload.value;if(Z.type==="setting.changed"){me===z&&s(q??""),me===Y&&r(q==="true");return}for(const le of H)if(le.handleEvent(Z))break;(Z.type==="environment.removed"||Z.type==="task.started")&&g.loadSessions().catch(()=>{}),(Z.type==="session.started"||Z.type==="session.stopped")&&L.loadStreams().catch(()=>{})}async function re(){for(const Z of H)Z.onConnect().catch(()=>{});try{const Z=await Be.getSetting({key:z});s(Z.value)}catch{}try{const Z=await Be.getSetting({key:Y});r(Z.value==="true")}catch{}}function B(){H.forEach(Z=>Z.onDisconnect())}const R=y.useCallback(()=>{m.loadEnvironments().catch(()=>{}),g.loadSessions().catch(()=>{}),v.loadWorkspaces().catch(()=>{}),x.loadTokens().catch(()=>{})},[m.loadEnvironments,g.loadSessions,v.loadWorkspaces,x.loadTokens]);return{connectionStatus:D,environments:{environments:m.environments,environmentsLoading:m.environmentsLoading,provisionStatus:m.provisionStatus,operationError:m.operationError,clearOperationError:m.clearOperationError,loadEnvironments:m.loadEnvironments,addEnvironment:m.addEnvironment,updateEnvironment:m.updateEnvironment,provisionEnvironment:m.provisionEnvironment,stopEnvironment:m.stopEnvironment,removeEnvironment:m.removeEnvironment,domainHook:m.domainHook},sessions:{sessions:g.sessions,sessionsLoading:g.sessionsLoading,events:g.events,eventsDropped:g.eventsDropped,lastSpawnedId:g.lastSpawnedId,taskSessions:g.taskSessions,spawn:g.spawn,sendInput:g.sendInput,kill:g.kill,stopGraceful:g.stopGraceful,loadSessionEvents:g.loadSessionEvents,clearEvents:g.clearEvents,loadTaskSessions:g.loadTaskSessions,domainHook:g.domainHook},workspaces:{workspaces:v.workspaces,workspacesLoading:v.workspacesLoading,workspaceCreating:v.workspaceCreating,loadWorkspaces:v.loadWorkspaces,createWorkspace:v.createWorkspace,archiveWorkspace:v.archiveWorkspace,updateWorkspace:v.updateWorkspace,linkEnvironment:v.linkEnvironment,unlinkEnvironment:v.unlinkEnvironment,linkOperationError:v.linkOperationError,clearLinkOperationError:v.clearLinkOperationError,domainHook:v.domainHook},tasks:{tasks:_.tasks,tasksLoading:_.tasksLoading,taskStartingId:_.taskStartingId,loadTasks:_.loadTasks,loadAllTasks:_.loadAllTasks,createTask:_.createTask,startTask:_.startTask,stopTask:_.stopTask,completeTask:_.completeTask,resumeTask:_.resumeTask,updateTask:_.updateTask,deleteTask:_.deleteTask,domainHook:_.domainHook},findings:{findings:b.findings,selectedFinding:b.selectedFinding,findingLoading:b.findingLoading,findingsLoading:b.findingsLoading,loadFindings:b.loadFindings,loadAllFindings:b.loadAllFindings,loadFinding:b.loadFinding,postFinding:b.postFinding,domainHook:b.domainHook},tokens:{tokens:x.tokens,tokensLoading:x.tokensLoading,loadTokens:x.loadTokens,setToken:x.setToken,deleteToken:x.deleteToken,domainHook:x.domainHook},credentials:{credentialProviders:S.credentialProviders,credentialsLoading:S.credentialsLoading,updateCredentialProviders:S.updateCredentialProviders,domainHook:S.domainHook},codespaces:{codespaces:j.codespaces,codespaceError:j.codespaceError,codespaceListError:j.codespaceListError,codespaceCreating:j.codespaceCreating,listCodespaces:j.listCodespaces,createCodespace:j.createCodespace,domainHook:j.domainHook},personas:{personas:w.personas,personasLoading:w.personasLoading,createPersona:w.createPersona,updatePersona:w.updatePersona,deletePersona:w.deletePersona,domainHook:w.domainHook},schedules:{schedules:T.schedules,schedulesLoading:T.schedulesLoading,createSchedule:T.createSchedule,updateSchedule:T.updateSchedule,deleteSchedule:T.deleteSchedule,domainHook:T.domainHook},streams:{streams:L.streams,streamsLoading:L.streamsLoading,streamsLoadedOnce:L.streamsLoadedOnce,streamsLoadError:L.streamsLoadError,loadStreams:L.loadStreams,domainHook:L.domainHook},knowledge:C,plugins:{plugins:E.plugins,pluginsLoading:E.pluginsLoading,loadPlugins:E.loadPlugins,setPluginEnabled:E.setPluginEnabled},githubAccounts:{githubAccounts:M.githubAccounts,githubAccountsLoading:M.githubAccountsLoading,loadGitHubAccounts:M.loadGitHubAccounts,addGitHubAccount:M.addGitHubAccount,updateGitHubAccount:M.updateGitHubAccount,removeGitHubAccount:M.removeGitHubAccount,importGitHubAccounts:M.importGitHubAccounts},appDefaultPersonaId:t,setAppDefaultPersonaId:V,onboardingCompleted:o,completeOnboarding:Q,usageCache:c,loadUsage:ge,refresh:R}}function CH({children:t}){const s=NH();return a.jsx(vh.Provider,{value:s,children:t})}function EH(t,s){const o=y.useRef(null);y.useEffect(()=>{const r=o.current;if(o.current=t,r===null)return;const c=new Map;for(const u of r)c.set(u.id,u);const d=new Set;for(const u of t){d.add(u.id);const p=c.get(u.id);p&&p.status!==u.status&&(u.status==="sleeping"||u.status==="connecting"||(u.status==="connected"?s("Environment connected","success"):u.status==="error"?s("Environment provision failed","error"):u.status==="disconnected"&&p.status==="connected"&&s("Environment disconnected","warning")))}for(const u of r)d.has(u.id)||s("Environment removed","info")},[t,s])}function AH(t,s,o){const r=y.useRef(t);y.useEffect(()=>{t&&t!==r.current&&(o(t,"error"),s()),r.current=t},[t,s,o])}const DH={working:{message:"Task is now running",variant:"info"},paused:{message:"Task paused",variant:"warning"},complete:{message:"Task complete",variant:"success"},failed:{message:"Task failed to complete",variant:"error"}};function RH(t){return DH[t]}function MH(t,s){if(t===void 0)return[];const o=[],r=new Map;for(const d of t)r.set(d.id,d);const c=new Set;for(const d of s){c.add(d.id);const u=r.get(d.id);if(!u||u.status===d.status)continue;const p=RH(d.status);p&&o.push(p)}for(const d of t)c.has(d.id)||o.push({message:"Task deleted",variant:"info"});return o}function IH(t,s){const o=y.useRef(void 0);y.useEffect(()=>{const r=o.current;o.current=t;const c=MH(r,t);for(const d of c)s(d.message,d.variant)},[t,s])}const OH="_dashboard_16pzm_1",LH="_kpiStrip_16pzm_11",BH="_kpiCard_16pzm_23",$H="_kpiValue_16pzm_68",zH="_kpiLabel_16pzm_76",HH="_bodyGrid_16pzm_84",PH="_section_16pzm_96",UH="_sectionHeader_16pzm_109",VH="_sectionIcon_16pzm_118",qH="_sectionTitle_16pzm_123",GH="_sectionCount_16pzm_131",FH="_sectionBody_16pzm_138",ZH="_emptyHint_16pzm_143",KH="_sessionRow_16pzm_150",YH="_sessionPrompt_16pzm_177",JH="_sessionEnv_16pzm_186",WH="_sessionRuntime_16pzm_192",XH="_sessionStatus_16pzm_198",QH="_statusDot_16pzm_207",e9="_attentionRow_16pzm_233",t9="_attentionTitle_16pzm_259",n9="_attentionMeta_16pzm_267",s9="_reasonBadge_16pzm_274",a9="_bottomGrid_16pzm_301",i9="_envRow_16pzm_312",o9="_envName_16pzm_323",r9="_envStatusBadge_16pzm_333",l9="_workspaceRow_16pzm_369",c9="_workspaceTop_16pzm_395",d9="_workspaceName_16pzm_401",u9="_workspaceCounts_16pzm_407",f9="_progressBar_16pzm_415",p9="_progressFill_16pzm_422",he={dashboard:OH,kpiStrip:LH,kpiCard:BH,kpiValue:$H,kpiLabel:zH,bodyGrid:HH,section:PH,sectionHeader:UH,sectionIcon:VH,sectionTitle:qH,sectionCount:GH,sectionBody:FH,emptyHint:ZH,sessionRow:KH,sessionPrompt:YH,sessionEnv:JH,sessionRuntime:WH,sessionStatus:XH,statusDot:QH,attentionRow:e9,attentionTitle:t9,attentionMeta:n9,reasonBadge:s9,bottomGrid:a9,envRow:i9,envName:o9,envStatusBadge:r9,workspaceRow:l9,workspaceTop:c9,workspaceName:d9,workspaceCounts:u9,progressBar:f9,progressFill:p9};function m9(){return a.jsxs("div",{className:he.dashboard,"aria-hidden":"true",children:[a.jsx("div",{className:he.kpiStrip,children:Array.from({length:4},(t,s)=>a.jsxs("div",{className:he.kpiCard,children:[a.jsx(Ne,{width:"3rem",height:"2rem"}),a.jsx(Ne,{width:"80%",height:"0.75rem"})]},s))}),a.jsxs("div",{className:he.bodyGrid,children:[a.jsxs("div",{className:he.section,children:[a.jsxs("div",{className:he.sectionHeader,children:[a.jsx(Ne,{width:"1rem",height:"1rem",variant:"circular"}),a.jsx(Ne,{width:"8rem",height:"0.75rem"}),a.jsx("span",{className:he.sectionCount,children:a.jsx(Ne,{width:"1rem",height:"0.75rem"})})]}),a.jsx("div",{className:he.sectionBody,children:Array.from({length:3},(t,s)=>a.jsxs("div",{className:he.sessionRow,style:{cursor:"default"},children:[a.jsx(Ne,{width:"60%",height:"0.875rem"}),a.jsx(Ne,{width:"4rem",height:"0.75rem"}),a.jsx(Ne,{width:"3rem",height:"0.75rem"}),a.jsx(Ne,{width:"3rem",height:"0.75rem"})]},s))})]}),a.jsxs("div",{className:he.section,children:[a.jsxs("div",{className:he.sectionHeader,children:[a.jsx(Ne,{width:"1rem",height:"1rem",variant:"circular"}),a.jsx(Ne,{width:"8rem",height:"0.75rem"}),a.jsx("span",{className:he.sectionCount,children:a.jsx(Ne,{width:"1rem",height:"0.75rem"})})]}),a.jsx("div",{className:he.sectionBody,children:Array.from({length:2},(t,s)=>a.jsxs("div",{className:he.attentionRow,style:{cursor:"default"},children:[a.jsxs("div",{className:he.attentionTitle,children:[a.jsx(Ne,{width:"3rem",height:"0.875rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"70%",height:"0.875rem"})]}),a.jsx("div",{className:he.attentionMeta,children:a.jsx(Ne,{width:"5rem",height:"0.625rem"})})]},s))})]})]}),a.jsxs("div",{className:he.bottomGrid,children:[a.jsxs("div",{className:he.section,children:[a.jsxs("div",{className:he.sectionHeader,children:[a.jsx(Ne,{width:"1rem",height:"1rem",variant:"circular"}),a.jsx(Ne,{width:"9rem",height:"0.75rem"}),a.jsx("span",{className:he.sectionCount,children:a.jsx(Ne,{width:"1rem",height:"0.75rem"})})]}),a.jsx("div",{className:he.sectionBody,children:Array.from({length:2},(t,s)=>a.jsxs("div",{className:he.envRow,children:[a.jsx(Ne,{width:"60%",height:"0.875rem"}),a.jsx(Ne,{width:"4rem",height:"0.875rem",borderRadius:"var(--radius-sm)"})]},s))})]}),a.jsxs("div",{className:he.section,children:[a.jsxs("div",{className:he.sectionHeader,children:[a.jsx(Ne,{width:"1rem",height:"1rem",variant:"circular"}),a.jsx(Ne,{width:"6rem",height:"0.75rem"}),a.jsx("span",{className:he.sectionCount,children:a.jsx(Ne,{width:"1rem",height:"0.75rem"})})]}),a.jsx("div",{className:he.sectionBody,children:Array.from({length:2},(t,s)=>a.jsxs("div",{className:he.workspaceRow,style:{cursor:"default"},children:[a.jsxs("div",{className:he.workspaceTop,children:[a.jsx(Ne,{width:"50%",height:"0.875rem"}),a.jsx(Ne,{width:"2rem",height:"0.75rem"})]}),a.jsx("div",{className:he.progressBar,children:a.jsx("div",{className:he.progressFill,style:{width:"0%"}})})]},s))})]})]})]})}const h9={hidden:{opacity:0,y:12},visible:t=>({opacity:1,y:0,transition:{delay:t*.06,duration:.3,ease:"easeOut"}})},td={hidden:{opacity:0,y:16},visible:t=>({opacity:1,y:0,transition:{delay:.15+t*.08,duration:.35,ease:"easeOut"}})};function g9(t,s,o,r){const c=[`${t} of ${s} tasks completed`];return o>0&&c.push(`${o} in progress`),r>0&&c.push(`${r} failed`),c.join(", ")}function nd({value:t,label:s,accent:o,index:r,testId:c}){return a.jsxs(At.div,{className:he.kpiCard,"data-accent":o,"data-testid":c,variants:h9,initial:"hidden",animate:"visible",custom:r,children:[a.jsx("span",{className:he.kpiValue,children:t}),a.jsx("span",{className:he.kpiLabel,children:s})]})}function v9(){const{workspaces:{workspaces:t,workspacesLoading:s},tasks:{tasks:o,tasksLoading:r,loadTasks:c},sessions:{sessions:d,sessionsLoading:u},environments:{environments:p,environmentsLoading:m}}=ot(),g=dt(),v=y.useRef(new Set);y.useEffect(()=>{for(const w of t)v.current.has(w.id)||(v.current.add(w.id),c(w.id).catch(()=>{}))},[t,c]);const _=y.useMemo(()=>Mz(d,o,p),[d,o,p]),b=y.useMemo(()=>Oz(d,p),[d,p]),x=y.useMemo(()=>Iz(o,t),[o,t]),S=y.useMemo(()=>Lz(t,o),[t,o,p]);return d.length===0&&o.length===0&&p.length===0&&t.length===0&&(u||r||m||s)?a.jsx(m9,{}):a.jsxs("div",{className:he.dashboard,"data-testid":"dashboard",children:[a.jsxs("div",{className:he.kpiStrip,"data-testid":"dashboard-kpi-strip",children:[a.jsx(nd,{value:_.activeSessions,label:"Active Sessions",accent:"green",index:0,testId:"kpi-active-sessions"}),a.jsx(nd,{value:_.blockedTasks,label:"Blocked Tasks",accent:"yellow",index:1,testId:"kpi-blocked-tasks"}),a.jsx(nd,{value:_.attentionTasks,label:"Needs Attention",accent:"red",index:2,testId:"kpi-attention-tasks"}),a.jsx(nd,{value:_.unhealthyEnvironments,label:"Unhealthy Envs",accent:"blue",index:3,testId:"kpi-unhealthy-envs"})]}),a.jsxs("div",{className:he.bodyGrid,children:[a.jsxs(At.div,{className:he.section,variants:td,initial:"hidden",animate:"visible",custom:0,"data-testid":"dashboard-active-sessions",children:[a.jsxs("div",{className:he.sectionHeader,children:[a.jsx("span",{className:he.sectionIcon,"aria-hidden":"true",children:"●"}),a.jsx("span",{className:he.sectionTitle,children:"Active Sessions"}),a.jsx("span",{className:he.sectionCount,children:b.length})]}),a.jsx("div",{className:he.sectionBody,children:b.length===0?a.jsx("div",{className:he.emptyHint,children:"No active sessions"}):b.map(({session:w,environmentName:T})=>a.jsxs("button",{type:"button",className:he.sessionRow,onClick:()=>g(Bd(w.id)),"data-testid":"session-row",children:[a.jsx("span",{className:he.sessionPrompt,title:w.prompt,children:w.prompt||"—"}),a.jsx("span",{className:he.sessionEnv,children:T}),a.jsx("span",{className:he.sessionRuntime,children:w.runtime}),a.jsxs("span",{className:he.sessionStatus,children:[a.jsx("span",{className:he.statusDot,"data-status":w.status}),w.status]})]},w.id))})]}),a.jsxs(At.div,{className:he.section,variants:td,initial:"hidden",animate:"visible",custom:1,"data-testid":"dashboard-needs-attention",children:[a.jsxs("div",{className:he.sectionHeader,children:[a.jsx("span",{className:he.sectionIcon,"aria-hidden":"true",children:"⚑"}),a.jsx("span",{className:he.sectionTitle,children:"Needs Attention"}),a.jsx("span",{className:he.sectionCount,children:x.length})]}),a.jsx("div",{className:he.sectionBody,children:x.length===0?a.jsx("div",{className:he.emptyHint,children:"All clear"}):x.map(({task:w,reason:T,workspaceName:C})=>a.jsxs("button",{type:"button",className:he.attentionRow,onClick:()=>g(Hn(w.id)),"data-testid":"attention-row",children:[a.jsxs("div",{className:he.attentionTitle,children:[a.jsx("span",{className:he.reasonBadge,"data-reason":T,children:T}),w.title]}),a.jsx("div",{className:he.attentionMeta,children:a.jsx("span",{children:C})})]},w.id))})]})]}),a.jsxs("div",{className:he.bottomGrid,children:[a.jsxs(At.div,{className:he.section,variants:td,initial:"hidden",animate:"visible",custom:2,"data-testid":"dashboard-env-health",children:[a.jsxs("div",{className:he.sectionHeader,children:[a.jsx("span",{className:he.sectionIcon,"aria-hidden":"true",children:"◈"}),a.jsx("span",{className:he.sectionTitle,children:"Environment Health"}),a.jsx("span",{className:he.sectionCount,children:p.length})]}),a.jsx("div",{className:he.sectionBody,children:p.length===0?a.jsx("div",{className:he.emptyHint,children:"No environments configured"}):p.map(w=>a.jsxs("div",{className:he.envRow,"data-testid":"dashboard-env-row",children:[a.jsx("span",{className:he.envName,children:w.displayName}),a.jsx("span",{className:he.envStatusBadge,"data-status":w.status,children:w.status})]},w.id))})]}),a.jsxs(At.div,{className:he.section,variants:td,initial:"hidden",animate:"visible",custom:3,"data-testid":"dashboard-workspace-snapshot",children:[a.jsxs("div",{className:he.sectionHeader,children:[a.jsx("span",{className:he.sectionIcon,"aria-hidden":"true",children:"▦"}),a.jsx("span",{className:he.sectionTitle,children:"Workspaces"}),a.jsx("span",{className:he.sectionCount,children:t.length})]}),a.jsx("div",{className:he.sectionBody,children:S.length===0?a.jsx("div",{className:he.emptyHint,children:"No workspaces yet"}):S.map(({workspace:w,totalTasks:T,completedTasks:C,workingTasks:A,failedTasks:L})=>{const E=T>0?Math.round(C/T*100):0;return a.jsxs("button",{type:"button",className:he.workspaceRow,onClick:()=>g(Ri(w.id,w.linkedEnvironmentIds[0])),"data-testid":"workspace-row",children:[a.jsxs("div",{className:he.workspaceTop,children:[a.jsx("span",{className:he.workspaceName,children:w.name}),a.jsxs("span",{className:he.workspaceCounts,"aria-label":g9(C,T,A,L),children:[C,"/",T,A>0&&a.jsxs("span",{style:{color:"var(--accent-green)"},"aria-hidden":"true",children:["▸",A]}),L>0&&a.jsxs("span",{style:{color:"var(--accent-red)"},"aria-hidden":"true",children:["✗",L]})]})]}),T>0&&a.jsx("div",{className:he.progressBar,children:a.jsx("div",{className:he.progressFill,style:{width:`${E}%`}})})]},w.id)})})]})]})]})}const y9="_panelContainer_1udy7_1",b9="_emptyState_1udy7_8",_9="_workspaceSummary_1udy7_17",x9="_workspaceSummaryTitle_1udy7_28",k9="_workspaceSummarySubtitle_1udy7_32",S9="_header_1udy7_36",j9="_headerInfo_1udy7_71",T9="_headerTitle_1udy7_106",w9="_taskStatusBadge_1udy7_128",N9="_taskBranch_1udy7_137",C9="_taskBlockedBadge_1udy7_143",E9="_tabBar_1udy7_277",A9="_tab_1udy7_277",D9="_active_1udy7_303",R9="_eventScroll_1udy7_308",M9="_tabContent_1udy7_314",I9="_noContext_1udy7_319",O9="_overviewContent_1udy7_325",L9="_overviewDashboard_1udy7_334",B9="_overviewHero_1udy7_340",$9="_overviewSection_1udy7_347",z9="_overviewLabel_1udy7_353",H9="_envRow_1udy7_360",P9="_timeline_1udy7_366",U9="_timelineRow_1udy7_372",V9="_waitingMessage_1udy7_379",q9="_errorMessage_1udy7_383",G9="_emptyCta_1udy7_387",F9="_ctaTitle_1udy7_399",Z9="_ctaDescription_1udy7_405",K9="_ctaButton_1udy7_412",Y9="_workspaceHeader_1udy7_533",J9="_workspaceName_1udy7_558",W9="_workspaceMeta_1udy7_571",X9="_metaRow_1udy7_579",Q9="_metaLabel_1udy7_592",eP="_metaValue_1udy7_607",tP="_archiveButton_1udy7_617",nP="_repoLink_1udy7_647",sP="_metaToggle_1udy7_657",aP="_metaToggleArrow_1udy7_678",iP="_metaToggleArrowOpen_1udy7_683",oP="_progressBarContainer_1udy7_687",rP="_progressBar_1udy7_687",lP="_progressFill_1udy7_703",cP="_progressLabel_1udy7_710",dP="_metaTimestamps_1udy7_717",uP="_metaTimestamp_1udy7_717",fP="_metaPlaceholder_1udy7_739",pP="_linkedEnvList_1udy7_744",mP="_linkedEnvChip_1udy7_750",hP="_chipDismiss_1udy7_762",gP="_linkError_1udy7_777",vP="_linkEnvSelect_1udy7_782",W={panelContainer:y9,emptyState:b9,workspaceSummary:_9,workspaceSummaryTitle:x9,workspaceSummarySubtitle:k9,header:S9,headerInfo:j9,headerTitle:T9,taskStatusBadge:w9,taskBranch:N9,taskBlockedBadge:C9,tabBar:E9,tab:A9,active:D9,eventScroll:R9,tabContent:M9,noContext:I9,overviewContent:O9,overviewDashboard:L9,overviewHero:B9,overviewSection:$9,overviewLabel:z9,envRow:H9,timeline:P9,timelineRow:U9,waitingMessage:V9,errorMessage:q9,emptyCta:G9,ctaTitle:F9,ctaDescription:Z9,ctaButton:K9,workspaceHeader:Y9,workspaceName:J9,workspaceMeta:W9,metaRow:X9,metaLabel:Q9,metaValue:eP,archiveButton:tP,repoLink:nP,metaToggle:sP,metaToggleArrow:aP,metaToggleArrowOpen:iP,progressBarContainer:oP,progressBar:rP,progressFill:lP,progressLabel:cP,metaTimestamps:dP,metaTimestamp:uP,metaPlaceholder:fP,linkedEnvList:pP,linkedEnvChip:mP,chipDismiss:hP,linkError:gP,linkEnvSelect:vP};function yP(){return a.jsx("div",{className:W.emptyState,children:"Select a task or click + to create one"})}function bP(){return a.jsx("div",{className:W.emptyState,children:"Select an environment to manage its workspaces, or add a new one."})}function _P(){const{workspaces:{workspaces:t},environments:{environments:s}}=ot(),o=dt(),r=s.length>0;return t.length>0?a.jsx(v9,{}):a.jsxs("div",{className:W.emptyCta,"data-testid":"welcome-cta",children:[a.jsx("div",{className:W.ctaTitle,children:"Welcome to Grackle"}),a.jsx("div",{className:W.ctaDescription,children:"Organize your work into workspaces and let agents tackle the tasks."}),a.jsx("button",{className:W.ctaButton,onClick:()=>o(ax),disabled:!r,"data-testid":"welcome-create-button",children:"Create Your First Workspace"}),!r&&a.jsx("div",{className:W.ctaDescription,children:"Add an environment first before creating a workspace."})]})}const xP="_panelContainer_1rih4_1",kP="_chatHeader_1rih4_9",SP="_chatHeaderInfo_1rih4_38",jP="_chatHeaderActions_1rih4_44",TP="_detailButton_1rih4_50",wP="_emptyState_1rih4_64",NP="_emptyTitle_1rih4_76",CP="_emptyDescription_1rih4_82",EP="_emptyHint_1rih4_88",Jt={panelContainer:xP,chatHeader:kP,chatHeaderInfo:SP,chatHeaderActions:jP,detailButton:TP,emptyState:wP,emptyTitle:NP,emptyDescription:CP,emptyHint:EP};function Fp(){return a.jsx("div",{className:Jt.panelContainer,"aria-hidden":"true",children:a.jsxs("div",{style:{flex:1,overflow:"hidden",padding:"var(--space-md)",display:"flex",flexDirection:"column",gap:"var(--space-md)"},children:[a.jsx(Ne,{width:"65%",height:"2.5rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"85%",height:"4rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"45%",height:"2rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"75%",height:"3rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"55%",height:"2.5rem",borderRadius:"var(--radius-sm)"})]})})}function AP({hasLocalEnvironment:t}){return a.jsxs("div",{className:Jt.emptyState,"data-testid":"chat-empty-state",children:[a.jsx("div",{className:Jt.emptyTitle,children:"Welcome to Grackle"}),a.jsx("div",{className:Jt.emptyDescription,children:t?"Type a message below to start chatting with the System agent. It can help you plan work, create tasks, and coordinate agents.":"Add a local environment in Settings to start chatting."}),!t&&a.jsx("div",{className:Jt.emptyHint,children:"Go to Settings → Environments to add one."})]})}function DP({streamName:t}){return a.jsxs("div",{className:Jt.emptyState,"data-testid":"stream-no-session-state",children:[a.jsx("div",{className:Jt.emptyTitle,children:t}),a.jsx("div",{className:Jt.emptyDescription,children:"No active sessions on this stream."})]})}function RP(){return a.jsxs("div",{className:Jt.emptyState,"data-testid":"stream-not-found-state",children:[a.jsx("div",{className:Jt.emptyTitle,children:"Stream not found"}),a.jsxs("div",{className:Jt.emptyDescription,children:["This stream no longer exists or hasn't been created yet."," ",a.jsx(bl,{to:cl,children:"Back to System"})]})]})}function MP(){return a.jsxs("div",{className:Jt.emptyState,"data-testid":"stream-unavailable-state",children:[a.jsx("div",{className:Jt.emptyTitle,children:"Stream unavailable"}),a.jsxs("div",{className:Jt.emptyDescription,children:["The stream could not be loaded. It may have been deleted, or there may be a temporary network problem."," ",a.jsx(bl,{to:cl,children:"Back to System"})]})]})}function y_(){const{streamId:t}=Vn(),{tasks:{tasks:s,tasksLoading:o,startTask:r},sessions:{sessions:c,sessionsLoading:d,events:u,eventsDropped:p,taskSessions:m,loadTaskSessions:g,loadSessionEvents:v,kill:_,stopGraceful:b,sendInput:x,spawn:S},environments:{environments:j,provisionEnvironment:w},personas:{personas:T},streams:{streams:C,streamsLoading:A,streamsLoadedOnce:L,streamsLoadError:E}}=ot(),{showToast:M}=hn(),[H,D]=y.useState(!1),z=y.useRef(void 0),[Y,V]=y.useState(),Q=s.find(ke=>ke.id===zr),ge=t===void 0&&Q!=null&&Q.latestSessionId?c.find(ke=>ke.id===Q.latestSessionId)??(m[zr]??[]).find(ke=>ke.id===Q.latestSessionId):void 0;y.useEffect(()=>{t===void 0&&g(zr).catch(()=>{})},[t,g]),y.useEffect(()=>{t===void 0&&(Q!=null&&Q.latestSessionId)&&g(zr).catch(()=>{})},[t,Q==null?void 0:Q.latestSessionId,g]);const X=t!==void 0?C.find(ke=>ke.id===t):void 0,re=y.useMemo(()=>!X||X.subscribers.length===0?void 0:(X.subscribers.find(Xe=>Xe.permission==="rw")??X.subscribers[0]).sessionId,[X]),B=re!==void 0?c.find(ke=>ke.id===re):void 0,R=t===void 0?ge:B;y.useEffect(()=>{R&&R.id!==z.current&&(z.current=R.id,v(R.id).catch(()=>{}))},[R==null?void 0:R.id,v]),y.useEffect(()=>{z.current=void 0,D(!1)},[t]);const Z=y.useMemo(()=>{if(!R)return[];const ke=u.filter(Ze=>Ze.sessionId===R.id);return _h(bh(ke))},[u,R==null?void 0:R.id]),me=j.find(ke=>ke.adapterType==="local"&&ke.status==="connected"),q=R!==void 0&&R.status!=="stopped"&&R.status!=="suspended",le=(R==null?void 0:R.status)==="idle";y.useEffect(()=>{Y&&R&&le&&(x(R.id,Y).catch(()=>{M("Failed to send message","error")}),V(void 0))},[Y,le,R==null?void 0:R.id,x,M]);const de=y.useCallback((ke,Ze,Xe,Se)=>{Se&&V(Se),r(ke,Ze,Xe).catch(()=>{})},[r]);if(t===void 0&&!Q&&(d||o))return a.jsx(Fp,{});if(t!==void 0&&!X&&(A||!L))return a.jsx(Fp,{});if(t!==void 0&&X&&d&&!R)return a.jsx(Fp,{});if(t!==void 0&&!X)return a.jsx("div",{className:Jt.panelContainer,"data-testid":"chat-page",children:a.jsx(al,{events:[],eventsDropped:0,emptyState:E?a.jsx(MP,{}):a.jsx(RP,{}),onShowToast:M})});const xe=t!==void 0&&X?X.name:void 0;return a.jsxs("div",{className:Jt.panelContainer,"data-testid":"chat-page",children:[q&&a.jsxs("div",{className:Jt.chatHeader,children:[a.jsxs("span",{className:Jt.chatHeaderInfo,children:[xe&&a.jsxs("strong",{children:[xe," — "]}),"Session: ",R.id.slice(0,8)," | ",R.runtime," | ",R.status]}),a.jsxs("div",{className:Jt.chatHeaderActions,children:[X&&a.jsx("button",{className:Jt.detailButton,onClick:()=>D(ke=>!ke),"aria-label":"Stream details","aria-expanded":H,"data-testid":"stream-detail-toggle",children:"Info"}),a.jsx(ox,{label:"Stop",onClick:()=>{b(R.id).catch(()=>{})},variant:"danger",size:"sm","data-testid":"stop-split-button",options:[{label:"Stop",description:"Graceful shutdown",onClick:()=>{b(R.id).catch(()=>{})}},{label:"Kill",description:"Force kill",onClick:()=>{_(R.id).catch(()=>{})}}]})]})]}),t!==void 0&&X&&!R&&!d&&a.jsx(al,{events:[],eventsDropped:0,emptyState:a.jsx(DP,{streamName:X.name}),onShowToast:M}),(t===void 0||R)&&a.jsx(al,{events:Z,eventsDropped:p,emptyState:t===void 0?a.jsx(AP,{hasLocalEnvironment:!!me}):void 0,onShowToast:M}),t===void 0&&me&&a.jsx(Rd,{mode:q?"send":"start",sessionId:q?R.id:void 0,taskId:zr,environmentId:q?R.environmentId:me.id,personas:T,environments:j,onSendInput:(ke,Ze)=>{x(ke,Ze).catch(()=>{M("Failed to send message","error")})},onSpawn:(ke,Ze,Xe)=>{S(ke,Ze,Xe).catch(()=>{})},onStartTask:de,onProvisionEnvironment:ke=>{w(ke).catch(()=>{})},onShowToast:M}),H&&X&&a.jsx(T$,{stream:X,onClose:()=>D(!1)})]})}function IP(){const t=wz(),[s]=Im(),o=s.get("env")??"",{sessions:{sendInput:r,spawn:c},tasks:{startTask:d},personas:{personas:u},environments:{environments:p,provisionEnvironment:m}}=ot(),{showToast:g}=hn();return a.jsxs("div",{className:W.panelContainer,children:[a.jsx(Ss,{segments:t}),a.jsx("div",{className:W.emptyState,children:"Enter a prompt below to start a new session"}),a.jsx(Rd,{mode:"spawn",environmentId:o,showPersonaSelect:!0,personas:u,environments:p,onSendInput:(v,_)=>{r(v,_).catch(()=>{g("Failed to send message","error")})},onSpawn:(v,_,b)=>{c(v,_,b).catch(()=>{})},onStartTask:(v,_,b)=>{d(v,_,b).catch(()=>{})},onProvisionEnvironment:v=>{m(v).catch(()=>{})},onShowToast:g})]})}function OP(){return a.jsxs("div",{className:W.panelContainer,"aria-hidden":"true",children:[a.jsxs("div",{className:W.header,children:[a.jsx("span",{children:a.jsx(Ne,{width:"10rem",height:"0.875rem"})}),a.jsx("span",{className:W.headerInfo,children:a.jsx(Ne,{width:"16rem",height:"0.875rem"})})]}),a.jsx("div",{className:W.eventScroll,children:a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-md)"},children:[a.jsx(Ne,{width:"70%",height:"2.5rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"90%",height:"4rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"50%",height:"2rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"80%",height:"3.5rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"60%",height:"2.5rem",borderRadius:"var(--radius-sm)"})]})})]})}function LP({sessionId:t,session:s,isActive:o,onStop:r,onKill:c}){return a.jsxs("div",{className:W.header,children:[a.jsxs("span",{children:["Session: ",t.slice(0,8),s&&` | ${s.runtime} | ${s.endReason||s.status}`,s!=null&&s.inputTokens||s!=null&&s.outputTokens||s!=null&&s.costMillicents?` | ${$o((s.inputTokens??0)+(s.outputTokens??0))} tokens · ${Is(s.costMillicents??0)}`:""]}),a.jsxs("span",{className:W.headerInfo,children:[s&&a.jsx("span",{children:s.prompt.length>60?s.prompt.slice(0,60)+"...":s.prompt}),o&&a.jsx(ox,{label:"Stop",onClick:r,variant:"danger",size:"sm","data-testid":"stop-split-button",options:[{label:"Stop",description:"Graceful shutdown",onClick:r},{label:"Kill",description:"Force kill",onClick:c}]})]})]})}function BP({session:t}){const s=t&&(t.status==="stopped"||t.status==="suspended"),o=s?`Session ${t.endReason||t.status} with no events recorded.`:"Waiting for events...";return a.jsx("div",{className:s?W.errorMessage:W.waitingMessage,children:o})}function $P(){const{sessionId:t}=Vn(),{sessions:{events:s,eventsDropped:o,sessions:r,sessionsLoading:c,kill:d,stopGraceful:u,loadSessionEvents:p,sendInput:m,spawn:g},tasks:{startTask:v},personas:{personas:_},environments:{environments:b,provisionEnvironment:x}}=ot(),{showToast:S}=hn(),j=y.useRef(void 0),w=Nz(t),T=r.find(L=>L.id===t)??void 0,C=y.useMemo(()=>{const L=t?s.filter(E=>E.sessionId===t):[];return _h(bh(L))},[s,t]);if(y.useEffect(()=>{t&&t!==j.current&&(j.current=t,p(t).catch(()=>{}))},[t,p]),!T&&c)return a.jsx(OP,{});if(!t)return a.jsx("div",{className:W.emptyState,children:"No session selected"});const A=(T==null?void 0:T.status)==="running"||(T==null?void 0:T.status)==="idle";return a.jsxs("div",{className:W.panelContainer,children:[a.jsx(Ss,{segments:w}),a.jsx(LP,{sessionId:t,session:T,isActive:A,onStop:()=>{u(t).catch(()=>{})},onKill:()=>{d(t).catch(()=>{})}}),a.jsx(al,{events:C,eventsDropped:o,emptyState:a.jsx(BP,{session:T}),onShowToast:S,sessions:r,currentSessionId:t,environments:b,personas:_,onForward:(L,E)=>m(L,E)}),A&&a.jsx(Rd,{mode:"send",sessionId:t,environmentId:T.environmentId,personas:_,environments:b,onSendInput:(L,E)=>{m(L,E).catch(()=>{S("Failed to send message","error")})},onSpawn:(L,E,M)=>{g(L,E,M).catch(()=>{})},onStartTask:(L,E,M)=>{v(L,E,M).catch(()=>{})},onProvisionEnvironment:L=>{x(L).catch(()=>{})},onShowToast:S})]})}function zP(t){if(!t)return!1;const s=t.tagName;return!!(s==="INPUT"||s==="TEXTAREA"||s==="SELECT"||t.isContentEditable)}function ca(t,s){const o=y.useRef(s);o.current=s;const{key:r,ctrl:c=!1,shift:d=!1,suppressInInputs:u=!0,enabled:p=!0}=t;y.useEffect(()=>{if(!p)return;const m=g=>{if(u&&zP(document.activeElement??void 0))return;const v=g.ctrlKey||g.metaKey;c===v&&(d&&!g.shiftKey||g.key===r&&o.current())};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[r,c,d,u,p])}function HP(){return a.jsxs("div",{className:W.panelContainer,"aria-hidden":"true",children:[a.jsx("div",{className:W.workspaceHeader,children:a.jsx("span",{className:W.workspaceName,children:a.jsx(Ne,{width:"12rem",height:"1.25rem"})})}),a.jsx("div",{className:W.metaToggle,style:{cursor:"default"},children:a.jsx(Ne,{width:"4rem",height:"0.625rem"})}),a.jsxs("div",{className:W.progressBarContainer,children:[a.jsx("div",{className:W.progressBar,children:a.jsx("div",{className:W.progressFill,style:{width:"0%"}})}),a.jsx(Ne,{width:"2rem",height:"0.625rem"})]}),a.jsxs("div",{className:W.tabBar,role:"tablist","aria-label":"Workspace view",children:[a.jsx("span",{className:`${W.tab} ${W.active}`,children:"Graph"}),a.jsx("span",{className:W.tab,children:"Board"}),a.jsx("span",{className:W.tab,children:"Tasks"})]}),a.jsx("div",{className:W.overviewContent,children:Array.from({length:3},(t,s)=>a.jsx(Sd,{lines:2},s))})]})}function b_(t){if(!t)return"";const s=new Date(t);if(isNaN(s.getTime()))return"";const r=Date.now()-s.getTime();if(r<0)return"just now";const c=Math.floor(r/6e4);if(c<1)return"just now";if(c<60)return`${c}m ago`;const d=Math.floor(c/60);if(d<24)return`${d}h ago`;const u=Math.floor(d/24);return u<30?`${u}d ago`:s.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}const Zp=100;function PP(t){try{const s=new URL(t);return s.protocol!=="http:"&&s.protocol!=="https:"?void 0:s.toString()}catch{return}}function UP(){const{workspaceId:t,environmentId:s}=Vn(),o=dt(),{tasks:{tasks:r},environments:{environments:c},workspaces:{workspaces:d,workspacesLoading:u,archiveWorkspace:p,updateWorkspace:m,linkEnvironment:g,unlinkEnvironment:v,linkOperationError:_,clearLinkOperationError:b},personas:{personas:x},sessions:{sessions:S},usageCache:j,loadUsage:w}=ot(),{resolvedThemeId:T}=ak(),[C,A]=y.useState("tasks"),[L,E]=y.useState(!1),[M,H]=y.useState(null),[D,z]=y.useState(!1),Y=y.useRef(void 0),V=d.find(q=>q.id===t),Q=s??(V==null?void 0:V.linkedEnvironmentIds[0])??"",ge=Cz(t,Q,d,c);ca({key:"1"},()=>A("graph")),ca({key:"2"},()=>A("board")),ca({key:"3"},()=>A("tasks")),y.useEffect(()=>{const q=Y.current;Y.current=t,!(q===void 0||q===t)&&M!==null&&H(null)},[t,M]);const X=S.reduce((q,le)=>q+(le.costMillicents??0),0);y.useEffect(()=>{t&&w("workspace",t).catch(()=>{})},[t,w,X]);const re=t?j[`workspace:${t}`]:void 0,B=r.filter(q=>q.workspaceId===t),R=B.filter(q=>q.status==="complete").length,Z=B.length,me=Z>0?Math.round(R/Z*100):0;return!V&&u?a.jsx(HP,{}):a.jsxs("div",{className:W.panelContainer,children:[a.jsx(Ss,{segments:ge}),a.jsxs("div",{className:W.workspaceHeader,children:[a.jsx("span",{className:W.workspaceName,"data-testid":"workspace-name",children:a.jsx(Yt,{value:(V==null?void 0:V.name)||"",onSave:q=>{V&&m(V.id,{name:q}).catch(()=>{})},validate:q=>{const le=q.trim();if(!le)return"Name is required";if(le.length>Zp)return`Max ${Zp} characters`},maxLength:Zp,fieldId:"name",activeFieldId:M,onActivate:H,ariaLabel:"Workspace name",renderDisplay:q=>q||t||void 0,"data-testid":"edit-name"})}),a.jsx("button",{className:W.archiveButton,onClick:()=>E(!0),title:"Archive workspace","data-testid":"archive-workspace-button",children:"Archive"})]}),a.jsxs("button",{className:W.metaToggle,onClick:()=>z(!D),"aria-expanded":!D,"aria-controls":"workspace-meta-panel","data-testid":"meta-toggle",children:[a.jsx("span",{className:`${W.metaToggleArrow} ${D?"":W.metaToggleArrowOpen}`,children:"▶"}),"Details"]}),!D&&a.jsxs("div",{className:W.workspaceMeta,"data-testid":"workspace-meta",id:"workspace-meta-panel",children:[a.jsxs("div",{className:W.metaRow,children:[a.jsx("span",{className:W.metaLabel,children:"Description"}),a.jsx("div",{className:W.metaValue,children:a.jsx(ym,{value:(V==null?void 0:V.description)||"",onSave:q=>{V&&m(V.id,{description:q}).catch(()=>{})},fieldId:"description",activeFieldId:M,onActivate:H,renderDisplay:q=>q?a.jsx("span",{className:W.overviewMarkdown,children:a.jsx(Ed,{remarkPlugins:[Ad],children:q})}):void 0,placeholder:"No description",ariaLabel:"Workspace description","data-testid":"edit-description"})})]}),a.jsxs("div",{className:W.metaRow,children:[a.jsx("span",{className:W.metaLabel,children:"Repository"}),a.jsx("div",{className:W.metaValue,children:a.jsx(Yt,{value:(V==null?void 0:V.repoUrl)||"",onSave:q=>{V&&m(V.id,{repoUrl:q}).catch(()=>{})},validate:q=>{const le=q.trim();if(le&&!/^https?:\/\/.+/.test(le))return"Must be a valid http(s) URL"},fieldId:"repoUrl",activeFieldId:M,onActivate:H,renderDisplay:q=>{const le=PP(q);return le?a.jsx("a",{className:W.repoLink,href:le,target:"_blank",rel:"noopener noreferrer",onClick:de=>de.stopPropagation(),children:q}):q?a.jsx("span",{children:q}):void 0},placeholder:"No repository",ariaLabel:"Workspace repository URL","data-testid":"edit-repo"})})]}),a.jsxs("div",{className:W.metaRow,children:[a.jsx("span",{className:W.metaLabel,children:"Environments"}),a.jsx("div",{className:W.metaValue,"data-testid":"linked-environments",children:V?a.jsxs("span",{className:W.linkedEnvList,children:[(()=>{const q=[...new Set(V.linkedEnvironmentIds)];return q.length===0?a.jsx("span",{className:W.metaPlaceholder,children:"None"}):q.map(le=>{const de=c.find(xe=>xe.id===le);return a.jsxs("span",{className:W.linkedEnvChip,"data-testid":`linked-env-${le}`,children:[(de==null?void 0:de.displayName)||le,a.jsx("button",{className:W.chipDismiss,onClick:()=>{v(V.id,le).catch(()=>{})},title:`Unlink ${(de==null?void 0:de.displayName)||le}`,"aria-label":`Unlink ${(de==null?void 0:de.displayName)||le}`,"data-testid":`unlink-env-${le}`,disabled:q.length<=1,children:"x"})]},le)})})(),(()=>{const q=new Set(V.linkedEnvironmentIds),le=c.filter(de=>!q.has(de.id));return le.length===0?null:a.jsxs("select",{className:W.linkEnvSelect,value:"",onChange:de=>{de.target.value&&g(V.id,de.target.value).catch(()=>{})},"aria-label":"Link environment","data-testid":"link-env-select",children:[a.jsx("option",{value:"",children:"+ Link"}),le.map(de=>a.jsx("option",{value:de.id,children:de.displayName||de.id},de.id))]})})(),_&&a.jsxs("span",{className:W.linkError,"data-testid":"link-operation-error",role:"alert",children:[_,a.jsx("button",{className:W.chipDismiss,onClick:b,"aria-label":"Dismiss error","data-testid":"dismiss-link-error",children:"x"})]})]}):a.jsx("span",{className:W.metaPlaceholder,children:"None"})})]}),a.jsxs("div",{className:W.metaRow,children:[a.jsx("span",{className:W.metaLabel,children:"Persona"}),a.jsx("div",{className:W.metaValue,children:a.jsx(jd,{value:(V==null?void 0:V.defaultPersonaId)||"",onSave:q=>{V&&m(V.id,{defaultPersonaId:q}).catch(()=>{})},options:[{value:"",label:"(Inherit)"},...x.map(q=>({value:q.id,label:q.name}))],fieldId:"defaultPersonaId",activeFieldId:M,onActivate:H,renderDisplay:q=>{const le=x.find(de=>de.id===q);if(le)return a.jsx("span",{children:le.name})},placeholder:(V==null?void 0:V.defaultPersonaId)||"(Inherit)",ariaLabel:"Workspace default persona","data-testid":"edit-persona"})})]}),a.jsxs("div",{className:W.metaRow,children:[a.jsx("span",{className:W.metaLabel,children:"Worktrees"}),a.jsx("div",{className:W.metaValue,children:a.jsx(L5,{checked:(V==null?void 0:V.useWorktrees)??!0,onChange:q=>{V&&m(V.id,{useWorktrees:q}).catch(()=>{})},label:"Enable worktree isolation","data-testid":"worktree-toggle"})})]}),a.jsxs("div",{className:W.metaRow,children:[a.jsx("span",{className:W.metaLabel,children:"Working Dir"}),a.jsx("div",{className:W.metaValue,children:a.jsx(Yt,{value:(V==null?void 0:V.workingDirectory)||"",onSave:q=>{V&&m(V.id,{workingDirectory:q}).catch(()=>{})},fieldId:"workingDirectory",activeFieldId:M,onActivate:H,placeholder:"Default (server default)",ariaLabel:"Working directory","data-testid":"edit-working-directory"})})]}),V&&a.jsxs("div",{className:W.metaTimestamps,children:[a.jsxs("span",{className:W.metaTimestamp,children:["Created ",b_(V.createdAt)]}),V.updatedAt&&V.updatedAt!==V.createdAt&&a.jsxs("span",{className:W.metaTimestamp,children:["· Updated ",b_(V.updatedAt)]})]})]}),Z>0&&a.jsxs("div",{className:W.progressBarContainer,"data-testid":"progress-bar",children:[a.jsx("div",{className:W.progressBar,children:a.jsx("div",{className:W.progressFill,style:{width:`${me}%`}})}),a.jsxs("span",{className:W.progressLabel,children:[R,"/",Z]})]}),re&&re.costMillicents>0&&a.jsx("div",{className:W.progressBarContainer,children:a.jsxs("span",{className:W.progressLabel,children:["Usage: ",Is(re.costMillicents)," (",re.sessionCount," session",re.sessionCount!==1?"s":"",")"]})}),V&&(V.tokenBudget>0||V.costBudgetMillicents>0)&&a.jsx("div",{className:W.progressBarContainer,children:a.jsxs("span",{className:W.progressLabel,children:["Budget:"," ",V.tokenBudget>0&&a.jsxs(a.Fragment,{children:["Tokens: ",$o(((re==null?void 0:re.inputTokens)??0)+((re==null?void 0:re.outputTokens)??0))," / ",$o(V.tokenBudget)]}),V.tokenBudget>0&&V.costBudgetMillicents>0&&" | ",V.costBudgetMillicents>0&&a.jsxs(a.Fragment,{children:["Cost: ",Is((re==null?void 0:re.costMillicents)??0)," / ",Is(V.costBudgetMillicents)]})]})}),a.jsxs("div",{className:W.tabBar,role:"tablist","aria-label":"Workspace view",children:[a.jsx("button",{role:"tab","aria-selected":C==="graph",className:`${W.tab} ${C==="graph"?W.active:""}`,onClick:()=>A("graph"),children:"Graph"}),a.jsx("button",{role:"tab","aria-selected":C==="board",className:`${W.tab} ${C==="board"?W.active:""}`,onClick:()=>A("board"),"data-testid":"board-tab",children:"Board"}),a.jsx("button",{role:"tab","aria-selected":C==="tasks",className:`${W.tab} ${C==="tasks"?W.active:""}`,onClick:()=>A("tasks"),children:"Tasks"})]}),C==="tasks"&&Z>0&&a.jsxs("div",{className:W.workspaceSummary,children:[a.jsx("span",{className:W.workspaceSummaryTitle,children:`${R}/${Z} tasks complete`}),a.jsx("span",{className:W.workspaceSummarySubtitle,children:"Select a task or click + to create one"})]}),C==="tasks"&&Z===0&&a.jsxs("div",{className:W.emptyCta,children:[a.jsx("button",{className:W.ctaButton,onClick:()=>o($i(t,void 0,Q)),children:"Create Task"}),a.jsx("div",{className:W.ctaDescription,children:"Break your work into tasks and let agents tackle them"})]}),C==="board"&&a.jsx(W$,{workspaceId:t,environmentId:Q,tasks:r,sessions:S,personas:x,environments:c}),C==="graph"&&a.jsx(YN,{workspaceId:t,environmentId:Q,tasks:r,resolvedThemeId:T}),a.jsx(ks,{isOpen:L,title:"Archive Workspace?",description:"This will hide the workspace from the sidebar. Tasks will not be deleted.",confirmLabel:"Archive",onConfirm:()=>{V&&(p(V.id).catch(()=>{}),o("/",{replace:!0})),E(!1)},onCancel:()=>E(!1)})]})}const VP="_container_3pgew_1",qP="_header_3pgew_8",GP="_headerTitle_3pgew_35",FP="_headerActions_3pgew_44",ZP="_body_3pgew_51",KP="_btnPrimary_3pgew_63",YP="_btnGhost_3pgew_94",JP="_error_3pgew_116",Za={container:VP,header:qP,headerTitle:GP,headerActions:FP,body:ZP,btnPrimary:KP,btnGhost:YP,error:JP};function WP(t){const s={};return t.name.trim()||(s.name="Name is required"),t.repoUrl.trim()&&!/^https?:\/\/.+/i.test(t.repoUrl.trim())&&(s.repoUrl="Must be a valid http(s) URL"),t.environmentId||(s.environmentId="Environment is required"),Object.keys(s).length>0?s:void 0}const XP=[{label:"Home",url:Ii},{label:"New Workspace",url:void 0}];function QP(){const[t]=Im(),s=t.get("environment")??void 0,{environments:{environments:o},personas:{personas:r},workspaces:{createWorkspace:c,workspaceCreating:d}}=ot(),{showToast:u}=hn(),p=dt(),[m,g]=y.useState(()=>{var w;return lz(void 0,s||((w=o[0])==null?void 0:w.id))}),[v,_]=y.useState(),[b,x]=y.useState();y.useEffect(()=>{s||m.environmentId||o.length===0||g(w=>{var T;return w.environmentId?w:{...w,environmentId:((T=o[0])==null?void 0:T.id)??""}})},[o,s,m.environmentId]);const S=()=>{const w=WP(m);if(w){_(w),x(void 0);return}_(void 0),x(void 0),c(m.name.trim(),m.description,m.repoUrl.trim(),m.environmentId,m.defaultPersonaId,m.useWorktrees,m.workingDirectory,()=>{u("Workspace created","success"),p(Ii,{replace:!0})},T=>{x(T)}).catch(()=>{})},j=()=>{p(s?Mi(s):Ii,{replace:!0})};return a.jsxs("div",{className:Za.container,children:[a.jsxs("div",{className:Za.header,children:[a.jsx("div",{className:Za.headerTitle,children:a.jsx(Ss,{segments:XP})}),a.jsxs("div",{className:Za.headerActions,children:[a.jsx("button",{className:Za.btnGhost,onClick:j,disabled:d,"data-testid":"workspace-create-cancel",children:"Cancel"}),a.jsx("button",{className:Za.btnPrimary,onClick:S,disabled:d||!m.name.trim()||!m.environmentId,"data-testid":"workspace-create-save",children:d?a.jsx(L1,{size:"sm",label:"Creating"}):"Create Workspace"})]})]}),a.jsxs("div",{className:Za.body,children:[a.jsx(dz,{values:m,onChange:w=>{g(w),_(void 0),x(void 0)},environments:o,personas:r,errors:v,disabled:d,autoFocusName:!0}),b&&a.jsx("div",{className:Za.error,"data-testid":"workspace-create-submit-error",children:b})]})]})}function __(){const{workspaceId:t,environmentId:s}=Vn(),[o]=Im(),r=t??o.get("workspace")??"",c=o.get("parent")??void 0,{tasks:{tasks:d,createTask:u,updateTask:p},workspaces:{workspaces:m},personas:{personas:g}}=ot(),{showToast:v}=hn();return a.jsx(W1,{mode:"new",workspaceId:r,parentTaskId:c,environmentId:s,tasks:d,workspaces:m,personas:g,onCreateTask:(_,b,x,S,j,w,T,C,A)=>{u(_,b,x,S,j,w,T,C,A).catch(()=>{})},onUpdateTask:(_,b,x,S,j)=>{p(_,b,x,S,j).catch(()=>{})},onShowToast:v})}function eU(){return a.jsxs("div",{className:W.panelContainer,"aria-hidden":"true",children:[a.jsx("div",{className:W.header,children:a.jsxs("span",{className:W.headerTitle,children:[a.jsx(Ne,{width:"12rem",height:"1rem"}),a.jsx(Ne,{width:"4rem",height:"1rem",borderRadius:"var(--radius-full)"})]})}),a.jsxs("div",{className:W.tabBar,role:"tablist","aria-label":"Task view",children:[a.jsx("span",{className:`${W.tab} ${W.active}`,children:"Overview"}),a.jsx("span",{className:W.tab,children:"Stream"}),a.jsx("span",{className:W.tab,children:"Findings"})]}),a.jsx("div",{className:W.overviewContent,children:a.jsxs("div",{className:W.overviewDashboard,children:[a.jsx("div",{className:W.overviewHero,children:a.jsx(Ne,{width:"5rem",height:"1.5rem",borderRadius:"var(--radius-full)"})}),a.jsxs("div",{className:W.overviewSection,children:[a.jsx("div",{className:W.overviewLabel,children:"Description"}),a.jsx(vm,{lines:2})]}),a.jsxs("div",{className:W.overviewSection,children:[a.jsx("div",{className:W.overviewLabel,children:"Environment"}),a.jsxs("div",{className:W.envRow,children:[a.jsx(Ne,{width:"0.5rem",height:"0.5rem",variant:"circular"}),a.jsx(Ne,{width:"8rem",height:"0.875rem"})]})]}),a.jsxs("div",{className:W.overviewSection,children:[a.jsx("div",{className:W.overviewLabel,children:"Dependencies"}),a.jsx(vm,{lines:2})]}),a.jsxs("div",{className:W.overviewSection,children:[a.jsx("div",{className:W.overviewLabel,children:"Timeline"}),a.jsx("div",{className:W.timeline,children:Array.from({length:4},(t,s)=>a.jsxs("div",{className:W.timelineRow,children:[a.jsx(Ne,{width:"4rem",height:"0.75rem"}),a.jsx(Ne,{width:"10rem",height:"0.75rem"})]},s))})]})]})})]})}function Ka(){const{taskId:t,workspaceId:s,environmentId:o}=Vn(),r=Wt(),c=dt(),{showToast:d}=hn(),{sessions:{events:u,eventsDropped:p,sessions:m,loadSessionEvents:g,taskSessions:v,loadTaskSessions:_,sendInput:b,spawn:x,kill:S},tasks:{tasks:j,tasksLoading:w,startTask:T,stopTask:C,resumeTask:A,deleteTask:L,createTask:E,updateTask:M},environments:{environments:H,provisionEnvironment:D},findings:{findings:z,loadFindings:Y},workspaces:{workspaces:V},personas:{personas:Q},usageCache:ge,loadUsage:X}=ot(),re=y.useRef(void 0),B=y.useRef(void 0),R=y.useRef(void 0),Z=y.useRef(void 0),me=y.useRef(void 0),q=r.pathname.endsWith("/stream")?"stream":r.pathname.endsWith("/findings")?"findings":"overview",le=r.pathname.endsWith("/edit"),[de,xe]=y.useState(q),[ke,Ze]=y.useState(!1),[Xe,Se]=y.useState(void 0),[fe,be]=y.useState(""),[Vt,ie]=y.useState(le),We=y.useRef(q),qt=y.useRef(le),ne=j.find(Ee=>Ee.id===t),Tt=(ne==null?void 0:ne.workspaceId)||void 0,Lt=V.find(Ee=>Ee.id===Tt);y.useEffect(()=>{q!==We.current&&(We.current=q,q!==de&&xe(q))},[q,de]),y.useEffect(()=>{le!==qt.current&&(qt.current=le,le!==Vt&&ie(le))},[le,Vt]),y.useEffect(()=>{if(fe===""){if(Lt!=null&&Lt.linkedEnvironmentIds[0])be(Lt.linkedEnvironmentIds[0]);else if(H.length>0){const Ee=H.find(ze=>ze.status==="connected");be((Ee==null?void 0:Ee.id)??H[0].id)}}},[fe,Lt==null?void 0:Lt.linkedEnvironmentIds[0],H]);const Bt=ne?v[ne.id]??[]:[];let Pe;Xe&&Bt.some(Ee=>Ee.id===Xe)?Pe=Xe:Pe=(ne==null?void 0:ne.latestSessionId)||void 0;const ln=()=>{Ze(!0)},ga=()=>{if(!ne)return;L(ne.id).catch(()=>{}),Ze(!1);const Ee=o??(Lt==null?void 0:Lt.linkedEnvironmentIds[0]);c(ne.workspaceId&&Ee?Ri(ne.workspaceId,Ee):"/",{replace:!0})};y.useEffect(()=>{(ne==null?void 0:ne.id)!==B.current&&(B.current=ne==null?void 0:ne.id,Se(void 0),be(""),ie(le))},[ne==null?void 0:ne.id,le]),y.useEffect(()=>{if(!(ne!=null&&ne.id))return;const Ee=ne.id!==Z.current,ze=ne.latestSessionId!==me.current;(Ee||ze)&&(Z.current=ne.id,me.current=ne.latestSessionId,_(ne.id).catch(()=>{}))},[ne==null?void 0:ne.id,ne==null?void 0:ne.latestSessionId,_]),y.useEffect(()=>{if((ne==null?void 0:ne.status)!==R.current){const Ee=R.current===void 0;R.current=ne==null?void 0:ne.status;const ze=(ne==null?void 0:ne.status)==="not_started"?"overview":(ne==null?void 0:ne.status)==="working"||(ne==null?void 0:ne.status)==="paused"?"stream":(ne==null?void 0:ne.status)==="complete"?"findings":void 0;ze&&ze!==de&&!(Ee&&q!=="overview")&&xe(ze)}},[ne==null?void 0:ne.status,de,q]);const fs=y.useMemo(()=>new Map(j.map(Ee=>[Ee.id,Ee])),[j]),ti=y.useMemo(()=>{const Ee=Pe?u.filter(ze=>ze.sessionId===Pe):[];return _h(bh(Ee))},[u,Pe]),va=ne?ne.dependsOn.some(Ee=>{const ze=fs.get(Ee);return ze!==void 0&&ze.status!=="complete"}):!1,tn=y.useMemo(()=>Ez(t,o,V,H,fs),[t,o,V,H,fs]);y.useEffect(()=>{Pe&&Pe!==re.current&&(re.current=Pe,g(Pe).catch(()=>{}))},[Pe,g]),y.useEffect(()=>{de==="findings"&&Tt&&Y(Tt).catch(()=>{})},[de,Tt,Y]);const Hi=Bt.reduce((Ee,ze)=>Ee+(ze.costMillicents??0),0);y.useEffect(()=>{ne&&(X("task",ne.id).catch(()=>{}),ne.childTaskIds.length>0&&X("task_tree",ne.id).catch(()=>{}))},[ne==null?void 0:ne.id,ne==null?void 0:ne.childTaskIds.length,X,Hi]);const ya=ne?`task:${ne.id}`:"",ni=ya in ge?ge[ya]:void 0,js=ne?`task_tree:${ne.id}`:"",Pi=ne&&ne.childTaskIds.length>0&&js in ge?ge[js]:void 0,qn=Ee=>{xe(Ee),c(Hn(t,Ee==="overview"?void 0:Ee,s,o))};return ca({key:"1"},()=>qn("overview")),ca({key:"2"},()=>qn("stream")),ca({key:"3"},()=>qn("findings")),!ne&&w?a.jsx(eU,{}):a.jsxs("div",{className:W.panelContainer,children:[a.jsx(Ss,{segments:tn}),a.jsxs("div",{className:W.header,children:[a.jsxs("span",{className:W.headerTitle,children:[a.jsx("span",{"data-testid":"task-title",children:(ne==null?void 0:ne.title)||t}),ne&&a.jsx("span",{className:W.taskStatusBadge,"data-testid":"task-status",children:ne.status}),(ne==null?void 0:ne.branch)&&a.jsx("span",{className:W.taskBranch,children:ne.branch}),va&&a.jsx("span",{className:W.taskBlockedBadge,children:"blocked"})]}),ne&&a.jsx(CB,{task:ne,sessionId:Pe,isBlocked:va,onStart:()=>{T(ne.id,void 0,fe).catch(Ee=>{const ze=Ee instanceof da?Ee.message:"Failed to start task";d(ze,"error")})},onResume:()=>{A(ne.id).catch(()=>{})},onStop:()=>{C(ne.id).catch(()=>{})},onPause:()=>{Pe&&S(Pe).catch(()=>{})},onDelete:ln,onEdit:()=>ie(!0)})]}),a.jsxs("div",{className:W.tabBar,role:"tablist","aria-label":"Task view",children:[a.jsx("button",{role:"tab","aria-selected":de==="overview",className:`${W.tab} ${de==="overview"?W.active:""}`,onClick:()=>qn("overview"),children:"Overview"}),a.jsx("button",{role:"tab","aria-selected":de==="stream",className:`${W.tab} ${de==="stream"?W.active:""}`,onClick:()=>qn("stream"),children:"Stream"}),a.jsx("button",{role:"tab","aria-selected":de==="findings",className:`${W.tab} ${de==="findings"?W.active:""}`,onClick:()=>qn("findings"),children:"Findings"})]}),a.jsxs(ls,{mode:"wait",children:[de==="overview"&&a.jsx(At.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},className:W.overviewContent,"data-testid":"task-overview",children:Vt&&ne?a.jsx(W1,{mode:"edit",taskId:ne.id,workspaceId:Tt,environmentId:o,tasks:j,workspaces:V,personas:Q,onCreateTask:(Ee,ze,nn,wt,yn,sn,Ui,Vi,qi)=>{E(Ee,ze,nn,wt,yn,sn,Ui,Vi,qi).catch(()=>{})},onUpdateTask:(Ee,ze,nn,wt,yn)=>{M(Ee,ze,nn,wt,yn).catch(()=>{})},onEditDone:()=>{le?c(Hn(ne.id,void 0,s,o),{replace:!0}):ie(!1)},onShowToast:d}):ne?a.jsx(h8,{task:ne,tasksById:fs,environments:H,workspaces:V,taskSessions:Bt,selectedEnvId:fe,taskUsage:ni,treeUsage:Pi}):a.jsx("div",{className:W.waitingMessage,children:"No additional details"})},"overview"),de==="stream"&&a.jsxs(At.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},style:{display:"flex",flexDirection:"column",flex:1,overflow:"hidden"},children:[a.jsx(h6,{taskSessions:Bt,selectedSessionId:Pe,onSelect:Ee=>Se(Ee)}),a.jsx(al,{events:ti,eventsDropped:p,emptyState:!Pe&&ne?va?a.jsx("div",{className:W.emptyCta,"data-testid":"stream-blocked-message",children:a.jsx("div",{className:W.ctaDescription,children:"This task is blocked by incomplete dependencies"})}):a.jsxs("div",{className:W.emptyCta,children:[a.jsx("button",{"data-testid":"stream-start-cta",className:W.ctaButton,onClick:()=>{T(ne.id,void 0,fe).catch(Ee=>{const ze=Ee instanceof da?Ee.message:"Failed to start task";d(ze,"error")})},children:"Start Task"}),a.jsx("div",{className:W.ctaDescription,children:"Click to begin agent execution"})]}):Pe&&ti.length===0?a.jsx("div",{className:W.waitingMessage,children:"Waiting for events..."}):void 0,onShowToast:d})]},"stream"),de==="findings"&&a.jsx(At.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},className:W.tabContent,children:Tt?a.jsx(Y1,{findings:z.filter(Ee=>Ee.workspaceId===Tt)}):a.jsx("div",{className:W.noContext,children:"Navigate to a task within a workspace to view findings"})},"findings")]}),(()=>{if(!ne||ne.status!=="working"&&ne.status!=="paused")return;const Ee=Pe?m.find(ze=>ze.id===Pe):void 0;if(!(!Ee||Ee.status==="stopped"))return a.jsx(Rd,{mode:"send",sessionId:Ee.id,environmentId:Ee.environmentId,personas:Q,environments:H,onSendInput:(ze,nn)=>{b(ze,nn).catch(()=>{d("Failed to send message","error")})},onSpawn:(ze,nn,wt)=>{x(ze,nn,wt,void 0,Tt).catch(()=>{})},onStartTask:(ze,nn,wt)=>{T(ze,nn,wt).catch(()=>{})},onProvisionEnvironment:ze=>{D(ze).catch(()=>{})},onShowToast:d})})(),ne&&a.jsx(ks,{isOpen:ke,title:"Delete Task?",description:`"${ne.title}" will be permanently removed.`,onConfirm:ga,onCancel:()=>Ze(!1)})]})}function tU(){const{environments:{environments:t,addEnvironment:s,updateEnvironment:o},codespaces:{codespaces:r,codespaceError:c,codespaceListError:d,codespaceCreating:u,listCodespaces:p,createCodespace:m},githubAccounts:{githubAccounts:g}}=ot(),{showToast:v}=hn();return a.jsx(X1,{mode:"new",environments:t,githubAccounts:g,onAddEnvironment:(_,b,x,S)=>{s(_,b,x,S).catch(()=>{})},onUpdateEnvironment:(_,b)=>{o(_,b).catch(()=>{})},onListCodespaces:_=>{p(_).catch(()=>{})},codespaces:r,codespaceError:c,codespaceListError:d,codespaceCreating:u,onCreateCodespace:(_,b)=>{m(_,b).catch(()=>{})},onShowToast:v})}function nU(){const{environmentId:t}=Vn(),{environments:{environments:s,addEnvironment:o,updateEnvironment:r},codespaces:{codespaces:c,codespaceError:d,codespaceListError:u,codespaceCreating:p,listCodespaces:m,createCodespace:g},githubAccounts:{githubAccounts:v}}=ot(),{showToast:_}=hn();return a.jsx(X1,{mode:"edit",environmentId:t,environments:s,githubAccounts:v,onAddEnvironment:(b,x,S,j)=>{o(b,x,S,j).catch(()=>{})},onUpdateEnvironment:(b,x)=>{r(b,x).catch(()=>{})},onListCodespaces:b=>{m(b).catch(()=>{})},codespaces:c,codespaceError:d,codespaceListError:u,codespaceCreating:p,onCreateCodespace:(b,x)=>{g(b,x).catch(()=>{})},onShowToast:_})}const sU="_layout_11u79_1",aU="_content_11u79_8",iU="_tabPanel_11u79_14",ol={layout:sU,content:aU,tabPanel:iU};function oU(){const t=Tz();return a.jsxs("div",{className:ol.layout,children:[a.jsx(Ss,{segments:t}),a.jsx("div",{className:ol.content,children:a.jsx(ha,{})})]})}const rU="_container_144a4_1",lU="_envHeader_144a4_6",cU="_envTitleRow_144a4_10",dU="_statusDot_144a4_16",uU="_envName_144a4_21",fU="_statusBadge_144a4_27",pU="_envMeta_144a4_33",mU="_metaTag_144a4_39",hU="_actions_144a4_51",gU="_provisionMessage_144a4_59",vU="_errorMessage_144a4_64",yU="_section_144a4_69",bU="_sectionHeader_144a4_73",_U="_cardList_144a4_121",xU="_card_144a4_121",kU="_cardHeader_144a4_138",SU="_cardName_144a4_144",jU="_cardActions_144a4_149",TU="_cardDescription_144a4_154",wU="_cardMeta_144a4_160",NU="_repoLink_144a4_166",CU="_empty_144a4_174",EU="_errorHint_144a4_180",AU="_btnPrimary_144a4_186",DU="_btnOutline_144a4_220",RU="_btnSmall_144a4_247",MU="_btnDanger_144a4_273",Re={container:rU,envHeader:lU,envTitleRow:cU,statusDot:dU,envName:uU,statusBadge:fU,envMeta:pU,metaTag:mU,actions:hU,provisionMessage:gU,errorMessage:vU,section:yU,sectionHeader:bU,cardList:_U,card:xU,cardHeader:kU,cardName:SU,cardActions:jU,cardDescription:TU,cardMeta:wU,repoLink:NU,empty:CU,errorHint:EU,btnPrimary:AU,btnOutline:DU,btnSmall:RU,btnDanger:MU};function IU(){return a.jsxs("div",{className:Re.container,"aria-hidden":"true",children:[a.jsxs("div",{className:Re.envHeader,children:[a.jsxs("div",{className:Re.envTitleRow,children:[a.jsx(Ne,{width:"0.875rem",height:"0.875rem",variant:"circular"}),a.jsx(Ne,{width:"12rem",height:"1.5rem"}),a.jsx(Ne,{width:"4rem",height:"0.875rem"})]}),a.jsxs("div",{className:Re.envMeta,children:[a.jsx(Ne,{width:"6rem",height:"1.25rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"5rem",height:"1.25rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"4.5rem",height:"1.25rem",borderRadius:"var(--radius-sm)"})]})]}),a.jsxs("div",{className:Re.actions,children:[a.jsx(Ne,{width:"5rem",height:"2rem",borderRadius:"var(--radius-sm)"}),a.jsx(Ne,{width:"4rem",height:"2rem",borderRadius:"var(--radius-sm)"})]}),a.jsxs("div",{className:Re.section,children:[a.jsx("div",{className:Re.sectionHeader,children:a.jsx("h3",{style:{margin:0},children:"Workspaces"})}),a.jsxs("div",{className:Re.cardList,children:[a.jsx(Sd,{lines:2}),a.jsx(Sd,{lines:2})]})]})]})}const OU={connected:"var(--accent-green)",sleeping:"var(--accent-yellow)",error:"var(--accent-red)",disconnected:"var(--text-tertiary)",connecting:"var(--accent-blue)"};function LU(){const{environmentId:t}=Vn(),s=dt(),{environments:{environments:o,environmentsLoading:r,provisionStatus:c,provisionEnvironment:d,stopEnvironment:u,removeEnvironment:p},workspaces:{workspaces:m,archiveWorkspace:g,linkEnvironment:v,unlinkEnvironment:_,linkOperationError:b,clearLinkOperationError:x},sessions:{sessions:S}}=ot(),[j,w]=y.useState(!1),[T,C]=y.useState(!1),[A,L]=y.useState(void 0),E=o.find(R=>R.id===t);if(!E&&r)return a.jsx(IU,{});if(!t||!E)return a.jsx(rs,{to:Bo,replace:!0});const M=m.filter(R=>R.linkedEnvironmentIds.includes(E.id)),H=S.filter(R=>R.environmentId===E.id),D=H.reduce((R,Z)=>R+(Z.costMillicents??0),0),z=OU[E.status]||"var(--text-tertiary)",Y=E.status==="connected",V=E.status==="connecting",Q=E.status==="disconnected"||E.status==="error"||E.status==="sleeping",ge=E.id in c?c[E.id]:void 0,X=()=>{p(E.id).catch(()=>{}),w(!1),s(Bo,{replace:!0})},re=()=>{C(!1),d(E.id,!0).catch(()=>{})},B=R=>{g(R).catch(()=>{}),L(void 0)};return a.jsxs("div",{className:Re.container,children:[a.jsx(ks,{isOpen:j,title:"Delete Environment?",description:`"${E.displayName||E.id}" will be permanently removed along with all its data.`,onConfirm:X,onCancel:()=>w(!1)}),a.jsx(ks,{isOpen:T,title:"Reprovision Environment?",description:"This will kill any active session and force a fresh provision cycle. The environment will be temporarily disconnected.",confirmLabel:"Reprovision",onConfirm:re,onCancel:()=>C(!1)}),a.jsxs("div",{className:Re.envHeader,children:[a.jsxs("div",{className:Re.envTitleRow,children:[a.jsx("span",{className:Re.statusDot,style:{color:z},children:"●"}),a.jsx("h2",{className:Re.envName,children:E.displayName||E.id}),a.jsx("span",{className:Re.statusBadge,style:{color:z},children:E.status})]}),a.jsxs("div",{className:Re.envMeta,children:[a.jsxs("span",{className:Re.metaTag,children:["Adapter: ",E.adapterType]}),H.length>0&&a.jsxs("span",{className:Re.metaTag,children:[H.length," session",H.length!==1?"s":""]}),D>0&&a.jsxs("span",{className:Re.metaTag,children:["Cost: ",Is(D)]})]})]}),a.jsxs("div",{className:Re.actions,children:[Y&&a.jsxs(a.Fragment,{children:[a.jsx("button",{className:Re.btnPrimary,onClick:()=>s(tx(E.id)),children:"New Chat"}),a.jsx("button",{className:Re.btnOutline,onClick:()=>{u(E.id).catch(()=>{})},children:"Stop"}),a.jsx("button",{className:Re.btnOutline,onClick:()=>C(!0),disabled:ge!==void 0,"data-testid":"env-reprovision-btn",children:"Reprovision"})]}),Q&&a.jsx("button",{className:Re.btnPrimary,onClick:()=>{d(E.id).catch(()=>{})},children:E.status==="error"?"Retry":E.status==="sleeping"?"Wake":"Connect"}),V&&ge!==void 0&&a.jsx("span",{className:Re.provisionMessage,children:ge.message}),E.status==="error"&&(ge==null?void 0:ge.stage)==="error"&&a.jsx("span",{className:Re.errorMessage,children:ge.message}),a.jsx("button",{className:Re.btnOutline,onClick:()=>s($N(E.id)),"data-testid":"env-edit-btn",children:"Edit Config"}),a.jsx("button",{className:Re.btnDanger,onClick:()=>w(!0),children:"Delete"})]}),a.jsxs("div",{className:Re.section,children:[a.jsxs("div",{className:Re.sectionHeader,children:[a.jsx("h3",{children:"Workspaces"}),a.jsx("button",{className:Re.btnPrimary,onClick:()=>s(`${ax}?environment=${encodeURIComponent(E.id)}`),"data-testid":"workspace-create-button",children:"+ New Workspace"}),(()=>{const R=m.filter(Z=>!Z.linkedEnvironmentIds.includes(E.id)&&Z.status==="active");return R.length===0?null:a.jsxs("select",{className:Re.btnPrimary,value:"",onChange:Z=>{Z.target.value&&v(Z.target.value,E.id).catch(()=>{})},"aria-label":"Link a workspace","data-testid":"link-workspace-select",children:[a.jsx("option",{value:"",children:"+ Link Workspace"}),R.map(Z=>a.jsx("option",{value:Z.id,children:Z.name},Z.id))]})})()]}),b&&a.jsxs("p",{className:Re.errorHint,"data-testid":"link-operation-error",role:"alert",children:[b,a.jsx("button",{className:Re.btnSmall,onClick:x,"aria-label":"Dismiss error","data-testid":"dismiss-link-error",children:"Dismiss"})]}),M.length===0&&a.jsx("p",{className:Re.empty,"data-testid":"linked-workspaces-empty",children:"No workspaces yet. Create one to get started."}),a.jsx("div",{className:Re.cardList,"data-testid":"linked-workspaces-list",children:M.map(R=>a.jsx(BU,{workspace:R,confirmArchiveId:A,onOpen:()=>s(Ri(R.id,E.id)),onArchive:()=>L(R.id),onConfirmArchive:()=>B(R.id),onCancelArchive:()=>L(void 0),onUnlink:()=>{_(R.id,E.id).catch(()=>{})}},R.id))})]})]})}function BU({workspace:t,confirmArchiveId:s,onOpen:o,onArchive:r,onConfirmArchive:c,onCancelArchive:d,onUnlink:u}){const p=s===t.id,m=t.repoUrl&&/^https?:\/\//.test(t.repoUrl);return a.jsxs("div",{className:Re.card,"data-testid":"workspace-card","data-workspace-id":t.id,children:[a.jsxs("div",{className:Re.cardHeader,children:[a.jsx("strong",{className:Re.cardName,children:t.name}),a.jsxs("div",{className:Re.cardActions,children:[a.jsx("button",{className:Re.btnSmall,onClick:o,children:"Open"}),a.jsx("button",{className:Re.btnSmall,onClick:u,disabled:t.linkedEnvironmentIds.length<=1,"data-testid":`unlink-workspace-${t.id}`,children:"Unlink"}),p?a.jsxs(a.Fragment,{children:[a.jsx("button",{className:Re.btnDanger,onClick:c,children:"Confirm"}),a.jsx("button",{className:Re.btnSmall,onClick:d,children:"Cancel"})]}):a.jsx("button",{className:Re.btnSmall,onClick:r,children:"Archive"})]})]}),t.description&&a.jsx("p",{className:Re.cardDescription,children:t.description}),t.repoUrl&&a.jsx("div",{className:Re.cardMeta,children:m?a.jsx("a",{href:t.repoUrl,target:"_blank",rel:"noopener noreferrer",className:Re.repoLink,children:t.repoUrl}):a.jsx("span",{children:t.repoUrl})})]})}const $U={credentials:"Credentials","github-accounts":"GitHub Accounts",personas:"Personas",schedules:"Schedules",appearance:"Appearance",about:"About",shortcuts:"Shortcuts",plugins:"Plugins"};function zU(){const s=Wt().pathname.replace(/^\/settings\/?/,"").split("/")[0],o=$U[s],r=jz(o);return a.jsxs("div",{className:ol.layout,children:[a.jsx(Ss,{segments:r}),a.jsx("div",{className:ol.content,children:a.jsx("div",{className:ol.tabPanel,children:a.jsx(ha,{})},s)})]})}function HU(){const{tokens:{tokens:t,setToken:s,deleteToken:o},credentials:{credentialProviders:r,updateCredentialProviders:c}}=ot(),{showToast:d}=hn();return a.jsxs(a.Fragment,{children:[a.jsx(K8,{credentialProviders:r,onUpdateCredentialProviders:u=>{c(u).catch(()=>{})}}),a.jsx(XL,{tokens:t,onSetToken:(u,p,m,g,v)=>{s(u,p,m,g,v).catch(()=>{})},onDeleteToken:u=>{o(u).catch(()=>{})},onShowToast:d})]})}function PU(){const{githubAccounts:{githubAccounts:t,githubAccountsLoading:s,addGitHubAccount:o,updateGitHubAccount:r,removeGitHubAccount:c,importGitHubAccounts:d}}=ot(),{showToast:u}=hn();return a.jsx(v8,{githubAccounts:t,githubAccountsLoading:s,onAddGitHubAccount:o,onUpdateGitHubAccount:r,onRemoveGitHubAccount:c,onImportGitHubAccounts:d,onShowToast:u})}function UU(){const{personas:{personas:t,deletePersona:s},appDefaultPersonaId:o,setAppDefaultPersonaId:r}=ot(),{showToast:c}=hn(),d=dt();return a.jsx(r7,{personas:t,appDefaultPersonaId:o,onDeletePersona:async u=>{try{await s(u)}catch(p){throw console.error("Failed to delete persona",{personaId:u,error:p}),c("Failed to delete persona","error"),p}},onSetAppDefaultPersonaId:async u=>{try{await r(u)}catch(p){console.error("Failed to set app default persona ID",{personaId:u,error:p}),c("Failed to set app default persona","error")}},onNavigateToNew:()=>d(HN),onNavigateToPersona:u=>d(nx(u))})}const VU="_container_1ooin_1",qU="_form_1ooin_7",GU="_formActions_1ooin_75",FU="_editableSection_1ooin_82",ZU="_defaultBadge_1ooin_93",KU="_typeToggle_1ooin_107",YU="_scriptEditor_1ooin_121",JU="_optional_1ooin_128",_s={container:VU,form:qU,formActions:GU,editableSection:FU,defaultBadge:ZU,typeToggle:KU,scriptEditor:YU,optional:JU},x_=[{value:"claude-code",label:"claude-code"},{value:"codex",label:"codex"},{value:"copilot",label:"copilot"},{value:"goose",label:"goose"},{value:"stub",label:"stub"},{value:"claude-code-acp",label:"claude-code-acp (experimental)"},{value:"codex-acp",label:"codex-acp (experimental)"},{value:"copilot-acp",label:"copilot-acp (experimental)"}],k_=[{value:"genaiscript",label:"genaiscript"}],WU="0";function S_(){const{personaId:t}=Vn(),s=dt(),{showToast:o}=hn(),{personas:{personas:r,createPersona:c,updatePersona:d,deletePersona:u},appDefaultPersonaId:p,setAppDefaultPersonaId:m}=ot(),g=t===void 0,v=g?void 0:r.find(b=>b.id===t);if(!g&&r.length>0&&!v)return a.jsx(rs,{to:rp,replace:!0});const _=[{label:"Settings",url:Ai},{label:"Personas",url:rp},{label:g?"New Persona":(v==null?void 0:v.name)??"Persona",url:void 0}];return a.jsxs("div",{className:_s.container,children:[a.jsx(Ss,{segments:_}),a.jsx(XU,{existing:v,isNew:g,appDefaultPersonaId:p,onCreatePersona:c,onUpdatePersona:d,onDeletePersona:u,onSetAppDefaultPersonaId:m,onDone:()=>{s(rp)},showToast:o})]})}function XU({existing:t,isNew:s,appDefaultPersonaId:o,onCreatePersona:r,onUpdatePersona:c,onDeletePersona:d,onSetAppDefaultPersonaId:u,onDone:p,showToast:m}){const g=dt(),[v,_]=y.useState((t==null?void 0:t.name)??""),[b,x]=y.useState((t==null?void 0:t.description)??""),[S,j]=y.useState((t==null?void 0:t.systemPrompt)??""),[w,T]=y.useState((t==null?void 0:t.runtime)??"claude-code"),[C,A]=y.useState((t==null?void 0:t.model)??"sonnet"),[L,E]=y.useState((t==null?void 0:t.maxTurns)??0),[M,H]=y.useState((t==null?void 0:t.type)==="script"?"script":"agent"),[D,z]=y.useState((t==null?void 0:t.script)??""),[Y,V]=y.useState((t==null?void 0:t.allowedMcpTools)??[]),[Q,ge]=y.useState(!1),[X,re]=y.useState(null),[B,R]=y.useState(!!s);y.useEffect(()=>{if(!s&&t&&!B){R(!0),_(t.name),x(t.description),j(t.systemPrompt);const ie=t.type==="script"?"script":"agent";T(ie==="script"?t.runtime||"genaiscript":t.runtime),A(t.model),E(t.maxTurns),H(ie),z(t.script||""),V(t.allowedMcpTools)}},[s,t,B]);const Z=ie=>{H(ie),ie==="script"?T("genaiscript"):w==="genaiscript"&&T("claude-code")},me=!s&&t===void 0,q=v.trim().length>0&&!me&&S.trim().length>0&&(M==="script"?D.trim().length>0:!!w&&!!C),le=s&&q,de=!s&&o===(t==null?void 0:t.id),xe=!s&&t&&!de&&M==="agent"&&!!w&&!!C,ke=(ie,We)=>{if(!ie.trim())return`${We} is required`},Ze=ie=>{if(ie.preventDefault(),!(me||!q)){if(t){c(t.id,v,b,S,w,C,L,M,D).then(()=>{m("Persona updated","success"),p()},()=>{m("Failed to save persona","error")});return}r(v,b,S,w,C,L,M,D,Y).then(We=>{m("Persona created","success"),g(nx(We.id),{replace:!0})},()=>{m("Failed to save persona","error")})}},Xe=()=>{t&&d(t.id).then(()=>{m("Persona deleted","success"),p()},()=>{m("Failed to delete persona","error")})},Se=async(ie,We,qt,ne)=>ie().then(()=>{We(),m(qt,"success")},()=>{m(ne,"error")}),fe=(ie,We)=>{if(!t)return;const qt=ie==="type"?String(We):M,ne=ie==="runtime"?String(We):ie==="type"?String(We)==="script"?"genaiscript":w==="genaiscript"?"claude-code":w:w,Tt=ie==="model"?String(We):C,Lt=ie==="maxTurns"?Number(We):L,Bt=ie==="systemPrompt"?String(We):S,Pe=ie==="script"?String(We):D;Se(()=>c(t.id,ie==="name"?String(We):v,ie==="description"?String(We):b,Bt,ne,Tt,Lt,qt,Pe),()=>{if(ie==="type"){const ln=String(We)==="script"?"script":"agent";H(ln),T(ne)}ie==="runtime"&&T(String(We)),ie==="name"&&_(String(We)),ie==="description"&&x(String(We)),ie==="systemPrompt"&&j(String(We)),ie==="model"&&A(String(We)),ie==="maxTurns"&&E(Number(We)),ie==="script"&&z(String(We))},"Persona updated","Failed to update persona").catch(()=>{})},be=ie=>{Ze(ie)},Vt=()=>{t&&u(t.id).then(()=>{m("Set as app default","success")},()=>{m("Failed to set app default","error")})};return a.jsxs(a.Fragment,{children:[me?a.jsxs("div",{className:_s.form,children:[a.jsx("h3",{children:"Edit Persona"}),a.jsx("p",{children:"Loading persona..."})]}):s?a.jsxs("form",{onSubmit:be,className:_s.form,children:[a.jsx("h3",{children:"Create Persona"}),a.jsxs("div",{className:_s.typeToggle,"data-testid":"persona-type-toggle",children:[a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:"personaType",value:"agent",checked:M==="agent",onChange:()=>Z("agent")}),"Agent"]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:"personaType",value:"script",checked:M==="script",onChange:()=>Z("script")}),"Script"]})]}),a.jsxs("label",{children:["Name",a.jsx("input",{type:"text",value:v,onChange:ie=>_(ie.target.value),placeholder:M==="script"?"e.g. Nightly Report":"e.g. Frontend Engineer",required:!0,"data-testid":"persona-detail-name"})]}),a.jsxs("label",{children:["Description",a.jsx("input",{type:"text",value:b,onChange:ie=>x(ie.target.value),placeholder:"Brief description...","data-testid":"persona-detail-description"})]}),a.jsxs("label",{children:["Runtime",a.jsx("select",{value:w,onChange:ie=>T(ie.target.value),"data-testid":"persona-runtime-select",children:(M==="script"?k_:x_).map(ie=>a.jsx("option",{value:ie.value,children:ie.label},ie.value))})]}),M==="agent"&&a.jsxs(a.Fragment,{children:[a.jsxs("label",{children:["Model",a.jsx("input",{type:"text",value:C,onChange:ie=>A(ie.target.value),placeholder:"e.g. sonnet","data-testid":"persona-detail-model"})]}),a.jsxs("label",{children:["Max Turns",a.jsx("input",{type:"number",value:L,onChange:ie=>E(parseInt(ie.target.value,10)||0),min:0,"data-testid":"persona-detail-max-turns"})]}),a.jsxs("label",{children:["System Prompt",a.jsx("textarea",{value:S,onChange:ie=>j(ie.target.value),placeholder:"You are a senior frontend engineer...",rows:10,required:!0,"data-testid":"persona-detail-prompt"})]})]}),M==="script"&&a.jsxs(a.Fragment,{children:[a.jsxs("label",{children:["Model ",a.jsx("span",{className:_s.optional,children:"(optional)"}),a.jsx("input",{type:"text",value:C,onChange:ie=>A(ie.target.value),placeholder:"e.g. sonnet (leave empty for script-only)","data-testid":"persona-detail-model"})]}),a.jsxs("label",{children:["System Prompt",a.jsx("textarea",{value:S,onChange:ie=>j(ie.target.value),placeholder:"Context for the script...",rows:4,required:!0,"data-testid":"persona-detail-prompt"})]}),a.jsxs("label",{children:["Script",a.jsx("textarea",{value:D,onChange:ie=>z(ie.target.value),placeholder:`script({ model: "openai:gpt-4o" });
741
-
742
- const grackle = await host.mcpServer({
743
- id: "grackle",
744
- url: env.vars.GRACKLE_MCP_URL,
745
- });
746
-
747
- $\`Summarize the current tasks.\`;`,rows:20,className:_s.scriptEditor,required:!0,"data-testid":"persona-script-editor"})]})]}),M==="agent"&&a.jsxs("div",{children:[a.jsx("label",{children:"Allowed MCP Tools"}),a.jsx(l_,{selectedTools:Y,onChange:V})]}),a.jsxs("div",{className:_s.formActions,children:[a.jsx(rn,{type:"submit",variant:"primary",size:"md",disabled:!le,"data-testid":"persona-detail-save",children:"Create"}),a.jsx(rn,{type:"button",variant:"outline",size:"md",onClick:p,"data-testid":"persona-detail-cancel",children:"Cancel"})]})]}):t?a.jsxs("div",{className:_s.form,children:[a.jsx("h3",{children:"Edit Persona"}),a.jsxs("div",{className:_s.formActions,children:[a.jsx(rn,{type:"button",variant:"outline",size:"md",onClick:p,"data-testid":"persona-detail-cancel",children:"Back to Personas"}),xe&&a.jsx(rn,{type:"button",variant:"ghost",size:"md",onClick:Vt,"data-testid":"persona-detail-set-default",children:"Set as App Default"}),de&&a.jsx("span",{className:_s.defaultBadge,children:"App Default"}),a.jsx(rn,{type:"button",variant:"danger",size:"md",onClick:()=>ge(!0),"data-testid":"persona-detail-delete",children:"Delete"})]}),a.jsxs("div",{className:_s.editableSection,children:[a.jsxs("label",{children:["Name",a.jsx(Yt,{value:v,onSave:ie=>{fe("name",ie)},validate:ie=>ke(ie,"Name"),fieldId:"persona-name",activeFieldId:X,onActivate:re,ariaLabel:"Persona name","data-testid":"persona-detail-name"})]}),a.jsxs("label",{children:["Description",a.jsx(Yt,{value:b,onSave:ie=>{fe("description",ie)},fieldId:"persona-description",activeFieldId:X,onActivate:re,placeholder:"Brief description...",ariaLabel:"Persona description","data-testid":"persona-detail-description"})]}),a.jsxs("label",{children:["Type",a.jsx(jd,{value:M,onSave:ie=>{fe("type",ie)},options:[{value:"agent",label:"Agent"},{value:"script",label:"Script"}],fieldId:"persona-type",activeFieldId:X,onActivate:re,ariaLabel:"Persona type","data-testid":"persona-type-toggle"})]}),a.jsxs("label",{children:["Runtime",a.jsx(jd,{value:w,onSave:ie=>{fe("runtime",ie)},options:M==="script"?k_:x_,fieldId:"persona-runtime",activeFieldId:X,onActivate:re,ariaLabel:"Persona runtime","data-testid":"persona-runtime"})]}),a.jsxs("label",{children:["Model",M==="script"?" (optional)":"",a.jsx(Yt,{value:C,onSave:ie=>{fe("model",ie)},validate:M==="agent"?ie=>ke(ie,"Model"):void 0,fieldId:"persona-model",activeFieldId:X,onActivate:re,placeholder:M==="script"?"e.g. sonnet (leave empty for script-only)":"e.g. sonnet",ariaLabel:"Persona model","data-testid":"persona-detail-model"})]}),a.jsxs("label",{children:["Max Turns",a.jsx(Yt,{value:String(L),onSave:ie=>{fe("maxTurns",parseInt(ie,10)||0)},validate:ie=>/^\d+$/.test(ie.trim())?void 0:"Max Turns must be a non-negative integer",fieldId:"persona-max-turns",activeFieldId:X,onActivate:re,placeholder:WU,ariaLabel:"Persona max turns","data-testid":"persona-detail-max-turns"})]}),a.jsxs("label",{children:["System Prompt",a.jsx(ym,{value:S,onSave:ie=>{fe("systemPrompt",ie)},validate:ie=>ke(ie,"System Prompt"),fieldId:"persona-system-prompt",activeFieldId:X,onActivate:re,placeholder:M==="script"?"Context for the script...":"You are a senior frontend engineer...",ariaLabel:"Persona system prompt","data-testid":"persona-detail-prompt"})]}),M==="script"&&a.jsxs("label",{children:["Script",a.jsx(ym,{value:D,onSave:ie=>{fe("script",ie)},validate:ie=>ke(ie,"Script"),fieldId:"persona-script",activeFieldId:X,onActivate:re,placeholder:`script({ model: "openai:gpt-4o" });
748
-
749
- const grackle = await host.mcpServer({
750
- id: "grackle",
751
- url: env.vars.GRACKLE_MCP_URL,
752
- });
753
-
754
- $\`Summarize the current tasks.\`;`,ariaLabel:"Persona script","data-testid":"persona-script-editor"})]}),M==="agent"&&a.jsxs("div",{children:[a.jsx("label",{children:"Allowed MCP Tools"}),a.jsx(l_,{selectedTools:Y,onChange:ie=>{V(ie),Se(()=>c(t.id,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,ie),()=>{},"MCP tools updated","Failed to update MCP tools").catch(()=>{})}})]})]}),!xe&&!de&&a.jsx("p",{style:{fontSize:"var(--font-size-xs)",color:"var(--text-tertiary)",marginTop:"var(--space-xs)"},children:"Only agent personas with a runtime and model can be set as app default."})]}):null,a.jsx(ks,{isOpen:Q,title:"Delete Persona?",description:`"${t==null?void 0:t.name}" will be permanently removed.`,confirmLabel:"Delete",onConfirm:Xe,onCancel:()=>ge(!1)})]})}function QU(){const{schedules:{schedules:t,deleteSchedule:s,updateSchedule:o},personas:{personas:r}}=ot(),{showToast:c}=hn(),d=dt();return a.jsx(L7,{schedules:t,personas:r,onDeleteSchedule:async u=>{try{await s(u)}catch(p){throw console.error("Failed to delete schedule",{scheduleId:u,error:p}),c("Failed to delete schedule","error"),p}},onToggleEnabled:async(u,p)=>{try{return await o(u,p)}catch(m){throw console.error("Failed to update schedule",{scheduleId:u,error:m}),c("Failed to update schedule","error"),m}},onNavigateToNew:()=>d(PN),onNavigateToSchedule:u=>d(sx(u))})}const eV="_container_1g4qh_1",tV="_form_1g4qh_7",nV="_formActions_1g4qh_66",sV="_editableSection_1g4qh_73",aV="_helperText_1g4qh_84",iV="_metaSection_1g4qh_90",oV="_optional_1g4qh_108",rV="_readonlyValue_1g4qh_113",Bn={container:eV,form:tV,formActions:nV,editableSection:sV,helperText:aV,metaSection:iV,optional:oV,readonlyValue:rV};function j_(){const{scheduleId:t}=Vn(),s=dt(),{showToast:o}=hn(),{schedules:{schedules:r,schedulesLoading:c,createSchedule:d,updateSchedule:u,deleteSchedule:p},personas:{personas:m},workspaces:{workspaces:g}}=ot(),v=t===void 0,_=v?void 0:r.find(x=>x.id===t);if(!v&&!c&&r.length>0&&!_)return a.jsx(rs,{to:lp,replace:!0});const b=[{label:"Settings",url:Ai},{label:"Schedules",url:lp},{label:v?"New Schedule":(_==null?void 0:_.title)??"Schedule",url:void 0}];return a.jsxs("div",{className:Bn.container,children:[a.jsx(Ss,{segments:b}),a.jsx(lV,{existing:_,isNew:v,personas:m,workspaces:g,onCreateSchedule:d,onUpdateSchedule:u,onDeleteSchedule:p,onDone:()=>{s(lp)},showToast:o})]})}function lV({existing:t,isNew:s,personas:o,workspaces:r,onCreateSchedule:c,onUpdateSchedule:d,onDeleteSchedule:u,onDone:p,showToast:m}){var B;const g=dt(),[v,_]=y.useState((t==null?void 0:t.title)??""),[b,x]=y.useState((t==null?void 0:t.description)??""),[S,j]=y.useState((t==null?void 0:t.scheduleExpression)??""),[w,T]=y.useState((t==null?void 0:t.personaId)??""),[C,A]=y.useState((t==null?void 0:t.workspaceId)??""),[L,E]=y.useState(!1),[M,H]=y.useState(null);y.useEffect(()=>{s||t&&M===null&&(_(t.title),x(t.description),j(t.scheduleExpression),T(t.personaId),A(t.workspaceId))},[s,t,M]);const D=!s&&t===void 0,z=s&&v.trim().length>0&&S.trim().length>0&&w.length>0,Y=o.map(R=>({value:R.id,label:R.name})),V=[{value:"",label:"System-level (no workspace)"},...r.map(R=>({value:R.id,label:R.name}))],Q=R=>{R.preventDefault(),z&&c(v,b,S,w,C||void 0).then(Z=>{m("Schedule created","success"),g(sx(Z.id),{replace:!0})},()=>{m("Failed to create schedule","error")})},ge=(R,Z)=>{t&&d(t.id,{[R]:Z}).then(()=>{m("Schedule updated","success"),R==="title"&&_(String(Z)),R==="description"&&x(String(Z)),R==="scheduleExpression"&&j(String(Z)),R==="personaId"&&T(String(Z))},()=>{m("Failed to update schedule","error")})},X=()=>{if(!t)return;const R=!t.enabled;d(t.id,{enabled:R}).then(()=>{m(R?"Schedule enabled":"Schedule disabled","success")},()=>{m("Failed to update schedule","error")})},re=()=>{t&&u(t.id).then(()=>{m("Schedule deleted","success"),p()},()=>{m("Failed to delete schedule","error")})};return a.jsxs(a.Fragment,{children:[D?a.jsxs("div",{className:Bn.form,children:[a.jsx("h3",{children:"Edit Schedule"}),a.jsx("p",{children:"Loading schedule..."})]}):s?a.jsxs("form",{onSubmit:Q,className:Bn.form,children:[a.jsx("h3",{children:"Create Schedule"}),a.jsxs("label",{children:["Title",a.jsx("input",{type:"text",value:v,onChange:R=>_(R.target.value),placeholder:"e.g. Nightly Review",required:!0,"data-testid":"schedule-detail-title"})]}),a.jsxs("label",{children:["Description ",a.jsx("span",{className:Bn.optional,children:"(optional)"}),a.jsx("input",{type:"text",value:b,onChange:R=>x(R.target.value),placeholder:"Brief description...","data-testid":"schedule-detail-description"})]}),a.jsxs("label",{children:["Schedule Expression",a.jsx("input",{type:"text",value:S,onChange:R=>j(R.target.value),placeholder:"e.g. 30s, 5m, 1h, or 0 9 * * MON",required:!0,"data-testid":"schedule-detail-expression"}),a.jsxs("p",{className:Bn.helperText,children:["Interval: ",a.jsx("code",{children:"30s"}),", ",a.jsx("code",{children:"5m"}),", ",a.jsx("code",{children:"1h"}),", ",a.jsx("code",{children:"1d"})," (min 10s)  |  Cron: ",a.jsx("code",{children:"0 9 * * MON"})," (standard 5-field cron syntax)"]})]}),a.jsxs("label",{children:["Persona",a.jsxs("select",{value:w,onChange:R=>T(R.target.value),required:!0,"data-testid":"schedule-detail-persona",children:[a.jsx("option",{value:"",children:"Select a persona..."}),Y.map(R=>a.jsx("option",{value:R.value,children:R.label},R.value))]})]}),a.jsxs("label",{children:["Workspace ",a.jsx("span",{className:Bn.optional,children:"(optional)"}),a.jsx("select",{value:C,onChange:R=>A(R.target.value),"data-testid":"schedule-detail-workspace",children:V.map(R=>a.jsx("option",{value:R.value,children:R.label},R.value))})]}),a.jsxs("div",{className:Bn.formActions,children:[a.jsx(rn,{type:"submit",variant:"primary",size:"md",disabled:!z,"data-testid":"schedule-detail-save",children:"Create"}),a.jsx(rn,{type:"button",variant:"outline",size:"md",onClick:p,"data-testid":"schedule-detail-cancel",children:"Cancel"})]})]}):t?a.jsxs("div",{className:Bn.form,children:[a.jsx("h3",{children:"Edit Schedule"}),a.jsxs("div",{className:Bn.formActions,children:[a.jsx(rn,{type:"button",variant:"outline",size:"md",onClick:p,"data-testid":"schedule-detail-cancel",children:"Back to Schedules"}),a.jsx(rn,{type:"button",variant:t.enabled?"ghost":"primary",size:"md",onClick:X,"data-testid":"schedule-detail-toggle",children:t.enabled?"Disable":"Enable"}),a.jsx(rn,{type:"button",variant:"danger",size:"md",onClick:()=>E(!0),"data-testid":"schedule-detail-delete",children:"Delete"})]}),a.jsxs("div",{className:Bn.editableSection,children:[a.jsxs("label",{children:["Title",a.jsx(Yt,{value:v,onSave:R=>{ge("title",R)},validate:R=>R.trim()?void 0:"Title is required",fieldId:"schedule-title",activeFieldId:M,onActivate:H,ariaLabel:"Schedule title","data-testid":"schedule-detail-title"})]}),a.jsxs("label",{children:["Description",a.jsx(Yt,{value:b,onSave:R=>{ge("description",R)},fieldId:"schedule-description",activeFieldId:M,onActivate:H,placeholder:"Brief description...",ariaLabel:"Schedule description","data-testid":"schedule-detail-description"})]}),a.jsxs("label",{children:["Schedule Expression",a.jsx(Yt,{value:S,onSave:R=>{ge("scheduleExpression",R)},validate:R=>R.trim()?void 0:"Schedule expression is required",fieldId:"schedule-expression",activeFieldId:M,onActivate:H,placeholder:"e.g. 30s, 5m, 1h, or 0 9 * * MON",ariaLabel:"Schedule expression","data-testid":"schedule-detail-expression"})]}),a.jsxs("label",{children:["Persona",a.jsx(jd,{value:w,onSave:R=>{ge("personaId",R)},options:Y,fieldId:"schedule-persona",activeFieldId:M,onActivate:H,ariaLabel:"Schedule persona","data-testid":"schedule-detail-persona"})]}),a.jsxs("label",{children:["Workspace ",a.jsx("span",{className:Bn.optional,children:"(optional — set at creation)"}),a.jsx("span",{className:Bn.readonlyValue,"data-testid":"schedule-detail-workspace",children:((B=r.find(R=>R.id===t.workspaceId))==null?void 0:B.name)??"System-level (no workspace)"})]})]}),a.jsxs("div",{className:Bn.metaSection,children:[t.lastRunAt?a.jsxs("span",{children:["Last run: ",Uo(t.lastRunAt)]}):a.jsx("span",{children:"Last run: Never"}),t.enabled&&t.nextRunAt?a.jsxs("span",{children:["Next run: ",q1(t.nextRunAt)]}):null,t.runCount>0&&a.jsxs("span",{children:["Total runs: ",t.runCount]}),a.jsxs("span",{children:["Created: ",Uo(t.createdAt)]})]})]}):null,a.jsx(ks,{isOpen:L,title:"Delete Schedule?",description:`"${t==null?void 0:t.title}" will be permanently removed. Tasks already created by this schedule will not be affected.`,confirmLabel:"Delete",onConfirm:re,onCancel:()=>E(!1)})]})}function cV(){const{themeId:t,resolvedThemeId:s,setTheme:o,preferSystem:r,setPreferSystem:c}=ak();return a.jsx(QL,{themeId:t,resolvedThemeId:s,onSetTheme:o,preferSystem:r,onSetPreferSystem:c})}function dV(){const[t,s]=y.useState(void 0);return y.useEffect(()=>{let o=!1;return(async()=>{try{const c=await Be.getVersionStatus({});o||s({currentVersion:c.currentVersion,latestVersion:c.latestVersion,updateAvailable:c.updateAvailable,isDocker:c.isDocker})}catch{}})().catch(()=>{}),()=>{o=!0}},[]),t}function uV(){const{connectionStatus:t,environments:{environments:s},sessions:{sessions:o}}=ot(),r=dV();return a.jsxs(a.Fragment,{children:[r&&a.jsx(QO,{currentVersion:r.currentVersion,latestVersion:r.latestVersion,updateAvailable:r.updateAvailable,isDocker:r.isDocker}),a.jsx(nB,{connectionStatus:t,environments:s,sessions:o})]})}function fV(){return a.jsx(F8,{})}function pV(){const{plugins:{plugins:t,pluginsLoading:s,setPluginEnabled:o}}=ot();return a.jsx(g8,{plugins:t,loading:s,onSetPluginEnabled:(r,c)=>{o(r,c).catch(()=>{})}})}const T_=$i();function mV(){const t=dt();return ca({key:"?"},()=>{t(UN)}),ca({key:"n"},()=>{t(T_)}),ca({key:"N"},()=>{t(T_)}),a.jsx(a.Fragment,{})}function Ko(t){const s=bz();y.useLayoutEffect(()=>(s(t),()=>{s(void 0)}),[t,s])}function hV(){const{workspaces:{workspaces:t},tasks:{tasks:s}}=ot(),o=y.useMemo(()=>a.jsx(EO,{workspaces:t,tasks:s}),[t,s]);return Ko(o),a.jsx(ha,{})}function gV(){const{environments:{environments:t}}=ot(),s=y.useMemo(()=>a.jsx(zI,{environments:t}),[t]);return Ko(s),a.jsx(ha,{})}function vV(){const t=y.useMemo(()=>a.jsx(P7,{}),[]);return Ko(t),a.jsx(ha,{})}function yV(){const{findings:{findings:t,loadFindings:s,loadAllFindings:o}}=ot(),{workspaceId:r,environmentId:c}=Vn();y.useEffect(()=>{r?s(r).catch(()=>{}):o().catch(()=>{})},[r,s,o]);const d=y.useMemo(()=>a.jsx(JI,{findings:t,workspaceId:r,environmentId:c}),[t,r,c]);return Ko(d),a.jsx(ha,{})}function bV(){const{knowledge:t,workspaces:{workspaces:s}}=ot(),o=y.useCallback(p=>{t.search(p).catch(()=>{})},[t]),r=y.useCallback(()=>{t.clearSearch()},[t]),c=y.useCallback(p=>{t.selectNode(p).catch(()=>{})},[t]),d=y.useCallback(p=>{t.loadRecent(p||void 0).catch(()=>{})},[t]),u=y.useMemo(()=>a.jsx(Y5,{nodes:t.graphData.nodes,workspaces:s,loading:t.loading,searchQuery:t.searchQuery,onSearch:o,onClearSearch:r,onSelectNode:c,onWorkspaceChange:d}),[t,s,o,r,c,d]);return Ko(u),a.jsx(ha,{})}function _V(){const{streams:{streams:t,streamsLoading:s,streamsLoadError:o,streamsLoadedOnce:r,loadStreams:c}}=ot(),d=y.useCallback(()=>{c().catch(()=>{})},[c]),u=y.useMemo(()=>a.jsx(Q7,{streams:t,loading:s,streamsLoadError:o,streamsLoadedOnce:r,onRefresh:d}),[t,s,o,r,d]);return Ko(u),a.jsx(ha,{})}const xV="_container_ce571_1",kV="_title_ce571_6",Nd={container:xV,title:kV};function SV(){return a.jsxs("div",{className:Nd.container,"aria-hidden":"true",children:[a.jsx("h1",{className:Nd.title,children:"Findings"}),a.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"var(--space-sm)"},children:Array.from({length:4},(t,s)=>a.jsx(Sd,{lines:3},s))})]})}function w_(){const{environmentId:t,workspaceId:s}=Vn(),{findings:{findings:o,findingsLoading:r,loadFindings:c},workspaces:{workspaces:d},environments:{environments:u}}=ot(),p=dt();y.useEffect(()=>{s&&c(s).catch(()=>{})},[s,c]);const m=y.useCallback(v=>{p(Qp(v,s,t))},[p,s,t]);if(r)return a.jsx(SV,{});const g=s&&t?uk("Findings",s,t,d,u).slice(0,-1):Dz();return a.jsxs("div",{className:Nd.container,"data-testid":"findings-list-page",children:[a.jsx(Ss,{segments:g}),a.jsx("h1",{className:Nd.title,children:"Findings"}),a.jsx(Y1,{findings:o,onFindingClick:m})]})}const jV="_container_1wwpb_1",TV="_notFound_1wwpb_6",wV="_header_1wwpb_12",NV="_categoryBadge_1wwpb_19",CV="_title_1wwpb_28",EV="_content_1wwpb_35",AV="_tags_1wwpb_77",DV="_tag_1wwpb_77",RV="_meta_1wwpb_92",MV="_metaTimestamp_1wwpb_100",IV="_metaLink_1wwpb_105",kn={container:jV,notFound:TV,header:wV,categoryBadge:NV,title:CV,content:EV,tags:AV,tag:DV,meta:RV,metaTimestamp:MV,metaLink:IV};function N_(){const{findingId:t,environmentId:s,workspaceId:o}=Vn(),{findings:{selectedFinding:r,findingLoading:c,loadFinding:d},workspaces:{workspaces:u},environments:{environments:p}}=ot(),m=dt();if(y.useEffect(()=>{t&&d(t).catch(()=>{})},[t,d]),c)return a.jsx("div",{className:kn.container,"data-testid":"finding-detail-page",children:a.jsx("div",{className:kn.notFound,children:"Loading..."})});if(!r)return a.jsx("div",{className:kn.container,"data-testid":"finding-detail-page",children:a.jsx("div",{className:kn.notFound,children:"Finding not found."})});const g=uk(r.title,o,s,u,p),v=Td(r.category);return a.jsxs("div",{className:kn.container,"data-testid":"finding-detail-page",children:[a.jsx(Ss,{segments:g}),a.jsxs("div",{className:kn.header,children:[a.jsx("span",{className:kn.categoryBadge,style:{background:v.bg,color:v.text},children:r.category}),a.jsx("h1",{className:kn.title,children:r.title})]}),r.content&&a.jsx("div",{className:kn.content,children:a.jsx(Ed,{remarkPlugins:[Ad],children:r.content})}),r.tags.length>0&&a.jsx("div",{className:kn.tags,children:r.tags.map(_=>a.jsx("span",{className:kn.tag,children:_},_))}),a.jsxs("div",{className:kn.meta,children:[a.jsx("span",{className:kn.metaTimestamp,title:r.createdAt,children:Uo(r.createdAt)}),r.taskId&&a.jsx("button",{type:"button",className:kn.metaLink,onClick:()=>{m(Hn(r.taskId))},children:"View Task"}),r.sessionId&&a.jsx("button",{type:"button",className:kn.metaLink,onClick:()=>{m(Bd(r.sessionId))},children:"View Session"})]})]})}const OV="_wizard_1260s_1",LV="_container_1260s_10",BV="_stepContent_1260s_19",$V="_logoArea_1260s_28",zV="_logoImage_1260s_32",HV="_heading_1260s_41",PV="_tagline_1260s_49",UV="_subtitle_1260s_56",VV="_featureList_1260s_64",qV="_runtimeGrid_1260s_89",GV="_runtimeCard_1260s_101",FV="_runtimeName_1260s_133",ZV="_runtimeDescription_1260s_139",KV="_buttonRow_1260s_144",YV="_primaryButton_1260s_151",JV="_ghostButton_1260s_185",WV="_dots_1260s_213",XV="_dot_1260s_213",Je={wizard:OV,container:LV,stepContent:BV,logoArea:$V,logoImage:zV,heading:HV,tagline:PV,subtitle:UV,featureList:VV,runtimeGrid:qV,runtimeCard:GV,runtimeName:FV,runtimeDescription:ZV,buttonRow:KV,primaryButton:YV,ghostButton:JV,dots:WV,dot:XV};function QV({onNext:t}){return a.jsxs("div",{className:Je.stepContent,"data-testid":"setup-welcome",children:[a.jsx("div",{className:Je.logoArea,children:a.jsx("img",{src:"/grackle-logo.png",alt:"Grackle",className:Je.logoImage})}),a.jsx("h1",{className:Je.heading,children:"Welcome to Grackle"}),a.jsx("p",{className:Je.tagline,children:"Multi-agent orchestration for software teams"}),a.jsx("button",{type:"button",className:Je.primaryButton,onClick:t,"data-testid":"setup-get-started",children:"Get Started"})]})}function eq({onNext:t,onBack:s}){return a.jsxs("div",{className:Je.stepContent,"data-testid":"setup-about",children:[a.jsx("h2",{className:Je.heading,children:"What is Grackle?"}),a.jsxs("ul",{className:Je.featureList,children:[a.jsx("li",{children:"Run Claude, Copilot, and Codex agents side by side"}),a.jsx("li",{children:"Provision and control dev environments — SSH, Codespaces, or local"}),a.jsx("li",{children:"Organize work into workspaces with agent-executable tasks"}),a.jsx("li",{children:"Customize agent behavior with personas, tools, and MCP servers"}),a.jsx("li",{children:"Live-stream agent sessions with full terminal replay"})]}),a.jsxs("div",{className:Je.buttonRow,children:[a.jsx("button",{type:"button",className:Je.ghostButton,onClick:s,children:"Back"}),a.jsx("button",{type:"button",className:Je.primaryButton,onClick:t,"data-testid":"setup-about-next",children:"Next"})]})]})}const tq=[{id:"claude-code",name:"Claude Code",description:"Anthropic's agentic coding tool"},{id:"copilot",name:"Copilot Coding Agent",description:"GitHub's AI pair programmer"},{id:"codex",name:"Codex CLI",description:"OpenAI's coding agent"},{id:"goose",name:"Goose",description:"Block's open-source AI coding agent"}];function nq({currentRuntime:t,onFinish:s,onBack:o,finishDisabled:r}){const[c,d]=y.useState(t||"claude-code");return y.useEffect(()=>{t&&d(t)},[t]),a.jsxs("div",{className:Je.stepContent,"data-testid":"setup-runtime",children:[a.jsx("h2",{className:Je.heading,children:"Choose Your Runtime"}),a.jsx("p",{className:Je.subtitle,children:"Select the primary agent runtime for your workspace. You can change this later."}),a.jsx("div",{className:Je.runtimeGrid,children:tq.map(u=>a.jsxs("button",{type:"button",className:Je.runtimeCard,"data-selected":c===u.id,"aria-pressed":c===u.id,"data-testid":`runtime-card-${u.id}`,onClick:()=>d(u.id),children:[a.jsx("span",{className:Je.runtimeName,children:u.name}),a.jsx("span",{className:Je.runtimeDescription,children:u.description})]},u.id))}),a.jsxs("div",{className:Je.buttonRow,children:[a.jsx("button",{type:"button",className:Je.ghostButton,onClick:o,children:"Back"}),a.jsx("button",{type:"button",className:Je.primaryButton,onClick:()=>{s(c)},disabled:r,"data-testid":"setup-runtime-next",children:"Next"})]})]})}function sq(){return typeof Notification<"u"}function aq({onFinish:t,onBack:s,finishDisabled:o}){const r=sq(),c=r&&Notification.permission!=="default";function d(){r&&Notification.requestPermission().catch(()=>{}),t()}return a.jsxs("div",{className:Je.stepContent,"data-testid":"setup-notifications",children:[a.jsx("h2",{className:Je.heading,children:"Stay in the Loop"}),a.jsx("p",{className:Je.subtitle,children:"Grackle can send you a browser notification when an agent needs your input, so you never miss an important moment."}),c?a.jsx("p",{className:Je.subtitle,children:Notification.permission==="granted"?"Notifications are already enabled.":"Notifications have been blocked. You can change this in your browser settings."}):null,a.jsxs("div",{className:Je.buttonRow,children:[a.jsx("button",{type:"button",className:Je.ghostButton,onClick:s,disabled:o,children:"Back"}),!c&&r?a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:Je.ghostButton,onClick:t,disabled:o,"data-testid":"setup-notifications-skip",children:"Skip"}),a.jsx("button",{type:"button",className:Je.primaryButton,onClick:d,disabled:o,"data-testid":"setup-notifications-enable",children:"Enable Notifications"})]}):a.jsx("button",{type:"button",className:Je.primaryButton,onClick:t,disabled:o,"data-testid":"setup-finish",children:"Finish"})]})]})}const iq=4,C_={"claude-code":"sonnet",copilot:"gpt-4o",codex:"o3",goose:""};function oq(){const{personas:{personas:t,updatePersona:s},completeOnboarding:o,onboardingCompleted:r}=ot(),{showToast:c}=hn(),d=dt(),[u,p]=y.useState(0),[m,g]=y.useState("claude-code"),[v,_]=y.useState(!1),b=t.find(j=>j.id==="claude-code"),x=y.useCallback(j=>{g(j),p(3)},[]),S=y.useCallback(()=>{const j=m;_(!0);const w=[];if(b&&j!==b.runtime){const C=C_[j]??"sonnet";w.push(s(b.id,void 0,void 0,void 0,j,C))}const T=t.find(C=>C.id===hy);if(T&&j!==T.runtime){const C=C_[j]??"sonnet";w.push(s(hy,void 0,void 0,void 0,j,C))}Promise.all(w).then(()=>o()).then(()=>{d("/",{replace:!0})},()=>{c("Failed to update runtime -- please try again","error"),_(!1)})},[m,b,t,s,o,d,c]);return r===!0?a.jsx(rs,{to:"/",replace:!0}):a.jsx("div",{className:Je.wizard,"data-testid":"setup-wizard",children:a.jsxs("div",{className:Je.container,children:[a.jsx(ls,{mode:"wait",children:a.jsxs(At.div,{initial:{opacity:0,x:40},animate:{opacity:1,x:0},exit:{opacity:0,x:-40},transition:{duration:.2,ease:"easeInOut"},children:[u===0&&a.jsx(QV,{onNext:()=>p(1)}),u===1&&a.jsx(eq,{onNext:()=>p(2),onBack:()=>p(0)}),u===2&&a.jsx(nq,{currentRuntime:m,onFinish:x,onBack:()=>p(1),finishDisabled:!b}),u===3&&a.jsx(aq,{onFinish:S,onBack:()=>p(2),finishDisabled:v})]},u)}),a.jsx("div",{className:Je.dots,children:Array.from({length:iq},(j,w)=>a.jsx("span",{className:Je.dot,"data-active":w===u},w))})]})})}const rq="_root_zndgp_1",lq="_body_zndgp_7",cq="_main_zndgp_19",dq="_sidebarWrapper_zndgp_26",uq="_overlay_zndgp_51",Qr={root:rq,body:lq,main:cq,sidebarWrapper:dq,overlay:uq},fq=y.lazy(()=>aj(()=>import("./KnowledgePage--fPNWRzR.js"),__vite__mapDeps([0,1,2,3,4])).then(t=>({default:t.KnowledgePage}))),gk=typeof window<"u"&&new URLSearchParams(window.location.search).has("mock");function pq({tabs:t}){const{connectionStatus:s,environments:{environments:o},sessions:{sessions:r},tasks:{tasks:c}}=ot(),{toasts:d,dismissToast:u}=hn(),p=Wt(),m=yz(),g=m!==void 0,[v,_]=y.useState(!1),b=y.useCallback(()=>_(x=>!x),[]);return y.useEffect(()=>{_(!1)},[p.pathname]),y.useEffect(()=>{if(!v)return;const x=S=>{S.key==="Escape"&&_(!1)};return document.addEventListener("keydown",x),()=>{document.removeEventListener("keydown",x)}},[v]),a.jsxs(a.Fragment,{children:[a.jsx(lI,{connectionStatus:s,environments:o,sessions:r,onToggleSidebar:g?b:void 0,sidebarOpen:v}),a.jsx(hI,{tabs:t}),a.jsxs("div",{className:Qr.body,children:[g&&a.jsx("div",{className:Qr.sidebarWrapper,"data-sidebar-open":v,children:a.jsx(xI,{content:m})}),g&&v&&a.jsx("div",{className:Qr.overlay,"data-testid":"drawer-overlay",onClick:()=>_(!1)}),a.jsxs("div",{className:Qr.main,children:[a.jsx(ha,{}),a.jsx(EI,{sessions:r,tasks:c,environments:o})]})]}),a.jsx(UO,{toasts:d,onDismiss:u}),a.jsx(mV,{})]})}function mq(){const{sessions:{lastSpawnedId:t},environments:{environments:s,operationError:o,clearOperationError:r},tasks:{tasks:c},connectionStatus:d,onboardingCompleted:u}=ot(),{pluginNames:p}=xh(),{showToast:m}=hn();EH(s,m),IH(c,m),AH(o,r,m);const g=dt(),v=Wt();if(y.useEffect(()=>{t&&!v.pathname.includes("/tasks/")&&g(Bd(t),{replace:!0})},[t,g,v.pathname]),d==="connected"&&u===!1)return a.jsx(rs,{to:"/setup",replace:!0});const _=Qz(p);return a.jsx(vz,{children:a.jsxs("div",{className:Qr.root,children:[gk&&a.jsx(yC,{}),a.jsx(pq,{tabs:_})]})})}function Kp(){const{workspaceId:t}=Vn(),{workspaces:{workspaces:s}}=ot(),o=Wt(),r=s.find(g=>g.id===t),c=r!=null&&r.linkedEnvironmentIds?[...r.linkedEnvironmentIds].sort()[0]:void 0;if(!c)return s.length===0?void 0:a.jsx(rs,{to:"/environments",replace:!0});const d=encodeURIComponent(t),u=`/workspaces/${d}`,p=o.pathname.startsWith(u)?o.pathname.slice(u.length):"",m=`/environments/${encodeURIComponent(c)}/workspaces/${d}${p}${o.search}${o.hash}`;return a.jsx(rs,{to:m,replace:!0})}function hq(){const{pluginNames:t}=xh(),s=t.includes("orchestration"),o=t.includes("knowledge");return a.jsxs(nN,{children:[a.jsx(we,{path:"setup",element:a.jsx(oq,{})}),a.jsxs(we,{element:a.jsx(mq,{}),children:[a.jsx(we,{index:!0,element:a.jsx(_P,{})}),a.jsx(we,{path:"sessions/new",element:a.jsx(IP,{})}),a.jsxs(we,{element:a.jsx(_V,{}),children:[a.jsx(we,{path:"chat",element:a.jsx(y_,{})}),a.jsx(we,{path:"chat/:streamId",element:a.jsx(y_,{})})]}),a.jsx(we,{path:"sessions/:sessionId",element:a.jsx($P,{})}),o&&a.jsx(we,{element:a.jsx(bV,{}),children:a.jsx(we,{path:"knowledge",element:a.jsx(y.Suspense,{fallback:a.jsx(B1,{}),children:a.jsx(fq,{})})})}),s&&a.jsxs(we,{element:a.jsx(hV,{}),children:[a.jsx(we,{path:"tasks",element:a.jsx(yP,{})}),a.jsx(we,{path:"tasks/new",element:a.jsx(__,{})}),a.jsx(we,{path:"tasks/:taskId",element:a.jsx(Ka,{})}),a.jsx(we,{path:"tasks/:taskId/edit",element:a.jsx(Ka,{})}),a.jsx(we,{path:"tasks/:taskId/stream",element:a.jsx(Ka,{})}),a.jsx(we,{path:"tasks/:taskId/findings",element:a.jsx(Ka,{})})]}),s&&a.jsxs(we,{element:a.jsx(yV,{}),children:[a.jsx(we,{path:"findings",element:a.jsx(w_,{})}),a.jsx(we,{path:"findings/:findingId",element:a.jsx(N_,{})}),a.jsx(we,{path:"environments/:environmentId/workspaces/:workspaceId/findings",element:a.jsx(w_,{})}),a.jsx(we,{path:"environments/:environmentId/workspaces/:workspaceId/findings/:findingId",element:a.jsx(N_,{})})]}),a.jsxs(we,{element:a.jsx(gV,{}),children:[a.jsx(we,{path:"workspaces",element:a.jsx(rs,{to:"/environments",replace:!0})}),a.jsx(we,{path:"workspaces/new",element:a.jsx(QP,{})}),a.jsx(we,{path:"workspaces/:workspaceId",element:a.jsx(Kp,{})}),a.jsx(we,{path:"workspaces/:workspaceId/tasks/:taskId",element:a.jsx(Kp,{})}),a.jsx(we,{path:"workspaces/:workspaceId/tasks/:taskId/*",element:a.jsx(Kp,{})}),a.jsx(we,{path:"environments/:environmentId/workspaces/:workspaceId",element:a.jsx(UP,{})}),a.jsx(we,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/new",element:a.jsx(__,{})}),a.jsx(we,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId",element:a.jsx(Ka,{})}),a.jsx(we,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit",element:a.jsx(Ka,{})}),a.jsx(we,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream",element:a.jsx(Ka,{})}),a.jsx(we,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/findings",element:a.jsx(Ka,{})}),a.jsxs(we,{path:"environments",element:a.jsx(oU,{}),children:[a.jsx(we,{index:!0,element:a.jsx(bP,{})}),a.jsx(we,{path:"new",element:a.jsx(tU,{})}),a.jsx(we,{path:":environmentId",element:a.jsx(LU,{})}),a.jsx(we,{path:":environmentId/edit",element:a.jsx(nU,{})})]})]}),a.jsx(we,{element:a.jsx(vV,{}),children:a.jsxs(we,{path:"settings",element:a.jsx(zU,{}),children:[a.jsx(we,{index:!0,element:a.jsx(rs,{to:"credentials",replace:!0})}),a.jsx(we,{path:"environments",element:a.jsx(rs,{to:"/environments",replace:!0})}),a.jsx(we,{path:"credentials",element:a.jsx(HU,{})}),a.jsx(we,{path:"github-accounts",element:a.jsx(PU,{})}),a.jsx(we,{path:"tokens",element:a.jsx(rs,{to:"../credentials",replace:!0})}),a.jsx(we,{path:"personas",element:a.jsx(UU,{})}),a.jsx(we,{path:"personas/new",element:a.jsx(S_,{})}),a.jsx(we,{path:"personas/:personaId",element:a.jsx(S_,{})}),a.jsx(we,{path:"schedules",element:a.jsx(QU,{})}),a.jsx(we,{path:"schedules/new",element:a.jsx(j_,{})}),a.jsx(we,{path:"schedules/:scheduleId",element:a.jsx(j_,{})}),a.jsx(we,{path:"appearance",element:a.jsx(cV,{})}),a.jsx(we,{path:"shortcuts",element:a.jsx(fV,{})}),a.jsx(we,{path:"plugins",element:a.jsx(pV,{})}),a.jsx(we,{path:"about",element:a.jsx(uV,{})})]})}),a.jsx(we,{path:"*",element:a.jsx(rs,{to:"/",replace:!0})})]})]})}const gq=1e4;function vq(){const{onboardingCompleted:t}=ot(),[s,o]=y.useState(!1);y.useEffect(()=>{if(t!==void 0)return;const c=setTimeout(()=>o(!0),gq);return()=>clearTimeout(c)},[t]);const r=t===void 0&&!s;return a.jsx(ls,{mode:"wait",children:r?a.jsx(At.div,{initial:{opacity:1},exit:{opacity:0},transition:{duration:.25},children:a.jsx(B1,{})},"splash"):a.jsx(At.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.25},style:{minHeight:"100vh"},children:a.jsx(NN,{basename:"/".replace(/\/$/,""),children:a.jsx(hq,{})})},"app")})}function yq(){const t=gk?Fz:CH;return a.jsx(Yz,{children:a.jsx(gz,{children:a.jsx(fz,{children:a.jsx(t,{children:a.jsx(vq,{})})})})})}tj.createRoot(document.getElementById("root")).render(a.jsx(y.StrictMode,{children:a.jsx(yq,{})}));export{Ss as B,ix as K,ot as a,Qp as f,Bd as s,Hn as t,dt as u};